yujialong 8 months ago
parent 7b50f26425
commit 072b5d9fb8
  1. 7
      src/api/index.js
  2. 18
      src/pages/match/list/index.vue
  3. 4
      src/pages/match/manage/index.vue
  4. 17
      src/pages/match/manage/matchArchList.vue
  5. 1001
      src/pages/match/manage/matchSignup.vue
  6. 24
      src/pages/project/list/index.vue
  7. 1
      src/pages/station/preview/index.vue
  8. 2
      src/setting.js

@ -169,6 +169,7 @@ export default {
queryCustomer: `nakadai/nakadai/customer/queryCustomer`, queryCustomer: `nakadai/nakadai/customer/queryCustomer`,
getSchoolsByProvince: `nakadai/nakadai/school/getSchoolsByProvince`, getSchoolsByProvince: `nakadai/nakadai/school/getSchoolsByProvince`,
getRedisCacheCompetition: `competition/competition/management/getRedisCache`, getRedisCacheCompetition: `competition/competition/management/getRedisCache`,
copyCompetition: `competition/competition/management/copyCompetition`,
// 赛事内容 // 赛事内容
addCompetitionContent: `competition/competition/content/addCompetitionContent`, addCompetitionContent: `competition/competition/content/addCompetitionContent`,
@ -216,6 +217,12 @@ export default {
enquireAboutSchoolStudents: `users/users/userAccount/enquireAboutSchoolStudents`, enquireAboutSchoolStudents: `users/users/userAccount/enquireAboutSchoolStudents`,
cancelParticipant: `competition/competition/teamParticipant/cancelParticipant`, cancelParticipant: `competition/competition/teamParticipant/cancelParticipant`,
schoolsInCompetitionArea: `competition/competition/range/schoolsInCompetitionArea`, schoolsInCompetitionArea: `competition/competition/range/schoolsInCompetitionArea`,
batchImportPersonalData: `${host}competition/competition/registration/batchImportPersonalData`,
batchImportTeamData: `${host}competition/competition/registration/batchImportTeamData`,
TeamDataExportFailure: `${host}competition/competition/registration/exportFailure`,
competionPersonTemplate: `https://huoran.oss-cn-shenzhen.aliyuncs.com/%E6%95%99%E5%B8%88%E7%AB%AF%E4%B8%AA%E4%BA%BA%E8%B5%9B%E6%8A%A5%E5%90%8D%E4%BA%BA%E5%91%98%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx`, // 教师端个人报名人员模板
competionTeamTemplate: `https://huoran.oss-cn-shenzhen.aliyuncs.com/%E6%95%99%E5%B8%88%E7%AB%AF%E5%9B%A2%E9%98%9F%E8%B5%9B%E6%8A%A5%E5%90%8D%E4%BA%BA%E5%91%98%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xlsx`, // 教师端团队报名人员导入模板
// 赛事公告 // 赛事公告
addAnnouncement: `competition/competition/announcement/addAnnouncement`, addAnnouncement: `competition/competition/announcement/addAnnouncement`,
amendmentAnnouncement: `competition/competition/announcement/amendmentAnnouncement`, amendmentAnnouncement: `competition/competition/announcement/amendmentAnnouncement`,

@ -125,9 +125,11 @@
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
align="center" align="center"
width="260"> width="280">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button v-if="scope.row.playingStages && scope.row.playingStages.length" <el-button type="text"
@click="copy(scope.row)">复制</el-button>
<el-button v-if="scope.row.publishStatus && scope.row.playingStages && scope.row.playingStages.length"
type="text" type="text"
@click="editEndTime(scope.row)" @click="editEndTime(scope.row)"
v-auth>修改结束时间</el-button> v-auth>修改结束时间</el-button>
@ -381,6 +383,16 @@ export default {
add () { add () {
this.$router.push("/match/add"); this.$router.push("/match/add");
}, },
//
copy (row) {
this.$confirm('确定要复制吗', "提示", {
type: "warning"
}).then(async () => {
await this.$post(`${this.api.copyCompetition}?competitionId=${row.id}`)
util.successMsg('复制成功')
this.getData()
}).catch(() => { })
},
// //
editEndTime (row) { editEndTime (row) {
this.modifyVisible = true this.modifyVisible = true
@ -406,7 +418,7 @@ export default {
}).catch(err => { }) }).catch(err => { })
}, },
manage (row) { manage (row) {
this.$router.push(`/match/manage?id=${row.id}&name=${row.competitionName}`) this.$router.push(`/match/manage?id=${row.id}&releaseType=${row.releaseType}&name=${row.competitionName}`)
}, },
changeType () { changeType () {

@ -52,6 +52,7 @@ export default {
data () { data () {
return { return {
name: this.$route.query.name, name: this.$route.query.name,
releaseType: +this.$route.query.releaseType,
active: this.$route.query.tab || '', active: this.$route.query.tab || '',
tabs: { tabs: {
tab1: "大赛详情", tab1: "大赛详情",
@ -110,7 +111,8 @@ export default {
const tab5 = btns.includes('/match/list:管理:报名人员') const tab5 = btns.includes('/match/list:管理:报名人员')
tab1 || this.$delete(this.tabs, 'tab1') tab1 || this.$delete(this.tabs, 'tab1')
tab2 || this.$delete(this.tabs, 'tab2') if (!tab2 || !this.releaseType) this.$delete(this.tabs, 'tab2')
console.log("🚀 ~ initTabs ~ this.releaseType:", (!tab2 || !this.releaseType))
tab3 || this.$delete(this.tabs, 'tab3') tab3 || this.$delete(this.tabs, 'tab3')
tab4 || this.$delete(this.tabs, 'tab4') tab4 || this.$delete(this.tabs, 'tab4')
tab5 || this.$delete(this.tabs, 'tab5') tab5 || this.$delete(this.tabs, 'tab5')

@ -15,8 +15,8 @@
<div class="stat"> <div class="stat">
<div class="nums"> <div class="nums">
<div class="item"> <div class="item">
<p class="name">实验总人数</p> <p class="name">已参加/应参加人数</p>
<p class="val">{{ totalNumber }}</p> <p class="val">{{ isNaN(statData.totalNumber) ? '' : statData.attendance + '/' + statData.totalNumber }}</p>
</div> </div>
<div class="item"> <div class="item">
<p class="name">实验平均分</p> <p class="name">实验平均分</p>
@ -109,22 +109,26 @@
width="90" width="90"
align="center"> align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.timeSum }}min {{ scope.row.timeSum ? scope.row.timeSum + 'min' : '--' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="submitTime" <el-table-column prop="submitTime"
label="提交时间" label="提交时间"
min-width="150" min-width="150"
align="center"> align="center">
<template slot-scope="scope">
{{ scope.row.submitTime || '--' }}
</template>
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
align="center" align="center"
width="160"> width="160">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button :disabled="!scope.row.reportId"
type="text"
@click="show(scope.row)">{{ scope.row.reportId ? '查看成绩报告' : '未参加' }}</el-button>
<el-button v-if="scope.row.reportId" <el-button v-if="scope.row.reportId"
type="text" type="text"
@click="show(scope.row)">查看成绩报告</el-button>
<el-button type="text"
@click="handleDelete(scope.row)">删除</el-button> @click="handleDelete(scope.row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -286,7 +290,6 @@ export default {
page1: 1, page1: 1,
total1: 0, total1: 0,
totalNumber: 0, //
avgScore: 0, // avgScore: 0, //
importVisible: false, importVisible: false,
uploadList: [], uploadList: [],
@ -356,7 +359,6 @@ export default {
this.list = page.records this.list = page.records
this.statData = data this.statData = data
this.avgScore = (+data.avgScore).toFixed(2) this.avgScore = (+data.avgScore).toFixed(2)
this.totalNumber = data.totalNumber
this.getChart() this.getChart()
}).catch(res => { }) }).catch(res => { })
} }
@ -625,6 +627,7 @@ export default {
.item { .item {
width: 300px; width: 300px;
min-height: 145px;
padding: 30px 30px; padding: 30px 30px;
margin: 0 10px; margin: 0 10px;
box-sizing: border-box; box-sizing: border-box;

File diff suppressed because it is too large Load Diff

@ -189,7 +189,7 @@
<el-form-item v-if="!curRow.projectManage.founder" <el-form-item v-if="!curRow.projectManage.founder"
label="课程"> label="课程">
<el-cascader v-model="copyMallId" <el-cascader v-model="copyMallId"
:options="curs" :options="copyCurs"
:props="{ checkStrictly: true, value: 'id' }" :props="{ checkStrictly: true, value: 'id' }"
popper-class="course-cas" popper-class="course-cas"
@expand-change="copySystemChange" @expand-change="copySystemChange"
@ -200,6 +200,7 @@
class="dialog-footer"> class="dialog-footer">
<el-button @click="copyVisible = false"> </el-button> <el-button @click="copyVisible = false"> </el-button>
<el-button type="primary" <el-button type="primary"
:loading="submiting"
@click="copySubmit"> </el-button> @click="copySubmit"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
@ -214,6 +215,7 @@ export default {
data () { data () {
return { return {
showBack: Boolean(this.$route.query.show), showBack: Boolean(this.$route.query.show),
lc: [11, 12, 19],
cid: [], cid: [],
curs: [], curs: [],
systemId: "", systemId: "",
@ -288,10 +290,12 @@ export default {
page: +this.$route.query.page || 1, page: +this.$route.query.page || 1,
pageSize: 10, pageSize: 10,
multipleSelection: [], multipleSelection: [],
submiting: false,
copyVisible: false, copyVisible: false,
copyCurs: [],
copyForm: { copyForm: {
projectName: '', projectName: '',
mallId: [] mallId: ''
}, },
copyMallId: [], copyMallId: [],
curRow: { curRow: {
@ -481,8 +485,15 @@ export default {
copyData (projectId) { // id copyData (projectId) { // id
this.copyVisible = true; this.copyVisible = true;
this.$get(`${this.api.getProjectDetail}?projectId=${projectId}`).then(res => { this.$get(`${this.api.getProjectDetail}?projectId=${projectId}`).then(res => {
const { systemId } = res.projectManage
// 3
this.copyCurs = this.lc.includes(systemId) ? this.curs.filter(e => e.systemId == systemId) : this.curs.filter(e => !this.lc.includes(+e.systemId))
console.log("🚀 ~ this.$get ~ this.curs:", this.copyCurs)
this.copyMallId = [] this.copyMallId = []
this.copyForm.projectName = res.projectManage.projectName; this.copyForm = {
projectName: res.projectManage.projectName,
mallId: ''
}
this.curRow = { this.curRow = {
projectManage: JSON.parse(JSON.stringify(res.projectManage)), projectManage: JSON.parse(JSON.stringify(res.projectManage)),
projectJudgmentList: JSON.parse(JSON.stringify(res.projectJudgmentVos)) projectJudgmentList: JSON.parse(JSON.stringify(res.projectJudgmentVos))
@ -496,8 +507,9 @@ export default {
this.copyForm.mallId = val[0] this.copyForm.mallId = val[0]
}, },
copySubmit () { copySubmit () {
if (this.submiting) return false
const form = this.copyForm const form = this.copyForm
const row = this.curRow const row = JSON.parse(JSON.stringify(this.curRow))
const fromSystem = !row.projectManage.founder const fromSystem = !row.projectManage.founder
if (!form.projectName) { if (!form.projectName) {
util.warningMsg("请输入项目名称"); util.warningMsg("请输入项目名称");
@ -508,6 +520,7 @@ export default {
util.warningMsg("请选择课程"); util.warningMsg("请选择课程");
return; return;
} }
this.submiting = true
row.projectManage.projectName = form.projectName row.projectManage.projectName = form.projectName
if (fromSystem) row.projectManage.mallId = form.mallId if (fromSystem) row.projectManage.mallId = form.mallId
row.projectManage.projectId = ""; row.projectManage.projectId = "";
@ -519,8 +532,9 @@ export default {
this.initData(); this.initData();
util.successMsg("复制实验项目成功"); util.successMsg("复制实验项目成功");
this.copyVisible = false; this.copyVisible = false;
this.submiting = false
}).catch(err => { }).catch(err => {
console.log(err); this.submiting = false
}); });
}, },
goBack () { // goBack () { //

@ -75,6 +75,7 @@
<div class="inner" <div class="inner"
v-else-if="videoSrc"> v-else-if="videoSrc">
<video class="video" <video class="video"
:key="videoSrc"
width="100%" width="100%"
height="100%" height="100%"
autoplay autoplay

@ -32,7 +32,7 @@ if (isPro) {
uploadURL = `http://121.37.12.51/` uploadURL = `http://121.37.12.51/`
host = "http://121.37.12.51/"; // 中台测试服 host = "http://121.37.12.51/"; // 中台测试服
// host = 'https://www.occupationlab.com/' // 正式服 // host = 'https://www.occupationlab.com/' // 正式服
// host = "http://192.168.31.217:9000/"; host = "http://192.168.31.217:9000/";
} else if (isSq) { } else if (isSq) {
zcPath = `10.20.100.204:8883` zcPath = `10.20.100.204:8883`
} }

Loading…
Cancel
Save