From c67f52b0060a3d3339a0c62850e919c152d3a669 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 21 六月 2024 10:00:31 +0800
Subject: [PATCH] 完成人员考评接口对接

---
 src/components/view/b3-personnel-evaluation.vue                          |   67 +++++++--
 src/components/do/b3-personnel-evaluation/leader-rate.vue                |   66 ++++++---
 src/main.js                                                              |    4 
 src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue |  117 ++++++++++------
 src/components/do/b3-work-time-management/work-time-statistics.vue       |   10 
 src/components/do/b3-personnel-evaluation/evaluation.vue                 |   24 ++
 src/components/do/b3-personnel-evaluation/supervisor-rate.vue            |   69 ++++++---
 src/assets/api/controller.js                                             |   14 ++
 8 files changed, 252 insertions(+), 119 deletions(-)

diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 60cde49..a50cbaf 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -31,6 +31,7 @@
     auxiliaryCorrectionHours,
     insBushing,
     auxiliaryOriginalHours,
+    evaluate,
   }
 }
 
@@ -351,3 +352,16 @@
   selectAuxiliaryOriginalHours: "/auxiliaryOriginalHours/selectAuxiliaryOriginalHours", //鏌ヨ鍘熷宸ユ椂
   exportOriginalHours: "/auxiliaryOriginalHours/exportOriginalHours", //瀵煎嚭鍘熷宸ユ椂
 }
+
+const evaluate = {
+  page: "/evaluate/page", //鏌ヨ鑰冭瘎
+  exportEvaluate: "/evaluate/exportEvaluate", //瀵煎嚭鑰冭瘎
+  getEvaluateCompetent: "/evaluateCompetent/getEvaluateCompetent", //鏌ヨ涓荤鎵撳垎
+  writeEvaluateCompetent: "/evaluateCompetent/writeEvaluateCompetent", //濉啓涓荤鎵撳垎
+  getEvaluateLeader: "/evaluateLeader/getEvaluateLeader", //鏌ヨ缁勯暱璇勫垎
+  writeEvaluateLeader: "/evaluateLeader/writeEvaluateLeader", //缁勯暱璇勫垎
+  exportEvaluateCompetent: "/evaluateCompetent/exportEvaluateCompetent", //瀵煎嚭涓荤鎵撳垎
+  exportEvaluateLeader: "/evaluateLeader/exportEvaluateLeader", //瀵煎嚭缁勯暱鎵撳垎
+  getEvaluateGroup: "/evaluateGroup/getEvaluateGroup", //鏌ヨ鍛樺伐浜掕瘎
+  writeEvaluateGroup: "/evaluateGroup/writeEvaluateGroup", //濉啓鍛樺伐浜掕瘎
+}
diff --git a/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue b/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue
index 83a64bc..ae836ea 100644
--- a/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue
+++ b/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue
@@ -1,9 +1,9 @@
 <template>
   <div class="table-item">
-    <p style="text-align: center;margin-bottom: 10px;">{{ laboratory.label }} {{ Number(month.split('-')[1]) }} 鏈堜唤鍛樺伐浜掕瘎鎵撳垎琛�</p>
+    <p style="text-align: center;margin-bottom: 10px;">{{ entity.departLims }} {{ Number(entity.month.split('-')[1]) }} 鏈堜唤鍛樺伐浜掕瘎鎵撳垎琛�</p>
     <el-table
     :data="tableData"
-    style="width: 100%" height="calc(100% - 20px)">
+    style="width: 100%" height="calc(100% - 20px)" v-loading="loading">
       <el-table-column
         type="index"
         label="搴忓彿"
@@ -15,21 +15,21 @@
         <el-table-column label="鍙婃椂瀹屾垚">
           <el-table-column label="20" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="20" v-model="scope.row.radio0">{{ '' }}</el-radio>
