zhangxiaoxu123456
2022-04-29 af63b044b26ddf2a381b28e7a7f413ddeb31e1e9
src/pages/show/personnelTalents/personnelTalentsChild/PersonnelTalents_GreenCard.vue
@@ -1,109 +1,227 @@
<template>
  <div class="PersonnelTalents_greenCard">
  <div class="PersonnelTalents_greenCard--warp">
    <h1 class="title">人才绿卡购房、租房补贴情况统计表</h1>
    <div class="PT_greenCard--table">
      <el-table
        max-height="640"
        :data="tableData"
        :header-cell-style="handleheader"
        stripe
        border
        style="width: 100%">
        style="width: 100%" :cell-style="updataCellStyle" :span-method="mergeColumnTableCell">
        <el-table-column
          align="center"
          prop="date"
          label="指标名称"
          fixed="left"
          width="220">
          prop="jyear"
          label="年份">
        </el-table-column>
        <el-table-column
          prop="name"
          align="center"
          label="去年完成"
          width="180">
          label="A卡">
          <el-table-column
            prop="acardNums"
            label="持卡总人数 (人)">
          </el-table-column>
          <el-table-column
            prop="asubsidy"
            label="补贴总发放 (万元)">
          </el-table-column>
          <el-table-column
            label="购房">
            <el-table-column
              prop="apurchaseNums"
              label="持卡人数 (人)">
            </el-table-column>
            <el-table-column
              prop="apurSubsidy"
              label="购房补贴 (万元)">
            </el-table-column>
          </el-table-column>
          <el-table-column
            label="租房">
            <el-table-column
              prop="arentNums"
              label="持卡人数 (人)">
            </el-table-column>
            <el-table-column
              prop="arentSubsidy"
              label="租房补贴 (万元)">
            </el-table-column>
          </el-table-column>
        </el-table-column>
        <el-table-column
          prop="address"
          align="center"
          label="1月">
        </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">
          label="B卡">
          <el-table-column
            prop="bcardNums"
            label="持卡总人数 (人)">
          </el-table-column>
          <el-table-column
            prop="bsubsidy"
            label="补贴总发放 (万元)">
          </el-table-column>
          <el-table-column
            label="购房">
            <el-table-column
              prop="bpurchaseNums"
              label="持卡人数 (人)">
            </el-table-column>
            <el-table-column
              prop="bpurSubsidy"
              label="购房补贴 (万元)">
            </el-table-column>
          </el-table-column>
          <el-table-column
            label="租房">
            <el-table-column
              prop="brentNums"
              label="持卡人数 (人)">
            </el-table-column>
            <el-table-column
              prop="brentSubsidy"
              label="租房补贴 (万元)">
            </el-table-column>
          </el-table-column>
        </el-table-column>
      </el-table>
      <div class="PT--Echarts"></div>
    </div>
  </div>
</template>
<script>
  import {getPersonCardTable} from '@/api/personnelTalents'
export default {
  name: "PersonnelTalents_GreenCard"
  name: "PersonnelTalents_GreenCard",
  data() {
    return {
      tableData: [],
      spanArr: [],  //spanArr用于存放每一行记录的合并数
    }
  },
  mounted() {
    this.getPersonCardTable()
  },
  methods:{
    getPersonCardTable() {
        getPersonCardTable().then(res => {
            if(res.code == 1000) {
                this.tableData = res.list
                this.rowspan()
            }
        })
    },
    // 修改单个表格样式
    updataCellStyle({ rowIndex, columnIndex}){
      if(columnIndex===0){
        return {background:'#51D2FF'}
      }
    },
    rowspan() {
        let position = 0  //用于存储相同项的开始index
        this.tableData.forEach((item,index) => {
            console.log(item,'------------', + index)
            if(index === 0) {
                this.spanArr.push(1)
            }else {
                if(item.acardNums == this.tableData[index - 1].acardNums) {
                    this.spanArr[position] += 1
                    this.spanArr.push(0)
                }else {
                    position = index
                    this.spanArr.push(1)
                }
            }
        })
    },
    // 合并单元格
    mergeColumnTableCell({rowIndex,columnIndex}){
      if(columnIndex == 1 ||  columnIndex == 7) {
          const _row = this.spanArr[rowIndex]
          const _col = _row>0 ? 1 : 0
          return {
              rowspan: _row,
              colspan: _col
          }
      }
    }
  }
}
</script>
<style scoped>
<style lang="scss">
@import "../../../../assets/css/base";
.PT_greenCard--table {
  .el-table tr {
    background-color: #CEF2FF;
  }
  .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 {
    background-color: #51D2FF;
  }
  .el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell {
    background-color: #A8E9FF;
  }
  .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--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.127rem 0;
    //padding: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;
    height:0.390625rem;
  }
  .el-table .cell {
    font-size: $fontSize-28;
    color: $color-darkGrey;
    font-weight: 300;
    //height:0.625rem;
    line-height: 0.125rem;
    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;
  }
}
</style>
<style lang="scss" scoped>
@import "../../../../assets/css/base";
.PersonnelTalents_greenCard--warp {
  width: 100%;
  height: 90%;
  h1 {
    font-size: $fontSize-30;
    font-weight: 400;
    color: #ffffff;
    //margin-top: 0.23828125rem;
    text-align: center;
  }
  .PT_greenCard--table {
    width: 100%;
    height: 100%;
    position: relative;
    top:0.125rem;
  }
}
</style>