Administrator
2021-12-14 f5662839eca7e8ed94c69246a061053040b42dbc
保安员统计,业务详情统计修改,用户手册图标更换
2 files modified
9 files added
2231 ■■■■■ changed files
public/img/top/heard.png patch | view | raw | blame | history
src/api/statisticalQueryManagement/statisticalQueryManagement.js 88 ●●●●● patch | view | raw | blame | history
src/page/index/top/top-userSManual.vue 7 ●●●● patch | view | raw | blame | history
src/views/securityGuard/data.js 20 ●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatistics.vue 423 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsDetail.vue 241 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue 221 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsPq.vue 219 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/companyDetails.vue 396 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/securityGuardDetail.vue 265 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/securityGuardStatistics.vue 351 ●●●●● patch | view | raw | blame | history
public/img/top/heard.png
src/api/statisticalQueryManagement/statisticalQueryManagement.js
New file
@@ -0,0 +1,88 @@
import request from "@/router/axios";
export const selectLi = params => {
    return request({
        url: "/api/information/selectSecurityStatistics",
        method: "get",
        params: params
    });
};
export const selectYw = params => {
    return request({
        url: "/api/information/selectBusinessStatistics",
        method: "get",
        params: params
    });
};
export const selectUIn = params => {
    return request({
        url: "/api/information/selectUIn",
        method: "post",
        params: params
    });
};
export const selectDis = params => {
    return request({
        url: "/api/information/selectDis",
        method: "post",
        params: params
    });
};
// 服务单位下拉接口
export const selectFw = params => {
    return request({
        url: "/api/information/selectFw",
        method: "post",
        params: params
    });
};
// 查保安员明细
export const pageSecurity = params => {
    return request({
        url: "/api/blade-user/page-security",
        method: "get",
        params: params
    });
};
// 服务对象明细
export const fwList = params => {
    return request({
        url: "/api/dispatcherUnit/list",
        method: "get",
        params: params
    });
};
// 单位类型
export const dictionaryList = () => {
    return request({
        url: "/api/blade-system/dict-biz/dictionary?code=stats",
        method: "get"
    });
};
// 服务对象数量
export const dispatcherUnit = params => {
    return request({
        url: "/api/dispatcherUnit/page?isExpire=1",
        method: "get",
        params: params
    });
};
// 派遣人员清单
export const dispatcher = params => {
    return request({
        url: "/api/dispatcher/page?dispatch=0",
        method: "get",
        params: params
    });
};
// 服务到期公司清单
export const dispatcherUnit2 = params => {
    return request({
        url: "/api/dispatcherUnit/page?isExpire=2",
        method: "get",
        params: params
    });
};
src/page/index/top/top-userSManual.vue
@@ -17,7 +17,8 @@
    </el-dialog>
    <span>
      <i class="el-icon-mobile" @click="open" style="font-size: 20px"></i>
      <img class="imgstop" src="img/top/heard.png" alt="" style="width:20px ;height:20px">
      <!-- <i class="el-icon-mobile" @click="open" style="font-size: 20px"></i> -->
    </span>
  </div>