+              <el-radio :label="20" v-model="scope.row.seasonable" @input="m=>handleChange(m,scope.row,'seasonable')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="鍌績瀹屾垚">
           <el-table-column label="15" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="15" v-model="scope.row.radio0">{{ '' }}</el-radio>
+              <el-radio :label="15" v-model="scope.row.seasonable" @input="m=>handleChange(m,scope.row,'seasonable')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="寤舵湡杈冮暱">
           <el-table-column label="10" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="10" v-model="scope.row.radio0">{{ '' }}</el-radio>
+              <el-radio :label="10" v-model="scope.row.seasonable" @input="m=>handleChange(m,scope.row,'seasonable')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
@@ -38,21 +38,21 @@
         <el-table-column label="鍏ㄦ湀鏃犻敊">
           <el-table-column label="20" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="20" v-model="scope.row.radio1">{{ '' }}</el-radio>
+              <el-radio :label="20" v-model="scope.row.exact" @input="m=>handleChange(m,scope.row,'exact')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="鍋舵湁澶辫">
           <el-table-column label="15" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="15" v-model="scope.row.radio1">{{ '' }}</el-radio>
+              <el-radio :label="15" v-model="scope.row.exact" @input="m=>handleChange(m,scope.row,'exact')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="棰戠箒閿欒">
           <el-table-column label="10" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="10" v-model="scope.row.radio1">{{ '' }}</el-radio>
+              <el-radio :label="10" v-model="scope.row.exact" @input="m=>handleChange(m,scope.row,'exact')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
@@ -61,105 +61,105 @@
         <el-table-column label="鎿嶄綔鐔熺粌">
           <el-table-column label="20" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="20" v-model="scope.row.radio2">{{ '' }}</el-radio>
+              <el-radio :label="20" v-model="scope.row.skill" @input="m=>handleChange(m,scope.row,'skill')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="鎿嶄綔鍩烘湰鐔熺粌">
           <el-table-column label="15" width="120px">
             <template slot-scope="scope">
-              <el-radio :label="15" v-model="scope.row.radio2">{{ '' }}</el-radio>
+              <el-radio :label="15" v-model="scope.row.skill" @input="m=>handleChange(m,scope.row,'skill')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="闇�瑕佹寚瀵�">
           <el-table-column label="12" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="12" v-model="scope.row.radio2">{{ '' }}</el-radio>
+              <el-radio :label="12" v-model="scope.row.skill" @input="m=>handleChange(m,scope.row,'skill')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
       </el-table-column>
       <el-table-column label="璁惧缁存姢">
         <el-table-column label="鑷缁存姢">
-          <el-table-column label="10" width="90px"">
+          <el-table-column label="10" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="10" v-model="scope.row.radio3">{{ '' }}</el-radio>
+              <el-radio :label="10" v-model="scope.row.preserve" @input="m=>handleChange(m,scope.row,'preserve')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="鑳界淮鎶�">
-          <el-table-column label="5" width="80px"">
+          <el-table-column label="5" width="80px">
             <template slot-scope="scope">
-              <el-radio :label="5" v-model="scope.row.radio3">{{ '' }}</el-radio>
+              <el-radio :label="5" v-model="scope.row.preserve" @input="m=>handleChange(m,scope.row,'preserve')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="鏃犳剰璇�">
-          <el-table-column label="2" width="80px"">
+          <el-table-column label="2" width="80px">
             <template slot-scope="scope">
-              <el-radio :label="2" v-model="scope.row.radio3">{{ '' }}</el-radio>
+              <el-radio :label="2" v-model="scope.row.preserve" @input="m=>handleChange(m,scope.row,'preserve')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
       </el-table-column>
       <el-table-column label="閬电珷瀹堢邯">
         <el-table-column label="鑷閬靛畧" >
