zhengpz
2021-08-18 e8f9a6ab3d258c028da4fdc4a51c3985a9eba67c
对接口
11 files modified
1 files added
1706 ■■■■ changed files
src/api/index/index.js 45 ●●●●● patch | view | raw | blame | history
src/api/securityUnitOperation/securityUnitOperation.js 21 ●●●●● patch | view | raw | blame | history
src/api/statisticalQueryManagement/statisticalQueryManagement.js 37 ●●●●● patch | view | raw | blame | history
src/views/home/index.vue 145 ●●●●● patch | view | raw | blame | history
src/views/securityUnitOperation/economicAnalysis.vue 86 ●●●●● patch | view | raw | blame | history
src/views/securityUnitOperation/economicTable.vue 357 ●●●●● patch | view | raw | blame | history
src/views/securityUnitOperation/operationTable.vue 349 ●●●●● patch | view | raw | blame | history
src/views/securityUnitOperation/securityEchart.js 16 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatistics.vue 63 ●●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/businessStatisticsDetail.vue 213 ●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/companyDetails.vue 253 ●●●● patch | view | raw | blame | history
src/views/statisticalQueryManagement/securityGuardStatistics.vue 121 ●●●● patch | view | raw | blame | history
src/api/index/index.js
@@ -19,27 +19,28 @@
    method: "get"
  });
};
export const getLiveLocationVoList = (params) => {
export const getLiveLocationVoList = params => {
  return request({
    url: "/api/liveLocation/getLiveLocationVoList",
    method: "get",
    params: params
  });
};
// 获取辖区列表
export const lazyTreeJu = () => {
  return request({
    url: "/api/information/lazyTreeJu",
    method: "post"
  });
};
export const noholderNum = (params) => {
export const noholderNum = params => {
  return request({
    url: "/api/information/selectInCount",
    method: "post",
    params: params
  });
};
export const noSocialSecurity = (params) => {
export const noSocialSecurity = params => {
  return request({
    url: "/api/information/selectCs",
    method: "post",
@@ -49,31 +50,31 @@
export const selectFj = () => {
  return request({
    url: "/api/information/selectFj",
    method: "post",
    method: "post"
  });
};
export const selectBx = (params) => {
export const selectBx = params => {
  return request({
    url: "/api/information/selectBx",
    method: "post",
    params: params
  });
};
export const selectExtype = (params) => {
export const selectExtype = params => {
  return request({
    url: "/api/information/selectExtype",
    method: "post",
    params: params
  });
};
export const seCountUg = (params) => {
export const seCountUg = params => {
  return request({
    url: "/api/information/seCountUg",
    method: "post",
    params: params
  });
};
export const seCountI = (params) => {
export const seCountI = params => {
  return request({
    url: "/api/information/seCountI",
    method: "post",
@@ -83,11 +84,27 @@
export const selectExtypeUser = () => {
  return request({
    url: "/api/information/selectExtypeUser",
    method: "post",
    method: "post"
  });
};
// 资格审查异常人员清单
export const qualificationPages = () => {
  return request({
    url: "/api/blade-user/pages",
    method: "get"
  });
};
// 监管处罚数量
export const selectCf = () => {
  return request({
    url: "/api/information/selectCf",
    method: "post"
  });
};
// 公司材料不全数量
export const selectCl = () => {
  return request({
    url: "/api/information/selectCl",
    method: "post"
  });
};
src/api/securityUnitOperation/securityUnitOperation.js
@@ -54,4 +54,25 @@
        method: "get",
        params: params
    });
};
export const queryYearPz = (params) => {
    return request({
        url: "/api/information/queryYearPz",
        method: "get",
        params: params
    });
};
export const selectTb = (params) => {
    return request({
        url: "/api/information/selectTb",
        method: "post",
        params: params
    });
};
export const selectJj = (params) => {
    return request({
        url: "/api/information/selectJj",
        method: "post",
        params: params
    });
};
src/api/statisticalQueryManagement/statisticalQueryManagement.js
New file
@@ -0,0 +1,37 @@
import request from "@/router/axios";
export const selectLi = (params) => {
    return request({
        url: "/api/information/selectLi",
        method: "post",
        params: params
    });
};
export const selectYw = (params) => {
    return request({
        url: "/api/information/selectYw",
        method: "post",
        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
    });
};
src/views/home/index.vue
@@ -247,20 +247,20 @@
          <div class="right-content" v-loading="right1loading">
            <span
              class="left2-btn date"
              :class="[poorPerformanceType === 0 ? 'bayHover' : '']"
              @click="getPoorPerformance(0)"
              :class="[poorPerformanceType === 1 ? 'bayHover' : '']"
              @click="getPoorPerformance(1)"
              >当日</span
            >
            <span
              class="left2-btn mounce"
              :class="[poorPerformanceType === 1 ? 'bayHover' : '']"
              @click="getPoorPerformance(1)"
              :class="[poorPerformanceType === 2 ? 'bayHover' : '']"
              @click="getPoorPerformance(2)"
              >当月</span
            >
            <span
              class="left2-btn all"
              :class="[poorPerformanceType === 2 ? 'bayHover' : '']"
              @click="getPoorPerformance(2)"
              :class="[poorPerformanceType === 3 ? 'bayHover' : '']"
              @click="getPoorPerformance(3)"
              >全部</span
            >
            <div class="card-list" style="margin-top: 21px">
@@ -270,7 +270,7 @@
              <span>{{ rightData.poorPerformance }}</span>
              <span>现实表现差</span>
            </div>
            <div class="card-list">
            <div class="card-list" @click="getQualificationPages">
              <img src="../../../public/img/bajgxt/u4.png" />
              <img src="../../../public/img/bajgxt/u230.png" />
              <img src="../../../public/img/bajgxt/u1.png" />
@@ -312,8 +312,8 @@
            <div class="rightData rightData2">
              <img src="../../../public/img/bajgxt/u232.png" alt />
              <div class="text">
                <span>资质未过审</span>
                <span>23个</span>
                <span>材料不齐全</span>
                <span>{{ rightData.materialNum }}个</span>
              </div>
            </div>
            <div class="rightData rightData3">
@@ -327,7 +327,7 @@
              <img src="../../../public/img/bajgxt/111.png" alt />
              <div class="text">
                <span>监管处罚</span>
                <span>6个</span>
                <span>{{ rightData.punishNum }}个</span>
              </div>
            </div>
            <!-- <div class="card-list">
@@ -394,7 +394,10 @@
  selectExtype,
  seCountUg,
  seCountI,
  selectExtypeUser
  selectExtypeUser,
  qualificationPages,
  selectCf,
  selectCl
} from "../../api/index/index";
import car from "@/assets/img/car.png";
@@ -418,8 +421,8 @@
      rightData: {
        poorPerformance: 0,
        qualification: 0,
        socialSecurity: 0,
        noholder: 0
        materialNum: 0,
        punishNum: 0
      },
      carNum: 0,
      peoNum: 0,
@@ -449,7 +452,7 @@
        nv: 0
      },
      left2EchartType: 0,
      poorPerformanceType: 2
      poorPerformanceType: 3
    };
  },
  computed: {
@@ -778,31 +781,47 @@
          this.value1 = this.options1[0].value || "";
          this.value2 = this.options2[0].value || "";
          // 获取完辖区列表之后再获取具体数据
          this.getNoholderNum();
          this.getNoSocialSecurity();
          this.getPunishNum();
          this.getMaterial();
          // this.getQualification();
          this.getPoorPerformance(2);
          this.getPoorPerformance(3);
        } else {
          this.$message.error(res.msg);
        }
      });
    },
    // 未持证
    getNoholderNum() {
      noholderNum({ jurisdiction: this.value2 }).then(res => {
    // 资格审查异常名单
    getQualificationPages() {
      let params = {
        current: 1,
        size: 10,
        examinationType: this.poorPerformanceType,
        jurisdiction: this.value1
      };
      qualificationPages(params).then(res => {
        if (res.data.code === 200) {
          this.rightData.noholder = res.data.data[0].Count;
          let tableData = res.data.data;
        }
      });
    },
    // 公司受处罚数量
    getPunishNum() {
      this.rightData.punishNum = 0;
      selectCf({ jurisdiction: this.value2 }).then(res => {
        if (res.data.code === 200) {
          this.rightData.punishNum = res.data.data[0].count;
        } else {
          this.$message.error(res.msg);
        }
        this.right2loading = false;
      });
    },
    // 未缴纳社保
    getNoSocialSecurity() {
      noSocialSecurity({ jurisdiction: this.value2 }).then(res => {
    // 公司材料不全数量
    getMaterial() {
      this.rightData.materialNum = 0;
      selectCl({ jurisdiction: this.value2 }).then(res => {
        if (res.data.code === 200) {
          this.rightData.socialSecurity = res.data.data[0].Count;
          this.rightData.materialNum = res.data.data[0].count;
        } else {
          this.$message.error(res.msg);
        }
@@ -813,54 +832,60 @@
    getPoorPerformance(type) {
      this.right1loading = true;
      this.poorPerformanceType = type;
      if (type === 0) {
        this.rightData.poorPerformance = 2;
        this.rightData.qualification = 3;
      this.rightData.poorPerformance = 0;
      this.rightData.qualification = 0;
      // if (type === 1) {
      //   this.rightData.poorPerformance = 2;
      //   this.rightData.qualification = 3;
      //   this.right1loading = false;
      // } else if (type === 2) {
      //   this.rightData.poorPerformance = 11;
      //   this.rightData.qualification = 14;
      //   this.right1loading = false;
      // } else if (type === 3) {
      // this.rightData.poorPerformance = 32;
      // this.rightData.qualification = 45;
      selectBx({
        jurisdiction: this.value1,
        type: this.poorPerformanceType
      }).then(res => {
        if (res.data.code === 200) {
          this.rightData.poorPerformance = res.data.data[0].count;
        } else {
          this.$message.error(res.msg);
        }
        this.right1loading = false;
      } else if (type === 1) {
        this.rightData.poorPerformance = 11;
        this.rightData.qualification = 14;
        this.right1loading = false;
      } else if (type === 2) {
        // this.rightData.poorPerformance = 32;
        // this.rightData.qualification = 45;
        selectBx({ jurisdiction: this.value1 }).then(res => {
          if (res.data.code === 200) {
            this.rightData.poorPerformance = res.data.data[0].count;
          } else {
            this.$message.error(res.msg);
          }
          this.right1loading = false;
        });
        selectExtypeUser().then(res => {
          if (res.status === 200) {
            this.rightData.qualification = res.data;
          } else {
            this.$message.error(res.msg);
          }
        });
      }
      // this.right1loading = false;
    },
    // 资格审查异常
    getQualification() {
      selectExtype({ jurisdiction: this.value1 }).then(res => {
      });
      selectExtype({
        jurisdiction: this.value1,
        type: this.poorPerformanceType
      }).then(res => {
        if (res.data.code === 200) {
          this.rightData.qualification = res.data.data[0].count;
        } else {
          this.$message.error(res.msg);
        }
      });
      // selectExtypeUser().then(res => {
      //   if (res.status === 200) {
      //     this.rightData.qualification = res.data;
      //   } else {
      //     this.$message.error(res.msg);
      //   }
      // });
      // }
      // this.right1loading = false;
    },
    peoWarning() {
      this.right2loading = true;
      this.getNoholderNum();
      this.getNoSocialSecurity();
      this.getPunishNum();
      this.getMaterial();
    },
    companyWarning() {
      this.right1loading = true;
      this.getPoorPerformance(2);
      this.getPoorPerformance(3);
      // this.getQualification();
    },
@@ -873,7 +898,7 @@
    this.startMove();
    this.initEchart();
    this.getHolderNum(0);
    this.getPoorPerformance(2);
    this.getPoorPerformance(3);
    // this.getTableData("car");
    // this.initMap();
    this.getTableData(0);
src/views/securityUnitOperation/economicAnalysis.vue
@@ -59,13 +59,13 @@
            </div>
            <div class="box-card">
              <span>公司派遣人数</span>
              <span>1121</span>
              <span>较上月增加13人</span>
              <span>{{ socialSecurity.paiQ }}</span>
              <span>较上月增加{{ socialSecurity.addPaiQ }}人</span>
            </div>
            <div class="box-card">
              <span>社保缴纳人数占比</span>
              <span>85%</span>
              <span>较上月上涨2%</span>
              <span>{{ socialSecurity.sheBPerson }}</span>
              <span>较上月上涨{{ socialSecurity.addSheBPerson }}</span>
            </div>
          </div>
        </div>
@@ -106,6 +106,7 @@
  selectTo,
  queryYearSoil,
  queryYearAn,
  queryYearPz
} from "../../api/securityUnitOperation/securityUnitOperation";
export default {
  data() {
@@ -116,28 +117,28 @@
      options0: [
        {
          value: "2012",
          label: "2012年",
          label: "2012年"
        },
        {
          value: "2011",
          label: "2011年",
          label: "2011年"
        },
        {
          value: "2010",
          label: "2010年",
          label: "2010年"
        },
        {
          value: "2009",
          label: "2009年",
          label: "2009年"
        },
        {
          value: "2008",
          label: "2008年",
          label: "2008年"
        },
        {
          value: "2007",
          label: "2007年",
        },
          label: "2007年"
        }
      ],
      options1: [],
      options2: [],
@@ -146,7 +147,11 @@
        addNum: 0,
        money: 0,
        addMoney: 0,
      },
        paiQ: 0,
        addPaiQ: 0,
        sheBPerson: 0,
        addSheBPerson: 0
      }
    };
  },
  methods: {
@@ -154,7 +159,7 @@
      this.$router.push({ path: "/securityUnitOperation/economicTable" });
    },
    getFenju() {
      lazyTreeJu().then((res) => {
      lazyTreeJu().then(res => {
        if (res.data.code === 200) {
          this.options1 = res.data.data;
          this.value1 = this.options1[0] ? this.options1[0].id : "";
@@ -170,9 +175,9 @@
    pieChange() {
      let params = {
        jurisdiction: this.value1,
        deptid: this.value2,
        deptid: this.value2
      };
      selectPCount(params).then((res) => {
      selectPCount(params).then(res => {
        if (res.data.code === 200) {
          let middleEchart2 = echarts.init(
            document.getElementById("middleEchart2")
@@ -184,7 +189,7 @@
      });
    },
    getCompanys() {
      getCompanys({ jurisdiction: this.value1 }).then((res) => {
      getCompanys({ jurisdiction: this.value1 }).then(res => {
        if (res.data.code === 200) {
          this.options2 = res.data.data;
          this.value2 = this.options2[0] ? this.options2[0].departmentid : "";
@@ -195,15 +200,34 @@
    getSocialSecurity() {
      let params = {
        jurisdiction: this.value1,
        deptid: this.value2,
        deptid: this.value2
      };
      selectTo(params).then((res) => {
      selectTo(params).then(res => {
        if (res.data.code === 200) {
          let data = res.data.data[0];
          this.socialSecurity.num = data.thismouth;
          this.socialSecurity.addNum = data.thismouth - data.lastmonth;
          this.socialSecurity.money = data.thisamount;
          this.socialSecurity.addMoney = data.thisamount - data.lastamount;
          this.socialSecurity.paiQ = data.userpcthismouth;
          this.socialSecurity.addPaiQ =
            data.userpcthismouth - data.userpclastmouth;
          this.socialSecurity.sheBPerson =
            data.userthismouth && (data.thismouth / data.userthismouth) * 100
              ? ((data.thismouth / data.userthismouth) * 100).toFixed(2) + "%"
              : 0;
          this.socialSecurity.addSheBPerson =
            data.userthismouth &&
            data.userlastmouth &&
            (data.thismouth / data.userthismouth) * 100 &&
            (data.lastmonth / data.userlastmouth) * 100 &&
            (data.thismouth / data.userthismouth) * 100 -
              (data.lastmonth / data.userlastmouth) * 100
              ? (
                  (data.thismouth / data.userthismouth) * 100 -
                  (data.lastmonth / data.userlastmouth) * 100
                ).toFixed(2) + "%"
              : 0;
        } else {
          this.$message.error(res.msg);
        }
@@ -212,14 +236,20 @@
    getQueryYearSoil() {
      let params = {
        jurisdiction: this.value1,
        deptid: this.value2,
        deptid: this.value2
      };
      queryYearSoil(params).then((res) => {
      queryYearSoil(params).then(res => {
        if (res.data.code === 200) {
          let middleEchart1 = echarts.init(
            document.getElementById("middleEchart1")
          );
          middleEchart1.setOption(echartJs.economicMiddle(res.data.data));
          queryYearPz(params).then(res1 => {
            if (res1.data.code === 200) {
              let middleEchart1 = echarts.init(
                document.getElementById("middleEchart1")
              );
              middleEchart1.setOption(
                echartJs.economicMiddle(res.data.data, res1.data.data)
              );
            }
          });
        } else {
          this.$message.error(res.msg);
        }
@@ -228,9 +258,9 @@
    getQueryYearAn() {
      let params = {
        jurisdiction: this.value1,
        deptid: this.value2,
        deptid: this.value2
      };
      queryYearAn(params).then((res) => {
      queryYearAn(params).then(res => {
        if (res.data.code === 200) {
          let bottomEchart = echarts.init(
            document.getElementById("bottomEchart")
@@ -246,11 +276,11 @@
      this.getSocialSecurity();
      this.getQueryYearSoil();
      this.getQueryYearAn();
    },
    }
  },
  mounted() {
    this.getFenju();
  },
  }
};
</script>
<style lang="scss" scoped>
src/views/securityUnitOperation/economicTable.vue
@@ -1,93 +1,22 @@
<template>
  <basic-container>
    <!-- <div class="operation-table"> -->
    <!-- <el-row>
        <el-col>
          <span>时间范围:</span>
          <el-date-picker
            v-model="value2"
            type="daterange"
            align="right"
            unlink-panels
            range-separator="至"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            :picker-options="pickerOptions"
          >
          </el-date-picker>
          <span>类别:</span>
          <el-select v-model="typeValue" placeholder="请选择">
            <el-option
              v-for="item in typeOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <span>所属辖区:</span>
          <el-select v-model="subofficeValue" placeholder="请选择">
            <el-option
              v-for="item in subofficeOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            >
            </el-option>
          </el-select>
          <span>公司名称:</span>
          <el-input v-model="companyName"></el-input>
          <el-button>查询</el-button>
          <el-button>重置</el-button>
        </el-col>
      </el-row> -->
    <!-- <el-row>
        <el-col>
          <div class="table">
            <el-button @click="downExcel">下载</el-button> -->
    <avue-crud
      :option="tableOption"
      :data="tableData"
      :table-loading="loading"
      :page.sync="tablePage"
      :permission="permissionList"
      :before-open="beforeOpen"
      @date-change="dateChange"
    >
    </avue-crud>
    <!-- <el-table id="table" :data="tableData" style="width: 100%">
            <el-table-column type="index" label="序号" width="50">
            </el-table-column>
            <el-table-column prop="company" label="公司名称" width="180">
            </el-table-column>
            <el-table-column prop="subOffice" label="所属分局" width="180">
            </el-table-column>
            <el-table-column prop="time" label="时间"> </el-table-column>
            <el-table-column prop="sbjnrs" label="社保缴纳人数">
            </el-table-column>
            <el-table-column prop="sbjnze" label="社保缴纳总额(万)">
            </el-table-column>
            <el-table-column prop="gspqrs" label="公司派遣人数">
            </el-table-column>
            <el-table-column prop="sbjnrszb" label="社保缴纳人数占比(%)">
            </el-table-column>
            <el-table-column prop="bz" label="备注"> </el-table-column>
          </el-table> -->
    <!-- <el-pagination
              background
              layout="prev, pager, next"
              :total="tableData.length"
            >
            </el-pagination> -->
    <!-- </div>
        </el-col>
      </el-row> -->
    <!-- </div> -->
  </basic-container>
</template>
<script>
import FileSaver from "file-saver";
import XLSX from "xlsx";
import { mapGetters } from "vuex";
import { selectJj } from "../../api/securityUnitOperation/securityUnitOperation";
export default {
  name: "公司经济情况智能分析详情表",
  data() {
@@ -95,41 +24,41 @@
      value1: "",
      value2: "",
      tableData: [
        {
          company: "江西省永安保安服务有限公司",
          subOffice: "南昌市公安局",
          time: "2021-06-1",
          sbjnrs: "2100",
          sbjnze: "350",
          gspqrs: "110",
          sbjnrszb: "10",
          bz: "",
        },
        {
          company: "南昌市赣水保安服务有限公司",
          subOffice: "东湖分局",
          time: "2020-05-21",
          sbjnrs: "1800",
          sbjnze: "310",
          gspqrs: "160",
          sbjnrszb: "21",
          bz: "",
        },
        {
          company: "江西中业兴达保安服务有限公司",
          subOffice: "西湖分局",
          time: "2021-08-11",
          sbjnrs: "2300",
          sbjnze: "612",
          gspqrs: "80",
          sbjnrszb: "7",
          bz: "",
        },
        // {
        //   company: "江西省永安保安服务有限公司",
        //   subOffice: "南昌市公安局",
        //   time: "2021-06-1",
        //   sbjnrs: "2100",
        //   sbjnze: "350",
        //   gspqrs: "110",
        //   sbjnrszb: "10",
        //   bz: ""
        // },
        // {
        //   company: "南昌市赣水保安服务有限公司",
        //   subOffice: "东湖分局",
        //   time: "2020-05-21",
        //   sbjnrs: "1800",
        //   sbjnze: "310",
        //   gspqrs: "160",
        //   sbjnrszb: "21",
        //   bz: ""
        // },
        // {
        //   company: "江西中业兴达保安服务有限公司",
        //   subOffice: "西湖分局",
        //   time: "2021-08-11",
        //   sbjnrs: "2300",
        //   sbjnze: "612",
        //   gspqrs: "80",
        //   sbjnrszb: "7",
        //   bz: ""
        // }
      ],
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      tableOption: {
        excelBtn: true,
@@ -150,185 +79,186 @@
        viewBtn: true,
        dialogClickModal: false,
        column: [
          {
            label: "类别",
            hide: true,
            prop: "",
            search: true,
            searchSpan: 4,
            display: true,
            type: "select",
            props: {
              label: "label",
              value: "value",
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "0",
                label: "全部",
              },
              {
                value: "1",
                label: "社保缴纳人数",
              },
              {
                value: "2",
                label: "社保缴纳总额",
              },
              {
                value: "3",
                label: "公司派遣人数",
              },
              {
                value: "4",
                label: "社保缴纳人数占比",
              },
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择类别",
                trigger: "blur",
              },
            ],
          },
          // {
          //   label: "类别",
          //   hide: true,
          //   prop: "",
          //   search: true,
          //   searchSpan: 4,
          //   display: true,
          //   type: "select",
          //   props: {
          //     label: "label",
          //     value: "value"
          //   },
          //   // cascaderItem: ["city", "area"],
          //   // dicUrl:subofficeOptions,
          //   dicData: [
          //     {
          //       value: "0",
          //       label: "全部"
          //     },
          //     {
          //       value: "1",
          //       label: "社保缴纳人数"
          //     },
          //     {
          //       value: "2",
          //       label: "社保缴纳总额"
          //     },
          //     {
          //       value: "3",
          //       label: "公司派遣人数"
          //     },
          //     {
          //       value: "4",
          //       label: "社保缴纳人数占比"
          //     }
          //   ],
          //   search: true,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请选择类别",
          //       trigger: "blur"
          //     }
          //   ]
          // },
          {
            label: "公司名称",
            prop: "company",
            prop: "enterpriseName",
            search: true,
            searchSpan: 4,
            display: false,
            display: false
          },
          {
            label: "所属辖区",
            prop: "subOffice",
            prop: "jurname",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "0",
                label: "南昌市公安局",
                label: "南昌市公安局"
              },
              {
                value: "2",
                label: "东湖分局",
                label: "东湖分局"
              },
              {
                value: "3",
                label: "西湖分局",
                label: "西湖分局"
              },
              {
                value: "4",
                label: "青云谱分局",
                label: "青云谱分局"
              },
              {
                value: "5",
                label: "青山湖分局",
              },
                label: "青山湖分局"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "时间",
            prop: "time",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "yyyy-MM-dd hh:mm:ss",
            searchSpan: 6,
            searchRange: true,
            search: true,
            display: false,
          },
          // {
          //   label: "时间",
          //   prop: "time",
          //   type: "date",
          //   format: "yyyy-MM-dd hh:mm:ss",
          //   valueFormat: "yyyy-MM-dd hh:mm:ss",
          //   searchSpan: 6,
          //   searchRange: true,
          //   search: true,
          //   display: false
          // },
          {
            label: "社保缴纳人数",
            prop: "sbjnrs",
            display: false,
            prop: "sbnum",
            display: false
          },
          {
            label: "社保缴纳总额(万)",
            prop: "sbjnze",
            display: false,
            prop: "sbcount",
            display: false
          },
          {
            label: "公司派遣人数",
            prop: "gspqrs",
            display: false,
            prop: "pcnum",
            display: false
          },
          {
            label: "社保缴纳人数占比(%)",
            prop: "sbjnrszb",
            display: false,
            prop: "zb",
            display: false
          },
          {
            label: "备注",
            prop: "bz",
            display: false,
          },
        ],
            display: false
          }
        ]
      },
      typeValue: "0",
      typeOptions: [
        {
          value: "0",
          label: "全部",
          label: "全部"
        },
        {
          value: "1",
          label: "社保缴纳人数",
          label: "社保缴纳人数"
        },
        {
          value: "2",
          label: "社保缴纳总额",
          label: "社保缴纳总额"
        },
        {
          value: "3",
          label: "公司派遣人数",
          label: "公司派遣人数"
        },
        {
          value: "4",
          label: "社保缴纳人数占比",
        },
          label: "社保缴纳人数占比"
        }
      ],
      subofficeValue: "0",
      subofficeOptions: [
        {
          value: "0",
          label: "南昌市公安局",
          label: "南昌市公安局"
        },
        {
          value: "2",
          label: "东湖分局",
          label: "东湖分局"
        },
        {
          value: "3",
          label: "西湖分局",
          label: "西湖分局"
        },
        {
          value: "4",
          label: "青云谱分局",
          label: "青云谱分局"
        },
        {
          value: "5",
          label: "青山湖分局",
        },
          label: "青山湖分局"
        }
      ],
      companyName: "",
      loading: true
    };
  },
  computed: {
@@ -338,33 +268,24 @@
        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),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    },
    }
  },
  methods: {
    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;
    // }
    getTableData() {
      selectJj().then(res => {
        if (res.data.code === 200) {
          this.tableData = res.data.data;
          this.loading = false;
        }
      });
    }
  },
  mounted() {},
  mounted() {
    this.getTableData();
  }
};
</script>
<style lang="scss" scoped>
src/views/securityUnitOperation/operationTable.vue
@@ -3,6 +3,7 @@
    <avue-crud
      :option="tableOption"
      :data="tableData"
      :table-loading="loading"
      :page.sync="tablePage"
      :permission="permissionList"
      :before-open="beforeOpen"
@@ -10,88 +11,12 @@
    >
    </avue-crud>
  </basic-container>
  <!-- <div class="operation-table">
    <el-row>
      <el-col>
        <span>时间范围:</span>
        <el-date-picker
          v-model="value2"
          type="daterange"
          align="right"
          unlink-panels
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          :picker-options="pickerOptions"
        >
        </el-date-picker>
        <span>类别:</span>
        <el-select v-model="typeValue" placeholder="请选择">
          <el-option
            v-for="item in typeOptions"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
          </el-option>
        </el-select>
        <span>所属辖区:</span>
        <el-select v-model="subofficeValue" placeholder="请选择">
          <el-option
            v-for="item in subofficeOptions"
            :key="item.value"
            :label="item.label"
            :value="item.value"
          >
          </el-option>
        </el-select>
        <span>公司名称:</span>
        <el-input v-model="companyName"></el-input>
        <el-button>查询</el-button>
        <el-button>重置</el-button>
      </el-col>
    </el-row>
    <el-row>
      <el-col>
        <div class="table">
          <el-button @click="downExcel">下载</el-button>
          <el-table id="table" :data="tableData" style="width: 100%">
            <el-table-column type="index" label="序号" width="50">
            </el-table-column>
            <el-table-column prop="company" label="公司名称" width="180">
            </el-table-column>
            <el-table-column prop="subOffice" label="所属分局" width="180">
            </el-table-column>
            <el-table-column prop="time" label="时间"> </el-table-column>
            <el-table-column prop="totalSec" label="总保安人数">
            </el-table-column>
            <el-table-column prop="normalSec" label="正常保安数">
            </el-table-column>
            <el-table-column prop="holderSec" label="持证保安数">
            </el-table-column>
            <el-table-column prop="sendSec" label="保安派遣数">
            </el-table-column>
            <el-table-column prop="passSec" label="过考保安数">
            </el-table-column>
            <el-table-column prop="unit" label="服务单位数"> </el-table-column>
            <el-table-column prop="socialSec" label="缴纳社保保安数">
            </el-table-column>
            <el-table-column prop="bz" label="备注"> </el-table-column>
          </el-table>
          <el-pagination
            background
            layout="prev, pager, next"
            :total="tableData.length"
          >
          </el-pagination>
        </div>
      </el-col>
    </el-row>
  </div> -->
</template>
<script>
import FileSaver from "file-saver";
import XLSX from "xlsx";
import { selectTb } from "../../api/securityUnitOperation/securityUnitOperation";
import { lazyTreeJu } from "../../api/index/index";
export default {
  name: "公司运营情况智能分析详情表",
  data() {
@@ -99,50 +24,50 @@
      value1: "",
      value2: "",
      tableData: [
        {
          company: "江西省永安保安服务有限公司",
          subOffice: "南昌市公安局",
          time: "2020-07-21",
          totalSec: "1200",
          normalSec: "1150",
          holderSec: "1160",
          sendSec: "1000",
          passSec: "1180",
          unit: "52",
          socialSec: "1160",
          bz: "",
        },
        {
          company: "南昌市赣水保安服务有限公司",
          subOffice: "东湖分局",
          time: "2021-06-11",
          totalSec: "1360",
          normalSec: "1250",
          holderSec: "1258",
          sendSec: "1210",
          passSec: "1180",
          unit: "48",
          socialSec: "1200",
          bz: "",
        },
        {
          company: "江西中业兴达保安服务有限公司",
          subOffice: "西湖分局",
          time: "2020-01-21",
          totalSec: "1269",
          normalSec: "1250",
          holderSec: "1042",
          sendSec: "1040",
          passSec: "1180",
          unit: "41",
          socialSec: "1025",
          bz: "",
        },
        // {
        //   company: "江西省永安保安服务有限公司",
        //   subOffice: "南昌市公安局",
        //   time: "2020-07-21",
        //   totalSec: "1200",
        //   normalSec: "1150",
        //   holderSec: "1160",
        //   sendSec: "1000",
        //   passSec: "1180",
        //   unit: "52",
        //   socialSec: "1160",
        //   bz: ""
        // },
        // {
        //   company: "南昌市赣水保安服务有限公司",
        //   subOffice: "东湖分局",
        //   time: "2021-06-11",
        //   totalSec: "1360",
        //   normalSec: "1250",
        //   holderSec: "1258",
        //   sendSec: "1210",
        //   passSec: "1180",
        //   unit: "48",
        //   socialSec: "1200",
        //   bz: ""
        // },
        // {
        //   company: "江西中业兴达保安服务有限公司",
        //   subOffice: "西湖分局",
        //   time: "2020-01-21",
        //   totalSec: "1269",
        //   normalSec: "1250",
        //   holderSec: "1042",
        //   sendSec: "1040",
        //   passSec: "1180",
        //   unit: "41",
        //   socialSec: "1025",
        //   bz: ""
        // }
      ],
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      tableOption: {
        excelBtn: true,
@@ -173,183 +98,185 @@
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "0",
                label: "全部",
                label: "全部"
              },
              {
                value: "1",
                label: "总保安人数",
                label: "总保安人数"
              },
              {
                value: "2",
                label: "正常保安数",
                label: "正常保安数"
              },
              {
                value: "3",
                label: "持证保安数",
                label: "持证保安数"
              },
              {
                value: "4",
                label: "保安派遣数",
                label: "保安派遣数"
              },
              {
                value: "5",
                label: "过考保安数",
                label: "过考保安数"
              },
              {
                value: "6",
                label: "服务单位数",
                label: "服务单位数"
              },
              {
                value: "7",
                label: "缴纳社保保安数",
              },
                label: "缴纳社保保安数"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择类别",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "公司名称",
            prop: "company",
            prop: "enterpriseName",
            search: true,
            searchSpan: 4,
            display: false,
            display: false
          },
          {
            label: "所属辖区",
            prop: "subOffice",
            prop: "jurname",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              label: "title",
              value: "value"
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "0",
                label: "南昌市公安局",
              },
              {
                value: "2",
                label: "东湖分局",
              },
              {
                value: "3",
                label: "西湖分局",
              },
              {
                value: "4",
                label: "青云谱分局",
              },
              {
                value: "5",
                label: "青山湖分局",
              },
            ],
            dicData: this.subOfficeData,
            search: true,
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "时间",
            prop: "time",
            type: "date",
            format: "yyyy-MM-dd hh:mm:ss",
            valueFormat: "yyyy-MM-dd hh:mm:ss",
            searchSpan: 6,
            searchRange: true,
            search: true,
            display: false,
          },
          // {
          //   label: "时间",
          //   prop: "time",
          //   type: "date",
          //   format: "yyyy-MM-dd hh:mm:ss",
          //   valueFormat: "yyyy-MM-dd hh:mm:ss",
          //   searchSpan: 6,
          //   searchRange: true,
          //   search: true,
          //   display: false
          // },
          {
            label: "总保安人数",
            prop: "totalSec",
            display: false,
            prop: "znum",
            display: false
          },
          {
            label: "正常保安数",
            prop: "normalSec",
            display: false,
            prop: "zcnum",
            display: false
          },
          {
            label: "持证保安数",
            prop: "holderSec",
            display: false,
            prop: "cznum",
            display: false
          },
          {
            label: "保安派遣数",
            prop: "sendSec",
            display: false,
            prop: "pcnum",
            display: false
          },
          {
            label: "过考保安数",
            prop: "passSec",
            display: false,
          },
          // {
          //   label: "过考保安数",
          //   prop: "passSec",
          //   display: false
          // },
          {
            label: "服务单位数",
            prop: "unit",
            display: false,
            prop: "ghnum",
            display: false
          },
          {
            label: "缴纳社保保安数",
            prop: "socialSec",
            display: false,
            prop: "sbnum",
            display: false
          },
          {
            label: "备注",
            prop: "bz",
            display: false,
          },
        ],
            display: false
          }
        ]
      },
      typeValue: "0",
      subofficeValue: "0",
      companyName: "",
      subOfficeData: [],
      subOfficeValue: "",
      loading: true
    };
  },
  methods: {
    downExcel() {
      let et = XLSX.utils.table_to_book(document.getElementById("table"));
      let etout = XLSX.write(et, {
        bookType: "xlsx",
        bookSST: true,
        type: "array",
    getSubOfficeData() {
      lazyTreeJu().then(res => {
        if (res.data.code === 200) {
          this.subOfficeData = res.data.data;
          this.subOfficeValue = this.subOfficeData[0].value || "";
        } else {
          this.$message.error(res.msg);
        }
      });
      try {
        FileSaver.saveAs(
          new Blob([etout], {
            type: "application/octet-stream",
          }),
          `表.xlsx`
        ); //导出的文件名
      } catch (e) {
        console.log(e, etout);
      }
      return etout;
    },
    getTableData() {
      selectTb().then(res => {
        if (res.data.code === 200) {
          this.tableData = res.data.data;
          this.loading = false;
        }
      });
    }
    // 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;
    // }
  },
  mounted() {},
  mounted() {
    this.getSubOfficeData();
    this.getTableData();
  }
};
</script>
<style lang="scss" scoped>
src/views/securityUnitOperation/securityEchart.js
@@ -414,10 +414,14 @@
  return option;
}
function economicMiddle(data) {
  let data1 = [];
  for (var a in data) {
    data1.push(data[a]);
function economicMiddle(data1,data2) {
  let sbData = [];
  let pqData = [];
  for (var a in data1) {
    sbData.push(data1[a]);
  }
  for (var b in data2) {
    pqData.push(data2[b]);
  }
  let option = {
    tooltip: {
@@ -491,13 +495,13 @@
        name: "缴纳社保人数",
        type: "line",
        stack: "总量",
        data: data1
        data: sbData
      },
      {
        name: "公司派遣人数",
        type: "line",
        stack: "总量",
        data: [220, 182, 191, 234, 290, 330, 310, 111, 222, 132, 143, 123]
        data: pqData
      }
    ]
  };
src/views/statisticalQueryManagement/businessStatistics.vue
@@ -4,6 +4,7 @@
      :option="tableOption"
      :data="tableData"
      :page.sync="tablePage"
      :table-loading="loading"
      :permission="permissionList"
      :before-open="beforeOpen"
      @date-change="dateChange"
@@ -18,6 +19,7 @@
import FileSaver from "file-saver";
import XLSX from "xlsx";
import { mapGetters } from "vuex";
import { selectYw } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "业务情况统计",
  data() {
@@ -25,24 +27,24 @@
      value1: "",
      value2: "",
      tableData: [
        {
          company: "江西省永安保安服务有限公司",
          subOffice: "南昌市公安局",
          customer: "76",
          num: "1124"
        },
        {
          company: "南昌市赣水保安服务有限公司",
          subOffice: "东湖分局",
          customer: "85",
          num: "1428"
        },
        {
          company: "江西中业兴达保安服务有限公司",
          subOffice: "西湖分局",
          customer: "46",
          num: "974"
        }
        // {
        //   company: "江西省永安保安服务有限公司",
        //   subOffice: "南昌市公安局",
        //   customer: "76",
        //   num: "1124"
        // },
        // {
        //   company: "南昌市赣水保安服务有限公司",
        //   subOffice: "东湖分局",
        //   customer: "85",
        //   num: "1428"
        // },
        // {
        //   company: "江西中业兴达保安服务有限公司",
        //   subOffice: "西湖分局",
        //   customer: "46",
        //   num: "974"
        // }
      ],
      tablePage: {
        pageSize: 10,
@@ -70,7 +72,7 @@
        column: [
          {
            label: "公司名称",
            prop: "company",
            prop: "enterpriseName",
            search: true,
            searchSpan: 4,
            display: false
@@ -78,7 +80,7 @@
          {
            label: "所属辖区",
            prop: "subOffice",
            prop: "jurname",
            searchSpan: 4,
            type: "select",
            props: {
@@ -120,16 +122,17 @@
          },
          {
            label: "服务对象数量",
            prop: "customer",
            prop: "fwnum",
            display: false
          },
          {
            label: "保安员人数",
            prop: "num",
            prop: "znum",
            display: false
          }
        ]
      }
      },
       loading:true,
    };
  },
  computed: {
@@ -155,7 +158,15 @@
      // if (columnIndex == 4 || columnIndex == 5) {
      // }
    },
    dateChange() {}
    dateChange() {},
    getTableData() {
      selectYw({current: 1, size: 10 }).then(res => {
        if (res.data.code === 200) {
          this.tableData = res.data.data;
          this.loading = false;
        }
      });
    }
    // downExcel() {
    //   let et = XLSX.utils.table_to_book(document.getElementById("table"));
    //   let etout = XLSX.write(et, {
@@ -176,7 +187,9 @@
    //   return etout;
    // }
  },
  mounted() {}
  mounted() {
    this.getTableData();
  }
};
</script>
<style lang="scss" scoped>
src/views/statisticalQueryManagement/businessStatisticsDetail.vue
@@ -4,6 +4,7 @@
      :option="tableOption"
      :data="tableData"
      :page.sync="tablePage"
      :table-loading="loading"
      :permission="permissionList"
      :before-open="beforeOpen"
      @date-change="dateChange"
@@ -15,48 +16,52 @@
// import FileSaver from "file-saver";
// import XLSX from "xlsx";
import { mapGetters } from "vuex";
import {
  selectDis,
  selectFw
} from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "业务情况统计",
  name: "业务情况统计明细",
  data() {
    return {
      value1: "",
      value2: "",
      tableData: [
        {
          company: "江西省永安保安服务有限公司",
          subOffice: "南昌市公安局",
          timeStart:'2020-07-14',
          timeEnd:'2021-06-30',
          customerName: "南昌市幼儿园",
          num: "7",
          // status: "正在服务",
          bz:'',
        },
        {
          company: "南昌市赣水保安服务有限公司",
          subOffice: "东湖分局",
          timeStart:'2020-01-23',
          timeEnd:'2020-12-31',
          customerName: "南昌市第一人民医院",
          num: "32",
          // status: "已完成",
          bz:'',
        },
        {
          company: "江西中业兴达保安服务有限公司",
          subOffice: "西湖分局",
          timeStart:'2020-03-16',
          timeEnd:'2021-7-29',
          customerName: "南昌市动物园",
          num: "12",
          // status: "未下单",
          bz:'',
        },
        // {
        //   company: "江西省永安保安服务有限公司",
        //   subOffice: "南昌市公安局",
        //   timeStart: "2020-07-14",
        //   timeEnd: "2021-06-30",
        //   customerName: "南昌市幼儿园",
        //   num: "7",
        //   // status: "正在服务",
        //   bz: ""
        // },
        // {
        //   company: "南昌市赣水保安服务有限公司",
        //   subOffice: "东湖分局",
        //   timeStart: "2020-01-23",
        //   timeEnd: "2020-12-31",
        //   customerName: "南昌市第一人民医院",
        //   num: "32",
        //   // status: "已完成",
        //   bz: ""
        // },
        // {
        //   company: "江西中业兴达保安服务有限公司",
        //   subOffice: "西湖分局",
        //   timeStart: "2020-03-16",
        //   timeEnd: "2021-7-29",
        //   customerName: "南昌市动物园",
        //   num: "12",
        //   // status: "未下单",
        //   bz: ""
        // }
      ],
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      tableOption: {
        excelBtn: true,
@@ -79,165 +84,133 @@
        column: [
          {
            label: "公司名称",
            prop: "company",
            prop: "gsname",
            search: true,
            searchSpan: 4,
            display: false,
            display: false
          },
          {
            label: "所属辖区",
            prop: "subOffice",
            prop: "jurname",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "0",
                label: "南昌市公安局",
                label: "南昌市公安局"
              },
              {
                value: "2",
                label: "东湖分局",
                label: "东湖分局"
              },
              {
                value: "3",
                label: "西湖分局",
                label: "西湖分局"
              },
              {
                value: "4",
                label: "青云谱分局",
                label: "青云谱分局"
              },
              {
                value: "5",
                label: "青山湖分局",
              },
                label: "青山湖分局"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择所属辖区",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "服务开始时间",
            prop: "timeStart",
            display: false,
            prop: "dispatcherTime",
            display: false
          },
          {
            label: "服务到期时间",
            prop: "timeEnd",
            display: false,
            prop: "end_time",
            display: false
          },
          {
            label: "服务单位名称",
            prop: "customerName",
            prop: "fwname",
            searchLabelWidth: 110,
            search: true,
            searchSpan: 4,
            display: false,
            display: false
          },
          {
            label: "保安派遣人数",
            prop: "num",
            display: false,
          },
          {
            label: "备注",
            prop: "bz",
            display: false,
            display: false
          },
          // {
          //   label: "服务状态",
          //   prop: "status",
          //   searchSpan: 4,
          //   type: "select",
          //   props: {
          //     label: "label",
          //     value: "value",
          //   },
          //   // cascaderItem: ["city", "area"],
          //   // dicUrl:subofficeOptions,
          //   dicData: [
          //     {
          //       value: "0",
          //       label: "已完成",
          //     },
          //     {
          //       value: "2",
          //       label: "正在服务",
          //     },
          //     {
          //       value: "3",
          //       label: "未下单",
          //     },
          //   ],
          //   search: true,
          //   rules: [
          //     {
          //       required: true,
          //       message: "请选择服务状态",
          //       trigger: "blur",
          //     },
          //   ],
          // },
        ],
          //   label: "备注",
          //   prop: "bz",
          //   display: false
          // }
        ]
      },
      typeValue: "0",
      typeOptions: [
        {
          value: "0",
          label: "全部",
          label: "全部"
        },
        {
          value: "1",
          label: "社保缴纳人数",
          label: "社保缴纳人数"
        },
        {
          value: "2",
          label: "社保缴纳总额",
          label: "社保缴纳总额"
        },
        {
          value: "3",
          label: "公司派遣人数",
          label: "公司派遣人数"
        },
        {
          value: "4",
          label: "社保缴纳人数占比",
        },
          label: "社保缴纳人数占比"
        }
      ],
      subofficeValue: "0",
      subofficeOptions: [
        {
          value: "0",
          label: "南昌市公安局",
          label: "南昌市公安局"
        },
        {
          value: "2",
          label: "东湖分局",
          label: "东湖分局"
        },
        {
          value: "3",
          label: "西湖分局",
          label: "西湖分局"
        },
        {
          value: "4",
          label: "青云谱分局",
          label: "青云谱分局"
        },
        {
          value: "5",
          label: "青山湖分局",
        },
          label: "青山湖分局"
        }
      ],
      servicesList: [],
      companyName: "",
      loading: true
    };
  },
  computed: {
@@ -247,12 +220,34 @@
        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),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    },
    }
  },
  methods: {
    dateChange() {},
    getTableData() {
      let params = {
        jurisdiction: "",
        current: 1,
        fid: 20,
        deptid: "1412222709480509442",
        size: 10
      };
      selectDis(params).then(res => {
        if (res.data.code === 200) {
          this.tableData = res.data.data;
          this.loading = false;
        }
      });
    },
    getFuWuList() {
      selectFw().then(res => {
        if (res.data.code === 200) {
          this.servicesList = res.data.data;
        }
      });
    }
    // downExcel() {
    //   let et = XLSX.utils.table_to_book(document.getElementById("table"));
    //   let etout = XLSX.write(et, {
@@ -273,8 +268,10 @@
    //   return etout;
    // }
  },
  mounted() {},
  mounted() {
    this.getTableData();
    this.getFuWuList();
  }
};
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>
src/views/statisticalQueryManagement/companyDetails.vue
@@ -4,6 +4,7 @@
      :option="tableOption"
      :data="tableData"
      :page.sync="tablePage"
      :table-loading="loading"
      :permission="permissionList"
      :before-open="beforeOpen"
      @date-change="dateChange"
@@ -15,6 +16,7 @@
import FileSaver from "file-saver";
import XLSX from "xlsx";
import { mapGetters } from "vuex";
import { selectUIn } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "公司人员详情",
  data() {
@@ -22,47 +24,47 @@
      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: "是",
        },
        // {
        //   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: "是"
        // }
      ],
      tablePage: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
        total: 0
      },
      tableOption: {
        excelBtn: true,
@@ -86,206 +88,207 @@
          {
            label: "保安员姓名",
            searchLabelWidth: 110,
            prop: "name",
            prop: "real_name",
            search: true,
            searchSpan: 4,
            display: false,
            display: false
          },
          {
            label: "保安员编号",
            prop: "No",
            display: false,
            prop: "securitynumber",
            display: false
          },
          {
            label: "身份证号",
            prop: "idNumber",
            display: false,
            prop: "cardid",
            display: false
          },
          {
            label: "联系电话",
            prop: "tel",
            display: false,
            prop: "phone",
            display: false
          },
          {
            label: "是否持证",
            prop: "holder",
            prop: "hold",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            // cascaderItem: ["city", "area"],
            // dicUrl:subofficeOptions,
            dicData: [
              {
                value: "0",
                label: "是",
                label: "是"
              },
              {
                value: "2",
                label: "否",
              },
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否持证",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "是否缴纳社保",
            //  labelWidth: 120,
            searchLabelWidth: 110,
            prop: "socialSecurity",
            prop: "soil",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "是",
                label: "是"
              },
              {
                value: "2",
                label: "否",
              },
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否缴纳社保",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "是否已采集照片",
            searchLabelWidth: 120,
            prop: "picture",
            prop: "photo",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "是",
                label: "是"
              },
              {
                value: "2",
                label: "否",
              },
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否已采集照片",
                trigger: "blur",
              },
            ],
                trigger: "blur"
              }
            ]
          },
          {
            label: "资格审查情况",
            searchLabelWidth: 110,
            prop: "qualification",
            prop: "examination_type",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "通过",
                label: "通过"
              },
              {
                value: "2",
                label: "异常",
              },
                label: "异常"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择资格审查情况",
                trigger: "blur",
              },
            ],
                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: "是否通过考试",
          //   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: "send",
            prop: "dispatch",
            searchSpan: 4,
            type: "select",
            props: {
              label: "label",
              value: "value",
              value: "value"
            },
            dicData: [
              {
                value: "0",
                label: "是",
                label: "是"
              },
              {
                value: "2",
                label: "否",
              },
                label: "否"
              }
            ],
            search: true,
            rules: [
              {
                required: true,
                message: "请选择是否派遣",
                trigger: "blur",
              },
            ],
          },
        ],
                trigger: "blur"
              }
            ]
          }
        ]
      },
      companyName: "",
      loading: true
    };
  },
  computed: {
@@ -295,12 +298,22 @@
        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),
        editBtn: this.vaildData(this.permission.post_edit, false)
      };
    },
    }
  },
  methods: {
    dateChange() {},
    getTableData() {
      selectUIn({ deptid: "1412222709480509442",current: 1, size: 10 }).then(
        res => {
          if (res.data.code === 200) {
            this.tableData = res.data.data;
            this.loading = false;
          }
        }
      );
    }
    // downExcel() {
    //   let et = XLSX.utils.table_to_book(document.getElementById("table"));
    //   let etout = XLSX.write(et, {
@@ -321,7 +334,9 @@
    //   return etout;
    // }
  },
  mounted() {},
  mounted() {
    this.getTableData();
  }
};
</script>
<style lang="scss" scoped>
src/views/statisticalQueryManagement/securityGuardStatistics.vue
@@ -4,17 +4,13 @@
      :option="tableOption"
      :data="tableData"
      :page.sync="tablePage"
       :table-loading="loading"
      :permission="permissionList"
      :before-open="beforeOpen"
      @date-change="dateChange"
      @row-click="handleRowClick"
      class="rowClick"
    >
      <template slot-scope="{ type, size }" slot="menu">
        <el-button icon="el-icon-check" :size="size" :type="type"
          >自定义菜单按钮</el-button
        >
      </template>
    </avue-crud>
  </basic-container>
