From 9e7cc674d486cc55d0c2bfe06ce21d72cd6bd30d Mon Sep 17 00:00:00 2001
From: "Mr.j" <2221464500@qq.com>
Date: Thu, 14 Aug 2025 16:17:58 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=AE=BE=E5=A4=87=E9=87=87?=
=?UTF-8?q?=E8=B4=AD=E6=A8=A1=E5=9D=97=E5=90=88=E5=90=8C=E5=92=8C=E5=8F=91?=
=?UTF-8?q?=E7=A5=A8=E4=B8=8A=E4=BC=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/ContractInvoiceModal.vue | 534 ++++++++++++++++++
.../device-management/procurement/index.vue | 51 +-
2 files changed, 583 insertions(+), 2 deletions(-)
create mode 100644 src/views/system-resource/device-management/procurement/components/ContractInvoiceModal.vue
diff --git a/src/views/system-resource/device-management/procurement/components/ContractInvoiceModal.vue b/src/views/system-resource/device-management/procurement/components/ContractInvoiceModal.vue
new file mode 100644
index 0000000..be0f7b3
--- /dev/null
+++ b/src/views/system-resource/device-management/procurement/components/ContractInvoiceModal.vue
@@ -0,0 +1,534 @@
+
+
+
+
+
+
+
+ {{ equipmentData?.equipmentName }}
+
+
+ {{ equipmentData?.equipmentModel }}
+
+
+ {{ equipmentData?.supplierName }}
+
+
+ ¥{{ formatPrice(equipmentData?.purchasePrice || 0) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 草稿
+ 已签订
+ 执行中
+ 已完成
+ 已终止
+
+
+
+
+
+
+
+
+
+
+ 上传合同文件
+
+
+
+
+ {{ file.name }}
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 增值税专用发票
+ 增值税普通发票
+ 电子发票
+ 其他
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传发票文件
+
+
+
+
+ {{ file.name }}
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/system-resource/device-management/procurement/index.vue b/src/views/system-resource/device-management/procurement/index.vue
index b1953c0..3f40bae 100644
--- a/src/views/system-resource/device-management/procurement/index.vue
+++ b/src/views/system-resource/device-management/procurement/index.vue
@@ -219,6 +219,15 @@
>
确认收货
+
+
+ 管理合同发票
+
+
+
+
@@ -361,6 +377,7 @@ import ReceiptDetailModal from './components/ReceiptDetailModal.vue'
import PaymentDetailModal from './components/PaymentDetailModal.vue'
import ReceiptModal from './components/ReceiptModal.vue'
import PaymentModal from './components/PaymentModal.vue'
+import ContractInvoiceModal from './components/ContractInvoiceModal.vue'
import { equipmentProcurementApi } from '@/apis/equipment/procurement'
import { equipmentApprovalApi } from '@/apis/equipment/approval'
import type { EquipmentListReq, EquipmentResp } from '@/apis/equipment/type'
@@ -409,6 +426,10 @@ const currentPaymentData = ref(null)
const receiptModalVisible = ref(false)
const paymentModalVisible = ref(false)
+// 合同发票管理弹窗控制
+const contractInvoiceModalVisible = ref(false)
+const currentContractInvoiceData = ref(null)
+
// 表格选择
const selectedRowKeys = ref([])
const rowSelection = reactive({
@@ -1052,19 +1073,27 @@ const canApplyProcurement = (record: EquipmentResp) => {
// 检查是否可以收货
const canReceiveGoods = (record: EquipmentResp) => {
// 只有在采购状态为已通过且收货状态为未收货时才显示确认收货按钮
+ // 同时需要确保合同发票信息已经完善
const procurementStatus = record.procurementStatus
const receiptStatus = record.receiptStatus
+ // 检查是否有合同发票信息(这里可以根据实际业务逻辑调整)
+ // 暂时使用一个简单的判断,后续可以根据实际数据结构调整
+ const hasContractInvoice = true // 暂时设为true,后续根据实际业务逻辑调整
+
console.log('🔍 canReceiveGoods 检查:', {
equipmentName: record.equipmentName,
procurementStatus,
receiptStatus,
+ hasContractInvoice,
canReceive: procurementStatus === 'APPROVED' &&
- (receiptStatus === 'NOT_RECEIVED' || receiptStatus === 'PARTIALLY_RECEIVED')
+ (receiptStatus === 'NOT_RECEIVED' || receiptStatus === 'PARTIALLY_RECEIVED') &&
+ hasContractInvoice
})
return procurementStatus === 'APPROVED' &&
- (receiptStatus === 'NOT_RECEIVED' || receiptStatus === 'PARTIALLY_RECEIVED')
+ (receiptStatus === 'NOT_RECEIVED' || receiptStatus === 'PARTIALLY_RECEIVED') &&
+ hasContractInvoice
}
// 收货操作
@@ -1160,6 +1189,24 @@ const handleRefreshRecord = async (record: EquipmentResp) => {
}
}
+// 检查是否可以管理合同发票
+const canManageContractInvoice = (record: EquipmentResp) => {
+ // 只有在采购状态为已通过时才显示管理合同发票按钮
+ return record.procurementStatus === 'APPROVED'
+}
+
+// 管理合同发票操作
+const handleManageContractInvoice = (record: EquipmentResp) => {
+ currentContractInvoiceData.value = { ...record }
+ contractInvoiceModalVisible.value = true
+}
+
+// 合同发票管理成功回调
+const handleContractInvoiceSuccess = () => {
+ contractInvoiceModalVisible.value = false
+ loadData(currentSearchParams.value)
+}
+
onMounted(() => {
loadData()
})