zhangxiaoxu123456
2022-04-24 31181a5ed1e8cb393ad90fd19f6baea72b3cc423
src/pages/show/jiuyeAndChuangye/jiuyeChildren/workStatistics.vue
@@ -2,137 +2,282 @@
    <div class="workStatistics-wrap">
      <div class="workStatistics-table">
        <h1>劳动就业统计表</h1>
        <div class="danwei-box">单位:人</div>
        <el-table
          max-height="640"
          :max-height="tableHeight"
          :data="tableData"
          :header-cell-style="handleheader"
          stripe
          border
          style="width: 100%">
          <el-table-column
            :formatter="dataTypeFormatter"
            align="center"
            prop="date"
            prop="dataType"
            label="指标名称"
            fixed="left"
            width="220">
            fixed="left">
          </el-table-column>
          <el-table-column
            prop="name"
            prop="yearFinish"
            align="center"
            label="去年完成"
            width="180">
            label="去年完成">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="january"
            align="center"
            label="1月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="february"
            align="center"
            label="2月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="march"
            align="center"
            label="3月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="april"
            align="center"
            label="4月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="may"
            align="center"
            label="5月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="june"
            align="center"
            label="6月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="july"
            align="center"
            label="7月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="august"
            align="center"
            label="8月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="september"
            align="center"
            label="9月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="october"
            align="center"
            label="10月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="november"
            align="center"
            label="11月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="december"
            align="center"
            label="12月">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="plan"
            align="center"
            label="省厅计划">
          </el-table-column>
          <el-table-column
            prop="address"
            prop="finish"
            align="center"
            label="当前完成率"
            width="160">
            label="当前完成率">
          </el-table-column>
        </el-table>
        <div class="laogongJiuyeEcharts" id="laogongJiuyeEcharts"></div>
      </div>
    </div>
