From a17e2d1457cabc823ce221db51b0f34469a7bb73 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 06 Dec 2021 16:22:38 +0800
Subject: [PATCH] 考试审核,保安员统计,业务情况统计导出修改

---
 src/views/statisticalQueryManagement/securityGuardStatistics.vue |  233 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 196 insertions(+), 37 deletions(-)

diff --git a/src/views/statisticalQueryManagement/securityGuardStatistics.vue b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
index 1e36ecf..9d4e429 100644
--- a/src/views/statisticalQueryManagement/securityGuardStatistics.vue
+++ b/src/views/statisticalQueryManagement/securityGuardStatistics.vue
@@ -1,32 +1,62 @@
 <template>
-  <basic-container>
-    <avue-crud
-      :option="tableOption"
-      :table-loading="loading"
-      :data="tableData"
-      :page.sync="page"
-      :permission="permissionList"
-      ref="crud"
-      @search-change="searchChange"
-      @search-reset="searchReset"
-      @current-change="currentChange"
-      @size-change="sizeChange"
-      @refresh-change="refreshChange"
-      @on-load="onLoad"
-      @row-click="handleRowClick"
-      class="rowClick"
+  <div>
+    <basic-container class="witerFontColorInput">
+      <avue-crud
+        :option="tableOption"
+        :table-loading="loading"
+        :data="tableData"
+        :page.sync="page"
+        :permission="permissionList"
+        ref="crud"
+        :search.sync="search"
+        @search-change="searchChange"
+        @search-reset="searchReset"
+        @current-change="currentChange"
+        @size-change="sizeChange"
+        @refresh-change="refreshChange"
+        @on-load="onLoad"
+        @cell-click="handleRowClick"
+        class="rowClick"
+      >
+      <template slot="menuLeft">
+      <el-button
+              type="warning"
+              size="small"
+              plain
+              icon="el-icon-download"
+              @click="handleExportSecurityStatisInfo"
+              >导出
+            </el-button>
+      </template>
+      </avue-crud>
+      
+    </basic-container>
+    <el-dialog
+      class="tongji-class"
+      :title="dialogTitle"
+      append-to-body
+      :visible.sync="dialogShow"
+      v-if="dialogShow"
     >
-    </avue-crud>
-  </basic-container>
+      <companyDetails :fwdeptId="fwdeptId"></companyDetails>
+    </el-dialog>
+  </div>
 </template>
 <script>
-import FileSaver from "file-saver";
-import XLSX from "xlsx";
 import { mapGetters } from "vuex";
