zhangyun před 4 roky
rodič
revize
9427e93cb7

+ 1 - 0
minggao/src/page/commandCenter/laboratory.vue

@@ -418,6 +418,7 @@ export default {
 
     // 下页
     newPage(page) {
+      this.loading = true;
       this.page = page;
       this.tableList();
     },

+ 35 - 16
minggao/src/page/commandCenter/realTime.vue

@@ -11,6 +11,7 @@
           <el-tree
             :data="data"
             :props="defaultProps"
+             v-loading="loading2"
             @node-click="handleNodeClick"
           ></el-tree>
         </div>
@@ -50,7 +51,12 @@
             </el-col>
           </el-row>
 
-          <el-table :data="tableData" stripe style="width: 100%">
+          <el-table
+            v-loading="loading"
+            :data="tableData"
+            stripe
+            style="width: 100%"
+          >
             <el-table-column prop="ind" label="序号" width="180">
             </el-table-column>
             <el-table-column prop="real_name" label="组织成员" width="330">
@@ -344,10 +350,12 @@ export default {
 
       // 表格
       tableData: [],
+      loading: false, // 加载
       org_id: "", //组织id
 
       // 树形图
       data: [],
+      loading2: false,
       defaultProps: {
         children: "childrens",
         label: "org_name"
@@ -461,7 +469,11 @@ export default {
     },
 
     // 分页
-    changeList(page) {},
+    changeList(page) {
+      this.page = page;
+      this.loading = true;
+      this.userListData();
+    },
 
     // 获取左侧组织列表
     organizationData() {
@@ -483,9 +495,10 @@ export default {
             var data = res.data.data.page_list;
             this.data = [obj, ...data]; // 左侧组织列表
           }
+          this.loading2 = false
         })
         .catch(err => {
-          console.log(err);
+          this.loading2 = false
         });
     },
 
@@ -501,18 +514,23 @@ export default {
           mobile: this.phoneVal, // 电话
           org_id: this.org_id
         })
-      }).then(res => {
-        if (res.data.data.page_item !== 0) {
-          var data = res.data.data.page_list;
-          var list = [];
-          data.forEach((item, index) => {
-            item.ind = index + 1;
-            list.push(item);
-          });
-          this.tableData = list;
-          this.pageSum = res.data.data.page_item;
-        }
-      });
+      })
+        .then(res => {
+          if (res.data.data.page_item !== 0) {
+            var data = res.data.data.page_list;
+            var list = [];
+            data.forEach((item, index) => {
+              item.ind = index + 1;
+              list.push(item);
+            });
+            this.tableData = list;
+            this.pageSum = res.data.data.page_item;
+            this.loading = false;
+          }
+        })
+        .catch(err => {
+          this.loading = false;
+        });
     },
 
     // 文本消息
@@ -876,9 +894,10 @@ export default {
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    this.loading = true;
+    this.loading2 = true; 
     this.organizationData(); //获取左侧组织列表
     this.userListData(); // 获取右侧用户列表
-
     this.msgInit(); // 文本消息功能初始化
     this.videoInit(); // 视频消息功能初始化
   },

+ 1 - 0
minggao/src/page/commandCenter/supervise.vue

