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