From caaace44a0f0049b6a645d6e0a511af6adf7c1e0 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期六, 21 六月 2025 15:37:04 +0800
Subject: [PATCH] 专业报告审批修改bug

---
 laboratory/src/views/reportLibrary/processDevelopment/add.vue |  113 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 96 insertions(+), 17 deletions(-)

diff --git a/laboratory/src/views/reportLibrary/processDevelopment/add.vue b/laboratory/src/views/reportLibrary/processDevelopment/add.vue
index 82f7ce8..26b30f6 100644
--- a/laboratory/src/views/reportLibrary/processDevelopment/add.vue
+++ b/laboratory/src/views/reportLibrary/processDevelopment/add.vue
@@ -28,7 +28,7 @@
                     </div>
                 </div>
                 <el-form-item prop="reportCode" style="margin-top: 38px">
-                    <el-input v-model="form.reportCode" style="width: 100%;" placeholder="请输入报告编号" />
+                    <el-input v-model="form.reportCode" disabled style="width: 100%;" placeholder="请输入报告编号" />
                 </el-form-item>
 
                 <div class="header-title" style="width: 100%;">
@@ -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-remove="handleRemove">
                         <el-button size="small" type="primary">点击上传</el-button>
+                        <div slot="tip" class="el-upload__tip">支持任意格式文件上传</div>
                     </el-upload>
                 </el-form-item>
 
@@ -78,6 +80,7 @@
 import AiEditor from '@/components/AiEditor'
 import chooseProject from '@/components/chooseProject'
 import { addData, getDetail, editData } from './service'
+import { customUploadRequest, getFullUrl } from '@/utils/utils'
 export default {
     components: {
         AiEditor,
@@ -89,15 +92,16 @@
             form: {
                 reportCode: "",
                 reportName: "",
-                reportText: ""
+                reportText: "",
+                feasibilityReportFiles: [] // 添加附件数组
             },
             tableData: [],
             fileList: [], // 附件列表
             showChoose: false,
             rules: {
-                reportCode: [
-                    { required: true, message: '请输入报告编号', trigger: 'blur' }
-                ],
+                // reportCode: [
+                //     { required: true, message: '请输入报告编号', trigger: 'blur' }
+                // ],
                 reportName: [
                     { required: true, message: '请输入报告名称', trigger: 'blur' }
                 ],
@@ -117,7 +121,17 @@
             getDetail(this.$route.query.id).then(res => {
                 this.form = res
                 this.tableData = [{ ...res.projectTeam, staffName: res.staffNames }]
-                this.fileList = res.fileList
+                if (res.feasibilityReportFiles && res.feasibilityReportFiles.length > 0) {
+                    this.fileList = res.feasibilityReportFiles.map(file => ({
+                        name: file.fileName,
+                        url: getFullUrl(file.fileUrl),
+                        uid: file.id
+                    }))
+                    this.form.feasibilityReportFiles = res.fileList
+                } else {
+                    this.fileList = []
+                    this.form.feasibilityReportFiles = []
+                }
             })
         },
         //获取选择项目组数据
@@ -125,6 +139,60 @@
             this.tableData = [data]
             this.$forceUpdate()
             this.showChoose = false
+        },
+        // 上传前校验
+        beforeUpload(file) {
+            return true;
+        },
+        // 自定义上传处理
+        handleUpload(options) {
+            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 || '',
+                            reportType: 3, // 可行性研究报告类型
+                            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);
+                    } else {
+                        this.$message.error(res.message || '文件上传失败');
+                        onError();
+                    }
+                },
+                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);
+            }
         },
         submit() {
             console.log(this.$refs.materialEditor.getContent());
@@ -186,16 +254,27 @@
 
                 if (valid) {
                     this.loading = true
-                    addData({ ...data }).then(res => {
-                        if (res.code === 200) {
-                            this.$message.success('提交成功')
-                            this.$router.back()
-                        } else {
-                            this.$message.error(res.message)
-                        }
-                    }).finally(() => {
-                        this.loading = false
-                    })
+                    if (this.$route.query.id) {
+                        editData({ ...data, id: this.$route.query.id }).then(res => {
+                            if (res.code === 200) {
+                                this.$message.success('修改成功')
+                                this.$router.back()
+                            } else {
+                                this.$message.error(res.message)
+                            }
+                        })
+                    } else {
+                        addData({ ...data }).then(res => {
+                            if (res.code === 200) {
+                                this.$message.success('发布成功')
+                                this.$router.back()
+                            } else {
+                                this.$message.error(res.message)
+                            }
+                        }).finally(() => {
+                            this.loading = false
+                        })
+                    }
                 }
             })
         },

--
Gitblit v1.7.1