From 7ea4c47deb352bc1fcc84c842616a7ef4217fcea Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期二, 29 九月 2026 17:45:06 +0800
Subject: [PATCH] 新疆-融邦 销售台账、采购台账新增付款类别字段(授信账期/先款后货):列表、新增/编辑/详情弹框、审批详情展示
---
src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue | 100 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 89 insertions(+), 11 deletions(-)
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue b/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue
index b9eb42f..4ea07bd 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-list/components/ApproveDetailPanel.vue
@@ -19,9 +19,9 @@
{{ approvalTypeLabel(row.approvalType) }}
</span>
</el-descriptions-item>
- <el-descriptions-item label="鐢宠浜虹紪鍙�">{{ row.applicantNo || "鈥�" }}</el-descriptions-item>
- <el-descriptions-item label="鐢宠浜哄悕绉�">{{ row.applicantName || "鈥�" }}</el-descriptions-item>
- <el-descriptions-item label="鐢宠鎽樿">{{ row.summary || "鈥�" }}</el-descriptions-item>
+ <el-descriptions-item label="鍙戣捣浜虹紪鍙�">{{ row.applicantNo || "鈥�" }}</el-descriptions-item>
+ <el-descriptions-item label="鍙戣捣浜哄悕绉�">{{ row.applicantName || "鈥�" }}</el-descriptions-item>
+ <el-descriptions-item label="鎽樿">{{ row.summary || "鈥�" }}</el-descriptions-item>
<el-descriptions-item v-if="row.rejectReason"
label="椹冲洖鍘熷洜"
:span="2">
@@ -50,7 +50,7 @@
<el-descriptions-item label="鍙戣揣璁㈠崟鍙�">{{ detailData.shippingInfo.shippingNo || "--" }}</el-descriptions-item>
<el-descriptions-item label="瀹㈡埛鍚嶇О">{{ detailData.shippingInfo.customerName || "--" }}</el-descriptions-item>
<el-descriptions-item label="鍙戣揣绫诲瀷">{{ detailData.shippingInfo.type || "--" }}</el-descriptions-item>
- <el-descriptions-item label="鍙戣揣鏃ユ湡">{{ detailData.shippingInfo.shippingDateDate || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="鍙戣揣鏃ユ湡">{{ detailData.shippingInfo.shippingDate || "--" }}</el-descriptions-item>
<el-descriptions-item label="瀹℃牳鐘舵��">{{ detailData.shippingInfo.status || "--" }}</el-descriptions-item>
<el-descriptions-item label="鍙戣揣杞︾墝鍙�">{{ detailData.shippingInfo.shippingCarNumber || "--" }}</el-descriptions-item>
<el-descriptions-item label="蹇�掑叕鍙�">{{ detailData.shippingInfo.expressCompany || "--" }}</el-descriptions-item>
@@ -83,6 +83,7 @@
<el-descriptions-item label="绛捐鏃ユ湡">{{ detailData.executionDate || "--" }}</el-descriptions-item>
<el-descriptions-item label="褰曞叆鏃ユ湡">{{ detailData.entryDate || "--" }}</el-descriptions-item>
<el-descriptions-item label="浠樻鏂瑰紡">{{ detailData.paymentMethod || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="浠樻绫诲埆">{{ detailData.paymentCategory || "--" }}</el-descriptions-item>
<el-descriptions-item label="鍚堝悓閲戦" :span="2">
<span style="font-size: 18px; color: #e6a23c; font-weight: bold;">
楼{{ Number(detailData.contractAmount ?? 0).toFixed(2) }}
@@ -145,12 +146,61 @@
</div>
</div>
</template>
+
+ <!-- 閿�鍞彴璐﹀鎵硅鎯咃紙鍗栨补 / 浠e偍锛� -->
+ <template v-else-if="row.businessType === 19">
+ <div v-if="detailData && Object.keys(detailData).length" class="sales-ledger-detail">
+ <el-divider content-position="left">閿�鍞彴璐﹁鎯�</el-divider>
+ <el-descriptions :column="2" border>
+ <el-descriptions-item label="閿�鍞悎鍚屽彿">{{ detailData.salesContractNo || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="閿�鍞被鍨�">{{ detailData.ledgerType || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="瀹㈡埛鍚嶇О">{{ detailData.customerName || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="涓氬姟鍛�">{{ detailData.salesman || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="椤圭洰鍚嶇О">{{ detailData.projectName || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="浠樻鏂瑰紡">{{ detailData.paymentMethod || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="浠樻绫诲埆">{{ detailData.paymentCategory || "--" }}</el-descriptions-item>
+ <el-descriptions-item v-if="detailData.ledgerType === '浠e偍'"
+ label="娌瑰簱">{{ detailData.oilDepotName || "--" }}</el-descriptions-item>
+ <el-descriptions-item v-if="detailData.ledgerType === '浠e偍'"
+ label="鍌ㄧ綈鍙�">{{ detailData.tankNo || "--" }}</el-descriptions-item>
+ <el-descriptions-item label="鍚堝悓閲戦" :span="2">
+ <span style="font-size: 18px; color: #e6a23c; font-weight: bold;">
+ 楼{{ Number(detailData.contractAmount ?? 0).toFixed(2) }}
+ </span>
+ <span v-if="detailData.exceedsTrustFund"
+ class="reject-text"
+ style="margin-left: 12px;">
+ 宸茶秴鍑鸿瀹㈡埛淇℃墭鍩洪噾{{ detailData.trustFund != null ? `锛堜俊鎵樺熀閲戯細${detailData.trustFund}锛塦 : "" }}
+ </span>
+ </el-descriptions-item>
+ </el-descriptions>
+ <div v-if="detailData.productData && detailData.productData.length"
+ style="margin-top: 20px;">
+ <h4>浜у搧鏄庣粏</h4>
+ <el-table :data="detailData.productData"
+ border
+ style="width: 100%">
+ <el-table-column prop="productCategory" label="浜у搧澶х被" />
+ <el-table-column prop="specificationModel" label="瑙勬牸鍨嬪彿" />
+ <el-table-column prop="unit" label="鍗曚綅" />
+ <el-table-column prop="quantity" label="鏁伴噺" />
+ <el-table-column prop="taxInclusiveUnitPrice" label="鍚◣鍗曚环">
+ <template #default="scope">楼{{ Number(scope.row.taxInclusiveUnitPrice ?? 0).toFixed(2) }}</template>
+ </el-table-column>
+ <el-table-column prop="taxInclusiveTotalPrice" label="鍚◣鎬讳环">
+ <template #default="scope">楼{{ Number(scope.row.taxInclusiveTotalPrice ?? 0).toFixed(2) }}</template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </template>
</div>
- <div v-if="attachmentList.length"
+ <div v-for="group in attachmentGroups"
+ :key="group.title"
class="detail-block">
- <div class="detail-block-title">闄勪欢鍒楄〃</div>
+ <div class="detail-block-title">{{ group.title }}</div>
<div class="attachment-list">
- <div v-for="file in attachmentList"
+ <div v-for="file in group.files"
:key="file.id"
class="attachment-item">
<el-icon class="file-icon">
@@ -164,7 +214,7 @@
<el-link v-if="file.previewURL || file.url"
type="primary"
:underline="false"
- @click="openFile(file.previewURL || file.url)">棰勮</el-link>
+ @click="previewFile(file.previewURL || file.url)">棰勮</el-link>
<el-divider v-if="(file.previewURL || file.url) && file.downloadURL"
direction="vertical" />
<el-link v-if="file.downloadURL"
@@ -175,12 +225,14 @@
</div>
</div>
</div>
+ <filePreview ref="filePreviewRef" />
</div>
</template>
<script setup>
- import { computed } from "vue";
+ import { computed, ref } from "vue";
import { Paperclip } from "@element-plus/icons-vue";
+ import filePreview from "@/components/filePreview/index.vue";
import { formatDisplayTime } from "../../approve-template/approveTemplateConstants.js";
import {
approvalTypeLabel,
@@ -198,10 +250,12 @@
const formResolved = computed(() => resolveInstanceFormFields(props.row));
+ const filePreviewRef = ref();
- // 鏄惁涓虹壒娈婂鎵圭被鍨嬶紙閲囪喘銆佸彂璐с�佹姤浠凤級
+
+ // 鏄惁涓虹壒娈婂鎵圭被鍨嬶紙閲囪喘銆佸彂璐с�佹姤浠枫�侀攢鍞彴璐︼級
const isSpecialApprovalType = computed(() => {
- return [5, 7, 6].includes(props.row.businessType);
+ return [5, 7, 6, 19].includes(props.row.businessType);
});
// 璇︽儏鏁版嵁锛堢洿鎺ヤ娇鐢ㄤ紶鍏ョ殑 detail-data 鍙傛暟锛�
@@ -214,6 +268,30 @@
return Array.isArray(list) ? list : [];
});
+ // 鍙拌处鑷韩闄勪欢锛氶攢鍞彴璐� listPage 杩斿洖 storageBlobVOs锛岄噰璐彴璐� getPurchaseByCode 杩斿洖 storageBlobVOS
+ const businessAttachments = computed(() => {
+ if (![5, 19].includes(props.row.businessType)) return [];
+ const detail = props.detailData || {};
+ const candidates = [detail.storageBlobVOs, detail.storageBlobVOS, detail.storageBlobVOList];
+ return candidates.find(list => Array.isArray(list) && list.length) || [];
+ });
+
+ const attachmentGroups = computed(() => {
+ const groups = [];
+ if (businessAttachments.value.length) {
+ groups.push({ title: "鍙拌处闄勪欢", files: businessAttachments.value });
+ }
+ if (attachmentList.value.length) {
+ groups.push({ title: "瀹℃壒闄勪欢", files: attachmentList.value });
+ }
+ return groups;
+ });
+
+ function previewFile(url) {
+ if (!url) return;
+ filePreviewRef.value?.open(url);
+ }
+
function openFile(url) {
if (!url) return;
window.open(url, "_blank");
--
Gitblit v1.9.3