From 1d79bd47ed03db7966c713761851b38a04319a88 Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 14 六月 2024 13:34:05 +0800
Subject: [PATCH] 完成考评页面
---
src/components/view/b3-personnel-evaluation.vue | 149 +++++++++++++
src/components/view/role-manage.vue | 6
src/components/do/b3-personnel-evaluation/leader-rate.vue | 115 ++++++++++
src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue | 205 ++++++++++++++++++
src/components/do/b3-personnel-evaluation/evaluation.vue | 50 ++++
src/components/do/b3-personnel-evaluation/supervisor-rate.vue | 124 +++++++++++
6 files changed, 647 insertions(+), 2 deletions(-)
diff --git a/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue b/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue
new file mode 100644
index 0000000..83a64bc
--- /dev/null
+++ b/src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue
@@ -0,0 +1,205 @@
+<template>
+ <div class="table-item">
+ <p style="text-align: center;margin-bottom: 10px;">{{ laboratory.label }} {{ Number(month.split('-')[1]) }} 鏈堜唤鍛樺伐浜掕瘎鎵撳垎琛�</p>
+ <el-table
+ :data="tableData"
+ style="width: 100%" height="calc(100% - 20px)">
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="55">
+ </el-table-column>
+ <el-table-column label="濮撳悕">
+ </el-table-column>
+ <el-table-column label="妫�娴嬪強鏃舵��">
+ <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>
+ </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>
+ </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>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="妫�娴嬪噯纭��">
+ <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>
+ </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>
+ </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>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔鎶�鑳�">
+ <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>
+ </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>
+ </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>
+ </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"">
+ <template slot-scope="scope">
+ <el-radio :label="10" v-model="scope.row.radio3">{{ '' }}</el-radio>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鑳界淮鎶�">
+ <el-table-column label="5" width="80px"">
+ <template slot-scope="scope">
+ <el-radio :label="5" v-model="scope.row.radio3">{{ '' }}</el-radio>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鏃犳剰璇�">
+ <el-table-column label="2" width="80px"">
+ <template slot-scope="scope">
+ <el-radio :label="2" v-model="scope.row.radio3">{{ '' }}</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"">
+ <template slot-scope="scope">
+ <el-radio :label="10" v-model="scope.row.radio4">{{ '' }}</el-radio>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="琚姩閬靛畧">
+ <el-table-column label="7" width="90px"">
+ <template slot-scope="scope">
+ <el-radio :label="7" v-model="scope.row.radio4">{{ '' }}</el-radio>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="缁忓父杩濈邯">
+ <el-table-column label="5" width="90px"">
+ <template slot-scope="scope">
+ <el-radio :label="5" v-model="scope.row.radio4">{{ '' }}</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"">
+ <template slot-scope="scope">
+ <el-radio :label="10" v-model="scope.row.radio5">{{ '' }}</el-radio>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鍩烘湰铻嶆唇">
+ <el-table-column label="8" width="90px"">
+ <template slot-scope="scope">
+ <el-radio :label="8" v-model="scope.row.radio5">{{ '' }}</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"">
+ <template slot-scope="scope">
+ <el-radio :label="10" v-model="scope.row.radio6">{{ '' }}</el-radio>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="瀛樺湪涓嶆竻娲佺偣">
+ <el-table-column label="7" width="130px"">
+ <template slot-scope="scope">
+ <el-radio :label="7" v-model="scope.row.radio6">{{ '' }}</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>
+ </el-table-column>
+ </el-table>
+ </div>
+</template>
+
+<script>
+export default {
+ props:{
+ month:String,
+ laboratory:Object
+ },
+ data(){
+ return{
+ tableData:[
+ {
+ radio0:0,
+ radio1:0,
+ radio2:0,
+ radio3:0,
+ radio4:0,
+ radio5:0,
+ radio6:0,
+ }
+ ],
+ radio:20
+ }
+ }
+}
+</script>
+
+<style scoped>
+.table-item{
+ width: 100%;
+ height: 100%;
+}
+>>>.el-table--border th.el-table__cell, .el-table__fixed-right-patch{
+ border-color: rgb(225, 223, 223);
+}
+>>>.el-table .cell, .el-table--border .el-table__cell .cell{
+ text-align: center;
+}
+</style>
diff --git a/src/components/do/b3-personnel-evaluation/evaluation.vue b/src/components/do/b3-personnel-evaluation/evaluation.vue
new file mode 100644
index 0000000..5c741d5
--- /dev/null
+++ b/src/components/do/b3-personnel-evaluation/evaluation.vue
@@ -0,0 +1,50 @@
+<template>
+ <div class="table-item">
+ <ValueTable ref="ValueTable"
+ :url="$api.deviceScope.selectDeviceParameter" :componentData="componentData" :key="upIndex" />
+ </div>
+</template>
+
+<script>
+import ValueTable from '../../tool/value-table.vue'
+export default {
+ components: {
+ ValueTable
+ },
+ props:{
+ month:String,
+ laboratory:Object
+ },
+ data(){
+ return{
+ componentData: {
+ entity: {
+ deviceName: null,
+ orderBy: {
+ field: 'id',
+ order: 'desc'
+ }
+ },
+ isPage:false,
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ do: [],
+ tagField: {},
+ linkEvent: {},
+ selectField: {},
+ requiredAdd: [],
+ requiredUp: [],
+ },
+ upIndex:0
+ }
+ }
+}
+</script>
+
+<style scoped>
+.table-item{
+ width: 100%;
+ height: 100%;
+}
+</style>
diff --git a/src/components/do/b3-personnel-evaluation/leader-rate.vue b/src/components/do/b3-personnel-evaluation/leader-rate.vue
new file mode 100644
index 0000000..2253352
--- /dev/null
+++ b/src/components/do/b3-personnel-evaluation/leader-rate.vue
@@ -0,0 +1,115 @@
+<template>
+ <div class="table-item">
+ <p style="text-align: center;margin-bottom: 10px;">{{ laboratory.label }} {{ Number(month.split('-')[1]) }} 鏈堜唤缁勯暱鎵撳垎琛�</p>
+ <el-table
+ :data="tableData"
+ style="width: 100%" height="calc(100% - 20px)">
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="55">
+ </el-table-column>
+ <el-table-column label="濮撳悕" prop="name">
+ </el-table-column>
+ <el-table-column label="宸ヤ綔璐d换蹇�">
+ <el-table-column label="25">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num0" @change="handleChange" :min="0" :max="25"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鏈嶄粠鍒嗗伐">
+ <el-table-column label="25">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num1" @change="handleChange" :min="0" :max="25"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="绉瀬鎬�">
+ <el-table-column label="20">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num2" @change="handleChange" :min="0" :max="20"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鍥㈢粨鍚屼簨">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num3" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="璇曢獙鍙婃椂鎬�">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num4" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="缁撴灉鍑嗙‘鎬�">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num5" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="寰楀垎">
+ </el-table-column>
+ </el-table>
+ </div>
+</template>
+
+<script>
+export default {
+ props:{
+ month:String,
+ laboratory:Object
+ },
+ data () {
+ return{
+ tableData:[
+ {
+ num0:null,
+ num1:null,
+ num2:null,
+ num3:null,
+ num4:null,
+ num5:null,
+ num6:null,
+ }
+ ]
+ }
+ },
+ methods:{
+ handleChange(){}
+ }
+}
+</script>
+
+<style scoped>
+.table-item{
+ width: 100%;
+ height: 100%;
+}
+>>>.el-table--border th.el-table__cell, .el-table__fixed-right-patch{
+ border-color: rgb(225, 223, 223);
+}
+>>>.el-table .cell, .el-table--border .el-table__cell .cell{
+ text-align: center;
+}
+.el-input-number{
+ width: 110px;
+}
+</style>
diff --git a/src/components/do/b3-personnel-evaluation/supervisor-rate.vue b/src/components/do/b3-personnel-evaluation/supervisor-rate.vue
new file mode 100644
index 0000000..dbda8bd
--- /dev/null
+++ b/src/components/do/b3-personnel-evaluation/supervisor-rate.vue
@@ -0,0 +1,124 @@
+<template>
+ <div class="table-item">
+ <p style="text-align: center;margin-bottom: 10px;">{{ laboratory.label }} {{ Number(month.split('-')[1]) }} 鏈堜唤涓荤鎵撳垎琛�</p>
+ <el-table
+ :data="tableData"
+ style="width: 100%" height="calc(100% - 20px)">
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="55">
+ </el-table-column>
+ <el-table-column label="濮撳悕" prop="name">
+ </el-table-column>
+ <el-table-column label="鎶�鑳芥按骞�">
+ <el-table-column label="20">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num0" @change="handleChange" :min="0" :max="20"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鏈嶄粠鍒嗗伐">
+ <el-table-column label="20">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num1" @change="handleChange" :min="0" :max="20"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="绉瀬鎬�">
+ <el-table-column label="20">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num2" @change="handleChange" :min="0" :max="20"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="5S-3瀹�">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num3" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="瑙勭珷鍒跺害">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num4" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鍥㈢粨鍗忎綔">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num5" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="鎻愭绉垎">
+ <el-table-column label="10">
+ <template slot-scope="scope">
+ <el-input-number
+ size="small"
+ v-model="scope.row.num6" @change="handleChange" :min="0" :max="10"></el-input-number>
+ </template>
+ </el-table-column>
+ </el-table-column>
+ <el-table-column label="寰楀垎">
+ </el-table-column>
+ </el-table>
+ </div>
+</template>
+
+<script>
+export default {
+ props:{
+ month:String,
+ laboratory:Object
+ },
+ data () {
+ return{
+ tableData:[
+ {
+ num0:null,
+ num1:null,
+ num2:null,
+ num3:null,
+ num4:null,
+ num5:null,
+ num6:null,
+ }
+ ]
+ }
+ },
+ methods:{
+ handleChange(){}
+ }
+}
+</script>
+
+<style scoped>
+.table-item{
+ width: 100%;
+ height: 100%;
+}
+>>>.el-table--border th.el-table__cell, .el-table__fixed-right-patch{
+ border-color: rgb(225, 223, 223);
+}
+>>>.el-table .cell, .el-table--border .el-table__cell .cell{
+ text-align: center;
+}
+.el-input-number{
+ width: 110px;
+}
+</style>
diff --git a/src/components/view/b3-personnel-evaluation.vue b/src/components/view/b3-personnel-evaluation.vue
new file mode 100644
index 0000000..1e6910f
--- /dev/null
+++ b/src/components/view/b3-personnel-evaluation.vue
@@ -0,0 +1,149 @@
+<template>
+ <div class="personnel-evaluation">
+ <!-- <el-row class="title">
+ <el-col :span="12" style="padding-left: 20px;">浜哄憳鑰冭瘎
+ </el-col>
+ </el-row> -->
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">鏈堜唤锛�</div>
+ <div class="search_input">
+ <el-date-picker
+ size="small"
+ v-model="entity.month"
+ type="month"
+ placeholder="閫夋嫨鏈�"
+ format="yyyy-MM"
+ value-format="yyyy-MM"
+ @change="refreshTable()">
+ </el-date-picker>
+ </div>
+ </div>
+ <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-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </div>
+ </div>
+ <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>
+ </div>
+ <div class="search_thing" style="padding-left: 30px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="tabs" style="margin-top: 10px;">
+ <el-radio-group v-model="tabValue" size="small" >
+ <el-radio-button label="evaluation">鑰冭瘎</el-radio-button>
+ <el-radio-button label="employeeMutualEvaluation">鍛樺伐浜掕瘎</el-radio-button>
+ <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>
+ </div>
+ <div class="table">
+ <component :is="tabValue" :month="entity.month" :laboratory="getLaboratory()"></component>
+ </div>
+ </div>
+</template>
+
+<script>
+import evaluation from '../do/b3-personnel-evaluation/evaluation.vue'
+import employeeMutualEvaluation from '../do/b3-personnel-evaluation/employee-mutual-evaluation.vue'
+import leaderRate from '../do/b3-personnel-evaluation/leader-rate.vue'
+import supervisorRate from '../do/b3-personnel-evaluation/supervisor-rate.vue'
+export default {
+ components: {
+ evaluation,
+ employeeMutualEvaluation,
+ leaderRate,
+ supervisorRate
+ },
+ data(){
+ return{
+ entity:{
+ month:new Date().getFullYear()+'-'+(new Date().getMonth() + 1),
+ laboratory:''
+ },
+ tabValue:'evaluation',
+ laboratoryList:[]
+ }
+ },
+ mounted(){
+ this.obtainItemParameterList()
+ },
+ methods: {
+ refreshTable(){},
+ 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
+ })
+ })
+ this.laboratoryList = data
+ this.entity.laboratory = data[0].value
+ })
+ },
+ getLaboratory(){
+ return this.laboratoryList.find(a=>a.value==this.entity.laboratory)
+ }
+ }
+}
+</script>
+
+<style scoped>
+.personnel-evaluation {
+ height: 100%;
+ overflow-y: auto;
+}
+.title {
+ height: 60px;
+ line-height: 60px;
+}
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ margin-top: 20px;
+ }
+
+ .search_thing {
+ width: 350px;
+ display: flex;
+ align-items: center;
+ }
+
+ .search_label {
+ width: 110px;
+
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 110px);
+ }
+ .tabs{
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ width: calc(100% - 40px);
+ height: calc(100% - 60px - 80px - 10px - 42px);
+ padding: 20px;
+ }
+</style>
diff --git a/src/components/view/role-manage.vue b/src/components/view/role-manage.vue
index 0579d43..58f5d88 100644
--- a/src/components/view/role-manage.vue
+++ b/src/components/view/role-manage.vue
@@ -202,13 +202,15 @@
upRole(row) {
this.type = '淇敼'
this.addData.roleName = row.name
- this.addData.category = row.category
+ this.$set(this.addData, 'category', row.category)
+ // this.addData.category = row.category
this.selectPowerByRoleId(row.id)
},
selectRole(row) {
this.type = '鏌ョ湅'
this.addData.roleName = row.name
- this.addData.category = row.category
+ this.$set(this.addData, 'category', row.category)
+ // this.addData.category = row.category
this.selectPowerByRoleId(row.id)
},
openAdd() {
--
Gitblit v1.9.3