</template>
@@ -110,5 +111,9 @@
.list {
  width: 100%;
}
.imgstop{
  position: relative;
  top: 5px;
}
</style>
src/views/securityGuard/data.js
@@ -618,14 +618,22 @@
        prop: 'dispatch',
        type: 'select',
        editDisplay: false,
        search: true,
        searchSpan: 3,
        addDisplay: false,
        dicData: [{
            label: '未派遣',
            value: '1'
        }, {
            label: '已派遣',
            value: '0'
        }]
                label: '全部',
                value: '2'
            },
            {
                label: '已派遣',
                value: '0'
            },
            {
                label: '未派遣',
                value: '1'
            }
        ]
    },
    {
        label: "是否持证",
src/views/statisticalQueryManagement/businessStatistics.vue
New file
@@ -0,0 +1,423 @@
<template>
  <div>
    <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"
      >
        <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%"
      style="height:100%"
      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>
    </el-dialog>
  </div>
</template>
<script>
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 {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      search: {},
      query: {},
      value1: "",
      value2: "",
      tableData: [],
      tableOption: {
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: false,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        indexLabel: "序号",
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "公司名称",
            prop: "enterpriseName",
            search: true,
            searchSpan: 4,
            width: 300,
            display: false,
          },
          {
            label: "单位类型",
            prop: "stats",
            search: true,
            searchSpan: 4,
            display: false,
            type: "select",
            props: {
              label: "dictValue",
              value: "dictKey",
            },
            dicData: [],
          },
          {
            label: "所属辖区",
            prop: "jurname",
            type: "tree",
            props: {
              label: "title",
              value: "id",
            },
            dicData: [],
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "blur",
              },
            ],
          },
          {
            label: "所属辖区",
            prop: "jurisdiction",
            search: true,
            searchSpan: 4,
            type: "tree",
            dicUrl: "/api/jurisdiction/lazy-tree",
            props: {
              label: "title",
              value: "id",
            },
            hide: true,
            checkStrictly: true,
            slot: true,
            rules: [
              {
                required: false,
                message: "请选择所属辖区",
                trigger: "click",
              },
            ],
          },
          {
            label: "保安员人数",
            prop: "znum",
            display: false,
          },
          {
            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: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false),
      };
    },
  },
  methods: {
    //业务情况统计信息导出
    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.jurisdiction,
          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
        );
      });
    },
    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["jurisdiction"] || "";
      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.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() {
    // this.getSubOfficeData();
    this.getDictionaryList();
  },
};
</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>
src/views/statisticalQueryManagement/businessStatisticsDetail.vue
New file
@@ -0,0 +1,241 @@
<template>
  <div class="businessDetail">
  <basic-container>
    <avue-crud
      :option="tableOption"
      :table-loading="loading"
      :data="tableData"
      :page.sync="page"
      :permission="permissionList"
      ref="crud"
      @row-update="rowUpdates"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
    </avue-crud>
  </basic-container>
   </div>
</template>
<script>
import { mapGetters } from "vuex";
import {
  dispatcherUnit
} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "业务情况统计明细",
  props: ["fwdeptId"],
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      query: {},
      value1: "",
      value2: "",
      tableData: [
      ],
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      tableOption: {
        excelBtn: true,
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        indexLabel:'序号',
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "服务单位名称",
            prop: "name",
            props: {
              label: "name",
              value: "name"
            },
            searchLabelWidth: 110,
            search: true,
            searchSpan: 8,
            rules: [
              {
                required: true,
                message: "请选择服务单位",
                trigger: "blur"
              }
            ]
            // display: false
          },
          {
            label: "保安公司名称",
            width: 300,
            prop: "deptName",
            display: false
          },
          {
            label: "服务开始时间",
            prop: "startTime",
            display: false
          },
          {
            label: "服务到期时间",
            prop: "endTime",
            display: false
          },
          {
            label: "保安员人数",
            prop: "num",
            display: false
          },
          {
            label: "联系人",
            prop: "linkman",
            display: false
          },
          {
            label: "联系电话",
            prop: "phone",
            display: false
          }
        ]
      },
      typeValue: "0",
      typeOptions: [
        {
          value: "0",
          label: "全部"
        },
        {
          value: "1",
          label: "社保缴纳人数"
        },
        {
          value: "2",
          label: "社保缴纳总额"
        },
        {
          value: "3",
          label: "公司派遣人数"
        },
        {
          value: "4",
          label: "社保缴纳人数占比"
        }
      ],
      subofficeValue: "0",
      subofficeOptions: [
        {
          value: "0",
          label: "南昌市公安局"
        },
        {
          value: "2",
          label: "东湖分局"
        },
        {
          value: "3",
          label: "西湖分局"
        },
        {
          value: "4",
          label: "青云谱分局"
        },
        {
          value: "5",
          label: "青山湖分局"
        }
      ],
      servicesList: [],
      companyName: "",
      loading: true,
      deptid: ""
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    }
  },
  methods: {
    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 = {}) {
      this.loading = true;
      let param = {};
      param["deptName"] = params['deptName'] || "";
      param["deptId"] = this.fwdeptId;
      param["current"] = page.currentPage;
      param["size"] = page.pageSize;
      param["name"] = params["name"] || "";
      dispatcherUnit(param).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.tableData = data.records;
        this.loading = false;
      });
    },
    getLocationParams() {
      let url = window.location.href;
      let urlArr = url.split("?")[1].split("&");
      var object = new Object();
      for (var i = 0; i < urlArr.length; i++) {
        let mm = urlArr[i].split("=");
        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
      }
      this.deptid = object["departmentid"] || "";
      // let jurisdiction = object["jurisdiction"] || "";
      this.query = { deptid: this.deptid };
      this.onLoad(this.page, this.query);
    }
  },
  mounted() {
  }
};
</script>
<style lang="scss" scoped>
</style>
src/views/statisticalQueryManagement/businessStatisticsFwdq.vue
New file
@@ -0,0 +1,221 @@
<template>
  <basic-container>
    <avue-crud
      :option="tableOption"
      :table-loading="loading"
      :data="tableData"
      :page.sync="page"
      :permission="permissionList"
      ref="crud"
      @row-update="rowUpdates"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
    </avue-crud>
  </basic-container>
