| | |
| | | <!-- 奖惩记录 --> |
| | | <template> |
| | | <div> |
| | | <div class="view"> |
| | | <div style="display: flex;justify-content: space-between;"> |
| | | <el-form :model="search" ref="page" size="small" :inline="true"> |
| | | <el-form-item label="姓名"> |
| | | <el-input v-model="search.userName" clearable placeholder="请输入关键字" size="small" style="width: 20vh;"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="奖惩日期"> |
| | | <el-date-picker |
| | | v-model="search.searchTimeList" |
| | | :picker-options="pickerOptions" |
| | | align="right" |
| | | clearable |
| | | end-placeholder="结束日期" |
| | | format="yyyy-MM-dd" |
| | | range-separator="至" |
| | | size="small" |
| | | start-placeholder="开始日期" |
| | | style="width: 100%" |
| | | type="daterange" |
| | | unlink-panels |
| | | value-format="yyyy-MM-dd 00:00:00"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="small" type="primary" @click="getPersonnelTraining(departId)">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">导出</el-button> |
| | | <el-button size="small" type="primary" @click="addRow">新增</el-button> |
| | | <div style="display: flex;justify-content: space-between"> |
| | | <div style="display: flex;"> |
| | | <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;"> |
| | | <span style="width: 48px;font-size: 14px;font-weight: 700;color: #606266;">姓名</span> |
| | | <el-input size="small" placeholder="请输入" clearable v-model="search.userName" |
| | | @keyup.enter.native="getPersonnelTraining(departId)"></el-input> |
| | | </div> |
| | | <div style="margin-bottom: 18px;margin-right: 10px;display: flex;align-items: center;line-height: 32px;"> |
| | | <span style="width: 88px;font-size: 14px;font-weight: 700;color: #606266;">奖惩日期</span> |
| | | <el-date-picker v-model="search.searchTimeList" :picker-options="pickerOptions" align="right" clearable |
| | | @change="getPersonnelTraining(departId)" |
| | | end-placeholder="结束日期" format="yyyy-MM-dd" range-separator="至" size="small" start-placeholder="开始日期" |
| | | style="width: 100%" type="daterange" unlink-panels value-format="yyyy-MM-dd 00:00:00"> |
| | | </el-date-picker> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button size="mini" type="primary" @click="getPersonnelTraining(departId)">查询</el-button> |
| | | </div> |
| | | </div> |
| | | <div style="line-height: 30px;"> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">导出</el-button> |
| | | <el-button size="small" type="primary" @click="addRow">新增</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <el-table :data="tableData" v-loading="tableLoading" height="66.5vh" style="width: 100%"> |
| | | <el-table :data="tableData" v-loading="tableLoading" |
| | | :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border |
| | | height="66.5vh" style="width: 100%"> |
| | | <el-table-column label="序号" type="index" width="120"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" |
| | | :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" |
| | | background |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" background style="margin-top: 10px" |
| | | @size-change="handleSizeChange" @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog |
| | | :visible.sync="dialogVisible" |
| | | title="奖惩记录" |
| | | width="50%" |
| | | @open="getUserList"> |
| | | <el-dialog :visible.sync="dialogVisible" title="奖惩记录" width="50%" @open="getUserList"> |
| | | <div style="height: 40vh"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="120px"> |
| | | <el-col :span="12"> |
| | |
| | | <el-col :span="12"> |
| | | <el-form-item label="员工姓名" prop="userId"> |
| | | <el-select v-model="form.userId" placeholder="请选择" size="small" style="width: 100%" value-key="id" |
| | | @change="selectUserChange" :disabled="!isDepartment"> |
| | | @change="selectUserChange" :disabled="!isDepartment"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="奖惩时间" prop="rewardPunishTime"> |
| | | <el-date-picker |
| | | v-model="form.rewardPunishTime" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择日期" |
| | | size="small" |
| | | style="width: 100%" |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss"> |
| | | <el-date-picker v-model="form.rewardPunishTime" format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期" |
| | | size="small" style="width: 100%" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | rewardPunishmentExport, |
| | | rewardPunishmentPage |
| | | } from "@/api/cnas/personal/personRewardPunishmentRecord"; |
| | | import {selectUserCondition} from "@/api/system/user"; |
| | | import {delCustomById} from "@/api/system/customer"; |
| | | import { selectUserCondition } from "@/api/system/user"; |
| | | import { delCustomById } from "@/api/system/customer"; |
| | | |
| | | export default { |
| | | props: { |
| | |
| | | async getPersonnelTraining() { |
| | | const params = { |
| | | userId: this.isDepartment ? '' : this.departId, |
| | | departmentId: this.isDepartment ? this.departId : '', |
| | | current: this.search.curent, |
| | | size: this.search.size, |
| | | userName: this.search.userName, |
| | | startTime: this.search.searchTimeList && this.search.searchTimeList[0], |
| | | endTime: this.search.searchTimeList && this.search.searchTimeList[1], |
| | | departmentId: this.isDepartment ? this.departId : '', |
| | | current: this.search.curent, |
| | | size: this.search.size, |
| | | userName: this.search.userName, |
| | | startTime: this.search.searchTimeList && this.search.searchTimeList[0], |
| | | endTime: this.search.searchTimeList && this.search.searchTimeList[1], |
| | | } |
| | | this.tableLoading = true |
| | | rewardPunishmentPage(params).then(res => { |
| | |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | addRow () { |
| | | addRow() { |
| | | this.dialogVisible = true |
| | | if (!this.isDepartment) { |
| | | this.form.userId = this.departId |
| | | this.selectUserChange(this.form.userId) |
| | | } |
| | | }, |
| | | handleDown(){ |
| | | handleDown() { |
| | | this.outLoading = true |
| | | rewardPunishmentExport({ |
| | | userId: this.isDepartment ? '' : this.departId, |
| | |
| | | type: 'application/force-download' |
| | | }) |
| | | this.$download.saveAs(blob, '奖惩记录.xlsx') |
| | | this.$message.success('导出成功') |
| | | }) |
| | | }, |
| | | // 获取负责人信息接口 |
| | | getUserList() { |
| | | selectUserCondition().then(res => { |
| | | selectUserCondition({type: 2}).then(res => { |
| | | if (res.code == 200) { |
| | | this.responsibleOptions = res.data |
| | | } |
| | |
| | | // 打开表单弹框 |
| | | editForm(row) { |
| | | this.dialogVisible = true |
| | | this.form = {...row}; |
| | | this.form = { ...row }; |
| | | }, |
| | | // 提交表单数据 |
| | | saveOrUpdate() { |
| | |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }).then(() => { |
| | | deleteRewardPunishment({id: row.id}).then(res => { |
| | | deleteRewardPunishment({ id: row.id }).then(res => { |
| | | if (res.code === 500) { |
| | | return |
| | | } |
| | |
| | | }).catch(e => { |
| | | this.$message.error('删除失败') |
| | | }) |
| | | }).catch(() => {}) |
| | | }).catch(() => { }) |
| | | |
| | | } |
| | | }, |
| | |
| | | } |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .dateTime >>>.el-form-item__content { |
| | | width: 260px; |
| | | } |
| | | </style> |