yf_zkl 4 سال پیش
والد
کامیت
f22b6eea54
2فایلهای تغییر یافته به همراه102 افزوده شده و 66 حذف شده
  1. 10 11
      minggao/src/page/systemmanger/customsManger.vue
  2. 92 55
      minggao/src/page/systemmanger/userManger.vue

+ 10 - 11
minggao/src/page/systemmanger/customsManger.vue

@@ -20,7 +20,7 @@
                 >搜索</el-button
               >
               <el-button type="primary" size="mini" @click="addrUser"
-                >添加用户</el-button
+                >添加组织</el-button
               >
             </div>
           </div>
@@ -30,7 +30,7 @@
       <!-- 列表 -->
       <tree-table
         v-loading="loading"
-        style="height: 680px"
+        style="height: 680px; overflow-y: auto;"
         ref="recTree"
         :list.sync="treeDataSource"
         @actionFunc="actionFunc"
@@ -350,17 +350,16 @@ export default {
               });
               this.addrUserVisible = false;
               this.tabListData();
-            } else {
-              this.$message({
-                message: "失败!",
-                type: "error",
-                duration: 1500
-              });
             }
+            //  else {
+            //   this.$message({
+            //     message: "失败!",
+            //     type: "error",
+            //     duration: 1500
+            //   });
+            // }
           })
-          .catch(err => {
-            console.log(err);
-          });
+          .catch(err => {});
       }
     },
 

+ 92 - 55
minggao/src/page/systemmanger/userManger.vue

@@ -59,7 +59,7 @@
             :data="tableData"
             v-loading="loading2"
             stripe
-            style="width: 100%"
+            style="width: 100%; height: 90%;"
           >
             <el-table-column prop="ind" label="序号" width="90">
             </el-table-column>
@@ -168,7 +168,13 @@
     </el-card>
 
     <!-- 添加 - 编辑 用户 -->
-    <el-dialog :title="tltData" :visible.sync="userVisible" width="30%">
+    <el-dialog
+      :title="tltData"
+      :visible.sync="userVisible"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      width="30%"
+    >
       <el-form ref="form" :rules="rules" :model="form" label-width="150px">
         <el-form-item label="账号: " prop="user">
           <el-input
@@ -235,7 +241,7 @@
         </el-form-item>
 
         <el-form-item label="角色: " prop="role">
-          <el-cascader
+          <!-- <el-cascader
             filterable
             :v-model="form.role"
             :key="refreshItem"
@@ -249,6 +255,24 @@
               checkStrictly: true
             }"
             clearable
+          ></el-cascader> -->
+
+          <el-cascader
+            filterable
+            @change="roleChange"
+            :key="refreshItem"
+            :change-on-select="true"
+            v-model="form.role"
+            :options="roleData"
+            :props="{
+              value: 'id',
+              label: 'role_name',
+              multiple: true,
+              emitPath: false,
+              checkStrictly: true
+            }"
+            :clearable="true"
+            placeholder="请选择角色"
           ></el-cascader>
         </el-form-item>
 
@@ -273,7 +297,12 @@
           label="账号状态: "
           prop="state"
         >
-          <el-select size="mini" v-model="form.state" placeholder="请选择">
+          <el-select
+            clearable
+            size="mini"
+            v-model="form.state"
+            placeholder="请选择"
+          >
             <el-option label="正常" value="1"></el-option>
             <el-option label="停用" value="4"></el-option>
           </el-select>
