From ca7d0ea3eb0b491eba3baa46863a96e447570772 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Thu, 16 Sep 2021 10:34:46 +0800
Subject: [PATCH] 保安公司智能分析
---
src/views/securityAnalysis/index.vue | 245 +++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 239 insertions(+), 6 deletions(-)
diff --git a/src/views/securityAnalysis/index.vue b/src/views/securityAnalysis/index.vue
index ad71495..4e3ad01 100644
--- a/src/views/securityAnalysis/index.vue
+++ b/src/views/securityAnalysis/index.vue
@@ -2,7 +2,23 @@
<div class="securityAnalysis">
<!-- securityAnalysis -->
<div class="securityAnalysisleft">
- <div class="examine" ref="ech1">
+ <!-- <div class="examines"> -->
+ <!-- <div class="examine" ref="ech1"></div> -->
+ <!-- <div class="examine1"> -->
+ <!-- <div>审查时间:</div>
+ <div>审查时间:</div>
+ <div>问题保安员人数:</div>
+ <div>问题保安员人数:</div>
+ <div>问题保安员比例:</div>
+ <div>问题保安员比例:</div> -->
+ <!-- <div v-for="(item, index) in examine1" :key="index">
+ {{ item.title }}<br />{{ item.value }}
+ </div>
+ </div> -->
+ <!-- 保安员审查情况统计
+ <div>饼图</div> -->
+ <!-- </div> -->
+ <div class="examines" ref="ech1">
<!-- 保安员审查情况统计
<div>饼图</div> -->
</div>
@@ -10,6 +26,7 @@
<!-- 保安员持证情况统计
<div>饼图</div> -->
</div>
+ <!-- <div class="czbut"></div> -->
</div>
<div class="securityAnalysiscenter">
<div class="examination" ref="ech3">
@@ -31,6 +48,53 @@
<div>饼图</div> -->
</div>
</div>
+ <div>
+ <el-dialog
+ width="90%"
+ :title="titles"
+ append-to-body
+ :visible.sync="dialogVisible"
+ top="9vh"
+ >
+ <situation
+ :card="{ deptid: deptid, jurisdiction: jurisdiction }"
+ v-if="sees == 1"
+ >
+ <!-- 保安员审查情况统计 -->
+ </situation>
+
+ <certificate
+ :card="{ deptid: deptid, jurisdiction: jurisdiction }"
+ v-if="sees == 2"
+ >
+ <!-- 保安员持证情况统计 -->
+ </certificate>
+ <examination
+ :card="{ deptid: deptid, jurisdiction: jurisdiction }"
+ v-if="sees == 3"
+ >
+ <!-- 保安员考试情况统计 -->
+ </examination>
+ <dispatch
+ :card="{ deptId: deptid, jurisdiction: jurisdiction }"
+ v-if="sees == 4"
+ >
+ <!-- 派遣服务单位 注意deptId I为大写 -->
+ </dispatch>
+ <assignment
+ :card="{ deptid: deptid, jurisdiction: jurisdiction }"
+ v-if="sees == 5"
+ >
+ <!-- 保安派遣情况 -->
+ </assignment>
+ <socialSecurity
+ :card="{ deptid: deptid, jurisdiction: jurisdiction }"
+ v-if="sees == 6"
+ >
+ <!-- 社保缴纳情况 -->
+ </socialSecurity>
+ </el-dialog>
+ </div>
</div>
</template>
@@ -40,12 +104,26 @@
getinformationselectHold, //保安员持证
getinformationselectDis, //派遣服务单位
getinformationstatistics, //保安员考试情况统计
- getinformationselectDisp, //保安派遣数量
+ getinformationselectDisp, //保安派遣情况
getinformationselectSoil, //社保缴纳情况统计
} from "@/api/securityAnalysis/securityAnalysis";
import { mapState } from "vuex";
import { getRoleDetail } from "@/api/system/role";
+import certificate from "./child/certificate.vue";
+import examination from "./child/examination.vue";
+import situation from "./child/situation.vue";
+import dispatch from "./child/dispatch.vue";
+import assignment from "./child/assignment.vue";
+import socialSecurity from "./child/socialSecurity.vue";
export default {
+ components: {
+ certificate,
+ examination,
+ situation,
+ dispatch,
+ assignment,
+ socialSecurity,
+ },
data() {
return {
EC1: "", //保安员审查情况统计 // 饼图
@@ -56,6 +134,14 @@
EC6: "", //社保缴纳情况统计 // 饼图
deptid: "",
jurisdiction: "",
+
+ examine1: [],
+
+ dialogVisible: false,
+ titles: "",
+
+ // czdata: [],
+ sees: "",
};
},
computed: {
@@ -75,6 +161,28 @@
ids2.push(ele.id);
});
return ids2.join(",");
+ },
+ },
+ watch: {
+ dialogVisible() {
+ if (this.dialogVisible == false && this.sees == "1") {
+ this.getEC1();
+ }
+ if (this.dialogVisible == false && this.sees == "2") {
+ this.getEC2();
+ }
+ if (this.dialogVisible == false && this.sees == "3") {
+ this.getEC3();
+ }
+ if (this.dialogVisible == false && this.sees == "4") {
+ this.getEC4();
+ }
+ if (this.dialogVisible == false && this.sees == "5") {
+ this.getEC5();
+ }
+ if (this.dialogVisible == false && this.sees == "6") {
+ this.getEC6();
+ }
},
},
methods: {
@@ -121,6 +229,42 @@
// console.log(d, ok, no);
return d;
},
+ getTime() {
+ var data = new Date();
+ var time = data.toLocaleString().slice(0, 9);
+ return time;
+ },
+ GetPercent(num, total) {
+ num = parseFloat(num);
+ total = parseFloat(total);
+ if (isNaN(num) || isNaN(total)) {
+ return "-";
+ }
+ return total <= 0
+ ? "0%"
+ : Math.round((num / total) * 10000) / 100.0 + "%";
+ },
+ gettoolbox(title, titles, id) {
+ var that = this;
+ return {
+ show: true,
+ itemSize: 25,
+ top: 20,
+ right: 20,
+ feature: {
+ myTool1: {
+ show: true,
+ title: title,
+ icon: "image://img/table.png",
+ onclick: function () {
+ that.dialogVisible = true;
+ that.sees = id;
+ that.titles = titles;
+ },
+ },
+ },
+ };
+ },
getEC1() {
var that = this;
getinformationselectExtype(this.deptid, this.jurisdiction)
@@ -135,6 +279,21 @@
});
},
setEC1(d) {
+ // console.log(d, 1);
+ this.examine1 = [
+ {
+ title: "审查时间:",
+ value: this.getTime(),
+ },
+ {
+ title: "问题保安员人数:",
+ value: d[1].value + "人",
+ },
+ {
+ title: "问题保安员比例:",
+ value: this.GetPercent(+d[1].value, +d[0].value + +d[1].value),
+ },
+ ];
var option, data;
// if (d) {
data = d;
@@ -164,6 +323,13 @@
x: "center",
y: "90%",
},
+ toolbox: this.gettoolbox("审查情况查询", "保安员审查情况明细", 1),
+ // grid: {
+ // // left: "3%",
+ // right: "5%",
+ // // bottom: "3%",
+ // // containLabel: true,
+ // },
series: [
{
// name: "访问来源",
@@ -209,8 +375,50 @@
getinformationselectHold(this.deptid, this.jurisdiction)
.then((res) => {
var a = res.data.data;
+ // console.log(a, "持证");
var b = that.changedata(a, "cz", "wcz", "持证", "未持证");
that.setEC2(b);
+ // var datas = [];
+ // for (var k in a) {
+ // let b = "";
+ // let c = [];
+ // if (a[k].cz >= 1) {
+ // b = {
+ // czname: a[k].czname.split(","),
+ // czptime: a[k].czptime.split(","),
+ // };
+ // // datas.push(a[k]);
+ // // console.log(b, 123);
+ // if (b.czname.length > 1) {
+ // for (var n in b.czname) {
+ // c.push({
+ // czname: b.czname[n],
+ // czptime: b.czptime[n] == 0 ? "" : b.czptime[n],
+ // tpye: "持证",
+ // });
+ // }
+ // } else {
+ // c = [
+ // {
+ // czname: b.czname[0],
+ // czptime: b.czptime[0] == 0 ? "" : b.czptime[0],
+ // tpye: "持证",
+ // },
+ // ];
+ // }
+ // // console.log(c, 132456);
+ // datas.push(...c);
+ // }
+ // if (a[k].wcz >= 1) {
+ // b = {
+ // wczname: a[k].wczname.split(","),
+ // wczptime: a[k].wczptime.split(","),
+ // };
+ // console.log(b, 123);
+ // }
+ // }
+ // // that.czdata = [...datas, ...datas];
+ // that.czdata = datas;
})
.catch((res) => {
var b = that.changedata([], "cz", "wcz", "持证", "未持证");
@@ -219,6 +427,8 @@
},
setEC2(data) {
var option;
+ var that = this;
+ // console.log(data, "持证");
option = {
title: {
text: "保安员持证情况统计",
@@ -235,6 +445,7 @@
x: "center",
y: "83%",
},
+ toolbox: this.gettoolbox("持证情况查询", "保安员持证情况明细", 2),
series: [
{
// name: "访问来源",
@@ -271,7 +482,7 @@
var that = this;
getinformationstatistics(this.deptid, this.jurisdiction).then((res) => {
var a = res.data.data;
- console.log(a, 22222222222222222222);
+ // console.log(a, 22222222222222222222);
// var a = res.data.data,
// s = [],
// l = [];
@@ -288,7 +499,8 @@
setEC3(s, l) {
var xd = [],
sd = [],
- ld = [];
+ ld = [],
+ that = this;
for (var i = 0; i < 100; i++) {
xd.push(i + "分");
}
@@ -318,6 +530,7 @@
formatter:
"<span>实操成绩</span>({b0}) : {c0}<span>人</span><br /><span>理论成绩</span>({b1}) : {c1}<span>人</span>",
},
+ toolbox: this.gettoolbox("考试情况查询", "保安员考试情况明细", 3),
legend: {
data: ["实操成绩", "理论成绩"],
},
@@ -421,7 +634,7 @@
}
}
}
- console.log(d, "派遣服务单位");
+ // console.log(d, "派遣服务单位");
// console.log(a, 123456);
// for (var k in a) {
@@ -460,6 +673,7 @@
data: xxd,
// data: xd,
},
+ toolbox: this.gettoolbox("派遣单位查询", "派遣服务单位明细", 4),
yAxis: {
type: "value",
},
@@ -504,6 +718,7 @@
tooltip: {
trigger: "item",
},
+ toolbox: this.gettoolbox("派遣情况查询", "保安员派遣情况明细", 5),
legend: {
// orient: "vertical",
// left: "left",
@@ -572,6 +787,7 @@
tooltip: {
trigger: "item",
},
+ toolbox: this.gettoolbox("社保缴纳查询", "保安员社保缴纳明细", 6),
legend: {
// orient: "vertical",
// left: "left",
@@ -678,7 +894,7 @@
.securityAnalysiscenter {
width: 40% !important;
}
- .examine,
+ .examines,
.certificate,
.examination,
.dispatchUnit,
@@ -690,6 +906,23 @@
box-sizing: border-box;
background-color: #fff;
}
+ // .examines {
+ // width: 100%;
+ // height: 49%;
+ // display: flex;
+ // align-items: center;
+ // background-color: #fff;
+ // }
+ // .examine {
+ // width: 100%;
+ // height: 100%;
+ // }
+ // .examine1 {
+ // width: 200px;
+ // div {
+ // margin-bottom: 10px;
+ // }
+ // }
// .securityAnalysisleft {
// width: $widths;
// }
--
Gitblit v1.9.3