KouJin vor 1 Jahr
Ursprung
Commit
37b08c5d5b
1 geänderte Dateien mit 46 neuen und 26 gelöschten Zeilen
  1. 46 26
      src/views/system/user/UserForm.vue

+ 46 - 26
src/views/system/user/UserForm.vue

@@ -28,18 +28,19 @@
28 28
           </el-form-item>
29 29
         </el-col>
30 30
         <el-col :span="8">
31
-          <el-form-item  label="用户名称" prop="username">
32
-            <el-input  :disabled="formData.id" v-model="formData.username" placeholder="请输入用户名称"/>
31
+          <el-form-item label="用户名称" prop="username">
32
+            <el-input v-model="formData.username" :disabled="formData.id"
33
+                      placeholder="请输入用户名称"/>
33 34
           </el-form-item>
34 35
         </el-col>
35 36
 
36 37
 
37 38
         <el-col :span="8">
38
-          <el-form-item  label="用户密码" prop="password">
39
+          <el-form-item label="用户密码" prop="password">
39 40
             <el-input
40
-              :disabled="formData.id"
41
-
42 41
               v-model="formData.password"
42
+
43
+              :disabled="formData.id"
43 44
               placeholder="请输入用户密码"
44 45
               show-password
45 46
               type="password"
@@ -68,18 +69,18 @@
68 69
             </el-select>
69 70
           </el-form-item>
70 71
         </el-col>
71
-<!--        <el-col :span="8">-->
72
-<!--          <el-form-item label="岗位" prop="postIds">-->
73
-<!--            <el-select v-model="formData.postIds" multiple placeholder="请选择">-->
74
-<!--              <el-option-->
75
-<!--                v-for="item in postList"-->
76
-<!--                :key="item.id"-->
77
-<!--                :label="item.name"-->
78
-<!--                :value="item.id!"-->
79
-<!--              />-->
80
-<!--            </el-select>-->
81
-<!--          </el-form-item>-->
82
-<!--        </el-col>-->
72
+        <!--        <el-col :span="8">-->
73
+        <!--          <el-form-item label="岗位" prop="postIds">-->
74
+        <!--            <el-select v-model="formData.postIds" multiple placeholder="请选择">-->
75
+        <!--              <el-option-->
76
+        <!--                v-for="item in postList"-->
77
+        <!--                :key="item.id"-->
78
+        <!--                :label="item.name"-->
79
+        <!--                :value="item.id!"-->
80
+        <!--              />-->
81
+        <!--            </el-select>-->
82
+        <!--          </el-form-item>-->
83
+        <!--        </el-col>-->
83 84
         <el-col :span="8">
84 85
           <el-form-item label="角色" prop="roleIds">
85 86
             <el-select v-model="formData.roleIds" multiple placeholder="请选择">
@@ -95,7 +96,7 @@
95 96
 
96 97
 
97 98
         <el-col :span="8">
98
-          <el-form-item  label="省" prop="shengCode">
99
+          <el-form-item label="省" prop="shengCode">
99 100
             <el-select v-model="formData.shengCode"
100 101
                        clearable
101 102
                        placeholder="所属省份">
@@ -106,7 +107,7 @@
106 107
           </el-form-item>
107 108
         </el-col>
108 109
         <el-col :span="8">
109
-          <el-form-item  label="市" prop="shiCode">
110
+          <el-form-item label="市" prop="shiCode">
110 111
             <el-select v-model="formData.shiCode"
111 112
                        clearable
112 113
                        placeholder="所属省份">
@@ -116,7 +117,7 @@
116 117
           </el-form-item>
117 118
         </el-col>
118 119
         <el-col :span="8">
119
-          <el-form-item  label="县" prop="xianCode">
120
+          <el-form-item label="县" prop="xianCode">
120 121
             <el-select v-model="formData.xianCode"
121 122
                        clearable
122 123
                        placeholder="所属省份">
@@ -171,7 +172,10 @@ const formData = ref({
171 172
   postIds: [],
172 173
   remark: '',
173 174
   status: CommonStatusEnum.ENABLE,
174
-  roleIds: []
175
+  roleIds: [],
176
+  shengCode: '',
177
+  shiCode: '',
178
+  xianCode: '',
175 179
 })
176 180
 const formRules = reactive<FormRules>({
177 181
   username: [{required: true, message: '用户名称不能为空', trigger: 'blur'}],
@@ -248,15 +252,13 @@ const submitForm = async () => {
248 252
   formLoading.value = true
249 253
   try {
250 254
     const data = formData.value as unknown as UserApi.UserVO
251
-    if(data.xianCode){
255
+    if (data.xianCode) {
252 256
       data.areaLevel = 3
253 257
       data.areaCode = data.xianCode
254
-    }
255
-    else if(data.shiCode){
258
+    } else if (data.shiCode) {
256 259
       data.areaLevel = 2
257 260
       data.areaCode = data.shiCode
258
-    }
259
-    else if(data.shengCode){
261
+    } else if (data.shengCode) {
260 262
       data.areaLevel = 1
261 263
       data.areaCode = data.shengCode
262 264
     }
@@ -325,6 +327,24 @@ watch(() => formData.value.shiCode, async (newValue) => {
325 327
     xianList.value = []
326 328
   }
327 329
 });
330
+watch(
331
+  () => formData.value.deptId,
332
+  async (newValue) => {
333
+    if (newValue == '112') {
334
+      // 当 deptId 为 '112' 时,shengCode 不是必填
335
+      formRules.shengCode[0].required = false;
336
+      // 清除 shengCode 的校验状态
337
+      await formRef.value?.clearValidate('shengCode');
338
+
339
+    } else {
340
+      // 否则,shengCode 是必填的
341
+      formRules.shengCode[0].required = true;
342
+      // 重新校验 shengCode 字段
343
+      await formRef.value?.validateField('shengCode');
344
+    }
345
+  },
346
+  { deep: true }
347
+);
328 348
 onMounted(async () => {
329 349
 
330 350
 })