From cc1c0a396698648256c350f6f0fe2cb2f0b02c7e Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Wed, 27 Mar 2024 15:44:10 +0800
Subject: [PATCH] 许可按钮放出,备案审批按钮放出

---
 src/views/statisticalQueryManagement/businessStatistics.vue |  448 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 349 insertions(+), 99 deletions(-)

diff --git a/src/views/statisticalQueryManagement/businessStatistics.vue b/src/views/statisticalQueryManagement/businessStatistics.vue
index 2b3db34..ae71a1a 100644
--- a/src/views/statisticalQueryManagement/businessStatistics.vue
+++ b/src/views/statisticalQueryManagement/businessStatistics.vue
@@ -1,58 +1,121 @@
 <template>
-  <basic-container>
-    <avue-crud
-      :option="tableOption"
-      :data="tableData"
-      :page.sync="tablePage"
-      :permission="permissionList"
-      :before-open="beforeOpen"
-      @date-change="dateChange"
-      @row-click="handleRowClick"
+  <div>
+    <basic-container
+      :class="[
+        'witerFontColorInput',
+        $store.state.control.screenSize == 1366 ? 'smallSize' : 'normalSize',
+        $store.state.control.windowWidth >= 1024 ? 'tooRowSearch1' : '',
+      ]"
     >
-    </avue-crud>
-  </basic-container>
+      <avue-crud
+        :option="tableOption"
+        :table-loading="loading"
+        :data="tableData"
+        :page.sync="page"
+        :permission="permissionList"
+        ref="crud"
+        :search.sync="search"
+        @row-update="rowUpdates"
+        @row-save="rowSave"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        @cell-click="handleRowClick"
+        class="businessStatisticsStyle tablesss"
+      >
+        <template slot="menuLeft">
+          <el-button
+            type="warning"
+            size="small"
+            plain
+            icon="el-icon-download"
+            @click="handleExportBusinessStatis"
+            >导出
+          </el-button>
+        </template>
+      </avue-crud>
+    </basic-container>
+    <el-dialog
+      class="tongji-class"
+      :title="dialogTitle"
+      width="80%"
+      append-to-body
+      :visible.sync="dialogShow"
+      v-if="dialogShow"
+    >
+      <businessStatisticsDetail
+        v-if="searchitem === 'fw'"
+        :fwdeptId="fwdeptId"
+      ></businessStatisticsDetail>
+      <businessStatisticsPq
+        v-if="searchitem === 'pq'"
+        :fwdeptId="fwdeptId"
+      ></businessStatisticsPq>
+      <businessStatisticsFwdq
+        v-if="searchitem === 'dq'"
+        :fwdeptId="fwdeptId"
+      ></businessStatisticsFwdq>
+      <securityGuardDetail
+        v-if="searchitem === 'zong'"
+        :fwdeptId="fwdeptId"
+        :paramCz="paramCz"
+      ></securityGuardDetail>
+      <!-- <avue-crud
+        :option="option2"
+        :data="data2"
+        :page.sync="page2"
+        @row-save="rowSave2"
+        @row-update="rowUpdate2"
+        @row-del="rowDel2"
+        :table-loading="loading2"
+      >
+      </avue-crud> -->
+    </el-dialog>
+  </div>
 </template>
 <script>
-import FileSaver from "file-saver";
-import XLSX from "xlsx";
 import { mapGetters } from "vuex";