</template>
<script>
import { mapGetters } from "vuex";
import {
  dispatcherUnit2
} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "业务情况统计明细---保安公司服务到期的公司列表",
  props: ["fwdeptId"],
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      query: {},
      value1: "",
      value2: "",
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      tableOption: {
        excelBtn: true,
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        // dateBtn: true,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        indexLabel:'序号',
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "服务单位名称",
            prop: "name",
            props: {
              label: "name",
              value: "name"
            },
            searchLabelWidth: 110,
            search: true,
            searchSpan: 8,
            rules: [
              {
                required: true,
                message: "请选择服务单位",
                trigger: "blur"
              }
            ]
          },
          {
            label: "所属保安公司",
            prop: "deptName",
            width: 300,
            display: false
          },
          {
            label: "服务开始时间",
            prop: "startTime",
            display: false
          },
          {
            label: "服务到期时间",
            prop: "endTime",
            display: false
          },
          {
            label: "保安员数量",
            prop: "num",
            display: false
          },
          {
            label: "联系人",
            prop: "linkman",
            display: false
          },
          {
            label: "联系电话",
            prop: "phone",
            display: false
          }
        ]
      },
      typeValue: "0",
      subofficeValue: "0",
      servicesList: [],
      companyName: "",
      loading: true,
      deptid: ""
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    }
  },
  methods: {
    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 = {}) {
      this.loading = true;
      let param = {};
      param["deptName"] = params["deptName"] || "";
      param["deptId"] = this.fwdeptId;
      param["current"] = page.currentPage;
      param["size"] = page.pageSize;
      param["name"] = params["name"] || "";
      dispatcherUnit2(param).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.tableData = data.records;
        this.loading = false;
      });
    },
    getFuWuList() {
      // selectFw().then(res => {
      //   if (res.data.code === 200) {
      //     this.tableOption.column.forEach(item => {
      //       if (item.label == "服务单位名称") {
      //         item.dicData = res.data.data;
      //       }
      //     });
      //     // this.servicesList = res.data.data;
      //   }
      // });
    },
    // 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);
    //     }
    //   });
    // },
    getLocationParams() {
      let url = window.location.href;
      let urlArr = url.split("?")[1].split("&");
      var object = new Object();
      for (var i = 0; i < urlArr.length; i++) {
        let mm = urlArr[i].split("=");
        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
      }
      this.deptid = object["departmentid"] || "";
      // let jurisdiction = object["jurisdiction"] || "";
      this.query = { deptid: this.deptid };
      // this.onLoad(this.page, obj);
      this.onLoad(this.page, this.query);
    }
  },
  mounted() {
    // this.getTableData();
    this.getFuWuList();
    // this.getSubOfficeData();
    // this.getLocationParams();
  }
};
</script>
<style lang="scss" scoped></style>
src/views/statisticalQueryManagement/businessStatisticsPq.vue
New file
@@ -0,0 +1,219 @@
<template>
  <basic-container>
    <avue-crud
      :option="tableOption"
      :table-loading="loading"
      :data="tableData"
      :page.sync="page"
      :permission="permissionList"
      ref="crud"
      @row-update="rowUpdates"
      @row-save="rowSave"
      @search-change="searchChange"
      @search-reset="searchReset"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
    >
    </avue-crud>
  </basic-container>
