|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
- <div class="deptbusinessFrom">
|
|
|
- <el-dialog title="部门经营业绩考评详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
|
|
|
+ <div class="deptstartFrom">
|
|
|
+ <el-dialog title="考评启动详情" v-model="dialogVisible" :fullscreen="true" :close-on-click-modal="false">
|
|
|
<div class="startDetail">
|
|
|
<p class="starttitleSty">单据信息:</p>
|
|
|
<el-row class="danjuMsg">
|
|
@@ -10,8 +10,8 @@
|
|
|
<span>{{receiptMsg.code}}</span>
|
|
|
</div>
|
|
|
<div class="danjuMsg_data">
|
|
|
- <span class="data_tit">年度:</span>
|
|
|
- <span>{{receiptMsg.year}}</span>
|
|
|
+ <span class="data_tit">创建日期:</span>
|
|
|
+ <span>{{receiptMsg.createDate}}</span>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
@@ -20,8 +20,8 @@
|
|
|
<span>{{receiptMsg.des}}</span>
|
|
|
</div>
|
|
|
<div class="danjuMsg_data">
|
|
|
- <span class="data_tit">单据状态:</span>
|
|
|
- <span>{{receiptMsg.recStage}}</span>
|
|
|
+ <span class="data_tit">考评周期:</span>
|
|
|
+ <span>{{receiptMsg.type}}</span>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
@@ -29,11 +29,19 @@
|
|
|
<span class="data_tit">流程状态:</span>
|
|
|
<span>{{receiptMsg.stage}}</span>
|
|
|
</div>
|
|
|
+ <div class="danjuMsg_data">
|
|
|
+ <span class="data_tit">年度:</span>
|
|
|
+ <span>{{receiptMsg.year}}</span>
|
|
|
+ </div>
|
|
|
</el-col>
|
|
|
<el-col :span="6">
|
|
|
<div class="danjuMsg_data">
|
|
|
- <span class="data_tit">考评周期:</span>
|
|
|
- <span>{{receiptMsg.type}}</span>
|
|
|
+ <span class="data_tit">创建人:</span>
|
|
|
+ <span>{{receiptMsg.createName}}</span>
|
|
|
+ </div>
|
|
|
+ <div class="danjuMsg_data">
|
|
|
+ <span class="data_tit">单据状态:</span>
|
|
|
+ <span>{{receiptMsg.recStage}}</span>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -55,22 +63,39 @@
|
|
|
</div>
|
|
|
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
|
|
<el-tab-pane label="考评指标项内容" name="first">
|
|
|
- <el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)" style="width: 100%">
|
|
|
- <!-- <el-table-column type="selection" label="操作" align="center"></el-table-column> -->
|
|
|
- <el-table-column type="index" label="序号" width="80" />
|
|
|
- <el-table-column label="部门名称" prop="deptName" width="300" />
|
|
|
- <el-table-column label="指标名称" prop="indicatorName" />
|
|
|
- <el-table-column label="指标项名称" prop="indicatorItemName" />
|
|
|
- <el-table-column label="值">
|
|
|
+ <el-table :data="quantifiedList.slice((pageLeft.currentPage-1)*pageLeft.pagesize, pageLeft.currentPage*pageLeft.pagesize)"
|
|
|
+ style="width: 100%" @select="rowClick" @select-all="rowClick">
|
|
|
+ <el-table-column label="序号" type="index" width="80" />
|
|
|
+ <el-table-column label="部门名称" prop="deptName" width="260">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-select v-model="scope.row.deptName" placeholder="请选择所属部门" v-if="scope.row.showInput">
|
|
|
+ <el-option
|
|
|
+ v-for="item in departData"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.keyName"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <span v-else>{{scope.row.deptName}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="排序" width="100" prop="serialNumber" />
|
|
|
+ <el-table-column label="指标名称" prop="targetName" />
|
|
|
+ <el-table-column label="目标值" prop="targetValue" />
|
|
|
+ <el-table-column label="基础分" width="150" prop="baseScore" />
|
|
|
+ <el-table-column label="完成情况" width="300">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-input v-model="scope.row.completionStatus"
|
|
|
+ type="textarea" :rows="2" placeholder="请输入完成情况" :disabled="!scope.row.updateMark"></el-input>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="评价标准" prop="evaluationCriteria" />
|
|
|
+ <el-table-column label="自评得分" width="150">
|
|
|
<template #default="scope">
|
|
|
- <el-input v-model="scope.row.targetValue"
|
|
|
- type="textarea" :rows="1" placeholder="请输入值" :disabled="!scope.row.updateMark"></el-input>
|
|
|
- <!-- <el-input-number v-model="scope.row.targetValue"
|
|
|
- :precision="2" :step="0.1" :min="0" /> -->
|
|
|
- <!-- :disabled="!scope.row.updateMark" -->
|
|
|
+ <el-input-number v-model="scope.row.evaluationScore" :precision="2" :step="0.1" :min="0" />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="审核状态" width="260" >
|
|
|
+ <el-table-column label="审核状态" width="200" >
|
|
|
<template #default="scope">
|
|
|
<!-- :disabled="!scope.row.updateMark" -->
|
|
|
<el-select v-model="scope.row.auditStatus" :disabled="!scope.row.updateMark" placeholder="请选择审核状态">
|
|
@@ -107,7 +132,7 @@
|
|
|
|
|
|
<script>
|
|
|
import importDailog from '../importPage/importDailog.vue'
|
|
|
-import {apiGetevaluationdeptassessmentdetails,apiGetevaluationdeptplanUpdate} from '../../api/api'
|
|
|
+import {apiGetevaluationdeptplanDetail,apiGetevaluationdeptplanUpdate, apiPostIsdoAction} from '../../api/api'
|
|
|
import ExcelJS from 'exceljs'
|
|
|
import fileSave from 'file-saver'
|
|
|
import addIcon from '../../assets/btnIcon/add.png'
|
|
@@ -144,8 +169,6 @@ export default {
|
|
|
importIcon: importIcon,
|
|
|
rowMsg: {},
|
|
|
orgruleData: [],
|
|
|
- indicatorTypeData: [],
|
|
|
- stageData: [],
|
|
|
indicItemoptions: [],
|
|
|
sectionNameArr: [],
|
|
|
deptNameArr: [],
|
|
@@ -160,6 +183,7 @@ export default {
|
|
|
currentPage: 1,
|
|
|
total: 0
|
|
|
},
|
|
|
+ departData: []
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -179,23 +203,29 @@ export default {
|
|
|
]
|
|
|
},
|
|
|
methods: {
|
|
|
- init(row) {
|
|
|
+ init(row, deptData) {
|
|
|
this.dialogVisible = true
|
|
|
this.activeName = 'first'
|
|
|
this.receiptMsg = {
|
|
|
code: row.responsibilityCode,
|
|
|
des: row.des,
|
|
|
- stage: row.assessmentStage,
|
|
|
+ stage: row.stage,
|
|
|
+ createName: row.createName,
|
|
|
+ createDate: row.createTime,
|
|
|
type: row.checkCycle === 'YDKP'?'月度考评':row.checkCycle === 'JDKP'?'季度考评':'年度考评',
|
|
|
year: row.appraisalYear,
|
|
|
recStage: '有效'
|
|
|
}
|
|
|
this.getDetails(row.id)
|
|
|
this.rowMsg = row
|
|
|
+
|
|
|
},
|
|
|
handleClick() {
|
|
|
this.changeDateSelect = []
|
|
|
},
|
|
|
+ rowClick(selection, row) {
|
|
|
+ this.changeDateSelect = selection
|
|
|
+ },
|
|
|
handleCurrentChangeLeft(val) {
|
|
|
this.pageLeft.currentPage = val
|
|
|
},
|
|
@@ -206,7 +236,7 @@ export default {
|
|
|
getDetails(id) {
|
|
|
let that = this
|
|
|
that.quantifiedList = []
|
|
|
- apiGetevaluationdeptassessmentdetails(id).then(datas =>{
|
|
|
+ apiGetevaluationdeptplanDetail(id).then(datas =>{
|
|
|
if (datas && datas.data) {
|
|
|
that.quantifiedList = datas.data
|
|
|
that.pageLeft.total = datas.data.length
|
|
@@ -219,8 +249,14 @@ export default {
|
|
|
that.quantifiedList.forEach(item =>{
|
|
|
let obj = {
|
|
|
id: item.id,
|
|
|
+ targetName: item.targetName,
|
|
|
targetValue: item.targetValue,
|
|
|
- auditStatus: item.auditStatus
|
|
|
+ baseScore: item.baseScore.toString(),
|
|
|
+ evaluationCriteria: item.evaluationCriteria,
|
|
|
+ auditStatus: item.auditStatus,
|
|
|
+ serialNumber: item.serialNumber,
|
|
|
+ completionStatus: item.completionStatus,
|
|
|
+ evaluationScore: item.evaluationScore
|
|
|
}
|
|
|
params.push(obj)
|
|
|
})
|
|
@@ -241,10 +277,55 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ examineAndApprove(type) {
|
|
|
+ let that = this
|
|
|
+ let actionCS = ''
|
|
|
+ if (type === 'agree') {
|
|
|
+ if (that.rowMsg.taskType === 'SIGN') {
|
|
|
+ actionCS = 'signAgree'
|
|
|
+ } else if (that.rowMsg.taskType === 'NORMAL') {
|
|
|
+ actionCS = 'agree'
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (that.rowMsg.taskType === 'SIGN') {
|
|
|
+ actionCS = 'signReject'
|
|
|
+ } else if (that.rowMsg.taskType === 'NORMAL') {
|
|
|
+ actionCS = 'reject'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let params = {
|
|
|
+ taskId: that.rowMsg.id, //任务ID
|
|
|
+ nodeId: that.rowMsg.nodeId, //节点ID
|
|
|
+ action: actionCS, //固定值
|
|
|
+ instanceId: that.rowMsg.instId, //流程实例ID
|
|
|
+ opinion: that.descMsg, //审批意见
|
|
|
+ iamCode: window.localStorage.getItem('code'), //认证后code值
|
|
|
+ taskName: that.rowMsg.name,
|
|
|
+ defKey: that.instanceChild.defKey,
|
|
|
+ bizKey: that.instanceChild.bizKey
|
|
|
+ }
|
|
|
+ apiPostIsdoAction(params).then(datas =>{
|
|
|
+ if (datas && datas.data) {
|
|
|
+ if (datas.data.isOk) {
|
|
|
+ that.$message({
|
|
|
+ message: datas.data.data,
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ that.dialogVisible = false
|
|
|
+ that.$emit('approveMsg', datas.data.isOk)
|
|
|
+ } else {
|
|
|
+ that.$message({
|
|
|
+ message: datas.data.msg,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
handleImport() {
|
|
|
- this.$refs.importPage.upload.title = "考评目标信息导入"
|
|
|
+ this.$refs.importPage.upload.title = "本部部门业绩指标计划信息导入"
|
|
|
this.$refs.importPage.upload.open = true
|
|
|
- this.$refs.importPage.upload.url = '/responsibility-indicator-info/import'
|
|
|
+ this.$refs.importPage.upload.url = '/evaluation-dept-plan/import'
|
|
|
},
|
|
|
successImport(val) {
|
|
|
this.getDetails(this.rowMsg.id)
|
|
@@ -257,25 +338,23 @@ export default {
|
|
|
let colums = []
|
|
|
colums = [
|
|
|
{ header: 'ID', key: 'id', width: 26 },
|
|
|
- { header: '单位名称', key: 'organizationShortName', width: 26 },
|
|
|
- { header: '指标分类', key: 'typeName', width: 18 },
|
|
|
- { header: '业务阶段', key: 'stageName', width: 18 },
|
|
|
- { header: '业务属性', key: 'sectionName', width: 18 },
|
|
|
- { header: '指标名称', key: 'childName', width: 18 },
|
|
|
- { header: '填报部门', key: 'deptName', width: 26 },
|
|
|
+ { header: '业务ID', key: 'businessPlanId', width: 26 },
|
|
|
+ { header: '部门ID', key: 'deptId', width: 26 },
|
|
|
+ { header: '部门名称', key: 'deptName', width: 26 },
|
|
|
+ { header: '部门编码', key: 'deptCode', width: 26 },
|
|
|
+ { header: '排序', key: 'serialNumber', width: 26 },
|
|
|
+ { header: '指标名称', key: 'targetName', width: 18 },
|
|
|
+ { header: '目标值', key: 'targetValue', width: 18 },
|
|
|
+ { header: '基础分', key: 'baseScore', width: 18 },
|
|
|
+ { header: '完成情况', key: 'completionStatus', width: 18 },
|
|
|
+ { header: '评价标准', key: 'evaluationCriteria', width: 18 },
|
|
|
+ { header: '自评得分', key: 'evaluationScore', width: 18 }
|
|
|
]
|
|
|
- if (this.activeName === 'first') {
|
|
|
- colums.push(
|
|
|
- { header: '目标值', key: 'quantifiedValue', width: 18 },
|
|
|
- { header: '单位', key: 'unit', width: 18 },
|
|
|
- { header: '审核状态', key: 'state', width: 18 }
|
|
|
- )
|
|
|
- this.quantifiedList.forEach(item =>{
|
|
|
- if (item.updateMark) {
|
|
|
- data.push(item)
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
+ this.quantifiedList.forEach(item =>{
|
|
|
+ if (item.updateMark) {
|
|
|
+ data.push(item)
|
|
|
+ }
|
|
|
+ })
|
|
|
worksheet.columns = colums
|
|
|
worksheet.getRow(1).font = {
|
|
|
size: 12,
|
|
@@ -286,7 +365,7 @@ export default {
|
|
|
workbook.xlsx.writeBuffer().then(buffer => {
|
|
|
//这里为type
|
|
|
const blob = new Blob([buffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' })
|
|
|
- fileSave(blob, `数据导出.xlsx`)
|
|
|
+ fileSave(blob, `本部部门业绩指标考核数据导出.xlsx`)
|
|
|
})
|
|
|
},
|
|
|
}
|
|
@@ -294,7 +373,7 @@ export default {
|
|
|
</script>
|
|
|
|
|
|
<style lang="less">
|
|
|
-.deptbusinessFrom{
|
|
|
+.deptstartFrom{
|
|
|
.el-overlay{
|
|
|
.el-dialog{
|
|
|
// margin-top: 7vh;
|