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

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

@ -37,6 +37,8 @@
import { mapState, mapActions } from 'vuex'
import Setting from '@/setting'
import addRoutes from '@/libs/route/addRoutes'
const fromNakadai = localStorage.getItem('reviewFromNakadai')
export default {
data () {
return {
@ -93,7 +95,7 @@ export default {
const { btns, defaultMenus: all } = this
const menus = [all[0]]
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
} else {
this.menus = this.defaultMenus

@ -38,23 +38,20 @@
</li>
<li>
<label>搜索</label>
<el-input style="width: 300px;" placeholder="请输入大赛名称、阶段赛名称、比赛内容" prefix-icon="el-icon-search"
v-model="filter.keyWord" clearable />
<el-input style="width: 300px;" :placeholder="`请输入${fromNakadai ? '大赛名称、阶段赛名称、比赛内容' : '考核名称、考核内容'}`"
prefix-icon="el-icon-search" v-model="filter.keyWord" clearable />
</li>
</ul>
</div>
<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>
<template v-if="fromNakadai">
<el-table-column :key="1" prop="competitionName" label="大赛名称" align="center" min-width="120"
show-overflow-tooltip></el-table-column>
<el-table-column :key="2" prop="stageName" label="阶段赛名称" align="center" min-width="100"></el-table-column>
<el-table-column :key="3" prop="competitionContent" label="比赛内容" align="center"
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="1" prop="competitionName" :label="fromNakadai ? '大赛名称' : '考核名称'" align="center"
min-width="120" show-overflow-tooltip></el-table-column>
<el-table-column v-if="fromNakadai" :key="2" prop="stageName" label="阶段赛名称" align="center"
min-width="100"></el-table-column>
<el-table-column :key="3" prop="competitionContent" :label="fromNakadai ? '比赛内容' : '考核名称'" align="center"
min-width="100"></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="7" prop="reviewedAnswer" label="已评答卷数" align="center" width="90"></el-table-column>

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

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

@ -27,22 +27,20 @@
</li>
<li>
<label>搜索</label>
<el-input style="width: 300px;" placeholder="请输入大赛名称、阶段赛名称、比赛内容" prefix-icon="el-icon-search"
v-model="filter.keyword" clearable />
<el-input style="width: 300px;" :placeholder="`请输入${fromNakadai ? '大赛名称、阶段赛名称、比赛内容' : '考核名称、考核内容'}`"
prefix-icon="el-icon-search" v-model="filter.keyword" clearable />
</li>
</ul>
</div>
<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>
<template v-if="fromNakadai">
<el-table-column prop="competitionName" label="大赛名称" align="center" min-width="120"
show-overflow-tooltip></el-table-column>
<el-table-column prop="stageName" label="阶段赛名称" align="center" min-width="100"></el-table-column>
<el-table-column prop="competitionContent" label="比赛内容" align="center" 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="1" prop="competitionName" :label="fromNakadai ? '大赛名称' : '考核名称'" align="center"
min-width="120" show-overflow-tooltip></el-table-column>
<el-table-column v-if="fromNakadai" :key="2" prop="stageName" label="阶段赛名称" align="center"
min-width="100"></el-table-column>
<el-table-column :key="3" prop="competitionContent" :label="fromNakadai ? '比赛内容' : '考核名称'" align="center"
min-width="100"></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="reviewedAnswer" label="已评答卷数" align="center" width="90"></el-table-column>

@ -5,26 +5,35 @@
<div class="tool">
<ul class="filter">
<template v-if="showUserInfo">
<li>
<label>省份</label>
<el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange"
@clear="clearProvince">
<el-option v-for="(item, i) in provinces" :key="i" :label="item.provinceName"
:value="item.provinceId"></el-option>
</el-select>
</li>
<li>
<label>城市</label>
<el-select v-model="filter.cityId" clearable placeholder="请选择城市" :disabled="!filter.provinceId"
@change="initData">
<el-option v-for="(item, i) in cities" :key="i" :label="item.cityName" :value="item.cityId"></el-option>
</el-select>
</li>
<li>
<label>学校</label>
<el-select v-model="filter.realSchoolId" clearable filterable placeholder="请选择学校" @change="initData">
<el-option v-for="(item, i) in schools" :key="i" :label="item.schoolName"
:value="item.schoolId"></el-option>
<template v-if="fromNakadai">
<li>
<label>省份</label>
<el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange"
@clear="clearProvince">
<el-option v-for="(item, i) in provinces" :key="i" :label="item.provinceName"
:value="item.provinceId"></el-option>
</el-select>
</li>
<li>
<label>城市</label>
<el-select v-model="filter.cityId" clearable placeholder="请选择城市" :disabled="!filter.provinceId"
@change="initData">
<el-option v-for="(item, i) in cities" :key="i" :label="item.cityName" :value="item.cityId"></el-option>
</el-select>
</li>
<li>
<label>学校</label>
<el-select v-model="filter.realSchoolId" clearable filterable placeholder="请选择学校" @change="initData">
<el-option v-for="(item, i) in schools" :key="i" :label="item.schoolName"
:value="item.schoolId"></el-option>
</el-select>
</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>
</template>
@ -36,7 +45,8 @@
</li>
<li>
<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 />
</li>
</ul>
@ -50,13 +60,16 @@
<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>
<template v-if="showUserInfo">
<el-table-column prop="provinceName" label="省份" align="center" min-width="100"
show-overflow-tooltip></el-table-column>
<el-table-column prop="cityName" label="城市" align="center" min-width="100"
show-overflow-tooltip></el-table-column>
<el-table-column prop="realSchool" label="学生所在院校" align="center" min-width="100"
show-overflow-tooltip></el-table-column>
<el-table-column prop="teamName" label="团队名称" align="center" min-width="90"></el-table-column>
<template v-if="fromNakadai">
<el-table-column prop="provinceName" label="省份" align="center" min-width="100"
show-overflow-tooltip></el-table-column>
<el-table-column prop="cityName" label="城市" align="center" min-width="100"
show-overflow-tooltip></el-table-column>
<el-table-column prop="realSchool" label="学生所在院校" align="center" min-width="100"
show-overflow-tooltip></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="workNumber" label="学号" align="center" min-width="70"></el-table-column>
</template>
@ -91,14 +104,13 @@
<script>
import Breadcrumb from '@/components/breadcrumb'
import Util from '@/libs/util'
import Setting from '@/setting'
import Const from '@/const/ques'
import Qs from 'qs'
import dayjs from 'dayjs'
const fromNakadai = localStorage.getItem('reviewFromNakadai') //
export default {
components: { Breadcrumb },
data () {
return {
fromNakadai,
crumbs: [],
competitionId: this.$route.query.competitionId || '',
stageId: this.$route.query.stageId || '',
@ -109,6 +121,7 @@ export default {
provinces: [],
cities: [],
schools: [],
classList: [],
status: [
{
name: '待评阅'
@ -119,6 +132,7 @@ export default {
],
date: [],
filter: {
classId: '',
cityId: '',
provinceId: '',
realSchoolId: '',
@ -168,8 +182,13 @@ export default {
this.$router.push(`records?competitionId=${query.competitionId}&stageId=${query.stageId}`).catch(() => { })
}
this.getProvince()
this.getSchool()
if (fromNakadai) {
this.getProvince()
this.getSchool()
} else {
this.getClassData()
}
this.getList()
},
methods: {
@ -256,6 +275,13 @@ export default {
this.schools = list
},
//
getClassData () {
this.$post(this.api.myClass).then(res => {
this.classList = res.list
}).catch(res => { })
},
//
async batchReview () {
const list = this.multipleSelection

Loading…
Cancel
Save