工裝設計方案網(wǎng)站seosem是什么職位
需求:
列表的組成部分由:一些固定的列,如:姓名,工號,以及 需要動態(tài)顯示與隱藏的列,如:出勤、曠工、事假、病假等假勤類型
1、通過多選框多選,展示選中的列,未選中的不展示
2、當多選框全部清空的時候,展示原來的所有列
<el-form-item label="假勤類型:"><MutiSelectv-model="attendanceTypeArr":dictOption="dictOptions.attendance_type"@change="val => mutiChange(val, 'attendanceType')"style="width: 140px"></MutiSelect></el-form-item>
<VxeTable :vxe-table-id="vxeTableId":columns="isNew ? newColumns : columns":dataSource="dataSource"></VxeTable>
data
newColumns: [],columns: [],dataSource: [],
// 假勤類型多選事件mutiChange(val, type) {if (type == 'attendanceType') {let matchedLabels = []this.dictOptions.attendance_type.forEach(item => {// 遍歷val中的每個vval.forEach(v => {// 如果item.dictValue等于v,將item.dictLabel添加到matchedLabels數(shù)組中if (item.dictValue === v) {matchedLabels.push(item.dictLabel)}})})let filteredColumns = this.columns.filter(column => {// 檢查列的title是否包含matchedLabels中的值return (matchedLabels.some(label => column.title.includes(label)) || ['userCode', 'userName', 'deptName', 'postName', 'userType'].includes(column.field))})// 此時filteredColumns數(shù)組中包含了過濾后的列定義this.isNew = truethis.newColumns = filteredColumnsif (val.length == 0) {this.newColumns = this.columns}}},