From 6d519474e44855682043d3c40db2c86a6822caca Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 24 九月 2025 19:37:59 +0800 Subject: [PATCH] 修改员工和评委的设置 --- web/src/views/employee/EmployeeForm.vue | 36 +++++++++++++++++++++++++++++------- 1 files changed, 29 insertions(+), 7 deletions(-) diff --git a/web/src/views/employee/EmployeeForm.vue b/web/src/views/employee/EmployeeForm.vue index d5151f8..263cd38 100644 --- a/web/src/views/employee/EmployeeForm.vue +++ b/web/src/views/employee/EmployeeForm.vue @@ -43,9 +43,11 @@ <el-input v-model="form.password" type="password" - placeholder="鐣欑┖鍒欎笉淇敼瀵嗙爜" + placeholder="璇疯緭鍏ユ柊瀵嗙爜锛�6-20浣嶏級" maxlength="20" show-password + @focus="handlePasswordFocus" + @input="handlePasswordInput" /> </el-form-item> @@ -115,6 +117,9 @@ const roles = ref<Role[]>([]) const rolesLoading = ref(false) +// 璺熻釜瀵嗙爜鏄惁琚慨鏀� +const isPasswordModified = ref(false) + // 璁$畻鏄惁涓虹紪杈戞ā寮� const isEdit = computed(() => !!props.employee?.id) @@ -159,10 +164,7 @@ password: [ { validator: (rule, value, callback) => { - if (isEdit.value && !value) { - // 缂栬緫妯″紡涓嬪瘑鐮佸彲浠ヤ负绌猴紙涓嶄慨鏀癸級 - callback() - } else if (!value) { + if (!value) { callback(new Error('璇疯緭鍏ョ櫥褰曞瘑鐮�')) } else if (value.length < 6 || value.length > 20) { callback(new Error('瀵嗙爜闀垮害搴斿湪6-20涓瓧绗︿箣闂�')) @@ -192,6 +194,7 @@ form.password = '' form.roleId = '' form.description = '' + isPasswordModified.value = false formRef.value?.clearValidate() } @@ -202,7 +205,8 @@ form.id = employee.id form.name = employee.name form.phone = employee.phone - form.password = '' // 瀵嗙爜涓嶅洖鏄� + form.password = '鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��' // 缂栬緫鏃舵樉绀哄崰浣嶇瀵嗙爜 + isPasswordModified.value = false // 閲嶇疆瀵嗙爜淇敼鐘舵�� form.roleId = employee.roleId form.description = employee.description || '' } else { @@ -215,6 +219,20 @@ const handleClose = () => { visible.value = false resetForm() +} + +// 澶勭悊瀵嗙爜瀛楁鐒︾偣浜嬩欢 +const handlePasswordFocus = () => { + if (isEdit.value && form.password === '鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��') { + form.password = '' + } +} + +// 澶勭悊瀵嗙爜杈撳叆浜嬩欢 +const handlePasswordInput = (value: string) => { + if (isEdit.value) { + isPasswordModified.value = value !== '' && value !== '鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��' + } } // 鎻愪氦琛ㄥ崟 @@ -232,11 +250,15 @@ id: form.id, name: form.name.trim(), phone: form.phone.trim(), - password: form.password || undefined, // 绌哄瘑鐮佷紶 undefined roleId: form.roleId, description: form.description?.trim() || undefined } + // 鍙湁鍦ㄦ柊寤烘垨瀵嗙爜琚慨鏀规椂鎵嶅寘鍚瘑鐮佸瓧娈� + if (!isEdit.value || isPasswordModified.value) { + submitData.password = form.password + } + await employeeApi.saveEmployee(submitData) ElMessage.success(isEdit.value ? '鍛樺伐淇℃伅鏇存柊鎴愬姛' : '鍛樺伐鍒涘缓鎴愬姛') -- Gitblit v1.8.0