|
@@ -1,144 +1,173 @@
|
|
|
<template>
|
|
|
<div class="grading-level-set">
|
|
|
- <div class="part-box-top">
|
|
|
- <Button type="success" icon="md-add" @click="toAdd">新增</Button>
|
|
|
- </div>
|
|
|
- <div class="part-box">
|
|
|
- <table class="table table-noborder">
|
|
|
- <tr>
|
|
|
- <th>档位</th>
|
|
|
- <th>最低分</th>
|
|
|
- <th>最高分</th>
|
|
|
- <th>给分间隔</th>
|
|
|
- <th>典型值</th>
|
|
|
- <th>类型</th>
|
|
|
- <th>给分项</th>
|
|
|
- <th>考区阀值%</th>
|
|
|
- <th>占比阀值%</th>
|
|
|
- <th>操作</th>
|
|
|
- </tr>
|
|
|
- <template v-for="(level, index) in levels">
|
|
|
- <tr :key="index">
|
|
|
- <td>
|
|
|
- <Input
|
|
|
- v-model="level.code"
|
|
|
- style="width: 60px"
|
|
|
- @on-blur="codeChange(level)"
|
|
|
- ></Input>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <InputNumber
|
|
|
- v-model="level.minScore"
|
|
|
- :min="0"
|
|
|
- :max="200"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- ></InputNumber>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <InputNumber
|
|
|
- v-model="level.maxScore"
|
|
|
- :min="1"
|
|
|
- :max="200"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- ></InputNumber>
|
|
|
- </td>
|
|
|
- <td style="min-width: 100px">
|
|
|
- <InputNumber
|
|
|
- v-model="level.intervalScore"
|
|
|
- :min="1"
|
|
|
- :max="100"
|
|
|
- :precision="0"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- v-if="level.levelType === 'ADMITED'"
|
|
|
- ></InputNumber>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <InputNumber
|
|
|
- v-model="level.weight"
|
|
|
- :min="1"
|
|
|
- :max="100"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- ></InputNumber>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <Select
|
|
|
- v-model="level.levelType"
|
|
|
- @on-change="levelTypeChange(level)"
|
|
|
- style="width: 120px"
|
|
|
+ <Button
|
|
|
+ class="level-add-btn"
|
|
|
+ type="success"
|
|
|
+ icon="recode-white icon"
|
|
|
+ shape="circle"
|
|
|
+ @click="toAdd"
|
|
|
+ >新增档位</Button
|
|
|
+ >
|
|
|
+ <table class="table table-noborder grading-table">
|
|
|
+ <tr>
|
|
|
+ <th>档位</th>
|
|
|
+ <th>最低分</th>
|
|
|
+ <th>最高分</th>
|
|
|
+ <th>给分间隔</th>
|
|
|
+ <th>典型值</th>
|
|
|
+ <th>类型</th>
|
|
|
+ <th>给分项</th>
|
|
|
+ <th>考区阀值%</th>
|
|
|
+ <th>占比阀值%</th>
|
|
|
+ <th style="width: 100px">操作</th>
|
|
|
+ </tr>
|
|
|
+ <template v-for="(level, index) in levels">
|
|
|
+ <tr :key="index">
|
|
|
+ <td>
|
|
|
+ <Input
|
|
|
+ v-model="level.code"
|
|
|
+ style="width: 60px"
|
|
|
+ @on-blur="codeChange(level)"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ ></Input>
|
|
|
+ <p v-else>{{ level.code }}</p>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <InputNumber
|
|
|
+ v-model="level.minScore"
|
|
|
+ :min="0"
|
|
|
+ :max="200"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ ></InputNumber>
|
|
|
+ <p v-else>{{ level.minScore }}</p>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <InputNumber
|
|
|
+ v-model="level.maxScore"
|
|
|
+ :min="1"
|
|
|
+ :max="200"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ ></InputNumber>
|
|
|
+ <p v-else>{{ level.maxScore }}</p>
|
|
|
+ </td>
|
|
|
+ <td style="min-width: 100px">
|
|
|
+ <InputNumber
|
|
|
+ v-model="level.intervalScore"
|
|
|
+ :min="1"
|
|
|
+ :max="100"
|
|
|
+ :precision="0"
|
|
|
+ :disabled="!level.canEdit"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.levelType === 'ADMITED' && level.canEdit"
|
|
|
+ ></InputNumber>
|
|
|
+ <p v-else>{{ level.intervalScore }}</p>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <InputNumber
|
|
|
+ v-model="level.weight"
|
|
|
+ :min="1"
|
|
|
+ :max="100"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ ></InputNumber>
|
|
|
+ <p v-else>{{ level.weight }}</p>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <Select
|
|
|
+ v-model="level.levelType"
|
|
|
+ @on-change="levelTypeChange(level)"
|
|
|
+ style="width: 120px"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ >
|
|
|
+ <Option
|
|
|
+ v-for="(val, key) in LEVEL_TYPE"
|
|
|
+ :key="key"
|
|
|
+ :value="key"
|
|
|
+ >{{ val }}</Option
|
|
|
>
|
|
|
- <Option
|
|
|
- v-for="(val, key) in LEVEL_TYPE"
|
|
|
- :key="key"
|
|
|
- :value="key"
|
|
|
- >{{ val }}</Option
|
|
|
- >
|
|
|
- </Select>
|
|
|
- </td>
|
|
|
- <td style="min-width: 140px">
|
|
|
- <Input
|
|
|
- v-model="level.scoreList"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- v-if="level.levelType === 'UNADMIT'"
|
|
|
- ></Input>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <InputNumber
|
|
|
- v-model="level.kdpt"
|
|
|
- :min="1"
|
|
|
- :max="100"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- ></InputNumber>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <InputNumber
|
|
|
- v-model="level.pt"
|
|
|
- :min="1"
|
|
|
- :max="100"
|
|
|
- @on-blur="checkLevelValidate(level)"
|
|
|
- ></InputNumber>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <Button size="small" type="error" @click="toDelete(index)"
|
|
|
- >删除</Button
|
|
|
- >
|
|
|
- </td>
|
|
|
- </tr>
|
|
|
- <tr class="tr-tips-error" v-if="level.errors" :key="index + '1'">
|
|
|
- <td>
|
|
|
- {{ level.errors.code }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ level.errors.minScore }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ level.errors.maxScore }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ level.errors.intervalScore }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ level.errors.weight }}
|
|
|
- </td>
|
|
|
- <td></td>
|
|
|
- <td>
|
|
|
- {{ level.errors.scoreList }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ level.errors.kdpt }}
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- {{ level.errors.pt }}
|
|
|
- </td>
|
|
|
- <td></td>
|
|
|
- </tr>
|
|
|
- </template>
|
|
|
- </table>
|
|
|
+ </Select>
|
|
|
+ <p v-else>{{ LEVEL_TYPE[level.levelType] }}</p>
|
|
|
+ </td>
|
|
|
+ <td style="min-width: 140px">
|
|
|
+ <Input
|
|
|
+ v-model="level.scoreList"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.levelType === 'UNADMIT' && level.canEdit"
|
|
|
+ ></Input>
|
|
|
+ <p v-else>{{ level.scoreList }}</p>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <InputNumber
|
|
|
+ v-model="level.kdpt"
|
|
|
+ :min="1"
|
|
|
+ :max="100"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ ></InputNumber>
|
|
|
+ <p v-else>{{ level.kdpt }}</p>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <InputNumber
|
|
|
+ v-model="level.pt"
|
|
|
+ :min="1"
|
|
|
+ :max="100"
|
|
|
+ @on-blur="checkLevelValidate(level)"
|
|
|
+ v-if="level.canEdit"
|
|
|
+ ></InputNumber>
|
|
|
+ <p v-else>{{ level.pt }}</p>
|
|
|
+ </td>
|
|
|
+ <td class="table-action" style="width: 100px">
|
|
|
+ <Icon type="md-create" title="编辑" @click="toEdit(index)" />
|
|
|
+ <Icon
|
|
|
+ class="icon-danger"
|
|
|
+ type="md-trash"
|
|
|
+ title="删除"
|
|
|
+ @click="toDelete(index)"
|
|
|
+ />
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr class="tr-tips-error" v-if="level.errors" :key="index + '1'">
|
|
|
+ <td>
|
|
|
+ {{ level.errors.code }}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.minScore }}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.maxScore }}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.intervalScore }}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.weight }}
|
|
|
+ </td>
|
|
|
+ <td></td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.scoreList }}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.kdpt }}
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ {{ level.errors.pt }}
|
|
|
+ </td>
|
|
|
+ <td></td>
|
|
|
+ </tr>
|
|
|
+ </template>
|
|
|
+ </table>
|
|
|
|
|
|
- <div class="text-center">
|
|
|
- <Button type="primary" @click="toSubmit" :disabled="isSubmit"
|
|
|
- >确定</Button
|
|
|
- >
|
|
|
- </div>
|
|
|
+ <div class="text-center">
|
|
|
+ <Button
|
|
|
+ type="primary"
|
|
|
+ shape="circle"
|
|
|
+ @click="toSubmit"
|
|
|
+ style="width: 80px;"
|
|
|
+ :disabled="isSubmit"
|
|
|
+ >确定</Button
|
|
|
+ >
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -191,7 +220,10 @@ export default {
|
|
|
async getData() {
|
|
|
const data = await workDetail(this.workId);
|
|
|
this.worKDetail = data;
|
|
|
- this.levels = data.levels;
|
|
|
+ this.levels = data.levels.map(item => {
|
|
|
+ item.canEdit = false;
|
|
|
+ return item;
|
|
|
+ });
|
|
|
},
|
|
|
checkLevelCodeIsContinuous() {
|
|
|
let levelIsContinuous = true;
|
|
@@ -254,6 +286,10 @@ export default {
|
|
|
level.code = this.getNextLevelCode();
|
|
|
this.levels.push(level);
|
|
|
},
|
|
|
+ toEdit(index) {
|
|
|
+ this.levels[index].canEdit = true;
|
|
|
+ this.$forceUpdate();
|
|
|
+ },
|
|
|
toDelete(index) {
|
|
|
this.levels.splice(index, 1);
|
|
|
},
|
|
@@ -371,6 +407,7 @@ export default {
|
|
|
if (!data) return;
|
|
|
|
|
|
this.isSubmit = false;
|
|
|
+ this.getData();
|
|
|
this.$Message.success("保存成功!");
|
|
|
}
|
|
|
}
|