From f42ce357bef71e86d52b8c9fd6bcc3b34df494b8 Mon Sep 17 00:00:00 2001 From: yujialong <479214531@qq.com> Date: Wed, 11 Jan 2023 10:34:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=9B=E4=BA=8B=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 31 ++ package.json | 1 + src/assets/css/main.css | 3 + src/assets/img/avg.png | Bin 0 -> 8287 bytes src/assets/img/point.png | Bin 0 -> 1050 bytes src/assets/img/report2.png | Bin 0 -> 14621 bytes src/assets/img/report3.png | Bin 0 -> 14731 bytes src/assets/img/report4.png | Bin 0 -> 15192 bytes src/assets/img/report5.png | Bin 0 -> 14905 bytes src/assets/img/total.png | Bin 0 -> 9027 bytes src/const/match.js | 48 +++ src/router/index.js | 20 + src/setting.js | 2 +- src/utils/api.js | 29 +- src/views/course/AddCurriculum.vue | 3 +- src/views/match/add/index.vue | 22 +- src/views/match/add/set.vue | 33 +- src/views/match/add/step1.vue | 18 +- src/views/match/add/step2.vue | 121 +++++-- src/views/match/add/step3.vue | 73 +++- src/views/match/list/index.vue | 106 +++++- src/views/match/manage/matchArch.vue | 147 +++----- src/views/match/manage/matchArchList.vue | 381 +++++++++++++++++++ src/views/match/manage/matchInfo.vue | 95 +++++ src/views/match/manage/matchRank.vue | 443 +++++++++++++++++++++++ src/views/match/manage/matchReport.vue | 370 +++++++++++++++++++ src/views/match/manage/matchSignup.vue | 233 ++++++++++-- src/views/match/manage/notice.vue | 2 +- src/views/order/AddOrder.vue | 3 +- src/views/system/staff.vue | 3 +- 30 files changed, 1956 insertions(+), 231 deletions(-) create mode 100644 src/assets/img/avg.png create mode 100644 src/assets/img/point.png create mode 100644 src/assets/img/report2.png create mode 100644 src/assets/img/report3.png create mode 100644 src/assets/img/report4.png create mode 100644 src/assets/img/report5.png create mode 100644 src/assets/img/total.png create mode 100644 src/const/match.js create mode 100644 src/views/match/manage/matchArchList.vue create mode 100644 src/views/match/manage/matchInfo.vue create mode 100644 src/views/match/manage/matchRank.vue create mode 100644 src/views/match/manage/matchReport.vue diff --git a/package-lock.json b/package-lock.json index ba66ec7..cd9f292 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4080,6 +4080,22 @@ "safer-buffer": "^2.1.0" } }, + "echarts": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.1.tgz", + "integrity": "sha512-9ltS3M2JB0w2EhcYjCdmtrJ+6haZcW6acBolMGIuf01Hql1yrIV01L1aRj7jsaaIULJslEP9Z3vKlEmnJaWJVQ==", + "requires": { + "tslib": "2.3.0", + "zrender": "5.4.1" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -13498,6 +13514,21 @@ "camelcase": "^5.0.0", "decamelize": "^1.2.0" } + }, + "zrender": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.1.tgz", + "integrity": "sha512-M4Z05BHWtajY2241EmMPHglDQAJ1UyHQcYsxDNzD9XLSkPDqMq4bB28v9Pb4mvHnVQ0GxyTklZ/69xCFP6RXBA==", + "requires": { + "tslib": "2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } } } } diff --git a/package.json b/package.json index f82f47c..4684046 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "babel-polyfill": "^6.26.0", "blueimp-md5": "^2.19.0", "clipboard": "^2.0.11", + "echarts": "^5.4.1", "element-theme": "^2.0.1", "element-ui": "^2.13.0", "file-saver": "^2.0.5", diff --git a/src/assets/css/main.css b/src/assets/css/main.css index bc79aa0..6b7c765 100644 --- a/src/assets/css/main.css +++ b/src/assets/css/main.css @@ -468,4 +468,7 @@ li { } .el-tooltip__popper { max-width: 500px !important; +} +.no-atTheMoment > .el-picker-panel__footer > .el-button--text:first-child{ + display: none; } \ No newline at end of file diff --git a/src/assets/img/avg.png b/src/assets/img/avg.png new file mode 100644 index 0000000000000000000000000000000000000000..cda731aff060d5c5df4ff93517ad21365d902fa4 GIT binary patch literal 8287 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 Ln9ltop+NT^>Onb% literal 0 HcmV?d00001 diff --git a/src/assets/img/report2.png b/src/assets/img/report2.png new file mode 100644 index 0000000000000000000000000000000000000000..9ecb8199f08123b5dec22c198a6ea33a4466d184 GIT binary patch literal 14621 zcmeI3U1%d!6vuBBzgqgB!n&@q46}%z$$TW)G((b7lhzhC-P)!$5y73z+_XcJnQ>;a zNekklAn2p`P()bW7grZWTu`VF3L=OvJ_+KBiy)#eet@t(xber%TG*C9-Bl6O)o9xSIPCL|9ktbpUqCDTM7wK$DYcy>NV3k2vl(s1qL#BMNU2mx5M@D@BSaB#cT7)hMNIcZ7~~*M9=n=j*q&jT zoF7-MSPd`3^M0c4r*mI*yPL>#JM0KWp{3e_6cvS0PP*3hu^Ub;SemX0xQ6T4^jzX6 zjr6m(EYEVctT8FO(_<5pniLA%+#}apua8Xadh=%qf)3J=o^El+#=&Hl_(-+B~8M}7eGRC<1Gof413SouPx{BF-SX0 zij;&gfO0Sf**d!FssAYo)Pgv=rc^Dbu6kLcu5Mz%HaF8kZxATE4W;C)n&psX;cP4| zj2Z@BL6a#MRetgdIr&G^3s z4C4d$@j04X*gR}Qg`on~_#m!T^_r@K=Qc@CP_}s(u-{`aa$4}u{F>2UgK)IJGzZN( zT*|b6lqsYQ$dc3mKk4kDv0mm-U-HXYYXthFERv5P`QIH^I6dfEKHL>f54!d|*G8Ps5ZkzMFa&57oQ4v7_!v$$jZH9}A2nrZ3NP}uKTvS9*z;HntRGZj3(}z43>Os< z6fj(n2GwS`sED9|;es@%Hp4|l1O*Hiq(QYAE-E4@V7MR+s?Bgw5kUdN1!+)ihKq^_ z3K%X(gK9HeR76m~a6uYWo8h7&f&zvM(xBRh;+pKe@P|$EmS2;+&bM3sZlAmg$Z3nK z1%!4VKsnA*Iy87hzR|91|ek+p?j>?p8axxXrEuo&lOwWSFX0(vo}YiFD~Aq zm&JE~Y`@_A{?*6lCT=@E%`4^4SFWAE_rBxP7u4!p_1pI4r+#Xe-~YOOxw`((?CJF> z{!;ssw|=f%Jc^IRi`UvmN`L)u)5eo`lFNm+|7<5eihTG;`>~MJpE*AC}?Ml=Zw`S)Y;G7tg1xZ zTY?EbVZ_jo+C65X#Kgaty!S4}#A|DckAX|C4qb?kU zO(iS#$Ga-!@P85akZl_x#}x_%Z^7@?%|T8Gg+d(f<9t33R(PyY&6bKD&01DYGMy)m zEZI~ITh%qz$tz{_5j)~`JB6yR%5~+9Y9Y<4u)`F&qGWJ_m*<+96uIg#M$BAkXo}3C z9Lgijwy;lV>NAFPTepVv7A33QEeqp0NhGSZn~pc1Z(7>2*Y3m!DoC3;t<;Dced*p*%xje63>4M3SwWDP7M+%d4z+ z8X+5tvCFrpnxYr16=AMXU7PA!A{3Ww6!r0V_3(cDml6cg&x=8RCEp?PJV;VjHsna? zikcmrks}~tx33-M0LsQ3c0CTV7r>Q*hh zG)KXb#S6D|j3v>I`qt@=oLV}L49T>Rv)Ll<>D^X6zpBTR<0)-gQIeg5EGj#D0V!dw zuC+F-ssau+7T}>m7}m!<=*G z=hXT+D7V&6&GcfOIhA4OC=>BAz(bNs_=PYxqpeoCtWP`BnHwqT+kHHKaf0(%vBK^~ z>%hIOu)EP(b8ga9JL;=cYiI^8=e#YS2uXZvfTF8|L4PpJH8wXodetJzrQ<5zx|Xvb zeSwOnv7@PRpp_AHRE*`R0zcxVnJl;BTLgS}!c}ii>Ln3(_FQ6c-T@6i{4{1~I0%h=`zo;(|1YF~vnh1O*fqq(O`+ zE+Qf*ptv9nVoY%n5kUdP1!)jtii?N{3Mei}gBVj>L_|L${x#RsbL=HF_u@0ZTotx{vFiG#bJC-iyN=G=)A?TC$wQ}Je7rX_@y!m` z-sG9_4jliaZ~TmJa^i>OU;g#f##xicz21-d{@%=Q z{r1G>u9ZjL{P->F{Q5s;pWgo6o_X{4rj7m=-Z@Zcd$euooafP%u|?`s?Cj6!sUt5h z{_5)cw_=}37jMX`?@YvYDVyx6)BDrI8xNx&(ZHp<+@Cjhf6Y9*DV{v&lGowOW_s3c Lh=2Ip_E-J|LkA5s literal 0 HcmV?d00001 diff --git a/src/assets/img/report4.png b/src/assets/img/report4.png new file mode 100644 index 0000000000000000000000000000000000000000..3637e00fbd2e96b741c59c849e26708835f1c23a GIT binary patch literal 15192 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 E1=X=x@Bjb+ literal 0 HcmV?d00001 diff --git a/src/assets/img/total.png b/src/assets/img/total.png new file mode 100644 index 0000000000000000000000000000000000000000..5c4f163c3ab823f02742420126305cdf5ccc7e50 GIT binary patch literal 9027 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 literal 0 HcmV?d00001 diff --git a/src/const/match.js b/src/const/match.js new file mode 100644 index 0000000..c6c17e1 --- /dev/null +++ b/src/const/match.js @@ -0,0 +1,48 @@ +/** + * 大赛配置 + * */ + + export default { + rules: [ + { + id: 0, + name: '积分赛' + }, + { + id: 1, + name: '淘汰赛' + }, + { + id: 2, + name: '单项赛' + } + ], + methods: [ + { + id: 0, + name: '实操' + }, + { + id: 1, + name: '理论' + }, + { + id: 2, + name: '线下' + } + ], + teamCalculationMethods: [ + { + id: 0, + name: '最高分' + }, + { + id: 1, + name: '平均分' + }, + { + id: 2, + name: '总分' + } + ], +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index 653bf6d..8949259 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -137,6 +137,26 @@ let router = new Router({ component: () => import( '../views/match/manage/noticeDetail'), // meta: { title: '数据管理' } }, + { + path: '/matchArchList', + component: () => import( '../views/match/manage/matchArchList'), + // meta: { title: '数据管理' } + }, + { + path: '/matchRank', + component: () => import( '../views/match/manage/matchRank'), + // meta: { title: '数据管理' } + }, + { + path: '/matchReport', + component: () => import( '../views/match/manage/matchReport'), + // meta: { title: '数据管理' } + }, + { + path: '/matchInfo', + component: () => import( '../views/match/manage/matchInfo'), + // meta: { title: '数据管理' } + }, { path: `/theoreticalCourse`, component: () => import("../views//theoreticalCourse/list"), diff --git a/src/setting.js b/src/setting.js index 9a83c3b..1ed2e9f 100644 --- a/src/setting.js +++ b/src/setting.js @@ -11,7 +11,7 @@ if (isDev) { jumpPath = 'http://192.168.31.125:8087/' // 本地调试-需要启动本地判分点系统 host = 'http://121.37.12.51/' // host = 'https://huorantech.cn/' - // host = 'http://192.168.31.51:9000/'// 榕 + host = 'http://192.168.31.51:9000/'// 榕 host = 'http://192.168.31.116:9000/'// 赓 } else if (isPro) { jumpPath = 'https://www.huorantech.cn/judgmentPoint/' diff --git a/src/utils/api.js b/src/utils/api.js index 14b8dec..f6eb6e4 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -1,7 +1,8 @@ import Setting from "@/setting"; const host = Setting.apiBaseURL -const host1 = 'http://192.168.31.137:9000/' +const host1 = 'http://192.168.31.51:9000/' +const host2 = 'http://121.37.12.51/' const uploadURL = Setting.uploadURL export default { @@ -302,8 +303,9 @@ export default { disabledEventsCompetition: `competition/competition/management/disabledEvents`, editCompetition: `competition/competition/management/editCompetition`, getCompetition: `competition/competition/management/getCompetition`, - disabledEventsCompetition: `competition/competition/management/disabledEvents`, getProjectAssessmentByCompetition: `occupationlab/occupationlab/projectManage/getProjectAssessmentByCompetition`, + publishCompetition: `competition/competition/management/publishCompetition`, + detailsOfCompetitionStage: `${host1}competition/competition/management/detailsOfCompetitionStage`, // 赛事内容 addCompetitionContent: `competition/competition/content/addCompetitionContent`, @@ -332,6 +334,9 @@ export default { excelExport: `competition/competition/registration/excelExport`, exportDataInBatches: `competition/competition/registration/exportDataInBatches`, queryRegistrationByCondition: `competition/competition/registration/queryRegistrationByCondition`, + searchTeam: `competition/competition/team/searchTeam`, + joinCompetitionTeam: `competition/competition/team/joinCompetitionTeam`, + addCompetitionTeam: `competition/competition/team/addCompetitionTeam`, // 赛事公告 addAnnouncement: `competition/competition/announcement/addAnnouncement`, amendmentAnnouncement: `competition/competition/announcement/amendmentAnnouncement`, @@ -339,4 +344,24 @@ export default { disableAnnouncement: `competition/competition/announcement/disableAnnouncement`, queryAnnouncementByCompetitionId: `competition/competition/announcement/queryAnnouncementByCompetitionId`, queryAnnouncementDetails: `competition/competition/announcement/queryAnnouncementDetails`, + // 赛事成绩 + batchDeleteContestGrade: `${host1}competition/competition/performance/batchDeleteContestGrade`, + batchImportGrades: `${host1}competition/competition/performance/batchImportGrades`, + exportExperimentalResultsInBatch: `${host1}competition/competition/performance/exportExperimentalResultsInBatch`, + performanceExportFailure: `${host1}competition/competition/performance/exportFailure`, + stageGradeManagementList: `${host1}competition/competition/performance/stageGradeManagementList`, + stageRaceRanking: `${host1}competition/competition/rank/stageRaceRanking`, + overallStandingsInThePointsRace: `${host1}competition/competition/rank/overallStandingsInThePointsRace`, + batchImportRanking: `${host1}competition/competition/rank/batchImportRanking`, + rankExportFailure: `${host1}competition/competition/rank/exportFailure`, + publishRanking: `${host1}competition/competition/rank/publishRanking`, + stageTeamScoreDetails: `${host1}competition/competition/rank/stageTeamScoreDetails`, + multipleStageTeamScoreDetails: `${host1}competition/competition/rank/multipleStageTeamScoreDetails`, + detailsOfTotalTeamScores: `${host1}competition/competition/rank/detailsOfTotalTeamScores`, + cancelRanking: `${host1}competition/competition/rank/cancelRanking`, + reportDetail: `${host1}occupationlab/occupationlab/achievement/reportDetail`, + deleteLastPublication: `${host1}competition/competition/rank/deleteLastPublication`, + gradeImport: `${host2}template/赛事成绩导入模板.xlsx`, + rankImportTeam: `${host2}template/赛事排名导入模板(团队赛).xlsx`, + rankImportPerson: `${host2}template/赛事排名导入模板(个人赛).xlsx`, }; \ No newline at end of file diff --git a/src/views/course/AddCurriculum.vue b/src/views/course/AddCurriculum.vue index 83af732..a29a4dc 100644 --- a/src/views/course/AddCurriculum.vue +++ b/src/views/course/AddCurriculum.vue @@ -544,7 +544,6 @@ export default { }, mounted() { - console.log(33, this.$store.state.btns.includes('/curriculum:支持多系统组课')) this.getSubject() this.getConfig() this.getSystem() @@ -1025,7 +1024,7 @@ export default { const id = this.form.cid const updateTime = this.updateTime // 更改了信息才需要提示 - if ((id && updateTime > 1) || (!id && updateTime)) { + if ((id && updateTime > 2) || (!id && updateTime)) { this.$confirm(`编辑的内容未保存,是否保存?`, '提示', { type: 'warning' }).then(() => { diff --git a/src/views/match/add/index.vue b/src/views/match/add/index.vue index 21fdbc3..a1b1be0 100644 --- a/src/views/match/add/index.vue +++ b/src/views/match/add/index.vue @@ -29,14 +29,15 @@
- + -
- +
+ 预览 @@ -59,12 +60,14 @@ export default { data() { return { id: this.$route.query.id, + competitionId: '', step: 1, submiting: false, updateTime: 0, setupId: '', releaseType: 0, - editing: 0 + editing: 0, + showBtns: true }; }, components: { @@ -82,12 +85,17 @@ export default { save(status, next = 0) { this.$refs['step' + this.step].save(status, next, this.releaseType) }, + // 上一步 + prev() { + this.step-- + }, // 发布后的逻辑 - next(next, id) { + next(next, setupId, competitionId) { if (!next) { this.$router.push(`/match?page=${this.$store.state.matchPage}`) } else if (next === 2) { - if (id) this.setupId = id + if (setupId) this.setupId = setupId + if (competitionId) this.competitionId = competitionId this.step++ } }, diff --git a/src/views/match/add/set.vue b/src/views/match/add/set.vue index ed2984f..7c48d65 100644 --- a/src/views/match/add/set.vue +++ b/src/views/match/add/set.vue @@ -26,7 +26,8 @@ start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd HH:mm:ss" - value-format="yyyy-MM-dd HH:mm:ss"> + value-format="yyyy-MM-dd HH:mm:ss" + @change="timeChange">
@@ -98,7 +99,7 @@ diff --git a/src/views/match/manage/matchArch.vue b/src/views/match/manage/matchArch.vue index 0994a59..cd5cba5 100644 --- a/src/views/match/manage/matchArch.vue +++ b/src/views/match/manage/matchArch.vue @@ -1,19 +1,19 @@ @@ -68,7 +112,8 @@ export default { data() { return { token: sessionStorage.getItem('token'), - id: this.$route.query.id, + id: +this.$route.query.id, + status: '', statusList: [ { id: '', @@ -88,7 +133,44 @@ export default { multipleSelection: [], page: 1, pageSize: 10, - totals: 0 + total: 0, + clients: [], + addVisible: false, + form: { + competitionId: this.$route.query.id, + userName: '', + workNumber: '', + schoolId: '', + teamId: '', + whetherSignUp: 0 + }, + rules: { + schoolId: [ + { required: true, message: "请选择所属院校", trigger: "change" } + ], + userName: [ + { required: true, message: "请输入姓名", trigger: "blur" } + ], + workNumber: [ + { required: true, message: "请输入学号", trigger: "blur" } + ], + teamId: [ + { required: true, message: "请选择所属团队", trigger: "change" } + ] + }, + submiting: false, + + + teamVisible: false, + teams: [], + teamNameRepeat: false, + teamForm: { + competitionId: this.$route.query.id, + registrationInvitationCode: '', + teamName: '', + invitationCode: '', + whetherSignUp: 0 + }, }; }, watch: { @@ -100,7 +182,9 @@ export default { } }, mounted() { - this.initData(); + this.initData() + this.getClient() + this.getTeam() }, methods: { getData() { @@ -111,7 +195,7 @@ export default { keyWord: this.keyword, }).then(({ data }) => { this.listData = data.records; - this.totals = data.total; + this.total = data.total; this.$refs.table.clearSelection(); }).catch(res => { }); @@ -128,35 +212,90 @@ export default { this.getData(); }, switchOff(val, row, index) { - this.$put(`${this.api.disableApplicant}/${row.id}/${val}`) + this.$put(`${this.api.disableRegistration}?competitionRegistrationId=${row.id}&isDisable=${val}`) .then(res => { }) .catch(err => { }); }, - disalbeAllData() { - if (this.multipleSelection.length != "") { - let newArr = this.multipleSelection; - let delList = newArr.map(item => { - return item.id; - }); - - this.$confirm("确定要禁用吗?", "提示", { - type: "warning" - }) - .then(() => { - this.$put(`${this.api.disableContests}?ids=${delList.join(",")}`).then(res => { - this.multipleSelection = []; - util.successMsg("禁用成功"); - this.getData(); - }).catch(res => { - }); - }) - .catch(() => { - }); - } else { - util.errorMsg("请先选择数据 !"); + // 新增 + add() { + this.addVisible = true + }, + // 新增人员 + submit() { + this.$refs.form.validate((valid) => { + if (valid) { + if (this.submiting) return false + this.submiting = true + this.$post(this.api.joinCompetitionTeam, this.form).then(res => { + this.addVisible = false + this.getData() + this.submiting = false + util.successMsg('报名成功!') + }).catch(res => {}) } + }) + }, + // 关闭新增员工对话框 + closeAdd() { + this.form = { + competitionId: this.id, + userName: '', + workNumber: '', + schoolId: '', + teamId: '', + whetherSignUp: 0 + } + }, + // 创建团队 + createTeam() { + this.teamForm = { + competitionId: this.id, + registrationInvitationCode: '', + teamName: '', + invitationCode: '', + whetherSignUp: 0 + } + this.teamVisible = true + }, + // 获取客户 + getClient() { + const sid = this.$store.state.dataPer.find(e => e.permissionName === '客户管理') + this.$post(this.api.queryCustomer,{ + page: 1, + size: 1000, + supplierId: (sid && !sid.all) ? sid.supplierId : '' + }).then(res => { + this.clients = res.message.list + }).catch(res => {}) + }, + // 获取团队列表 + getTeam() { + this.$get(this.api.searchTeam, { + teamName: '', + competitionId: this.id + }).then(({ teamList }) => { + this.teams = teamList + }).catch(res => {}) + }, + // 团队提交 + teamSubmit() { + const form = this.teamForm + if (!form.teamName) return util.errorMsg('请输入团队名称') + if (form.invitationCode.length !== 6) return util.errorMsg('请输入6位数团队邀请码') + this.$post(this.api.addCompetitionTeam, form).then(res => { + this.teamVisible = false + this.form.teamId + }).catch(res => {}) + }, + // 编辑 + edit(row) { + + }, + // 参赛信息 + info(row) { + this.$router.push(`/matchInfo?id=${this.id}`) }, exportAll() { const data = this.multipleSelection @@ -171,13 +310,29 @@ export default { util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) }).catch(res => {}) } else { - location.href = `${this.api.excelExport}?competitionId=${this.id}` + axios.get(`${this.api.excelExport}?competitionId=${this.id}`, { + headers: { + token: this.token + }, + responseType: 'blob' + }).then((res) => { + util.downloadFileDirect(`报名人员.xls`, new Blob([res.data])) + }).catch(res => {}) } } } }; - \ No newline at end of file diff --git a/src/views/match/manage/notice.vue b/src/views/match/manage/notice.vue index 68d1568..ba4ac06 100644 --- a/src/views/match/manage/notice.vue +++ b/src/views/match/manage/notice.vue @@ -76,7 +76,7 @@ export default { }, methods: { getData() { - this.$post(`${this.api.queryAnnouncementByCompetitionId}?pageNum=${this.pageNo}&pageSize=${this.pageSize}&CompetitionId=${this.id}`).then(({ data }) => { + this.$post(`${this.api.queryAnnouncementByCompetitionId}?pageNum=${this.pageNo}&pageSize=${this.pageSize}&competitionId=${this.id}`).then(({ data }) => { this.listData = data.records this.totals = data.total this.$refs.table.clearSelection() diff --git a/src/views/order/AddOrder.vue b/src/views/order/AddOrder.vue index 2a8abc9..62a67f3 100644 --- a/src/views/order/AddOrder.vue +++ b/src/views/order/AddOrder.vue @@ -1540,7 +1540,8 @@ export default { customerId: this.form.customerId, id: row.dataOrCourseId, startTime: date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate(), - endTime: row.endTime + endTime: row.endTime, + authority: row.authority }).then(res => { orderRepeat.includes(cId) && orderRepeat.splice(orderRepeat.findIndex(e => e === cId), 1) if (res.endTime) { diff --git a/src/views/system/staff.vue b/src/views/system/staff.vue index 43ba39b..55ab3d8 100644 --- a/src/views/system/staff.vue +++ b/src/views/system/staff.vue @@ -235,6 +235,7 @@ export default { } } const phonePass = (rule, value, callback) => { + console.log("🚀 ~ file: staff.vue:238 ~ phonePass ~ value", value) if (value) { const pattern = /^1[3456789]\d{9}$/ if(pattern.test(value)){ @@ -311,7 +312,7 @@ export default { { required: true, message: "请选择授权角色", trigger: "change" } ], phone: [ - { validator: phonePass, trigger: 'blur' } + { required: true, validator: phonePass, trigger: 'blur' } ], email: [ { validator: emailPass, trigger: 'blur' }