From 33454129be62fcfc0c36517ac0a8074e142b36ac Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 29 Jul 2021 20:06:26 +0800
Subject: [PATCH] 保安单位智能分析

---
 src/views/securityAnalysis/index.vue |  334 ++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 243 insertions(+), 91 deletions(-)

diff --git a/src/views/securityAnalysis/index.vue b/src/views/securityAnalysis/index.vue
index 26535fb..45523cc 100644
--- a/src/views/securityAnalysis/index.vue
+++ b/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() {

--
Gitblit v1.9.3