@@ -297,14 +326,23 @@ export default {
   data() {
     //input验证 - 密码框 - 禁止输入汉字
     const checkPath = (rule, value, callback) => {
-      this.form.password = value.replace(/[\u4E00-\u9FA5]/g, "");
-      // 一定要执行回调函数
-      // 否则不起效果
-      callback();
+      var reg = new RegExp("[\\u4E00-\\u9FFF]+", "g");
+      if (value == "") {
+        callback(new Error("请输入密码"));
+      }
+
+      if (reg.test(value)) {
+        callback(new Error("密码不能包含汉字!"));
+      }
+
+      if (value.indexOf("#") !== -1 || value.indexOf("@") !== -1) {
+        callback();
+      } else {
+        callback(new Error("密码必须包含*#@_字符之一"));
+      }
     };
     // input验证 - 验证手机号
     var checkphone = (rule, value, callback) => {
-      // let phoneReg = /(^1[3|4|5|6|7|8|9]\d{9}$)|(^09\d{8}$)/;
       if (value == "") {
         callback(new Error("请输入手机号"));
       } else if (!this.isCellPhone(value)) {
@@ -352,28 +390,24 @@ export default {
         state: "" // 账号状态
       },
       rules: {
-        user: [
-          { required: true, message: "请输入账号", trigger: "blur" }
-          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
-        ],
+        user: [{ required: true, message: "请输入账号", trigger: "blur" }],
         password: [
-          { required: true, message: "请输入密码", trigger: "blur" },
-          { validator: checkPath, trigger: "change" }
-          //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
+          { required: true, validator: checkPath, trigger: "blur" }
+          // { validator: checkPath, trigger: "blur" }
         ],
         name: [
           { required: true, message: "请输入姓名", trigger: "blur" }
           //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
         ],
         judge: [
-          { required: true, message: "隶属海关,可多选", trigger: "blur" }
+          { required: true, message: "隶属海关,可多选", trigger: "change" }
           //   { min: 3, max: 5, message: "长度在 1 到 15 个字符", trigger: "blur" },
         ],
         role: [
           {
             required: true,
             message: "请选择角色,可多选",
-            trigger: "blur"
+            trigger: "change"
           }
           //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
         ],
@@ -445,44 +479,37 @@ export default {
       this.editorObj = e;
 
       this.form.judge = [];
+      var orgList = []; // 组织
+      var roleList = []; // 角色
       for (var i = 0; i < e.org_list.length; i++) {
         var arr = [e.org_list[i].org_id];
-        this.form.judge.push(arr);
+        orgList.push(arr);
       }
       if (e.parent_list.length != 0) {
         var data = e.parent_list;
-        console.log(data);
         for (var i = 0; i < data.length; i++) {
-          // console.log(data[i]);
-          // if (data[i].superior_org.length > 1) {
           var data2 = data[i];
-          // console.log(data2);
           for (var j = 0; j < data2.length; j++) {
-            console.log(data2[j]);
-            this.form.judge[i].unshift(data2[j].org_id);
-            // }
-            // } else {
-            //   if (data[i].superior_org.length != 0) {
-            //     this.form.judge[i].unshift(data[i].superior_org[0].org_id);
-            //   }
+            orgList[i].unshift(data2[j].org_id);
           }
         }
       }
-      console.log(this.form.judge);
-
-      // this.form = {
-      //   user: data.username,
-      //   password: "",
-      //   name: data.real_name,
-      //   // judge: orgList,
-      //   // role: roleList,
-      //   judge: data.org_list,
-      //   role: data.role_list,
-      //   phone: data.mobile,
-      //   mailbox: data.email,
-      //   state: data.state
-      // };
-      // console.log(this.form);
+      // 角色
+      for (var x = 0; x < e.role_list.length; x++) {
+        var a = [e.role_list[x].role_id];
+        roleList.push(a);
+      }
+
+      this.form = {
+        user: e.username,
+        password: "",
+        name: e.real_name,
+        judge: orgList,
+        role: roleList,
+        phone: e.mobile,
+        mailbox: e.email,
+        state: e.state
+      };
       this.userVisible = true;
     },
     // 停用
@@ -630,13 +657,22 @@ export default {
     submitForm() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          // 处理隶属海关、角色
+          var orgList = []; //隶属海关
+          var roleList = []; // 角色
+          for (var i = 0; i < this.form.judge.length; i++) {
+            orgList.push(this.form.judge[i][this.form.judge[i].length - 1]);
+          }
+          for (var j = 0; j < this.form.role.length; j++) {
+            roleList.push(this.form.role[j]);
+          }
           if (this.tltData == "添加用户") {
             var postData = this.qs.stringify({
               username: this.form.user, // 登录账号 必
               real_name: this.form.name, // 用户名 必
               password: this.form.password, // 密码 必
-              org_id_list: JSON.stringify(this.form.judge), //组织id数组 必
-              role_id_list: JSON.stringify(this.form.role), // 角色id数组 必
+              org_id_list: JSON.stringify(orgList), //组织id数组 必
+              role_id_list: JSON.stringify(roleList), // 角色id数组 必
               state: this.form.state, //用户状态
               mobile: this.form.phone, // 手机号
               email: this.form.mailbox //邮箱地址
@@ -646,8 +682,8 @@ export default {
             var postData = this.qs.stringify({
               user_id: this.editorObj.user_id, // 用户id 必
               real_name: this.form.name, // 用户名 必
-              org_id_list: JSON.stringify(this.form.judge), //组织id数组 必
-              role_id_list: JSON.stringify(this.form.role), //角色id数组 必
+              org_id_list: JSON.stringify(orgList), //组织id数组 必
+              role_id_list: JSON.stringify(roleList), //角色id数组 必
               mobile: this.form.phone, //手机号
               email: this.form.mailbox //邮箱地址
             });
@@ -665,10 +701,11 @@ export default {
                 type: "success",
                 duration: 1500
               });
+
+              this.$refs["form"].resetFields();
+              this.userVisible = false;
+              this.userListData();
             }
-            this.$refs["form"].resetFields();
-            this.userVisible = false;
-            this.userListData();
           });
         } else {
           return false;
@@ -704,9 +741,9 @@ export default {
               list.push(item);
             });
             this.tableData = list;
-            this.loading2 = false;
             this.pageSum = res.data.data.page_item;
           }
+          this.loading2 = false;
         })
         .catch(err => {
           this.loading2 = false;
@@ -734,11 +771,11 @@ export default {
             this.tissueList = list; // 弹框组织列表
             var data = res.data.data.page_list;
             this.data = [obj, ...data]; // 左侧组织列表
-            this.loading = false;
           }
+          this.loading = false;
         })
         .catch(err => {
-          this.loading2 = false;
+          this.loading = false;
         });
     },