diff --git a/src/views/task/list/patrol.vue b/src/views/task/list/patrol.vue index 7c07c1b..5194d5a 100644 --- a/src/views/task/list/patrol.vue +++ b/src/views/task/list/patrol.vue @@ -7,9 +7,9 @@ {{item.value}} - + {{item.value}} @@ -34,45 +34,60 @@ - {select.page_size = e,getList()}" - @pageIndexChange="e => {select.page = e,getList()}" - :table-item="table"> - - - - - 办理 - - - 查看 + + + 全选 + + + {{item.name}} + + + + + {select.page_size = e,getList()}" + @pageIndexChange="e => {select.page = e,getList()}" + :table-item="table"> + + + + + 办理 + + + 查看 - - - - - - 编辑 - - - - 删除 - - + + + + + + 编辑 + + + + 删除 + + + + - - - + + + + + + + @@ -194,6 +209,10 @@ value:'退回' } ], + currentTableList:[], + isIndeterminate:true, + checkAll:false, + selectMission:[], table:[{ label:"任务名称", prop:'missionName', @@ -398,18 +417,18 @@ }], } }, - computed: { - // 获取所有单元格合并数据 - spanArr() { - for(var k in this.list){ - if (!this.list.length) return [] - const mergeCols = ['missionName'] // 需要合并的列(字段) - // const data = groupBy(this.list, 'monthIndex') - // console.log("data",data) - return getMergeCells(this.list, this.table, mergeCols) - } - } - }, + // computed: { + // // 获取所有单元格合并数据 + // spanArr() { + // for(var k in this.list){ + // if (!this.list.length) return [] + // const mergeCols = ['missionName'] // 需要合并的列(字段) + // // const data = groupBy(this.list, 'monthIndex') + // // console.log("data",data) + // return getMergeCells(this.list, this.table, mergeCols) + // } + // } + // }, created(){ // this.getUserId() @@ -515,8 +534,40 @@ } } this.list = res.data + this.currentTableList = this.filterBySelectedMonths(this.list,this.selectMission) + console.log("currentTableList",this.currentTableList) this.total = res.total }, + handleCheckAllChange(val) { + this.selectMission = val ? this.missionList : []; + this.isIndeterminate = false; + let _arr = [] + _arr = this.filterBySelectedMonths(this.list,this.selectMission) + this.currentTableList = _arr + }, + changeMonth(e){ + let checkedCount = e.length; + this.checkAll = checkedCount === this.missionList.length; + this.isIndeterminate = checkedCount > 0 && checkedCount < this.missionList.length; + let _arr = [] + _arr = this.filterBySelectedMonths(this.list,this.selectMission) + this.currentTableList = _arr + }, + filterBySelectedMonths(arr, selectMission) { + if (!selectMission || selectMission.length === 0) { + return arr; + } + + // Ensure selectMission is an array even if it's a single value + if (!Array.isArray(selectMission)) { + selectMission = [selectMission]; + } + + return arr.filter(obj => { + // Check if there's at least one common month between obj.month and selectMission + return selectMission.some(selected => obj.missionName.includes(selected)); + }); + }, async getMissonList(){ console.log("this.unitTypeList",this.unitTypeList) const res = await getparameteritem('unitTypeList') @@ -728,6 +779,18 @@