From 108c086f7a2810ba02c05fc2176ce17681c92584 Mon Sep 17 00:00:00 2001 From: yujialong <479214531@qq.com> Date: Wed, 27 Mar 2024 15:36:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=9B=E4=BA=8B=E4=BA=BA=E5=91=98=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E3=80=81=E9=A1=B9=E7=9B=AE=E5=A4=8D=E5=88=B6=E3=80=81?= =?UTF-8?q?=E5=AD=A6=E7=94=9F=E5=88=97=E8=A1=A8=E6=89=B9=E9=87=8F=E5=88=A0?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/match/manage/index.vue | 1 - src/pages/match/manage/matchSignup.vue | 113 ++++++++++++++++++++++++- src/pages/project/list/index.vue | 48 ++++++----- src/pages/student/list/index.vue | 43 ++++------ src/setting.js | 2 +- 5 files changed, 159 insertions(+), 48 deletions(-) diff --git a/src/pages/match/manage/index.vue b/src/pages/match/manage/index.vue index 1f3f689..a9a5a90 100644 --- a/src/pages/match/manage/index.vue +++ b/src/pages/match/manage/index.vue @@ -112,7 +112,6 @@ export default { tab1 || this.$delete(this.tabs, 'tab1') 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') diff --git a/src/pages/match/manage/matchSignup.vue b/src/pages/match/manage/matchSignup.vue index fbd02e3..950e422 100644 --- a/src/pages/match/manage/matchSignup.vue +++ b/src/pages/match/manage/matchSignup.vue @@ -25,6 +25,9 @@
+ 导入 取消 + + +
+
+ 模板下载 +
+ + 上传文件 + + 部分数据导入失败,查看失败原因 +
+ + 取 消 + 确 定 + +
@@ -294,7 +339,15 @@ export default { originForm: {}, exitMember: 0, notExit: 0, - schoolDisable: false + schoolDisable: false, + + importVisible: false, + uploadList: [], + uploadFaild: false, + exportCode: '', + headers: { + token: util.local.get(Setting.tokenKey) + }, }; }, watch: { @@ -362,6 +415,64 @@ export default { if (column.prop === 'teamName') this.teamOrder = column.order ? column.order === 'ascending' ? 2 : 1 : '' this.getData() }, + + + // 批量导入 + batchImport () { + this.importVisible = true + this.uploadList = [] + this.uploadFaild = false + }, + // 模板下载 + download () { + location.href = this.api[this.info.completeCompetitionSetup.competitionType ? 'competionTeamTemplate' : 'competionPersonTemplate'] + }, + // 上传文件 + handleExceed (files, fileList) { + util.warningMsg( + `当前限制选择 1 个文件,如需更换,请删除上一个文件再重新选择!` + ) + }, + // 下载失败文件 + showFaild () { + axios.get(`${this.api.TeamDataExportFailure}?exportCode=${this.exportCode}&platformId=1&type=${this.info.completeCompetitionSetup.competitionType ? 1 : 2}`, { + headers: this.headers, + responseType: 'blob' + }).then((res) => { + console.log("🚀 ~ showFaild ~ res:", res) + util.downloadFileDirect(decodeURI(res.headers['content-disposition']), new Blob([res.data])) + }).catch(res => { }) + }, + uploadSuccess ({ data, status }) { + this.uploadFaild = false + if (status === 200) { + if (data.exportCode) { + this.exportCode = data.exportCode + this.uploadFaild = true + util.errorMsg(data.tip) + } + } else { + res.message ? util.errorMsg(res.message) : util.errorMsg("上传失败,请检查数据") + } + }, + uploadError (err, file, fileList) { + this.$message({ + message: "上传出错,请重试!", + type: "error", + center: true + }) + }, + beforeRemove (file, fileList) { + return this.$confirm(`确定移除 ${file.name}?`) + }, + handleRemove (file, fileList) { + this.uploadList = fileList + this.uploadFaild = false + }, + uploadSure () { + this.importVisible = false + this.keyWord = '' + }, // 新增 add () { this.notExit = 0 diff --git a/src/pages/project/list/index.vue b/src/pages/project/list/index.vue index ca9e626..bac9c62 100644 --- a/src/pages/project/list/index.vue +++ b/src/pages/project/list/index.vue @@ -385,18 +385,6 @@ export default { } }).catch(err => { }) }, - // 课程选择回调 - curChange (val) { - const mallId = val[0] - if (val.length === 1) { - // 如果选择的是课程,则默认选中下面第一个系统 - this.cid = [mallId, this.curs.find(e => e.id === mallId).children[0].id] - } - this.queryData.mallId = mallId - this.queryData.cid = this.curs.find(e => e.id === mallId).cid - this.systemId = this.cid[1] - this.initData() - }, // 创建人选择回调 founderChange (val) { this.$router.push({ @@ -482,17 +470,34 @@ export default { console.log(err); }); }, + // 课程选择回调 + curChange (val) { + const mallId = val[0] + if (val.length === 1) { + // 如果选择的是课程,则默认选中下面第一个系统 + this.cid = [mallId, this.curs.find(e => e.id === mallId).children[0].id] + } + this.queryData.mallId = mallId + this.queryData.cid = this.curs.find(e => e.id === mallId).cid + this.systemId = this.cid[1] + this.initData() + }, 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 = [] + const curs = this.lc.includes(systemId) ? this.curs.filter(e => e.systemId == systemId) : this.curs.filter(e => !this.lc.includes(+e.systemId)) + curs.map(e => { + if (e.children && e.children.length) { + e.children = this.lc.includes(systemId) ? e.children.filter(n => n.id === systemId) : e.children.filter(n => !this.lc.includes(n.id)) + } + }) + this.copyCurs = curs + this.copyMallId = [this.queryData.mallId, this.systemId] this.copyForm = { projectName: res.projectManage.projectName, - mallId: '' + mallId: this.queryData.mallId } this.curRow = { projectManage: JSON.parse(JSON.stringify(res.projectManage)), @@ -516,17 +521,20 @@ export default { return; } // 系统创建的才需要选择系统 - if (fromSystem && !form.mallId) { + if (fromSystem && !this.copyMallId.length) { util.warningMsg("请选择课程"); return; } this.submiting = true row.projectManage.projectName = form.projectName - if (fromSystem) row.projectManage.mallId = form.mallId - row.projectManage.projectId = ""; + if (fromSystem) { + row.projectManage.mallId = this.copyMallId[0] + row.projectManage.systemId = this.copyMallId[1] + } + row.projectManage.projectId = '' row.projectManage.founder = 1 row.projectJudgmentList.forEach(i => { - i.projectId = ""; + i.projectId = '' }); this.$post(`${this.api.copyProjectManage}`, row).then(res => { this.initData(); diff --git a/src/pages/student/list/index.vue b/src/pages/student/list/index.vue index c87161a..e42a0ae 100644 --- a/src/pages/student/list/index.vue +++ b/src/pages/student/list/index.vue @@ -715,32 +715,25 @@ export default { this.getData(); }, delAllSelection () { // 批量删除 - if (this.multipleSelection.length) { - this.$confirm("确定要删除选中用户吗?", "提示", { - type: "warning" - }).then(() => { - let ids = this.multipleSelection.map(item => { - return item.accountId; - }); - this.$post(`${this.api.delStudent}?accountIds=${ids.toString()}`).then(res => { - this.multipleSelection = []; - this.$refs.table.clearSelection(); - util.successMsg("删除成功"); - if (this.studentType) { - this.getData(); - } else { - this.getOrgStudentData(); - } - }).catch(res => { - }); - if (this.multipleSelection.length === this.listData.length && this.page > 1) { - this.handleCurrentChange(this.page - 1) + const len = this.multipleSelection.length + const list = len ? this.multipleSelection : this.listData + this.$confirm(len ? '确定要删除选中学生吗?' : '是否要删除当前列表所有学生?', '提示', { + type: "warning" + }).then(() => { + this.$post(`${this.api.delStudent}?accountIds=${list.map(e => e.accountId).toString()}`).then(res => { + this.multipleSelection = []; + this.$refs.table.clearSelection(); + util.successMsg("删除成功"); + if (this.studentType) { + this.getData(); + } else { + this.getOrgStudentData(); } - }).catch(() => { - }); - } else { - util.errorMsg("请先选择数据 !"); - } + }).catch(res => { }); + if (this.multipleSelection.length === this.listData.length && this.page > 1) { + this.currentChange(this.page - 1) + } + }).catch(() => { }); }, handleDelete (row) { // 删除 this.$confirm("确定要删除吗?", "提示", { diff --git a/src/setting.js b/src/setting.js index 44e6744..202bf28 100644 --- a/src/setting.js +++ b/src/setting.js @@ -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.51:9000/"; } else if (isSq) { zcPath = `10.20.100.204:8883` }