From c4e67a8942e514b65ab41bb19781d50576c15725 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 24 Sep 2021 19:56:52 +0800
Subject: [PATCH] 用户

---
 src/views/dispatch/dispatch.vue |  582 +++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 358 insertions(+), 224 deletions(-)

diff --git a/src/views/dispatch/dispatch.vue b/src/views/dispatch/dispatch.vue
index 1148a09..806c805 100644
--- a/src/views/dispatch/dispatch.vue
+++ b/src/views/dispatch/dispatch.vue
@@ -1,35 +1,69 @@
 <template>
-  <div class="dispatch">
-    <!-- <avue-tabs :option="optionTABS" @change="handleChangeTABS"></avue-tabs>
+  <basic-container>
+    <div class="dispatch">
+      <!-- <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>
-      </template>
-    </avue-crud>
-    <!-- </span>
+      <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>
+
+          <el-button
+            type="success"
+            size="small"
+            plain
+            icon="el-icon-upload2"
+            @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>
+
+      <!-- </span>
     <span v-else-if="typeTABS.prop === 'tab2'">
       <avue-crud
         :option="option1"
@@ -58,12 +92,12 @@
         </template>
       </avue-crud>
     </span> -->
-    <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
-  </div>
+      <!-- <span v-else-if="typeTABS.prop === 'tab3'">选项卡内容3</span> -->
+    </div>
+  </basic-container>
 </template> 
 
 <script>
-import { data, column, column1 } from "./data";
 import {
   getdata,
   adddata,
@@ -75,7 +109,7 @@
   remove1,
 } from "@/api/dispatch/dispatch";
 import { mapGetters } from "vuex";
-
+import { mapState } from "vuex";
 export default {
   data() {
     return {
@@ -110,6 +144,59 @@
       },
       query: {},
       data: [],
+      excelBox: false,
+      excelForm: {},
+      excelOption: {
+        submitBtn: false,
+        emptyBtn: false,
+        column: [
+          {
+            label: "模板上传",
+            prop: "excelFile",
+            type: "upload",
+            drag: true,
+            loadText: "模板上传中,请稍等",
+            span: 24,
+            propsHttp: {
+              res: "data",
+            },
+            tip: "请上传 .xls,.xlsx 标准格式文件",
+            action: "/api/dispatcherUnit/import-dispatcherUnit",
+          },
+          // {
+          //     label: "数据覆盖",
+          //     prop: "isCovered",
+          //     type: "switch",
+          //     align: "center",
+          //     width: 80,
+          //     dicData: [
+          //     {
+          //         label: "否",
+          //         value: 0,
+          //     },
+          //     {
+          //         label: "是",
+          //         value: 1,
+          //     },
+          //     ],
+          //     value: 0,
+          //     slot: true,
+          //     rules: [
+          //     {
+          //         required: true,
+          //         message: "请选择是否覆盖",
+          //         trigger: "blur",
+          //     },
+          //     ],
+          // },
+          {
+            label: "模板下载",
+            prop: "excelTemplate",
+            formslot: true,
+            span: 24,
+          },
+        ],
+      },
       option: {
         tip: false,
         // card: true,
@@ -120,59 +207,187 @@
         menuWidth: 160,
         align: "center",
         selection: true,
-        column: column,
-        // group: [
-        //   {
-        //     label: "基础信息",
-        //     prop: "baseInfo",
-        //     icon: "el-icon-user-solid",
-        //     column: [
-        //       {
-        //         label: "所属保安单位",
-        //         prop: "tenantId",
-        //         type: "tree",
-        //         dicUrl: "/api/blade-system/tenant/select",
-        //         props: {
-        //           label: "tenantName",
-        //           value: "tenantId",
-        //         },
-        //         hide: !website.tenantMode,
-        //         addDisplay: website.tenantMode,
-        //         editDisplay: website.tenantMode,
-        //         viewDisplay: website.tenantMode,
-        //         rules: [
-        //           {
-        //             required: true,
-        //             message: "请输入所属保安单位",
-        //             trigger: "click",
-        //           },
-        //         ],
-        //         span: 24,
-        //       },
-        //     ],
-        //   },
-        // ],
+        column: [
+          //派遣服务公司登记
+          {
+            label: "派遣单位名称",
+            prop: "name",
+            search: true,
+            searchLabelWidth: 110,
+            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,
+            rules: [
+              {
+                required: true,
+                message: "请选择保安公司",
+                trigger: "click",
+              },
+            ],
+            labelWidth: 118,
+            width: 230,
+            searchLabelWidth: 80,
+            search: true,
+            searchSpan: 4,
+            // editDisplay: false,
+            // addDisplay: false,
+            // hide: true,
+            // span: 11,
+          },
+          {
+            label: "保安服务类型",
+            prop: "serveType",
+            // search: true,
+            searchLabelWidth: 110,
+            searchSpan: 4,
+            overHidden: true,
+            // span: 12,
+            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,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请输入时间",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdiction",
+            hide: true,
+            searchLabelWidth: 80,
+            search: true,
+            searchSpan: 4,
+            overHidden: true,
+            labelWidth: 118,
+            type: "tree",
+            dicUrl: "/api/jurisdiction/lazy-tree",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            checkStrictly: true,
+            slot: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "所属辖区",
+            prop: "jurisdictionName",
+            // multiple: true,
+            searchLabelWidth: 80,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            overHidden: true,
+            labelWidth: 118,
+            type: "tree",
+            dicUrl: "/api/jurisdiction/lazy-tree",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            checkStrictly: true,
+            slot: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择所属辖区",
+                trigger: "click",
+              },
+            ],
+          },
+          // {
+          //   label: " 派遣人数",
+          //   prop: "num",
+          //   labelWidth: 118,
+          // },
+          {
+            label: "合同开始时间",
+            prop: "startTime",
+            labelWidth: 118,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // search: true,
+            // searchSpan: 4,
+            // overHidden: true
+          },
+          {
+            label: "合同结束时间",
+            prop: "endTime",
+            labelWidth: 118,
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            // search: true,
+            // searchSpan: 4,
+            // overHidden: true
+          },
+          {
+            label: " 负责人",
+            prop: "linkman",
+            labelWidth: 118,
+          },
+          {
+            label: "负责人联系方式",
+            prop: "phone",
+            labelWidth: 118,
+            width: 110,
+          },
+        ],
       },
