From 241d70bbf730449696e51c3e5cfdfbfb6c06796d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=81=92=E6=88=90?= <962704835@qq.com> Date: Fri, 12 Dec 2025 16:59:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=96=E5=AE=BF=E7=94=B3=E8=AF=B7-=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E8=A1=A8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../outsideAccommodationAttachment.js | 9 + src/components/affix/index.vue | 683 ++++++++---------- .../applicationForm.vue | 35 +- .../components/affix/index.vue | 380 ++++++++++ .../components/detailApply.vue | 120 ++- .../outsideAccommodationApply/index.vue | 39 +- .../outsideAccommodationApproval/index.vue | 37 +- .../outsideAccommodationAttachment/index.vue | 91 ++- .../enlistmentReserveApproval/index.vue | 22 +- src/views/routine/enlistmentReserve/index.vue | 14 +- 10 files changed, 981 insertions(+), 449 deletions(-) create mode 100644 src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/affix/index.vue diff --git a/src/api/dormitory/outsideAccommodation/outsideAccommodationAttachment.js b/src/api/dormitory/outsideAccommodation/outsideAccommodationAttachment.js index c54027a..95fbc57 100644 --- a/src/api/dormitory/outsideAccommodation/outsideAccommodationAttachment.js +++ b/src/api/dormitory/outsideAccommodation/outsideAccommodationAttachment.js @@ -51,3 +51,12 @@ export function delOutsideAccommodationAttachment(id) { method: 'post' }) } + +// 删除外宿申请附件 +export function deleteOutsideAccommodationAttachmentNameAndStuName(query) { + return request({ + url: '/dormitory/outsideAccommodationAttachment/OutsideAccommodationAttachment', + method: 'post', + params: query + }) +} diff --git a/src/components/affix/index.vue b/src/components/affix/index.vue index b60ee34..39aa017 100644 --- a/src/components/affix/index.vue +++ b/src/components/affix/index.vue @@ -1,32 +1,46 @@ @@ -35,379 +49,310 @@ import { deleteAffix, download, downloadAll, queryAffixs, upload } from '@/api/affix/affix' export default { - name: 'CmAffix', - inject: { - elForm: { - default: '' - } - }, - props: { - notupload: { - type: Boolean, - default: false - }, - value: String, // 父组件值 - disabled: Boolean, - maxSize: { - type: Number, - default: 20 - }, - accpet: { - type: String, - default: '*' - }, - uploadStyle: - { - type: String, - default: '' - }, - - - }, - data() { - return { - uploadCnt: 0, - affixId: '', - fileList: [], - downloading: false,//控制打包下载loading动画 - baseurl: process.env.VUE_APP_BASE_API, - hiddenSrc: '', - previewList: [], - // 解决重复提交的核心变量 - isQuerying: false, // 请求锁:标记是否正在查询附件 - retryCount: 0 // 重试次数:捕获重复提交错误时重试 - } - }, - computed: { - inputDisabled() { - return this.disabled || (this.elForm || {}).disabled - } - }, - watch: { - // 父组件值监听事件 - value: { - immediate: true, // 初始化立即执行 - handler: function (newVal, oldVal) { - // 新旧值不同时,先清空所有旧数据(核心解决数据残留) - if (newVal !== oldVal) { - this.fileList = []; - this.previewList = []; - this.affixId = ''; - this.retryCount = 0; + name: 'CmAffix', + inject: { + elForm: { + default: '' } - // 满足条件才加载数据 - if (newVal && newVal !== '' && newVal !== this.affixId) { - this.loadData(); + }, + props: { + notupload:{ + type:Boolean, + default:false + }, + value: String, // 父组件值 + disabled: Boolean, + maxSize:{ + type: Number, + default: 20 + }, + accpet:{ + type:String, + default:'*' + }, + uploadStyle: + { + type: String, + default: '' + }, + + + }, + data() { + return { + uploadCnt: 0, + affixId: '', + fileList: [], + downloading:false,//控制打包下载loading动画 + baseurl: process.env.VUE_APP_BASE_API , + hiddenSrc:'', + previewList:[], } - } - } - }, - created() { - this.loadData() - }, - // 新增:组件激活时清空旧数据(适配keep-alive页面) - activated() { - this.fileList = []; - this.previewList = []; - if (this.value) { - this.loadData(); - } - }, - methods: { - // 预览 - preview(item) { - this.hiddenSrc = item.savePath - - this.$refs.preview.showViewer = true }, - isImageURL(url) { - // let imgRegex = /(\jpg|\jpeg|\png|\gif|\webp)$/i; - const regex = /(\jpg|\jpeg|\png|\gif|\webp)$/i - return regex.test(url) - }, - handleUpload(file) { - - upload({ 'file': file.file, 'affixId': this.affixId }).then(res => { - this.uploadCnt-- - - if (res.code == 200) { - for (let i = 0; i < this.fileList.length; i++) { - let item = this.fileList[i] - console.log(res.savePath) - if (item.name == res.trueName && item.status == 1) { - - this.fileList[i].id = res.id - this.fileList[i].status = 2 - this.fileList[i].savePath = this.baseurl + res.savePath - if (this.isImageURL(res.savePath)) { - this.previewList.push(this.fileList[i].savePath) - } - // this.fileList[i].savePaths =[this.baseurl + res.savePath]; - - // 上传成功后,向外传递当前文件的完整信息(包含后端返回的res数据) - this.$emit('fileUploaded', { - fileId: res.id, // 文件ID - fileName: res.trueName, // 文件名 - filePath: res.savePath, // 文件相对路径(不含baseurl) - fullPath: this.fileList[i].savePath, // 完整路径(含baseurl) - fileType: this.getFileType(res.trueName), // 文件类型 - originalFile: file.file // 原始文件对象(可选) - }); - - } - - } - - - } else { - this.$message.error(res.message) + computed: { + inputDisabled() { + return this.disabled || (this.elForm || {}).disabled } - }).catch(() => { - this.uploadCnt-- - }) }, - // 获取文件类型的方法(Affix组件中新增) - getFileType(fileName) { - if (!fileName) return ''; - const lastDotIndex = fileName.lastIndexOf('.'); - return lastDotIndex > -1 ? fileName.substring(lastDotIndex + 1).toLowerCase() : ''; - }, - handleBeforeUpload(file) { - - if (this.affixId == null || this.affixId === '') { - this.affixId = this.$tool.uuid() - this.$emit('input', this.affixId) - } - - let isLt20M = file.size / 1024 / 1024 < this.maxSize - if (!isLt20M) { - this.$message.error('上传大小不能超过 ' + this.maxSize + 'MB!') - } else { - this.fileList.push({ name: file.name, status: 1 }) - this.uploadCnt++ - } - - return isLt20M - }, - getFileName(id) { - for (let i = 0; i < this.fileList.length; i++) { - let item = this.fileList[i] - - if (item.id == id) { - console.log(item) - return item.name - } - } - }, - downloadFile(file) { - download(file.id).then((res) => { - console.log(res) - let fileName = this.getFileName(file.id).replace(/"/g, '') - var blob = new Blob([res], { type: 'application/octet-stream;' }) - var downloadElement = document.createElement('a') - var href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = decodeURI(fileName) // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放掉blob对象 - }).catch((res) => { - this.$message.error(res.message) - }) - }, - downloadPack() { - - if (this.affixId === null || this.affixId === '') { - this.$message.error('暂无附件!') - return - } - //如果只有一个文件就不打包下载 - if (this.fileList.length == 1) { - - this.downloadFile(this.fileList[0]) - } else { - this.downloading = true - downloadAll(this.affixId).then((res) => { - var blob = new Blob([res], { type: 'application/octet-stream' }) - var downloadElement = document.createElement('a') - var href = window.URL.createObjectURL(blob) // 创建下载的链接 - downloadElement.href = href - downloadElement.download = decodeURI('download.zip') // 下载后文件名 - document.body.appendChild(downloadElement) - downloadElement.click() // 点击下载 - document.body.removeChild(downloadElement) // 下载完成移除元素 - window.URL.revokeObjectURL(href) // 释放掉blob对象 - this.downloading = false - }).catch(() => { - this.downloading = false - }) - } - - - }, - deleteFile(file) { - this.$confirm('请确认是否删除此文件?', '提示', { type: 'info' }).then(() => { - deleteAffix(file.id).then((res) => { - if (res.code == 200) { - this.fileList = this.fileList.filter(item => item.id !== file.id) - this.previewList = this.previewList.filter(item => item !== file.savePath)//删除图片 - if (this.fileList.length == 0) { - this.affixId = '' - } - - // 关键:触发自定义事件,传递被删除的文件名 - // 事件名建议:delete-file,参数:file.name(文件名) - this.$emit('delete-file', file.name); - } else { - this.$message.error(res.message) - } - }) - }) - }, - loadData() { - // 1. 请求锁:防止同一时刻重复请求(解决重复提交) - if (this.isQuerying) return; - // 2. 清空旧数据(双重保障解决数据残留) - this.fileList = []; - this.previewList = []; - - if (typeof this.value !== 'undefined' && this.value !== null && this.value !== '') { - this.isQuerying = true; // 加锁 - // 带重试机制的查询方法 - const queryWithRetry = () => { - queryAffixs(this.value).then((res) => { - this.isQuerying = false; // 解锁 - if (res.code == 200) { - if (res.data.length > 0) { - this.affixId = this.value; - // 重新构建数组,避免引用污染 - const newFileList = []; - const newPreviewList = []; - for (var i = 0; i < res.data.length; i++) { - const savePath = this.baseurl + res.data[i].savePath; - if (this.isImageURL(savePath)) { - newPreviewList.push(savePath); - } - newFileList.push({ - name: res.data[i].trueName, - id: res.data[i].id, - status: 2, - savePath: savePath - }); + watch: { + // 父组件值监听事件 + value: { + handler: function(newVal/*, oldVal*/) { + if (newVal === undefined || newVal == null || newVal === '' + || this.affixId === undefined || this.affixId == null || this.affixId === '' + || newVal !== this.affixId) { + this.loadData() } - // 直接替换数组,彻底解决残留 - this.fileList = newFileList; - this.previewList = newPreviewList; - } else { - this.affixId = ''; - } - } else { - // 捕获"重复提交"错误,重试1次 - if (res.msg.includes('请勿重复提交') && this.retryCount < 1) { - this.retryCount++; - this.isQuerying = true; - setTimeout(() => queryWithRetry(), 500); // 500ms后重试 - return; - } - this.$message.error(res.msg); } - }).catch((err) => { - this.isQuerying = false; // 解锁 - // 捕获异常中的重复提交错误,重试1次 - if (err.message?.includes('请勿重复提交') && this.retryCount < 1) { - this.retryCount++; - setTimeout(() => queryWithRetry(), 500); - return; - } - this.$message.error(err.message || '查询附件失败'); - }); - }; - // 执行查询 - queryWithRetry(); - } else { - this.affixId = ''; - this.isQuerying = false; - } + } }, - clearData() { - this.affixId = ''; - this.fileList = []; - this.previewList = []; - this.isQuerying = false; - this.retryCount = 0; + created() { + this.loadData() + }, + methods: { + // 预览 + preview(item){ + this.hiddenSrc = item.savePath + + this.$refs.preview.showViewer = true + }, + isImageURL(url) { + // let imgRegex = /(\jpg|\jpeg|\png|\gif|\webp)$/i; + const regex = /(\jpg|\jpeg|\png|\gif|\webp)$/i + return regex.test(url) + }, + handleUpload(file) { + + upload({'file': file.file, 'affixId': this.affixId}).then(res => { + this.uploadCnt-- + + if (res.code == 200) { + for (let i = 0; i < this.fileList.length; i++) { + let item = this.fileList[i] + console.log(res.savePath) + if(item.name == res.trueName && item.status == 1){ + + this.fileList[i].id = res.id + this.fileList[i].status = 2 + this.fileList[i].savePath = this.baseurl + res.savePath + if(this.isImageURL(res.savePath)){ + this.previewList.push( this.fileList[i].savePath) + } + // this.fileList[i].savePaths =[this.baseurl + res.savePath]; + + // 上传成功后,向外传递当前文件的完整信息(包含后端返回的res数据) + this.$emit('fileUploaded', { + fileId: res.id, // 文件ID + fileName: res.trueName, // 文件名 + filePath: res.savePath, // 文件相对路径(不含baseurl) + fullPath: this.fileList[i].savePath, // 完整路径(含baseurl) + fileType: this.getFileType(res.trueName), // 文件类型 + originalFile: file.file // 原始文件对象(可选) + }); + + } + + } + + + } else { + this.$message.error(res.message) + } + }).catch(() => { + this.uploadCnt-- + }) + }, + // 获取文件类型的方法(Affix组件中新增) + getFileType(fileName) { + if (!fileName) return ''; + const lastDotIndex = fileName.lastIndexOf('.'); + return lastDotIndex > -1 ? fileName.substring(lastDotIndex + 1).toLowerCase() : ''; + }, + handleBeforeUpload(file) { + + if (this.affixId == null || this.affixId === '') { + this.affixId = this.$tool.uuid() + this.$emit('input', this.affixId) + } + + let isLt20M = file.size / 1024 / 1024 < this.maxSize + if (!isLt20M) { + this.$message.error('上传大小不能超过 '+this.maxSize+'MB!') + } else { + this.fileList.push({name: file.name, status: 1}) + this.uploadCnt++ + } + + return isLt20M + }, + getFileName(id){ + for (let i = 0; i < this.fileList.length; i++) { + let item = this.fileList[i] + + if(item.id == id){ + console.log(item) + return item.name + } + } + }, + downloadFile(file) { + download(file.id).then((res) => { + console.log(res) + let fileName = this.getFileName(file.id).replace(/"/g, '') + var blob = new Blob([res], {type: 'application/octet-stream;'}) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = decodeURI(fileName) // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放掉blob对象 + }).catch((res) => { + this.$message.error(res.message) + }) + }, + downloadPack() { + + if (this.affixId === null || this.affixId === '') { + this.$message.error('暂无附件!') + return + } + //如果只有一个文件就不打包下载 + if(this.fileList.length == 1){ + + this.downloadFile(this.fileList[0]) + }else{ + this.downloading = true + downloadAll(this.affixId).then((res) => { + var blob = new Blob([res], {type: 'application/octet-stream'}) + var downloadElement = document.createElement('a') + var href = window.URL.createObjectURL(blob) // 创建下载的链接 + downloadElement.href = href + downloadElement.download = decodeURI('download.zip') // 下载后文件名 + document.body.appendChild(downloadElement) + downloadElement.click() // 点击下载 + document.body.removeChild(downloadElement) // 下载完成移除元素 + window.URL.revokeObjectURL(href) // 释放掉blob对象 + this.downloading = false + }).catch(() => { + this.downloading = false + }) + } + + + }, + deleteFile(file) { + this.$confirm('请确认是否删除此文件?', '提示', {type: 'info'}).then(() => { + deleteAffix(file.id).then((res) => { + if (res.code == 200) { + this.fileList = this.fileList.filter(item => item.id !== file.id) + this.previewList = this.previewList.filter(item => item !== file.savePath)//删除图片 + if(this.fileList.length == 0){ + this.affixId = '' + } + + // 关键:触发自定义事件,传递被删除的文件名 + // 事件名建议:delete-file,参数:file.name(文件名) + this.$emit('delete-file', file.name); + } else { + this.$message.error(res.message) + } + }) + }) + }, + loadData() { + this.fileList = [] + if (typeof this.value !== 'undefined' && this.value !== null && this.value !== '') { + queryAffixs(this.value).then((res) => { + if (res.code ==200) { + if(res.data.length > 0){ + this.affixId = this.value + for (var i=0;i { + this.editLoading = false + this.$message.error(res.message) + }) + } else { + this.affixId = '' + } + }, + clearData() { + this.affixId = '' + this.fileList = [] + } } - } } diff --git a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/applicationForm.vue b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/applicationForm.vue index d3114c0..7e14014 100644 --- a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/applicationForm.vue +++ b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/applicationForm.vue @@ -112,7 +112,7 @@ -
支持上传jpg/png/pdf格式文件,单个文件不超过10MB(如病例、住房证明等) @@ -330,15 +330,17 @@ import { updateOutsideAccommodationApply, addOutsideAccommodationApply } from '@/api/dormitory/outsideAccommodation/outsideAccommodationApply' -import { batchAddOutsideAccommodationAttachment } from "@/api/dormitory/outsideAccommodation/outsideAccommodationAttachment"; +import { batchAddOutsideAccommodationAttachment, deleteOutsideAccommodationAttachmentNameAndStuName } from "@/api/dormitory/outsideAccommodation/outsideAccommodationAttachment"; import { getUserProfile } from '@/api/system/user' // 获取当前登录用户 import { getOwnLog } from '@/api/dormitory/new/stuDom' import { pcaTextArr // 省市区联动数据,纯汉字 } from 'element-china-area-data' +import AffixIndex from "@/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/affix/index" export default { name: 'OutsideAccommodationApply', + components: { AffixIndex }, data() { return { // 遮罩层 @@ -804,19 +806,26 @@ export default { // 处理子组件传递的删除文件事件 handleDeleteFile(fileName) { // 接收文件名后,可执行后续逻辑,删除在数据库的数据 - // if (fileName) { - // deleteRtEnlistmentReserveAttachByFileNameAndStuName({fileName:fileName, studentName: this.formData.studentName}).then(res => { - // this.$message.success(`成功删除文件:${fileName}`); - // }) - // } + if (fileName) { + deleteOutsideAccommodationAttachmentNameAndStuName({ attachmentName: fileName, studentName: this.form.studentName }).then(res => { + this.$message.success(`成功删除文件:${fileName}`); + }) + } }, goBack() { - // 关闭当前标签页并返回上个页面 - // const obj = { path: 'disciplinaryApplication', query: { t: Date.now() } } - // this.$tab.closeOpenPage(obj) - this.$router.back() - // 关闭窗体 index 当前层索引 - this.$tab.closePage() + // 1. 先清空附件组件数据(主动触发清理) + this.$nextTick(() => { + // 如果Affix组件有ref(比如ref="affixComponent"),主动调用clearData + if (this.$refs.affixComponent) { + this.$refs.affixComponent.clearData(); + } + + // 2. 优化退出逻辑:先关闭tab,再返回(避免重复操作) + this.$tab.closePage().then(() => { + // 仅当需要返回上一页时执行(根据业务场景选择) + // this.$router.back(); + }); + }); }, // 保存学生签名 saveStudentSignature() { diff --git a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/affix/index.vue b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/affix/index.vue new file mode 100644 index 0000000..0500991 --- /dev/null +++ b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/affix/index.vue @@ -0,0 +1,380 @@ + + + + + diff --git a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply.vue b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply.vue index 1599d4e..80cb6f5 100644 --- a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply.vue +++ b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/detailApply.vue @@ -26,11 +26,11 @@ - + {{ renderData.birthDate }} - + {{ renderData.majorName }} @@ -38,12 +38,12 @@ {{ renderData.className }} - + {{ renderData.studentNo }} - + {{ renderData.accommodationFee }} @@ -61,7 +61,7 @@ - + @@ -104,11 +104,11 @@ --> - + {{ renderData.address + renderData.outsideAddress }} - + {{ renderData.emergencyPhone }} @@ -203,6 +203,47 @@
+
+ + +

