feat(DataAnalyse): 列表配置添加disabled状态 不可取消选中

This commit is contained in:
du.meimei
2025-05-16 09:48:30 +08:00
parent db40f78f5d
commit a7545d83ac
2 changed files with 30 additions and 14 deletions

View File

@@ -24,7 +24,9 @@
class="custom-checkbox-group my-checkbox-group"
>
<a-row v-for="(child, index) in item.children" :key="index" style="margin-bottom: 10px">
<a-checkbox :value="child.value"> <span class="checkbox-content" v-html="child.title"></span></a-checkbox>
<a-checkbox :value="child.value" :disabled="child.disabled">
<span class="checkbox-content" v-html="child.title"></span>
</a-checkbox>
</a-row>
</a-checkbox-group>
</div>
@@ -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);

View File

@@ -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 数据结构