licp
2024-06-14 1d79bd47ed03db7966c713761851b38a04319a88
完成考评页面
已修改1个文件
已添加5个文件
649 ■■■■■ 文件已修改
src/components/do/b3-personnel-evaluation/employee-mutual-evaluation.vue 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b3-personnel-evaluation/evaluation.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b3-personnel-evaluation/leader-rate.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/do/b3-personnel-evaluation/supervisor-rate.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b3-personnel-evaluation.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/role-manage.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>
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>
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="工作责任心">
        <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>
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>
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>
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() {