From 79d9fc857559982b00b68b2d709807bdc4cd286f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 11 Apr 2022 10:58:17 +0800
Subject: [PATCH] minio 地址修改

---
 src/views/dispatch/dispatch.vue |  518 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 336 insertions(+), 182 deletions(-)

diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 806c805..7e44d0f 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -1,69 +1,78 @@
 <template>
-  <basic-container>
-    <div class="dispatch">
-      <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
+  <basic-container
+    :class="[
+      'dispatch',
+      $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+      $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : ''
+    ]"
+  >
+    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
     <span v-if="typeTABS.prop === 'tab1'"> -->
-      <avue-crud
-        :option="option"
-        :data="data"
-        :page.sync="page"
-        ref="crudrec"
-        @on-load="onLoad"
-        :table-loading="loading"
-        @row-save="rowSave"
-        @search-change="searchChange"
-        @search-reset="searchReset"
-        @row-update="rowUpdate"
-        @row-del="rowDel"
-        @selection-change="selectionChange"
-        @refresh-change="refreshChange"
-        @row-click="rowClick"
-      >
-        <template slot="menuLeft">
-          <el-button
-            type="danger"
-            size="small"
-            plain
-            icon="el-icon-delete"
-            @click="handleDelete"
-            >删 除
-          </el-button>
+    <avue-crud
+      class="tablesss"
+      :option="option"
+      :data="data"
+      :page.sync="page"
+      ref="crudrec"
+      :permission="permissionList"
+      @on-load="onLoad"
+      :table-loading="loading"
+      @row-save="rowSave"
+      @search-change="searchChange"
+      @search-reset="searchReset"
+      @row-update="rowUpdate"
+      @row-del="rowDel"
+      @selection-change="selectionChange"
+      @refresh-change="refreshChange"
+      @row-click="rowClick"
+    >
+      <template slot="menuLeft">
+        <el-button
+          type="danger"
+          size="small"
+          plain
+          icon="el-icon-delete"
+          v-if="permission.dispatch_delete"
+          @click="handleDelete"
+          >删 除
+        </el-button>
 
-          <el-button
-            type="success"
-            size="small"
-            plain
-            icon="el-icon-upload2"
-            @click="handleImport"
-            >批量导入
+        <el-button
+          type="success"
+          size="small"
+          plain
+          icon="el-icon-upload2"
+          v-if="permission.dispatch_import"
+          @click="handleImport"
+          >批量导入
+        </el-button>
+      </template>
+
+      <template slot-scope="{ row }" slot="jurisdiction">
+        {{ row.jurisdiction == -1 ? "" : row.jurisdiction }}
+      </template>
+    </avue-crud>
+
+    <el-dialog
+      title="派遣单位导入"
+      append-to-body
+      :visible.sync="excelBox"
+      width="555px"
+    >
+      <avue-form
+        :option="excelOption"
+        v-model="excelForm"
+        :upload-after="uploadAfter"
+      >
+        <template slot="excelTemplate">
+          <el-button type="primary" @click="handleTemplate">
+            点击下载<i class="el-icon-download el-icon--right"></i>
           </el-button>
         </template>
+      </avue-form>
+    </el-dialog>
 
-        <template slot-scope="{ row }" slot="jurisdiction">
-          {{ row.jurisdiction == -1 ? "" : row.jurisdiction }}
-        </template>
-      </avue-crud>
-
-      <el-dialog
-        title="派遣单位导入"
-        append-to-body
-        :visible.sync="excelBox"
-        width="555px"
-      >
-        <avue-form
-          :option="excelOption"
-          v-model="excelForm"
-          :upload-after="uploadAfter"
-        >
-          <template slot="excelTemplate">
-            <el-button type="primary" @click="handleTemplate">
-              点击下载<i class="el-icon-download el-icon--right"></i>
-            </el-button>
-          </template>
-        </avue-form>
-      </el-dialog>
-
-      <!-- </span>
+    <!-- </span>
     <span v-else-if="typeTABS.prop === 'tab2'">
       <avue-crud
         :option="option1"
@@ -92,26 +101,25 @@
         </template>
       </avue-crud>
     </span> -->
-      <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
-    </div>
+    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
   </basic-container>
-</template> 
+</template>
 
 <script>