-          <el-table-column label="10" width="90px"">
+          <el-table-column label="10" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="10" v-model="scope.row.radio4">{{ '' }}</el-radio>
+              <el-radio :label="10" v-model="scope.row.discipline" @input="m=>handleChange(m,scope.row,'discipline')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="琚姩閬靛畧">
-          <el-table-column label="7" width="90px"">
+          <el-table-column label="7" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="7" v-model="scope.row.radio4">{{ '' }}</el-radio>
+              <el-radio :label="7" v-model="scope.row.discipline" @input="m=>handleChange(m,scope.row,'discipline')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="缁忓父杩濈邯">
-          <el-table-column label="5" width="90px"">
+          <el-table-column label="5" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="5" v-model="scope.row.radio4">{{ '' }}</el-radio>
+              <el-radio :label="5" v-model="scope.row.discipline" @input="m=>handleChange(m,scope.row,'discipline')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
       </el-table-column>
       <el-table-column label="鍥㈢粨鍗忎綔">
         <el-table-column label="鍥㈢粨鍗忎綔">
-          <el-table-column label="10" width="90px"">
+          <el-table-column label="10" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="10" v-model="scope.row.radio5">{{ '' }}</el-radio>
+              <el-radio :label="10" v-model="scope.row.solidarity" @input="m=>handleChange(m,scope.row,'solidarity')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="鍩烘湰铻嶆唇">
-          <el-table-column label="8" width="90px"">
+          <el-table-column label="8" width="90px">
             <template slot-scope="scope">
-              <el-radio :label="8" v-model="scope.row.radio5">{{ '' }}</el-radio>
+              <el-radio :label="8" v-model="scope.row.solidarity" @input="m=>handleChange(m,scope.row,'solidarity')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
       </el-table-column>
       <el-table-column label="5S-3瀹�">
         <el-table-column label="鍖呭共鍖烘暣娲�">
-          <el-table-column label="10" width="110px"">
+          <el-table-column label="10" width="110px">
             <template slot-scope="scope">
-              <el-radio :label="10" v-model="scope.row.radio6">{{ '' }}</el-radio>
+              <el-radio :label="10" v-model="scope.row.tidy" @input="m=>handleChange(m,scope.row,'tidy')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
         <el-table-column label="瀛樺湪涓嶆竻娲佺偣">
-          <el-table-column label="7" width="130px"">
+          <el-table-column label="7" width="130px">
             <template slot-scope="scope">
-              <el-radio :label="7" v-model="scope.row.radio6">{{ '' }}</el-radio>
+              <el-radio :label="7" v-model="scope.row.tidy" @input="m=>handleChange(m,scope.row,'tidy')">{{ '' }}</el-radio>
             </template>
           </el-table-column>
         </el-table-column>
       </el-table-column>
-      <el-table-column label="寰楀垎">
-        <el-table-column label="100" width="70px"">
+      <el-table-column label="寰楀垎" fixed="right">
+        <el-table-column label="100" width="70px" prop="total">
         </el-table-column>
       </el-table-column>
     </el-table>
@@ -169,23 +169,46 @@
 <script>
 export default {
   props:{
-    month:String,
-    laboratory:Object
+    entity:Object,
   },
   data(){
     return{
-      tableData:[
-        {
-          radio0:0,
-          radio1:0,
-          radio2:0,
-          radio3:0,
-          radio4:0,
-          radio5:0,
-          radio6:0,
-        }
-      ],
-      radio:20
+      tableData:[],
+      loading:false,
+    }
+  },
+  created(){
+    this.refreshTable()
+  },
+  methods:{
+    handleChange(value,row,prop){
+      row[prop] = Number(value)
+      this.$axios.post(this.$api.evaluate.writeEvaluateGroup, {
+        ...row
+        },{
+          headers: {
+            'Content-Type': 'application/json'
+          },
+          noQs:true
+        }).then(res => {
+          row.total = res.data
+        })
+    },
+    refreshTable(){
+      this.loading = true
+      this.$axios.post(this.$api.evaluate.getEvaluateGroup, {
+          ...this.$parent.entity,
+        },{
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        }).then(res => {
+          this.loading = false
+          this.tableData = res.data
+        })
+    },
+    refresh(){
+      this.refreshTable()
     }
   }
 }
