From c6ddf30116ef3f55bd9557e8d0e93bfc13ac4e91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E7=BA=A2=E5=85=B5?= <374362909@qq.com> Date: Wed, 25 Feb 2026 11:28:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B1=A5=E7=BA=A6=E9=AA=8C=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../accept/AcceptCommonForm.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue b/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue index de696a6..361c0f5 100644 --- a/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue +++ b/src/views/finance/purchasingrequisition/accept/AcceptCommonForm.vue @@ -133,12 +133,18 @@ const syncFormFromModel = (val: Record | undefined) => { const loadContractOptions = async () => { if (contractLoaded.value || contractLoading.value) return + if (form.hasContract !== '1') return contractLoading.value = true try { const res = await getContracts(props.purchaseId ? { id: props.purchaseId } : {}) const list = res?.data contractOptions.value = Array.isArray(list) ? list : [] contractLoaded.value = true + // 回显时:列表中含当前合同,用其供应商名称填充(若尚未有值) + if (form.contractId) { + const c = contractOptions.value.find((it: any) => it.id === form.contractId) + if (c?.supplierName) form.supplierName = c.supplierName + } } catch (_) { contractOptions.value = [] } finally { @@ -152,7 +158,17 @@ const onContractSelectVisibleChange = (visible: boolean) => { } } -watch(() => props.modelValue, syncFormFromModel, { deep: true, immediate: true }) +watch( + () => props.modelValue, + (val) => { + syncFormFromModel(val) + // 回显:已有合同ID时主动加载合同列表,以便下拉显示合同名称(后端已排除“其他申请”的合同,当前申请合同会在列表中) + if (form.hasContract === '1' && form.contractId && props.purchaseId && !contractLoaded.value && !contractLoading.value) { + loadContractOptions() + } + }, + { deep: true, immediate: true } +) // resetKey 变化时强制用 modelValue 覆盖内部 form,并重置合同列表以便重新拉取 watch(() => props.resetKey, () => { syncFormFromModel(props.modelValue)