| public/img/bajgxt/company.png | patch | view | raw | blame | history | |
| public/img/bajgxt/yj.png | patch | view | raw | blame | history | |
| src/views/home/index.scss | ●●●●● patch | view | raw | blame | history | |
| src/views/home/index.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/home/indexEchart.js | ●●●●● patch | view | raw | blame | history | |
| src/views/securityUnitOperation/economicAnalysis.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/securityUnitOperation/operationAnalysis.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/statisticalQueryManagement/businessStatistics.vue | ●●●●● patch | view | raw | blame | history | |
| src/views/statisticalQueryManagement/securityGuardStatistics.vue | ●●●●● patch | view | raw | blame | history |
public/img/bajgxt/company.png
public/img/bajgxt/yj.png
src/views/home/index.scss
@@ -158,7 +158,7 @@ margin: 11.5px 10px 0px 10px; } span { line-height: 53px; line-height: 63px; color: #fff; font-size: 20px; } @@ -361,7 +361,8 @@ } .mapBtn, .mapBtn:nth-child(2), .mapBtn:nth-child(3) { .mapBtn:nth-child(3), .mapBtn:nth-child(4) { position: absolute; z-index: 99; color: #fff; @@ -405,6 +406,9 @@ .mapBtn:nth-child(3) { margin-top: 160px; } .mapBtn:nth-child(4) { margin-top: 218px; } /deep/ .el-table__body-wrapper { overflow: auto; height: calc(100% - 50px); src/views/home/index.vue
@@ -10,7 +10,7 @@ <!-- <img src="../../../public/img/bajgxt/line.jpg" /> --> <div class="title-pane"> <img src="../../../public/img/bajgxt/icon1.png" /> <span>各辖区单位统计情况</span> <span>业务对象统计---保安公司</span> </div> <div class="leftEchartTitle"> <div class="block1"></div> @@ -47,7 +47,7 @@ <div class="left2"> <div class="title-pane2"> <img src="../../../public/img/bajgxt/icon1.png" /> <span>保安员持证情况</span> <span>业务对象统计---保安员持证</span> <span class="left2-btn btn1" :class="[left2EchartType === 0 ? 'bayHover' : '']" @@ -86,18 +86,25 @@ </div> --> <!-- <div></div> --> <div class="mapBtn" @click="setMapData(2)"> <img src="../../../public/img/bajgxt/car.png" alt /> <div class="text"> <span>押运车辆</span> <span>{{ carNum }}</span> </div> </div> <div class="mapBtn" @click="setMapData(1)"> <img src="../../../public/img/bajgxt/peo.png" alt /> <div class="text"> <span>保安员</span> <span>{{ peoNum }}</span> </div> </div> <div class="mapBtn" @click="setMapData(1)"> <img src="../../../public/img/bajgxt/company.png" alt /> <div class="text"> <span>保安公司</span> <span>{{ peoNum }}</span> </div> </div> <div class="mapBtn" @click="setMapData(2)"> <img src="../../../public/img/bajgxt/car.png" alt /> <div class="text"> <span>押运车辆</span> <span>{{ carNum }}</span> </div> </div> <div class="mapBtn" @click="setMapData(3)"> @@ -308,18 +315,6 @@ <div class="title-pane1"> <img src="../../../public/img/bajgxt/icon2.png" /> <span>保安公司预警统计</span> <!-- <el-select v-model="value2" placeholder="请选择" @change="peoWarning" > <el-option v-for="item in options2" :key="item.id" :label="item.title" :value="item.value" ></el-option> </el-select> --> <el-select ref="treeForm2" v-model="node2.title" @@ -338,31 +333,31 @@ </el-select> </div> <div class="right-content" v-loading="right2loading"> <div class="rightData rightData1" @click="shoeDialog('wg')"> <div class="rightData rightData1" @click="shoeDialog1('ks')"> <img src="../../../public/img/bajgxt/u231.png" alt /> <div class="text"> <span>违规经营</span> <span>考试通过率低</span> <span>{{ rightData.wgNum }}个</span> </div> </div> <div class="rightData rightData2" @click="shoeDialog('jy')"> <div class="rightData rightData2" @click="shoeDialog1('cz')"> <img src="../../../public/img/bajgxt/u232.png" alt /> <div class="text"> <span>经营不善</span> <span>持证率低</span> <span>{{ rightData.materialNum }}个</span> </div> </div> <div class="rightData rightData3" @click="shoeDialog('ym')"> <div class="rightData rightData3" @click="shoeDialog1('sb')"> <img src="../../../public/img/bajgxt/u233.png" alt /> <div class="text"> <span>有名无实</span> <span>社保缴纳率低</span> <span>{{ rightData.ymwsNum }}个</span> </div> </div> <div class="rightData rightData4" @click="shoeDialog('jg')"> <div class="rightData rightData4" @click="shoeDialog1('pq')"> <img src="../../../public/img/bajgxt/111.png" alt /> <div class="text"> <span>监管处罚</span> <span>派遣率低</span> <span>{{ rightData.punishNum }}个</span> </div> </div> @@ -390,7 +385,7 @@ <div class="right3"> <div class="title-pane2"> <img src="../../../public/img/bajgxt/icon3.png" /> <span>分局预警占比情况</span> <span>业务对象统计---预警信息</span> </div> <div id="right3Echart" v-loading="right3loading"></div> </div> @@ -406,244 +401,187 @@ :visible.sync="dialogTableVisible" > <el-table :data="gridData.data"> <template v-if="gridData.type === 'zg'"> <template v-if="gridData.type === 'ks'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="realName" label="保安姓名" :show-overflow-tooltip="true" width="100" ></el-table-column> <el-table-column :key="gridData.type" prop="deptName" label="保安公司" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sex" label="性别" :formatter="sexFormatter" prop="" label="保安总数" :show-overflow-tooltip="true" width="100" ></el-table-column> <el-table-column :key="gridData.type" prop="cardid" label="身份证号" prop="" label="考试通过人数" :show-overflow-tooltip="true" width="180" ></el-table-column> <el-table-column :key="gridData.type" prop="age" label="年龄" prop="" label="考试通过率" :show-overflow-tooltip="true" width="100" ></el-table-column> <!-- <el-table-column prop="birthday" label="出生日期" :show-overflow-tooltip="true" ></el-table-column> --> <el-table-column :key="gridData.type" prop="securitynumber" label="保安员证编号" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="phone" label="联系方式" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="examinationType" label="审查状态" :formatter="examinationFormatter" :show-overflow-tooltip="true" width="100" ></el-table-column> <el-table-column :key="gridData.type" prop="examinationMx" label="审查明细" :show-overflow-tooltip="true" width="150" ></el-table-column> </template> <template v-if="gridData.type === 'wg'"> <template v-if="gridData.type === 'cz'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="公司名称" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="保安员数量" prop="" label="保安总数" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="持证保安" prop="" label="持证人数" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="czl" prop="" label="持证率" :show-overflow-tooltip="true" width="150" ></el-table-column> </template> <template v-if="gridData.type === 'sb'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sbnum" prop="" label="保安总数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="" label="缴纳社保人数" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="sbl" label="缴纳社保比例" prop="" label="社保缴纳率" :show-overflow-tooltip="true" width="150" ></el-table-column> </template> <template v-if="gridData.type === 'jy'"> <template v-if="gridData.type === 'pq'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="公司名称" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="保安员数量" prop="" label="保安总数" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="持证保安" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="painum" prop="" label="派遣人数" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="fwnum" label="服务对象数量" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="pql" prop="" label="派遣率" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="pjpqrs" label="平均派遣人数" :show-overflow-tooltip="true" width="150" ></el-table-column> </template> <template v-if="gridData.type === 'ym'"> <template v-if="gridData.type === 'yj'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="公司名称" :show-overflow-tooltip="true" width="450" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="保安员数量" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="持证保安" prop="" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="painum" label="派遣人数" prop="" label="预警信息内容" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="fwnum" label="服务对象数量" :show-overflow-tooltip="true" ></el-table-column >gridData </template> <template v-if="gridData.type === 'jg'"> <template v-if="gridData.type === 'ywdx_gs'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="公司名称" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="punishtype" label="处罚类别" :formatter="punishType" prop="" label="保安公司类型" :show-overflow-tooltip="true" width="150" ></el-table-column> <el-table-column :key="gridData.type" prop="punishreason" label="处罚原因" prop="" label="所属辖区" :show-overflow-tooltip="true" width="200" ></el-table-column> </template> <template v-if="gridData.type === 'ywdx_cz'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="penalty" label="处罚单位" prop="" label="所属辖区" :show-overflow-tooltip="true" width="200" ></el-table-column> <el-table-column :key="gridData.type" prop="punishtime" label="处罚时间" prop="" label="保安总数" :show-overflow-tooltip="true" width="100" ></el-table-column> <el-table-column :key="gridData.type" prop="" label="持证人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="" label="未持证人数" :show-overflow-tooltip="true" ></el-table-column> </template> </el-table> @@ -699,7 +637,7 @@ selectJy, selectWg, punishList, lazyTrees, lazyTrees } from "../../api/index/index"; import car from "@/assets/img/car.png"; @@ -728,7 +666,7 @@ materialNum: 0, punishNum: 0, wgNum: 0, ymwsNum: 0, ymwsNum: 0 }, carNum: 0, peoNum: 0, @@ -738,7 +676,7 @@ left1Echart: null, left2Echart: null, mapEchart: null, right3Echart: null, right3Echart: null }, left1loading: true, left2loading: true, @@ -755,7 +693,7 @@ wz: 0, kqy: 0, nan: 0, nv: 0, nv: 0 }, left2EchartType: 0, poorPerformanceType: 3, @@ -765,31 +703,50 @@ total: 0, current: 1, type: "zg", title: "资格异常人员清单", title: "资格异常人员清单" }, dialogTable: { wgTable: [], jyTable: [], ymTable: [], ymTable: [] }, props: { children: "children", label: "title", value: "id", value: "id" }, node1: {}, //选中的记录 node2: {}, node2: {} }; }, computed: { text() { return { id: this.number, val: this.textArr[this.number], val: this.textArr[this.number] }; }, } }, methods: { shoeDialog1(type, param) { this.gridData.type = type; this.dialogTableVisible = true; if (type === "ks") { this.gridData.title = "考试通过率低保安公司清单"; } else if (type === "cz") { this.gridData.title = "持证率低保安公司清单"; } else if (type === "sb") { this.gridData.title = "社保缴纳率低保安公司清单"; } else if (type === "pq") { this.gridData.title = "派遣率低保安公司清单"; } else if (type === "yj") { this.gridData.title = param.name + "预警信息"; } else if (type === "ywdx_cz") { this.gridData.title = param.name + "持证情况"; } else if (type === "ywdx_gs") { this.gridData.title = param.name + "保安公司统计"; } }, //点击节点 handleNodeClick1(data) { this.node1 = data; @@ -841,7 +798,7 @@ // 左侧表的接口返回数据 initEchart() { securityTotal().then((res) => { securityTotal().then(res => { if (res.data.code == 200) { let securityData = res.data.data; if (!this.echarts.left1Echart) { @@ -850,15 +807,18 @@ ); } this.echarts.left1Echart.setOption(optionJs.left1Data(securityData)); this.echarts.left1Echart.on("click", params => { this.shoeDialog1("ywdx_gs", params); }); } else { this.$message.error(res.msg); } this.left1loading = false; }); seCountI({ jurisdiction: "", deptid: "" }).then((res) => { seCountI({ jurisdiction: "", deptid: "" }).then(res => { if (res.data.code == 200) { let data = res.data.data; data.forEach((item) => { data.forEach(item => { if (item.stats === "0") { this.leftData.zz = item.num; } @@ -879,8 +839,7 @@ this.$message.error(res.msg); } }); selectFj().then((res) => { // debugger; selectFj().then(res => { if (res.data.code === 200) { if (!this.echarts.right3Echart) { this.echarts.right3Echart = echarts.init( @@ -890,6 +849,11 @@ this.echarts.right3Echart.setOption( optionJs.right3Data(res.data.data) ); this.echarts.right3Echart.on("click", param => { // this.gridData.title = param.name + "预警信息"; this.shoeDialog1("yj", param); // this.dialogTableVisible = true; }); } else { this.$message.error(res.msg); } @@ -904,20 +868,23 @@ this.echarts.left2Echart.clear(); } if (type === 0) { holderNum().then((res) => { holderNum().then(res => { if (res.data.code === 200) { let data = res.data.data; this.echarts.left2Echart = echarts.init( document.getElementById("left2Echart") ); this.echarts.left2Echart.setOption(optionJs.left2Data(data), true); this.echarts.left2Echart.on("click", param => { this.shoeDialog1("ywdx_cz", param); }); } else { this.$message.error(res.msg); } this.left2loading = false; }); } else { seCountUg({ jurisdiction: "", deptid: "" }).then((res) => { seCountUg({ jurisdiction: "", deptid: "" }).then(res => { if (res.data.code === 200) { this.echarts.left2Echart = echarts.init( document.getElementById("left2Echart") @@ -951,7 +918,7 @@ this.middleloading = false; this.textArr = []; if (type === 2) { this.tableData.forEach((item) => { this.tableData.forEach(item => { let obj = "押运车辆车牌号" + item.carNum + @@ -966,7 +933,7 @@ this.textArr.push(obj); }); } else if (type === 1) { this.tableData.forEach((item) => { this.tableData.forEach(item => { let obj = "押运人员" + item.name + @@ -979,7 +946,7 @@ this.textArr.push(obj); }); } else if (type === 3) { this.tableData.forEach((item) => { this.tableData.forEach(item => { let obj = "枪支编号" + item.number + @@ -1000,21 +967,21 @@ let middleData = { 1: { table: [], geoData: [], geoData: [] }, 2: { table: [], geoData: [], geoData: [] }, 3: { table: [], geoData: [], }, geoData: [] } }; getLiveLocationVoList({ type: type }).then((res) => { getLiveLocationVoList({ type: type }).then(res => { if (res.data.code === 200) { let allData = res.data.data; allData.forEach((m) => { allData.forEach(m => { let obj = { location: m.location, name: m.name, @@ -1022,7 +989,7 @@ linkman: m.linkman, company: m.company, tel: m.tel, carNum: m.carNum, carNum: m.carNum }; // let geoObj = { @@ -1031,7 +998,7 @@ // }; middleData[m.type]["geoData"].push([ Number(m.longitude), Number(m.latitude), Number(m.latitude) ]); middleData[m.type]["table"].push(obj); }); @@ -1057,36 +1024,38 @@ zIndex: 4, title: "影像", source: new XYZ({ url: "http://t3.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 行政区划 }), url: "http://t3.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0" // 行政区划 }) }), new Tile({ zIndex: 5, title: "道路+中文注记", source: new XYZ({ url: "http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 注记 }), }), url: "http://t3.tianditu.com/DataServer?T=cta_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0" // 注记 }) }) ], view: new View({ projection: "EPSG:4326", center: [115.892151, 28.676493], zoom: 10, }), zoom: 10 }) }); this.carVectorLayer = new VectorLayer({ zIndex: 99, source: new VectorSource(), source: new VectorSource() }); this.peoVectorLayer = new VectorLayer({ zIndex: 99, source: new VectorSource(), source: new VectorSource() }); this.gunVectorLayer = new VectorLayer({ zIndex: 99, source: new VectorSource(), source: new VectorSource() }); this.map.addLayer(this.carVectorLayer); this.map.addLayer(this.peoVectorLayer); @@ -1096,7 +1065,7 @@ }, // 获取辖区列表 getOfficeData() { lazyTrees().then((res) => { lazyTrees().then(res => { if (res.data.code === 200) { this.options1 = res.data.data; this.options2 = res.data.data; @@ -1138,7 +1107,7 @@ } }, getWgTable() { this.dialogTable.wgTable.forEach((item) => { this.dialogTable.wgTable.forEach(item => { let czl = 0; if (Number(item.cznum) !== 0 && Number(item.znum) !== 0) { czl = @@ -1156,7 +1125,7 @@ this.gridData.total = this.dialogTable.wgTable.length; }, getJyTable() { this.dialogTable.jyTable.forEach((item) => { this.dialogTable.jyTable.forEach(item => { let pql = 0; if (Number(item.painum) !== 0 && Number(item.znum) !== 0) { pql = @@ -1184,9 +1153,9 @@ let params = { current: this.gridData.current, size: 10, jurisdiction: this.value2, jurisdiction: this.value2 }; punishList(params).then((res) => { punishList(params).then(res => { if (res.data.code === 200) { this.gridData.data = res.data.data.records; this.gridData.total = res.data.data.total; @@ -1224,9 +1193,9 @@ current: this.gridData.current, size: 10, examinationType: 1, jurisdiction: this.value1, jurisdiction: this.value1 }; qualificationPages(params).then((res) => { qualificationPages(params).then(res => { if (res.data.code === 200) { this.gridData.data = res.data.data.records; this.gridData.total = res.data.data.total; @@ -1247,9 +1216,9 @@ let params = { current: this.gridData.current, size: 10, jurisdiction: this.value2, jurisdiction: this.value2 }; punishList(params).then((res) => { punishList(params).then(res => { if (res.data.code === 200) { this.gridData.data = res.data.data.records; this.gridData.total = res.data.data.total; @@ -1260,7 +1229,7 @@ }, // 经营不善 getMaterial() { selectJy({ jurisdiction: this.value2 }).then((res) => { selectJy({ jurisdiction: this.value2 }).then(res => { if (res.data.code === 200) { this.rightData.materialNum = res.data.data.count; this.dialogTable.jyTable = res.data.data.List; @@ -1272,7 +1241,7 @@ }, // 有名无实 getselectYs() { selectYs({ jurisdiction: this.value2 }).then((res) => { selectYs({ jurisdiction: this.value2 }).then(res => { if (res.data.code === 200) { this.rightData.ymwsNum = res.data.data.count; this.dialogTable.ymTable = res.data.data.List; @@ -1284,7 +1253,7 @@ }, // 违规经营 getselectWg() { selectWg({ jurisdiction: this.value2 }).then((res) => { selectWg({ jurisdiction: this.value2 }).then(res => { if (res.data.code === 200) { this.rightData.wgNum = res.data.data.count; this.dialogTable.wgTable = res.data.data.list; @@ -1314,8 +1283,8 @@ // this.rightData.qualification = 45; selectBx({ jurisdiction: this.value1, type: this.poorPerformanceType, }).then((res) => { type: this.poorPerformanceType }).then(res => { if (res.data.code === 200) { this.rightData.poorPerformance = res.data.data[0].count; } else { @@ -1325,8 +1294,8 @@ }); selectExtype({ jurisdiction: this.value1, type: this.poorPerformanceType, }).then((res) => { type: this.poorPerformanceType }).then(res => { if (res.data.code === 200) { this.rightData.qualification = res.data.data[0].count; } else { @@ -1365,7 +1334,7 @@ // this.$router.push({ path: "/register/index" }); // this.$router.push({ path: "/securityGuardManagement/register" }); this.$router.push({ path: website.fistPage.value }); }, } }, mounted() { this.initEchart(); @@ -1376,7 +1345,7 @@ this.getTableData(0); // this.initMapEchart(); this.getOfficeData(); }, } }; </script> src/views/home/indexEchart.js
@@ -136,7 +136,8 @@ emphasis: { focus: "series" }, data: data5 // data: data5 data: [10, 20, 13, 14] } ] }; @@ -199,7 +200,7 @@ type: "category", axisLabel: { color: "#fff", rotate: 40, rotate: 40 }, data: nameArr }, @@ -226,7 +227,8 @@ emphasis: { focus: "series" }, data: data1 // data: data1 data: [12, 10, 24] }, { name: "未持证人数", @@ -235,7 +237,8 @@ emphasis: { focus: "series" }, data: data2 // data: data2 data: [12, 10, 24] } ] }; src/views/securityUnitOperation/economicAnalysis.vue
@@ -1,20 +1,11 @@ <template> <div class="page1"> <el-row> <el-col :span="24"> <div class="rowContent first-menu"> <div class="jjPage"> <el-row :gutter="20"> <el-col :span="12"> <div class="rowContent first-menu" style="position: relative;"> <div class="rowTitle"> <img src="../../../public/img/bajgxt/u1618.png" /> <span>数据概览</span> <!-- <el-select class="select0" v-model="value0" placeholder="请选择"> <el-option v-for="item in options0" :key="item.value" :label="item.label" :value="item.value" > </el-option> </el-select> --> <el-select class="select1" ref="treeForm" @@ -73,6 +64,53 @@ </div> </div> </el-col> <el-col :span="12"> <div class="rowContent first-menu"> <div class="rowTitle"> <img src="../../../public/img/bajgxt/yj.png" /> <span>数据概览</span> </div> <div class="col-content"> <div class="box-card" style="cursor: pointer; " @click="showTable('sb')" > <span>社保缴纳预警(家)</span> <span>{{ socialSecurity.num }}</span> <span>社保缴纳低于90%</span> </div> <div class="box-card" style="cursor: pointer; " @click="showTable('bx')" > <span>保险缴纳预警(家)</span> <span>{{ socialSecurity.money }}</span> <span>保险缴纳低于90%</span> </div> <div class="box-card" style="cursor: pointer; " @click="showTable('fw')" > <span>服务合同预警(家)</span> <span>{{ socialSecurity.paiQ }}</span> <span>服务合同不多于一份</span> </div> <div class="box-card" style="cursor: pointer; " @click="showTable('pq')" > <span>派遣预警(家)</span> <span>{{ socialSecurity.sheBPerson }}</span> <span>派遣比例少于50%</span> </div> </div> </div> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="16"> @@ -96,6 +134,178 @@ </div> </el-col> </el-row> <el-dialog class="dialog" :title="gridData.title" v-loading="dialogloading" element-loading-text="数据加载中" :visible.sync="dialogTableVisible" :modal-append-to-body="false" > <el-table :data="gridData.data"> <template v-if="gridData.type === 'sb'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="realName" label="保安公司名称" :show-overflow-tooltip="true" width="180" ></el-table-column> <el-table-column :key="gridData.type" prop="deptName" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sex" label="保安总人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cardid" label="社保缴纳人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="age" label="社保缴纳比例" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="age" label="备注" :show-overflow-tooltip="true" ></el-table-column> </template> <template v-if="gridData.type === 'bx'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="保安公司名称" width="180" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="保安总人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="czl" label="保险缴纳人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sbnum" label="保险缴纳比例" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sbl" label="备注" :show-overflow-tooltip="true" ></el-table-column> </template> <template v-if="gridData.type === 'fw'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="服务合同数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="painum" label="服务单位名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="pql" label="备注" :show-overflow-tooltip="true" ></el-table-column> </template ><template v-if="gridData.type === 'pq'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="保安公司名称" width="180" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="保安总人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="painum" label="派遣人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="fwnum" label="派遣比例" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="pql" label="备注" :show-overflow-tooltip="true" ></el-table-column> </template> </el-table> <el-pagination @current-change="changePage" @size-change="changePage" :current-page.sync="gridData.current" :page-size="10" layout="total, prev, pager, next, jumper" :total="gridData.total" > </el-pagination> </el-dialog> </div> </template> @@ -165,10 +375,32 @@ label: "title", value: "id" }, node: {} //选中的记录 node: {}, //选中的记录 gridData: { data: [], total: 0, current: 1, type: "fw", title: "" }, dialogloading: false, dialogTableVisible: false }; }, methods: { showTable(type) { this.gridData.type = type; this.dialogTableVisible = true; if (type === "sb") { this.gridData.title = "社保缴纳预警保安公司"; } else if (type === "bx") { this.gridData.title = "保险缴纳预警保安公司"; } else if (type === "fw") { this.gridData.title = "服务合同预警保安公司"; } else if (type === "pq") { this.gridData.title = "派遣预警保安公司"; } }, //点击节点 handleNodeClick(data) { this.node = data; @@ -367,7 +599,7 @@ background: #00aaf1; height: 135px; text-align: center; margin-right: 66px; margin-right: 34px; box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35); line-height: 40px; span:nth-child(2) { @@ -376,7 +608,7 @@ } } } .page1 { .jjPage { height: 100%; width: 100%; } @@ -456,7 +688,49 @@ } .col-content { display: flex; margin-top: 15px; margin-top: 35px; margin-left: 36px; } /deep/ .el-table .cell { text-align: center; } .jjPage { /deep/.dialog { z-index: 10000000 !important; .el-table { top: 0px !important; margin: 0px !important; width: 100% !important; height: calc(100% - 50px) !important; .el-table__header { background-color: #2d5cc8 !important; } .el-table__body-wrapper { height: calc(100% - 50px); overflow-x: hidden; overflow-y: auto; } } .el-pagination { color: #a2a5a5; } .btn-prev, .btn-next { background: transparent !important; } .el-dialog__body { padding: 10px 20px; height: calc(100% - 60px); .el-input { width: 50px !important; border-bottom: 1px solid #8a7b7b !important; } } } /deep/ .el-dialog { width: 80% !important; height: 77%; } } </style> src/views/securityUnitOperation/operationAnalysis.vue
@@ -1,20 +1,11 @@ <template> <div class="page1"> <el-row> <el-col :span="24"> <div class="rowContent first-menu"> <div class="yyPage"> <el-row :gutter="20"> <el-col :span="14"> <div class="rowContent first-menu" style="position: relative;"> <div class="rowTitle"> <img src="../../../public/img/bajgxt/u1618.png" /> <span>数据概览</span> <!-- <el-select class="select0" v-model="value0" placeholder="请选择"> <el-option v-for="item in options0" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> --> <el-select class="select1" ref="treeForm" @@ -54,23 +45,18 @@ <span>{{ card.baoanTotal }}</span> <span>较上月增加{{ card.addbaoanTotal }}人</span> </div> <div class="box-card"> <!-- <div class="box-card"> <span>正常保安员</span> <span>{{ card.zcBaoan }}</span> <span>较上月增加{{ card.addzcBaoan }}人</span> </div> </div> --> <div class="box-card"> <span>持证保安员</span> <span>{{ card.czBaoan }}</span> <span>较上月增加{{ card.addczBaoan }}人</span> </div> <!-- <div class="box-card"> <span>过考保安员</span> <span>{{ card.gkBaoan }}</span> <span>较上月增加{{ card.addgkBaoan }}人</span> </div> --> <div class="box-card"> <span>服务客户</span> <span>服务对象</span> <span>{{ card.kh }}</span> <span>较上月增加{{ card.addkh }}家</span> </div> @@ -87,6 +73,44 @@ </div> </div> </el-col> <el-col :span="10"> <div class="rowContent first-menu"> <div class="rowTitle"> <img src="../../../public/img/bajgxt/yj.png" /> <span>预警分析</span> </div> <div class="col-content" style="margin-left: 55px;"> <div class="box-card" style="margin-right: 50px;cursor: pointer; " @click="showTable('fw')" > <span>服务对象预警(家)</span> <span>{{ card.czBaoan }}</span> <span>服务对象不多于1家</span> </div> <div class="box-card" style="margin-right: 50px;cursor: pointer;" @click="showTable('pq')" > <span>派遣预警(家)</span> <span>{{ card.kh }}</span> <span>派遣比例低于50%</span> </div> <div class="box-card" style="margin-right: 50px;cursor: pointer;" @click="showTable('cz')" > <span>持证上岗预警(家)</span> <span>{{ card.sheb }}</span> <span>持证率低于50%</span> </div> </div> </div> </el-col> </el-row> <el-row :gutter="20"> <el-col :span="16"> @@ -97,7 +121,7 @@ </el-col> <el-col :span="8"> <div class="rowContent" v-loading="loading2"> <span class="span-title">服务客户</span> <span class="span-title">服务对象</span> <div id="middleEchart2"></div> </div> </el-col> @@ -134,6 +158,141 @@ </div> </el-col> </el-row> <el-dialog class="dialog" :title="gridData.title" v-loading="dialogloading" element-loading-text="数据加载中" :visible.sync="dialogTableVisible" :modal-append-to-body="false" > <el-table :data="gridData.data"> <template v-if="gridData.type === 'fw'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="realName" label="保安公司名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="deptName" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sex" label="服务对象数" :formatter="sexFormatter" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cardid" label="服务单位名称" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="age" label="备注" :show-overflow-tooltip="true" width="100" ></el-table-column> </template> <template v-if="gridData.type === 'pq'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="保安公司名称" width="180" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="保安总人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="czl" label="派遣人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sbnum" label="派遣比例" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="sbl" label="备注" :show-overflow-tooltip="true" ></el-table-column> </template> <template v-if="gridData.type === 'cz'"> <el-table-column :key="gridData.type" type="index"> </el-table-column> <el-table-column :key="gridData.type" prop="enterpriseName" label="保安公司名称" width="180" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="znum" label="所属辖区" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="cznum" label="保安总人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="painum" label="持证人数" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="fwnum" label="持证比例" :show-overflow-tooltip="true" ></el-table-column> <el-table-column :key="gridData.type" prop="pql" label="备注" :show-overflow-tooltip="true" ></el-table-column> </template> </el-table> <el-pagination @current-change="changePage" @size-change="changePage" :current-page.sync="gridData.current" :page-size="10" layout="total, prev, pager, next, jumper" :total="gridData.total" > </el-pagination> </el-dialog> </div> </template> @@ -219,10 +378,30 @@ label: "title", value: "id" }, node: {} //选中的记录 node: {}, //选中的记录 gridData: { data: [], total: 0, current: 1, type: "fw", title: "" }, dialogloading: false, dialogTableVisible: false }; }, methods: { showTable(type) { this.gridData.type = type; this.dialogTableVisible = true; if (type === "fw") { this.gridData.title = "服务对象预警保安公司"; } else if (type === "pq") { this.gridData.title = "派遣预警保安公司"; } else if (type === "cz") { this.gridData.title = "持证上岗预警保安公司"; } }, //点击节点 handleNodeClick(data) { this.node = data; @@ -509,7 +688,7 @@ } } // 适配分辨率1600*900 @media screen and (min-width: 1281px)and (max-width: 1600px) { @media screen and (min-width: 1281px) and (max-width: 1600px) { .box-card { font-size: 15px; width: 128px; @@ -594,13 +773,13 @@ } } } @media screen and (min-width: 1601px)and (max-width: 1920px) { @media screen and (min-width: 1601px) and (max-width: 1920px) { .box-card { width: 150px; background: #00aaf1; height: 135px; text-align: center; margin-right: 66px; margin-right: 30px; box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35); line-height: 40px; span:nth-child(2) { @@ -679,7 +858,7 @@ } } .page1 { .yyPage { height: 100%; width: 100%; } @@ -760,7 +939,7 @@ } .col-content { display: flex; margin-top: 15px; margin-top: 35px; margin-left: 36px; } .leftEchartTitle { @@ -795,4 +974,46 @@ color: #2ec7c9; } } /deep/ .el-table .cell { text-align: center; } .yyPage { /deep/.dialog { z-index: 10000000 !important; .el-table { top: 0px !important; margin: 0px !important; width: 100% !important; height: calc(100% - 50px) !important; .el-table__header { background-color: #2d5cc8 !important; } .el-table__body-wrapper { height: calc(100% - 50px); overflow-x: hidden; overflow-y: auto; } } .el-pagination { color: #a2a5a5; } .btn-prev, .btn-next { background: transparent !important; } .el-dialog__body { padding: 10px 20px; height: calc(100% - 60px); .el-input { width: 50px !important; border-bottom: 1px solid #8a7b7b !important; } } } /deep/ .el-dialog { width: 80% !important; height: 77%; } } </style> src/views/statisticalQueryManagement/businessStatistics.vue
@@ -86,6 +86,7 @@ prop: "enterpriseName", search: true, searchSpan: 4, width: 300, display: false }, { @@ -121,15 +122,31 @@ ] }, { label: "保安员人数", prop: "znum", display: false }, { label: "持证人数", prop: "", display: false }, { label: "派遣人数", prop: "", display: false }, { label: "服务对象数量", prop: "fwnum", display: false }, { label: "保安员人数", prop: "znum", display: false } // { // label: "近一个月服务到期数量", // prop: "", // display: false // }, ] }, loading: true src/views/statisticalQueryManagement/securityGuardStatistics.vue
@@ -27,7 +27,7 @@ selectLi, dictionaryList } from "../../api/statisticalQueryManagement/statisticalQueryManagement"; import { lazyTreeJu ,lazyTrees} from "../../api/index/index"; import { lazyTreeJu, lazyTrees } from "../../api/index/index"; export default { name: "业务情况统计", data() { @@ -40,44 +40,7 @@ query: {}, 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", // }, ], tableData: [], tableOption: { align: "center", viewBtn: true, @@ -130,28 +93,7 @@ }, // dicUrl: "/api/information/lazyTreeJu", // dicMethod:'post', dicData: [ // { // value: "0", // label: "南昌市公安局" // }, // { // value: "2", // label: "东湖分局" // }, // { // value: "3", // label: "西湖分局" // }, // { // value: "4", // label: "青云谱分局" // }, // { // value: "5", // label: "青山湖分局" // } ], dicData: [], search: true, rules: [ { @@ -181,9 +123,19 @@ prop: "paiqnum", display: false }, // { // label: "未采集照片人数", // prop: "wcaijnum", // display: false // }, { label: "未采集照片人数", prop: "wcaijnum", label: "已采集照片人数", prop: "", display: false }, { label: "已采集指纹人数", prop: "", display: false }, {