diff --git a/src/components/do/b3-personnel-evaluation/evaluation.vue b/src/components/do/b3-personnel-evaluation/evaluation.vue
index 5c741d5..24ce248 100644
--- a/src/components/do/b3-personnel-evaluation/evaluation.vue
+++ b/src/components/do/b3-personnel-evaluation/evaluation.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="table-item">
     <ValueTable  ref="ValueTable"
-				:url="$api.deviceScope.selectDeviceParameter" :componentData="componentData" :key="upIndex" />
+				:url="$api.evaluate.page" :componentData="componentData" :key="upIndex" />
   </div>
 </template>
 
@@ -12,14 +12,15 @@
     ValueTable
   },
   props:{
-    month:String,
-    laboratory:Object
+    entity:Object,
   },
   data(){
     return{
       componentData: {
         entity: {
-          deviceName: null,
+          month: this.entity.month,
+          name:this.entity.name,
+          departLims:this.entity.departLims,
           orderBy: {
             field: 'id',
             order: 'desc'
@@ -36,8 +37,21 @@
         requiredAdd: [],
         requiredUp: [],
       },
-      upIndex:0
+      upIndex:0,
     }
+  },
+  methods:{
+    refreshTable(){
+      this.componentData.entity = {
+        ...this.componentData.entity,
+        ...this.$parent.entity
+      }
+      this.$refs['ValueTable'].selectList()
+    },
+    refresh(){
+			this.upIndex++
+      this.refreshTable()
+    },
   }
 }
 </script>
diff --git a/src/components/do/b3-personnel-evaluation/leader-rate.vue b/src/components/do/b3-personnel-evaluation/leader-rate.vue
index 2253352..edef602 100644
--- a/src/components/do/b3-personnel-evaluation/leader-rate.vue
+++ b/src/components/do/b3-personnel-evaluation/leader-rate.vue
@@ -1,9 +1,9 @@
 <template>
   <div class="table-item">
-    <p style="text-align: center;margin-bottom: 10px;">{{ laboratory.label }}  {{ Number(month.split('-')[1]) }} 鏈堜唤缁勯暱鎵撳垎琛�</p>
+    <p style="text-align: center;margin-bottom: 10px;">{{ entity.departLims }}  {{ Number(entity.month.split('-')[1]) }} 鏈堜唤缁勯暱鎵撳垎琛�</p>
     <el-table
     :data="tableData"
-    style="width: 100%" height="calc(100% - 20px)">
+    style="width: 100%" height="calc(100% - 20px)" v-loading="loading">
       <el-table-column
         type="index"
         label="搴忓彿"
@@ -16,7 +16,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num0" @change="handleChange" :min="0" :max="25"></el-input-number>
+            v-model="scope.row.responsibility" @change="m=>handleChange(m,scope.row,'responsibility')" :min="0" :max="25"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -25,7 +25,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num1" @change="handleChange" :min="0" :max="25"></el-input-number>
+            v-model="scope.row.compliance" @change="m=>handleChange(m,scope.row,'compliance')" :min="0" :max="25"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -34,7 +34,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num2" @change="handleChange" :min="0" :max="20"></el-input-number>
+            v-model="scope.row.positive" @change="m=>handleChange(m,scope.row,'positive')" :min="0" :max="20"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -43,7 +43,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num3" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.solidarity" @change="m=>handleChange(m,scope.row,'solidarity')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -52,7 +52,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num4" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.seasonable" @change="m=>handleChange(m,scope.row,'seasonable')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -61,11 +61,11 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num5" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.exact" @change="m=>handleChange(m,scope.row,'exact')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
-      <el-table-column label="寰楀垎">
+      <el-table-column label="寰楀垎" prop="total">
       </el-table-column>
   </el-table>
   </div>
@@ -74,26 +74,48 @@
 <script>
 export default {
   props:{
-    month:String,
-    laboratory:Object
+    entity:Object,
   },
   data () {
     return{
       tableData:[
-        {
-          num0:null,
-          num1:null,
-          num2:null,
-          num3:null,
-          num4:null,
-          num5:null,
-          num6:null,
-        }
-      ]
+        ],
+      loading:false,
     }
   },
+  created(){
+    this.refreshTable()
+  },
   methods:{
-    handleChange(){}
+    handleChange(value,row,prop){
+      row[prop] = Number(value)
+      this.$axios.post(this.$api.evaluate.writeEvaluateLeader, {
+        ...row
+        },{
+          headers: {
+            'Content-Type': 'application/json'
+          },
+          noQs:true
+        }).then(res => {
+          row.total = res.data
+        })
+    },
+    refreshTable(){
+      this.loading = true
+      this.$axios.post(this.$api.evaluate.getEvaluateLeader, {
+        ...this.$parent.entity
+        },{
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        }).then(res => {
+          this.loading = false
+          this.tableData = res.data
+        })
+    },
+    refresh(){
+      this.refreshTable()
+    }
   }
 }
 </script>
