Jelajahi Sumber

用户管理,用户可添加没有的用户

wangrulan 2 tahun lalu
induk
melakukan
44e7a8f39a
3 mengubah file dengan 91 tambahan dan 7 penghapusan
  1. 10 0
      src/common/js/home.js
  2. 80 6
      src/components/permissions/user/index.vue
  3. 1 1
      src/utils/request.js

+ 10 - 0
src/common/js/home.js

@@ -145,6 +145,16 @@ export function getRoleCopy(data) {
     data: data
   })
 }
+// 根据地市id获取区县列表
+export function getAreasByCityId(data) {
+  return request({
+    url: '/api/web/area/getAreasByCityId',
+    method: 'post',
+    data: data
+  })
+}
+
+
 
 // 操作日志
 export function getOperationLogList(data) {

+ 80 - 6
src/components/permissions/user/index.vue

@@ -240,14 +240,41 @@
             ></el-input>
           </el-form-item>
           <el-form-item label="用户名" prop="userName">
-            <span>{{ form.userName }}</span>
+            <span v-if="!isHaveUser">{{ form.userName }}</span>
+            <el-input
+              v-model="form.userName"
+              placeholder="请输入用户名"
+              v-if="isHaveUser"
+            ></el-input>
           </el-form-item>
           <el-form-item label="省份" prop="provinceName">
-            <span>{{ form.provinceName }}</span>
-          </el-form-item>
-          <el-form-item label="地市" prop="cityName">
-            <span>{{ form.cityName }}</span>
+            <span v-if="!isHaveUser">{{ form.provinceName }}</span>
+            <span v-if="isHaveUser">河北省</span>
           </el-form-item>
+          <div v-if="!isHaveUser">
+            <el-form-item label="地市" prop="cityName">
+              <span >{{ form.cityName }}</span>
+            </el-form-item>
+          </div>
+          <div v-if="isHaveUser">
+            <el-form-item label="地市" prop="cityId">
+            <el-select
+                ref="selectCity"
+                v-model="form.cityId"
+                placeholder="请选择地市"
+                style="width: 100%"
+                @change="selectCityChange"
+                v-if="isHaveUser"
+                >
+                <el-option
+                v-for="dict in formCityList.children"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                />
+              </el-select>
+            </el-form-item>
+          </div>
           <el-form-item label="区县" prop="areaId">
             <!-- <span>{{ form.areaName }}</span> -->
             <el-select
@@ -260,13 +287,26 @@
               <el-option
                 v-for="dict in form.areas"
                 :key="dict.value"
+                v-if="!isHaveUser"
                 :label="dict.label"
                 :value="dict.value"
               />
+              <el-option
+                v-for="dict in areasList"
+                :key="dict.areaId"
+                v-if="isHaveUser"
+                :label="dict.areaName"
+                :value="dict.areaId"
+              />
             </el-select>
           </el-form-item>
           <el-form-item label="组织" prop="orgName">
-            <span>{{ form.orgName }}</span>
+            <span v-if="!isHaveUser">{{ form.orgName }}</span>
+            <el-input
+              v-model="form.orgName"
+              placeholder="请输入组织"
+              v-if="isHaveUser"
+            ></el-input>
           </el-form-item>
         </div>
         <div v-if="dialogTitle != '用户详情'">
@@ -356,6 +396,7 @@ import {
   getUserDel,
   getUserDetail,
   getRoleCopy,
+  getAreasByCityId
 } from "../../../common/js/home";
 export default {
   name: "Module",
@@ -363,6 +404,7 @@ export default {
   data() {
     return {
       loading: false,
+      isHaveUser: false,
       cityList: [],
       queryParams: {
         current: 1,
@@ -397,10 +439,20 @@ export default {
         loginName: [
           { required: true, message: "账号不能为空", trigger: "blur" },
         ],
+        phone: [
+          { required: true, message: "手机号不能为空", trigger: "blur" },
+        ],
+        userName: [
+          { required: true, message: "用户名不能为空", trigger: "blur" },
+        ],
+        cityId: [
+          { required: true, message: "请选择地市", trigger: "change" },
+        ],
       },
       checkBoxList: [],
       modelList: [],
       formCityList: [],
+      areasList:[],
     };
   },
   computed: {},
@@ -472,6 +524,7 @@ export default {
       };
       this.dialogTitle = "用户添加";
       this.dialogFormVisible = true;
+      this.isHaveUser = false;
       this.isDisabled = false;
       this.isDisabledEmail = false;
       this.isDisabled2 = false;
@@ -485,6 +538,7 @@ export default {
       };
       this.dialogTitle = "批量复制权限";
       this.dialogFormVisible = true;
+      this.isHaveUser = false;
       this.isDisabled2 = false;
     },
     userInfo(params) {
@@ -511,6 +565,7 @@ export default {
       this.modelList = [];
       this.dialogTitle = "用户编辑";
       this.dialogFormVisible = true;
+      this.isHaveUser = false;
       this.isDisabled = true;
       this.isDisabledEmail = false;
       this.isDisabled2 = false;
@@ -523,6 +578,7 @@ export default {
       this.modelList = [];
       this.dialogTitle = "用户详情";
       this.dialogFormVisible = true;
+      this.isHaveUser = false;
       this.isDisabled = true;
       this.isDisabledEmail = true;
       this.isDisabled2 = true;
@@ -542,6 +598,10 @@ export default {
               ...this.form,
               ...res.data,
             };
+          }else if(res.code == "-1") {
+            this.isHaveUser = true;
+            this.form.provinceId = -1;
+            this.form.provinceName = '河北省';
           } else {
             this.$message({
               type: "error",
@@ -580,6 +640,20 @@ export default {
         }
       });
     },
+    // 表单选择地市change事件
+    selectCityChange(val){
+      console.log('val: ', val);
+      console.log('this.$refs: ', this.$refs);
+      setTimeout(()=>{
+        this.form.cityName = this.$refs.selectCity.selectedLabel
+        console.log('this.form.cityName: ', this.form.cityName);
+        getAreasByCityId({cityId: val}).then(res=>{
+          console.log('res: ', res);
+          this.areasList = res.data;
+        })
+      }, 500)
+
+    },
     // 表单查询条件地区选择
     formareaIdChange(val, index) {
       // console.log("index111: ", index);

+ 1 - 1
src/utils/request.js

@@ -79,7 +79,7 @@ service.interceptors.response.use(res => {
         type: 'error'
       })
       return Promise.reject(new Error(msg))
-    }else if (code !== 200 && code != 1) {
+    }else if (code !== 200 && code != 1 && code != '-1' && code != 0 && code != '-2' && code != '-3') {
       Notification.error({
         title: msg
       })