From a7545d83acbc59b72d16cc4b659cafab421640bb Mon Sep 17 00:00:00 2001 From: "du.meimei" Date: Fri, 16 May 2025 09:48:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(DataAnalyse):=20=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=B7=BB=E5=8A=A0disabled=E7=8A=B6=E6=80=81?= =?UTF-8?q?=20=E4=B8=8D=E5=8F=AF=E5=8F=96=E6=B6=88=E9=80=89=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../particulars/components/ColumnConfig.vue | 35 ++++++++++++------- .../ProjectManage/fragment/TableList.vue | 9 ++++- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/views/DataAnalyse/particulars/components/ColumnConfig.vue b/src/views/DataAnalyse/particulars/components/ColumnConfig.vue index 28ee7f65..5d8eac42 100644 --- a/src/views/DataAnalyse/particulars/components/ColumnConfig.vue +++ b/src/views/DataAnalyse/particulars/components/ColumnConfig.vue @@ -24,7 +24,9 @@ class="custom-checkbox-group my-checkbox-group" > - + + + @@ -69,19 +71,26 @@ export default defineComponent({ } function handleChange(e) { - if (e.target.checked) { - checkedList.value.forEach((item) => { - if (item.value === e.target.value) { - item.selected = item.children.map((item) => item.value); + const targetValue = e.target.value; + checkedList.value.forEach((item) => { + if (item.value === targetValue) { + if (e.target.checked) { + // 选中时全选所有未被禁用的子项 + const enabledChildren = item.children + .filter(child => !child.disabled) + .map(child => child.value); + item.selected = [...new Set([...item.selected, ...enabledChildren])]; + } else { + // 取消选中时只保留被禁用的子项 + const disabledChildren = item.children + .filter(child => child.disabled) + .map(child => child.value); + item.selected = item.selected.filter(val => + disabledChildren.includes(val) + ); } - }); - } else { - checkedList.value.forEach((item) => { - if (item.value === e.target.value) { - item.selected = []; - } - }); - } + } + }); } function handleOk() { const selectList = checkedList.value.map((item) => item.selected); diff --git a/src/views/ProjectManage/fragment/TableList.vue b/src/views/ProjectManage/fragment/TableList.vue index 505e730f..4f31e5b7 100644 --- a/src/views/ProjectManage/fragment/TableList.vue +++ b/src/views/ProjectManage/fragment/TableList.vue @@ -484,7 +484,14 @@ export default defineComponent({ getSurveyHeadInfo().then(res => { console.log(res); answer_columns.value = res.data.survey_columns; - + let disabledList = ['project_name','scene_name','status_txt','updated_at'] + answer_columns.value[0].children.forEach(item=>{ + if (disabledList.includes(item.value)){ + item.disabled = true; + } + }) + console.log('answer_columns.value'); + console.log(answer_columns.value); // 获取原始 columns 数据 let originalColumns = res.data.columns; // 处理 columns 数据结构