diff --git a/src/components/do/b3-personnel-evaluation/supervisor-rate.vue b/src/components/do/b3-personnel-evaluation/supervisor-rate.vue
index dbda8bd..8f36e78 100644
--- a/src/components/do/b3-personnel-evaluation/supervisor-rate.vue
+++ b/src/components/do/b3-personnel-evaluation/supervisor-rate.vue
@@ -1,9 +1,9 @@
 <template>
   <div class="table-item">
-    <p style="text-align: center;margin-bottom: 10px;">{{ laboratory.label }} {{ Number(month.split('-')[1]) }} 鏈堜唤涓荤鎵撳垎琛�</p>
+    <p style="text-align: center;margin-bottom: 10px;">{{ entity.departLims }} {{ Number(entity.month.split('-')[1]) }} 鏈堜唤涓荤鎵撳垎琛�</p>
     <el-table
     :data="tableData"
-    style="width: 100%" height="calc(100% - 20px)">
+    style="width: 100%" height="calc(100% - 20px)" v-loading="loading">
       <el-table-column
         type="index"
         label="搴忓彿"
@@ -16,7 +16,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num0" @change="handleChange" :min="0" :max="20"></el-input-number>
+            v-model="scope.row.skill" @change="m=>handleChange(m,scope.row,'skill')" :min="0" :max="20"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -25,7 +25,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num1" @change="handleChange" :min="0" :max="20"></el-input-number>
+            v-model="scope.row.compliance" @change="m=>handleChange(m,scope.row,'compliance')" :min="0" :max="20"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -34,7 +34,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num2" @change="handleChange" :min="0" :max="20"></el-input-number>
+            v-model="scope.row.positive" @change="m=>handleChange(m,scope.row,'positive')" :min="0" :max="20"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -43,7 +43,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num3" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.tidy" @change="m=>handleChange(m,scope.row,'tidy')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -52,7 +52,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num4" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.discipline" @change="m=>handleChange(m,scope.row,'discipline')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -61,7 +61,7 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num5" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.solidarity" @change="m=>handleChange(m,scope.row,'solidarity')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
@@ -70,11 +70,11 @@
           <template slot-scope="scope">
             <el-input-number
             size="small"
-            v-model="scope.row.num6" @change="handleChange" :min="0" :max="10"></el-input-number>
+            v-model="scope.row.proposal" @change="m=>handleChange(m,scope.row,'proposal')" :min="0" :max="10"></el-input-number>
           </template>
         </el-table-column>
       </el-table-column>
-      <el-table-column label="寰楀垎">
+      <el-table-column label="寰楀垎" prop="total">
       </el-table-column>
   </el-table>
   </div>
