liuyg
2021-07-29 33454129be62fcfc0c36517ac0a8074e142b36ac
保安单位智能分析
1 files modified
1 files added
405 ■■■■ changed files
src/api/securityAnalysis/securityAnalysis.js 71 ●●●●● patch | view | raw | blame | history
src/views/securityAnalysis/index.vue 334 ●●●● patch | view | raw | blame | history
src/api/securityAnalysis/securityAnalysis.js
New file
@@ -0,0 +1,71 @@
import request from '@/router/axios';
export const getinformationselectExtype = (deptid) => { //保安员审查情况统计  只需要公司的deptid
    console.log(deptid)
    return request({
        url: '/api/information/selectExtype',
        // url: 'http://192.168.0.109:81/information/selectExtype',
        method: 'post',
        params: {
            deptid: deptid,
        }
    })
}
export const getinformationselectHold = (deptid) => { //保安员持证  只需要公司的deptid
    console.log(deptid)
    return request({
        url: '/api/information/selectHold',
        // url: 'http://192.168.0.109:81/information/selectExtype',
        method: 'post',
        params: {
            deptid: deptid,
        }
    })
}
export const getinformationselectDis = (deptid) => { //派遣服务单位  只需要公司的deptid
    console.log(deptid)
    return request({
        url: '/api/information/selectDis',
        // url: 'http://192.168.0.109:81/information/selectExtype',
        method: 'post',
        params: {
            deptid: deptid,
        }
    })
}
export const getinformationselectDisp = (deptid) => { //保安派遣数量  只需要公司的deptid
    console.log(deptid)
    return request({
        url: '/api/information/selectDisp',
        // url: 'http://192.168.0.109:81/information/selectExtype',
        method: 'post',
        params: {
            deptid: deptid,
        }
    })
}
export const getinformationselectSoil = (deptid) => { //社保缴纳情况统计  只需要公司的deptid
    console.log(deptid)
    return request({
        url: '/api/information/selectSoil',
        // url: 'http://192.168.0.109:81/information/selectExtype',
        method: 'post',
        params: {
            deptid: deptid,
        }
    })
}
export const getinformationstatistics = (deptid) => { //保安员考试情况统计  只需要公司的deptid
    console.log(deptid)
    return request({
        url: '/api/examScore/score-statistics',
        // url: 'http://192.168.0.109:81/information/selectExtype',
        method: 'get',
        params: {
            deptid: deptid,
        }
    })
}
src/views/securityAnalysis/index.vue
@@ -35,6 +35,15 @@
</template>
<script>
import {
  getinformationselectExtype, //保安员审查情况统计
  getinformationselectHold, //保安员持证
  getinformationselectDis, //派遣服务单位
  getinformationstatistics, //保安员考试情况统计
  getinformationselectDisp, //保安派遣数量
  getinformationselectSoil, //社保缴纳情况统计
} from "@/api/securityAnalysis/securityAnalysis";
import { lang } from "moment";
export default {
  data() {
    return {
@@ -44,6 +53,7 @@
      EC4: "", //派遣服务单位统计 // 柱状图
      EC5: "", //保安派遣情况统计 // 饼图
      EC6: "", //社保缴纳情况统计 // 饼图
      deptid: "1412222599212257282",
    };
  },
  methods: {
@@ -56,13 +66,43 @@
      this.EC6 = echarts.init(this.$refs.ech6);
      this.biginOUREC();
    },
    setEC1() {
      var option;
    getEC1() {
      var that = this;
      getinformationselectExtype(this.deptid).then((res) => {
        // console.log(res);
        var a = res.data.data[0];
        var d = [
          {
            value: a.bzc,
            name: "未审核",
          },
          {
            value: a.zc,
            name: "已审核",
          },
        ];
        that.setEC1(d);
      });
    },
    setEC1(d) {
      var option, data;
      if (d) {
        data = d;
      } else {
        data = [
          { value: 1048, name: "搜索引擎" },
          { value: 735, name: "直接访问" },
          { value: 580, name: "邮件营销" },
          { value: 484, name: "联盟广告" },
          { value: 300, name: "视频广告" },
        ];
      }
      // console.log(data);
      option = {
        title: {
          text: "保安员审查情况统计",
          subtext: "纯属虚构",
          // subtext: "纯属虚构",
          left: "center",
        },
        tooltip: {
@@ -74,15 +114,17 @@
        },
        series: [
          {
            name: "访问来源",
            // name: "访问来源",
            type: "pie",
            radius: "50%",
            // data: data,
            data: [
              { value: 1048, name: "搜索引擎" },
              { value: 735, name: "直接访问" },
              { value: 580, name: "邮件营销" },
              { value: 484, name: "联盟广告" },
              { value: 300, name: "视频广告" },
              { value: 1, name: "在逃人员" },
              { value: 3, name: "吸毒人员" },
              { value: 10, name: "刑释解教人员" },
              { value: 5, name: "社会闲散青少年" },
              { value: 11, name: "艾滋病人" },
              { value: 26, name: "其他人员" },
            ],
            emphasis: {
              itemStyle: {
@@ -97,13 +139,44 @@
      this.EC1.setOption(option);
    },
    setEC2() {
      var option;
    getEC2() {
      var that = this;
      getinformationselectHold(this.deptid).then((res) => {
        var a = res.data.data[0];
        // console.log(a);
        var d = [
          {
            value: a.wcz,
            name: "未持证",
          },
          {
            value: a.cz,
            name: "持证",
          },
        ];
        that.setEC2(d);
      });
    },
    setEC2(d) {
      var option;
      var option, data;
      if (d) {
        data = d;
      } else {
        data = [
          { value: 1048, name: "搜索引擎" },
          { value: 735, name: "直接访问" },
          { value: 580, name: "邮件营销" },
          { value: 484, name: "联盟广告" },
          { value: 300, name: "视频广告" },
        ];
      }
      // console.log(data);
      option = {
        title: {
          text: "保安员持证情况统计",
          subtext: "纯属虚构",
          // subtext: "纯属虚构",
          left: "center",
        },
        tooltip: {
@@ -115,16 +188,10 @@
        },
        series: [
          {
            name: "访问来源",
            // name: "访问来源",
            type: "pie",
            radius: "50%",
            data: [
              { value: 1048, name: "搜索引擎" },
              { value: 735, name: "直接访问" },
              { value: 580, name: "邮件营销" },
              { value: 484, name: "联盟广告" },
              { value: 300, name: "视频广告" },
            ],
            data: data,
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
@@ -138,12 +205,33 @@
      this.EC2.setOption(option);
    },
    setEC3() {
    getEC3() {
      var that = this;
      getinformationstatistics(this.deptid).then((res) => {
        var a = res.data.data,
          s = [],
          l = [];
        console.log(a); // 0 :理论 1:实操
        for (var k in a[0]) {
          l.push(a[0][k]);
          s.push(a[1][k]);
        }
        this.setEC3(s, l);
      });
    },
    setEC3(s, l) {
      var xd = [],
        sd = [],
        ld = [];
      for (var i = 0; i < 100; i++) {
        xd.push(i + "分");
      }
      console.log(sd);
      var option = {
        title: {
          text: "保安员考试情况统计",
          left: "center",
          top:20
          top: 20,
        },
        tooltip: {
          trigger: "axis",
@@ -153,9 +241,19 @@
              backgroundColor: "#6a7985",
            },
          },
          // formatter(params) {
          //   console.log(params);
          //   var str = "";
          //   for (var x in params) {
          //     str += params[x].axisValue + ":" + params[x].data + "/n";
          //   }
          //   return str;
          // },
          formatter:
            "<span>实操成绩</span>({b0}) :  {c0}<span>人</span><br /><span>理论成绩</span>({b1}) :  {c1}<span>人</span>",
        },
        legend: {
          data: ["邮件营销", "联盟广告", "视频广告", "直接访问", "搜索引擎"],
          data: ["实操成绩", "理论成绩"],
        },
        toolbox: {
          feature: {
@@ -164,7 +262,7 @@
        },
        grid: {
          left: "3%",
          right: "4%",
          right: "5%",
          bottom: "3%",
          containLabel: true,
        },
@@ -172,7 +270,8 @@
          {
            type: "category",
            boundaryGap: false,
            data: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
            // data: ["0~60分", "60~80分", "80~90分", "90~100分"],
            data: xd,
          },
        ],
        yAxis: [
@@ -182,93 +281,123 @@
        ],
        series: [
          {
            name: "邮件营销",
            name: "实操成绩",
            type: "line",
            stack: "总量",
            areaStyle: {},
            emphasis: {
              focus: "series",
            },
            data: [120, 132, 101, 134, 90, 230, 210],
            // data: [1, 2, 3, 1],
            data: [
              1, 0, 0, 0, 3, 2, 1, 0, 4, 0, 5, 0, 4, 0, 0, 9, 7, 0, 2, 0, 5, 0,
              0, 0, 7, 9, 0, 0, 7, 0, 5, 0, 7, 1, 0, 9, 2, 0, 0, 0, 3, 0, 0, 0,
              7, 9, 0, 0, 7, 0, 5, 0, 7, 24, 2, 9, 7, 37, 0, 3, 5, 0, 0, 0, 7,
              9, 1, 0, 7, 0, 5, 4, 2, 0, 0, 9, 7, 35, 0, 0, 3, 0, 0, 12, 7, 9,
              0, 0, 7, 0, 2, 0, 7, 0, 0, 9, 7, 0, 0, 1,
            ],
            // data: s,
          },
          {
            name: "联盟广告",
            name: "理论成绩",
            type: "line",
            stack: "总量",
            areaStyle: {},
            emphasis: {
              focus: "series",
            },
            data: [220, 182, 191, 234, 290, 330, 310],
          },
          {
            name: "视频广告",
            type: "line",
            stack: "总量",
            areaStyle: {},
            emphasis: {
              focus: "series",
            },
            data: [150, 232, 201, 154, 190, 330, 410],
          },
          {
            name: "直接访问",
            type: "line",
            stack: "总量",
            areaStyle: {},
            emphasis: {
              focus: "series",
            },
            data: [320, 332, 301, 334, 390, 330, 320],
          },
          {
            name: "搜索引擎",
            type: "line",
            stack: "总量",
            label: {
              show: true,
              position: "top",
            },
            areaStyle: {},
            emphasis: {
              focus: "series",
            },
            data: [820, 932, 901, 934, 1290, 1330, 1320],
            data: [
              4, 0, 5, 0, 7, 3, 2, 9, 7, 1, 0, 3, 5, 0, 9, 7, 0, 2, 0, 0, 7, 0,
              2, 0, 7, 0, 0, 9, 5, 0, 0, 0, 7, 9, 0, 0, 7, 0, 5, 0, 7, 1, 0, 9,
              2, 0, 0, 50, 3, 0, 30, 0, 7, 9, 0, 20, 7, 40, 0, 0, 0, 7, 9, 1, 0,
              7, 0, 5, 4, 2, 0, 0, 9, 7, 35, 0, 0, 3, 0, 0, 12, 7, 9, 0, 7, 0,
              0, 11, 0, 0, 0, 3, 2, 1, 0, 4, 0, 5, 0, 3,
            ],
            // data: l,
          },
        ],
      };
      this.EC3.setOption(option);
    },
    setEC4() {
    getEC4() {
      var that = this;
      getinformationselectDis(this.deptid).then((res) => {
        var a = res.data.data,
          xd = [],
          d = [];
        // console.log(a);
        for (var k in a) {
          xd.push(a[k].name);
          d.push(a[k].num);
        }
        that.setEC4(d, xd);
      });
    },
    setEC4(d, xd) {
      var xxd = [
          "一月",
          "二月",
          "三月",
          "四月",
          "五月",
          "六月",
          "七月",
          "八月",
          "九月",
          "十月",
          "一月",
          "二月",
        ],
        dd = [120, 200, 150, 80, 70, 110, 130, 120, 200, 150, 80, 70];
      var option = {
         title: {
        title: {
          text: "派遣服务单位统计",
          left: "center",
        },
        xAxis: {
          type: "category",
          data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
          data: xxd,
          // data: xd,
        },
        yAxis: {
          type: "value",
        },
        tooltip: {
          trigger: "item",
        },
        series: [
          {
            data: [120, 200, 150, 80, 70, 110, 130],
            data: dd,
            // data: d,
            type: "bar",
          },
        ],
      };
      this.EC4.setOption(option);
    },
    setEC5() {
    getEC5() {
      var that = this;
      getinformationselectDisp(this.deptid).then((res) => {
        var a = res.data.data,
          d = [];
        // console.log(a);
        for (var k in a) {
          d.push({
            value: a[k].num,
            name: a[k].real_name,
          });
        }
        that.setEC5(d);
      });
    },
    setEC5(d) {
      var option;
      option = {
        title: {
          text: "保安派遣情况统计",
          subtext: "纯属虚构",
          // subtext: "纯属虚构",
          left: "center",
        },
        tooltip: {
@@ -280,15 +409,19 @@
        },
        series: [
          {
            name: "访问来源",
            // name: "访问来源",
            type: "pie",
            radius: "50%",
            // data: d,
            data: [
              { value: 1048, name: "搜索引擎" },
              { value: 735, name: "直接访问" },
              { value: 580, name: "邮件营销" },
              { value: 484, name: "联盟广告" },
              { value: 300, name: "视频广告" },
              {
                value: 4,
                name: "未派遣",
              },
              {
                value: 3,
                name: "已派遣",
              },
            ],
            emphasis: {
              itemStyle: {
@@ -303,13 +436,32 @@
      this.EC5.setOption(option);
    },
    setEC6() {
    getEC6() {
      var that = this;
      getinformationselectSoil(this.deptid).then((res) => {
        var a = res.data.data[0];
        // console.log(a);
        var d = [
          {
            value: a.nmuwj,
            name: "未缴纳社保",
          },
          {
            value: a.numj,
            name: "已缴纳社保",
          },
        ];
        that.setEC6(d);
      });
    },
    setEC6(d) {
      var option;
      option = {
        title: {
          text: "社保缴纳情况统计",
          subtext: "纯属虚构",
          // subtext: "纯属虚构",
          left: "center",
        },
        tooltip: {
@@ -321,16 +473,10 @@
        },
        series: [
          {
            name: "访问来源",
            // name: "访问来源",
            type: "pie",
            radius: "50%",
            data: [
              { value: 1048, name: "搜索引擎" },
              { value: 735, name: "直接访问" },
              { value: 580, name: "邮件营销" },
              { value: 484, name: "联盟广告" },
              { value: 300, name: "视频广告" },
            ],
            data: d,
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
@@ -345,12 +491,18 @@
      this.EC6.setOption(option);
    },
    biginOUREC() {
      this.setEC1();
      this.setEC2();
      this.setEC3();
      this.setEC4();
      this.setEC5();
      this.setEC6();
      this.getEC1();
      this.getEC2();
      this.getEC3();
      this.getEC4();
      this.getEC5();
      this.getEC6();
      // this.setEC1();
      // this.setEC2();
      // this.setEC3();
      // this.setEC4();
      // this.setEC5();
      // this.setEC6();
    },
  },
  mounted() {