</template>
<script>
import { mapGetters } from "vuex";
import {
  selectFw,
  dispatcher
} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
// import { lazyTreeJu, lazyTrees } from "../../api/index/index";
export default {
  name: "业务情况统计明细",
  props: ["fwdeptId"],
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      query: {},
      value1: "",
      value2: "",
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      tableOption: {
        excelBtn: true,
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        indexLabel:'序号',
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "保安公司名称",
            prop: "deptName",
            width: 300,
            display: false,
          },
          {
            label: "服务单位名称",
            prop: "dispatcherCompany",
            width: 300,
            props: {
              label: "name",
              value: "name"
            },
            dicData: [],
            searchLabelWidth: 110,
            type: "tree",
            rules: [
              {
                required: true,
                message: "请选择服务单位",
                trigger: "blur"
              }
            ]
          },
          {
            label: "派遣时间",
            prop: "dispatchertime",
            display: false
          },
          {
            label: "保安员姓名",
            prop: "securityName",
            display: false,
            search:true,
            searchSpan:4,
            searchLabelWidth:110
          },
          {
            label: "身份证号",
            prop: "idCardNo",
            display: false
          },
          {
            label: "联系电话",
            prop: "securityPhone",
            display: false
          }
        ]
      },
      typeValue: "0",
      subofficeValue: "0",
      servicesList: [],
      companyName: "",
      loading: true,
      deptid: ""
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    }
  },
  methods: {
    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 = {}) {
      this.loading = true;
      let param = {};
      param["securityName"] = params["securityName"] || "";
      param["deptId"] = this.fwdeptId;
      param["current"] = page.currentPage;
      param["size"] = page.pageSize;
      param["dispatcherCompany"] = params["name"] || "";
      dispatcher(param).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.tableData = data.records;
        this.loading = false;
      });
    },
    getFuWuList() {
      // selectFw().then(res => {
      //   if (res.data.code === 200) {
      //     this.tableOption.column.forEach(item => {
      //       if (item.label == "服务单位名称") {
      //         item.dicData = res.data.data;
      //       }
      //     });
      //     // this.servicesList = res.data.data;
      //   }
      // });
    },
    // 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);
    //     }
    //   });
    // },
    getLocationParams() {
      let url = window.location.href;
      let urlArr = url.split("?")[1].split("&");
      var object = new Object();
      for (var i = 0; i < urlArr.length; i++) {
        let mm = urlArr[i].split("=");
        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
      }
      this.deptid = object["departmentid"] || "";
      // let jurisdiction = object["jurisdiction"] || "";
      this.query = { deptid: this.deptid };
      // this.onLoad(this.page, obj);
      this.onLoad(this.page, this.query);
    }
  },
  mounted() {
    // this.getTableData();
    this.getFuWuList();
  }
};
</script>
<style lang="scss" scoped></style>
src/views/statisticalQueryManagement/companyDetails.vue
New file
@@ -0,0 +1,396 @@
<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"
    >
    </avue-crud>
  </basic-container>
