Browse Source

EHR-绩效:双向评估优化;

001295 1 year ago
parent
commit
91a4eddebc

+ 16 - 3
src/views/business/ehr/pm/awaitMarkPm/detail.vue

@@ -3,6 +3,7 @@
     <el-card v-if="flow.staff == this.$store.state.user.name">
       <div slot="header" class="clearfix">
         <span style="font-weight:bold">绩效评分</span>-{{form.name}}
+        <dict-tag :options="dict.type.ehr_pm_status" :value="form.status" style="display:inline-block;margin-right:5px;" />
         <el-tag v-if="form.isTwoEvaluation">双向评估</el-tag>
         <div style="float: right; padding: 3px 0" type="text">
           <el-button size="mini" plain @click="btnBack">返回</el-button>
@@ -33,9 +34,12 @@
           <el-descriptions v-if="form.status > 3">
             <el-descriptions-item label="个人总结">{{form.summary}}</el-descriptions-item>
           </el-descriptions>
-          <el-descriptions v-if="form.status > 4">
-            <el-descriptions-item label="总评语">{{form.comment}}</el-descriptions-item>
-          </el-descriptions>
+          <div style="  display: flex;align-items: flex-start;justify-content: flex-start;margin-top: -20px;" v-if="form.status > 4">
+            <p>总评语:</p>
+            <div style="margin-left: 18px;font-size: 15px;">
+              <p v-for="(item,index) in comment" :key="index">{{item[0]}}:{{item[1]}}</p>
+            </div>
+          </div>
           <div v-if="flow.status == 0">
             <el-form-item label="总评语" prop="remark">
               <el-input type="textarea" v-model="form.remark"></el-input>
