|
@@ -5,63 +5,77 @@
|
|
<span style="font-weight:bold">绩效考核表</span>
|
|
<span style="font-weight:bold">绩效考核表</span>
|
|
<div style="float: right; padding: 3px 0" type="text">
|
|
<div style="float: right; padding: 3px 0" type="text">
|
|
<el-button size="mini" plain @click="btnBack">返回</el-button>
|
|
<el-button size="mini" plain @click="btnBack">返回</el-button>
|
|
- <el-button size="mini" plain @click="btnSubmit">提交</el-button>
|
|
|
|
- <el-button size="mini" plain @click="btnCopyItem">复制指标</el-button>
|
|
|
|
- <el-button size="mini" plain @click="btnLog">指标修改记录</el-button>
|
|
|
|
- <el-button size="mini" plain @click="btnPreviou">上一个</el-button>
|
|
|
|
- <el-button size="mini" plain @click="btnNext">下一个</el-button>
|
|
|
|
|
|
+ <el-button size="mini" plain @click="btnSubmit" v-if="this.$store.state.user.name == form.staff && (form.status == '0' || form.status == '3')">提交</el-button>
|
|
|
|
+ <el-button size="mini" plain @click="btnCopyItem" v-if="this.$store.state.user.name == form.staff && form.status == '0'">复制指标</el-button>
|
|
|
|
+ <!-- <el-button size="mini" plain @click="btnLog">指标修改记录</el-button> -->
|
|
|
|
+ <el-button size="mini" plain @click="btnApproveLog">指标审批记录</el-button>
|
|
|
|
+ <el-button size="mini" plain @click="btnPreviou" v-if="ids">上一个</el-button>
|
|
|
|
+ <el-button size="mini" plain @click="btnNext" v-if="ids">下一个</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div v-loading="loading">
|
|
<div v-loading="loading">
|
|
- <el-descriptions :column="4">
|
|
|
|
|
|
+ <el-descriptions :column="6 ">
|
|
<el-descriptions-item label="员工编号">{{form.staff}}</el-descriptions-item>
|
|
<el-descriptions-item label="员工编号">{{form.staff}}</el-descriptions-item>
|
|
<el-descriptions-item label="员工姓名">{{form.staffName}}</el-descriptions-item>
|
|
<el-descriptions-item label="员工姓名">{{form.staffName}}</el-descriptions-item>
|
|
<el-descriptions-item label="入职日期">{{form.dateJoin}}</el-descriptions-item>
|
|
<el-descriptions-item label="入职日期">{{form.dateJoin}}</el-descriptions-item>
|
|
<el-descriptions-item label="转正日期">{{form.probationComplete}}</el-descriptions-item>
|
|
<el-descriptions-item label="转正日期">{{form.probationComplete}}</el-descriptions-item>
|
|
- <el-descriptions-item label="一级部门">{{form.year}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="二级部门">{{form.startTime}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="三级部门">{{form.deadlineTime}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="职位">{{form.deadlineTime}}</el-descriptions-item>
|
|
|
|
- <el-descriptions-item label="评估周期">{{form.year}}</el-descriptions-item>
|
|
|
|
|
|
+ <el-descriptions-item label="一级部门">{{form.oneDeptName}}</el-descriptions-item>
|
|
|
|
+ <el-descriptions-item label="二级部门">{{form.twoDeptName}}</el-descriptions-item>
|
|
|
|
+ <el-descriptions-item label="三级部门">{{form.threeDeptName}}</el-descriptions-item>
|
|
|
|
+ <el-descriptions-item label="职位">{{form.jobName}}</el-descriptions-item>
|
|
|
|
+ <el-descriptions-item label="评估周期">{{form.name}}</el-descriptions-item>
|
|
<el-descriptions-item label="评估人编号">{{form.startTime}}</el-descriptions-item>
|
|
<el-descriptions-item label="评估人编号">{{form.startTime}}</el-descriptions-item>
|
|
<el-descriptions-item label="评估人姓名">{{form.deadlineTime}}</el-descriptions-item>
|
|
<el-descriptions-item label="评估人姓名">{{form.deadlineTime}}</el-descriptions-item>
|
|
</el-descriptions>
|
|
</el-descriptions>
|
|
- <el-descriptions :column="4">
|
|
|
|
- <el-descriptions-item label="个人总结">{{form.deadlineTime}}</el-descriptions-item>
|
|
|
|
|
|
+ <el-descriptions v-if="form.status > 3">
|
|
|
|
+ <el-descriptions-item label="个人总结">{{form.summary}}</el-descriptions-item>
|
|
</el-descriptions>
|
|
</el-descriptions>
|
|
- <el-descriptions :column="4">
|
|
|
|
- <el-descriptions-item label="评语">{{form.year}}</el-descriptions-item>
|
|
|
|
|
|
+ <div v-if="this.$store.state.user.name == form.staff && form.status == '3'">
|
|
|
|
+ 个人总结<el-input type="textarea" v-model="form.summary"></el-input>
|
|
|
|
+ </div>
|
|
|
|
+ <el-descriptions v-if="form.status > 4">
|
|
|
|
+ <el-descriptions-item label="评语">{{form.comment}}</el-descriptions-item>
|
|
</el-descriptions>
|
|
</el-descriptions>
|
|
<div style="float:right">
|
|
<div style="float:right">
|
|
- <el-button type="primary" size="mini" @click="btnAddRow">增加指标</el-button>
|
|
|
|
|
|
+ <el-button type="primary" size="mini" @click="btnAddRow" v-if="this.$store.state.user.name == form.staff && form.status == '0'">增加指标</el-button>
|
|
<el-button size="mini" @click="btnUnfold">{{isUnfold == true ? "收起" : "展开"}}</el-button>
|
|
<el-button size="mini" @click="btnUnfold">{{isUnfold == true ? "收起" : "展开"}}</el-button>
|
|
</div>
|
|
</div>
|
|
<el-table size="mini" :data="form.performanceItem" show-summary :summary-method="getSummaries">
|
|
<el-table size="mini" :data="form.performanceItem" show-summary :summary-method="getSummaries">
|
|
- <el-table-column label="评估方面" align="center" prop="aspect">
|
|
|
|
|
|
+ <el-table-column width="100" :show-overflow-tooltip="!isUnfold" label="评估方面" align="center" prop="aspect">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
<dict-tag :options="dict.type.ehr_pm_aspect" :value="scope.row.aspect"/>
|
|
<dict-tag :options="dict.type.ehr_pm_aspect" :value="scope.row.aspect"/>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column :show-overflow-tooltip="!isUnfold" label="评估指标" align="center" prop="target" />
|
|
|
|
|
|
+ <el-table-column width="100" :show-overflow-tooltip="!isUnfold" label="评估指标" align="center" prop="target" />
|
|
<el-table-column :show-overflow-tooltip="!isUnfold" label="评估说明" align="center" prop="instructions" />
|
|
<el-table-column :show-overflow-tooltip="!isUnfold" label="评估说明" align="center" prop="instructions" />
|
|
- <!-- <el-table-column label="评估指标" align="center" prop="target" />
|
|
|
|
- <el-table-column label="评估说明" align="center" prop="instructions" /> -->
|
|
|
|
- <el-table-column label="角色" align="center" prop="role">
|
|
|
|
|
|
+ <el-table-column width="100" label="角色" align="center" prop="role">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
- <dict-tag :options="dict.type.ehr_pm_role" :value="scope.row.aspect"/>
|
|
|
|
|
|
+ <dict-tag :options="dict.type.ehr_pm_role" :value="scope.row.role"/>
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="权重(%)" align="center" prop="weight" sortable/>
|
|
|
|
|
|
+ <el-table-column width="80" label="权重" align="center" prop="weight"/>
|
|
<el-table-column :show-overflow-tooltip="!isUnfold" label="绩效标准" align="center" prop="standard" />
|
|
<el-table-column :show-overflow-tooltip="!isUnfold" label="绩效标准" align="center" prop="standard" />
|
|
- <!-- <el-table-column label="绩效标准" align="center" prop="standard" /> -->
|
|
|
|
- <el-table-column label="数据来源" align="center" prop="source" />
|
|
|
|
- <el-table-column label="自评分(0-100)" align="center" prop="selfScoring" />
|
|
|
|
- <el-table-column label="自评语" align="center" prop="selfComment" />
|
|
|
|
- <el-table-column label="上级评分(0-100)" align="center" prop="leaderScoring" />
|
|
|
|
- <el-table-column label="上级评语" align="center" prop="leaderComment" />
|
|
|
|
- <el-table-column label="加权得分" align="center" prop="weightedScore" />
|
|
|
|
- <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width">
|
|
|
|
- <template slot-scope="scope">
|
|
|
|
|
|
+ <el-table-column width="100" label="数据来源" align="center" prop="source" />
|
|
|
|
+
|
|
|
|
+ <el-table-column width="80" label="自评分" align="center" prop="selfScoring" v-if="form.status > 3"/>
|
|
|
|
+ <el-table-column :show-overflow-tooltip="!isUnfold" label="自评语" align="center" prop="selfComment" v-if="form.status > 3"/>
|
|
|
|
+ <el-table-column width="80" label="自评分" align="center" prop="selfScoring" v-if="this.$store.state.user.name == form.staff && form.status == '3'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-input size="mini" v-model="scope.row.selfScoring"></el-input>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column :show-overflow-tooltip="!isUnfold" label="自评语" align="center" prop="selfComment" v-if="this.$store.state.user.name == form.staff && form.status == '3'">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <el-input size="mini" type="textarea" v-model="scope.row.selfComment"></el-input>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+
|
|
|
|
+ <el-table-column width="80" label="上级评分" align="center" prop="leaderScoring" v-if="form.status > 4"/>
|
|
|
|
+ <el-table-column :show-overflow-tooltip="!isUnfold" label="上级评语" align="center" prop="leaderComment" v-if="form.status > 4"/>
|
|
|
|
+ <el-table-column width="80" label="加权得分" align="center" prop="weightedScore" v-if="form.status > 4"/>
|
|
|
|
+
|
|
|
|
+ <el-table-column label="操作" fixed="right" align="center" class-name="small-padding fixed-width" v-if="this.$store.state.user.name == form.staff && form.status == '0'">
|
|
|
|
+ <template slot-scope="scope">
|
|
<el-button size="mini" type="text" @click="btnEdit(scope.row)">修改</el-button>
|
|
<el-button size="mini" type="text" @click="btnEdit(scope.row)">修改</el-button>
|
|
<el-button size="mini" type="text" @click="btnDelete(scope.row)">删行</el-button>
|
|
<el-button size="mini" type="text" @click="btnDelete(scope.row)">删行</el-button>
|
|
</template>
|
|
</template>
|
|
@@ -121,8 +135,8 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { getPerformance} from "@/api/business/ehr/pm/performance";
|
|
|
|
-import { getPerformanceItem,addPerformanceItem,updatePerformanceItem,delPerformanceItem} from "@/api/business/ehr/pm/performanceitem";
|
|
|
|
|
|
+import { getPerformance,fillinFinish,selfestimate} from "@/api/business/ehr/pm/performance";
|
|
|
|
+import { getPerformanceItem,addPerformanceItem,updatePerformanceItem,batchUpdatePerformanceItem,delPerformanceItem} from "@/api/business/ehr/pm/performanceitem";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: 'detail',
|
|
name: 'detail',
|
|
@@ -282,8 +296,49 @@ export default {
|
|
},
|
|
},
|
|
//提交
|
|
//提交
|
|
btnSubmit(){
|
|
btnSubmit(){
|
|
- if(this.weightSum != 100){
|
|
|
|
- this.$modal.msgWarning("权重不为100%无法提交!");
|
|
|
|
|
|
+ if(this.form.status == '0'){
|
|
|
|
+ if(this.weightSum != 100){
|
|
|
|
+ this.$modal.msgWarning("权重不为100%无法提交!");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.$confirm('确认提交吗?', {
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ type: 'success'
|
|
|
|
+ }).then(() => {
|
|
|
|
+ fillinFinish(this.form).then(response => {
|
|
|
|
+ this.$modal.msgSuccess("保存成功");
|
|
|
|
+ this.fetchPerformance(this.id);
|
|
|
|
+ });
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ if(this.form.status == '3'){
|
|
|
|
+ let v = false;
|
|
|
|
+ this.form.performanceItem.forEach((item) => {
|
|
|
|
+ if(!item.selfScoring || !item.selfComment){
|
|
|
|
+ v = true;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ if(v){
|
|
|
|
+ this.$modal.msgWarning("请自评后再提交!");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if(!this.form.summary){
|
|
|
|
+ this.$modal.msgWarning("请填写个人总结再提交!");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ this.$confirm('确认提交吗?', {
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ type: 'success'
|
|
|
|
+ }).then(() => {
|
|
|
|
+ selfestimate(this.form).then(response => {
|
|
|
|
+ this.$modal.msgSuccess("保存成功");
|
|
|
|
+ this.fetchPerformance(this.id);
|
|
|
|
+ });
|
|
|
|
+ }).catch(() => {
|
|
|
|
+ });
|
|
}
|
|
}
|
|
},
|
|
},
|
|
//复制指标
|
|
//复制指标
|
|
@@ -294,6 +349,10 @@ export default {
|
|
btnLog(){
|
|
btnLog(){
|
|
|
|
|
|
},
|
|
},
|
|
|
|
+ //指标审批记录
|
|
|
|
+ btnApproveLog(){
|
|
|
|
+
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|