From 98a53588c381bdcdea111cb1deddc06f6c7f1c28 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期四, 09 四月 2026 14:12:09 +0800
Subject: [PATCH] fix(用户管理): 修复编辑用户时部门显示问题并增加员工密码初始化
---
src/views/system/user/index.vue | 24 ++++++++++++++++++++++++
src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue | 19 ++++++++++++++++++-
src/views/personnelManagement/employeeRecord/components/BasicInfoSection.vue | 13 ++++++++++++-
3 files changed, 54 insertions(+), 2 deletions(-)
diff --git a/src/views/personnelManagement/employeeRecord/components/BasicInfoSection.vue b/src/views/personnelManagement/employeeRecord/components/BasicInfoSection.vue
index 0aa4f06..f41e4be 100644
--- a/src/views/personnelManagement/employeeRecord/components/BasicInfoSection.vue
+++ b/src/views/personnelManagement/employeeRecord/components/BasicInfoSection.vue
@@ -152,6 +152,18 @@
</el-select>
</el-form-item>
</el-col>
+ <el-col v-if="operationType === 'add'" :span="10">
+ <el-form-item label="榛樿鍒濆鍖栧瘑鐮�" prop="defaultPassword">
+ <el-input
+ v-model="form.defaultPassword"
+ type="text"
+ placeholder="璇疯緭鍏�"
+ clearable
+ maxlength="50"
+ show-word-limit
+ />
+ </el-form-item>
+ </el-col>
</el-row>
</el-card>
</template>
@@ -178,4 +190,3 @@
margin-right: 4px;
}
</style>
-
diff --git a/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue b/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
index 2ad06fb..7e495c9 100644
--- a/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
+++ b/src/views/personnelManagement/employeeRecord/components/NewOrEditFormDia.vue
@@ -130,6 +130,7 @@
staffEmergencyContactList: [createEmptyEmergency()],
// 瑙掕壊锛堝崟閫夛級
roleId: undefined,
+ defaultPassword: "123456",
});
const state = reactive({
@@ -152,6 +153,22 @@
{ required: true, message: "璇烽�夋嫨閮ㄩ棬", trigger: "change" },
],
roleId: [{ required: true, message: "璇烽�夋嫨瑙掕壊", trigger: "change" }],
+ defaultPassword: [
+ {
+ validator: (_, value, callback) => {
+ if (operationType.value !== "add") {
+ callback();
+ return;
+ }
+ if (value == null || String(value).trim() === "") {
+ callback(new Error("璇疯緭鍏ラ粯璁ゅ垵濮嬪寲瀵嗙爜"));
+ return;
+ }
+ callback();
+ },
+ trigger: "blur",
+ },
+ ],
},
postOptions: [],
deptOptions: [],
@@ -301,4 +318,4 @@
.dialog-footer {
text-align: right;
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index 9d16126..cc52725 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -507,6 +507,9 @@
const userId = row.userId || ids.value
getUser(userId).then(response => {
form.value = response.data
+ form.value.deptId = getMatchedDeptId(
+ response.deptId ?? response.data?.deptId ?? response.data?.dept?.id
+ )
postOptions.value = response.posts
roleOptions.value = response.roles
form.value.postIds = response.postIds
@@ -517,6 +520,27 @@
})
}
+function getMatchedDeptId(rawDeptId) {
+ if (rawDeptId === undefined || rawDeptId === null || !Array.isArray(enabledDeptOptions.value)) {
+ return rawDeptId
+ }
+ const target = String(rawDeptId)
+ const stack = [...enabledDeptOptions.value]
+ while (stack.length) {
+ const node = stack.shift()
+ if (!node) {
+ continue
+ }
+ if (String(node.id) === target) {
+ return node.id
+ }
+ if (Array.isArray(node.children) && node.children.length) {
+ stack.push(...node.children)
+ }
+ }
+ return rawDeptId
+}
+
/** 鎻愪氦鎸夐挳 */
function submitForm() {
proxy.$refs["userRef"].validate(valid => {
--
Gitblit v1.9.3