luoyb
2021-06-03 36c84173ee2638aff47a3ed42cd22db8092ea133
src/views/dashboard/index.vue
@@ -1,8 +1,8 @@
<template>
  <div class="main">
    <el-row style="    height: 40px;">
      <el-col :span="9"><p /></el-col>
      <el-col :span="15">
    <el-row style="height: 4.25vh;margin-bottom: 0">
      <el-col :span="8"><p /></el-col>
      <el-col :span="16">
        <ul class="data-ul">
          <li :class="{ selectedColor: selectIndex === 0 }" @click="selectTab(0)">
            今日
@@ -20,7 +20,7 @@
        <span style=" font-size: 16px; color: #333333;"> 时间段:</span>
        <el-date-picker
          v-model="value2"
          type="datetimerange"
          type="daterange"
          :picker-options="pickerOptions"
          range-separator="至"
          start-placeholder="开始日期"
@@ -34,182 +34,182 @@
        </el-button>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="4">
    <el-row :gutter="20" class="dashboard-card">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('在职员工总数','1')">
          <p class="card-number">{{ this.total.zzyg }}</p>
          <p class="card-number">{{ total.zzyg }}</p>
          <p>在职员工总数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('新进员工人数','2')">
          <p class="card-number">{{ this.total.xjyg }}</p>
          <p class="card-number">{{ total.xjyg }}</p>
          <p>新进员工人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('正式员工人数','3')">
          <p class="card-number">{{ this.total.zsyg }}</p>
          <p class="card-number">{{ total.zsyg }}</p>
          <p>正式员工人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('临时员工人数','4')">
          <p class="card-number">{{ this.total.lsyg }}</p>
          <p class="card-number">{{ total.lsyg }}</p>
          <p>临时员工人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('超龄员工人数','5')">
          <p class="card-number">{{ this.total.clyg }}</p>
          <p class="card-number">{{ total.clyg }}</p>
          <p>超龄员工人数</p>
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="4">
    <el-row :gutter="20" class="dashboard-card">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('离职员工总数','6')">
          <p class="card-number">{{ this.total.lzyg }}</p>
          <p class="card-number">{{ total.lzyg }}</p>
          <p>离职员工总数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showXzyg('辞职申请人数','7')">
          <p class="card-number">{{ this.total.czyg }}</p>
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showCtyg('辞职申请人数','7')">
          <p class="card-number">{{ total.czyg }}</p>
          <p>辞职申请人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('正常离职人数','8')">
          <p class="card-number">{{ this.total.zclz }}</p>
          <p class="card-number">{{ total.zclz }}</p>
          <p>正常离职人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('自动离职人数','9')">
          <p class="card-number">{{ this.total.zdlz }}</p>
          <p class="card-number">{{ total.zdlz }}</p>
          <p>自动离职人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showXzyg('公司辞退人数','10')">
          <p class="card-number">{{ this.total.gsct }}</p>
          <p class="card-number">{{ total.gsct }}</p>
          <p>公司辞退人数</p>
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="20">
    <el-row :gutter="20" class="dashboard-card">
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showht('有效合同','11')">
          <p class="card-number">{{ this.total.yxht }}</p>
          <p class="card-number">{{ total.yxht }}</p>
          <p>有效合同</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showht('到期合同','12')">
          <p class="card-number">{{ this.total.dqht }}</p>
          <p class="card-number">{{ total.dqht }}</p>
          <p>到期合同</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showht('新签合同','13')">
          <p class="card-number">{{ this.total.xinqht }}</p>
          <p class="card-number">{{ total.xinqht }}</p>
          <p>新签合同</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showht('续签合同','14')">
          <p class="card-number">{{ this.total.xqht }}</p>
          <p class="card-number">{{ total.xqht }}</p>
          <p>续签合同</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showht('解除合同','15')">
          <p class="card-number">{{ this.total.jcht }}</p>
          <p class="card-number">{{ total.jcht }}</p>
          <p>解除合同</p>
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="4">
    <el-row :gutter="20" class="dashboard-card">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showcq('出勤人数','1')">
          <p class="card-number">{{ this.total.cqrs }}</p>
          <p class="card-number">{{ total.cqrs }}</p>
          <p>出勤人数</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showqj('员工请假','1')">
          <p class="card-number">{{ this.total.ygqj }}</p>
          <p class="card-number">{{ total.ygqj }}</p>
          <p>员工请假</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showtj('员工体验','1')">
          <p class="card-number">{{ this.total.ygtj }}</p>
          <p>员工体验</p>
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showtj('员工体检','1')">
          <p class="card-number">{{ total.ygtj }}</p>
          <p>员工体检</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showcq('员工加班','2')">
          <p class="card-number">{{ this.total.ygjb }}</p>
          <p class="card-number">{{ total.ygjb }}</p>
          <p>员工加班</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showcq('员工旷工','3')">
          <p class="card-number">{{ this.total.ygkg }}</p>
          <p class="card-number">{{ total.ygkg }}</p>
          <p>员工旷工</p>
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="4">
    <el-row :gutter="20" class="dashboard-card">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showlz('劳资案件','1')">
          <p class="card-number">{{ this.total.lzaj }}</p>
          <p class="card-number">{{ total.lzaj }}</p>
          <p>劳资案件</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showgs('工伤案件','1')">
          <p class="card-number">{{ this.total.gsaj }}</p>
          <p class="card-number">{{ total.gsaj }}</p>
          <p>工伤案件</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showyw('意外险案件','1')">
          <p class="card-number">{{ this.total.ywxaj }}</p>
          <p class="card-number">{{ total.ywxaj }}</p>
          <p>意外险案件</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showsb('社保申请','3')">
          <p class="card-number">{{ this.total.sbsq }}</p>
          <p class="card-number">{{ total.sbsq }}</p>
          <p>社保申请</p>
        </el-card>
      </el-col>
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showsyj('失业金案件','3')">
          <p class="card-number">{{ this.total.syj }}</p>
          <p>失业金案件</p>
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showsyj('失业金领取','3')">
          <p class="card-number">{{ total.syj }}</p>
          <p>失业金领取</p>
        </el-card>
      </el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="4">
        <el-card shadow="always" class="card-info" @click.native="showXzyg('身份证到期','11')">
          <p class="card-number">{{ this.total.sfz }}</p>
    <el-row :gutter="20" class="dashboard-card">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showSfz('身份证到期','11')">
          <p class="card-number">{{ total.sfz }}</p>
          <p>身份证到期</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showtg('员工调岗','3')">
          <p class="card-number">{{ this.total.ygtg }}</p>
          <p class="card-number">{{ total.ygtg }}</p>
          <p>员工调岗</p>
        </el-card>
      </el-col>
      <el-col :span="4">
      <el-col>
        <el-card shadow="always" class="card-info" @click.native="showbl('不良记录','3')">
          <p class="card-number">{{ this.total.bljl }}</p>
          <p class="card-number">{{ total.bljl }}</p>
          <p>不良记录</p>
        </el-card>
      </el-col>
