diff --git a/resources/assets/js/pages/manage/components/TeamManagement.vue b/resources/assets/js/pages/manage/components/TeamManagement.vue index 59f23d10a..0b64c3868 100644 --- a/resources/assets/js/pages/manage/components/TeamManagement.vue +++ b/resources/assets/js/pages/manage/components/TeamManagement.vue @@ -191,15 +191,15 @@ @@ -311,7 +311,7 @@ :value="item.id" :key="index" :label="item.chains.join(' - ')"> -
{{ item.name }}
+
{{ item.name }}
@@ -1238,28 +1238,13 @@ export default { getDepartmentLists() { this.departmentLoading++; - this.$store.dispatch("call", { - url: 'users/department/list', - }).then(({data}) => { - this.departmentList = [] - this.generateDepartmentList(data, 0, 1, []) + this.$store.dispatch("getDepartmentList").then(list => { + this.departmentList = list; }).finally(_ => { this.departmentLoading--; }) }, - generateDepartmentList(data, parent_id, level, chains = []) { - data.some(item => { - if (item.parent_id == parent_id) { - this.departmentList.push(Object.assign(item, { - chains: chains.concat([item.name]), - level: level + 1 - })) - this.generateDepartmentList(data, item.id, level + 1, chains.concat([item.name])) - } - }) - }, - onMultipleMaxBefore(num) { $A.messageError(`最多选择${num}个部门`) return false diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index c85489d2b..4379cfe72 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -631,7 +631,6 @@ export default { }, typeof timeout === "number" ? timeout : 1000) }, - /** * 获取审批待办未读数量 * @param state @@ -866,6 +865,38 @@ export default { }); }, + /** + * 获取部门列表 + * @param dispatch + * @returns {Promise} + */ + getDepartmentList({dispatch}) { + return new Promise((resolve, reject) => { + const generateList = (data, parent_id = 0, level = 0, chains = []) => { + let result = []; + data.some(item => { + if (item.parent_id == parent_id) { + const newItem = Object.assign({}, item, { + chains: chains.concat([item.name]), + level: level + 1 + }); + result.push(newItem); + // 递归获取子部门 + const children = generateList(data, item.id, level + 1, chains.concat([item.name])); + result = result.concat(children); + } + }); + return result; + }; + + dispatch("call", { + url: 'users/department/list', + }).then(({data}) => { + resolve(generateList(data, 0, 1)); + }).catch(reject); + }); + }, + /** * 登出(打开登录页面) * @param state diff --git a/resources/assets/sass/pages/common.scss b/resources/assets/sass/pages/common.scss index 3f0fd6c62..af88fed8c 100755 --- a/resources/assets/sass/pages/common.scss +++ b/resources/assets/sass/pages/common.scss @@ -942,3 +942,16 @@ body.window-portrait { transform: translateY(-50%); } } + +/*部门层级*/ +.department-level-name { + &.level-2 { + margin-left: 18px; + } + &.level-3 { + margin-left: 36px; + } + &.level-4 { + margin-left: 54px; + } +} diff --git a/resources/assets/sass/pages/components/team-management.scss b/resources/assets/sass/pages/components/team-management.scss index 2015fe956..50d9033b6 100644 --- a/resources/assets/sass/pages/components/team-management.scss +++ b/resources/assets/sass/pages/components/team-management.scss @@ -157,18 +157,6 @@ } } -.team-department-level-name { - &.level-2 { - margin-left: 18px; - } - &.level-3 { - margin-left: 36px; - } - &.level-4 { - margin-left: 54px; - } -} - .team-department-add-dialog-group { display: flex; align-items: center;