-import { selectLi } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
-import { lazyTreeJu } from "../../api/index/index";
+import {
+  selectLi,
+  dictionaryList
+} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
+import { lazyTreeJu, lazyTrees } from "../../api/index/index";
+import companyDetails from "./companyDetails";
+import Qs from "qs";
+import { getToken } from "@/util/auth";
 export default {
   name: "业务情况统计",
+  components: {
+    companyDetails
+  },
   data() {
     return {
       page: {
@@ -34,6 +64,7 @@
         currentPage: 1,
         total: 0
       },
+      search:{},
       query: {},
       value1: "",
       value2: "",
@@ -78,7 +109,7 @@
       tableOption: {
         align: "center",
         viewBtn: true,
-        excelBtn: true,
+        // excelBtn: true,
         delBtn: false,
         editBtn: false,
         addBtn: false,
@@ -93,6 +124,7 @@
         searchShow: true,
         searchMenuSpan: 6,
         index: true,
+        indexLabel:'序号',
         dialogClickModal: false,
         column: [
           {
@@ -100,13 +132,27 @@
             prop: "deptname",
             search: true,
             searchSpan: 4,
+            width: 280,
             display: false
+          },
+          {
+            label: "单位类型",
+            prop: "stats",
+            search: true,
+            searchSpan: 4,
+            display: false,
+            type: "select",
+            props: {
+              label: "dictValue",
+              value: "dictKey"
+            },
+            dicData: []
           },
           {
             label: "所属辖区",
             prop: "jurname",
             searchSpan: 4,
-            type: "select",
+            type: "tree",
             props: {
               label: "title",
               value: "value"
@@ -145,6 +191,29 @@
             ]
           },
           {
+            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",
+              },
+            ],
+          },
+          {
             label: "保安员总数",
             prop: "num",
             display: false
@@ -156,22 +225,33 @@
           },
           {
             label: "未派遣人数",
-            prop: "wpaiqnum",
+            prop: "wpqnum",
             display: false
           },
           {
             label: "派遣人数",
-            prop: "paiqnum",
+            prop: "pqnum",
+            display: false
+          },
+          {
+            label: "已采集照片人数",
+            prop: "ycjzpnum",
             display: false
           },
           {
             label: "未采集照片人数",
-            prop: "wcaijnum",
+            prop: "wcjzpnum",
+            display: false
+          },
+          {
+            label: "已采集指纹人数",
+            prop: "ycjzwnum",
             display: false
           },
           {
             label: "资格审查异常人数",
-            prop: "yicnum",
+            width: 150,
+            prop: "scycnum",
             display: false
           },
           // {
@@ -181,13 +261,15 @@
           // },
           {
             label: "缴纳社保人数",
-            prop: "sbnum",
+            prop: "jnsbnum",
             display: false
           }
         ]
       },
       companyName: "",
-      loading: true
+      loading: true,
+      dialogShow: false,
+      dialogTitle: ""
     };
   },
   computed: {
@@ -202,16 +284,68 @@
     }
   },
   methods: {
+    //保安员统计信息导出
+    handleExportSecurityStatisInfo() {
+      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.deptname,
+          startTime: this.search.startTime,
+          endTime: this.search.endTime,
+        };
+        // console.log(data,123);
+        //序列号url形式,用&拼接
+        data = Qs.stringify(data);
+        window.open(
+          `/api/information/export-security-statis-info?${
+            this.website.tokenHeader
+          }=${getToken()}&` + data
+        );
+      });
+    },
     getSubOfficeData() {
-      lazyTreeJu().then(res => {
+      lazyTrees().then(res => {
         if (res.data.code === 200) {
           this.tableOption.column.forEach(item => {
             if (item.label == "所属辖区") {
+              // let data = res.data.data;
               item.dicData = res.data.data;
             }
           });
         } else {
           this.$message.error(res.msg);
+        }
+      });
+    },
+    // searchChildren(data) {
+    //   data.forEach(item => {
+    //     if(item.hasChildren)(
+
+    //     )
+    //     else {
+    //       this.searchChildren()
+    //     }
+    //   });
+    // },
+    getDictionaryList() {
+      dictionaryList().then(res => {
+        if (res.data.code === 200) {
+          this.tableOption.column.forEach(item => {
+            if (item.label == "单位类型") {
+              item.dicData = res.data.data;
+            }
+          });
         }
       });
     },
@@ -228,40 +362,65 @@
     },
     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["deptname"] || "";
+      param["stats"] = params["stats"] || "";
       param["current"] = page.currentPage;
       param["size"] = page.pageSize;
-      selectLi(param).then(res => {
+      const { releaseTimeRange } = this.query;
+      let values = {
+          ...param,
+        };
+        if (releaseTimeRange) {
+          values = {
+            ...param,
+            startTime: releaseTimeRange[0],
+            endTime: releaseTimeRange[1],
+            ...this.query,
+          };
+          values.releaseTimeRange = null;
+        }
+      selectLi(values).then(res => {
         const data = res.data.data;
         this.page.total = data.total;
         this.tableData = data.records;
         this.loading = false;
       });
     },
-    handleRowClick(row, event, column) {
-      this.$router.push({
-        path: "/statisticalQueryManagement/companyDetails?deptid=" + row.dept_id
-      });
+    handleRowClick(row, column, cell, event) {
+      if (column.label == "保安员总数") {
+        this.dialogTitle = "保安员明细";
+        this.fwdeptId = row.departmentid;
+        this.dialogShow = true;
+      } else {
+        this.dialogShow = false;
+      }
+      // this.$router.push({
+      //   path: "/statisticalQueryManagement/companyDetails?deptid=" + row.dept_id
+      // });
     }
   },
   mounted() {
     this.getSubOfficeData();
+    this.getDictionaryList();
   }
 };
 </script>
 <style lang="scss" scoped>
-/deep/ .rowClick .el-table__row:hover td {
+/deep/ .rowClick .el-table__row:hover td:nth-child(6) {
   cursor: pointer;
 }
 </style>

--
Gitblit v1.9.3