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