no message

This commit is contained in:
kuaifan 2025-03-14 22:41:26 +08:00
parent 957201804c
commit 79ca1aea02
4 changed files with 51 additions and 34 deletions

View File

@ -191,15 +191,15 @@
<FormItem prop="parent_id" :label="$L('上级部门')">
<Select v-model="departmentData.parent_id" :placeholder="$L('请选择上级部门')">
<Option :value="0">
<div class="team-department-level-name level-1">{{ $L('默认部门') }}</div>
<div class="department-level-name level-1">{{ $L('默认部门') }}</div>
</Option>
<Option
v-for="(item, index) in departmentList"
:disabled="item.level > 3 || item.id == departmentData.id || item.parent_id == departmentData.id"
:disabled="item.level > 3 || item.id == departmentData.id || (item.parent_id == departmentData.id && departmentData.id > 0)"
:value="item.id"
:key="index"
:label="item.chains.join(' - ')">
<div :class="`team-department-level-name level-${item.level}`">{{ item.name }}</div>
<div :class="`department-level-name level-${item.level}`">{{ item.name }}</div>
</Option>
</Select>
</FormItem>
@ -311,7 +311,7 @@
:value="item.id"
:key="index"
:label="item.chains.join(' - ')">
<div :class="`team-department-level-name level-${item.level - 1}`">{{ item.name }}</div>
<div :class="`department-level-name level-${item.level - 1}`">{{ item.name }}</div>
</Option>
</Select>
</FormItem>
@ -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

View File

@ -631,7 +631,6 @@ export default {
}, typeof timeout === "number" ? timeout : 1000)
},
/**
* 获取审批待办未读数量
* @param state
@ -866,6 +865,38 @@ export default {
});
},
/**
* 获取部门列表
* @param dispatch
* @returns {Promise<unknown>}
*/
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

View File

@ -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;
}
}

View File

@ -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;