</template>
<script>
import { mapGetters } from "vuex";
import { selectUIn } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "公司人员详情",
  props: ["fwdeptId"],
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      query: {},
      value1: "",
      value2: "",
      tableData: [
        // {
        //   name: "张强",
        //   No: "NO.2143",
        //   idNumber: "230229187623601221",
        //   tel: "13728198762",
        //   holder: "是",
        //   socialSecurity: "是",
        //   picture: "是",
        //   qualification: "通过",
        //   pass: "是",
        //   send: "是"
        // },
        // {
        //   name: "张强",
        //   No: "NO.2143",
        //   idNumber: "230229187623601221",
        //   tel: "13728198762",
        //   holder: "是",
        //   socialSecurity: "是",
        //   picture: "是",
        //   qualification: "通过",
        //   pass: "是",
        //   send: "是"
        // },
        // {
        //   name: "张强",
        //   No: "NO.2143",
        //   idNumber: "230229187623601221",
        //   tel: "13728198762",
        //   holder: "是",
        //   socialSecurity: "是",
        //   picture: "是",
        //   qualification: "通过",
        //   pass: "是",
        //   send: "是"
        // }
      ],
      tableOption: {
        excelBtn: true,
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        // dateBtn: true,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 10,
        index: true,
        indexLabel:'序号',
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "保安姓名",
            // searchLabelWidth: 90,
            prop: "real_name",
            search: true,
            searchSpan: 4,
            display: false
          },
          {
            label: "所属保安公司",
            prop: "enterpriseName",
            width: 300,
            display: false
          },
          {
            label: "保安证编号",
            prop: "securitynumber",
            width: 180,
            display: false
          },
          {
            label: "身份证号",
            prop: "cardid",
            width: 180,
            display: false
          },
          {
            label: "联系方式",
            prop: "phone",
            width: 180,
            display: false
          },
          {
            label: "是否持证",
            prop: "hold",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value"
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "1",
                label: "是"
              },
              {
                value: "2",
                label: "否"
              },
              {
                value: "3",
                label: "吊销"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否持证",
                trigger: "blur"
              }
            ]
          },
          {
            label: "是否缴纳社保",
            //  labelWidth: 120,
            searchLabelWidth: 100,
            prop: "soil",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "是"
              },
              {
                value: "1",
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否缴纳社保",
                trigger: "blur"
              }
            ]
          },
          {
            label: "是否已采集照片",
            searchLabelWidth: 120,
            prop: "photo",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "是"
              },
              {
                value: "1",
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否已采集照片",
                trigger: "blur"
              }
            ]
          },
          {
            label: "资格审查情况",
            searchLabelWidth: 100,
            prop: "examination_type",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "正常"
              },
              {
                value: "1",
                label: "异常"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择资格审查情况",
                trigger: "blur"
              }
            ]
          },
          // {
          //   label: "是否通过考试",
          //   searchLabelWidth: 110,
          //   prop: "pass",
          //   searchSpan: 4,
          //   type: "select",
          //   props: {
          //     label: "label",
          //     value: "value"
          //   },
          //   dicData: [
          //     {
          //       value: "0",
          //       label: "是"
          //     },
          //     {
          //       value: "2",
          //       label: "否"
          //     }
          //   ],
          //   search: true,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请选择是否通过考试",
          //       trigger: "blur"
          //     }
          //   ]
          // },
          {
            label: "是否派遣",
            prop: "dispatch",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "是"
              },
              {
                value: "1",
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否派遣",
                trigger: "blur"
              }
            ]
          }
        ]
      },
      companyName: "",
      loading: true,
      deptid: ""
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    }
  },
  methods: {
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page, this.query);
    },
    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 = {}) {
      this.loading = true;
      let param = {};
      param["deptid"] = this.fwdeptId;
      param["name"] = params["real_name"] || "";
      param["hold"] =
        params["hold"] || params["hold"] == "0" ? Number(params["hold"]) : "";
      param["photo"] =
        params["photo"] || params["photo"] == "0"
          ? Number(params["photo"])
          : "";
      param["examinationtype"] =
        params["examination_type"] || params["examination_type"] == "0"
          ? Number(params["examination_type"])
          : "";
      param["dispatch"] =
        params["dispatch"] || params["dispatch"] == "0"
          ? Number(params["dispatch"])
          : "";
      param["soil"] =
        params["soil"] || params["soil"] == "0" ? Number(params["soil"]) : "";
      param["current"] = page.currentPage;
      param["size"] = page.pageSize;
      selectUIn(param).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.tableData = data.records;
        // this.data = data.records;
        this.loading = false;
      });
    },
    getLocationParams() {
      let url = window.location.href;
      let urlArr = url.split("?")[1].split("&");
      var object = new Object();
      for (var i = 0; i < urlArr.length; i++) {
        let mm = urlArr[i].split("=");
        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
      }
      this.deptid = object["deptid"] || "";
      this.query = { deptid: this.deptid };
      this.onLoad(this.page, this.query);
    }
  },
};
</script>
<style lang="scss" scoped>
</style>
src/views/statisticalQueryManagement/securityGuardDetail.vue
New file
@@ -0,0 +1,265 @@
<template>
  <basic-container>
    <avue-crud
      :option="tableOption"
      :table-loading="loading"
      :data="data"
      ref="crud"
      v-model="form"
      :permission="permissionList"
      :page.sync="page"
      :search.sync = "search"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @row-click="handleRowClick"
      @on-load="onLoad"
    >
    </avue-crud>
  </basic-container>
