Newer
Older
dcms_front / src / views / deptAccess / accessRule.vue
zhangyingjie on 14 Nov 2019 4 KB 修改部门考核、其他评价
<template>
  <div class="table-container">
    <el-row class="second-title">规则说明</el-row>
    <div>
      <el-row class="content">处置单位得分 = 100 - 超时分 - 返工分 - 超时未处理分 + 工作量调节</el-row>
      <el-row class="content">超时分数 = 时限内所有超时案卷数/时限内应处置案卷数 *100 * 超时因子</el-row>
      <el-row class="content">返工分数 = 时限内所有返工案卷数/时限内应处置案卷数 * 100 * 返工因子</el-row>
      <el-row class="content">超时未处置分数 = 时限内所有超时未处置案卷数/时限内应处置案卷数 * 100 * 超时未处置因子</el-row>
      <el-row class="content">工作量调节 = 该单位接收派遣数 / 系统总派遣数 * 100 * 调节因子</el-row>
    </div>
    <el-row style="padding:20px"/>
    <el-row class="second-title">考核因子</el-row>
    <div>
      <el-row>
        <el-col :span="6" class="cell">工作量调节因子</el-col>
        <el-col :span="6" class="cell">超时因子</el-col>
        <el-col :span="6" class="cell">返工因子</el-col>
        <el-col :span="6" class="cell">超时未处置因子</el-col>
      </el-row>
      <el-row>
        <el-col :span="6" class="cell">派遣数/系统总派遣数</el-col>
        <el-col :span="6" class="cell">超时处置和超时未处置</el-col>
        <el-col :span="6" class="cell">返工数量</el-col>
        <el-col :span="6" class="cell">超时未处置</el-col>
      </el-row>
      <el-row>
        <el-col :span="6" class="cell">
          <el-input v-model="ruleForm.workrate" size="small" style="width:25%"/>
          <el-button type="text" class="submit-button" @click="updateAccessFactor()">修改</el-button>
        </el-col>
        <el-col :span="6" class="cell">
          <el-input v-model="ruleForm.delayrate" size="small" style="width:25%"/>
          <el-button type="text" class="submit-button" @click="updateAccessFactor()">修改</el-button>
        </el-col>
        <el-col :span="6" class="cell">
          <el-input v-model="ruleForm.reworkrate" size="small" style="width:25%"/>%
          <el-button type="text" class="submit-button" @click="updateAccessFactor()">修改</el-button>
        </el-col>
        <el-col :span="6" class="cell">
          <el-input v-model="ruleForm.delaynorate" size="small" style="width:25%"/>%
          <el-button type="text" class="submit-button" @click="updateAccessFactor()">修改</el-button>
        </el-col>
      </el-row>
    </div>
  </div>
</template>

<script>
import { getRuleList, updateRule } from '@/api/assess/assessDept'
import { validateIntPlus } from '@/utils/validate'

export default {
  name: 'AccessRule',
  data() {
    return {
      ruleForm: {
        id: '',
        workrate: '',
        delayrate: '',
        reworkrate: '',
        delaynorate: ''
      }
    }
  },
  mounted() {
    this.fetchData()
  },
  methods: {
    fetchData() {
      getRuleList().then(res => {
        const data = res.data[0]
        this.ruleForm = {
          id: data.id,
          workrate: data.workrate,
          delayrate: data.delayrate,
          reworkrate: data.reworkrate,
          delaynorate: data.delaynorate
        }
      })
    },
    // 更新考核规则
    updateAccessFactor() {
      if (this.validateData()) {
        updateRule(this.ruleForm).then(response => {
          if (response.code === 200) {
            this.$message.success('修改成功')
          }
        })
      }
    },
    validateData() {
      if (!validateIntPlus('' + this.ruleForm.workrate, 0, 100)) {
        this.$message.error('工作量调节因子的允许填写范围为0到100')
        return false
      }
      if (!validateIntPlus('' + this.ruleForm.delayrate, 0, 100)) {
        this.$message.error('超时因子的允许填写范围为0到100')
        return false
      }
      if (!validateIntPlus('' + this.ruleForm.reworkrate, 0, 100)) {
        this.$message.error('返工因子的允许填写范围为0到100')
        return false
      }
      if (!validateIntPlus('' + this.ruleForm.delaynorate, 0, 100)) {
        this.$message.error('超时未处置因子的允许填写范围为0到100')
        return false
      }
      return true
    }
  }
}
</script>

<style lang="scss" scoped>
.second-title{
  border: 1px solid #eee;
  background-color: #eee;
  border-top: 0;
  font-size: 1.5em;
  padding: 10px;
  text-align: center;
}
.content{
  border: 1px solid #eee;
  border-top: 0;
  font-size: 1.2em;
  padding: 5px;
  text-align: center;
}
.cell{
  border: 1px solid #eee;
  font-size: 1.2em;
  border-top: 0;
  padding: 5px;
  text-align: center;
  position: relative;
}
.submit-button{
  position: absolute;
  top: 0;
  left: 175px;
}
 /deep/ input.el-input__inner {
  color: red;
  font-size: 1.2em;
}
</style>