完成赛事接入理论

dev_202412
yujialong 2 months ago
parent a352c30a98
commit fd1c5ef8be
  1. 1
      src/pages/lesson/list/index.vue
  2. 137
      src/pages/match/add/set.vue
  3. 21
      src/pages/match/add/step3.vue

@ -173,6 +173,7 @@ export default {
methods: {
//
getData () {
this.loading = true
this.$post(this.api.curriculumList, {
...this.form,
pageNum: this.page,

@ -29,28 +29,30 @@
<!-- 理论系统选择试卷库非理论则选择系统 -->
<el-card shadow="hover" class="m-b-20">
<div>
<el-radio-group class="m-b-20" v-model="courseSystem">
<el-radio-group class="m-b-20" v-model="courseSystem" @change="courseSystemChange">
<el-radio :label="0">从课程中选择</el-radio>
<el-radio :label="1">从系统中选择</el-radio>
</el-radio-group>
<div class="inline-input">
<!-- 理论 && 选择课程 -->
<el-select v-if="isTheory && !courseSystem" v-model="libraryId" placeholder="请选择试卷库" @change="getProject">
<el-option v-for="(item, i) in paperLibraries" :key="i" :label="item.libraryName" :value="item.libraryId">
<!-- 选择系统 -->
<el-select v-if="courseSystem" v-model="systemId" placeholder="请选择系统" @change="getProject">
<el-option v-for="(item, i) in services" :key="i" :label="item.systemName" :value="item.systemId">
</el-option>
</el-select>
<!-- 实训 && 选择课程 -->
<el-cascader v-else-if="!isTheory && !courseSystem" ref="cur" v-model="mallIds" :options="curs"
:props="{ checkStrictly: true, value: 'id' }" popper-class="course-cas" @expand-change="curChange"
@change="curChange"></el-cascader>
<template v-else>
<!-- 理论 && 选择课程 -->
<el-select v-if="isTheory && !courseSystem" v-model="libraryId" placeholder="请选择试卷库" @change="getProject">
<el-option v-for="(item, i) in paperLibraries" :key="i" :label="item.libraryName" :value="item.libraryId">
</el-option>
</el-select>
<!-- 实训 && 选择系统 -->
<el-select v-else-if="!isTheory && courseSystem" v-model="systemId" placeholder="请选择系统" @change="getProject">
<el-option v-for="(item, i) in services" :key="i" :label="item.systemName" :value="item.systemId">
</el-option>
</el-select>
<!-- 实训 && 选择课程 -->
<el-cascader v-else-if="!isTheory && !courseSystem" ref="cur" v-model="mallIds" :options="curs"
:props="{ checkStrictly: true, value: 'id' }" popper-class="course-cas" @expand-change="curChange"
@change="curChange"></el-cascader>
</template>
</div>
</div>
</el-card>
@ -67,7 +69,7 @@
</div>
<p v-if="form.paperName" style="margin-bottom: 20px">
已选试卷{{ form.paperName }}
<el-button type="primary" size="mini" @click="previewPaper(form)">预览</el-button>
<!-- <el-button type="primary" size="mini" @click="previewPaper(form)">预览</el-button> -->
</p>
<el-table :data="projects" class="table" header-align="center">
<el-table-column width="60" label="选择" align="center">
@ -96,7 +98,7 @@
<el-table-column prop="createUser" label="最近编辑人" align="center" width="110"></el-table-column>
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="text" @click="previewPaper(scope.row)">预览</el-button>
<!-- <el-button type="text" @click="previewPaper(scope.row)">预览</el-button> -->
</template>
</el-table-column>
</el-table>
@ -202,12 +204,11 @@ export default {
keyword: function (val) {
clearTimeout(this.searchTimer);
this.searchTimer = setTimeout(() => {
this.initData();
}, 500);
this.initData()
}, 500)
}
},
mounted () {
// this.getCourse()
this.getSystem()
// this.isTheory ? this.getLibrary() : this.getCourse()
},
@ -237,11 +238,23 @@ export default {
},
//
async getSystem () {
const { data } = await this.$get(this.api.getSystemListOfMall)
const { data } = await this.$get(this.api.getSystemListOfMall, {
type: this.isTheory ? 3 : 1
})
this.services = data
this.systemId = data[0].systemId
this.loadIns = Loading.service()
this.getProject()
if (data.length) {
this.systemId = this.form.systemId || data[0].systemId
this.getProject()
this.loadIns = Loading.service()
}
},
//
courseSystemChange (val) {
if (val) {
this.getSystem()
} else {
this.isTheory ? this.getLibrary() : this.getCourse()
}
},
//
curChange (val) {
@ -280,27 +293,32 @@ export default {
//
async getProject () {
try {
//
if (this.isTheory) {
const res = await this.$post(this.api.examPaperList, {
pageNum: this.page,
pageSize: this.pageSize,
type: 1,
keyWord: this.keyword,
libraryId: this.libraryId,
isDisable: 0,
status: 1
//
if (this.courseSystem) {
const { data } = await this.$get(this.api.getProjectListOfSystem, {
systemId: this.systemId
})
this.projects = res.pageList.records
this.total = res.pageList.total
} else { //
//
if (this.courseSystem) {
const res = await this.$get(this.api.getProjectListOfSystem, {
systemId: this.systemId
if (this.isTheory) {
data.forEach(e => {
e.name = e.projectName
})
this.projects = res.data
} else {
}
this.projects = data
} else {
//
if (this.isTheory) {
const res = await this.$post(this.api.examPaperList, {
pageNum: this.page,
pageSize: this.pageSize,
type: 1,
keyWord: this.keyword,
libraryId: this.libraryId,
isDisable: 0,
status: 1
})
this.projects = res.pageList.records
this.total = res.pageList.total
} else { //
const { data } = await this.$post(this.api.getProjectAssessmentByCompetition, {
pageNum: this.page,
pageSize: this.pageSize,
@ -362,34 +380,61 @@ export default {
}
}
},
//
previewPaper (row) {
this.$parent.previewPaper(row)
},
//
paperChange (id) {
const item = this.projects.find(e => e.paperId === id)
if (item) this.form.paperName = item.name
},
//
save () {
const { form } = this
const { form, courseSystem } = this
if (!form.time.length) return Util.warningMsg('请选择比赛时间')
const { playStartTime, playEndTime } = this.step1
if (new Date(form.time[0]) < new Date(playStartTime) || new Date(form.time[1]) > new Date(playEndTime)) return Util.warningMsg('设置的阶段比赛时间必须要在第一步设置的竞赛时间范围内,请重新设置。')
//
if (this.isTheory) {
if (!this.libraryId) return Util.warningMsg('请选择试卷库')
// if (!this.libraryId) return Util.warningMsg('')
if (!form.paperId) return Util.warningMsg('请选择试卷')
form.libraryId = this.libraryId
form.libraryId = courseSystem ? '' : this.libraryId
form.systemId = courseSystem ? this.systemId : ''
const curPaper = this.projects.find(e => e.paperId === form.paperId)
if (curPaper) form.paperName = curPaper.name
} else {
if (!form.cid) return Util.warningMsg('请选择课程')
// if (!form.cid) return Util.warningMsg('')
if (!form.projectId) return Util.warningMsg('请选择项目')
const { systemId, systemName, projectName } = this.projects.find(e => e.projectId == form.projectId)
if (systemId) form.systemId = systemId
if (projectName) form.projectName = projectName
if (systemName) form.systemName = systemName
}
console.log(11, form)
if (courseSystem) {
form.mallId = ''
form.cid = ''
}
form.startTime = form.time[0]
form.endTime = form.time[1]
this.handlePaper()
this.$emit('hideSet', this.form)
},
//
async handlePaper () {
const { form } = this
// id
if (this.isTheory && form.paperName !== form.originPaperName) {
const res = await this.$post(this.api.copyExamPaper, {
associatedID: form.stageId,
paperId: form.paperId,
typeId: 1
})
if (res.examPaper) form.paperId = res.examPaper.paperId
}
},
//
back () {
this.$emit('update:form', this.$parent.curOriginForm)

@ -72,8 +72,8 @@
<div class="flex">
{{ item.paperName }}&emsp;
<el-form>
<el-button v-if="item.paperName" type="primary" size="mini" :disabled="false"
@click="previewPaper(item)">预览</el-button>
<!-- <el-button v-if="item.paperName" type="primary" size="mini" :disabled="false"
@click="previewPaper(item)">预览</el-button> -->
</el-form>
</div>
</el-form-item>
@ -99,7 +99,7 @@
<el-dialog title="提示" :visible.sync="tipsVisible" width="500px" :close-on-click-modal="false"
custom-class="tips-dia">
<p style="font-size: 17px;text-align: center;color: #9076ff;">编辑发布成功</p>
<p style="font-size: 17px;text-align: center;color: #062c87;">编辑发布成功</p>
<p style="margin: 5px 0px 10px;line-height: 1.6">
温馨提示报名结束后更改报名时间或赛程规则不影响已分配的阶段参赛人员且后续添加的人员不会自动分配如需重新自动分配所有团队请到报名列表执行全员重新分配操作
</p>
@ -152,11 +152,13 @@ export default {
stageId: '',
startTime: '',
systemId: '',
paperId: '',
paperName: '',
offlineAddress: '',
offlineButton: 0,
onlineAddress: '',
onlineButton: 0,
time: []
time: [],
},
form: [],
setVisible: false,
@ -237,6 +239,7 @@ export default {
form.method = e.method
form.stageId = e.stageId
form.stageName = e.stageName
if (form.paperName) form.originPaperName = form.paperName //
this.form.push(form)
})
this.resumeData()
@ -419,11 +422,17 @@ export default {
}
e.startTime = e.time[0]
e.endTime = e.time[1]
if (e.method !== 2 && !e.cid) {
if (e.method === 0 && !e.projectId) {
invalid = 1
Util.errorMsg('请选择课程')
Util.errorMsg('请选择项目')
break
}
if (e.method === 1 && !e.paperId) {
invalid = 1
Util.errorMsg('请选择试卷')
break
}
if (e.method === 2) { // 线
if (!e.offlineAddress) {
invalid = 1

Loading…
Cancel
Save