|
@@ -1,30 +1,5 @@
|
|
<template>
|
|
<template>
|
|
<div class="grade-action">
|
|
<div class="grade-action">
|
|
- <!-- 查询 -->
|
|
|
|
- <div class="action-search" v-if="rights.search">
|
|
|
|
- <Select
|
|
|
|
- class="search-select"
|
|
|
|
- v-model="filter.codeType"
|
|
|
|
- placeholder="密号类型"
|
|
|
|
- >
|
|
|
|
- <Option
|
|
|
|
- v-for="item in codeTypes"
|
|
|
|
- :key="item.key"
|
|
|
|
- :value="item.key"
|
|
|
|
- :label="item.val"
|
|
|
|
- ></Option>
|
|
|
|
- </Select>
|
|
|
|
- <Input
|
|
|
|
- class="search-input"
|
|
|
|
- v-model.trim="filter.code"
|
|
|
|
- placeholder="输入密号"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
- </Input>
|
|
|
|
- <Button size="small" type="primary" class="search-btn" @click="searchCode"
|
|
|
|
- >查询</Button
|
|
|
|
- >
|
|
|
|
- </div>
|
|
|
|
<!-- 头部信息 ------ -->
|
|
<!-- 头部信息 ------ -->
|
|
<!-- 试卷状态 -->
|
|
<!-- 试卷状态 -->
|
|
<!-- 状态:已评,待评,打回,仲裁 -->
|
|
<!-- 状态:已评,待评,打回,仲裁 -->
|
|
@@ -35,6 +10,7 @@
|
|
<p class="paper-state-intro" v-if="curPaperOrTask.rejectedCount">
|
|
<p class="paper-state-intro" v-if="curPaperOrTask.rejectedCount">
|
|
共打回{{ curPaperOrTask.rejectedCount }}次
|
|
共打回{{ curPaperOrTask.rejectedCount }}次
|
|
</p>
|
|
</p>
|
|
|
|
+ <!-- TODO:自动打回时显示偏差 -->
|
|
</div>
|
|
</div>
|
|
<div class="action-paper-state" v-else>
|
|
<div class="action-paper-state" v-else>
|
|
<p class="paper-state-cont">{{ stepLabel }}</p>
|
|
<p class="paper-state-cont">{{ stepLabel }}</p>
|
|
@@ -50,26 +26,14 @@
|
|
<span>NO.{{ curPaperOrTask.sn }}</span>
|
|
<span>NO.{{ curPaperOrTask.sn }}</span>
|
|
</p>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
- <!-- 档位信息 -->
|
|
|
|
- <!-- 已评(已评档位),打回(建议档位) -->
|
|
|
|
|
|
+
|
|
|
|
+ <!-- 选择档位 -->
|
|
<h3
|
|
<h3
|
|
class="action-grade-info-title"
|
|
class="action-grade-info-title"
|
|
- v-if="curPaperOrTask.rejected && curPaperOrTask.isRejectedByLeader"
|
|
|
|
|
|
+ v-if="IS_MARK_LEADER && markLeaderOnlyRight && rights.gradeList"
|
|
>
|
|
>
|
|
- 建议档位:
|
|
|
|
|
|
+ 当前操作:{{ markLeaderOnlyRight.name }}
|
|
</h3>
|
|
</h3>
|
|
- <div class="action-grade-info" v-if="rights.gradeInfo && curLevel.name">
|
|
|
|
- <h3 class="grade-info-name">{{ curLevel.name }}</h3>
|
|
|
|
- <div class="grade-info-range">
|
|
|
|
- <p>分数范围</p>
|
|
|
|
- <p>
|
|
|
|
- <span>{{ curLevel.minScore }}</span>
|
|
|
|
- <span>~</span>
|
|
|
|
- <span>{{ curLevel.maxScore }}</span>
|
|
|
|
- </p>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <!-- 选择档位 -->
|
|
|
|
<div class="action-grade-list" v-if="rights.gradeList">
|
|
<div class="action-grade-list" v-if="rights.gradeList">
|
|
<div
|
|
<div
|
|
class="action-grade-item"
|
|
class="action-grade-item"
|
|
@@ -88,6 +52,28 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- 档位信息 -->
|
|
|
|
+ <!-- 已评(已评档位),打回(建议档位) -->
|
|
|
|
+ <h3 class="action-grade-info-title">
|
|
|
|
+ <span v-if="curPaperOrTask.rejected && curPaperOrTask.isRejectedByLeader"
|
|
|
|
+ >建议档位:</span
|
|
|
|
+ >
|
|
|
|
+ <span v-if="stepType === 'done' || stepType === 'sample'"
|
|
|
|
+ >已评档位:</span
|
|
|
|
+ >
|
|
|
|
+ </h3>
|
|
|
|
+ <div class="action-grade-info" v-if="rights.gradeInfo && curLevel.name">
|
|
|
|
+ <h3 class="grade-info-name">{{ curLevel.name }}</h3>
|
|
|
|
+ <div class="grade-info-range">
|
|
|
|
+ <p>分数范围</p>
|
|
|
|
+ <p>
|
|
|
|
+ <span>{{ curLevel.minScore }}</span>
|
|
|
|
+ <span>~</span>
|
|
|
|
+ <span>{{ curLevel.maxScore }}</span>
|
|
|
|
+ </p>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 跳过 -->
|
|
<div
|
|
<div
|
|
class="action-grade-pass"
|
|
class="action-grade-pass"
|
|
v-if="rights.gradeList && IS_MARKER"
|
|
v-if="rights.gradeList && IS_MARKER"
|
|
@@ -98,7 +84,7 @@
|
|
|
|
|
|
<!-- 评卷记录 -->
|
|
<!-- 评卷记录 -->
|
|
<div class="action-grade-history" v-if="rights.gradeHis">
|
|
<div class="action-grade-history" v-if="rights.gradeHis">
|
|
- <h3>评卷记录</h3>
|
|
|
|
|
|
+ <h3>评卷记录:</h3>
|
|
<div class="grade-history-list">
|
|
<div class="grade-history-list">
|
|
<div
|
|
<div
|
|
class="grade-history-item"
|
|
class="grade-history-item"
|
|
@@ -110,6 +96,32 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+
|
|
|
|
+ <!-- 查询 -->
|
|
|
|
+ <div class="action-search" v-if="rights.search">
|
|
|
|
+ <Select
|
|
|
|
+ class="search-select"
|
|
|
|
+ v-model="filter.codeType"
|
|
|
|
+ placeholder="密号类型"
|
|
|
|
+ >
|
|
|
|
+ <Option
|
|
|
|
+ v-for="item in codeTypes"
|
|
|
|
+ :key="item.key"
|
|
|
|
+ :value="item.key"
|
|
|
|
+ :label="item.val"
|
|
|
|
+ ></Option>
|
|
|
|
+ </Select>
|
|
|
|
+ <Input
|
|
|
|
+ class="search-input"
|
|
|
|
+ v-model.trim="filter.code"
|
|
|
|
+ placeholder="输入密号"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ </Input>
|
|
|
|
+ <Button size="small" type="primary" class="search-btn" @click="searchCode"
|
|
|
|
+ >查询</Button
|
|
|
|
+ >
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -201,13 +213,16 @@ export default {
|
|
return [];
|
|
return [];
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- userRole: {
|
|
|
|
- type: String,
|
|
|
|
- default: "MARKER"
|
|
|
|
|
|
+ paramsSet: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default() {
|
|
|
|
+ return {};
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
|
|
+ curUserRoleType: this.$ls.get("user", { role: "" }).role,
|
|
rights: {
|
|
rights: {
|
|
...initRights
|
|
...initRights
|
|
},
|
|
},
|
|
@@ -252,18 +267,23 @@ export default {
|
|
gradingHistory: [],
|
|
gradingHistory: [],
|
|
curLevel: {},
|
|
curLevel: {},
|
|
setT: null,
|
|
setT: null,
|
|
- btnClicked: false
|
|
|
|
|
|
+ btnClicked: false,
|
|
|
|
+ // 科组长权限
|
|
|
|
+ markLeaderOnlyRight: null
|
|
};
|
|
};
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
IS_ADMIN() {
|
|
IS_ADMIN() {
|
|
- return this.userRole === "ADMIN" || this.userRole === "SUPER_ADMIN";
|
|
|
|
|
|
+ return (
|
|
|
|
+ this.curUserRoleType === "ADMIN" ||
|
|
|
|
+ this.curUserRoleType === "SUPER_ADMIN"
|
|
|
|
+ );
|
|
},
|
|
},
|
|
IS_MARKER() {
|
|
IS_MARKER() {
|
|
- return this.userRole === "MARKER";
|
|
|
|
|
|
+ return this.curUserRoleType === "MARKER";
|
|
},
|
|
},
|
|
IS_MARK_LEADER() {
|
|
IS_MARK_LEADER() {
|
|
- return this.userRole === "MARK_LEADER";
|
|
|
|
|
|
+ return this.curUserRoleType === "MARK_LEADER";
|
|
}
|
|
}
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
@@ -272,6 +292,10 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
mounted() {
|
|
mounted() {
|
|
|
|
+ this.markLeaderOnlyRight = this.$ls.get("user", {
|
|
|
|
+ markLeaderOnlyRight: null
|
|
|
|
+ }).markLeaderOnlyRight;
|
|
|
|
+
|
|
this.codeTypes = Object.entries(CODE_TYPE)
|
|
this.codeTypes = Object.entries(CODE_TYPE)
|
|
.map(([key, val]) => {
|
|
.map(([key, val]) => {
|
|
return {
|
|
return {
|
|
@@ -299,7 +323,7 @@ export default {
|
|
if (this.stepType === "sample") {
|
|
if (this.stepType === "sample") {
|
|
roleRights = this.roleRight.STANDARD;
|
|
roleRights = this.roleRight.STANDARD;
|
|
} else {
|
|
} else {
|
|
- roleRights = this.roleRight[this.userRole][this.stepType] || [];
|
|
|
|
|
|
+ roleRights = this.roleRight[this.curUserRoleType][this.stepType] || [];
|
|
}
|
|
}
|
|
this.rights = { ...initRights };
|
|
this.rights = { ...initRights };
|
|
roleRights.map(key => {
|
|
roleRights.map(key => {
|
|
@@ -352,7 +376,8 @@ export default {
|
|
{
|
|
{
|
|
paperIds: this.curPaperOrTask.id + "",
|
|
paperIds: this.curPaperOrTask.id + "",
|
|
curLevel: this.curPaperOrTask.level,
|
|
curLevel: this.curPaperOrTask.level,
|
|
- selectedLevel: level.name
|
|
|
|
|
|
+ selectedLevel: level.name,
|
|
|
|
+ markLeaderOnlyRight: this.markLeaderOnlyRight
|
|
},
|
|
},
|
|
this.gradingHistory.map(item => {
|
|
this.gradingHistory.map(item => {
|
|
return {
|
|
return {
|