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. 997
      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`,
getSchoolsByProvince: `nakadai/nakadai/school/getSchoolsByProvince`,
getRedisCacheCompetition: `competition/competition/management/getRedisCache`,
copyCompetition: `competition/competition/management/copyCompetition`,
// 赛事内容
addCompetitionContent: `competition/competition/content/addCompetitionContent`,
@ -216,6 +217,12 @@ export default {
enquireAboutSchoolStudents: `users/users/userAccount/enquireAboutSchoolStudents`,
cancelParticipant: `competition/competition/teamParticipant/cancelParticipant`,
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`,
amendmentAnnouncement: `competition/competition/announcement/amendmentAnnouncement`,

@ -125,9 +125,11 @@
</el-table-column>
<el-table-column label="操作"
align="center"
width="260">
width="280">
<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"
@click="editEndTime(scope.row)"
v-auth>修改结束时间</el-button>
@ -381,6 +383,16 @@ export default {
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) {
this.modifyVisible = true
@ -406,7 +418,7 @@ export default {
}).catch(err => { })
},
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 () {

@ -52,6 +52,7 @@ export default {
data () {
return {
name: this.$route.query.name,
releaseType: +this.$route.query.releaseType,
active: this.$route.query.tab || '',
tabs: {
tab1: "大赛详情",
@ -110,7 +111,8 @@ export default {
const tab5 = btns.includes('/match/list:管理:报名人员')
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')
tab4 || this.$delete(this.tabs, 'tab4')
tab5 || this.$delete(this.tabs, 'tab5')

@ -15,8 +15,8 @@
<div class="stat">
<div class="nums">
<div class="item">
<p class="name">实验总人数</p>
<p class="val">{{ totalNumber }}</p>
<p class="name">已参加/应参加人数</p>
<p class="val">{{ isNaN(statData.totalNumber) ? '' : statData.attendance + '/' + statData.totalNumber }}</p>
</div>
<div class="item">
<p class="name">实验平均分</p>
@ -109,22 +109,26 @@
width="90"
align="center">
<template slot-scope="scope">
{{ scope.row.timeSum }}min
{{ scope.row.timeSum ? scope.row.timeSum + 'min' : '--' }}
</template>
</el-table-column>
<el-table-column prop="submitTime"
label="提交时间"
min-width="150"
align="center">
<template slot-scope="scope">
{{ scope.row.submitTime || '--' }}
</template>
</el-table-column>
<el-table-column label="操作"
align="center"
width="160">
<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"
type="text"
@click="show(scope.row)">查看成绩报告</el-button>
<el-button type="text"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
@ -286,7 +290,6 @@ export default {
page1: 1,
total1: 0,
totalNumber: 0, //
avgScore: 0, //
importVisible: false,
uploadList: [],
@ -356,7 +359,6 @@ export default {
this.list = page.records
this.statData = data
this.avgScore = (+data.avgScore).toFixed(2)
this.totalNumber = data.totalNumber
this.getChart()
}).catch(res => { })
}
@ -625,6 +627,7 @@ export default {
.item {
width: 300px;
min-height: 145px;
padding: 30px 30px;
margin: 0 10px;
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"
label="课程">
<el-cascader v-model="copyMallId"
:options="curs"
:options="copyCurs"
:props="{ checkStrictly: true, value: 'id' }"
popper-class="course-cas"
@expand-change="copySystemChange"
@ -200,6 +200,7 @@
class="dialog-footer">
<el-button @click="copyVisible = false"> </el-button>
<el-button type="primary"
:loading="submiting"
@click="copySubmit"> </el-button>
</span>
</el-dialog>
@ -214,6 +215,7 @@ export default {
data () {
return {
showBack: Boolean(this.$route.query.show),
lc: [11, 12, 19],
cid: [],
curs: [],
systemId: "",
@ -288,10 +290,12 @@ export default {
page: +this.$route.query.page || 1,
pageSize: 10,
multipleSelection: [],
submiting: false,
copyVisible: false,
copyCurs: [],
copyForm: {
projectName: '',
mallId: []
mallId: ''
},
copyMallId: [],
curRow: {
@ -481,8 +485,15 @@ export default {
copyData (projectId) { // id
this.copyVisible = true;
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.copyForm.projectName = res.projectManage.projectName;
this.copyForm = {
projectName: res.projectManage.projectName,
mallId: ''
}
this.curRow = {
projectManage: JSON.parse(JSON.stringify(res.projectManage)),
projectJudgmentList: JSON.parse(JSON.stringify(res.projectJudgmentVos))
@ -496,8 +507,9 @@ export default {
this.copyForm.mallId = val[0]
},
copySubmit () {
if (this.submiting) return false
const form = this.copyForm
const row = this.curRow
const row = JSON.parse(JSON.stringify(this.curRow))
const fromSystem = !row.projectManage.founder
if (!form.projectName) {
util.warningMsg("请输入项目名称");
@ -508,6 +520,7 @@ export default {
util.warningMsg("请选择课程");
return;
}
this.submiting = true
row.projectManage.projectName = form.projectName
if (fromSystem) row.projectManage.mallId = form.mallId
row.projectManage.projectId = "";
@ -519,8 +532,9 @@ export default {
this.initData();
util.successMsg("复制实验项目成功");
this.copyVisible = false;
this.submiting = false
}).catch(err => {
console.log(err);
this.submiting = false
});
},
goBack () { //

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

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

Loading…
Cancel
Save