From d1b058faa19088838b668d6c03dd71c2bcc7d5d3 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 09 Dec 2021 10:30:44 +0800
Subject: [PATCH] 用户角色控制修改

---
 src/views/dispatch/dispatch.vue |  208 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 177 insertions(+), 31 deletions(-)

diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 806c805..0968574 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -1,6 +1,11 @@
 <template>
   <basic-container>
-    <div class="dispatch">
+    <div
+      :class="[
+        'dispatch',
+        $store.state.control.windowWidth >= 1024 ? 'oneRowSearch' : '',
+      ]"
+    >
       <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
     <span v-if="typeTABS.prop === 'tab1'"> -->
       <avue-crud
@@ -95,7 +100,7 @@
       <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
     </div>
   </basic-container>
-</template> 
+</template>
 
 <script>
 import {
@@ -112,6 +117,15 @@
 import { mapState } from "vuex";
 export default {
   data() {
+    var phones = (rule, value, callback) => {
+      window.yanzhengphons =
+        /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
+      if (!yanzhengphons.test(value)) {
+        callback(new Error("请输入正确电话"));
+      } else {
+        callback();
+      }
+    };
     return {
       typeTABS: {}, //标签页
       deptId: "",
@@ -141,6 +155,7 @@
         pageSize: 10,
         currentPage: 1,
         total: 0,
+        ...this.$store.state.control.changePageSize,
       },
       query: {},
       data: [],
@@ -207,6 +222,7 @@
         menuWidth: 160,
         align: "center",
         selection: true,
+        ...this.$store.state.control.clearOtherBut,
         column: [
           //派遣服务公司登记
           {
@@ -218,15 +234,21 @@
             searchSpan: 4,
             width: 210,
             // span: 12,
-            labelWidth: 118,
+            labelWidth: 138,
+            rules: [
+              {
+                required: true,
+                message: "请输入派遣单位名称",
+                trigger: "click",
+              },
+            ],
           },
           {
-            label: "保安公司",
+            label: "企业名称",
             prop: "deptId",
             type: "tree",
             overHidden: true,
-            dicUrl:
-              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
+            dicUrl: "",
             props: {
               label: "title",
               value: "id",
@@ -239,11 +261,11 @@
             rules: [
               {
                 required: true,
-                message: "请选择保安公司",
+                message: "请选择企业名称",
                 trigger: "click",
               },
             ],
-            labelWidth: 118,
+            labelWidth: 138,
             width: 230,
             searchLabelWidth: 80,
             search: true,
@@ -261,7 +283,7 @@
             searchSpan: 4,
             overHidden: true,
             // span: 12,
-            labelWidth: 118,
+            labelWidth: 138,
           },
           {
             label: "合同生效时间",
@@ -294,7 +316,8 @@
             search: true,
             searchSpan: 4,
             overHidden: true,
-            labelWidth: 118,
+            labelWidth: 138,
+            parent: false,
             type: "tree",
             dicUrl: "/api/jurisdiction/lazy-tree",
             props: {
@@ -305,7 +328,7 @@
             slot: true,
             rules: [
               {
-                required: true,
+                required: false,
                 message: "请选择所属辖区",
                 trigger: "click",
               },
@@ -320,7 +343,7 @@
             editDisplay: false,
             viewDisplay: false,
             overHidden: true,
-            labelWidth: 118,
+            labelWidth: 138,
             type: "tree",
             dicUrl: "/api/jurisdiction/lazy-tree",
             props: {
@@ -331,55 +354,157 @@
             slot: true,
             rules: [
               {
-                required: true,
+                required: false,
                 message: "请选择所属辖区",
                 trigger: "click",
               },
             ],
           },
+          {
+            label: " 派遣单位地址",
+            prop: "address",
+            labelWidth: 138,
+          },
           // {
-          //   label: " 派遣人数",
-          //   prop: "num",
-          //   labelWidth: 118,
+          //   label: "合同生效时间",
+          //   prop: "releaseTimeRange",
+          //   type: "date",
+          //   format: "yyyy-MM-dd",
+          //   valueFormat: "yyyy-MM-dd",
+          //   searchValue: [this.getStartTime(), this.getEndTime()],
+          //   // searchRange: true,
+          //   searchSpan: 5,
+          //   searchLabelWidth: 110,
+          //   hide: true,
+          //   value: [this.getStartTime(), this.getEndTime()],
+          //   // addDisplay: false,
+          //   // editDisplay: false,
+          //   // viewDisplay: false,
+          //   range: true,
+          //   rules: [
+          //     {
+          //       required: true,
+          //       message: "请输入时间",
+          //       trigger: "blur",
+          //     },
+          //   ],
           // },
           {
             label: "合同开始时间",
             prop: "startTime",
-            labelWidth: 118,
+            labelWidth: 138,
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd",
             // search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择开始时间",
+                trigger: "click",
+              },
+            ],
             // searchSpan: 4,
             // overHidden: true
           },
           {
             label: "合同结束时间",
             prop: "endTime",
-            labelWidth: 118,
+            labelWidth: 138,
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd",
             // search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择结束时间",
+                trigger: "click",
+              },
+            ],
             // searchSpan: 4,
             // overHidden: true
           },
           {
-            label: " 负责人",
+            label: " 派遣单位联系人",
             prop: "linkman",
-            labelWidth: 118,
+            labelWidth: 138,
+            // rules: [
+            //   {
+            //     required: true,
+            //     message: "请输入派遣单位联系人",
+            //     trigger: "click",
+            //   },
+            // ],
+          },
+          {
+            label: "派遣单位联系方式",
+            prop: "phone",
+            labelWidth: 138,
+            width: 130,
+            // rules: [
+            //   {
+            //     required: true,
+            //     message: "请输入联系方式",
+            //     trigger: "click",
+            //   },
+            //   {
+            //     validator: phones,
+            //     trigger: ["change", "blur"],
+            //   },
+            // ],
+          },
+          {
+            label: " 负责人",
+            prop: "securityLinkman",
+            labelWidth: 138,
+            rules: [
+              {
+                required: true,
+                message: "请输入负责人",
+                trigger: "click",
+              },
+            ],
           },
           {
             label: "负责人联系方式",
-            prop: "phone",
-            labelWidth: 118,
+            prop: "cell",
+            labelWidth: 138,
             width: 110,
+            rules: [
+              {
+                required: true,
+                message: "请输入联系方式",
+                trigger: "click",
+              },
+              // {
+              //   validator: phones,
+              //   trigger: ["change", "blur"],
+              // },
+            ],
+          },
+          {
+            label: "派遣保安员数",
+            prop: "num",
+            type: "number",
+            labelWidth: 138,
+            width: 110,
+            rules: [
+              {
+                required: true,
+                message: "请输入派遣保安员数",
+                trigger: "click",
+              },
+            ],
           },
         ],
       },
+
+      useifid: 266,
     };
   },
   created() {
+    var that = this;
     if (this.userInfo.role_name == "保安公司管理员") {
       const deptColumn = this.findObject(this.option.column, "deptId");
       deptColumn.search = false;
@@ -387,6 +512,16 @@
       deptColumn.editDisplay = false;
       deptColumn.viewDisplay = false;
       deptColumn.hide = true;
+      this.useifid = this.userInfo.dept_id;
+    }
+    //公安局进入
+    if (this.userInfo.role_name == "公安管理员") {
+      that.option.column[1].dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697&jurisdiction=" +
+        that.userInfo.jurisdiction;
+    } else {
+      that.option.column[1].dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697";
     }
   },
   computed: {
@@ -405,9 +540,9 @@
       });
       return ids1.join(",");
     },