@@ -241,6 +241,9 @@
    <gs-user ref="gsUser" :dialog-visible="dialog.dialogShowgs" :title="title" @cancleChooseUser="canclegsUser" />
    <lz-user ref="lzUser" :dialog-visible="dialog.dialogShowlz" :title="title" @cancleChooseUser="canclelzUser" />
    <qj-user ref="qjUser" :dialog-visible="dialog.dialogShowqj" :title="title" @cancleChooseUser="cancleqjUser" />
    <yg-user ref="ygUser" :dialog-visible="dialog.dialogShowyg" :title="title" @cancleChooseUser="cancleygUser" />
    <sfz-user ref="sfzUser" :dialog-visible="dialog.dialogShowSfz" :title="title" @cancleChooseUser="cancleSfzUser" />
    <ct-user ref="ctUser" :dialog-visible="dialog.dialogShowct" :title="title" @cancleChooseUser="canclectUser" />
  </div>
</template>
<script>
@@ -256,12 +259,16 @@
import GsUser from './gsUser'
import LzUser from './lzUser'
import QjUser from './qjUser'
import YgUser from './ygUser'
import CtUser from './ctUser'
import SfzUser from './sfzUser'
export default {
  components: { QjUser, LzUser, GsUser, YwUser, SbUser, YjUser, TjUser, TgUser, BlUser, CqUser, HtUser, OnTheJobUser },
  components: { SfzUser, YgUser, QjUser, LzUser, GsUser, YwUser, SbUser, YjUser, TjUser, TgUser, BlUser, CqUser, HtUser, OnTheJobUser, CtUser },
  data() {
    return {
      dialog: {
        isVisible: false,
        dialogShowyg: false,
        dialogShowHt: false,
        dialogShowbl: false,
        dialogShowtg: false,
@@ -270,9 +277,11 @@
        dialogShowsb: false,
        dialogShowyw: false,
        dialogShowgs: false,
        dialogShowct: false,
        dialogShowlz: false,
        dialogShowqj: false,
        dialogShowCq: false,
        dialogShowSfz: false,
        title: '',
        type: ''
      },
@@ -342,7 +351,19 @@
      selectIndex: '' // 搜索结果,被选中的li index
    }
  },
  mounted() {
    this.selectTab(0)
  },
  methods: {
    showSfz(title, number) {
      this.dialog.dialogShowSfz = true
      this.title = title
      const values = this.value2
      const btime = values[0]
      const etime = values[1]
      const index = this.selectIndex
      this.$refs.sfzUser.setjobUser(btime, etime, index, number)
    },
    showbl(title, number) {
      this.dialog.dialogShowbl = true
      this.title = title
@@ -443,13 +464,27 @@
      this.$refs.htUser.setjobUser(btime, etime, index, number)
    },
    showXzyg(title, number) {
      this.dialog.isVisible = true
      this.title = title
      const values = this.value2
      const btime = values[0]
      const etime = values[1]
      const index = this.selectIndex
      this.$refs.jobUser.setjobUser(btime, etime, index, number)
      if (number >= 6) {
        this.$refs.ygUser.setjobUser(btime, etime, index, number)
        this.dialog.dialogShowyg = true
      } else {
        this.$refs.jobUser.setjobUser(btime, etime, index, number)
        this.dialog.isVisible = true
      }
    },
    showCtyg(title, number) {
      this.title = title
      const values = this.value2
      const btime = values[0]
      const etime = values[1]
      const index = this.selectIndex
      this.$refs.ctUser.setjobUser(btime, etime, index, number)
      this.dialog.dialogShowct = true
    },
    cancleChooseUser() {
      this.dialog.isVisible = false
@@ -487,6 +522,15 @@
    cancleqjUser() {
      this.dialog.dialogShowqj = false
    },
    cancleygUser() {
      this.dialog.dialogShowyg = false
    },
    canclectUser() {
      this.dialog.dialogShowct = false
    },
    cancleSfzUser() {
      this.dialog.dialogShowSfz = false
    },
    submitForm() {
      const values = this.value2
      const btime = values[0]
@@ -499,9 +543,6 @@
      })
    },
    selectTab(index) {
      if (index === null || index === undefined) {
        index = 0
      }
      this.selectIndex = index
      this.$get('hr/statistics/list', {
        index: index
@@ -525,7 +566,6 @@
      this.total.xinqht = data.xinqht
      this.total.xqht = data.xqht
      this.total.dqht = data.dqht
      debugger
      if (this.selectIndex === 0 || this.selectIndex === 1) {
        this.total.cqrs = '--'
      } else {
@@ -557,49 +597,63 @@
}
</script>
<style lang="scss" scoped>
.main {
   padding: 20px;
   padding: 5px 2vw 4.25vh;
  text-align: center;
   .data-ul {
      margin-right: 40px;
      margin-right: 2vw;
      margin-top: 0px;
      list-style: none;
      float: left;
      li {
         float: left;
         width: 60px;
         width: 3.12vw;
         text-align: center;
         font-size: 16px;
         font-size: 1.7vh;
         color: #333333;
      }
      li:hover {
         color: #931e1e;
         border-bottom: 2px solid #931e1e;
         color: #a00515;
         border-bottom: 2px solid #a00515;
      }
   }
}
.selectedColor {
   color: #931e1e;
   border-bottom: 2px solid #931e1e;
   color: #a00515;
   border-bottom: 2px solid #a00515;
}
.el-card__body {
   text-align: center;
   .card-number {
      color: #931e1e;
      font-size: 20px;
  p {
    height: 3.2vh;
    line-height: 3.2vh;
    font-size: 1.5vh;
    margin: 0;
  }
   p.card-number {
      color: #a00515;
    font-size: 2.12vh;
    height: 4.25vh;
    line-height: 4.25vh;
    margin: 0;
    margin-top: 2.65vh;
   }
}
.card-info {
  height: 100%;
}
.card-info:hover {
   text-align: center;
   background-color: #931e1e;
   background-color: #a00515;
  cursor: pointer;
   color: #fff;
   .card-number {
      color: #fff;
      font-size: 20px;
   }
}
.el-row {
   margin-bottom: 20px;
   margin-bottom: 1vh;
   &:last-child {
      margin-bottom: 0;
   }
@@ -626,7 +680,22 @@
}
.data-ul {
   li {
      line-height: 40px;
      line-height: 4.25vh;
   }
}
</style>
<style lang="scss">
.dashboard-card {
  width: 100%;
div.el-col {
  width: 20%;
  height: 12.23vh;
}
.el-card__body {
  padding: 0;
  height: 100%;
  overflow: hidden;
}
}
</style>