更新各项功能
This commit is contained in:
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();
|
||||
}
|
||||
|
||||
/** 状态流转候选:排除当前状态 */
|
||||
|
||||
Reference in new issue
Block a user