@@ -83,26 +83,47 @@
 <script>
 export default {
   props:{
-    month:String,
-    laboratory:Object
+    entity:Object,
   },
   data () {
     return{
-      tableData:[
-        {
-          num0:null,
-          num1:null,
-          num2:null,
-          num3:null,
-          num4:null,
-          num5:null,
-          num6:null,
-        }
-      ]
+      tableData:[],
+      loading:false,
     }
   },
+  created(){
+    this.refreshTable()
+  },
   methods:{
-    handleChange(){}
+    handleChange(value,row,prop){
+      row[prop] = Number(value)
+      this.$axios.post(this.$api.evaluate.writeEvaluateCompetent, {
+        ...row
+        },{
+          headers: {
+            'Content-Type': 'application/json'
+          },
+          noQs:true
+        }).then(res => {
+          row.total = res.data
+        })
+    },
+    refreshTable(){
+      this.loading = true
+      this.$axios.post(this.$api.evaluate.getEvaluateCompetent, {
+        ...this.$parent.entity
+        },{
+          headers: {
+            'Content-Type': 'application/json'
+          }
+        }).then(res => {
+          this.loading = false
+          this.tableData = res.data
+        })
+    },
+    refresh(){
+      this.refreshTable()
+    }
   }
 }
 </script>
diff --git a/src/components/do/b3-work-time-management/work-time-statistics.vue b/src/components/do/b3-work-time-management/work-time-statistics.vue
index 710d6f7..8f32955 100644
--- a/src/components/do/b3-work-time-management/work-time-statistics.vue
+++ b/src/components/do/b3-work-time-management/work-time-statistics.vue
@@ -125,7 +125,9 @@
           inputType:聽'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
 			},
       entity:{
-        month:getYearAndMonthAndDays()
+        month:getYearAndMonthAndDays(),
+        name:'',
+        departLims:''
       },
       entityCopy:{},
       entityCopy0:{},
@@ -194,13 +196,13 @@
       let entity = {...this.entity}
       entity.month = entity.month.split('-')[0]+'-'+entity.month.split('-')[1]
       this.outLoading = true
