| | |
| | | <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 |
| | | <avue-input-tree |
| | | class="select1" |
| | | default-expand-all |
| | | v-model="value1" |
| | | placeholder="请选择" |
| | | @change="fenjuChange" |
| | | > |
| | | <el-option |
| | | v-for="item in options1" |
| | | :key="item.id" |
| | | :label="item.title" |
| | | :value="item.id" |
| | | ></el-option> |
| | | </el-select> |
| | | <el-select |
| | | placeholder="请选择内容" |
| | | type="tree" |
| | | :dic="options1" |
| | | :props="props" |
| | | @change="handleNodeClick" |
| | | ></avue-input-tree> |
| | | <avue-input-tree |
| | | class="select2" |
| | | default-expand-all |
| | | v-model="value2" |
| | | placeholder="请选择公司" |
| | | type="tree" |
| | | :dic="options2" |
| | | :props="props2" |
| | | @change="changeCompanys" |
| | | ></avue-input-tree> |
| | | <!-- <el-select |
| | | class="select2" |
| | | v-model="value2" |
| | | placeholder="请选择" |
| | |
| | | :label="item.enterpriseName" |
| | | :value="item.departmentid" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-select> --> |
| | | <el-button @click="toOperationTable">进入数据统计表</el-button> |
| | | </div> |
| | | |
| | |
| | | <span>{{ card.czBaoan }}</span> |
| | | <span>较上月增加{{ card.addczBaoan }}人</span> |
| | | </div> |
| | | <div class="box-card"> |
| | | <!-- <div class="box-card"> |
| | | <span>过考保安员</span> |
| | | <span>{{ card.gkBaoan }}</span> |
| | | <span>较上月增加{{ card.addgkBaoan }}人</span> |
| | | </div> |
| | | </div> --> |
| | | <div class="box-card"> |
| | | <span>服务客户</span> |
| | | <span>{{ card.kh }}</span> |
| | |
| | | <div class="leftEchartTitle qing"> |
| | | <div class="block1"></div> |
| | | <span>青年</span> |
| | | <span>11</span> |
| | | <span>{{ ageData.qing }}</span> |
| | | <span>人</span> |
| | | </div> |
| | | <div class="leftEchartTitle zhong"> |
| | | <div class="block1"></div> |
| | | <span>中年</span> |
| | | <span>321</span> |
| | | <span>{{ ageData.zhong }}</span> |
| | | <span>人</span> |
| | | </div> |
| | | <div class="leftEchartTitle lao"> |
| | | <div class="block1"></div> |
| | | <span>老年</span> |
| | | <span>123</span> |
| | | <span>{{ ageData.lao }}</span> |
| | | <span>人</span> |
| | | </div> |
| | | <div id="bottomEchart1"></div> |
| | |
| | | <script> |
| | | import * as echarts from "echarts"; |
| | | import echartJs from "./securityEchart.js"; |
| | | import { lazyTreeJu } from "../../api/index/index"; |
| | | import { lazyTreeJu, lazyTrees } from "../../api/index/index"; |
| | | import { |
| | | queryCounts, |
| | | getCompanys, |
| | | queryYearKh, |
| | | queryYearG |
| | | queryYearG, |
| | | selectAge, |
| | | } from "../../api/securityUnitOperation/securityUnitOperation"; |
| | | export default { |
| | | data() { |
| | |
| | | sheb: 0, |
| | | addsheb: 0, |
| | | baoanPq: 0, |
| | | addbaoanPq: 0 |
| | | addbaoanPq: 0, |
| | | }, |
| | | 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: [], |
| | |
| | | middleEchart1: null, |
| | | middleEchart2: null, |
| | | bottomEchart: null, |
| | | bottomEchart1: null |
| | | } |
| | | bottomEchart1: null, |
| | | }, |
| | | ageData: { |
| | | qing: 0, |
| | | zhong: 0, |
| | | lao: 0, |
| | | }, |
| | | props: { |
| | | children: "children", |
| | | label: "title", |
| | | value: "id", |
| | | }, |
| | | props2: { |
| | | children: "children", |
| | | label: "enterpriseName", |
| | | value: "departmentid", |
| | | }, |
| | | node: {}, //选中的记录 |
| | | }; |
| | | }, |
| | | methods: { |
| | | setEchart() { |
| | | let data = []; |
| | | |
| | | let data1 = []; |
| | | if (!this.echartDom.bottomEchart1) { |
| | | this.echartDom.bottomEchart1 = echarts.init( |
| | | document.getElementById("bottomEchart1") |
| | | ); |
| | | this.echartDom.bottomEchart1.setOption(echartJs.bottomOption2(data1)); |
| | | } |
| | | //点击节点 |
| | | handleNodeClick(id) { |
| | | this.value1 = id; |
| | | this.getCompanys(); |
| | | }, |
| | | setAgeEchart() { |
| | | this.loading4 = true; |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2, |
| | | }; |
| | | selectAge(params).then((res) => { |
| | | if (res.data.code === 200) { |
| | | if (!this.echartDom.bottomEchart1) { |
| | | this.echartDom.bottomEchart1 = echarts.init( |
| | | document.getElementById("bottomEchart1") |
| | | ); |
| | | } |
| | | this.echartDom.bottomEchart1.setOption( |
| | | echartJs.bottomOption2(res.data.data) |
| | | ); |
| | | this.ageData.qing = res.data.data.qcount; |
| | | this.ageData.zhong = res.data.data.zcount; |
| | | this.ageData.lao = res.data.data.lcount; |
| | | } else { |
| | | this.$message.error(res.data.msg); |
| | | } |
| | | this.loading4 = false; |
| | | }); |
| | | }, |
| | | toOperationTable() { |
| | | this.$router.push({ |
| | |
| | | "&enterpriseName=" + |
| | | this.enterpriseName + |
| | | "&jurisdiction1=" + |
| | | this.value1 |
| | | this.value1, |
| | | }); |
| | | }, |
| | | getFenju() { |
| | | this.options1 = []; |
| | | this.value1 = ""; |
| | | lazyTreeJu().then(res => { |
| | | this.node = {}; |
| | | lazyTrees().then((res) => { |
| | | if (res.data.code === 200) { |
| | | this.options1 = res.data.data; |
| | | this.value1 = this.options1[0] ? this.options1[0].id : ""; |
| | | this.node = this.options1[0]; |
| | | this.getCompanys(); |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | }); |
| | | }, |
| | | fenjuChange() { |
| | | this.getCompanys(); |
| | | }, |
| | | |
| | | 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 : ""; |
| | | // this.value2 = this.options2[0] ? this.options2[0].departmentid : ""; |
| | | this.enterpriseName = this.options2[0] |
| | | ? this.options2[0].enterpriseName |
| | | : ""; |
| | |
| | | getQueryCounts() { |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2 |
| | | deptid: this.value2, |
| | | }; |
| | | queryCounts(params).then(res => { |
| | | queryCounts(params).then((res) => { |
| | | if (res.data.code === 200) { |
| | | let data = res.data.data[0]; |
| | | this.card = { |
| | | baoanTotal: data.baoan.thisnum, |
| | | addbaoanTotal: data.baoan.thisnum - data.baoan.lastnum, |
| | | zcBaoan: data.zcbaoan.thisnum, |
| | | addzcBaoan: data.zcbaoan.thisnum - data.zcbaoan.lastnum, |
| | | czBaoan: data.czbaoan.thisnum, |
| | | addczBaoan: data.czbaoan.thisnum - data.czbaoan.lastnum, |
| | | baoanTotal: data.baoan.num, |
| | | addbaoanTotal: data.baoan.thisnum, |
| | | zcBaoan: data.zcbaoan.num, |
| | | addzcBaoan: data.zcbaoan.thisnum, |
| | | czBaoan: data.czbaoan.num, |
| | | addczBaoan: data.czbaoan.thisnum, |
| | | gkBaoan: 0, |
| | | addgkBaoan: 0, |
| | | kh: data.kh.thisnum, |
| | | addkh: data.kh.thisnum - data.kh.lastnum, |
| | | sheb: data.sheb.thisnum, |
| | | addsheb: data.sheb.thisnum - data.sheb.lastnum, |
| | | baoanPq: data.paiq.thisnum, |
| | | addbaoanPq: data.paiq.thisnum - data.paiq.lastnum |
| | | kh: data.kh.num, |
| | | addkh: data.kh.thisnum, |
| | | sheb: data.sheb.num, |
| | | addsheb: data.sheb.thisnum, |
| | | baoanPq: data.paiq.num, |
| | | addbaoanPq: data.paiq.thisnum, |
| | | }; |
| | | } |
| | | }); |
| | |
| | | this.loading2 = true; |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2 |
| | | deptid: this.value2, |
| | | }; |
| | | queryYearKh(params).then(res => { |
| | | queryYearKh(params).then((res) => { |
| | | if (res.data.code === 200) { |
| | | if (!this.echartDom.middleEchart2) { |
| | | this.echartDom.middleEchart2 = echarts.init( |
| | |
| | | this.loading3 = true; |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2 |
| | | deptid: this.value2, |
| | | }; |
| | | queryYearG(params).then(res => { |
| | | queryYearG(params).then((res) => { |
| | | if (res.data.code === 200) { |
| | | if (!this.echartDom.middleEchart1) { |
| | | this.echartDom.middleEchart1 = echarts.init( |
| | |
| | | sheb: 0, |
| | | addsheb: 0, |
| | | baoanPq: 0, |
| | | addbaoanPq: 0 |
| | | addbaoanPq: 0, |
| | | }; |
| | | this.ageData = { |
| | | qing: 0, |
| | | zhong: 0, |
| | | lao: 0, |
| | | }; |
| | | }, |
| | | changeCompanys() { |
| | | this.options2.forEach(item => { |
| | | this.options2.forEach((item) => { |
| | | if (item.departmentid === this.value2) { |
| | | this.enterpriseName = item.enterpriseName; |
| | | } |
| | |
| | | this.getQueryCounts(); |
| | | this.getQueryYearKh(); |
| | | this.getQueryYearG(); |
| | | } |
| | | this.setAgeEchart(); |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.setEchart(); |
| | | this.getFenju(); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | @media screen and (max-width: 1280px) { |
| | | .box-card { |
| | | font-size: 15px; |
| | | width: 128px; |
| | | background: #00aaf1; |
| | | height: 117px; |
| | | text-align: center; |
| | | margin-right: 28px; |
| | | box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35); |
| | | line-height: 36px; |
| | | span:nth-child(2) { |
| | | color: #06ffff; |
| | | font-size: 31px; |
| | | } |
| | | } |
| | | .col-content { |
| | | margin-top: 39px !important; |
| | | } |
| | | .leftEchartTitle.qing { |
| | | right: 10px; |
| | | margin-top: 42px; |
| | | .block1 { |
| | | background: #73c0de; |
| | | margin-top: 11px; |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 12px; |
| | | margin: 0px 3px 0px 3px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #73c0de; |
| | | font-size: 15px; |
| | | width: 45px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 12px; |
| | | color: #73c0de; |
| | | } |
| | | } |
| | | .leftEchartTitle.zhong { |
| | | right: 10px; |
| | | margin-top: 83px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 100%; |
| | | background: #fac858; |
| | | margin-top: 11px; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 12px; |
| | | margin: 0px 3px 0px 3px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #fac858; |
| | | font-size: 15px; |
| | | width: 45px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 12px; |
| | | color: #fac858; |
| | | } |
| | | } |
| | | .leftEchartTitle.lao { |
| | | right: 10px; |
| | | margin-top: 125px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | border-radius: 100%; |
| | | background: #91cc75; |
| | | margin-top: 11px; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 12px; |
| | | margin: 0px 3px 0px 3px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #91cc75; |
| | | font-size: 15px; |
| | | width: 45px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 12px; |
| | | color: #91cc75; |
| | | } |
| | | } |
| | | } |
| | | // 适配分辨率1600*900 |
| | | @media screen and (min-width: 1281px) and (max-width: 1600px) { |
| | | .box-card { |
| | | font-size: 15px; |
| | | width: 128px; |
| | | background: #00aaf1; |
| | | height: 117px; |
| | | text-align: center; |
| | | margin-right: 66px; |
| | | box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35); |
| | | line-height: 36px; |
| | | span:nth-child(2) { |
| | | color: #06ffff; |
| | | font-size: 31px; |
| | | } |
| | | } |
| | | .leftEchartTitle.qing { |
| | | right: 37px; |
| | | margin-top: 42px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | background: #73c0de; |
| | | margin-top: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #73c0de; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #73c0de; |
| | | } |
| | | } |
| | | .leftEchartTitle.zhong { |
| | | right: 37px; |
| | | margin-top: 83px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | background: #fac858; |
| | | margin-top: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #fac858; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #fac858; |
| | | } |
| | | } |
| | | .leftEchartTitle.lao { |
| | | right: 37px; |
| | | margin-top: 125px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | background: #91cc75; |
| | | margin-top: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #91cc75; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #91cc75; |
| | | } |
| | | } |
| | | } |
| | | @media screen and (min-width: 1601px) and (max-width: 1920px) { |
| | | .box-card { |
| | | width: 150px; |
| | | background: #00aaf1; |
| | | height: 135px; |
| | | text-align: center; |
| | | margin-right: 66px; |
| | | box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35); |
| | | line-height: 40px; |
| | | span:nth-child(2) { |
| | | color: #06ffff; |
| | | font-size: 34px; |
| | | } |
| | | } |
| | | .leftEchartTitle.qing { |
| | | right: 37px; |
| | | margin-top: 42px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | background: #73c0de; |
| | | margin-top: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #73c0de; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #73c0de; |
| | | } |
| | | } |
| | | .leftEchartTitle.zhong { |
| | | right: 37px; |
| | | margin-top: 83px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | background: #fac858; |
| | | margin-top: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #fac858; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #fac858; |
| | | } |
| | | } |
| | | .leftEchartTitle.lao { |
| | | right: 37px; |
| | | margin-top: 125px; |
| | | .block1 { |
| | | width: 10px; |
| | | height: 10px; |
| | | background: #91cc75; |
| | | margin-top: 10px; |
| | | border-radius: 100%; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #91cc75; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #91cc75; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .page1 { |
| | | height: 100%; |
| | | width: 100%; |
| | |
| | | font-weight: 600; |
| | | } |
| | | } |
| | | .box-card { |
| | | width: 150px; |
| | | background: #00aaf1; |
| | | height: 135px; |
| | | text-align: center; |
| | | margin-right: 66px; |
| | | box-shadow: 5px 5px 5px rgba($color: #000, $alpha: 0.35); |
| | | line-height: 40px; |
| | | } |
| | | |
| | | .box-card span { |
| | | display: block; |
| | | width: 100%; |
| | | color: #fff; |
| | | } |
| | | .box-card span:nth-child(2) { |
| | | color: #06ffff; |
| | | font-size: 34px; |
| | | } |
| | | .rowTitle { |
| | | height: 40px; |
| | |
| | | } |
| | | .select1 { |
| | | position: absolute; |
| | | right: 302px; |
| | | right: 360px; |
| | | } |
| | | .select2 { |
| | | position: absolute; |
| | |
| | | right: 0px; |
| | | } |
| | | /deep/ .el-input__inner { |
| | | width: 120px; |
| | | width: 180px; |
| | | } |
| | | } |
| | | .col-content { |
| | |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #2ec7c9; |
| | | } |
| | | } |
| | | .leftEchartTitle.qing { |
| | | right: 37px; |
| | | margin-top: 42px; |
| | | .block1 { |
| | | width: 30px; |
| | | height: 15px; |
| | | background: #73c0de; |
| | | margin-top: 7px; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #73c0de; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #73c0de; |
| | | } |
| | | } |
| | | .leftEchartTitle.zhong { |
| | | right: 37px; |
| | | margin-top: 83px; |
| | | .block1 { |
| | | width: 30px; |
| | | height: 15px; |
| | | background: #fac858; |
| | | margin-top: 7px; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #fac858; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #fac858; |
| | | } |
| | | } |
| | | .leftEchartTitle.lao { |
| | | right: 37px; |
| | | margin-top: 125px; |
| | | .block1 { |
| | | width: 30px; |
| | | height: 15px; |
| | | background: #91cc75; |
| | | margin-top: 7px; |
| | | } |
| | | span:nth-child(2) { |
| | | color: #fff; |
| | | font-size: 13px; |
| | | } |
| | | span:nth-child(3) { |
| | | color: #91cc75; |
| | | font-size: 17px; |
| | | } |
| | | span:nth-child(4) { |
| | | font-size: 13px; |
| | | color: #91cc75; |
| | | } |
| | | } |
| | | </style> |