zhangxiaoxu123456
2022-04-29 af63b044b26ddf2a381b28e7a7f413ddeb31e1e9
src/pages/show/personnelTalents/personnelTalentsChild/PersonnelTalents_UnitPersonnel.vue
@@ -2,157 +2,481 @@
  <div class="PersonnelTalents_unitPersonnel--warp">
    <div class="PT_unitPersonnel--table">
      <el-table
        max-height="640"
        :max-height="tableHeight"
        :data="tableData"
        :header-cell-style="handleheader"
        stripe
        border
        style="width: 100%">
        style="width: 100%" :span-method="mergeColumnTableCell">
        <el-table-column
          align="center"
          prop="date"
          label="指标名称"
          fixed="left"
          width="220">
          prop="jyear"
          label="年份"
          fixed="left">
        </el-table-column>
        <el-table-column
          prop="name"
          align="center"
          label="去年完成"
          width="180">
          prop="scope"
          label="范围">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="1月">
          label="总体情况">
          <el-table-column label="事业单位(家)" prop="publicInstitutions">
          </el-table-column>
          <el-table-column label="在职人员(万人)" prop="inJobs">
          </el-table-column>
          <el-table-column label="年人均收入(万元)" prop="perIncome">
          </el-table-column>
          <el-table-column label="全省排名" prop="incomeRank">
          </el-table-column>
          <el-table-column label="年人均收入增速" prop="incomeSpeed">
          </el-table-column>
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="2月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="3月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="4月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="5月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="6月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="7月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="8月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="9月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="10月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="11月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="12月">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="省厅计划">
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="当前完成率"
          width="160">
        <el-table-column label="其中">
          <el-table-column label="工资性 年人均收入 (万元)" prop="wagesIncome"></el-table-column>
          <el-table-column label="全省排位" prop="wagesRank"></el-table-column>
          <el-table-column label="各项奖励性和 改革性补贴年 人均收入 (万元)" prop="subsidyIncome"></el-table-column>
          <el-table-column label="全省排位" prop="subsidyRank"></el-table-column>
        </el-table-column>
      </el-table>
      <div class="PT--Echarts"></div>
    </div>
    <!-- 单选框 -->
    <div class="PT_unitPersonnel--echart-box">
      <div class="PT_navEchart--title">
        <el-radio-group v-model="checkedCategory">
          <el-radio v-for="(categoryItem,index) in CARE_GORY" :label="categoryItem" :key="index"
                    @change="selectEcharts(index)">{{ categoryItem }}
          </el-radio>
        </el-radio-group>
      </div>
      <div class="PT_unitPersonnel--Echarts" v-show="isShow"></div>
    </div>
  </div>