</template>
<script>
import { mapGetters } from "vuex";
import { getList } from "@/api/securityGuard/securityGuard";
export default {
  name: "保安员明细",
  props: ["fwdeptId", "paramCz"],
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      query: {},
      search:{},
      value1: "",
      value2: "",
      tableData: [],
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      tableOption: {
        excelBtn: true,
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        align: "center",
        height: "auto",
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        indexLabel:'序号',
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "保安姓名",
            prop: "realName",
            search: true,
            searchSpan: 4,
            display: false
          },
          {
            label: "性别",
            prop: "sex",
            type: "select",
            // search: true,
            searchSpan: 4,
            searchLabelWidth: 50,
            dicData: [
              {
                label: "女",
                value: 2
              },
              {
                label: "男",
                value: 1
              }
            ],
            slot: true,
            display: false
          },
          {
            label: "保安公司",
            prop: "deptName",
            width: 300,
            // search: true,
            // searchSpan: 4,
            overHidden: true,
            slot: true,
            display: false
          },
          {
            label: "保安证编号",
            prop: "securitynumber",
            display: false,
            searchSpan: 5,
            searchLabelWidth: 110,
            width: 180
          },
          {
            label: "身份证号",
            prop: "cardid",
            slot: true,
            display: false,
            width: 180
          },
          {
            label: "联系方式",
            prop: "phone",
            slot: true,
            display: false,
            width: 180
          },
          {
            label: "入职时间",
            prop: "rtime",
            slot: true,
            display: false,
            width: 180
          },
          {
            label: "是否在职",
            prop: "status",
            type: "select",
            search: true,
            searchSpan: 4,
            dicData: [
              {
                label: "全部",
                value: 0
              },
              {
                label: "是",
                value: 1
              },
              {
                label: "否",
                value: 2
              }
            ],
            slot: true,
            display: false
          },
          {
            label: "是否持证",
            prop: "hold",
            type: "select",
            search: !this.paramCz,
            searchSpan: 4,
            dicData: [
              {
                label: "是",
                value: "1"
              },
              {
                label: "否",
                value: "2"
              },
              {
                label: "已吊销",
                value: "3"
              }
            ],
            slot: true,
            display: false
          }
        ]
      },
      typeValue: "0",
      servicesList: [],
      companyName: "",
      loading: true
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.post_add, false),
        viewBtn: this.vaildData(this.permission.post_view, false),
        delBtn: this.vaildData(this.permission.post_delete, false),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    }
  },
  created(){
    this.search['status'] = 1;
  },
  methods: {
    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;
      if (this.paramCz) {
        params["hold"] = '1';
      } else {
        params["hold"] = params["hold"] || "";
      }
      let values = {
            ...params,
          };
          values = {
            ...params,
            roleAlias: "111",
            deptId:this.fwdeptId,
            ...this.query,
          };
      this.loading = true;
      getList(page.currentPage, page.pageSize,values).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
      });
    },
    getLocationParams() {
      let url = window.location.href;
      let urlArr = url.split("?")[1].split("&");
      var object = new Object();
      for (var i = 0; i < urlArr.length; i++) {
        let mm = urlArr[i].split("=");
        object[decodeURIComponent(mm[0])] = decodeURIComponent(mm[1]);
      }
      this.deptid = object["departmentid"] || "";
      this.query = { deptid: this.deptid };
      this.onLoad(this.page, this.query);
      //   this.onLoad(this.page, this.query);
    }
  },
  mounted() {
    // this.getLocationParams();
  }
};
</script>
src/views/statisticalQueryManagement/securityGuardStatistics.vue
New file
@@ -0,0 +1,351 @@
<template>
  <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"
      width="80%"
      append-to-body
      :visible.sync="dialogShow"
      v-if="dialogShow"
    >
      <companyDetails :fwdeptId="fwdeptId"></companyDetails>
    </el-dialog>
  </div>