-      // loading1: true, //派遣记录
-      // selectionList1: [],
-      // page1: {
-      //   pageSize: 10,
-      //   currentPage: 1,
-      //   total: 0,
-      // },
-      // query1: {},
-      // data1: [],
-      // option1: {
-      //   card: true,
-      //   searchSize: "mini",
-      //   searchMenuSpan: 6,
-      //   height: 547,
-      //   menuWidth: 160,
-      //   align: "center",
-      //   selection: true,
-      //   column: column1,
-      // },
     };
+  },
+  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;
+    }
   },
   computed: {
     ...mapGetters(["userInfo"]),
@@ -190,6 +405,9 @@
       });
       return ids1.join(",");
     },
+        ...mapState({
+      userInfo: (state) => state.user.userInfo,
+        })
   },
   methods: {
     handleChangeTABS(column) {
@@ -218,13 +436,7 @@
       //   this.$message.success("页码" + val);
     },
     rowSave(form, done, loading) {
-      // var that = this;
-      // var form = this.data[0];
-      // delete form.id;
-      // for (var k = 0; k < 13; k++) {
       form["deptId"] = this.userInfo.dept_id;
-      // form["tenantName"] = form.this.userInfo.user_name;
-
       adddata(form).then(
         (res) => {
           this.onLoad(this.page);
@@ -252,7 +464,6 @@
       this.onLoad(this.page);
     },
     rowUpdate(row, index, done, loading) {
-      console.log(row);
       update(row).then(
         () => {
           this.onLoad(this.page);
@@ -324,157 +535,80 @@
         // params: { row: row.identificationnumber },
       });
     },
+    getStartTime() {
+      if (
+        this.$route.query.startTime != undefined &&
+        this.$route.query.startTime != null &&
+        this.$route.query.startTime != ""
+      ) {
+        return this.$route.query.startTime;
+      }
+      return "";
+    },
+    getEndTime() {
+      if (
+        this.$route.query.endTime != undefined &&
+        this.$route.query.endTime != null &&
+        this.$route.query.endTime != ""
+      ) {
+        return this.$route.query.endTime;
+      }
+      return "";
+    },
     onLoad(page, params = {}) {
       var that = this;
       this.loading = true;
+
+      var values;
+      const { releaseTimeRange } = this.query;
+      if (releaseTimeRange) {
+        values = {
+          ...params,
+          beginTime: releaseTimeRange[0],
+          overTime: releaseTimeRange[1],
+          ...this.query,
+        };
+        // values.releaseTimeRange = null;
+      } else {
+        values = {
+          ...params,
+          ...this.query,
+        };
+      }
+
+      console.log(values);
+
       getdata(
         page.currentPage,
         page.pageSize,
-        Object.assign(params, this.query)
+        // 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]["deptId"] = that.userInfo.dept_id;
           this.data[k]["tenantName"] = that.userInfo.user_name;
         }
         window.localStorage.setItem("paqiandataS", JSON.stringify(this.data));
         this.loading = false;
       });
     },
-    //派遣服务公司登记
 
-    //派遣记录
-    // sizeChange1(val) {
-    //   this.page1.currentPage = 1;
-    //   this.page1.pageSize = val;
-    //   // this.getData();
-    //   this.onLoad1(this.page1, this.query1);
-    //   //   this.$message.success("行数" + val);
-    // },
-    // currentChange1(val) {
-    //   this.page1.currentPage = val;
-    //   // this.getData();
-    //   this.onLoad1(this.page1, this.query1);
-    //   //   this.$message.success("页码" + val);
-    // },
-    // rowSave1(form, done, loading) {
-    //   var that = this;
-    //   var form = this.data1[0];
-    //   delete form.id;
-    //   for (var k = 0; k < 13; k++) {
-    //     adddata1(form).then(
-    //       (res) => {
-    //         this.onLoad1(this.page1);
-    //         this.$message({
-    //           type: "success",
-    //           message: "操作成功!",
-    //         });
-    //         done();
-    //       },
-    //       (error) => {
-    //         window.console.log(error);
-    //         loading();
-    //       }
-    //     );
-    //   }
-    // },
-    // searchChange1(params, done) {
-    //   this.query1 = params;
-    //   this.page1.currentPage = 1;
-    //   this.onLoad1(this.page1, params);
-    //   done();
-    // },
-    // searchReset1() {
-    //   this.query = {};
-    //   this.onLoad1(this.page1);
-    // },
-    // rowUpdate1(row, index, done, loading) {
-    //   console.log(row);
-    //   update1(row).then(
-    //     () => {
-    //       this.onLoad1(this.page1);
-    //       this.$message({
-    //         type: "success",
-    //         message: "操作成功!",
-    //       });
-    //       done();
-    //     },
-    //     (error) => {
-    //       window.console.log(error);
-    //       loading();
-    //     }
-    //   );
-    // },
-    // rowDel1(row) {
-    //   this.$confirm("确定将选择数据删除?", {
-    //     confirmButtonText: "确定",
-    //     cancelButtonText: "取消",
-    //     type: "warning",
-    //   })
-    //     .then(() => {
-    //       return remove1(row.id);
-    //     })
-    //     .then(() => {
-    //       this.onLoad1(this.page1);
-    //       this.$message({
-    //         type: "success",
-    //         message: "操作成功!",
-    //       });
-    //     });
-    // },
-    // selectionChange1(list) {
-    //   this.selectionList1 = list;
-    //   console.log(this.selectionList1.length);
-    // },
-    // handleDelete1() {
-    //   console.log(this.selectionList1);
-    //   if (this.selectionList1.length === 0) {
-    //     this.$message.warning("请选择至少一条数据");
-    //     return;
-    //   }
-    //   this.$confirm("确定将选择数据删除?", {
-    //     confirmButtonText: "确定",
-    //     cancelButtonText: "取消",
-    //     type: "warning",
-    //   })
-    //     .then(() => {
-    //       return remove1(this.ids1);
-    //     })
-    //     .then(() => {
-    //       this.onLoad1(this.page1);
-    //       this.$message({
-    //         type: "success",
-    //         message: "操作成功!",
-    //       });
-    //       this.$refs.crudrec1.toggleSelection();
-    //     });
-    // },
-    // refreshChange1() {
-    //   // console.log(4534)
-    //   this.onLoad1(this.page1, this.query1);
-    // },
-
-    // //
-    // onLoad1(page, params = {}) {
-    //   this.loading1 = true;
-    //   // console.log(page);
-    //   getdata1(
-    //     page.currentPage,
-    //     page.pageSize,
-    //     Object.assign(params, this.query)
-    //   ).then((res) => {
-    //     // console.log(res);
-    //     const data = res.data.data;
-    //     this.page1.total = data.total;
-    //     this.data1 = data.records;
-    //     console.log(this.data1, 1);
-    //     this.loading1 = false;
-    //   });
-    // },
-    //派遣记录
+    handleTemplate() {
+      window.open(`/api/dispatcherUnit/export-template`);
+    },
+    handleImport() {
+      this.excelBox = true;
+    },
+    uploadAfter(res, done, loading, column) {
+      window.console.log(column);
+      this.excelBox = false;
+      this.refreshChange();
+      done();
+    },
   },
   mounted() {
     this.typeTABS = this.optionTABS.column[0];

--
Gitblit v1.9.3