From b39a0502e7941ce966fda53664cf1b04ba52d65f Mon Sep 17 00:00:00 2001 From: lrj <owen.stl@gmail.com> Date: 星期三, 01 十月 2025 17:30:24 +0800 Subject: [PATCH] 清理测试文件:删除所有test、debug、fix、check_开头的文件,为重构做准备 --- web/src/views/employee/EmployeeForm.vue | 76 ++++++++++++++++++++++++++++++------- 1 files changed, 61 insertions(+), 15 deletions(-) diff --git a/web/src/views/employee/EmployeeForm.vue b/web/src/views/employee/EmployeeForm.vue index d5151f8..3ab65c9 100644 --- a/web/src/views/employee/EmployeeForm.vue +++ b/web/src/views/employee/EmployeeForm.vue @@ -39,14 +39,27 @@ /> </el-form-item> - <el-form-item label="閲嶇疆瀵嗙爜" prop="password" v-if="isEdit"> - <el-input - v-model="form.password" - type="password" - placeholder="鐣欑┖鍒欎笉淇敼瀵嗙爜" - maxlength="20" - show-password - /> + <el-form-item label="瀵嗙爜" prop="password" v-if="isEdit"> + <div style="display: flex; align-items: center; gap: 10px;"> + <el-input + v-model="form.password" + type="password" + :placeholder="isPasswordModified ? '璇疯緭鍏ユ柊瀵嗙爜锛�6-20浣嶏紝鍖呭惈瀛楁瘝鍜屾暟瀛楋級' : '鐐瑰嚮閲嶇疆瀵嗙爜鎸夐挳鏉ヤ慨鏀瑰瘑鐮�'" + maxlength="20" + show-password + :disabled="!isPasswordModified" + @focus="handlePasswordFocus" + @input="handlePasswordInput" + style="flex: 1;" + /> + <el-button + type="primary" + size="small" + @click="handleResetPassword" + > + 閲嶇疆瀵嗙爜 + </el-button> + </div> </el-form-item> <el-form-item label="鍛樺伐瑙掕壊" prop="roleId"> @@ -115,6 +128,9 @@ const roles = ref<Role[]>([]) const rolesLoading = ref(false) +// 璺熻釜瀵嗙爜鏄惁琚慨鏀� +const isPasswordModified = ref(false) + // 璁$畻鏄惁涓虹紪杈戞ā寮� const isEdit = computed(() => !!props.employee?.id) @@ -159,13 +175,16 @@ password: [ { validator: (rule, value, callback) => { - if (isEdit.value && !value) { - // 缂栬緫妯″紡涓嬪瘑鐮佸彲浠ヤ负绌猴紙涓嶄慨鏀癸級 + // 缂栬緫妯″紡涓嬶紝濡傛灉鏄崰浣嶇瀵嗙爜涓旀湭淇敼锛屽垯璺宠繃楠岃瘉 + if (isEdit.value && value === '鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��' && !isPasswordModified.value) { callback() - } else if (!value) { + return + } + + if (!value || value.trim() === '') { callback(new Error('璇疯緭鍏ョ櫥褰曞瘑鐮�')) - } else if (value.length < 6 || value.length > 20) { - callback(new Error('瀵嗙爜闀垮害搴斿湪6-20涓瓧绗︿箣闂�')) + } else if (!/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d@$!%*?&]{6,}$/.test(value)) { + callback(new Error('瀵嗙爜鑷冲皯6涓瓧绗︼紝蹇呴』鍖呭惈瀛楁瘝鍜屾暟瀛�')) } else { callback() } @@ -192,6 +211,7 @@ form.password = '' form.roleId = '' form.description = '' + isPasswordModified.value = false formRef.value?.clearValidate() } @@ -202,7 +222,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 +236,27 @@ 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 !== '鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��' + } +} + +// 澶勭悊閲嶇疆瀵嗙爜 +const handleResetPassword = () => { + form.password = '' + isPasswordModified.value = true + ElMessage.success('瀵嗙爜宸叉竻绌猴紝璇疯緭鍏ユ柊瀵嗙爜') } // 鎻愪氦琛ㄥ崟 @@ -232,11 +274,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