From c85d2427b749c5e7236f0474f9215e5936cdfa7c Mon Sep 17 00:00:00 2001
From: 董国庆 <364620639@qq.com>
Date: 星期三, 21 五月 2025 17:08:21 +0800
Subject: [PATCH] 原始检验记录

---
 laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue |  188 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 129 insertions(+), 59 deletions(-)

diff --git a/laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue b/laboratory/src/views/reportLibrary/verificationRelease/components/approval/index.vue
index 964ae96..7458017 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%" po :close-on-click-modal="false"
+    <el-dialog :title="dialogTitle" :visible.sync="visible" width="80%" @open="open" po :close-on-click-modal="false"
         @close="handleClose">
-        <div class="approval-dialog">
+        <div class="approval-dialog" :style="{height: obj.isDetail ? '50vh' : '40vh'}">
             <!-- 左侧审批内容 -->
             <div class="approval-content">
                 <Card class="approval-content-card">
@@ -12,13 +12,12 @@
                                 <div>所属项目组</div>
                             </div>
                         </div>
-                        <Table :height="null" :queryForm="queryForm" :total="0" @currentChange="handleCurrentChange"
-                            @sizeChange="handleSizeChange">
+                        <Table :height="null" :total="0" :data="tableData">
                             <template>
-                                <el-table-column prop="name" label="项目组名称" />
-                                <el-table-column prop="age" label="项目负责人" />
-                                <el-table-column prop="age" label="项目组成员" />
-                                <el-table-column prop="age" label="创建时间" />
+                                <el-table-column prop="teamName" label="项目组名称" />
+                                <el-table-column prop="personCharge" label="项目负责人" />
+                                <el-table-column prop="staffName" label="项目组成员" />
+                                <el-table-column prop="createTime" label="创建时间" />
                             </template>
                         </Table>
 
@@ -31,9 +30,10 @@
                                     <div>报告编号</div>
                                 </div>
                             </div>
-                            <form-item prop="name" style="margin-top: 38px">
-                                <el-input v-model="form.name" style="width: 100%;" placeholder="请输入报告编号" />
-                            </form-item>
+                            <el-form-item prop="reportCode" style="margin-top: 38px">
+                                <el-input disabled v-model="form.reportCode" style="width: 100%;"
+                                    placeholder="请输入报告编号" />
+                            </el-form-item>
 
                             <div class="header-title" style="width: 100%;">
                                 <div class="header-title-left">
@@ -41,9 +41,10 @@
                                     <div>报告名称</div>
                                 </div>
                             </div>
-                            <form-item prop="name" style="margin-top: 38px">
-                                <el-input v-model="form.name" style="width: 100%;" placeholder="请输入报告编号" />
-                            </form-item>
+                            <el-form-item prop="reportName" style="margin-top: 38px">
+                                <el-input disabled v-model="form.reportName" style="width: 100%;"
+                                    placeholder="请输入报告名称" />
+                            </el-form-item>
 
                             <div class="header-title" style="width: 100%;">
                                 <div class="header-title-left">
@@ -51,9 +52,10 @@
                                     <div>报告正文</div>
                                 </div>
                             </div>
-                            <form-item prop="name" style="margin-top: 38px">
-                                <ai-editor v-model="form.name" style="width: 100%;" placeholder="请输入报告编号" />
-                            </form-item>
+                            <el-form-item prop="reportText" style="margin-top: 38px">
+                                <ai-editor :readOnly="true" :value="form.reportText" style="width: 100%;"
+                                    placeholder="请输入报告正文" />
+                            </el-form-item>
 
                         </el-form>
                     </template>
@@ -63,21 +65,20 @@
             <!-- 右侧审批流程 -->
             <div class="approval-flow">
                 <div class="flow-content">
-                    <approval-process :status="form.status" :submit-time="form.createTime" :approver="form.approver"
-                        :approve-time="form.approveTime" />
+                    <approval-process :processData="form.processData" />
                 </div>
             </div>
         </div>
-        <div class="approval-dialog-approve">
+        <div class="approval-dialog-approve" v-if="!obj.isDetail">
             <el-row :span="24">
                 <el-col :span="12">
                     <div class="status">
                         <div class="status-title">审批结果</div>
                         <div class="status-content">
-                            <div class="resolve" :class="status == '1' && 'activeStatus'" @click.stop="status = 1">
+                            <div class="resolve" :class="status == '2' && 'activeStatus'" @click.stop="status = 2">
                                 通过
                             </div>
-                            <div class="reject" :class="status == '2' && 'activeStatus'" @click.stop="status = 2">
+                            <div class="reject" :class="status == '3' && 'activeStatus'" @click.stop="status = 3">
                                 驳回
                             </div>
                         </div>