-      this.$axios.get(this.$api.auxiliaryOriginalHours.exportOriginalHours,{
-        params:entity,
+      this.$axios.post(this.$api.auxiliaryOriginalHours.exportOriginalHours,{
+        ...entity
+        // params:entity,
       },{responseType: "blob"}).then(res => {
         this.outLoading = false
         this.$message.success('瀵煎嚭鎴愬姛')
         const blob = new Blob([res],{ type: 'application/octet-stream' });
-        console.log(blob)
         const url = URL.createObjectURL(blob);
         const link = document.createElement('a');
         link.href = url;
diff --git a/src/components/view/b3-personnel-evaluation.vue b/src/components/view/b3-personnel-evaluation.vue
index 1e6910f..9bac5cf 100644
--- a/src/components/view/b3-personnel-evaluation.vue
+++ b/src/components/view/b3-personnel-evaluation.vue
@@ -22,7 +22,7 @@
       <div class="search_thing">
 				<div class="search_label">瀹為獙瀹わ細</div>
 				<div class="search_input">
-          <el-select v-model="entity.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
+          <el-select v-model="entity.departLims" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()">
 					<el-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value">
 					</el-option>
 				</el-select>
@@ -31,7 +31,7 @@
 			<div class="search_thing">
 				<div class="search_label">浜哄憳鍚嶇О锛�</div>
 				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="entity.deviceName" @keyup.enter.native="refreshTable()"></el-input></div>
+						v-model="entity.name" @keyup.enter.native="refreshTable()"></el-input></div>
 			</div>
 			<div class="search_thing" style="padding-left: 30px;">
 				<el-button size="small" @click="refresh()">閲� 缃�</el-button>
@@ -45,10 +45,10 @@
         <el-radio-button label="leaderRate">缁勯暱璇勫垎</el-radio-button>
         <el-radio-button label="supervisorRate">涓荤鎵撳垎</el-radio-button>
       </el-radio-group>
-      <el-button type="primary" size="small">瀵� 鍑�</el-button>
+      <el-button type="primary" size="small" :loading="outLoading" @click="handleDown">瀵� 鍑�</el-button>
     </div>
     <div class="table">
-      <component :is="tabValue" :month="entity.month" :laboratory="getLaboratory()"></component>
+      <component :is="tabValue" ref="component" :entity="entity" v-if="laboratoryList.length>0"></component>
     </div>
   </div>
 </template>
@@ -68,35 +68,72 @@
   data(){
     return{
       entity:{
-        month:new Date().getFullYear()+'-'+(new Date().getMonth() + 1),
-        laboratory:''
+        month:new Date().getFullYear()+'-'+((new Date().getMonth() + 1) < 10 ? '0'+(new Date().getMonth() + 1):(new Date().getMonth() + 1)),
+        departLims:'',
+        name:''
       },
       tabValue:'evaluation',
-      laboratoryList:[]
+      laboratoryList:[],
+      outLoading:false,
+      copyEntity:null
     }
   },
-  mounted(){
+  created(){
     this.obtainItemParameterList()
   },
   methods: {
-    refreshTable(){},
-    refresh(){},
+    refreshTable(){
+      this.$refs.component.refreshTable()
+    },
+    refresh(){
+      this.entity = this.HaveJson(this.copyEntity)
+      this.$refs.component.refresh()
+    },
     obtainItemParameterList() {
       this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
         let data = []
         res.data.forEach(a => {
           data.push({
             label: a.laboratoryName,
-            value: a.id
+            value: a.laboratoryName
           })
         })
         this.laboratoryList = data
-        this.entity.laboratory = data[0].value
+        this.entity.departLims = data[0].value
+        this.copyEntity = this.HaveJson(this.entity)
       })
     },
-    getLaboratory(){
-       return this.laboratoryList.find(a=>a.value==this.entity.laboratory)
-    }
+    handleDown(){
+      let url = ''
+      let title = ''
+      if(this.tabValue=='evaluation'){
+        url = this.$api.evaluate.exportEvaluate
+        title = '鑰冭瘎琛�'
+      }else if(this.tabValue=='employeeMutualEvaluation'){
+        url = this.$api.evaluate.exportEvaluate
+        title = '鑰冭瘎琛�'
+      }else if(this.tabValue=='leaderRate'){
+        url = this.$api.evaluate.exportEvaluateLeader
+        title = '缁勯暱璇勫垎琛�'
+      }else if(this.tabValue=='supervisorRate'){
+        url = this.$api.evaluate.exportEvaluateCompetent
+        title = '涓荤璇勫垎琛�'
+      }
+      let entity = {...this.entity}
+      this.outLoading = true
+      this.$axios.post(url,{
+        ...entity
+      },{responseType: "blob"}).then(res => {
+        this.outLoading = false
+        this.$message.success('瀵煎嚭鎴愬姛')
+        const blob = new Blob([res],{ type: 'application/octet-stream' });
+        const url = URL.createObjectURL(blob);
+        const link = document.createElement('a');
+        link.href = url;
+        link.download = entity.departLims+'-'+entity.month+title+'.xlsx';
+        link.click();
+      })
+    },
   }
 }
 </script>
diff --git a/src/main.js b/src/main.js
index 1325d46..ef61e96 100644
--- a/src/main.js
+++ b/src/main.js
@@ -63,10 +63,10 @@
 		// config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
 		// config.headers['Content-Type'] = 'application/json'
 	}
-	if (config.method === 'post' || config.method === 'put') {
+	if ((config.method === 'post' || config.method === 'put')&&!config.noQs) {
 		config.data = qs.stringify(config.data)
 	}
-	if (config.headers['Content-Type'] == 'application/json') {
+	if (config.headers['Content-Type'] == 'application/json'&&!config.noQs) {
 		config.data = qs.parse(config.data)
 	}
 	return config

--
Gitblit v1.9.3