</template>
<script>
import { mapGetters } from "vuex";
import { selectLi, dictionaryList } from "@/api/statisticalQueryManagement/statisticalQueryManagement";
import companyDetails from "./companyDetails";
import Qs from "qs";
import { getToken } from "@/util/auth";
export default {
  name: "业务情况统计",
  components: {
    companyDetails
  },
  data() {
    return {
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        ...this.$store.state.control.changePageSize,
      },
      search:{},
      query: {},
      value1: "",
      value2: "",
      tableData: [
      ],
      tableOption: {
        align: "center",
        viewBtn: true,
        delBtn: false,
        editBtn: false,
        addBtn: false,
        selection: true,
        menu: false,
        height: "auto",
        menuWidth: 380,
        calcHeight: 30,
        tip: false,
        searchShowBtn: false,
        searchShow: true,
        searchMenuSpan: 6,
        index: true,
        indexLabel:'序号',
        dialogClickModal: false,
        column: [
          {
            label: "公司名称",
            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",
            type: "tree",
            props: {
              label: "title",
              value: "value"
            },
            dicData: [
            ],
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "blur"
              }
            ]
          },
          {
            label: "所属辖区",
            prop: "jurisdiction",
            search: true,
            searchSpan: 4,
            type: "tree",
            dicUrl: "/api/jurisdiction/lazy-tree",
            props: {
              label: "title",
              value: "id",
            },
            hide: true,
            checkStrictly: true,
            slot: true,
            rules: [
              {
                required: false,
                message: "请选择所属辖区",
                trigger: "click",
              },
            ],
          },
          {
            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
          },
          {
            label: "持证上岗人数",
            prop: "cznum",
            display: false
          },
          {
            label: "未派遣人数",
            prop: "wpqnum",
            display: false
          },
          {
            label: "派遣人数",
            prop: "pqnum",
            display: false
          },
          {
            label: "已采集照片人数",
            prop: "ycjzpnum",
            display: false
          },
          {
            label: "未采集照片人数",
            prop: "wcjzpnum",
            display: false
          },
          {
            label: "已采集指纹人数",
            prop: "ycjzwnum",
            display: false
          },
          {
            label: "资格审查异常人数",
            width: 150,
            prop: "scycnum",
            display: false
          },
          {
            label: "缴纳社保人数",
            prop: "jnsbnum",
            display: false
          }
        ]
      },
      companyName: "",
      loading: true,
      dialogShow: false,
      dialogTitle: ""
    };
  },
  computed: {
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(null, false),
        viewBtn: this.vaildData(null, false),
        delBtn: this.vaildData(null, false),
        editBtn: this.vaildData(null, false)
      };
    }
  },
  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.jurisdiction,
          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
        );
      });
    },
    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["jurisdiction"] || "";
      param["deptid"] = params["deptname"] || "";
      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;
        }
      selectLi(values).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.tableData = data.records;
        this.loading = false;
      });
    },
    handleRowClick(row, column, cell, event) {
      if (column.label == "保安员总数") {
        this.dialogTitle = "保安员明细";
        this.fwdeptId = row.departmentid;
        this.dialogShow = true;
      } else {
        this.dialogShow = false;
      }
    }
  },
  mounted() {
    this.getDictionaryList();
  }
};
</script>
<style lang="scss" scoped>
/deep/ .rowClick .el-table__row:hover td:nth-child(6) {
  cursor: pointer;
}
</style>