feat(dashboard): 添加转正提醒功能
- 在仪表板中新增转正提醒卡片,显示转正提醒数量
- 添加四险提醒卡片功能
- 新增 zzUser 组件用于展示转正提醒员工列表
- 实现转正提醒数据获取和显示逻辑
- 添加转正提醒弹窗和搜索功能
- 集成转正状态字典数据获取
| | |
| | | <p>不良记录</p> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col> |
| | | <el-card shadow="always" class="card-info" @click.native="showbl('不良记录','3')"> |
| | | <p class="card-number">{{ total.sxyg }}</p> |
| | | <p>四险提醒</p> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col> |
| | | <el-card shadow="always" class="card-info" @click.native="showProbation('转正提醒')"> |
| | | <p class="card-number">{{ total.probation }}</p> |
| | | <p>转正提醒</p> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | <on-the-job-user |
| | | ref="jobUser" |
| | |
| | | <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" /> |
| | | <zz-user ref="zzUser" :dialog-visible="dialog.dialogShowProbation" :title="title" @cancleChooseUser="cancleZzUser" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | |
| | | import YgUser from './ygUser' |
| | | import CtUser from './ctUser' |
| | | import SfzUser from './sfzUser' |
| | | import ZzUser from './zzUser' |
| | | |
| | | export default { |
| | | components: { SfzUser, YgUser, QjUser, LzUser, GsUser, YwUser, SbUser, YjUser, TjUser, TgUser, BlUser, CqUser, HtUser, OnTheJobUser, CtUser }, |
| | | components: { SfzUser, YgUser, QjUser, LzUser, GsUser, YwUser, SbUser, YjUser, TjUser, TgUser, BlUser, CqUser, HtUser, OnTheJobUser, CtUser, ZzUser }, |
| | | data() { |
| | | return { |
| | | dialog: { |
| | |
| | | dialogShowqj: false, |
| | | dialogShowCq: false, |
| | | dialogShowSfz: false, |
| | | dialgoShowProbation: false, |
| | | dialogShowProbation: false, |
| | | title: '', |
| | | type: '' |
| | | }, |
| | |
| | | ygtj: 0, |
| | | sfz: 0, |
| | | ygtg: 0, |
| | | bljl: 0 |
| | | bljl: 0, |
| | | zzyg: 0, |
| | | sxyg: 0, |
| | | probation: 0 |
| | | }, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | |
| | | }, |
| | | mounted() { |
| | | this.selectTab(0) |
| | | this.fetchProbationCount() |
| | | }, |
| | | methods: { |
| | | showSfz(title, number) { |
| | |
| | | this.$refs.ctUser.setjobUser(btime, etime, index, number) |
| | | this.dialog.dialogShowct = true |
| | | }, |
| | | showProbation(title) { |
| | | this.dialog.dialogShowProbation = true |
| | | this.title = title |
| | | const values = this.value2 |
| | | const btime = values[0] |
| | | const etime = values[1] |
| | | const index = this.selectIndex |
| | | this.$refs.zzUser.setjobUser(btime, etime, index, null) |
| | | }, |
| | | cancleZzUser() { |
| | | this.dialog.dialogShowProbation = false |
| | | }, |
| | | fetchProbationCount() { |
| | | this.$get('hr/empBaseInfo/probation/alert', { |
| | | pageSize: 1, |
| | | pageNum: 1, |
| | | delFlag: 0, |
| | | empStatus: 0 |
| | | }).then((r) => { |
| | | const data = r.data.data |
| | | this.total.probation = data.total || 0 |
| | | }) |
| | | }, |
| | | cancleChooseUser() { |
| | | this.dialog.isVisible = false |
| | | }, |
| New file |
| | |
| | | <template> |
| | | <el-dialog |
| | | :title="title" |
| | | top="80px" |
| | | width="80%" |
| | | :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | :visible.sync="isVisible" |
| | | :before-close="beforeClose" |
| | | > |
| | | <div class="app-container"> |
| | | <div class="filter-container" style="margin-left: -340px;"> |
| | | <el-input v-model="queryParams.name" placeholder="姓名/身份证号/护卫点/员工编号" class="filter-item search-item" /> |
| | | <el-button class="filter-item" type="primary" @click="search"> |
| | | {{ $t('table.search') }} |
| | | </el-button> |
| | | <el-button class="filter-item" type="success" @click="reset"> |
| | | {{ $t('table.reset') }} |
| | | </el-button> |
| | | </div> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="list" |
| | | row-key="empId" |
| | | stripe |
| | | border |
| | | :cell-style="{padding:'7px 0','text-align':'center'}" |
| | | :header-cell-style="{'height':'5.3vh','background-color':'#e6e6e6','text-align':'center'}" |
| | | style="width: 100%;" |
| | | > |
| | | <el-table-column show-overflow-tooltip type="index" width="55" label="序号" /> |
| | | <el-table-column show-overflow-tooltip prop="empNumb" label="员工编号" width="120" /> |
| | | <el-table-column show-overflow-tooltip prop="allDeptName" label="部门(护卫点)" /> |
| | | <el-table-column show-overflow-tooltip prop="jobName" label="岗位" width="120" /> |
| | | <el-table-column show-overflow-tooltip prop="empName" label="姓名" width="120" /> |
| | | <el-table-column show-overflow-tooltip prop="certificateNumb" label="身份证号码" width="160" /> |
| | | <el-table-column show-overflow-tooltip prop="birthdate" label="出生日期" width="150" /> |
| | | <el-table-column show-overflow-tooltip prop="insuranceTypeName" label="社保档位" width="180" /> |
| | | <el-table-column show-overflow-tooltip prop="socialNumb" label="社保电脑号" width="180" /> |
| | | <el-table-column show-overflow-tooltip prop="entryDate" label="入职日期" width="150" /> |
| | | <el-table-column show-overflow-tooltip prop="probationDate" label="转正日期" width="120" /> |
| | | <el-table-column show-overflow-tooltip prop="probationStatusName" label="转正状态" width="120" /> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="pagination.num" |
| | | :limit.sync="pagination.size" |
| | | @pagination="search" |
| | | /> |
| | | <el-button type="danger" @click="cancleChoose">关闭</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | // 引用翻页组件 |
| | | import Pagination from '@/components/Pagination' |
| | | |
| | | export default { |
| | | components: { |
| | | Pagination |
| | | }, |
| | | props: { |
| | | dialogVisible: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | multipleselect: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | show: false, |
| | | headerHeight: '70px', |
| | | deptTree: [], |
| | | selection: [], |
| | | multipleSelection: [], |
| | | total: 0, // 总数量 |
| | | queryParams: { |
| | | name: null, |
| | | btime: null, |
| | | etime: null, |
| | | index: null, |
| | | number: null |
| | | }, // 查询参数 |
| | | sort: {}, // 排序 |
| | | pagination: { // 分页参数 |
| | | size: 5, |
| | | num: 1 |
| | | }, |
| | | probationStatusOptions: [], |
| | | list: [], // 给table显示的数据 |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'label' |
| | | } |
| | | } |
| | | }, |
| | | computed: { |
| | | isVisible: { |
| | | get() { |
| | | return this.dialogVisible |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | setTimeout(() => { |
| | | this.getDicts('PROBATIONSTATUS').then(response => { |
| | | this.probationStatusOptions = response.data |
| | | }) |
| | | }, 1000) |
| | | }, |
| | | methods: { |
| | | probationStatusFormat(row, column) { |
| | | return this.selectDictLabel(this.probationStatusOptions, row.probationStatus) |
| | | }, |
| | | beforeClose(done) { |
| | | this.$emit('cancleChooseUser') |
| | | }, |
| | | search() { |
| | | this.fetch({ |
| | | ...this.queryParams |
| | | }) |
| | | }, |
| | | reset() { |
| | | this.queryParams.name = null |
| | | this.search() |
| | | }, |
| | | // 翻页方法 |
| | | setjobUser(btime, etime, index, number) { |
| | | this.queryParams.btime = btime |
| | | this.queryParams.etime = etime |
| | | this.queryParams.index = index |
| | | this.queryParams.number = number |
| | | this.queryParams.name = null |
| | | this.search() |
| | | }, |
| | | fetch(params = {}) { |
| | | var that = this |
| | | params.pageSize = this.pagination.size |
| | | params.pageNum = this.pagination.num |
| | | params.delFlag = 0 |
| | | params.empStatus = 0 |
| | | this.$get('hr/empBaseInfo/probation/alert', { |
| | | ...params |
| | | }).then((r) => { |
| | | const data = r.data.data |
| | | that.total = data.total |
| | | that.list = data.rows |
| | | }) |
| | | }, |
| | | cancleChoose() { |
| | | this.$emit('cancleChooseUser') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .link_button { |
| | | color: #169BD5; |
| | | } |
| | | |
| | | .del_button { |
| | | color: #D9001B; |
| | | } |
| | | </style> |