更新各项功能

This commit is contained in:
hero920103 committed 2026-09-13 01:29:08 +08:00
1 parent 4455b95e37
commit aea53e0766
10 files changed
+763 -95

No files matched your search

@@ -34,7 +34,13 @@
<el-button type="danger" size="small" :icon="Delete" @click="handleDelete">删除</el-button>
</div>
</div>
<el-tabs v-if="detail.id" v-model="activeTab" tab-position="left" class="detail-tabs">
<el-tabs
v-if="detail.id"
v-model="activeTab"
tab-position="left"
class="detail-tabs"
@tab-change="handleTabChange"
>
<!-- 基本信息(拆分自原详情内容) -->
<el-tab-pane label="基本信息" name="basic">
<DetailBasic :detail="detail" />
@@ -52,6 +58,18 @@
:related-id="detail.id"
:related-type="E_CONTRACT_TYPE"
tip="上传合同扫描件 / 电子合同正本,支持图片与 PDF"
@count="counts.econtract = $event"
/>
</el-tab-pane>
<!-- 发票管理(上传发票、在线预览,与合同关联) -->
<el-tab-pane :label="`发票管理 (${counts.invoice})`" name="invoice">
<DetailAttach
ref="invoiceRef"
:related-id="detail.id"
:related-type="INVOICE_TYPE"
tip="上传销售 / 采购发票(图片或 PDF),点击可在线预览"
@count="counts.invoice = $event"
/>
</el-tab-pane>
@@ -96,15 +114,18 @@ const emit = defineEmits(["update:visible", "refresh", "edit"]);
const RELATED_TYPE = 3;
// 电子合同附件专属关联类型(与线索 1 / 商机 2 / 项目 3 区分)
const E_CONTRACT_TYPE = 4;
// 发票管理附件专属关联类型
const INVOICE_TYPE = 5;
const loading = ref(false);
const detail = ref({});
const activeTab = ref("basic");
const counts = reactive({ payback: 0, econtract: 0 });
const counts = reactive({ payback: 0, econtract: 0, invoice: 0 });
const paybackRef = ref();
const logRef = ref();
const econtractRef = ref();
const invoiceRef = ref();
watch(
() => props.visible,
@@ -113,6 +134,7 @@ watch(
activeTab.value = "basic";
counts.payback = 0;
counts.econtract = 0;
counts.invoice = 0;
detail.value = {};
if (!props.contract?.id) return;
loading.value = true;
@@ -137,6 +159,18 @@ function loadAll() {
paybackRef.value?.reload();
logRef.value?.reload();
econtractRef.value?.reload();
invoiceRef.value?.reload();
}
/** 切换 Tab 时刷新对应面板数据,保证与数量角标一致 */
function handleTabChange(name) {
const refMap = {
payback: paybackRef,
econtract: econtractRef,
invoice: invoiceRef,
log: logRef,
};
refMap[name]?.value?.reload();
}
/** 状态流转候选:排除当前状态 */