</template>
<script>
  import nowSize from "../../../../libs/nowSize";
  import { getLabourTable, getLabourLine } from '@/api/jiuyeAndChuangye'
    export default {
        name: "workStatistics",
        data() {
            return {
                tableData: [{
                    date: '城镇新增就业人数',
                    name: '122',
                    address: '32111'
                }, {
                    date: '城镇失业人员实现再就业人数',
                    name: '233',
                    address: '34222'
                }, {
                    date: '农村劳动力向非农产业转移人数',
                    name: '23222',
                    address: '3112222'
                }, {
                    date: '其中:劳务输出',
                    name: '34221',
                    address: '122222'
                }, {
                    date: '开展补贴性职业技能培训人数',
                    name: '2333',
                    address: '1232233'
                }, {
                    date: '城镇登记失业率',
                    name: '222',
                    address: '2222'
                }]
                tableData: [],
                newEmployment:[], //新增就业
                loseReEmployment:[], //失业人员再就业
                diffReEmployment: [],  //就业困难人员再就业
                xdata:[],
                tableHeight: window.innerHeight - nowSize(1000)
            }
        },
        mounted() {
          this.getLabourTable()
          this.getLabourLine()
          this.laogongJiuyeEcharts()
        },
        methods: {
            getLabourTable() {  //查询劳动就业表格数据接口
                getLabourTable().then(res => {
                    if(res.code == 1000) {
                        this.tableData = res.list
                    }
                })
            },
            dataTypeFormatter(row,column) {
                let name = row.dataType
                if(name == 1) {
                    return '城镇新增就业人数'
                }else if(name == 2) {
                    return '城镇失业人员实现再就业人数'
                }else if(name == 3) {
                    return '城镇就业困难人员实现再就业人数'
                }else if(name == 4) {
                    return '农村劳动力向非农产业转移人数'
                }else if(name == 5) {
                    return '劳务输出'
                }else if(name == 6) {
                    return '开展补贴性职业技能培训人数'
                }else if(name == 7) {
                    return '城镇登记失业率'
                }
            },
            /*查询劳动就业折线图数据接口*/
            getLabourLine() {
                getLabourLine().then(res => {
                    if(res.code == 1000) {
                        this.newEmployment = res.list[0][1] || []
                        this.loseReEmployment = res.list[1][2] || []
                        this.diffReEmployment = res.list[2][3] || []
                        this.xdata = res.obj || []
                        this.laogongJiuyeEcharts()
                    }
                })
            },
            laogongJiuyeEcharts() {
              let myEchart = this.$echarts.init(document.getElementById('laogongJiuyeEcharts'))
              let option = {
                    color : ['#FF5151','#51FF5D','#FFD151'],
                    title: {
                        text: '历年城镇就业人数分析图',
                        left: 'center',
                        top: '8%',
                        textStyle: {
                            color: '#FFFFFF',
                            fontSize: nowSize(30)
                        },
                    },
                    tooltip: {
                        trigger: 'axis'
                    },
                    legend: {
                        itemWidth: nowSize(30),
                        itemHeight: nowSize(4),
                        itemGap: nowSize(50),
                        right:'2%',
                        top: 'center',
                        orient: 'vertical',
                        textStyle: {
                            color: '#FFFFFF',
                            fontSize: nowSize(24),
                        }
                    },
                    grid: {
                        top: '15%',
                        left: '4%',
                        right: '18%',
                        bottom: '3%',
                        containLabel: true
                    },
                    xAxis: {
                        type: 'category',
                        boundaryGap: false,
                        data: this.xdata,
                        axisLabel: {
                            show: true,
                            textStyle: {
                                color: "#fff",
                                fontSize:nowSize(24),
                                lineHeight: nowSize(56)
                            }
                        },
                        axisLine: {
                            lineStyle: {
                                color: "#999999",
                                width: 1,
                                type: "solid"
                            }
                        },
                        splitLine: {
                            show: false
                        }
                    },
                    yAxis: {
                        type: 'value',
                        axisLabel: {
                            show: true,
                            textStyle: {
                                color: "#fff",
                                fontSize:nowSize(24)
                            }
                        },
                        axisLine: {
                            lineStyle: {
                                color: "#999999",
                                width: 1,
                                type: "solid"
                            }
                        },
                        splitLine: {
                            show: false
                        }
                    },
                    series: [
                        {
                            name: '新增就业',
                            type: 'line',
                            data: this.newEmployment
                        },
                        {
                            name: '失业人员再就业',
                            type: 'line',
                            data: this.loseReEmployment
                        },
                        {
                            name: '就业困难人员再就业',
                            type: 'line',
                            data: this.diffReEmployment
                        }
                    ]
                };
              myEchart.setOption(option)
              window.addEventListener('resize',function () {
                  myEchart.resize()
              })
            },
            handleheader(data) {
                return {
                    lineHeight: '0',
                }
            },
            getHeight() {
                this.tableHeight = window.innerHeight - nowSize(1000)
            },
            created() {
                window.addEventListener('resize', this.getHeight)
            },
            destroy() {
                window.addEventListener('resize', this.getHeight)
            }
        }
    }
</script>
<style lang="scss">
  @import "../../../../assets/css/base";
  .workStatistics-table{
    .el-table tr{
      background-color: #CEF2FF;
@@ -150,16 +295,22 @@
      color: #111111;
    }
    .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
      border-bottom: 1px solid #8E8E8E;
      border-bottom: 1Px solid #8E8E8E;
    }
    .el-table--border .el-table__cell, .el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{
      border-right: 1px solid #8E8E8E;
      border-right: 1Px solid #8E8E8E;
    }
    .el-table .el-table__cell{
      padding: 2.2rem 0;
      padding: 0.0859375rem  /* 22/256 */ 0;
    }
    .el-table__body tr.hover-row.current-row>td.el-table__cell, .el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell, .el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell, .el-table__body tr.hover-row>td.el-table__cell{
      background: transparent;
    }
    .el-table .cell{
      font-size: $fontSize-28;
      color: $color-darkGrey;
      font-weight: 300;
      line-height: 1;
    }
  }
</style>
@@ -171,6 +322,15 @@
     .workStatistics-table{
       width: 100%;
       height: 100%;
       position: relative;
       .danwei-box{
         position: absolute;
         right: 0;
         top: 0;
         line-height: 3.3;
         font-size: $fontSize-24;
         color: $color-white;
       }
       h1{
         font-size: $fontSize-30;
         color: $color-white;
@@ -178,5 +338,8 @@
         line-height: 2.5;
       }
     }
    .laogongJiuyeEcharts{
      height: calc(100% - 2.34375rem  /* 600/256 */ - 0.33203125rem  /* 85/256 */);
    }
  }
</style>