| | |
| | | <div class="rowTitle"> |
| | | <img src="../../../public/img/bajgxt/u1618.png" /> |
| | | <span>数据概览</span> |
| | | <el-select class="select0" v-model="value0" placeholder="请选择"> |
| | | <!-- <el-select class="select0" v-model="value0" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options0" |
| | | :key="item.value" |
| | |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-select> --> |
| | | <el-select |
| | | class="select1" |
| | | v-model="value1" |
| | | ref="treeForm" |
| | | v-model="node.title" |
| | | placeholder="请选择" |
| | | @change="fenjuChange" |
| | | > |
| | | <el-option |
| | | v-for="item in options1" |
| | | :key="item.id" |
| | | :label="item.title" |
| | | :value="item.id" |
| | | > |
| | | <el-option style="height: auto;" :value="node"> |
| | | <el-tree |
| | | :data="options1" |
| | | default-expand-all |
| | | node-key="id" |
| | | @node-click="handleNodeClick" |
| | | :props="props" |
| | | > |
| | | </el-tree> |
| | | </el-option> |
| | | </el-select> |
| | | <el-select |
| | |
| | | </div> |
| | | <div class="box-card"> |
| | | <span>公司派遣人数</span> |
| | | <span>1121</span> |
| | | <span>较上月增加13人</span> |
| | | <span>{{ socialSecurity.paiQ }}</span> |
| | | <span>较上月增加{{ socialSecurity.addPaiQ }}人</span> |
| | | </div> |
| | | <div class="box-card"> |
| | | <span>社保缴纳人数占比</span> |
| | | <span>85%</span> |
| | | <span>较上月上涨2%</span> |
| | | <span>{{ socialSecurity.sheBPerson }}</span> |
| | | <span>较上月上涨{{ socialSecurity.addSheBPerson }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="16"> |
| | | <div class="rowContent"> |
| | | <div class="rowContent" v-loading="loading1"> |
| | | <span class="span-title">社保缴纳</span> |
| | | <div id="middleEchart1"></div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="rowContent"> |
| | | <div class="rowContent" v-loading="loading2"> |
| | | <span class="span-title">派遣人员占比</span> |
| | | <div id="middleEchart2"></div> |
| | | </div> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <div class="rowContent"> |
| | | <span class="span-title">公司经济运转趋势</span> |
| | | <div class="rowContent" v-loading="loading3"> |
| | | <span class="span-title">服务客户数量</span> |
| | | <div id="bottomEchart"></div> |
| | | </div> |
| | | </el-col> |
| | |
| | | <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 { |
| | | getCompanys, |
| | | selectPCount, |
| | | selectTo, |
| | | queryYearSoil, |
| | | queryYearAn, |
| | | queryYearPz, |
| | | queryYearKh |
| | | } from "../../api/securityUnitOperation/securityUnitOperation"; |
| | | export default { |
| | | data() { |
| | |
| | | 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: [], |
| | |
| | | addNum: 0, |
| | | money: 0, |
| | | addMoney: 0, |
| | | paiQ: 0, |
| | | addPaiQ: 0, |
| | | sheBPerson: 0, |
| | | addSheBPerson: 0 |
| | | }, |
| | | loading1: true, |
| | | loading2: true, |
| | | loading3: true, |
| | | enterpriseName: "", |
| | | props: { |
| | | children: "children", |
| | | label: "title", |
| | | value: "id" |
| | | }, |
| | | node: {} //选中的记录 |
| | | }; |
| | | }, |
| | | methods: { |
| | | //点击节点 |
| | | handleNodeClick(data) { |
| | | this.node = data; |
| | | this.value1 = data.id; |
| | | this.$refs.treeForm.blur(); |
| | | this.getCompanys(); |
| | | }, |
| | | toEconomicTable() { |
| | | this.$router.push({ path: "/securityUnitOperation/economicTable" }); |
| | | this.$router.push({ |
| | | path: |
| | | "/securityUnitOperation/economicTable?jurisdiction=" + |
| | | this.value2 + |
| | | "&enterpriseName=" + |
| | | this.enterpriseName + |
| | | "&jurisdiction1=" + |
| | | this.value1 |
| | | }); |
| | | }, |
| | | getFenju() { |
| | | lazyTreeJu().then((res) => { |
| | | this.options1 = []; |
| | | this.value1 = ""; |
| | | 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(); |
| | | }, |
| | | pieChange() { |
| | | this.loading2 = true; |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2, |
| | | deptid: this.value2 |
| | | }; |
| | | selectPCount(params).then((res) => { |
| | | selectPCount(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | let middleEchart2 = echarts.init( |
| | | document.getElementById("middleEchart2") |
| | |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | this.loading2 = false; |
| | | }); |
| | | }, |
| | | 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 : ""; |
| | |
| | | getSocialSecurity() { |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2, |
| | | deptid: this.value2 |
| | | }; |
| | | selectTo(params).then((res) => { |
| | | selectTo(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | let data = res.data.data[0]; |
| | | this.socialSecurity.num = data.thismouth; |
| | | this.socialSecurity.addNum = data.thismouth - data.lastmonth; |
| | | this.socialSecurity.money = data.thisamount; |
| | | this.socialSecurity.addMoney = data.thisamount - data.lastamount; |
| | | this.socialSecurity.paiQ = data.userpcthismouth; |
| | | this.socialSecurity.addPaiQ = |
| | | data.userpcthismouth - data.userpclastmouth; |
| | | this.socialSecurity.sheBPerson = |
| | | data.userthismouth && (data.thismouth / data.userthismouth) * 100 |
| | | ? ((data.thismouth / data.userthismouth) * 100).toFixed(2) + "%" |
| | | : 0; |
| | | this.socialSecurity.addSheBPerson = |
| | | data.userthismouth && |
| | | data.userlastmouth && |
| | | (data.thismouth / data.userthismouth) * 100 && |
| | | (data.lastmonth / data.userlastmouth) * 100 && |
| | | (data.thismouth / data.userthismouth) * 100 - |
| | | (data.lastmonth / data.userlastmouth) * 100 |
| | | ? ( |
| | | (data.thismouth / data.userthismouth) * 100 - |
| | | (data.lastmonth / data.userlastmouth) * 100 |
| | | ).toFixed(2) + "%" |
| | | : 0; |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | }); |
| | | }, |
| | | getQueryYearSoil() { |
| | | this.loading1 = true; |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2, |
| | | deptid: this.value2 |
| | | }; |
| | | queryYearSoil(params).then((res) => { |
| | | queryYearSoil(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | let middleEchart1 = echarts.init( |
| | | document.getElementById("middleEchart1") |
| | | ); |
| | | middleEchart1.setOption(echartJs.economicMiddle(res.data.data)); |
| | | queryYearPz(params).then(res1 => { |
| | | if (res1.data.code === 200) { |
| | | let middleEchart1 = echarts.init( |
| | | document.getElementById("middleEchart1") |
| | | ); |
| | | middleEchart1.setOption( |
| | | echartJs.economicMiddle(res.data.data, res1.data.data) |
| | | ); |
| | | } |
| | | this.loading1 = false; |
| | | }); |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | }); |
| | | }, |
| | | getQueryYearAn() { |
| | | this.loading3 = true; |
| | | let params = { |
| | | jurisdiction: this.value1, |
| | | deptid: this.value2, |
| | | deptid: this.value2 |
| | | }; |
| | | queryYearAn(params).then((res) => { |
| | | queryYearKh(params).then(res => { |
| | | if (res.data.code === 200) { |
| | | let bottomEchart = echarts.init( |
| | | document.getElementById("bottomEchart") |
| | |
| | | } else { |
| | | this.$message.error(res.msg); |
| | | } |
| | | this.loading3 = false; |
| | | }); |
| | | }, |
| | | changeCompanys() { |
| | | this.options2.forEach(item => { |
| | | if (item.departmentid === this.value2) { |
| | | this.enterpriseName = item.enterpriseName; |
| | | } |
| | | }); |
| | | this.pieChange(); |
| | | this.getSocialSecurity(); |
| | | this.getQueryYearSoil(); |
| | | this.getQueryYearAn(); |
| | | }, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getFenju(); |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |