From 7ef2454c7df85c9a8fd493552398d4ac07c460d4 Mon Sep 17 00:00:00 2001
From: pyt <626651354@qq.com>
Date: 星期一, 23 六月 2025 09:43:56 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory

---
 laboratory/src/views/chemistQa/projectTesting/addDetectionReport.vue |  134 +++++++++++++++++++++++++++++---------------
 1 files changed, 87 insertions(+), 47 deletions(-)

diff --git a/laboratory/src/views/chemistQa/projectTesting/addDetectionReport.vue b/laboratory/src/views/chemistQa/projectTesting/addDetectionReport.vue
index 18828e0..cbd23d0 100644
--- a/laboratory/src/views/chemistQa/projectTesting/addDetectionReport.vue
+++ b/laboratory/src/views/chemistQa/projectTesting/addDetectionReport.vue
@@ -40,7 +40,8 @@
                     </el-col>
                     <el-col :span="24">
                         <el-form-item prop="developPersonName" label="制定人">
-                            <el-input v-model="form.developPersonName" style="width: 100%;" placeholder="请输入制定人" disabled />
+                            <el-input v-model="form.developPersonName" style="width: 100%;" placeholder="请输入制定人"
+                                disabled />
                         </el-form-item>
                         <el-form-item prop="developDate" label="制定日期" style="margin-left: 100px;">
                             <el-date-picker :prefix-icon="null" v-model="form.developDate" type="date" disabled
@@ -66,12 +67,17 @@
                     </div>
                 </div>
                 <el-form-item prop="name" style="margin-top: 18px">
-                    <el-upload 
+                    <!-- <el-upload 
                         action="#" 
                         :file-list="fileList"
                         :http-request="handleUpload"
                         :before-upload="beforeUpload"
                         :on-remove="handleRemove">
+                        <el-button size="small" type="primary">点击上传</el-button>
+                        <div slot="tip" class="el-upload__tip">支持任意格式文件上传</div>
+                    </el-upload> -->
+                    <el-upload action="#" :file-list="fileList" :http-request="handleUpload"
+                        :before-upload="beforeUpload" :on-remove="handleRemove">
                         <el-button size="small" type="primary">点击上传</el-button>
                         <div slot="tip" class="el-upload__tip">支持任意格式文件上传</div>
                     </el-upload>
@@ -91,7 +97,8 @@
 import { Card } from 'element-ui';
 import AiEditor from '@/components/AiEditor'
 import chooseProject from '@/components/chooseProject'
-import { addDetail, getDetailInfo,updateDetail,getDetail  } from './service'
+import { addDetail, getDetailInfo, updateDetail, getDetail } from './service'
+import { customUploadRequest, getFullUrl } from '@/utils/utils'
 
 export default {
     components: {
@@ -111,7 +118,7 @@
                 itemId: "",
                 status: 1,
                 itemId: "",
-                qaReportFiles: [],
+                qaReportFileList: [],
                 commitPersonId: null,
             },
             tableData: [],
@@ -135,26 +142,26 @@
         this.form.commitPersonId = JSON.parse(sessionStorage.getItem('userInfo')).userId
         this.form.developDate = new Date().toISOString().split('T')[0];
 
-        this.form.itemId=this.$route.query.itemId
-        if(this.form.itemId){
-            getDetail(this.form.itemId).then(res=>{
-                if(res){
-                    let item={
-                        teamName:res.projectTeamVO.teamName,
-                        teamId:res.teamId,
-                        remark:res.remark,
+        this.form.itemId = this.$route.query.itemId
+        if (this.form.itemId) {
+            getDetail(this.form.itemId).then(res => {
+                if (res) {
+                    let item = {
+                        teamName: res.projectTeamVO.teamName,
+                        teamId: res.teamId,
+                        remark: res.remark,
 
-                        itemName:res.itemName,
-                        itemCode:res.itemCode,
-                        createBy:res.createBy,
-                        createTime:res.createTime
+                        itemName: res.itemName,
+                        itemCode: res.itemCode,
+                        createBy: res.createBy,
+                        createTime: res.createTime
                     }
-                   this.tableData = [{ ...item }]
+                    this.tableData = [{ ...item }]
                 }
             })
         }
-        console.log('this.$route.query.itemId',this.$route.query)
-        
+        console.log('this.$route.query.itemId', this.$route.query)
+
         if (this.$route.query.id) {
             this.getDetail()
         }
@@ -162,14 +169,25 @@
 
     methods: {
         getDetail() {
-            getDetailInfo({id:this.$route.query.id}).then(res => {
+            getDetailInfo({ id: this.$route.query.id }).then(res => {
                 if (res) {
                     this.form = {
                         ...res,
                         reportContent: Number(res.reportContent)
                     }
                     // this.tableData = [{ ...res.data.projectTeam, staffName: res.data.staffNames }]
-                    this.fileList = res.qaReportFiles || []
+                    // this.fileList = res.qaReportFileList || []
+                    if (res.qaReportFileList && res.qaReportFileList.length > 0) {
+                        this.fileList = res.qaReportFileList.map(file => ({
+                            name: file.fileName,
+                            url: getFullUrl(file.fileUrl),
+                            uid: file.id
+                        }))
+                        this.form.qaReportFileList = res.fileList
+                    } else {
+                        this.fileList = []
+                        this.form.qaReportFileList = []
+                    }
                 } else {
                     this.$message.error(res.message || '获取详情失败')
                 }
@@ -183,12 +201,12 @@
         submit() {
             this.$refs.form.validate((valid) => {
                 if (!valid) return
-                
+
                 if (this.$refs.materialEditor.getContent() == '<p></p>') {
                     this.$message.error('请输入报告正文')
                     return
                 }
-                
+
                 let data = {
                     ...this.form,
                     reportText: this.$refs.materialEditor.getContent(),
@@ -197,8 +215,9 @@
 
                 this.loading = true
                 if (this.$route.query.id) {
-                    console.log('data updateDetail',data)
+                    console.log('data updateDetail', data)
                     updateDetail({ ...data, id: this.$route.query.id }).then(res => {
+                        console.log('res',res)
                         if (res.code === 200) {
                             this.$message.success('修改成功')
                             this.$router.back()
@@ -209,8 +228,9 @@
                         this.loading = false
                     })
                 } else {
-                    console.log('data addDetail',data)
+                    console.log('data addDetail', data)
                     addDetail(data).then(res => {
+                        console.log('res',res)
                         if (res.code === 200) {
                             this.$message.success('发布成功')
                             this.$router.back()
@@ -226,7 +246,7 @@
         save() {
             this.$refs.form.validate((valid) => {
                 if (!valid) return
-                
+
                 let data = {
                     ...this.form,
                     reportText: this.$refs.materialEditor.getContent(),
@@ -261,36 +281,56 @@
                 }
             })
         },
-        beforeUpload(file) {
+                 // 上传前校验
+                 beforeUpload(file) {
             return true;
         },
+        // 自定义上传处理
         handleUpload(options) {
-            const file = options.file;
-            const fileObj = {
-                fileName: file.name,
-                fileSize: file.size,
-                createTime: new Date().toISOString(),
-                createBy: JSON.parse(sessionStorage.getItem('userInfo')).userId,
-                reportType: 1,
-                status: 1,
-                id: Date.now().toString(),
-                fileUrl: 'https://example.com/default-file-url'
-            };
-            
-            this.fileList.push({
-                name: file.name,
-                url: fileObj.fileUrl
+            const { file, onSuccess, onError } = options;
+
+            // 使用封装的customUploadRequest方法
+            customUploadRequest({
+                file,
+                onSuccess: (res) => {
+                    console.log()
+                    if (res.code === 200) {
+                        const fileObj = {
+                            id: new Date().getTime(),
+                            reportId: this.$route.query.id ? this.$route.query.id : '',
+                            fileUrl: res.msg || res.data || '',
+                            fileName: file.name,
+                            fileSize: file.size,
+                        };
+
+                        // 添加到文件列表显示
+                        this.fileList.push({
+                            name: file.name,
+                            url: getFullUrl(fileObj.fileUrl),
+                            uid: fileObj.id
+                        });
+
+                        // 添加到表单数据
+                        this.form.qaReportFileList.push(fileObj);
+
+                        this.$message.success('文件上传成功');
+                        onSuccess(res);
+                    } else {
+                        this.$message.error(res.message || '文件上传失败');
+                        onError();
+                    }
+                },
+                onError: (err) => {
+                    this.$message.error('文件上传失败');
+                    onError(err);
+                }
             });
-            
-            this.form.qaReportFiles.push(fileObj);
-            
-            this.$message.success('文件上传成功');
         },
         handleRemove(file) {
             const index = this.fileList.findIndex(item => item.name === file.name);
             if (index !== -1) {
                 this.fileList.splice(index, 1);
-                this.form.qaReportFiles.splice(index, 1);
+                this.form.qaReportFileList.splice(index, 1);
             }
         },
     },

--
Gitblit v1.7.1