</template>
<script>
import nowSize from "../../../../libs/nowSize";
import {getPersonTable} from '@/api/personnelTalents';
export default {
  name: "PersonnelTalents_UnitPersonnel"
  name: "PersonnelTalents_UnitPersonnel",
  data() {
    return {
      tableData: [
        // {
        //   nianfen: '2022年',
        //   fanwei: '全市',
        //   shiyedanwei: '5363',
        //   zaizhirenyuan: '16.4',
        //   nianrenjunshouru: '10.54',
        //   quanshengpaiming: '3',
        //   nianrenjunshouruzengsu: '3.02%',
        //   gongzixingnianjunshouru: '6.81',
        //   quanshengpaiming1: '8',
        //   gexiangjianglixing: 3.73,
        //   quanshengpaiming2: '1'
        // },
        // {
        //   nianfen: '2022年',
        //   fanwei: '全市',
        //   shiyedanwei: '5363',
        //   zaizhirenyuan: '16.4',
        //   nianrenjunshouru: '10.54',
        //   quanshengpaiming: '3',
        //   nianrenjunshouruzengsu: '3.02%',
        //   gongzixingnianjunshouru: '6.81',
        //   quanshengpaiming1: '8',
        //   gexiangjianglixing: 3.73,
        //   quanshengpaiming2: '1'
        // },
        // {
        //   nianfen: '2022年',
        //   fanwei: '全市',
        //   shiyedanwei: '5363',
        //   zaizhirenyuan: '16.4',
        //   nianrenjunshouru: '10.54',
        //   quanshengpaiming: '3',
        //   nianrenjunshouruzengsu: '3.02%',
        //   gongzixingnianjunshouru: '6.81',
        //   quanshengpaiming1: '8',
        //   gexiangjianglixing: 3.73,
        //   quanshengpaiming2: '1'
        // },
        // {
        //   nianfen: '2021年',
        //   fanwei: '全市',
        //   shiyedanwei: '5363',
        //   zaizhirenyuan: '16.4',
        //   nianrenjunshouru: '10.54',
        //   quanshengpaiming: '3',
        //   nianrenjunshouruzengsu: '3.02%',
        //   gongzixingnianjunshouru: '6.81',
        //   quanshengpaiming1: '8',
        //   gexiangjianglixing: 3.73,
        //   quanshengpaiming2: '1'
        // },
        // {
        //   nianfen: '2021年',
        //   fanwei: '全市',
        //   shiyedanwei: '5363',
        //   zaizhirenyuan: '16.4',
        //   nianrenjunshouru: '10.54',
        //   quanshengpaiming: '3',
        //   nianrenjunshouruzengsu: '3.02%',
        //   gongzixingnianjunshouru: '6.81',
        //   quanshengpaiming1: '8',
        //   gexiangjianglixing: 3.73,
        //   quanshengpaiming2: '1'
        // },
        // {
        //   nianfen: '2021年',
        //   fanwei: '全市',
        //   shiyedanwei: '5363',
        //   zaizhirenyuan: '16.4',
        //   nianrenjunshouru: '10.54',
        //   quanshengpaiming: '3',
        //   nianrenjunshouruzengsu: '3.02%',
        //   gongzixingnianjunshouru: '6.81',
        //   quanshengpaiming1: '8',
        //   gexiangjianglixing: 3.73,
        //   quanshengpaiming2: '1'
        // },
      ],
      checkedCategory: '事业单位',
      CARE_GORY: ['事业单位', '在职人员', '年人均收入'],
      tableHeight: window.innerHeight - nowSize(1000),
      isShow:true,
      echartSeries:{
        jumin:[120, 132, 101, 134, 90, 230],
        chengzhen:[220, 182, 191, 234, 290, 330],
        nongcun:[150, 232, 201, 154, 190, 330]
      }
    }
  },
  mounted() {
    this.Init_echarts()
    this.getPersonTable()
  },
  methods: {
    mergeColumnTableCell({rowIndex, columnIndex}) {
      if (columnIndex === 0) {
        if (rowIndex === 0) {
          return {
            rowspan: 3,
            colspan: 1
          };
        } else if (rowIndex === 3) {
          return {
            rowspan: 6,
            colspan: 1
          }
        } else {
          return {
            rowspan: 0,
            colspan: 0
          }
        }
      }
    },
    Init_echarts() {
      const myChart = this.$echarts.init(document.querySelector('.PT_unitPersonnel--Echarts'));
      const option = {
        color: ['#FF5151', '#51FF5D', '#FFD151'],
        title: {
          text: '历年全市居民人均可支配收入分析图',
          left: 'center',
          top: '5%',
          textStyle: {
            color: '#FFFFFF',
            fontSize: nowSize(30)
          }
        },
        itemStyle: {
          normal: {
            lineStyle: {
              width: 3, //折线宽度
            }
          }
        },
        tooltip: {
          trigger: 'axis'
        },
        legend: {
          right: '2%',
          top: 'center',
          orient: 'vertical',
          itemWidth: nowSize(30),
          itemHeight: nowSize(4),
          itemGap: nowSize(80),
          textStyle: {
            color: '#FFFFFF',
            fontSize: nowSize(24),
          }
        },
        grid: {
          left: '2%',
          top: '25%',
          right: '18%',
          bottom: '0',
          containLabel: true
        },
        xAxis: {
          name: '单位:年',
          nameTextStyle: {
            color: '#FFFFFF',
            fontSize: nowSize(24)
          },
          nameGap: nowSize(92),// 坐标轴名称与轴线之间的距离。
          type: 'category',
          boundaryGap: false,// 坐标轴两端留白
          data: ['2017年', '2018年', '2019年', '2020年', '2021年'],
          axisLabel: {
            show: true,
            textStyle: {
              color: '#fff',
              fontSize: nowSize(24)
            },
          },
          axisLine: {
            lineStyle: {
              color: '#999999',
              width: 1,   //这里是坐标轴的宽度,可以去掉
              type: 'solid'
            }
          },
          splitLine: {
            show: false
          }
        },
        yAxis: {
          name: '单位:年',
          nameTextStyle: {
            color: '#FFFFFF',
            fontSize: nowSize(24)
          },
          nameGap: nowSize(30),// 坐标轴名称与轴线之间的距离。
          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.echartSeries.jumin
          },
          {
            name: '城镇居民',
            type: 'line',
            data: this.echartSeries.chengzhen
          },
          {
            name: '农村居民',
            type: 'line',
            data: this.echartSeries.nongcun
          }
        ]
      };
      option && myChart.setOption(option)
    },
    getHeight() {
      this.tableHeight = window.innerHeight - nowSize(900)
    },
    // 通过点击更换echarts图表信息
    selectEcharts(index) {
      console.log(index);
      switch(index){
        case 0:
          this.isShow = true;
          this.echartSeries = {
            jumin:[120, 132, 101, 134, 90, 230],
            chengzhen:[220, 182, 191, 234, 290, 330],
            nongcun:[150, 232, 201, 154, 190, 330]
          }
          this.Init_echarts()
          break;
        default:
          this.isShow = false;
          break;
      }
    },
    // 29. 查询事业单位人员情况表格数据接口
    getPersonTable() {
      getPersonTable().then(res => {
        if (res.code === 1000) {
          this.tableData = res.list
        }
      })
    }
  },
  created() {
    window.addEventListener('resize', this.getHeight)
  },
  destroy() {
    window.addEventListener('resize', this.getHeight)
  }
}
</script>
<style lang="scss">
@import "../../../../assets/css/base";
.PT_unitPersonnel--table{
  .el-table tr{
.PT_unitPersonnel--table {
  .el-table tr {
    background-color: #CEF2FF;
  }
  .el-table th.el-table__cell{
  .el-table th.el-table__cell {
    background-color: #51D2FF;
  }
  .el-table__fixed, .el-table__fixed-right,.el-table__fixed-right::before, .el-table__fixed::before{
  .el-table__fixed, .el-table__fixed-right, .el-table__fixed-right::before, .el-table__fixed::before {
    background-color: #51D2FF;
  }
  .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{
  .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
    background-color: #A8E9FF;
  }
  .el-table thead{
  .el-table thead {
    color: #111111;
  }
  .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf{
    border-bottom: 1Px solid #8E8E8E;
  .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf {
    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;
  .el-table--border .el-table__cell, .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed {
    border-right: 1px solid #8E8E8E;
  }
  .el-table .el-table__cell{
    padding: 0.0859375rem  /* 22/256 */ 0;
  .el-table .el-table__cell {
    //padding: 0.0850375rem /* 22/256 */
    //0;
    padding: 0.0546875rem 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{
  .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{
  .el-table .cell {
    line-height: 0.125rem;
    font-size: $fontSize-28;
    color: $color-darkGrey;
    font-weight: 300;
    line-height: 1;
    text-align: center;
  }
  // 头部团体背景颜色
  .el-table thead.is-group th.el-table__cell {
    background-color: #51D2FF;
  }
  // 头部团体单元格下边框颜色
  .el-table--border th.el-table__cell, .el-table__fixed-right-patch {
    border-bottom: 1px solid #8E8E8E;
  }
}
.PT_navEchart--title {
  .el-radio {
    width: 1.171875rem;
    line-height: 0.375rem;
    .el-radio__label {
      font-size: 0.09375rem;
      color: #FFFFFF;
    }
    .el-radio__input {
      margin-bottom: 0.01953125rem;
      &.is-checked {
        .el-radio__inner {
          background-color: #51D2FF;
          border-color: #51D2FF;
          background: url("../../../../assets/images/personnelTalents/Yes@2x.png") no-repeat;
          background-size: 100% 100%;
          background-color: #51D2FF;
          &:hover {
            border-color: #51D2FF;
          }
        }
      }
      .el-radio__inner {
        width: 0.15625rem;
        height: 0.15625rem;
        margin-right: 0.06640625rem;
        background: transparent;
        border-radius: 1%;
        box-sizing: content-box;
        border: 0.0078125rem /* 2/256 */
        solid #DCDFE6;
        &::after {
          content: '';
          width: 0;
          height: 0;
        }
      }
    }
  }
}
</style>
<style lang="scss" scoped>
@import "../../../../assets/css/base";
.PersonnelTalents_unitPersonnel--warp{
.PersonnelTalents_unitPersonnel--warp {
  width: 100%;
  height: 100%;
  .PT_unitPersonnel--table{
  .PT_unitPersonnel--table {
    width: 100%;
    height: 100%;
  }
  .PT_unitPersonnel--echart-box {
    width: 100%;
    margin-top: 0.234375rem /* 60/256 */
  ;
    height: calc(100% - 2.5rem/* 640/256 */ - 0.254375rem /* 60/256 */
    );
    position: relative;
    .PT_navEchart--title {
      width: 1px;
      display: inline-block;
      position: absolute;
      left: 0.390625rem;
      top: 50%;
      transform: translateY(-50%);
    }
    .PT_unitPersonnel--Echarts {
      width: 85%;
      height: 100%;
      position: absolute;
      left: 1.2890625rem;
      display: inline-block;
    }
  }
  .PT--Echarts{
    height: calc(100% - 640px - 0.33203125rem  /* 85/256 */);
  }
}
</style>