+import {
+  selectYw,
+  dictionaryList,
+} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+import { lazyTrees } from "../../api/index/index";
+import businessStatisticsDetail from "./businessStatisticsDetail";
+import businessStatisticsPq from "./businessStatisticsPq";
+import businessStatisticsFwdq from "./businessStatisticsFwdq";
+import securityGuardDetail from "./securityGuardDetail";
+import Qs from "qs";
+import { getToken } from "@/util/auth";
 export default {
   name: "业务情况统计",
+  components: {
+    businessStatisticsDetail,
+    businessStatisticsPq,
+    businessStatisticsFwdq,
+    securityGuardDetail,
+  },
   data() {
     return {
-      value1: "",
-      value2: "",
-      tableData: [
-        {
-          company: "江西省永安保安服务有限公司",
-          subOffice: "南昌市公安局",
-          customer: "76",
-          num: "1124",
-        },
-        {
-          company: "南昌市赣水保安服务有限公司",
-          subOffice: "东湖分局",
-          customer: "85",
-          num: "1428",
-        },
-        {
-          company: "江西中业兴达保安服务有限公司",
-          subOffice: "西湖分局",
-          customer: "46",
-          num: "974",
-        },
-      ],
-      tablePage: {
+      page: {
         pageSize: 10,
         currentPage: 1,
         total: 0,
+        ...this.$store.state.control.changePageSize,
       },
+      search: {},
+      query: {},
+      value1: "",
+      value2: "",
+      tableData: [],
       tableOption: {
-        excelBtn: true,
+        // excelBtn: true,
         delBtn: false,
         editBtn: false,
         addBtn: false,
-        selection: true,
+        selection: false,
         menu: false,
         // dateBtn: true,
         align: "center",
@@ -63,50 +126,42 @@
         searchShow: true,
         searchMenuSpan: 6,
         index: true,
+        indexLabel: "序号",
         viewBtn: true,
         dialogClickModal: false,
+        ...this.$store.state.control.clearOtherBut,
         column: [
           {
-            label: "公司名称",
-            prop: "company",
+            label: "企业名称",
+            prop: "enterpriseName",
+            search: true,
+            searchSpan: 4,
+            width: 300,
+            display: false,
+          },
+          {
+            label: "企业属性",
+            prop: "stats",
             search: true,
             searchSpan: 4,
             display: false,
-          },
-
-          {
-            label: "所属辖区",
-            prop: "subOffice",
-            searchSpan: 4,
             type: "select",
             props: {
-              label: "label",
-              value: "value",
+              label: "dictValue",
+              value: "dictKey",
             },
-            // cascaderItem: ["city", "area"],
-            // dicUrl:subofficeOptions,
-            dicData: [
-              {
-                value: "0",
-                label: "南昌市公安局",
-              },
-              {
-                value: "2",
-                label: "东湖分局",
-              },
-              {
-                value: "3",
-                label: "西湖分局",
-              },
-              {
-                value: "4",
-                label: "青云谱分局",
-              },
-              {
-                value: "5",
-                label: "青山湖分局",
-              },
-            ],
+            dicData: [],
+          },
+          {
+            label: "所属辖区",
+            prop: "jurname",
+            searchSpan: 4,
+            type: "tree",
+            props: {
+              label: "title",
+              value: "id",
+            },
+            dicData: [],
             search: true,
             rules: [
               {
@@ -117,17 +172,62 @@
             ],
           },
           {
-            label: "服务对象数量",
-            prop: "customer",
+            label: "保安员人数",
+            prop: "znum",
             display: false,
           },
           {
-            label: "保安员人数",
-            prop: "num",
+            label: "持证人数",
+            prop: "cznum",
             display: false,
+          },
+          {
+            label: "派遣人数",
+            prop: "pqnum",
+            display: false,
+          },
+          {
+            label: "服务对象数量",
+            prop: "fwnum",
+            display: false,
+          },
+          {
+            label: "服务到期数量",
+            prop: "dqnum",
+            display: false,
+          },
+          {
+            label: "单位注册时间",
+            prop: "releaseTimeRange",
+            type: "date",
+            format: "yyyy-MM-dd",
+            valueFormat: "yyyy-MM-dd",
+            searchRange: true,
+            searchSpan: 6,
+            searchLabelWidth: 120,
+            labelWidth: 160,
+            hide: true,
+            addDisplay: false,
+            editDisplay: false,
+            viewDisplay: false,
+            search: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择单位注册时间",
+                trigger: "blur",
+              },
+            ],
           },
         ],
       },
+      loading: true,
+      dialogTitle: "",
+      dialogShow: false,
+      pqdialogShow: false,
+      fwdeptId: "",
+      searchitem: "",
+      paramCz: false,
     };
   },
   computed: {
@@ -142,32 +242,182 @@
     },
   },
   methods: {
-    handleRowClick(row, event, column) {
-      this.$router.push({ path: "/statisticalQueryManagement/businessStatisticsDetail" });
+    //业务情况统计信息导出
+    handleExportBusinessStatis() {
+      this.$confirm("是否导出业务情况统计信息数据?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        //获取查询条件
+        const { releaseTimeRange } = this.search;
+        if (releaseTimeRange) {
+          this.search["startTime"] = releaseTimeRange[0];
+          this.search["endTime"] = releaseTimeRange[1];
+        }
+        var data = {
+          jurisdiction: this.search.jurname,
+          stats: this.search.stats,
+          deptid: this.search.enterpriseName,
+          startTime: this.search.startTime,
+          endTime: this.search.endTime,
+        };
+        // console.log(data,123);
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/information/export-business-statis?${
+            this.website.tokenHeader
+          }=${getToken()}&` + data
+        );
+      });
     },
-    dateChange() {},
-    // downExcel() {
-    //   let et = XLSX.utils.table_to_book(document.getElementById("table"));
-    //   let etout = XLSX.write(et, {
-    //     bookType: "xlsx",
-    //     bookSST: true,
-    //     type: "array"
-    //   });
-    //   try {
-    //     FileSaver.saveAs(
-    //       new Blob([etout], {
-    //         type: "application/octet-stream"
-    //       }),
-    //       `表.xlsx`
-    //     ); //导出的文件名
-    //   } catch (e) {
-    //     console.log(e, etout);
-    //   }
-    //   return etout;
-    // }
+    getSubOfficeData() {
+      lazyTrees().then((res) => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach((item) => {
+            if (item.label == "所属辖区") {
+              item.dicData = res.data.data;
+            }
+          });
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    getDictionaryList() {
+      dictionaryList().then((res) => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach((item) => {
+            if (item.label == "企业属性") {
+              item.dicData = res.data.data;
+            }
+          });
+        }
+      });
+    },
+    searchChange(params, done) {
+      this.query = params;
+      this.page.currentPage = 1;
+      this.onLoad(this.page, params);
+      done();
+    },
+    searchReset() {
+      this.query = {};
+      this.onLoad(this.page);
+    },
+    currentChange(currentPage) {
+      this.page.currentPage = currentPage;
+      this.onLoad(this.page, this.query);
+    },
+    sizeChange(pageSize) {
+      this.page.pageSize = pageSize;
+      this.onLoad(this.page, this.query);
+    },
+    refreshChange() {
+      this.onLoad(this.page, this.query);
+    },
+    onLoad(page, params = {}) {
+      params = this.search;
+      this.loading = true;
+      let param = {};
+      param["jurisdiction"] = params["jurname"] || "";
+      param["deptid"] = params["enterpriseName"] || "";
+      param["stats"] = params["stats"] || "";
+      param["current"] = page.currentPage;
+      param["size"] = page.pageSize;
+      const { releaseTimeRange } = this.query;
+      let values = {
+        ...param,
+      };
+      if (releaseTimeRange) {
+        values = {
+          ...param,
+          startTime: releaseTimeRange[0],
+          endTime: releaseTimeRange[1],
+          ...this.query,
+        };
+        values.releaseTimeRange = null;
+      }
+      selectYw(values).then((res) => {
+        const data = res.data.data;
+        this.page.total = data.total;
+        this.tableData = data.records;
+        this.$store.commit("setWindowSizeHeightAdd");
+        this.loading = false;
+      });
+    },
+    handleRowClick(row, column, cell, event) {
+      this.paramCz = false;
+
+      if (column.label == "服务对象数量") {
+        this.dialogTitle = "业务统计明细---服务对象清单";
+        this.searchitem = "fw";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+
+        // dispatcherUnit({
+        //   deptId: row.departmentid
+        // }).then(res => {
+        //   if (res.data.code === 200) {
+        //     this.page = {
+        //       pageSize: 10,
+        //       currentPage: 1,
+        //       total: res.data.data.total
+        //     };
+        //     this.tableData = res.data.data.records;
+        //   }
+        // });
+        // this.$router.push({
+        //   path:
+        //     "/statisticalQueryManagement/businessStatisticsDetail?&departmentid=" +
+        //     row.departmentid
+        // });
+      } else if (column.label == "保安员人数") {
+        this.dialogTitle = "业务统计明细---保安员清单";
+        this.searchitem = "zong";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+
+        // this.$router.push({
+        //   path:
+        //     "/statisticalQueryManagement/securityGuardDetail?departmentid=" +
+        //     row.departmentid
+        // });
+      } else if (column.label == "派遣人数") {
+        this.dialogTitle = "业务统计明细---派遣人员清单";
+        this.searchitem = "pq";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else if (column.label == "服务到期数量") {
+        this.dialogTitle = "业务统计明细---服务到期公司清单";
+        this.searchitem = "dq";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else if (column.label == "持证人数") {
+        this.dialogTitle = "业务统计明细---持证保安人员清单";
+        this.searchitem = "zong";
+        this.paramCz = true;
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else {
+        this.dialogShow = false;
+      }
+    },
   },
-  mounted() {},
+  mounted() {
+    this.getSubOfficeData();
+    this.getDictionaryList();
+    this.$store.commit("setWindowSizeHeightAdd");
+  },
 };
 </script>
 <style lang="scss" scoped>
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(7),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(6),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(8),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(9),
+/deep/ .businessStatisticsStyle .el-table__row:hover td:nth-child(10) {
+  cursor: pointer !important;
+}
 </style>

--
Gitblit v1.9.3