| | |
| | | <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)"> |
| | | 今日 |
| | |
| | | <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="开始日期" |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | 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, |
| | |
| | | dialogShowsb: false, |
| | | dialogShowyw: false, |
| | | dialogShowgs: false, |
| | | dialogShowct: false, |
| | | dialogShowlz: false, |
| | | dialogShowqj: false, |
| | | dialogShowCq: false, |
| | | dialogShowSfz: false, |
| | | title: '', |
| | | type: '' |
| | | }, |
| | |
| | | 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 |
| | |
| | | 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 |
| | |
| | | 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] |
| | |
| | | }) |
| | | }, |
| | | selectTab(index) { |
| | | if (index === null || index === undefined) { |
| | | index = 0 |
| | | } |
| | | this.selectIndex = index |
| | | this.$get('hr/statistics/list', { |
| | | index: index |
| | |
| | | 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 { |
| | |
| | | } |
| | | </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; |
| | | } |
| | |
| | | } |
| | | .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> |