-import {
-  getdata,
-  adddata,
-  update,
-  remove,
-  getdata1,
-  adddata1,
-  update1,
-  remove1,
-} from "@/api/dispatch/dispatch";
+import { getdata, adddata, update, remove } from "@/api/dispatch/dispatch";
 import { mapGetters } from "vuex";
 import { mapState } from "vuex";
+import { getToken } from "@/util/auth";
 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: "",
@@ -120,19 +128,19 @@
           {
             icon: "el-icon-info",
             label: "派遣服务公司登记",
-            prop: "tab1",
+            prop: "tab1"
           },
           {
             icon: "el-icon-info",
             label: "派遣记录",
-            prop: "tab2",
-          },
+            prop: "tab2"
+          }
           // {
           //   icon: "el-icon-info",
           //   label: "选项卡3",
           //   prop: "tab3",
           // },
-        ],
+        ]
       },
 
       loading: true, //派遣服务公司登记
@@ -141,6 +149,7 @@
         pageSize: 10,
         currentPage: 1,
         total: 0,
+        ...this.$store.state.control.changePageSize
       },
       query: {},
       data: [],
@@ -158,10 +167,10 @@
             loadText: "模板上传中,请稍等",
             span: 24,
             propsHttp: {
-              res: "data",
+              res: "data"
             },
             tip: "请上传 .xls,.xlsx 标准格式文件",
-            action: "/api/dispatcherUnit/import-dispatcherUnit",
+            action: "/api/dispatcherUnit/import-dispatcherUnit"
           },
           // {
           //     label: "数据覆盖",
@@ -193,13 +202,12 @@
             label: "模板下载",
             prop: "excelTemplate",
             formslot: true,
-            span: 24,
-          },
-        ],
+            span: 24
+          }
+        ]
       },
       option: {
         tip: false,
-        // card: true,
         index: true,
         searchSize: "mini",
         searchMenuSpan: 6,
@@ -207,8 +215,9 @@
         menuWidth: 160,
         align: "center",
         selection: true,
+        // menu: false,
+        ...this.$store.state.control.clearOtherBut,
         column: [
-          //派遣服务公司登记
           {
             label: "派遣单位名称",
             prop: "name",
@@ -217,41 +226,62 @@
             overHidden: true,
             searchSpan: 4,
             width: 210,
-            // span: 12,
-            labelWidth: 118,
-          },
-          {
-            label: "保安公司",
-            prop: "deptId",
-            type: "tree",
-            overHidden: true,
-            dicUrl:
-              "/api/blade-system/dept/security_lazy-tree?parentId=1413470343230877697",
-            props: {
-              label: "title",
-              value: "id",
-            },
-            // hide: true,
-            // hide: !website.tenantMode,
-            // addDisplay: website.tenantMode,
-            // editDisplay: website.tenantMode,
-            // viewDisplay: website.tenantMode,
+            labelWidth: 138,
             rules: [
               {
                 required: true,
-                message: "请选择保安公司",
-                trigger: "click",
-              },
+                message: "请输入派遣单位名称",
+                trigger: "click"
+              }
+            ]
+          },
+          {
+            label: "派遣单位类型",
+            prop: "district",
+            type: "select",
+            search: false,
+            dicUrl:
+              "/api/blade-system/dict-biz/dictionary?code=dispatcherUnitType",
+            props: {
+              label: "dictValue",
+              value: "dictKey"
+            },
+            searchLabelWidth: 110,
+            overHidden: true,
+            searchSpan: 4,
+            width: 100,
+            labelWidth: 138,
+            rules: [
+              {
+                required: true,
+                message: "请选择派遣单位类型",
+                trigger: "click"
+              }
             ],
-            labelWidth: 118,
-            width: 230,
+            dataType: "number"
+          },
+          {
+            label: "企业名称",
+            prop: "deptId",
+            type: "tree",
+            overHidden: true,
+            dicUrl: "",
+            props: {
+              label: "title",
+              value: "id"
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择企业名称",
+                trigger: "click"
+              }
+            ],
+            labelWidth: 138,
+            width: 180,
             searchLabelWidth: 80,
             search: true,
-            searchSpan: 4,
-            // editDisplay: false,
-            // addDisplay: false,
-            // hide: true,
-            // span: 11,
+            searchSpan: 4
           },
           {
             label: "保安服务类型",
@@ -261,7 +291,7 @@
             searchSpan: 4,
             overHidden: true,
             // span: 12,
-            labelWidth: 118,
+            labelWidth: 138
           },
           {
             label: "合同生效时间",
@@ -282,9 +312,9 @@
               {
                 required: true,
                 message: "请输入时间",
-                trigger: "blur",
-              },
-            ],
+                trigger: "blur"
+              }
+            ]
           },
           {
             label: "所属辖区",
@@ -294,22 +324,23 @@
             search: true,
             searchSpan: 4,
             overHidden: true,
-            labelWidth: 118,
+            labelWidth: 138,
+            parent: false,
             type: "tree",
             dicUrl: "/api/jurisdiction/lazy-tree",
             props: {
               label: "title",
-              value: "id",
+              value: "id"
             },
             checkStrictly: true,
             slot: true,
             rules: [
               {
-                required: true,
+                required: false,
                 message: "请选择所属辖区",
-                trigger: "click",
-              },
-            ],
+                trigger: "click"
+              }
+            ]
           },
           {
             label: "所属辖区",
@@ -320,95 +351,202 @@
             editDisplay: false,
             viewDisplay: false,
             overHidden: true,
-            labelWidth: 118,
+            labelWidth: 138,
+            width: 100,
             type: "tree",
             dicUrl: "/api/jurisdiction/lazy-tree",
             props: {
               label: "title",
-              value: "id",
+              value: "id"
             },
             checkStrictly: true,
             slot: true,
             rules: [
               {
-                required: true,
+                required: false,
                 message: "请选择所属辖区",
-                trigger: "click",
-              },
-            ],
+                trigger: "click"
+              }
+            ]
           },
