diff --git a/src/views/personnel/group/index.vue b/src/views/personnel/group/index.vue index a82d8d0..d328868 100644 --- a/src/views/personnel/group/index.vue +++ b/src/views/personnel/group/index.vue @@ -2,7 +2,6 @@
- + + + 重置 + 新增 @@ -20,7 +22,7 @@ - + @@ -131,6 +133,7 @@ export default { }, // 表格数据 tableData: [], + infoTableData: [], total: 0, loading: false, // 上级目录数据 @@ -204,16 +207,40 @@ export default { methods: { // 查询 search() { - this.params.pageNum = 1 - this.getTableData() + // 初始化表格数据 + this.infoTableData = JSON.parse(JSON.stringify(this.tableData)) + this.infoTableData = this.deal(this.infoTableData, node => node.groupName.includes(this.params.groupName) || node.remark.includes(this.params.remark)) + }, + resetData() { + this.infoTableData = JSON.parse(JSON.stringify(this.tableData)) + }, + // 页面数据过滤 + deal(nodes, predicate) { + // 如果已经没有节点了,结束递归 + if (!(nodes && nodes.length)) { + return [] + } + const newChildren = [] + for (const node of nodes) { + if (predicate(node)) { + // 如果节点符合条件,直接加入新的节点集 + newChildren.push(node) + node.children = this.deal(node.children, predicate) + } else { + // 如果当前节点不符合条件,递归过滤子节点, + // 把符合条件的子节点提升上来,并入新节点集 + newChildren.push(...this.deal(node.children, predicate)) + } + } + return newChildren }, - // 获取表格数据 async getTableData() { this.loading = true try { const { data } = await getGroupTree(this.params) this.tableData = data + this.infoTableData = JSON.parse(JSON.stringify(data)) this.treeselectData = [{ ID: 0, groupName: '顶级类目', children: data }] } finally { this.loading = false diff --git a/src/views/personnel/user/index.vue b/src/views/personnel/user/index.vue index 69c9c9c..81a59dc 100644 --- a/src/views/personnel/user/index.vue +++ b/src/views/personnel/user/index.vue @@ -144,6 +144,7 @@ :options="departmentsOptions" placeholder="请选择部门" :normalizer="normalizer" + :multiple="true" @input="treeselectInput" @select="onOperatePersonChanged" /> @@ -322,6 +323,14 @@ wLXapv+ZfsjG7NgdawIDAQAB this.loading = true try { const { data } = await getUsers(this.params) + data.users.forEach(item => { + const dataStrArr = item.departmentId.split(',') + const dataIntArr = [] + dataStrArr.forEach(item => { + dataIntArr.push(+item) + }) + item.departmentId = dataIntArr + }) this.tableData = data.users this.total = data.total } finally { @@ -337,7 +346,7 @@ wLXapv+ZfsjG7NgdawIDAQAB pageSize: 1000 // 平常百姓人家应该不会有这么多数据吧 } const { data } = await getGroupTree(checkParams) - this.departmentsOptions = [{ ID: 0, groupName: '顶级类目', children: data }] + this.departmentsOptions = [{ ID: 0, groupName: '请选择部门信息', groupType: 'T', children: data }] } finally { this.loading = false } @@ -593,7 +602,7 @@ wLXapv+ZfsjG7NgdawIDAQAB normalizer(node) { return { id: node.ID, - label: node.groupName, + label: node.groupType + '=' + node.groupName, children: node.children } }, @@ -602,7 +611,11 @@ wLXapv+ZfsjG7NgdawIDAQAB }, onOperatePersonChanged(obj) { // this.dialogFormData.departmentId = obj.ID - this.dialogFormData.departments = obj.groupName + if (this.dialogFormData.departments === '') { + this.dialogFormData.departments = obj.groupName + } else { + this.dialogFormData.departments = this.dialogFormData.departments + ',' + obj.groupName + } } } }