{{ item.taskName }}

+ + + + + {{ item.assigneeName }} + {{ item.deptName }} + + + + {{ item.candidate }} + + + + {{ item.createTime }} + + + + {{ item.finishTime }} + + + + {{ item.duration }} + + + + {{ item.comment.comment }} + + + + +
+
+
@@ -211,6 +252,9 @@ import { getOutsideAccommodationApply, } from '@/api/dormitory/outsideAccommodation/outsideAccommodationApply' + +import { flowRecord } from '@/api/flowable/finished' +import AffixIndex from "@/views/dormitory/outsideAccommodation/outsideAccommodationApply/components/affix/index" export default { props: { // props类型定义(Object类型+默认空对象) @@ -223,6 +267,7 @@ export default { default: true } }, + components: { AffixIndex }, data() { return { loading: false, @@ -248,6 +293,7 @@ export default { standard: '', extraCss: '', }, + flowRecordList: [], // 流程流转数据 } }, // 计算属性判断优先级 @@ -292,7 +338,8 @@ export default { .then(res => { // 修正Promise语法(逗号改分号/换行) this.detailData = { ...res.data }; // 接口数据存入独立变量 - this.loading = false; + this.getFlowRecordList(this.detailData.processInstanceId, this.detailData.deployId) + // this.loading = false; console.log(this.detailData); }) // 添加异常捕获,避免接口报错导致loading一直显示 @@ -311,12 +358,49 @@ export default { }, methods: { goBack() { - // 关闭当前标签页并返回上个页面 - // const obj = { path: 'disciplinaryApplication', query: { t: Date.now() } } - // this.$tab.closeOpenPage(obj) - this.$router.back() - // 关闭窗体 index 当前层索引 - this.$tab.closePage() + // 1. 先清空附件组件数据(主动触发清理) + this.$nextTick(() => { + // 如果Affix组件有ref(比如ref="affixComponent"),主动调用clearData + if (this.$refs.affixComponent) { + this.$refs.affixComponent.clearData(); + } + + // 2. 优化退出逻辑:先关闭tab,再返回(避免重复操作) + this.$tab.closePage().then(() => { + // 仅当需要返回上一页时执行(根据业务场景选择) + // this.$router.back(); + }); + }); + }, + /** 流程流转记录 */ + getFlowRecordList(processInstanceId, deploy) { + let procInsId = processInstanceId + let deployId = deploy + const that = this + const params = { procInsId: procInsId, deployId: deployId } + flowRecord(params) + .then((res) => { + that.flowRecordList = res.data.flowList + this.loading = false + }) + .catch((res) => { + this.loading = false + this.goBack() + }) + }, + setIcon(val) { + if (val) { + return 'el-icon-check' + } else { + return 'el-icon-time' + } + }, + setColor(val) { + if (val) { + return '#2bc418' + } else { + return '#b3bdbb' + } }, }, created() { }, @@ -333,9 +417,13 @@ export default { font-family: "Source Han Sans CN", "PingFang SC", "Microsoft YaHei", sans-serif; } -::v-deep .el-descriptions-item__label { +.el-container ::v-deep .el-descriptions-item__label { text-align: center !important; - width: 100px; + width: 80px; +} + +.el-container .birthDate ::v-deep .el-descriptions-item__label { + width: 50px; } .parentLabel { diff --git a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/index.vue b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/index.vue index 7089f3f..2a9df3f 100644 --- a/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/index.vue +++ b/src/views/dormitory/outsideAccommodation/outsideAccommodationApply/index.vue @@ -5,21 +5,21 @@ - + - + - @@ -38,7 +38,7 @@ - + @@ -150,7 +150,7 @@ @@ -171,7 +172,8 @@ export default { approverName: null, approvalOpinion: null, approvalResult: null, - approvalTime: null + approvalTime: null, + studentName: null }, // 表单参数 form: {}, @@ -230,7 +232,7 @@ export default { } this.getList() } - + }) }, // 取消按钮 @@ -321,7 +323,13 @@ export default { this.download('routine/enlistmentReserveApproval/export', { ...this.queryParams }, `enlistmentReserveApproval_${new Date().getTime()}.xlsx`) - } + }, + detail(row) { + this.$router.push({ + path: "/routine/enlistmentReserve/applicationForm", + query: { id: row.applyId, type: 'detail', deployId: row.deployId, processInstanceId: row.processInstanceId } // 将 row.id 放在 query 中 + }) + }, } }; diff --git a/src/views/routine/enlistmentReserve/index.vue b/src/views/routine/enlistmentReserve/index.vue index 50b6889..5b9c25a 100644 --- a/src/views/routine/enlistmentReserve/index.vue +++ b/src/views/routine/enlistmentReserve/index.vue @@ -124,7 +124,7 @@