@@ -298,6 +298,7 @@ export default {
     // 分页
     newPage(page) {
       this.page = page;
+      this.loading = true;
       this.tableList();
     },
 

+ 1 - 0
minggao/src/page/commandCenter/superviseLog.vue

@@ -246,6 +246,7 @@ export default {
     // 下页
     newPage(page) {
       this.page = page;
+      this.loadingShow = true
       this.tableList();
     },
 

+ 25 - 20
minggao/src/page/commandCenter/taskRegulator.vue

@@ -653,20 +653,20 @@ export default {
     },
 
     // 新增编辑任务弹框
-    // dialogVisible(val) {
-    //   if (val == false) {
-    //     this.taskObj = {};
-    //     this.ruleForm.region = ""; // 任务处理人
-    //     this.ruleForm.overseer = ""; //任务监督人
-    //     this.ruleForm.date = ""; // 任务时间
-    //     this.ruleForm.startTime = ""; // 开始时间
-    //     this.ruleForm.endTime = ""; // 结束时间
-    //     this.ruleForm.type = ""; // 任务类型
-    //     this.ruleForm.checkList = ""; // 诱捕器
-    //     this.ruleForm.desc = ""; // 任务描述
-    //     this.$refs["ruleForm"].resetFields();
-    //   }
-    // },
+    dialogVisible(val) {
+      if (val == false) {
+        this.taskObj = {};
+        this.ruleForm.region = ""; // 任务处理人
+        this.ruleForm.overseer = ""; //任务监督人
+        this.ruleForm.date = ""; // 任务时间
+        this.ruleForm.startTime = ""; // 开始时间
+        this.ruleForm.endTime = ""; // 结束时间
+        this.ruleForm.type = ""; // 任务类型
+        this.ruleForm.checkList = []; // 诱捕器
+        this.ruleForm.desc = ""; // 任务描述
+        // this.$refs["ruleForm"].resetFields();
+      }
+    },
 
     // 选择诱捕器弹框
     deviceVisible(val) {
@@ -738,6 +738,7 @@ export default {
     // 分页
     newPage(page) {
       this.page = page;
+      this.loading = true;
       this.tableList();
     },
     // 表格数据
@@ -964,6 +965,11 @@ export default {
             this.ruleForm.endTime = "";
           }
 
+          // 判断当前任务类型是否为有害生物
+          if (this.ruleForm.type !== "有害生物监测") {
+            this.ruleForm.checkList = [];
+          }
+
           if (this.titleData == "发布任务") {
             this.$axios({
               method: "POST",
@@ -975,11 +981,9 @@ export default {
                 last_time: this.ruleForm.endTime, // 任务完成时间
                 task_type: this.ruleForm.type, // 任务类型
                 tesk_msg: this.ruleForm.desc, // 任务描述
-                // trap_id_list: JSON.stringify(this.checkList) // 诱捕器id列表
-                trap_id_list: JSON.stringify(this.ruleForm.checkList), // 诱捕器id列表
-              }),
-            }).then((res) => {
-              // console.log(res);
+                trap_id_list: JSON.stringify(this.ruleForm.checkList) // 诱捕器id列表
+              })
+            }).then(res => {
               if (res.data.message == "") {
                 this.loading = true;
                 this.tableData = [];
@@ -1256,7 +1260,8 @@ export default {
     width: 50%;
   }
   /deep/.el-date-editor {
-    width: 205px;
+    // width: 195px;
+    width: 200px;
   }
   /deep/.el-form-item__error {
     width: 130px;

+ 37 - 34
minggao/src/page/forecasting/trap/bait.vue

@@ -113,7 +113,7 @@ export default {
       tableData: [],
       queryInfo: {
         page: 1,
-        inducer_name: "",
+        inducer_name: ""
       },
       total: 10,
       loading: false,
@@ -124,21 +124,21 @@ export default {
         inducer_name: "",
         expire: "",
         messages: "",
-        inducer_id: "",
+        inducer_id: ""
       },
       rules: {
         inducer_name: [
-          { required: true, message: "请输入活动名称", trigger: "blur" },
+          { required: true, message: "请输入活动名称", trigger: "blur" }
         ],
         expire: [
           { required: true, message: "请输入活动名称", trigger: "blur" },
-          { validator: checklnglat, trigger: "blur" },
+          { validator: checklnglat, trigger: "blur" }
         ],
         messages: [
-          { required: true, message: "请输入活动名称", trigger: "blur" },
-        ],
+          { required: true, message: "请输入活动名称", trigger: "blur" }
+        ]
       },
-      addtitle: "新增诱剂",
+      addtitle: "新增诱剂"
     };
   },
   //监听属性 类似于data概念
@@ -156,9 +156,9 @@ export default {
         data: this.qs.stringify({
           page_size: 20,
           page: this.queryInfo.page,
-          inducer_name: this.queryInfo.inducer_name, //              非必传(string)     诱剂名称 搜索项
-        }),
-      }).then((res) => {
+          inducer_name: this.queryInfo.inducer_name //              非必传(string)     诱剂名称 搜索项
+        })
+      }).then(res => {
         this.loading = false;
         console.log(res.data.data);
         this.total = res.data.data.total_item;
@@ -191,29 +191,30 @@ export default {
       var str = "您确定删除<" + events.inducer_name + ">吗?";
       this.$confirm(str, "删除诱剂", {
         confirmButtonText: "确定",
-        cancelButtonText: "取消",
+        cancelButtonText: "取消"
       })
         .then(() => {
           this.$axios({
             method: "POST",
-            url: "/api/api_gateway?method=monitor_manage.maintain.inducer_delete",
+            url:
+              "/api/api_gateway?method=monitor_manage.maintain.inducer_delete",
             data: this.qs.stringify({
-              inducer_id: events.inducer_id,
-            }),
-          }).then((res) => {
+              inducer_id: events.inducer_id
+            })
+          }).then(res => {
             console.log(res);
             if (res.data.data) {
               this.$message({
                 showClose: true,
                 message: "删除成功!",
-                type: "success",
+                type: "success"
               });
               this.getcbdlist();
             } else {
               this.$message({
                 showClose: true,
                 message: "删除失败," + res.data.message,
-                type: "warning",
+                type: "warning"
               });
             }
           });
@@ -221,31 +222,32 @@ export default {
         .catch(() => {
           this.$message({
             type: "info",
-            message: "已取消删除",
+            message: "已取消删除"
           });
         });
     },
     submitForm(formName) {
       console.log(this.ruleForm);
-      this.$refs[formName].validate((valid) => {
+      this.$refs[formName].validate(valid => {
         if (valid) {
           if (this.addtitle == "修改诱剂") {
             this.$axios({
               method: "POST",
-              url: "/api/api_gateway?method=monitor_manage.maintain.inducer_modify",
+              url:
+                "/api/api_gateway?method=monitor_manage.maintain.inducer_modify",
               data: this.qs.stringify({
                 inducer_id: this.ruleForm.inducer_id,
                 inducer_name: this.ruleForm.inducer_name,
                 expire: Number(this.ruleForm.expire),
-                messages: this.ruleForm.messages,
-              }),
-            }).then((res) => {
+                messages: this.ruleForm.messages
+              })
+            }).then(res => {
               console.log(res);
               if (res.data.data) {
                 this.$message({
                   showClose: true,
                   message: "修改成功!",
-                  type: "success",
+                  type: "success"
                 });
                 this.addtraptf = false;
                 this.getcbdlist();
@@ -254,26 +256,27 @@ export default {
                 this.$message({
                   showClose: true,
                   message: "修改失败" + res.data.message,
-                  type: "warning",
+                  type: "warning"
                 });
               }
             });
           } else if (this.addtitle == "新增诱剂") {
             this.$axios({
               method: "POST",
-              url: "/api/api_gateway?method=monitor_manage.maintain.inducer_add",
+              url:
+                "/api/api_gateway?method=monitor_manage.maintain.inducer_add",
               data: this.qs.stringify({
                 inducer_name: this.ruleForm.inducer_name,
                 expire: this.ruleForm.expire,
-                messages: this.ruleForm.messages,
-              }),
-            }).then((res) => {
+                messages: this.ruleForm.messages
+              })
+            }).then(res => {
               console.log(res);
               if (res.data.data) {
                 this.$message({
                   showClose: true,
                   message: "新增成功!",
-                  type: "success",
+                  type: "success"
                 });
                 this.addtraptf = false;
                 this.getcbdlist();
@@ -282,7 +285,7 @@ export default {
                 this.$message({
                   showClose: true,
                   message: "添加失败" + res.data.message,
-                  type: "warning",
+                  type: "warning"
                 });
               }
             });
@@ -304,7 +307,7 @@ export default {
     dioclose() {
       console.log(111);
       // this.$refs[formName].resetFields();
-    },
+    }
   },
   beforeCreate() {}, //生命周期 - 创建之前
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -318,7 +321,7 @@ export default {
   updated() {}, //生命周期 - 更新之后
   beforeDestroy() {}, //生命周期 - 销毁之前
   destroyed() {}, //生命周期 - 销毁完成
-  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
 <style scoped lang="less">
@@ -350,4 +353,4 @@ export default {
   background-color: #409eff;
   border-color: #409eff;
 }
-</style>
+</style>

+ 50 - 46
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>
@@ -29,7 +29,8 @@
 
       <!-- 列表 -->
       <tree-table
-        style="height: 680px"
+        v-loading="loading"
+        style="height: 680px; overflow-y: auto;"
         ref="recTree"
         :list.sync="treeDataSource"
         @actionFunc="actionFunc"
@@ -116,7 +117,7 @@ import "../../mock/mock";
 export default {
   //import引入的组件需要注入到对象中才能使用
   components: {
-    treeTable,
+    treeTable
   },
   data() {
     //这里存放数据
@@ -124,6 +125,7 @@ export default {
       fullHeight: document.documentElement.clientHeight - 116, //
       input: "", // 组织搜索
       treeDataSource: [],
+      loading: false, // 组织 - 加载
       tableSum: 0, // 表格列表总数
       page: 1, // 当前页数
 
@@ -132,15 +134,15 @@ export default {
       higherList: [
         {
           value: "",
-          label: "",
-        },
+          label: ""
+        }
       ],
       form: {
         name: "",
-        higher: "",
+        higher: ""
       },
       tltData: "添加隶属海关",
-      userData: {}, // 点击编辑时获取到的当前数据
+      userData: {} // 点击编辑时获取到的当前数据
     };
   },
   //监听属性 类似于data概念
@@ -161,12 +163,12 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function () {
+        setTimeout(function() {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
       }
-    },
+    }
   },
   //方法集合
   methods: {
@@ -194,13 +196,13 @@ export default {
       if (m.level == 1) {
         this.$set(this.higherList, 0, {
           value: "",
-          label: "根类别",
+          label: "根类别"
         });
         this.form.higher = "";
       } else {
         this.$set(this.higherList, 0, {
           value: m.parent_id,
-          label: m.parent_name,
+          label: m.parent_name
         });
         this.form.higher = m.parent_name;
       }
@@ -215,41 +217,41 @@ export default {
       this.$confirm("此操作将永久删除, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           this.$axios({
             method: "POST",
             url: "/api/api_gateway?method=sysmenage.usermanager.org_delete",
             data: this.qs.stringify({
-              org_id: m.id,
-            }),
+              org_id: m.id
+            })
           })
-            .then((res) => {
+            .then(res => {
               if (res.data.data == true) {
                 this.$message({
                   message: "删除成功了",
                   type: "success",
-                  duration: 1500,
+                  duration: 1500
                 });
                 this.tabListData();
               } else {
                 this.$message({
                   message: "删除失败",
                   type: "error",
-                  duration: 1500,
+                  duration: 1500
                 });
               }
               // console.log(res);
             })
-            .catch((err) => {
+            .catch(err => {
               // console.log(err);
             });
         })
         .catch(() => {
           this.$message({
             type: "info",
-            message: "已取消删除",
+            message: "已取消删除"
           });
         });
 
@@ -271,7 +273,7 @@ export default {
       this.tltData = "添加隶属海关"; //改变弹框标题
       this.$set(this.higherList, 0, {
         value: m.id,
-        label: m.org_name,
+        label: m.org_name
       });
       this.form.higher = m.org_name;
       this.addrUserVisible = true; //打开弹框
@@ -294,8 +296,8 @@ export default {
       this.higherList = [
         {
           label: "根类别",
-          value: "",
-        },
+          value: ""
+        }
       ];
       this.addrUserVisible = true;
       this.tabListData()
@@ -308,13 +310,13 @@ export default {
         this.$message({
           message: "请填写组织名称!",
           type: "warning",
-          duration: 1500,
+          duration: 1500
         });
       } else if (this.form.name.split(" ").join("").length == 0) {
         this.$message({
           message: "不能填写空格!",
           type: "warning",
-          duration: 1500,
+          duration: 1500
         });
       } else {
         // 请求添加接口
@@ -323,43 +325,42 @@ export default {
           var url = "/api/api_gateway?method=sysmenage.usermanager.org_modify";
           var postData = this.qs.stringify({
             org_name: this.form.name, //组织名称
-            org_id: this.userData.id, // 组织id
+            org_id: this.userData.id // 组织id
           });
         } else if (this.tltData == "添加隶属海关") {
           // 添加
           var url = "/api/api_gateway?method=sysmenage.usermanager.org_add";
           var postData = this.qs.stringify({
             org_name: that.form.name, //组织名称
-            parent_org_id: that.higherList[0].value, // 上级组织id,没有上级组织表示创建的组织是顶级组织
+            parent_org_id: that.higherList[0].value // 上级组织id,没有上级组织表示创建的组织是顶级组织
           });
         }
 
         this.$axios({
           method: "POST",
           url,
-          data: postData,
+          data: postData
         })
-          .then((res) => {
+          .then(res => {
             console.log(res);
             if (res.data.data == true) {
               this.$message({
                 message: "成功!",
                 type: "success",
-                duration: 1500,
+                duration: 1500
               });
               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 => {});
       }
     },
 
@@ -371,10 +372,10 @@ export default {
         data: this.qs.stringify({
           page: this.page,
           page_item: "9",
-          org_name: this.input,
-        }),
+          org_name: this.input
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.total_item !== 0) {
             this.treeDataSource = res.data.data.page_list;
             this.tableSum = res.data.data.total_item;
@@ -382,20 +383,23 @@ export default {
             this.treeDataSource = [];
             this.tableSum = 0;
           }
+          this.loading = false;
         })
-        .catch((err) => {
+        .catch(err => {
+          this.loading = false;
         });
     },
 
     // 搜索
     searchData() {
       this.tabListData();
-    },
+    }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    this.loading = true;
     this.tabListData(); // 请求表格列表
   },
   beforeCreate() {}, //生命周期 - 创建之前
@@ -404,10 +408,10 @@ export default {
   updated() {}, //生命周期 - 更新之后
   beforeDestroy() {}, //生命周期 - 销毁之前
   destroyed() {}, //生命周期 - 销毁完成
-  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
-<style lang='less' scoped>
+<style lang="less" scoped>
 .customsManger_box {
   /deep/.el-card {
     overflow: hidden;
@@ -438,4 +442,4 @@ export default {
     margin: 0 0 0 15px;
   }
 }
-</style>
+</style>

+ 5 - 3
minggao/src/page/systemmanger/dayRecord.vue

@@ -46,7 +46,7 @@
       </el-row>
 
       <!-- 表格 -->
-      <el-table :data="tableData" stripe style="width: 100%">
+      <el-table :data="tableData" v-loading="loading" stripe style="width: 100%">
         <el-table-column prop="id" label="序号" width="180"> </el-table-column>
         <el-table-column prop="create_time" label="操作时间" width="200">
         </el-table-column>
@@ -103,6 +103,7 @@ export default {
 
       // 表格
       tableData: [],
+      loading: false, // 加载
 
       // 分页
       page: 1,
@@ -169,14 +170,14 @@ export default {
         }),
       })
         .then((res) => {
-          console.log(res);
           if (res.data.data.page_item !== 0) {
             this.tableData = res.data.data.page_list;
             this.tableSum = res.data.data.page_item;
           }
+          this.loading = false
         })
         .catch((err) => {
-          // console.log(err)
+          this.loading = false
         });
     },
 
@@ -209,6 +210,7 @@ export default {
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    this.loading = true
     this.tableList();
   },
   beforeCreate() {}, //生命周期 - 创建之前

+ 5 - 2
minggao/src/page/systemmanger/harmfulBiology.vue

@@ -28,7 +28,7 @@
       </el-row>
 
       <!-- 列表 -->
-      <el-table :data="tableData" stripe style="width: 100%">
+      <el-table :data="tableData" v-loading="loading" stripe style="width: 100%">
         <el-table-column prop="ind" label="序号" width="120"> </el-table-column>
         <el-table-column prop="pest_name" label="有害生物名称" width="280">
         </el-table-column>
@@ -150,6 +150,7 @@ export default {
           endDate: "2021-01-06 10:00:00"
         }
       ],
+      loading: false, // 加载
 
       // 编辑、 添加
       tltData: "添加有害生物",
@@ -261,9 +262,10 @@ export default {
           } else {
             this.tableData = [];
           }
+          this.loading = false
         })
         .catch(err => {
-          console.log(err);
+          this.loading = false
         });
     },
 
@@ -380,6 +382,7 @@ export default {
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    this.loading = true
     this.harmfulBiologyList();
   },
   beforeCreate() {}, //生命周期 - 创建之前

+ 5 - 2
minggao/src/page/systemmanger/role.vue

@@ -28,7 +28,7 @@
       </el-row>
 
       <!-- 列表 -->
-      <el-table :data="tableData" stripe style="width: 100%">
+      <el-table :data="tableData" v-loading="loading" stripe style="width: 100%">
         <el-table-column prop="ind" label="序号" width="280"></el-table-column>
         <el-table-column prop="role_name" label="角色名称" width="380">
         </el-table-column>
@@ -136,6 +136,7 @@ export default {
       fullHeight: document.documentElement.clientHeight - 116, //
       input: "",
       tableData: [],
+      loading: false, // 加载
       page: 1,
       pagesum: 0,
 
@@ -238,9 +239,10 @@ export default {
             this.tableData = [];
             this.pagesum = 0;
           }
+          this.loading = false
         })
         .catch((err) => {
-          // console.log(err)
+          this.loading = false
         });
     },
 
@@ -489,6 +491,7 @@ export default {
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    this.loading = true
     this.tabListData(); // 表格数据
   },
   beforeCreate() {}, //生命周期 - 创建之前

+ 213 - 109
minggao/src/page/systemmanger/userManger.vue

@@ -12,6 +12,7 @@
             :data="data"
             :props="defaultProps"
             @node-click="handleNodeClick"
+            v-loading="loading"
           ></el-tree>
         </div>
 
@@ -54,7 +55,12 @@
           </el-row>
 
           <!-- 表格 -->
-          <el-table :data="tableData" stripe style="width: 100%">
+          <el-table
+            :data="tableData"
+            v-loading="loading2"
+            stripe
+            style="width: 100%; height: 90%;"
+          >
             <el-table-column prop="ind" label="序号" width="90">
             </el-table-column>
             <el-table-column prop="real_name" label="姓名" width="190">
@@ -66,13 +72,17 @@
                 <span>{{ scope.row.mobile || "无" }}</span>
               </template>
             </el-table-column>
-            <el-table-column prop="org_list" label="所属组织" width="280">
+            <el-table-column
+              :show-overflow-tooltip="true"
+              prop="org_list"
+              label="所属组织"
+              width="280"
+            >
               <template slot-scope="scope">
-                <span
-                  v-for="(item, index) in scope.row.org_list"
-                  :key="index"
-                  >{{ item.org_name }}</span
-                >
+                <span v-for="(item, index) in scope.row.org_list" :key="index"
+                  >{{ item.org_name }}
+                  <span v-if="index !== scope.row.org_list.length - 1">、</span>
+                </span>
               </template>
             </el-table-column>
             <el-table-column prop="state" label="状态" width="120">
@@ -158,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
@@ -189,7 +205,9 @@
         </el-form-item>
 
         <el-form-item label="隶属海关: " prop="judge">
-          <el-cascader
+          <!-- <el-cascader
+            :change-on-select="true"
+            filterable
             :v-model="form.judge"
             :key="refreshItem"
             :options="tissueList"
@@ -198,16 +216,33 @@
               multiple: true,
               label: 'org_name',
               value: 'id',
-              emitPath: false,
               children: 'childrens',
-              checkStrictly: true,
+              checkStrictly: true
             }"
             clearable
+          ></el-cascader> -->
+          <el-cascader
+            filterable
+            @change="judgeData"
+            :key="refreshItem"
+            :change-on-select="true"
+            v-model="form.judge"
+            :options="tissueList"
+            :props="{
+              multiple: true,
+              label: 'org_name',
+              value: 'id',
+              children: 'childrens',
+              checkStrictly: true
+            }"
+            :clearable="true"
+            placeholder="请选择隶属海关"
           ></el-cascader>
         </el-form-item>
 
         <el-form-item label="角色: " prop="role">
-          <el-cascader
+          <!-- <el-cascader
+            filterable
             :v-model="form.role"
             :key="refreshItem"
             :options="roleData"
@@ -217,9 +252,27 @@
               label: 'role_name',
               multiple: true,
               emitPath: false,
-              checkStrictly: true,
+              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>
 
@@ -244,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>
@@ -268,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)) {
@@ -288,11 +355,14 @@ export default {
     return {
       fullHeight: document.documentElement.clientHeight - 116, //
 
+      loading: true, //加载 - 组织列表
+      loading2: true, // 加载 - 表格列表
+
       // 树形图
       data: [],
       defaultProps: {
         children: "childrens",
-        label: "org_name",
+        label: "org_name"
       },
 
       // 搜索
@@ -317,41 +387,37 @@ export default {
         role: [], //角色
         phone: "", // 手机号码
         mailbox: "", //邮箱
-        state: "", // 账号状态
+        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" },
+          { 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",
-          },
+            message: "请选择角色,可多选",
+            trigger: "change"
+          }
           //   { min: 3, max: 5, message: "长度在 1 到 30 个字符", trigger: "blur" },
         ],
-        phone: [{ required: true, validator: checkphone, trigger: "blur" }],
+        phone: [{ required: true, validator: checkphone, trigger: "blur" }]
       },
       roleData: [], // 角色下拉框
       refreshItem: 0, //清除角色、组织值
       tissueList: [], // 组织下拉框
       editorObj: {}, //点击编辑选中当前的行数据
-      org_id: "", //组织id
+      org_id: "" //组织id
     };
   },
   //监听属性 类似于data概念
@@ -364,7 +430,7 @@ export default {
         this.fullHeight = val;
         this.timer = true;
         let that = this;
-        setTimeout(function () {
+        setTimeout(function() {
           //防止过度调用监测事件,导致卡顿
           that.timer = false;
         }, 400);
@@ -373,10 +439,14 @@ export default {
 
     userVisible(val) {
       if (val == false) {
-        this.$refs["form"].resetFields();
+        // this.$refs["form"].resetFields();
+        for (var key in this.form) {
+            this.form[key] = "";
+            // console.log(key)
+          }
         this.refreshItem++;
       }
-    },
+    }
   },
   //方法集合
   methods: {
@@ -402,33 +472,52 @@ export default {
 
     // 树形图
     handleNodeClick(data) {
-      console.log(data);
       this.org_id = data.id;
+      this.loading2 = true;
       this.userListData();
     },
 
     // 编辑
-    actionFunc(data) {
+    actionFunc(e) {
       this.tltData = "编辑用户";
-      console.log(data);
-      this.editorObj = data;
+      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];
+        orgList.push(arr);
+      }
+      if (e.parent_list.length != 0) {
+        var data = e.parent_list;
+        for (var i = 0; i < data.length; i++) {
+          var data2 = data[i];
+          for (var j = 0; j < data2.length; j++) {
+            orgList[i].unshift(data2[j].org_id);
+          }
+        }
+      }
+      // 角色
+      for (var x = 0; x < e.role_list.length; x++) {
+        var a = [e.role_list[x].role_id];
+        roleList.push(a);
+      }
+
       this.form = {
-        user: data.username,
+        user: e.username,
         password: "",
-        name: data.real_name,
-        judge: data.org_list,
-        role: data.role_list,
-        phone: data.mobile,
-        mailbox: data.email,
-        state: data.state,
+        name: e.real_name,
+        judge: orgList,
+        role: roleList,
+        phone: e.mobile,
+        mailbox: e.email,
+        state: e.state
       };
-      console.log(this.form);
       this.userVisible = true;
     },
-
     // 停用
     outUse(data) {
-      console.log(data);
       if (data.state == "已停用") {
         var msg = "启用";
       } else if (data.state == "正常") {
@@ -437,7 +526,7 @@ export default {
       this.$confirm("此操作将" + msg + "该账号, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           this.$axios({
@@ -445,14 +534,14 @@ export default {
             url: "/api/api_gateway?method=sysmenage.usermanager.user_disable",
             data: this.qs.stringify({
               user_id: data.user_id,
-              state: msg == "启用" ? 1 : 4,
-            }),
-          }).then((res) => {
+              state: msg == "启用" ? 1 : 4
+            })
+          }).then(res => {
             if (res.data.data == true) {
               this.$message({
                 type: "success",
                 message: "成功",
-                duration: 1500,
+                duration: 1500
               });
               this.userListData();
             }
@@ -461,7 +550,7 @@ export default {
         .catch(() => {
           this.$message({
             type: "info",
-            message: "已取消",
+            message: "已取消"
           });
         });
     },
@@ -473,29 +562,29 @@ export default {
         cancelButtonText: "取消",
         inputPlaceholder: "默认密码为@12345678",
         inputErrorMessage: "新密码格式不正确",
-        inputValidator: (val) => {
+        inputValidator: val => {
           if (escape(val).indexOf("%u") != -1) {
             return "不能输入汉字!";
           } else if (val.split(" ").join("").length == 0) {
             return "不能输入空格!";
           }
-        },
+        }
       })
         .then(({ value }) => {
           this.$axios({
             method: "POST",
-            url: "/api/api_gateway?method=sysmenage.usermanager.password_modify",
+            url:
+              "/api/api_gateway?method=sysmenage.usermanager.password_modify",
             data: this.qs.stringify({
               user_id: data.user_id,
-              password: value == null ? "@12345678" : value,
-            }),
-          }).then((res) => {
-            console.log(res);
+              password: value == null ? "@12345678" : value
+            })
+          }).then(res => {
             if (res.data.data == true) {
               this.$message({
                 message: "成功!",
                 type: "success",
-                duration: 1500,
+                duration: 1500
               });
             }
             this.userListData();
@@ -504,7 +593,7 @@ export default {
         .catch(() => {
           this.$message({
             type: "info",
-            message: "取消输入",
+            message: "取消输入"
           });
         });
     },
@@ -514,47 +603,51 @@ export default {
       this.$confirm("此操作将永久删除该账号, 是否继续?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           this.$axios({
             method: "POST",
             url: "/api/api_gateway?method=sysmenage.usermanager.user_delete",
             data: this.qs.stringify({
-              user_id: data.user_id,
-            }),
-          }).then((res) => {
+              user_id: data.user_id
+            })
+          }).then(res => {
             if (res.data.data == true) {
               this.$message({
                 message: "成功!",
                 type: "success",
-                duration: 1500,
+                duration: 1500
               });
             } else {
               this.$message({
                 message: "失败!",
                 type: "error",
-                duration: 1500,
+                duration: 1500
               });
             }
+            this.loading2 = true;
             this.userListData();
           });
         })
         .catch(() => {
           this.$message({
             type: "info",
-            message: "已取消删除",
+            message: "已取消删除"
           });
         });
     },
 
     // 分页
     changeList(page) {
+      this.loading2 = true;
       this.page = page;
+      this.userListData();
     },
 
     // 搜索
     searchData() {
+      this.loading2 = true;
       this.userListData();
     },
 
@@ -566,28 +659,37 @@ export default {
 
     // 添加 - 编辑 确定
     submitForm() {
-      this.$refs["form"].validate((valid) => {
+      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, //邮箱地址
+              email: this.form.mailbox //邮箱地址
             });
             var url = "/api/api_gateway?method=sysmenage.usermanager.user_add";
           } else if (this.tltData == "编辑用户") {
             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, //邮箱地址
+              email: this.form.mailbox //邮箱地址
             });
             var url =
               "/api/api_gateway?method=sysmenage.usermanager.user_modify";
@@ -595,19 +697,19 @@ export default {
           this.$axios({
             method: "POST",
             url,
-            data: postData,
-          }).then((res) => {
-            console.log(res);
+            data: postData
+          }).then(res => {
             if (res.data.data == true) {
               this.$message({
                 message: "成功!",
                 type: "success",
-                duration: 1500,
+                duration: 1500
               });
+
+              this.$refs["form"].resetFields();
+              this.userVisible = false;
+              this.userListData();
             }
-            this.$refs["form"].resetFields();
-            this.userVisible = false;
-            this.userListData();
           });
         } else {
           return false;
@@ -631,10 +733,10 @@ export default {
           page_item: "10",
           real_name: this.nameVal, // 用户名称
           mobile: this.phoneVal, //电话
-          org_id: this.org_id,
-        }),
+          org_id: this.org_id
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.page_item !== 0) {
             var data = res.data.data.page_list;
             var list = [];
@@ -645,9 +747,10 @@ export default {
             this.tableData = list;
             this.pageSum = res.data.data.page_item;
           }
+          this.loading2 = false;
         })
-        .catch((err) => {
-          console.log(err);
+        .catch(err => {
+          this.loading2 = false;
         });
     },
 
@@ -659,23 +762,24 @@ export default {
         data: this.qs.stringify({
           page: this.page,
           page_item: "100000000",
-          org_name: "",
-        }),
+          org_name: ""
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.page_list.length !== 0) {
             var obj = {
               org_name: "全部",
-              id: "",
+              id: ""
             };
             var list = res.data.data.page_list;
             this.tissueList = list; // 弹框组织列表
             var data = res.data.data.page_list;
             this.data = [obj, ...data]; // 左侧组织列表
           }
+          this.loading = false;
         })
