From d549822a0399c6231a2a35802fb60ac2ab0c7bd0 Mon Sep 17 00:00:00 2001 From: ouqian <13568766802@163.com> Date: Tue, 3 Mar 2026 23:13:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:[=E5=85=AC=E5=85=B1=E7=BB=84=E4=BB=B6][Che?= =?UTF-8?q?ckBox=E7=B1=BB=E5=9E=8B=E5=BC=82=E5=B8=B8=E5=A4=84=E7=90=86]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/CustomTable.vue | 32 +++++++++++----------- src/components/Template/HandleFormItem.vue | 3 +- .../business/comps/template/comps/dl/DL008.vue | 12 ++++++-- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/components/Template/CustomTable.vue b/src/components/Template/CustomTable.vue index 9b23c64..80f4bfe 100644 --- a/src/components/Template/CustomTable.vue +++ b/src/components/Template/CustomTable.vue @@ -123,17 +123,15 @@ @@ -550,17 +548,19 @@ export default { } } } else if (col.bodyType === "checkbox") { - // checkbox类型的校验逻辑 - 通常checkbox不需要必填校验,除非明确指定 - // 如果需要必填,可以检查是否至少选中一个 - if (col.required && !col.bodyDisabled) { - const hasChecked = Array.isArray(mainValue) ? mainValue.length > 0 : mainValue; + // checkbox类型的校验逻辑 + // checkbox只在actFill时进行必填校验 + if (!col.bodyDisabled && this.templateFillType === 'actFill') { + // 单个checkbox:值必须为true + // checkbox组:至少选中一个 + const hasChecked = Array.isArray(mainValue) ? mainValue.length > 0 : mainValue === true; if (!hasChecked) { const errorItem = { rowIndex, colIndex, field: col.prop, label: this.$t(col.label), - error: `请选择${this.$t(col.label)}` + error: `请勾选${this.$t(col.label)}` }; errors.push(errorItem); this.formErrors.push(errorItem); diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index c316990..4c1cbd1 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -1541,7 +1541,8 @@ export default { textarea, .el-select, .clickable, - .el-date-editor { + .el-date-editor, + .el-checkbox__inner { border-color: #ff5d5d; box-shadow: 0 0 6px #ffc3c3 !important; diff --git a/src/views/business/comps/template/comps/dl/DL008.vue b/src/views/business/comps/template/comps/dl/DL008.vue index 0dadc2e..f51cebe 100644 --- a/src/views/business/comps/template/comps/dl/DL008.vue +++ b/src/views/business/comps/template/comps/dl/DL008.vue @@ -313,7 +313,7 @@ export default { } }, mounted() { - // 模拟数据已移除,使用真实数据回显 + }, methods: { // 删除表格行 @@ -359,8 +359,14 @@ export default { } this.$refs.yqsyTableRef.updateDataSourceByRowIndex(rowIndex, params) } - if (key === 'qxbd') { - this.$refs.cxqkqxbbInfoRef.updateFormData('pykssj', row.startDate) + if (key === 'cxqkqxbd') { + // MOCK:模拟数据回显 + const mockData = [ + {"jlzb":"A","jzbh1":undefined,"jzbh2":undefined,"jzbh3":undefined,"jzbh4":undefined,"jzbh1Label":"001","jzbh2Label":"004","jzbh3Label":"007","jzbh4Label":"010"}, + {"jlzb":"A","jzbh1":undefined,"jzbh2":undefined,"jzbh3":undefined,"jzbh4":undefined,"jzbh1Label":"002","jzbh2Label":"005","jzbh3Label":"008","jzbh4Label":"011"}, + {"jlzb":"A","jzbh1":undefined,"jzbh2":undefined,"jzbh3":undefined,"jzbh4":undefined,"jzbh1Label":"003","jzbh2Label":"006","jzbh3Label":"009","jzbh4Label":"012"} + ] + this.$refs[refConf.cxqk].updateDataSource(mockData) } }, // 保存