yujialong 2 weeks ago
parent 63f3d7ced3
commit 1c0de78d1b
  1. 1
      src/api/index.js
  2. 4
      src/layouts/navbar/index.vue
  3. 17
      src/pages/allocationReview/list/index.vue
  4. 4
      src/pages/allocationReview/list/setup.vue
  5. 38
      src/pages/allocationReview/records/index.vue
  6. 18
      src/pages/myReview/list/index.vue
  7. 36
      src/pages/myReview/records/index.vue

@ -31,6 +31,7 @@ export default {
occupationlabStaff: `/occupationlab/occupationlab/staff/staffList`, occupationlabStaff: `/occupationlab/occupationlab/staff/staffList`,
querySchoolByReadAndAppraise: `/nakadai/nakadai/school/querySchoolByReadAndAppraise`, querySchoolByReadAndAppraise: `/nakadai/nakadai/school/querySchoolByReadAndAppraise`,
querySchool: `/nakadai/nakadai/school/querySchool`, querySchool: `/nakadai/nakadai/school/querySchool`,
myClass: `/occupationlab/occupationlab/achievement/myClass`,
getDetailedExamScores: `/exam/exam/paper/getDetailedExamScores`, getDetailedExamScores: `/exam/exam/paper/getDetailedExamScores`,
reviewSettingsList: `/competition/competition/readAndAppraise/reviewSettingsList`, reviewSettingsList: `/competition/competition/readAndAppraise/reviewSettingsList`,

@ -37,6 +37,8 @@
import { mapState, mapActions } from 'vuex' import { mapState, mapActions } from 'vuex'
import Setting from '@/setting' import Setting from '@/setting'
import addRoutes from '@/libs/route/addRoutes' import addRoutes from '@/libs/route/addRoutes'
const fromNakadai = localStorage.getItem('reviewFromNakadai')
export default { export default {
data () { data () {
return { return {
@ -93,7 +95,7 @@ export default {
const { btns, defaultMenus: all } = this const { btns, defaultMenus: all } = this
const menus = [all[0]] const menus = [all[0]]
btns.find(e => e === '分配评阅任务') && menus.push(all[1]) btns.find(e => e === '分配评阅任务') && menus.push(all[1])
btns.find(e => e === '专家管理') && menus.push(all[2]) fromNakadai && btns.find(e => e === '专家管理') && menus.push(all[2])
this.menus = menus this.menus = menus
} else { } else {
this.menus = this.defaultMenus this.menus = this.defaultMenus

@ -38,23 +38,20 @@
</li> </li>
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input style="width: 300px;" placeholder="请输入大赛名称、阶段赛名称、比赛内容" prefix-icon="el-icon-search" <el-input style="width: 300px;" :placeholder="`请输入${fromNakadai ? '大赛名称、阶段赛名称、比赛内容' : '考核名称、考核内容'}`"
v-model="filter.keyWord" clearable /> prefix-icon="el-icon-search" v-model="filter.keyWord" clearable />
</li> </li>
</ul> </ul>
</div> </div>
<el-table :data="list" v-loading="loading" class="table" ref="table" stripe header-align="center" row-key="stageId"> <el-table :data="list" v-loading="loading" class="table" ref="table" stripe header-align="center" row-key="stageId">
<el-table-column type="index" width="50" label="序号" align="center"></el-table-column> <el-table-column type="index" width="50" label="序号" align="center"></el-table-column>
<template v-if="fromNakadai"> <el-table-column :key="1" prop="competitionName" :label="fromNakadai ? '大赛名称' : '考核名称'" align="center"
<el-table-column :key="1" prop="competitionName" label="大赛名称" align="center" min-width="120" min-width="120" show-overflow-tooltip></el-table-column>
show-overflow-tooltip></el-table-column> <el-table-column v-if="fromNakadai" :key="2" prop="stageName" label="阶段赛名称" align="center"
<el-table-column :key="2" prop="stageName" label="阶段赛名称" align="center" min-width="100"></el-table-column> min-width="100"></el-table-column>
<el-table-column :key="3" prop="competitionContent" label="比赛内容" align="center" <el-table-column :key="3" prop="competitionContent" :label="fromNakadai ? '比赛内容' : '考核名称'" align="center"
min-width="100"></el-table-column> min-width="100"></el-table-column>
</template>
<el-table-column v-else :key="4" prop="competitionName" label="考核名称" align="center" min-width="120"
show-overflow-tooltip></el-table-column>
<el-table-column :key="5" prop="totalAnswer" label="总答卷数" align="center" width="90"></el-table-column> <el-table-column :key="5" prop="totalAnswer" label="总答卷数" align="center" width="90"></el-table-column>
<el-table-column :key="6" prop="unReviewedAnswer" label="待评答卷数" align="center" width="90"></el-table-column> <el-table-column :key="6" prop="unReviewedAnswer" label="待评答卷数" align="center" width="90"></el-table-column>
<el-table-column :key="7" prop="reviewedAnswer" label="已评答卷数" align="center" width="90"></el-table-column> <el-table-column :key="7" prop="reviewedAnswer" label="已评答卷数" align="center" width="90"></el-table-column>

@ -41,7 +41,7 @@
<el-radio-group v-model="form.scoreAggregationRule"> <el-radio-group v-model="form.scoreAggregationRule">
<el-radio :label="0">取平均分</el-radio> <el-radio :label="0">取平均分</el-radio>
<el-radio :label="1">取修剪平均分</el-radio> <el-radio :label="1">取修剪平均分</el-radio>
<el-tooltip placement="top"> <!-- <el-tooltip placement="top">
<div slot="content"> <div slot="content">
<p>去掉最高分最低分取平均分</p> <p>去掉最高分最低分取平均分</p>
<p class="m-t-5 m-b-5">1.建议评阅人员3</p> <p class="m-t-5 m-b-5">1.建议评阅人员3</p>
@ -56,7 +56,7 @@
<i class="el-icon-question explain"></i> <i class="el-icon-question explain"></i>
</el-tooltip> </el-tooltip>
<el-radio :label="3">取中位分</el-radio> <el-radio :label="3">取中位分</el-radio>
<el-radio :label="4">取最高分</el-radio> <el-radio :label="4">取最高分</el-radio> -->
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</template> </template>

@ -4,6 +4,7 @@
<h6 class="page-name">筛选</h6> <h6 class="page-name">筛选</h6>
<div class="tool"> <div class="tool">
<ul class="filter"> <ul class="filter">
<template v-if="fromNakadai">
<li> <li>
<label>省份</label> <label>省份</label>
<el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange" <el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange"
@ -26,6 +27,14 @@
:value="item.schoolId"></el-option> :value="item.schoolId"></el-option>
</el-select> </el-select>
</li> </li>
</template>
<li v-else>
<label>班级</label>
<el-select v-model="filter.classId" clearable @change="initData">
<el-option v-for="item in classList" :key="item.id" :label="item.className" :value="item.id">
</el-option>
</el-select>
</li>
<li> <li>
<label>评阅状态</label> <label>评阅状态</label>
<el-select v-model="filter.evaluationStatus" clearable placeholder="请选择评阅状态" @change="initData"> <el-select v-model="filter.evaluationStatus" clearable placeholder="请选择评阅状态" @change="initData">
@ -40,15 +49,15 @@
</li> </li>
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input style="width: 400px;" placeholder="请输入学生姓名、学生学号、团队名称、答卷ID、提交名称" prefix-icon="el-icon-search" <el-input style="width: 400px;" :placeholder="`请输入学生姓名、学生学号、${fromNakadai ? '团队名称、' : ''}答卷ID、提交名称`"
v-model="filter.keyword" clearable /> prefix-icon="el-icon-search" v-model="filter.keyword" clearable />
</li> </li>
</ul> </ul>
<div> <div>
<el-button type="primary" @click="batchAlloc">批量分配评阅人员</el-button> <el-button type="primary" @click="batchAlloc">批量分配评阅人员</el-button>
<el-button type="primary" @click="toSetup">修改评阅设置</el-button> <el-button type="primary" @click="toSetup">修改评阅设置</el-button>
<!-- <el-button type="primary">批量导出评分表</el-button> --> <!-- <el-button type="primary">批量导出评分表</el-button> -->
<el-button type="primary">批量导出列表</el-button> <!-- <el-button type="primary">批量导出列表</el-button> -->
</div> </div>
</div> </div>
@ -56,10 +65,13 @@
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> <el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="index" width="50" label="序号" align="center"></el-table-column> <el-table-column type="index" width="50" label="序号" align="center"></el-table-column>
<template v-if="fromNakadai">
<el-table-column prop="provinceName" label="省份" align="center" width="100"></el-table-column> <el-table-column prop="provinceName" label="省份" align="center" width="100"></el-table-column>
<el-table-column prop="cityName" label="城市" align="center" width="120"></el-table-column> <el-table-column prop="cityName" label="城市" align="center" width="120"></el-table-column>
<el-table-column prop="realSchool" label="学生所在院校" align="center" width="120"></el-table-column> <el-table-column prop="realSchool" label="学生所在院校" align="center" width="120"></el-table-column>
<el-table-column prop="teamName" label="团队名称" align="center" width="90"></el-table-column> <el-table-column prop="teamName" label="团队名称" align="center" width="90"></el-table-column>
</template>
<el-table-column v-else prop="className" label="学生所在班级" align="center" width="120"></el-table-column>
<el-table-column prop="userName" label="学生姓名" align="center" width="80"></el-table-column> <el-table-column prop="userName" label="学生姓名" align="center" width="80"></el-table-column>
<el-table-column prop="workNumber" label="学号" align="center" width="70"></el-table-column> <el-table-column prop="workNumber" label="学号" align="center" width="70"></el-table-column>
<el-table-column prop="reportId" label="答卷ID" align="center" width="60"></el-table-column> <el-table-column prop="reportId" label="答卷ID" align="center" width="60"></el-table-column>
@ -106,14 +118,13 @@ import Setup from '../list/setup'
import Allocation from './allocation' import Allocation from './allocation'
import Breadcrumb from '@/components/breadcrumb' import Breadcrumb from '@/components/breadcrumb'
import Util from '@/libs/util' import Util from '@/libs/util'
import Setting from '@/setting'
import Const from '@/const/ques' const fromNakadai = localStorage.getItem('reviewFromNakadai')
import Qs from 'qs'
import dayjs from 'dayjs'
export default { export default {
components: { Allocation, Setup, Breadcrumb }, components: { Allocation, Setup, Breadcrumb },
data () { data () {
return { return {
fromNakadai,
crumbs: [], crumbs: [],
competitionId: this.$route.query.competitionId || '', competitionId: this.$route.query.competitionId || '',
assessmentId: this.$route.query.assessmentId || '', assessmentId: this.$route.query.assessmentId || '',
@ -123,6 +134,7 @@ export default {
provinces: [], provinces: [],
cities: [], cities: [],
schools: [], schools: [],
classList: [],
evaluationStatus: [ evaluationStatus: [
{ {
name: '待评阅' name: '待评阅'
@ -143,6 +155,7 @@ export default {
], ],
date: [], date: [],
filter: { filter: {
classId: '',
cityId: '', cityId: '',
provinceId: '', provinceId: '',
realSchoolId: '', realSchoolId: '',
@ -196,8 +209,13 @@ export default {
this.$router.push(`records?competitionId=${query.competitionId}&stageId=${query.stageId}`).catch(() => { }) this.$router.push(`records?competitionId=${query.competitionId}&stageId=${query.stageId}`).catch(() => { })
} }
if (fromNakadai) {
this.getProvince() this.getProvince()
this.getSchool() this.getSchool()
} else {
this.getClassData()
}
this.getList() this.getList()
}, },
methods: { methods: {
@ -267,6 +285,12 @@ export default {
this.schools = list this.schools = list
}, },
//
getClassData () {
this.$post(this.api.myClass).then(res => {
this.classList = res.list
}).catch(res => { })
},
// //
async batchAlloc () { async batchAlloc () {

@ -27,22 +27,20 @@
</li> </li>
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input style="width: 300px;" placeholder="请输入大赛名称、阶段赛名称、比赛内容" prefix-icon="el-icon-search" <el-input style="width: 300px;" :placeholder="`请输入${fromNakadai ? '大赛名称、阶段赛名称、比赛内容' : '考核名称、考核内容'}`"
v-model="filter.keyword" clearable /> prefix-icon="el-icon-search" v-model="filter.keyword" clearable />
</li> </li>
</ul> </ul>
</div> </div>
<el-table :data="list" v-loading="loading" class="table" ref="table" stripe header-align="center" row-key="id"> <el-table :data="list" v-loading="loading" class="table" ref="table" stripe header-align="center" row-key="id">
<el-table-column type="index" width="50" label="序号" align="center"></el-table-column> <el-table-column type="index" width="50" label="序号" align="center"></el-table-column>
<template v-if="fromNakadai"> <el-table-column :key="1" prop="competitionName" :label="fromNakadai ? '大赛名称' : '考核名称'" align="center"
<el-table-column prop="competitionName" label="大赛名称" align="center" min-width="120" min-width="120" show-overflow-tooltip></el-table-column>
show-overflow-tooltip></el-table-column> <el-table-column v-if="fromNakadai" :key="2" prop="stageName" label="阶段赛名称" align="center"
<el-table-column prop="stageName" label="阶段赛名称" align="center" min-width="100"></el-table-column> min-width="100"></el-table-column>
<el-table-column prop="competitionContent" label="比赛内容" align="center" min-width="100"></el-table-column> <el-table-column :key="3" prop="competitionContent" :label="fromNakadai ? '比赛内容' : '考核名称'" align="center"
</template> min-width="100"></el-table-column>
<el-table-column v-else :key="4" prop="competitionName" label="考核名称" align="center" min-width="120"
show-overflow-tooltip></el-table-column>
<el-table-column prop="totalAnswer" label="分配答卷数" align="center" width="90"></el-table-column> <el-table-column prop="totalAnswer" label="分配答卷数" align="center" width="90"></el-table-column>
<el-table-column prop="unReviewedAnswer" label="待评答卷数" align="center" width="90"></el-table-column> <el-table-column prop="unReviewedAnswer" label="待评答卷数" align="center" width="90"></el-table-column>
<el-table-column prop="reviewedAnswer" label="已评答卷数" align="center" width="90"></el-table-column> <el-table-column prop="reviewedAnswer" label="已评答卷数" align="center" width="90"></el-table-column>

@ -5,6 +5,7 @@
<div class="tool"> <div class="tool">
<ul class="filter"> <ul class="filter">
<template v-if="showUserInfo"> <template v-if="showUserInfo">
<template v-if="fromNakadai">
<li> <li>
<label>省份</label> <label>省份</label>
<el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange" <el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange"
@ -28,6 +29,14 @@
</el-select> </el-select>
</li> </li>
</template> </template>
<li v-else>
<label>班级</label>
<el-select v-model="filter.classId" clearable @change="initData">
<el-option v-for="item in classList" :key="item.id" :label="item.className" :value="item.id">
</el-option>
</el-select>
</li>
</template>
<li> <li>
<label>评阅状态</label> <label>评阅状态</label>
<el-select v-model="filter.status" clearable placeholder="请选择评阅状态" @change="initData"> <el-select v-model="filter.status" clearable placeholder="请选择评阅状态" @change="initData">
@ -36,7 +45,8 @@
</li> </li>
<li> <li>
<label>搜索</label> <label>搜索</label>
<el-input style="width: 400px;" :placeholder="`请输入${showUserInfo ? '学生姓名、学生学号、团队名称、' : ''}答卷ID、提交名称`" <el-input style="width: 400px;"
:placeholder="`请输入${showUserInfo ? `学生姓名、学生学号、${fromNakadai ? '团队名称、' : ''}` : ''}答卷ID、提交名称`"
prefix-icon="el-icon-search" v-model="filter.keyword" clearable /> prefix-icon="el-icon-search" v-model="filter.keyword" clearable />
</li> </li>
</ul> </ul>
@ -50,6 +60,7 @@
<el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column> <el-table-column type="selection" width="55" align="center" :reserve-selection="true"></el-table-column>
<el-table-column type="index" width="50" label="序号" align="center"></el-table-column> <el-table-column type="index" width="50" label="序号" align="center"></el-table-column>
<template v-if="showUserInfo"> <template v-if="showUserInfo">
<template v-if="fromNakadai">
<el-table-column prop="provinceName" label="省份" align="center" min-width="100" <el-table-column prop="provinceName" label="省份" align="center" min-width="100"
show-overflow-tooltip></el-table-column> show-overflow-tooltip></el-table-column>
<el-table-column prop="cityName" label="城市" align="center" min-width="100" <el-table-column prop="cityName" label="城市" align="center" min-width="100"
@ -57,6 +68,8 @@
<el-table-column prop="realSchool" label="学生所在院校" align="center" min-width="100" <el-table-column prop="realSchool" label="学生所在院校" align="center" min-width="100"
show-overflow-tooltip></el-table-column> show-overflow-tooltip></el-table-column>
<el-table-column prop="teamName" label="团队名称" align="center" min-width="90"></el-table-column> <el-table-column prop="teamName" label="团队名称" align="center" min-width="90"></el-table-column>
</template>
<el-table-column v-else prop="className" label="学生所在班级" align="center" width="120"></el-table-column>
<el-table-column prop="userName" label="学生姓名" align="center" min-width="80"></el-table-column> <el-table-column prop="userName" label="学生姓名" align="center" min-width="80"></el-table-column>
<el-table-column prop="workNumber" label="学号" align="center" min-width="70"></el-table-column> <el-table-column prop="workNumber" label="学号" align="center" min-width="70"></el-table-column>
</template> </template>
@ -91,14 +104,13 @@
<script> <script>
import Breadcrumb from '@/components/breadcrumb' import Breadcrumb from '@/components/breadcrumb'
import Util from '@/libs/util' import Util from '@/libs/util'
import Setting from '@/setting'
import Const from '@/const/ques' const fromNakadai = localStorage.getItem('reviewFromNakadai') //
import Qs from 'qs'
import dayjs from 'dayjs'
export default { export default {
components: { Breadcrumb }, components: { Breadcrumb },
data () { data () {
return { return {
fromNakadai,
crumbs: [], crumbs: [],
competitionId: this.$route.query.competitionId || '', competitionId: this.$route.query.competitionId || '',
stageId: this.$route.query.stageId || '', stageId: this.$route.query.stageId || '',
@ -109,6 +121,7 @@ export default {
provinces: [], provinces: [],
cities: [], cities: [],
schools: [], schools: [],
classList: [],
status: [ status: [
{ {
name: '待评阅' name: '待评阅'
@ -119,6 +132,7 @@ export default {
], ],
date: [], date: [],
filter: { filter: {
classId: '',
cityId: '', cityId: '',
provinceId: '', provinceId: '',
realSchoolId: '', realSchoolId: '',
@ -168,8 +182,13 @@ export default {
this.$router.push(`records?competitionId=${query.competitionId}&stageId=${query.stageId}`).catch(() => { }) this.$router.push(`records?competitionId=${query.competitionId}&stageId=${query.stageId}`).catch(() => { })
} }
if (fromNakadai) {
this.getProvince() this.getProvince()
this.getSchool() this.getSchool()
} else {
this.getClassData()
}
this.getList() this.getList()
}, },
methods: { methods: {
@ -256,6 +275,13 @@ export default {
this.schools = list this.schools = list
}, },
//
getClassData () {
this.$post(this.api.myClass).then(res => {
this.classList = res.list
}).catch(res => { })
},
// //
async batchReview () { async batchReview () {
const list = this.multipleSelection const list = this.multipleSelection

Loading…
Cancel
Save