|
@@ -69,8 +69,32 @@
|
|
|
</el-row>
|
|
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
|
|
<el-tab-pane label="员工月度考核系数" name="first">
|
|
|
+ <div class="detaTableBtns">
|
|
|
+ <div class="tableBtn add" @click="addTableDetail">
|
|
|
+ <img :src="addIcon" alt="">
|
|
|
+ <span>新增</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn save" @click="saveDetail">
|
|
|
+ <img :src="saveIcon" alt="">
|
|
|
+ <span>保存</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn delete" @click="handleDelete">
|
|
|
+ <img :src="deleteIcon" alt="">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="tableBtn import" @click="handleImport">
|
|
|
+ <img :src="importIcon" alt="">
|
|
|
+ <span>导入</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn export" @click="handleExport">
|
|
|
+ <img :src="exportIcon" alt="">
|
|
|
+ <span>导出</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)"
|
|
|
- style="width: 100%">
|
|
|
+ style="width: 100%" @select="rowClick" @select-all="rowClick">
|
|
|
+ <el-table-column type="selection" label="操作" align="center"></el-table-column>
|
|
|
<el-table-column label="序号" type="index" width="80" />
|
|
|
<el-table-column label="人员编号" prop="employeeNo">
|
|
|
<template #default="scope">
|
|
@@ -102,7 +126,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作" width="120">
|
|
|
<template #default="scope">
|
|
|
- <p class="indicitem" v-if="receiptMsg.stage !== '流程已结束'" @click="deleteRowFn(scope.row, scope.$index)">删除</p>
|
|
|
+ <p class="indicitem" @click="deleteRowFn(scope.row, scope.$index)">删除</p>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -115,28 +139,47 @@
|
|
|
</el-pagination>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="本月主要工作完成情况" name="second">
|
|
|
+ <div class="detaTableBtns">
|
|
|
+ <div class="tableBtn add" @click="addSecondWork">
|
|
|
+ <img :src="addIcon" alt="">
|
|
|
+ <span>新增</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn save" @click="saveSecondWork">
|
|
|
+ <img :src="saveIcon" alt="">
|
|
|
+ <span>保存</span>
|
|
|
+ </div>
|
|
|
+ <div class="tableBtn delete" @click="handleSecondWork">
|
|
|
+ <img :src="deleteIcon" alt="">
|
|
|
+ <span>删除</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
<el-table :data="secondWorkSituation.slice((pageRight.currentPage-1)*pageRight.pagesize, pageRight.currentPage*pageRight.pagesize)"
|
|
|
- style="width: 100%" @select="rowClick" @select-all="rowClick">
|
|
|
+ style="width: 100%" @select="rowSituationClick" @select-all="rowSituationClick">
|
|
|
<el-table-column type="selection" label="操作" align="center"></el-table-column>
|
|
|
<el-table-column label="序号" type="index" width="80" />
|
|
|
<el-table-column label="工作内容">
|
|
|
<template #default="scope">
|
|
|
- <el-input v-model="scope.row.employeeNo" :rows="1" type="textarea" />
|
|
|
+ <el-input v-model="scope.row.jobContent" :rows="1" type="textarea" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="完成情况">
|
|
|
<template #default="scope">
|
|
|
- <el-input v-model="scope.row.employeeNo" />
|
|
|
+ <el-input v-model="scope.row.completionStatus" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="相关处室" width="200">
|
|
|
<template #default="scope">
|
|
|
- <el-input v-model="scope.row.employeeNo" />
|
|
|
+ <el-input v-model="scope.row.relatedOffice" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="经办人" width="200">
|
|
|
<template #default="scope">
|
|
|
- <el-input v-model="scope.row.employeeNo" />
|
|
|
+ <el-input v-model="scope.row.handlePeopleName" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="排序" >
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input-number v-model="scope.row.serialNumber" :min="1" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -168,7 +211,8 @@
|
|
|
<script>
|
|
|
import importDailog from '../importPage/importDailog.vue'
|
|
|
import {apiPostevaluationdeptadDetails,apiGetevaluationdeptadUpdate, apiGetevaluationdeptadDelete,apiPostIsdoAction,apideptAdmodify,
|
|
|
-apiPostevaluationdeptadDetailsHead, apiGetuserPageList, apiGetUserPostList} from '../../api/api'
|
|
|
+apiPostevaluationdeptadDetailsHead, apiGetuserPageList, apiGetUserPostList, apiGetevaluationdeptadUpdateComplete,
|
|
|
+apiGetevaluationdeptadDeleteComplete} from '../../api/api'
|
|
|
import ExcelJS from 'exceljs'
|
|
|
import fileSave from 'file-saver'
|
|
|
import addIcon from '../../assets/btnIcon/add.png'
|
|
@@ -226,7 +270,8 @@ export default {
|
|
|
userMes: {},
|
|
|
instanceChild: {},
|
|
|
keyId: '',
|
|
|
- showMessage: false
|
|
|
+ showMessage: false,
|
|
|
+ changeSituationSelect: [],
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -279,20 +324,30 @@ export default {
|
|
|
getUserPostList() {
|
|
|
let that = this
|
|
|
that.showMessage = false
|
|
|
- let params = {
|
|
|
- userId: that.userMes.id,
|
|
|
- current: 1,
|
|
|
- size: 10
|
|
|
- }
|
|
|
- apiGetUserPostList(params).then(datas =>{
|
|
|
- if (datas.data && datas.data.records.length>0) {
|
|
|
- datas.data.records.forEach(it =>{
|
|
|
- if (it.posName === '主任' || it.posName === '副主任') {
|
|
|
- that.showMessage = true
|
|
|
- }
|
|
|
- })
|
|
|
+ if (that.userMes.deptId === '23031009') {
|
|
|
+ that.showMessage = true
|
|
|
+ } else {
|
|
|
+ let params = {
|
|
|
+ userId: that.userMes.id,
|
|
|
+ current: 1,
|
|
|
+ size: 10
|
|
|
}
|
|
|
- })
|
|
|
+ apiGetUserPostList(params).then(datas =>{
|
|
|
+ if (datas.data && datas.data.records.length>0) {
|
|
|
+ datas.data.records.forEach(it =>{
|
|
|
+ if (it.posName === '主任' || it.posName === '副主任') {
|
|
|
+ that.showMessage = true
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ rowClick(selection, row) {
|
|
|
+ this.changeDateSelect = selection
|
|
|
+ },
|
|
|
+ rowSituationClick(selection, row) {
|
|
|
+ this.changeSituationSelect = selection
|
|
|
},
|
|
|
changeratingGrade(val) {
|
|
|
this.modeifyDetail('level', val)
|
|
@@ -325,7 +380,9 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- handleClick() {
|
|
|
+ handleClick(val) {
|
|
|
+ this.changeDateSelect = []
|
|
|
+ this.changeSituationSelect = []
|
|
|
this.activeName = val.props.name
|
|
|
},
|
|
|
handleCurrentChangeLeft(val) {
|
|
@@ -393,7 +450,7 @@ export default {
|
|
|
businessPlanId: this.keyId,
|
|
|
employeeId: '',
|
|
|
employeeNo: '',
|
|
|
- suggestedValue: 1,
|
|
|
+ suggestedValue: 1.00,
|
|
|
serialNumber: 0
|
|
|
}
|
|
|
this.quantifiedList.unshift(obj)
|
|
@@ -402,20 +459,20 @@ export default {
|
|
|
let that = this
|
|
|
let params = []
|
|
|
that.quantifiedList.forEach(item =>{
|
|
|
- let emName = ''
|
|
|
- let emNo = ''
|
|
|
- that.deptLeaderOptionDet.forEach(it =>{
|
|
|
- if (item.employeeId === it.id) {
|
|
|
- emName = it.name
|
|
|
- emNo = it.no
|
|
|
- }
|
|
|
- })
|
|
|
+ // let emName = ''
|
|
|
+ // let emNo = ''
|
|
|
+ // that.deptLeaderOptionDet.forEach(it =>{
|
|
|
+ // if (item.employeeId === it.id) {
|
|
|
+ // emName = it.name
|
|
|
+ // emNo = it.no
|
|
|
+ // }
|
|
|
+ // })
|
|
|
let obj = {
|
|
|
assessmentDeclarationId: that.keyId,
|
|
|
employeeId: item.employeeId,
|
|
|
- employeeName: emName,
|
|
|
- employeeNo: item.employeeNo ? item.employeeNo : emNo,
|
|
|
- suggestedValue: item.suggestedValue.toString(),
|
|
|
+ employeeName: item.employeeName,
|
|
|
+ employeeNo: item.employeeNo,
|
|
|
+ suggestedValue: Number(item.suggestedValue).toFixed(2),
|
|
|
serialNumber: item.serialNumber
|
|
|
}
|
|
|
if (!item.showInput) {
|
|
@@ -547,6 +604,78 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ addSecondWork() {
|
|
|
+ this.pageRight.currentPage = 1
|
|
|
+ let obj = {
|
|
|
+ showInput: true,
|
|
|
+ assessmentDeclarationId: this.keyId,
|
|
|
+ jobContent: '',
|
|
|
+ completionStatus: '',
|
|
|
+ relatedOffice: '',
|
|
|
+ handlePeopleName: this.userMes.name,
|
|
|
+ serialNumber: 0
|
|
|
+ }
|
|
|
+ this.secondWorkSituation.unshift(obj)
|
|
|
+ },
|
|
|
+ saveSecondWork() {
|
|
|
+ let that = this
|
|
|
+ let params = []
|
|
|
+ that.secondWorkSituation.forEach(item =>{
|
|
|
+ let obj = {
|
|
|
+ assessmentDeclarationId: that.keyId,
|
|
|
+ jobContent: item.jobContent,
|
|
|
+ completionStatus: item.completionStatus,
|
|
|
+ relatedOffice: item.relatedOffice,
|
|
|
+ handlePeopleName: item.handlePeopleName,
|
|
|
+ serialNumber: item.serialNumber
|
|
|
+ }
|
|
|
+ if (!item.showInput) {
|
|
|
+ obj.id = item.id
|
|
|
+ }
|
|
|
+ params.push(obj)
|
|
|
+ })
|
|
|
+ apiGetevaluationdeptadUpdateComplete(params).then(datas =>{
|
|
|
+ if (datas) {
|
|
|
+ if (datas.success) {
|
|
|
+ that.$message({
|
|
|
+ message: '保存成功',
|
|
|
+ type: 'success'
|
|
|
+ });
|
|
|
+ that.activeName = 'second'
|
|
|
+ that.getDetails(that.keyId)
|
|
|
+ } else {
|
|
|
+ that.$message({
|
|
|
+ message: datas.message,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleSecondWork() {
|
|
|
+ this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ let that = this
|
|
|
+ let paramsArr = []
|
|
|
+ that.changeSituationSelect.forEach(it =>{
|
|
|
+ paramsArr.push(it.id)
|
|
|
+ })
|
|
|
+ apiGetevaluationdeptadDeleteComplete(paramsArr.join(',')).then(datas =>{
|
|
|
+ if (datas) {
|
|
|
+ that.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: '删除成功!'
|
|
|
+ });
|
|
|
+ that.activeName = 'second'
|
|
|
+ that.changeSituationSelect = []
|
|
|
+ that.getDetails(that.keyId)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
}
|
|
|
}
|
|
|
</script>
|