From fe6509e66e6852f6b5d740385bdae4fd0a11da77 Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期二, 21 十月 2025 14:55:05 +0800
Subject: [PATCH] 修改问题
---
laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue | 99 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 79 insertions(+), 20 deletions(-)
diff --git a/laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue b/laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue
index 7458017..f8011cb 100644
--- a/laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue
+++ b/laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue
@@ -1,7 +1,7 @@
<template>
- <el-dialog :title="dialogTitle" :visible.sync="visible" width="80%" @open="open" po :close-on-click-modal="false"
- @close="handleClose">
- <div class="approval-dialog" :style="{height: obj.isDetail ? '50vh' : '40vh'}">
+ <el-dialog :title="dialogTitle" :visible.sync="visible" width="90%" top="5vh" @open="open" po
+ :close-on-click-modal="false" @close="handleClose">
+ <div class="approval-dialog" :style="{ height: obj.isDetail ? '80vh' : '60vh' }">
<!-- 左侧审批内容 -->
<div class="approval-content">
<Card class="approval-content-card">
@@ -30,7 +30,7 @@
<div>报告编号</div>
</div>
</div>
- <el-form-item prop="reportCode" style="margin-top: 38px">
+ <el-form-item prop="reportCode" style="margin-top: 18px">
<el-input disabled v-model="form.reportCode" style="width: 100%;"
placeholder="请输入报告编号" />
</el-form-item>
@@ -41,7 +41,7 @@
<div>报告名称</div>
</div>
</div>
- <el-form-item prop="reportName" style="margin-top: 38px">
+ <el-form-item prop="reportName" style="margin-top: 18px">
<el-input disabled v-model="form.reportName" style="width: 100%;"
placeholder="请输入报告名称" />
</el-form-item>
@@ -52,9 +52,18 @@
<div>报告正文</div>
</div>
</div>
- <el-form-item prop="reportText" style="margin-top: 38px">
+ <el-form-item prop="reportText" style="margin-top: 18px">
<ai-editor :readOnly="true" :value="form.reportText" style="width: 100%;"
placeholder="请输入报告正文" />
+ </el-form-item>
+ <div class="header-title" style="width: 100%;">
+ <div class="header-title-left">
+ <img src="@/assets/public/headercard.png" />
+ <div>附件</div>
+ </div>
+ </div>
+ <el-form-item prop="feasibilityReportFiles" style="margin-top: -18px">
+ <el-upload disabled :on-preview="handlePreview" :file-list="fileList" />
</el-form-item>
</el-form>
@@ -78,7 +87,7 @@
<div class="resolve" :class="status == '2' && 'activeStatus'" @click.stop="status = 2">
通过
</div>
- <div class="reject" :class="status == '3' && 'activeStatus'" @click.stop="status = 3">
+ <div class="reject" :class="status == '4' && 'activeStatus'" @click.stop="status = 4">
驳回
</div>
</div>
@@ -95,8 +104,8 @@
</div>
<div slot="footer" class="dialog-footer">
- <el-button @click="handleClose">{{obj.isDetail ? '关闭' : '取 消'}}</el-button>
- <el-button type="primary" @click="handleApprove" v-if="!obj.isDetail">通过</el-button>
+ <el-button @click="handleClose">{{ obj.isDetail ? '关闭' : '取 消' }}</el-button>
+ <el-button type="primary" @click="handleApprove" v-if="!obj.isDetail">确定</el-button>
</div>
</el-dialog>
</template>
@@ -105,6 +114,8 @@
import ApprovalProcess from '@/components/approvalProcess'
import AiEditor from '@/components/AiEditor'
import { getDetail } from '../../service';
+import { customUploadRequest, getFullUrl, getAllocateIp , downloadFileByUrl, isImageFile } from "@/utils/utils";
+import apiConfig from '@/utils/baseurl';
export default {
@@ -144,8 +155,10 @@
updateBy: "",
auditRemark: "",
auditPersonName: "",
+ feasibilityReportFiles: [],
auditTime: ""
},
+ fileList: [],
tableData: [],
rules: {},
status: "2",
@@ -158,6 +171,28 @@
},
},
methods: {
+ getFullUrl,
+ handlePreview(file) {
+ if (file && file.url) {
+ // 判断是否为图片文件
+ const isImage = isImageFile(file.url);
+
+ if (isImage) {
+ // 图片文件:使用 window.open 预览
+ if (file.url && file.url.startsWith(getAllocateIp())) {
+ console.log('图片链接', file.url)
+ window.open(file.url, '_blank');
+ } else {
+ let newUrl = getAllocateIp() + file.url;
+ console.log('图片链接', newUrl)
+ window.open(newUrl, '_blank');
+ }
+ } else {
+ // 非图片文件:使用下载方式
+ downloadFileByUrl(file.url, file.name);
+ }
+ }
+ },
open() {
if (!this.obj.id) {
this.$message.error('缺少必要参数');
@@ -169,8 +204,29 @@
this.form = {
...this.form,
...data,
+ // feasibilityReportFiles:data.feasibilityReportFiles.map(item => ({
+ // name: item.fileName,
+ // url: item.fileUrl
+ // })) || [],
processData: []
};
+ if (
+ data.feasibilityReportFiles &&
+ data.feasibilityReportFiles.length > 0
+ ) {
+ this.fileList =
+ data.feasibilityReportFiles.map((file) => {
+ return {
+ name: file.fileName,
+ url: getFullUrl(file.fileUrl),
+ uid: file.id,
+ };
+ });
+ this.form.feasibilityReportFiles = data.feasibilityReportFiles
+ } else {
+ this.fileList = [];
+ this.form.feasibilityReportFiles = [];
+ }
this.tableData = data.projectTeam ?
[{ ...data.projectTeam, staffName: data.staffNames || '' }] :
@@ -187,11 +243,12 @@
]
});
- if (data.status == 2 || data.status == 3) {
+ if (data.status == 2 || data.status == 4 || data.status == 3) {
processData.push({
- type: data.status === 2 ? "primary" : "danger",
+ type: "primary",
mode: "list",
fields: [
+ { label: "审核结果:", value: data.status == 4 ? '驳回' : "通过" || "" },
{ label: "审批意见:", value: data.auditRemark || "" },
{ label: "审核人:", value: data.auditPersonName || "" },
{ label: "审核时间:", value: data.auditTime || "" },
@@ -220,7 +277,7 @@
type: "success",
mode: "list",
fields: [
- { label: "已评定" },
+ { label: "评定状态:已评定" },
{ label: "评定人:", value: data.evaluatePersonName || "" },
{ label: "评定时间:", value: data.evaluateTime || "" }
],
@@ -264,7 +321,9 @@
.approval-dialog {
display: flex;
- height: 40vh;
+ // height: 40vh;
+ min-height: 60vh;
+ max-height: 80vh;
.approval-content {
flex: 3;
@@ -275,9 +334,9 @@
}
.approval-flow {
- padding: 40px 20px;
- // width: 405px;
- flex: 2;
+ padding: 20px 10px;
+ width: 305px;
+ // flex: 2;
background: #ffffff;
box-shadow: 0px 4px 12px 4px rgba(0, 0, 0, 0.08);
border-radius: 10px;
@@ -301,7 +360,7 @@
}
.approval-content-card {
- height: calc(100% - 100px) !important;
+ height: calc(100% - 10px) !important;
box-shadow: none !important;
}
@@ -309,14 +368,14 @@
// display: flex;
align-items: center;
flex-wrap: wrap;
- margin-bottom: 20px;
+ margin-bottom: 10px;
gap: 13px;
.header-title-left {
display: flex;
align-items: center;
gap: 13px;
- margin-top: 38px;
+ margin-top: 18px;
img {
width: 12px;
@@ -380,7 +439,7 @@
}
.approval-dialog-approve {
- padding: 38px 20px;
+ padding: 18px 10px;
// display: flex;
align-content: center;
--
Gitblit v1.7.1