-        ...mapState({
+    ...mapState({
       userInfo: (state) => state.user.userInfo,
-        })
+    }),
   },
   methods: {
     handleChangeTABS(column) {
@@ -436,7 +571,10 @@
       //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      form["deptId"] = this.userInfo.dept_id;
+      // form["deptId"] = this.userInfo.dept_id;
+      if (this.useifid != 266) {
+        form["deptId"] = this.useifid;
+      }
       adddata(form).then(
         (res) => {
           this.onLoad(this.page);
@@ -464,6 +602,9 @@
       this.onLoad(this.page);
     },
     rowUpdate(row, index, done, loading) {
+      if (this.useifid != 266) {
+        row["deptId"] = this.useifid;
+      }
       update(row).then(
         () => {
           this.onLoad(this.page);
@@ -525,7 +666,6 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
       window.localStorage.setItem("paqiandata", JSON.stringify(row));
       this.$router.push({
         path: "/dispatchChild",
@@ -575,22 +715,28 @@
           ...this.query,
         };
       }
-
-      console.log(values);
-
+      if (this.useifid != 266) {
+        values["deptId"] = this.useifid;
+      }
+      if (this.userInfo.role_name == "公安管理员") {
+        values["jurisdiction"] = that.userInfo.jurisdiction;
+      }
       getdata(
         page.currentPage,
         page.pageSize,
         // Object.assign(params, this.query)
         values
       ).then((res) => {
-        // console.log(res);
         const data = res.data.data;
         this.page.total = data.total;
         this.data = data.records;
         for (var k in this.data) {
           // this.data[k]["deptId"] = that.userInfo.dept_id;
           this.data[k]["tenantName"] = that.userInfo.user_name;
+          // console.log(this.data[k], 123456);
+          if (this.data[k].num == -1) {
+            this.data[k].num = null;
+          }
         }
         window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
         this.loading = false;
@@ -634,4 +780,4 @@
 .el-collapse-item {
   padding-top: 15px !important;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3