@@ -94,8 +95,8 @@
 
         </div>
         <div slot="footer" class="dialog-footer">
-            <el-button @click="handleClose" >取 消</el-button>
-            <el-button type="primary" @click="handleApprove" v-if="type === 'approve'">通过</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>
@@ -103,6 +104,8 @@
 <script>
 import ApprovalProcess from '@/components/approvalProcess'
 import AiEditor from '@/components/AiEditor'
+import { getDetail } from '../../service';
+
 
 export default {
     name: "ApprovalDialog",
@@ -119,27 +122,33 @@
             type: String,
             default: "approve", // approve-审批,view-查看
         },
-        data: {
+        obj: {
             type: Object,
-            default: () => ({}),
+            default: () => { },
         },
     },
     data() {
         return {
             form: {
-                planName: "",
-                planCode: "",
-                stage: "",
-                creator: "",
+                reportCode: "",
+                reportName: "",
+                reportText: "",
+                teamName: "",
+                createBy: "",
                 createTime: "",
+                status: "",
                 approvalComment: "",
-                status: "pending",
                 approver: "",
-                approveTime: ""
+                approveTime: "",
+                processData: [],
+                updateBy: "",
+                auditRemark: "",
+                auditPersonName: "",
+                auditTime: ""
             },
-            radio1: 1,
+            tableData: [],
             rules: {},
-            status: "1",
+            status: "2",
             remark: "",
         };
     },
@@ -148,40 +157,101 @@
             return this.type === "approve" ? "审批" : "审批详情";
         },
     },
-    watch: {
-        data: {
-            handler(val) {
-                if (val) {
-                    this.form = { ...val };
-                }
-            },
-            immediate: true,
-        },
-    },
     methods: {
+        open() {
+            if (!this.obj.id) {
+                this.$message.error('缺少必要参数');
+                return;
+            }
+
+            getDetail(this.obj.id).then(res => {
+                const data = res.data || res;
+                this.form = {
+                    ...this.form,
+                    ...data,
+                    processData: []
+                };
+
+                this.tableData = data.projectTeam ?
+                    [{ ...data.projectTeam, staffName: data.staffNames || '' }] :
+                    [];
+
+                let processData = [];
+                // 提交节点
+                processData.push({
+                    type: "primary",
+                    mode: "list",
+                    fields: [
+                        { label: "提交人:", value: data.updateBy || "" },
+                        { label: "提交时间:", value: data.createTime || "" },
+                    ]
+                });
+
+                if (data.status == 2 || data.status == 3) {
+                    processData.push({
+                        type: data.status === 2 ? "primary" : "danger",
+                        mode: "list",
+                        fields: [
+                            { label: "审批意见:", value: data.auditRemark || "" },
+                            { label: "审核人:", value: data.auditPersonName || "" },
+                            { label: "审核时间:", value: data.auditTime || "" },
+                        ]
+                    });
+                } else {
+                    processData.push({
+                        type: "warning",
+                        mode: "list",
+                        fields: [
+                            { label: "等待审核" },
+                        ],
+                    });
+                }
+
+                if (data.status == 2) {
+                    processData.push({
+                        type: "warning",
+                        mode: "list",
+                        fields: [{ label: "等待评定" }],
+                    });
+                }
+
+                if (data.status == 3) {
+                    processData.push({
+                        type: "success",
+                        mode: "list",
+                        fields: [
+                            { label: "已评定" },
+                            { label: "评定人:", value: data.evaluatePersonName || "" },
+                            { label: "评定时间:", value: data.evaluateTime || "" }
+                        ],
+                    });
+                }
+
+                this.form.processData = processData;
+
+            }).catch(err => {
+                this.$message.error('获取详情失败');
+            });
+        },
         handleClose() {
             this.$emit("close");
             this.form.approvalComment = "";
         },
         handleApprove() {
-            if (!this.form.approvalComment) {
-                this.$message.warning("请输入审批意见");
-                return;
-            }
             this.$emit("approve", {
                 ...this.form,
-                status: "approved",
+                statuss: this.status,
+                remark: this.remark
             });
         },
-        handleReject() {
-            if (!this.form.approvalComment) {
-                this.$message.warning("请输入审批意见");
-                return;
-            }
-            this.$emit("reject", {
-                ...this.form,
-                status: "rejected",
-            });
+
+        handleCurrentChange(page) {
+            this.form.pageNum = page
+            this.getList()
+        },
+        handleSizeChange(size) {
+            this.form.pageSize = size
+            this.getList()
         },
     },
 };
@@ -211,7 +281,7 @@
         background: #ffffff;
         box-shadow: 0px 4px 12px 4px rgba(0, 0, 0, 0.08);
         border-radius: 10px;
-                          
+
         .flow-title {
             font-size: 16px;
             font-weight: bold;

--
Gitblit v1.7.1