</template>
@@ -22,6 +18,7 @@
import FileSaver from "file-saver";
import XLSX from "xlsx";
import { mapGetters } from "vuex";
import { selectLi } from "../../api/statisticalQueryManagement/statisticalQueryManagement";
export default {
  name: "业务情况统计",
  data() {
@@ -29,42 +26,42 @@
      value1: "",
      value2: "",
      tableData: [
        {
          company: "江西省永安保安服务有限公司",
          subOffice: "东湖分局",
          total: "21540",
          holder: "21520",
          nosend: "10200",
          send: "1320",
          nopicture: "314",
          qualification: "142",
          pass: "21120",
          socialSecurity: "21535",
        },
        {
          company: "南昌市赣水保安服务有限公司",
          subOffice: "东湖分局",
          total: "21540",
          holder: "21520",
          nosend: "10200",
          send: "1320",
          nopicture: "314",
          qualification: "142",
          pass: "21120",
          socialSecurity: "21535",
        },
        {
          company: "江西中业兴达保安服务有限公司",
          subOffice: "东湖分局",
          total: "21540",
          holder: "21520",
          nosend: "10200",
          send: "1320",
          nopicture: "314",
          qualification: "142",
          pass: "21120",
          socialSecurity: "21535",
        },
        // {
        //   company: "江西省永安保安服务有限公司",
        //   subOffice: "东湖分局",
        //   total: "21540",
        //   holder: "21520",
        //   nosend: "10200",
        //   send: "1320",
        //   nopicture: "314",
        //   qualification: "142",
        //   pass: "21120",
        //   socialSecurity: "21535",
        // },
        // {
        //   company: "南昌市赣水保安服务有限公司",
        //   subOffice: "东湖分局",
        //   total: "21540",
        //   holder: "21520",
        //   nosend: "10200",
        //   send: "1320",
        //   nopicture: "314",
        //   qualification: "142",
        //   pass: "21120",
        //   socialSecurity: "21535",
        // },
        // {
        //   company: "江西中业兴达保安服务有限公司",
        //   subOffice: "东湖分局",
        //   total: "21540",
        //   holder: "21520",
        //   nosend: "10200",
        //   send: "1320",
        //   nopicture: "314",
        //   qualification: "142",
        //   pass: "21120",
        //   socialSecurity: "21535",
        // },
      ],
      tablePage: {
        pageSize: 10,
@@ -93,15 +90,14 @@
        column: [
          {
            label: "公司名称",
            prop: "company",
            prop: "deptname",
            search: true,
            searchSpan: 4,
            display: false,
          },
          {
            label: "所属辖区",
            prop: "subOffice",
            prop: "jurname",
            searchSpan: 4,
            type: "select",
            props: {
@@ -143,47 +139,48 @@
          },
          {
            label: "保安员总数",
            prop: "total",
            prop: "num",
            display: false,
          },
          {
            label: "持证上岗人数",
            prop: "holder",
            prop: "cznum",
            display: false,
          },
          {
            label: "未派遣人数",
            prop: "nosend",
            prop: "wpaiqnum",
            display: false,
          },
          {
            label: "派遣人数",
            prop: "send",
            prop: "paiqnum",
            display: false,
          },
          {
            label: "未采集照片人数",
            prop: "nopicture",
            prop: "wcaijnum",
            display: false,
          },
          {
            label: "资格审查异常人数",
            prop: "qualification",
            prop: "yicnum",
            display: false,
          },
          {
            label: "过考保安人数",
            prop: "pass",
            display: false,
          },
          // {
          //   label: "过考保安人数",
          //   prop: "pass",
          //   display: false,
          // },
          {
            label: "缴纳社保人数",
            prop: "socialSecurity",
            prop: "sbnum",
            display: false,
          },
        ],
      },
      companyName: "",
      loading:true,
    };
  },
  computed: {
@@ -205,6 +202,14 @@
      this.$router.push({ path: "/statisticalQueryManagement/companyDetails" });
    },
    dateChange() {},
    getTableData() {
      selectLi({current: 1, size: 10 }).then(res => {
        if (res.data.code === 200) {
          this.tableData = res.data.data;
          this.loading = false;
        }
      });
    }
    // downExcel() {
    //   let et = XLSX.utils.table_to_book(document.getElementById("table"));
    //   let etout = XLSX.write(et, {
@@ -225,7 +230,9 @@
    //   return etout;
    // }
  },
  mounted() {},
  mounted() {
    this.getTableData();
  },
};
</script>
<style lang="scss" scoped>