-          // {
-          //   label: " 派遣人数",
-          //   prop: "num",
-          //   labelWidth: 118,
-          // },
+          {
+            label: " 派遣单位地址",
+            prop: "address",
+            labelWidth: 138
+          },
           {
             label: "合同开始时间",
             prop: "startTime",
-            labelWidth: 118,
+            labelWidth: 138,
             type: "date",
             format: "yyyy-MM-dd",
             valueFormat: "yyyy-MM-dd",
             // search: true,
-            // searchSpan: 4,
-            // overHidden: true
+            rules: [
+              {
+                required: true,
+                message: "请选择开始时间",
+                trigger: "click"
+              }
+            ]
           },
           {
             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
+          },
+          {
+            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() {
-    if (this.userInfo.role_name == "保安公司管理员") {
-      const deptColumn = this.findObject(this.option.column, "deptId");
-      deptColumn.search = false;
-      deptColumn.addDisplay = false;
-      deptColumn.editDisplay = false;
-      deptColumn.viewDisplay = false;
-      deptColumn.hide = true;
+    var that = this;
+    var roleName = this.userInfo.role_name;
+    // if (this.userInfo.role_name == "保安公司管理员") {
+    //   const deptColumn = this.findObject(this.option.column, "deptId");
+    //   deptColumn.search = false;
+    //   deptColumn.addDisplay = false;
+    //   deptColumn.editDisplay = false;
+    //   deptColumn.viewDisplay = false;
+    //   deptColumn.hide = true;
+    //   this.useifid = this.userInfo.dept_id;
+    // }
+
+    if (
+      roleName == "保安公司管理员" ||
+      roleName == "保安" ||
+      roleName == "分公司管理员"
+    ) {
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.defaultExpandAll = true;
+      column.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?deptId=" +
+        this.userInfo.dept_id;
+      //赋值
+      column.value = that.userInfo.dept_id;
+      this.useifid = this.userInfo.dept_id;
+    } else if (roleName == "公安管理员" || roleName == "administrator" || roleName == "民警") {
+      var columnDept = that.findObject(that.option.column, "deptId");
+      columnDept.dicUrl =
+        "/api/blade-system/dept/security_lazy-tree?jurisdiction=" +
+        that.userInfo.jurisdiction;
+    } else {
+      //查询保安单位信息(包含子级)
+      const column = this.findObject(this.option.column, "deptId");
+      // column.search = false;
+      //默认全部展开
+      column.dicUrl = "/api/blade-system/dept/security_lazy-tree";
     }
   },
   computed: {
-    ...mapGetters(["userInfo"]),
+    ...mapGetters(["permission", "userInfo"]),
+    permissionList() {
+      return {
+        addBtn: this.vaildData(this.permission.dispatch_add, false),
+        viewBtn: this.vaildData(this.permission.dispatch_view, true),
+        delBtn: this.vaildData(this.permission.dispatch_delete, false),
+        editBtn: this.vaildData(this.permission.dispatch_edit, false)
+      };
+    },
     ids() {
       let ids = [];
-      this.selectionList.forEach((ele) => {
+      this.selectionList.forEach(ele => {
         ids.push(ele.id);
       });
       return ids.join(",");
     },
     ids1() {
       let ids1 = [];
-      this.selectionList1.forEach((ele) => {
+      this.selectionList1.forEach(ele => {
         ids1.push(ele.id);
       });
       return ids1.join(",");
     },
-        ...mapState({
-      userInfo: (state) => state.user.userInfo,
-        })
+    ...mapState({
+      userInfo: state => state.user.userInfo
+    })
   },
+
   methods: {
     handleChangeTABS(column) {
       this.typeTABS = column;
@@ -436,17 +574,19 @@
       //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      form["deptId"] = this.userInfo.dept_id;
+      if (this.useifid != 266) {
+        form["deptId"] = this.useifid;
+      }
       adddata(form).then(
-        (res) => {
+        res => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!",
+            message: "操作成功!"
           });
           done();
         },
-        (error) => {
+        error => {
           window.console.log(error);
           loading();
         }
@@ -464,16 +604,19 @@
       this.onLoad(this.page);
     },
     rowUpdate(row, index, done, loading) {
+      if (this.useifid != 266) {
+        row["deptId"] = this.useifid;
+      }
       update(row).then(
         () => {
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!",
+            message: "操作成功!"
           });
           done();
         },
-        (error) => {
+        error => {
           window.console.log(error);
           loading();
         }
@@ -483,7 +626,7 @@
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           return remove(row.id);
@@ -492,7 +635,7 @@
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!",
+            message: "操作成功!"
           });
         });
     },
@@ -507,7 +650,7 @@
       this.$confirm("确定将选择数据删除?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           return remove(this.ids);
@@ -516,7 +659,7 @@
           this.onLoad(this.page);
           this.$message({
             type: "success",
-            message: "操作成功!",
+            message: "操作成功!"
           });
           this.$refs.crudrec.toggleSelection();
         });
@@ -525,14 +668,10 @@
       this.onLoad(this.page, this.query);
     },
     rowClick(row) {
-      // console.log(row);
       window.localStorage.setItem("paqiandata", JSON.stringify(row));
       this.$router.push({
         path: "/dispatchChild",
-        // redirect: { name: "foo" },
-        // query: { row: row },
-        query: { rowdispatch: "fromDispatch" },
-        // params: { row: row.identificationnumber },
+        query: { rowdispatch: "fromDispatch" }
       });
     },
     getStartTime() {
@@ -566,39 +705,53 @@
           ...params,
           beginTime: releaseTimeRange[0],
           overTime: releaseTimeRange[1],
-          ...this.query,
+          ...this.query
         };
         // values.releaseTimeRange = null;
       } else {
         values = {
           ...params,
-          ...this.query,
+          ...this.query
         };
       }
-
-      console.log(values);
-
+      if (this.useifid != 266) {
+        values["deptId"] = this.useifid;
+      }
+      if (this.userInfo.role_name == "公安管理员" || 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);
+      ).then(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;
+          }
+          if (this.data[k].district == -1) {
+            this.data[k].district = null;
+          }
         }
         window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
+        this.$store.commit("setWindowSizeHeightAdd");
         this.loading = false;
       });
     },
 
     handleTemplate() {
-      window.open(`/api/dispatcherUnit/export-template`);
+      window.open(
+        `/api/dispatcherUnit/export-template?${
+          this.website.tokenHeader
+        }=${getToken()}&`
+      );
     },
     handleImport() {
       this.excelBox = true;
@@ -608,11 +761,12 @@
       this.excelBox = false;
       this.refreshChange();
       done();
-    },
+    }
   },
   mounted() {
+    this.$store.commit("setWindowSizeHeightAdd");
     this.typeTABS = this.optionTABS.column[0];
-  },
+  }
 };
 </script>
 
@@ -634,4 +788,4 @@
 .el-collapse-item {
   padding-top: 15px !important;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3