<el-form label-position="left" label-width="100px" :model="appDynamicForm" style="max-width: 800px">
<el-form-item v-for="(item,index) in allColumnList" :label="item.name" label-width="150px" >
<div style="width:100%;">
<el-checkbox v-model="checkEntityAllData" :label="item.key"
:indeterminate="setIndeterminate(item)"
@change="(val) => handleCheckAll(val, item)">全部</el-checkbox>
</div>
<div style="width:100%">
<el-checkbox-group v-model="appDynamicForm.columnList">
<el-checkbox v-for="(subItem) in item.propertyList" :key="subItem.key"
:label="subItem.key" >{{subItem.name}}</el-checkbox>
</el-checkbox-group>
</div>
</el-form-item>
</el-form>
const allColumnList = ref([]);
const checkEntityAllData = ref([])
const isIndeterminate = ref(false);
const checkBoxSelectedData = ref([]);
const appDynamicDialog = ref(false);
const appDynamicForm = ref({
columnList: []
});
function handleAppDynamicExport() {
appDynamicDialog.value = true
appDynamicForm.value.columnList = [];
getDynamicColumnsList().then((res) => {
allColumnList.value = res.data;
});
}
function downloadAppDynamicExport() {
const dateFormat = getNowDate();
console.log("appDynamicForm=", appDynamicForm)
proxy.downloadJson("/applicant/export/dynamic/export", {...appDynamicForm.value}, `申报数据汇总_${dateFormat}.xlsx`);
appDynamicDialog.value = false;
}
// 全选
function handleCheckAll(val, item){
const next=item.propertyList.map(property=>property.key)
if (val) {
// true 求并集
appDynamicForm.value.columnList = appDynamicForm.value.columnList.concat(next.filter(item => !appDynamicForm.value.columnList.includes(item)));
} else {
// false 求差集
appDynamicForm.value.columnList = appDynamicForm.value.columnList.filter(item => !next.includes(item));
}
}
function setIndeterminate(item) {
const next=item.propertyList.map(property=>property.key);
const checkArr = appDynamicForm.value.columnList.filter(item => next.includes(item));
return checkArr.length > 0 && next.length != checkArr.length;
}