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 |   50 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 37 insertions(+), 13 deletions(-)

diff --git a/web/src/views/employee/EmployeeForm.vue b/web/src/views/employee/EmployeeForm.vue
index 263cd38..3ab65c9 100644
--- a/web/src/views/employee/EmployeeForm.vue
+++ b/web/src/views/employee/EmployeeForm.vue
@@ -39,16 +39,27 @@
         />
       </el-form-item>
 
-      <el-form-item label="閲嶇疆瀵嗙爜" prop="password" v-if="isEdit">
-        <el-input 
-          v-model="form.password" 
-          type="password"
-          placeholder="璇疯緭鍏ユ柊瀵嗙爜锛�6-20浣嶏級"
-          maxlength="20"
-          show-password
-          @focus="handlePasswordFocus"
-          @input="handlePasswordInput"
-        />
+      <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">
@@ -164,10 +175,16 @@
   password: [
     { 
       validator: (rule, value, callback) => {
-        if (!value) {
+        // 缂栬緫妯″紡涓嬶紝濡傛灉鏄崰浣嶇瀵嗙爜涓旀湭淇敼锛屽垯璺宠繃楠岃瘉
+        if (isEdit.value && value === '鈥⑩�⑩�⑩�⑩�⑩�⑩�⑩��' && !isPasswordModified.value) {
+          callback()
+          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()
         }
@@ -235,6 +252,13 @@
   }
 }
 
+// 澶勭悊閲嶇疆瀵嗙爜
+const handleResetPassword = () => {
+  form.password = ''
+  isPasswordModified.value = true
+  ElMessage.success('瀵嗙爜宸叉竻绌猴紝璇疯緭鍏ユ柊瀵嗙爜')
+}
+
 // 鎻愪氦琛ㄥ崟
 const handleSubmit = async () => {
   if (!formRef.value) return

--
Gitblit v1.8.0