@@ -148,6 +152,15 @@ export default {
     //自评分最大值
     saMarkMax: function () {
       return this.form.staffDivide == 'C1' ? 150 : 100
+    },
+    comment() {
+      if(this.form.comment){
+        let obj = JSON.parse(this.form.comment);
+        let arr = Object.entries(obj)
+        return arr;
+      }else{
+        return [];
+      }
     }
 	},
   async created() {

+ 1 - 0
src/views/business/ehr/pm/awaitVerifyPm/detail.vue

@@ -3,6 +3,7 @@
     <el-card v-if="flow.staff == this.$store.state.user.name">
       <div slot="header" class="clearfix">
         <span style="font-weight:bold">绩效确认</span>
+        <dict-tag :options="dict.type.ehr_pm_status" :value="form.status" style="display:inline-block;margin-right:5px;" />
         <el-tag v-if="form.isTwoEvaluation">双向评估</el-tag>
         <div style="float: right; padding: 3px 0" type="text">
           <el-button size="mini" plain @click="btnBack">返回</el-button>

+ 17 - 8
src/views/business/ehr/pm/finishMarkPm/detail.vue

@@ -3,6 +3,7 @@
     <el-card>
       <div slot="header" class="clearfix">
         <span style="font-weight:bold">绩效考核表</span>-{{form.name}}
+        <dict-tag :options="dict.type.ehr_pm_status" :value="form.status" style="display:inline-block;margin-right:5px;" />
         <el-tag v-if="form.isTwoEvaluation">双向评估</el-tag>
         <div style="float: right; padding: 3px 0; display:flex;justify-content:space-between" type="text">
           <el-button size="mini" plain @click="btnBack">返回</el-button>
@@ -37,9 +38,13 @@
           <el-descriptions>
             <el-descriptions-item label="个人总结">{{form.summary}}</el-descriptions-item>
           </el-descriptions>
-          <el-descriptions>
-            <el-descriptions-item label="总评语">{{form.comment}}</el-descriptions-item>
-          </el-descriptions>
+          <div style="  display: flex;align-items: flex-start;justify-content: flex-start;margin-top: -20px;">
+            <p>总评语:</p>
+            <div style="margin-left: 18px;font-size: 15px;">
+              <p v-for="(item,index) in comment" :key="index">{{item[0]}}:{{item[1]}}</p>
+            </div>
+          </div>
+          
           <el-table size="mini"  :data="form.performanceItem" show-summary :summary-method="getSummaries" border>
             <el-table-column type="index" width="50" label="序号"/>
             <el-table-column width="100" :show-overflow-tooltip="!isUnfold" label="评估方面" align="center" prop="aspect">
@@ -105,11 +110,15 @@ export default {
     }
   },
   computed: {
-    //自评分最大值
-    saMarkMax: function () {
-      //业务组最高自评分为150;非业务组最高自评分为100;
-      return this.form.staffDivide == 'C1' ? 150 : 100
-    },
+    comment() {
+      if(this.form.comment){
+        let obj = JSON.parse(this.form.comment);
+        let arr = Object.entries(obj)
+        return arr;
+      }else{
+        return [];
+      }
+    }
 	},
   async created() {
     this.id = this.rowId;

+ 1 - 0
src/views/business/ehr/pm/finishVerifyPm/detail.vue

@@ -3,6 +3,7 @@
     <el-card>
       <div slot="header" class="clearfix">
         <span style="font-weight:bold">绩效考核表</span>-{{form.name}}
+        <dict-tag :options="dict.type.ehr_pm_status" :value="form.status" style="display:inline-block;margin-right:5px;" />
         <el-tag v-if="form.isTwoEvaluation">双向评估</el-tag>
         <div style="float: right; padding: 3px 0; display:flex;justify-content:space-between" type="text">
           <el-button size="mini" plain @click="btnBack">返回</el-button>

+ 23 - 9
src/views/business/ehr/pm/myPm/detail.vue

@@ -3,6 +3,7 @@
     <el-card>
       <div slot="header" class="clearfix">
         <span style="font-weight:bold">绩效考核表</span>-{{form.name}}
+        <dict-tag :options="dict.type.ehr_pm_status" :value="form.status" style="display:inline-block;margin-right:5px;" />
         <el-tag v-if="form.isTwoEvaluation">双向评估</el-tag>
         <div style="float: right; padding: 3px 0; display:flex;justify-content:space-between" type="text">
           <el-button size="mini" plain @click="btnBack">返回</el-button>
@@ -43,9 +44,13 @@
               <el-input type="textarea" placeholder="总结本月工作的亮点和暗点" v-model="form.summary"></el-input>
             </el-form-item>
           </div>
-          <el-descriptions v-if="form.status > 4">
-            <el-descriptions-item label="总评语">{{comment}}</el-descriptions-item>
-          </el-descriptions>
+          <div style="  display: flex;align-items: flex-start;justify-content: flex-start;margin-top: -20px;" v-if="form.status > 4">
+            <p>总评语:</p>
+            <div style="margin-left: 18px;font-size: 15px;">
+              <p v-for="(item,index) in comment" :key="index">{{item[0]}}:{{item[1]}}</p>
+            </div>
+          </div>
+
           <div style="float: right; padding: 3px 0; display:flex;justify-content:space-between">
             <el-button type="primary" size="mini" @click="btnAddRow" v-if="this.$store.state.user.name == form.staff && form.status == '0' && form.performanceItem.length <= 4">增加指标</el-button>
             <CopyItemDialog style="margin: 0 10px" @setItems="setItems" v-if="this.$store.state.user.name == form.staff && form.status == '0'" :id="rowId"></CopyItemDialog>
@@ -81,14 +86,16 @@
             <el-table-column width="80" label="自评分" align="center" prop="selfScoring" :render-header="addRedStar" v-if="this.$store.state.user.name == form.staff && form.status == '3'">
               <template slot-scope="scope">
                 <el-form-item :prop="'performanceItem.'+scope.$index+'.selfScoring'" :rules="{required: true,message: ' ',trigger: 'blur'}">
-                  <el-input  v-model="scope.row.selfScoring" v-only-number="{max:saMarkMax,min:0,precision:1}" size="mini"/>
+                  <el-input  v-model="scope.row.selfScoring" v-only-number="{max:saMarkMax,min:0,precision:1}" size="mini" v-if="!form.scored.includes(scope.row.evaluator)"/>
+                  <div v-else>{{scope.row.selfScoring}}</div>
                 </el-form-item>
               </template>
             </el-table-column>
             <el-table-column :show-overflow-tooltip="!isUnfold" label="自评语" align="center" prop="selfComment" :render-header="addRedStar" v-if="this.$store.state.user.name == form.staff && form.status == '3'">
               <template slot-scope="scope">
                 <el-form-item :prop="'performanceItem.'+scope.$index+'.selfComment'" :rules="{required: true,message: ' ',trigger: 'blur'}">
-                  <el-input size="mini" type="textarea" :rows="3" v-model="scope.row.selfComment"></el-input>
+                  <el-input size="mini" type="textarea" :rows="3" v-model="scope.row.selfComment" v-if="!form.scored.includes(scope.row.evaluator)"/>
+                  <div v-else>{{scope.row.selfComment}}</div>
                 </el-form-item>
               </template>
             </el-table-column>
@@ -228,14 +235,21 @@ export default {
       return this.form.staffDivide == 'C1' ? 150 : 100
     },
     comment() {
-      let str = this.form.comment;
-      //数据处理
-      return str;
+      if(this.form.comment){
+        let obj = JSON.parse(this.form.comment);
+        let arr = Object.entries(obj)
+        return arr;
+      }else{
+        return [];
+      }
     }
 	},
   async created() {
     this.id = this.rowId;
-    this.fetchPerformance(this.id);
+    await this.fetchPerformance(this.id);
+    if(this.form.isTwoEvaluation){
+      this.dict.type.ehr_pm_aspect = this.dict.type.ehr_pm_aspect.filter(o => o.value == '5' || o.value == '6');
+    }
     if(this.pageStu == 'add'){
     }
     if(this.pageStu == 'edit' || this.pageStu == 'see') {

+ 19 - 3
src/views/business/ehr/pm/performance/detail.vue

@@ -3,6 +3,7 @@
     <el-card>
       <div slot="header" class="clearfix">
         <span style="font-weight:bold">绩效考核表</span>-{{form.name}}
+        <dict-tag :options="dict.type.ehr_pm_status" :value="form.status" style="display:inline-block;margin-right:5px;" />
         <el-tag v-if="form.isTwoEvaluation">双向评估</el-tag>
         <div style="float: right; padding: 3px 0; display:flex;justify-content:space-between" type="text">
           <el-button size="mini" plain @click="btnBack">返回</el-button>
@@ -39,9 +40,13 @@
           <el-descriptions v-if="form.status > 3">
             <el-descriptions-item label="个人总结">{{form.summary}}</el-descriptions-item>
           </el-descriptions>
-          <el-descriptions v-if="form.status > 4">
-            <el-descriptions-item label="评语">{{form.comment}}</el-descriptions-item>
-          </el-descriptions>
+          <div style="  display: flex;align-items: flex-start;justify-content: flex-start;margin-top: -20px;" v-if="form.status > 4">
+            <p>总评语:</p>
+            <div style="margin-left: 18px;font-size: 15px;">
+              <p v-for="(item,index) in comment" :key="index">{{item[0]}}:{{item[1]}}</p>
+            </div>
+          </div>
+          
           <el-table size="mini"  :data="form.performanceItem" show-summary :summary-method="getSummaries" border>
             <el-table-column type="index" width="50" label="序号"/>
             <el-table-column width="100" :show-overflow-tooltip="!isUnfold" label="评估方面" align="center" prop="aspect">
@@ -105,6 +110,17 @@ export default {
       weightSum: 0,
     }
   },
+  computed: {
+    comment() {
+      if(this.form.comment){
+        let obj = JSON.parse(this.form.comment);
+        let arr = Object.entries(obj)
+        return arr;
+      }else{
+        return [];
+      }
+    }
+	},
   async created() {
     this.id = this.rowId;
     this.fetchPerformance(this.id);