|
|
|
@ -4,6 +4,7 @@ |
|
|
|
|
<h6 class="page-name">筛选</h6> |
|
|
|
|
<div class="tool"> |
|
|
|
|
<ul class="filter"> |
|
|
|
|
<template v-if="showUserInfo"> |
|
|
|
|
<li> |
|
|
|
|
<label>省份</label> |
|
|
|
|
<el-select v-model="filter.provinceId" clearable placeholder="请选择省份" @change="provinceChange" |
|
|
|
@ -15,28 +16,29 @@ |
|
|
|
|
<li> |
|
|
|
|
<label>城市</label> |
|
|
|
|
<el-select v-model="filter.cityId" clearable placeholder="请选择城市" :disabled="!filter.provinceId" |
|
|
|
|
@clear="clearcity" @change="getSchool"> |
|
|
|
|
@clear="clearcity" @change="cityChange"> |
|
|
|
|
<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.schoolId" clearable filterable placeholder="请选择学校" :disabled="!filter.cityId" |
|
|
|
|
<el-select v-model="filter.realSchoolId" clearable filterable placeholder="请选择学校" :disabled="!filter.cityId" |
|
|
|
|
@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> |
|
|
|
|
<label>评阅状态</label> |
|
|
|
|
<el-select v-model="filter.status" clearable placeholder="请选择评阅情况" @change="initData"> |
|
|
|
|
<el-select v-model="filter.status" clearable placeholder="请选择评阅状态" @change="initData"> |
|
|
|
|
<el-option v-for="(item, i) in status" :key="i" :label="item.name" :value="item.id"></el-option> |
|
|
|
|
</el-select> |
|
|
|
|
</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="`请输入${showUserInfo ? '学生姓名、学生学号、团队名称、' : ''}答卷ID、提交名称`" |
|
|
|
|
prefix-icon="el-icon-search" v-model="filter.keyword" clearable /> |
|
|
|
|
</li> |
|
|
|
|
</ul> |
|
|
|
|
<!-- <div> |
|
|
|
@ -44,24 +46,37 @@ |
|
|
|
|
</div> --> |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
<el-table :data="list" class="table" ref="table" stripe header-align="center" row-key="id" |
|
|
|
|
<el-table :data="list" :loading="loading" class="table" ref="table" stripe header-align="center" row-key="id" |
|
|
|
|
@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="stem" label="省份" align="center" min-width="120"></el-table-column> |
|
|
|
|
<el-table-column prop="professionalName" label="城市" align="center" min-width="100"></el-table-column> |
|
|
|
|
<el-table-column prop="knowledgePointName" label="学生所在学校" align="center" min-width="100"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="团队名称" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="学生姓名" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="学号" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="答卷ID" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="用时" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="提交时间" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="提交名称" align="center" width="90"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="评阅状态" align="center" width="90"></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> |
|
|
|
|
<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> |
|
|
|
|
<el-table-column prop="reportId" label="答卷ID" align="center" min-width="60"></el-table-column> |
|
|
|
|
<el-table-column prop="lastEditor" label="用时" align="center" min-width="60"> |
|
|
|
|
<template slot-scope="scope">{{ scope.row.timeSum }}min</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column prop="submitTime" label="提交时间" align="center" min-width="150"></el-table-column> |
|
|
|
|
<el-table-column prop="submitName" label="提交名称" align="center" min-width="120" |
|
|
|
|
show-overflow-tooltip></el-table-column> |
|
|
|
|
<el-table-column prop="evaluationStatus" label="评阅状态" align="center" width="90"> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<el-tag :type="scope.row.evaluationStatus === '待评阅' ? 'danger' : 'success'">{{ scope.row.evaluationStatus |
|
|
|
|
}}</el-tag> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
<el-table-column label="操作" align="center" width="90" fixed="right"> |
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
<el-button type="text" @click="review(scope.row)">评阅</el-button> |
|
|
|
|
<el-button type="text" @click="toReview(scope.row, scope.$index)">评阅</el-button> |
|
|
|
|
</template> |
|
|
|
|
</el-table-column> |
|
|
|
|
</el-table> |
|
|
|
@ -85,9 +100,8 @@ export default { |
|
|
|
|
data () { |
|
|
|
|
return { |
|
|
|
|
crumbs: [], |
|
|
|
|
paperName: this.$route.query.paperName, |
|
|
|
|
difficults: Const.difficults, |
|
|
|
|
questionTypes: Const.questionTypes, |
|
|
|
|
competitionId: this.$route.query.competitionId, |
|
|
|
|
stageId: this.$route.query.stageId, |
|
|
|
|
loading: false, |
|
|
|
|
|
|
|
|
|
provinces: [], |
|
|
|
@ -105,13 +119,16 @@ export default { |
|
|
|
|
], |
|
|
|
|
date: [], |
|
|
|
|
filter: { |
|
|
|
|
month: '', |
|
|
|
|
startTime: null, |
|
|
|
|
endTime: null, |
|
|
|
|
cityId: '', |
|
|
|
|
provinceId: '', |
|
|
|
|
realSchoolId: '', |
|
|
|
|
status: '', |
|
|
|
|
keyword: '', |
|
|
|
|
}, |
|
|
|
|
list: [{}], |
|
|
|
|
showUserInfo: true, |
|
|
|
|
rowData: null, |
|
|
|
|
setup: null, |
|
|
|
|
list: [], |
|
|
|
|
page: +this.$route.query.page || 1, |
|
|
|
|
pageSize: 10, |
|
|
|
|
total: 0, |
|
|
|
@ -119,34 +136,17 @@ export default { |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
watch: { |
|
|
|
|
'filter.month': function (val) { |
|
|
|
|
if (val) { |
|
|
|
|
let unit = 24 * 60 * 60 * 1000 |
|
|
|
|
this.date = [dayjs(new Date(Date.now() - unit * 30 * val)).format('YYYY-MM-DD'), dayjs(new Date(Date.now() + unit)).format('YYYY-MM-DD')] |
|
|
|
|
} else { |
|
|
|
|
this.date = [] |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
date: function (val) { |
|
|
|
|
if (val) { |
|
|
|
|
this.filter.startTime = val[0]; |
|
|
|
|
this.filter.endTime = val[1]; |
|
|
|
|
} else { |
|
|
|
|
this.filter.startTime = '' |
|
|
|
|
this.filter.endTime = '' |
|
|
|
|
} |
|
|
|
|
// this.initData(); |
|
|
|
|
}, |
|
|
|
|
'filter.keyword': function () { |
|
|
|
|
clearTimeout(this.searchTimer) |
|
|
|
|
this.searchTimer = setTimeout(this.initData, 500) |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
mounted () { |
|
|
|
|
const { referrer1 } = this.$store.state.user |
|
|
|
|
this.crumbs = [ |
|
|
|
|
{ |
|
|
|
|
name: this.paperName || '我的评阅任务', |
|
|
|
|
route: '/myReview' |
|
|
|
|
name: '我的评阅任务', |
|
|
|
|
route: referrer1 || '/myReview' |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
name: '评阅' |
|
|
|
@ -156,54 +156,44 @@ export default { |
|
|
|
|
|
|
|
|
|
const { query } = this.$route |
|
|
|
|
if (query.page) { |
|
|
|
|
const { questionTypes, correctRateEnd, correctRateStart, difficultys, specialtyIds, status, keyword, questionTypeSort, givenYearSort, difficultySort, correctRateSort, updateTimeSort, referenceCountSort, givenYears, knowledgePointIds, questionBankId, questionBankName, questionBankCategory } = query |
|
|
|
|
const { cityId, provinceId, realSchoolId, status, keyword } = query |
|
|
|
|
this.filter = { |
|
|
|
|
questionTypes: questionTypes ? questionTypes.split(',') : [], |
|
|
|
|
correctRateEnd: correctRateEnd || '', |
|
|
|
|
correctRateStart: correctRateStart || '', |
|
|
|
|
difficultys: difficultys ? difficultys.split(',') : [], |
|
|
|
|
specialtyIds: specialtyIds ? specialtyIds.split(',').map(e => +e) : [], |
|
|
|
|
cityId: cityId ? +cityId : '', |
|
|
|
|
provinceId: provinceId ? +provinceId : '', |
|
|
|
|
realSchoolId: realSchoolId ? +realSchoolId : '', |
|
|
|
|
status: status ? +status : '', |
|
|
|
|
keyword: keyword || '', |
|
|
|
|
questionTypeSort: questionTypeSort || '', |
|
|
|
|
givenYearSort: givenYearSort || '', |
|
|
|
|
difficultySort: difficultySort || '', |
|
|
|
|
correctRateSort: correctRateSort || '', |
|
|
|
|
updateTimeSort: updateTimeSort || '', |
|
|
|
|
referenceCountSort: referenceCountSort || '', |
|
|
|
|
keyWord: keyword || '', |
|
|
|
|
} |
|
|
|
|
this.givenYears = givenYears || '' |
|
|
|
|
this.knowledgePointIds = knowledgePointIds ? JSON.parse(knowledgePointIds) : [] |
|
|
|
|
|
|
|
|
|
this.$router.push(`/myReview?questionBankId=${questionBankId}&questionBankName=${questionBankName}&questionBankCategory=${questionBankCategory}`).catch(() => { }) |
|
|
|
|
provinceId && this.getCity() |
|
|
|
|
cityId && this.getSchool() |
|
|
|
|
this.$router.push(`records?competitionId=${query.competitionId}&stageId=${query.stageId}`).catch(() => { }) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.getProvince() |
|
|
|
|
// this.getProfessional() |
|
|
|
|
// this.getKnowledge() |
|
|
|
|
this.getList() |
|
|
|
|
}, |
|
|
|
|
methods: { |
|
|
|
|
async getList () { |
|
|
|
|
let type = this.$refs.typeTree.getCurrentKey() |
|
|
|
|
const k = this.knowledgePointIds |
|
|
|
|
if (k.length) { // 右边筛选里的知识点 |
|
|
|
|
type = k.map(e => { |
|
|
|
|
return e[e.length - 1] |
|
|
|
|
}) |
|
|
|
|
} else if (type) { |
|
|
|
|
type = [type] |
|
|
|
|
} |
|
|
|
|
const { message } = await this.$post(this.api.listQuestion, { |
|
|
|
|
try { |
|
|
|
|
this.loading = true |
|
|
|
|
const { page } = await this.$post(this.api.myReviewTaskByReviewList, { |
|
|
|
|
...this.filter, |
|
|
|
|
givenYears: this.givenYears ? [this.givenYears] : [], |
|
|
|
|
isNotJoin: this.isNotJoin || '', |
|
|
|
|
pageNum: this.page, |
|
|
|
|
pageSize: this.pageSize, |
|
|
|
|
questionBankId: this.questionBankId, |
|
|
|
|
knowledgePointIds: type || [], |
|
|
|
|
competitionId: this.competitionId, |
|
|
|
|
stageId: this.stageId, |
|
|
|
|
}) |
|
|
|
|
this.list = Util.removeTag(message.records) |
|
|
|
|
this.total = message.total |
|
|
|
|
const list = page.records |
|
|
|
|
if (list.length) { |
|
|
|
|
this.rowData = list[0] |
|
|
|
|
this.getSetup() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.list = list |
|
|
|
|
this.total = page.total |
|
|
|
|
} finally { |
|
|
|
|
this.loading = false |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
// 切换页码 |
|
|
|
|
currentChange (val) { |
|
|
|
@ -222,6 +212,17 @@ export default { |
|
|
|
|
this.page = 1 |
|
|
|
|
this.getList() |
|
|
|
|
}, |
|
|
|
|
// 获取评阅设置详情 |
|
|
|
|
async getSetup () { |
|
|
|
|
try { |
|
|
|
|
const row = this.rowData |
|
|
|
|
if (row && !this.setup) { |
|
|
|
|
const { data } = await this.$post(`${this.api.evaluationFind}?id=${row.evaluationId}&paperId=${row.paperId}`) |
|
|
|
|
this.setup = data |
|
|
|
|
this.showUserInfo = !data.anonymizeStudents // 是否隐藏学生信息 |
|
|
|
|
} |
|
|
|
|
} catch (e) { } |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
// 获取省份 |
|
|
|
|
async getProvince () { |
|
|
|
@ -290,9 +291,8 @@ export default { |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
// 评阅 |
|
|
|
|
review (row) { |
|
|
|
|
// this.setReferrer() |
|
|
|
|
window.open(this.$router.resolve(`/theoryReview?id=${row.paperId}`).href) |
|
|
|
|
toReview (row, i) { |
|
|
|
|
window.open(this.$router.resolve(`/theoryReview?id=${row.reportId}&u=${+this.showUserInfo}&m=${this.setup.hasManualScoreType}&c=${this.competitionId}&s=${this.stageId}&i=${(this.page - 1) * this.pageSize + i + 1}`).href) |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|