From 42feb0af0ae1d486d0474c76711fdb67c778bcf3 Mon Sep 17 00:00:00 2001 From: 董国庆 <364620639@qq.com> Date: 星期六, 28 六月 2025 10:04:30 +0800 Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory --- culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue | 93 ++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 85 insertions(+), 8 deletions(-) diff --git a/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue b/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue index c9685d9..b10f8fb 100644 --- a/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue +++ b/culture/src/views/strainReportLibrary/reportLibraryOneThree/add.vue @@ -58,8 +58,10 @@ </div> </div> <el-form-item prop="name" style="margin-top: 38px"> - <el-upload action="https://jsonplaceholder.typicode.com/posts/" :file-list="fileList"> + <el-upload action="#" :file-list="fileList" :http-request="handleUpload" + :before-upload="beforeUpload" :on-preview="handlePreview" :on-remove="handleRemove"> <el-button size="small" type="primary">点击上传</el-button> + <div slot="tip" class="el-upload__tip">支持任意格式文件上传</div> </el-upload> </el-form-item> <div class="header-title" style="width: 100%;"> @@ -149,7 +151,8 @@ </el-form> </Card> <chooseProject @submit="getProjectData" :show="showChoose" @close="showChoose = false"></chooseProject> - <SelectMember :projectId="projectData.length&&projectData[0].id" title="选择菌种实验员" ref="selectMember" @submit="selectUser" :singleSelect="true" /> + <SelectMember :projectId="projectData.length && projectData[0].id" title="选择菌种实验员" ref="selectMember" + @submit="selectUser" :singleSelect="true" /> </div> @@ -158,8 +161,9 @@ import { Card } from 'element-ui'; import AiEditor from '@/components/AiEditor' import ChooseProject from '@/components/chooseProject/index.vue' +import { customUploadRequest, getFullUrl } from "@/utils/utils"; import SelectMember from '@/components/SelectMember' -import { add,getDetail,update } from './service' +import { add, getDetail, update } from './service' export default { components: { AiEditor, ChooseProject, SelectMember }, @@ -241,8 +245,8 @@ } }, mounted() { - // 滚动到页面顶部 - this.$nextTick(() => { + // 滚动到页面顶部 + this.$nextTick(() => { window.scrollTo(0, 0); }); if (this.$route.query.id) { @@ -255,14 +259,15 @@ }; let arr = data.evaluate.split(',') + this.fileList = (data.enclosureUrl ? JSON.parse(data.enclosureUrl) : []) this.assessmentTable = this.assessmentTable.map((item, index) => { item.selectedScore = Number(arr[index]) return item }) this.selectedMember = [{ - nickName:data.experimentName, - userId:data.experimentId + nickName: data.experimentName, + userId: data.experimentId }] this.projectData = data.projectTeam ? [{ ...data.projectTeam, staffName: data.projectTeam.staff || '' }] : @@ -275,6 +280,62 @@ } }, methods: { + handlePreview(file) { + if (file.url) { + window.open(file.url, '_blank'); + } else { + this.$message.warning('无可预览地址'); + } + }, + // 上传前校验 + beforeUpload(file) { + return true; + }, + // 自定义上传处理 + handleUpload(options) { + const { file, onSuccess, onError } = options; + + // 使用封装的customUploadRequest方法 + customUploadRequest({ + file, + onSuccess: (res) => { + if (res.code === 200) { + const fileObj = { + id: new Date().getTime(), + reportId: this.$route.query.id ? this.$route.query.id : "", + fileUrl: res.msg || res.data || "", + reportType: 2, // 报告类型 + fileName: file.name, + fileSize: file.size, + }; + + // 添加到文件列表显示 + this.fileList.push({ + name: file.name, + url: getFullUrl(fileObj.fileUrl), + uid: fileObj.id, + }); + + // 添加到表单数据 + this.form.feasibilityReportFiles.push(fileObj); + this.$message.success("文件上传成功"); + onSuccess(res); + } + }, + onError: (err) => { + this.$message.error("文件上传失败"); + onError(err); + }, + }); + }, + // 删除文件 + handleRemove(file) { + const index = this.fileList.findIndex((item) => item.name === file.name); + if (index !== -1) { + this.fileList.splice(index, 1); + this.form.feasibilityReportFiles.splice(index, 1); + } + }, addData() { if (this.sendLoading) return; this.sendLoading = true; @@ -303,9 +364,10 @@ return; } const params = { - isDraft: this.form.isDraft ? this.form.isDraft : 0, + isDraft: 0, projectId: this.projectData[0].id, experimentId: this.selectedMember[0].userId, + enclosureUrl: this.fileList.length && JSON.stringify(this.fileList), // reportCode: this.form.reportCode, reportContent: this.$refs.materialEditor.getContent(), reportName: this.form.reportName, @@ -329,6 +391,19 @@ }).finally(() => { this.sendLoading = false; }); + return + } + if (this.$route.query.id) { + params.id = this.$route.query.id + update(params).then(res => { + this.submitLoading = false; + if (res.code == 200) { + this.$message.success('编辑成功'); + this.$router.back() + } + }).catch(() => { + this.submitLoading = false; + }) return } @@ -357,10 +432,12 @@ }) try { + const params = { isDraft: 1, projectId: this.projectData[0].id, experimentId: this.selectedMember[0].userId, + enclosureUrl: this.fileList.length && JSON.stringify(this.fileList), // reportCode: this.form.reportCode, reportContent: this.$refs.materialEditor.getContent(), reportName: this.form.reportName, -- Gitblit v1.7.1