-        .catch((err) => {
-          console.log(err);
+        .catch(err => {
+          this.loading = false;
         });
     },
 
@@ -687,29 +791,29 @@ export default {
         data: this.qs.stringify({
           page: this.page,
           page_item: "10000000",
-          role_name: "",
-        }),
+          role_name: ""
+        })
       })
-        .then((res) => {
+        .then(res => {
           if (res.data.data.total_item !== 0) {
             this.roleData = res.data.data.page_list;
           }
         })
-        .catch((err) => {});
+        .catch(err => {});
     },
     judgeData(item) {
-      // console.log(item);
       this.form.judge = item;
-      console.log(this.form.judge)
     },
     roleChange(item) {
       this.form.role = item;
-    },
+    }
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    this.loading = true; // 加载 - 组织列表
+    this.loading2 = true; // 加载 - 表格列表
     this.userListData(); //表格数据
     this.organizationData(); //左侧组织数据
     this.roleAxios(); // 角色列表
@@ -720,10 +824,10 @@ export default {
   updated() {}, //生命周期 - 更新之后
   beforeDestroy() {}, //生命周期 - 销毁之前
   destroyed() {}, //生命周期 - 销毁完成
-  activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
 };
 </script>
-<style lang='less' scoped>
+<style lang="less" scoped>
 .userManger_box {
   .card_box {
     display: flex;
@@ -781,4 +885,4 @@ export default {
     width: 80%;
   }
 }
-</style>
+</style>