From a60dc30be50598fe2d1acb42f8171ec69e37b436 Mon Sep 17 00:00:00 2001
From: 13404089107 <puwei@sinata.cn>
Date: 星期三, 28 五月 2025 17:29:05 +0800
Subject: [PATCH] Merge branch 'main' of http://120.76.84.145:10101/gitblit/r/H5/leshan-laboratory
---
laboratory/src/views/reportLibrary/projectProposalLibrary/components/approval/index.vue | 168 ++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 109 insertions(+), 59 deletions(-)
diff --git a/laboratory/src/views/reportLibrary/projectProposalLibrary/components/approval/index.vue b/laboratory/src/views/reportLibrary/projectProposalLibrary/components/approval/index.vue
index 964ae96..85868ae 100644
--- a/laboratory/src/views/reportLibrary/projectProposalLibrary/components/approval/index.vue
+++ b/laboratory/src/views/reportLibrary/projectProposalLibrary/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,81 @@
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: "等待审核" },
+ ],
+ });
+ }
+
+ 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 +261,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