This commit is contained in:
2026-06-18 15:11:12 +08:00
parent 853ee41877
commit be2eee248b
@@ -237,10 +237,9 @@
required
>
<a-select
v-model:value="detailState.contractType"
v-model:value="detailState.contractTypeCode"
:options="contractTypeOptions"
placeholder="请选择合同类型"
@change="handleContractTypeChange"
/>
</a-form-item>
</div>
@@ -664,14 +663,6 @@
placeholder="协助部门"
/>
</a-form-item>
<a-form-item class="tight-item" label="合同类型" required>
<a-select
v-model:value="detailState.contractTypeCode"
:options="contractTypeOptions"
placeholder="请选择合同类型编码"
@change="handleContractTypeCodeChange"
/>
</a-form-item>
<a-form-item
class="tight-item field-span-2"
label="合同执行人"
@@ -803,7 +794,10 @@
<a-radio :value="false">否</a-radio>
</a-radio-group>
</div>
<div class="boolean-row">
<div
v-if="detailState.paymentDirection === '1'"
class="boolean-row"
>
<span>是否列入当年预算</span>
<a-radio-group
v-model:value="detailState.isIncludedInCurrentYearBudget"
@@ -1438,7 +1432,6 @@ function createContractFormData() {
id: null,
contractName: "",
contractCode: "",
contractType: undefined,
contractTypeCode: undefined,
contractAmount: null,
estimatedAmount: null,
@@ -1610,6 +1603,13 @@ function copyContractFormData(data = {}) {
if (source.contractTextFileName && !form.contractBodyFileName) {
form.contractBodyFileName = source.contractTextFileName;
}
// 兼容旧数据:如果只有 contractType(中文名)没有 contractTypeCode,尝试反向查找编码
if (!form.contractTypeCode && source.contractType) {
const matched = contractTypeOptions.find(
(opt) => opt.label === source.contractType || opt.simpleLabel === source.contractType,
);
if (matched) form.contractTypeCode = matched.value;
}
return form;
}
@@ -1918,10 +1918,6 @@ function handleContractTypeChange(value) {
detailState.value.contractTypeCode = value;
}
function handleContractTypeCodeChange(value) {
detailState.value.contractType = value;
}
function handleAddCounterparty() {
if (isSingleAgreementChecked.value) return;
detailState.value.partyState.counterpartyList =
@@ -2144,7 +2140,7 @@ function validateState() {
)
return "请选择相对方";
if (!detailState.value.contractName?.trim()) return "请填写合同名称";
if (!detailState.value.contractType) return "请选择合同类型";
if (!detailState.value.contractTypeCode) return "请选择合同类型";
if (
detailState.value.contractPeriodType === "0" &&
(!detailState.value.effectiveStart || !detailState.value.effectiveEnd)
@@ -2364,12 +2360,7 @@ function buildLaunchRecord() {
id: detailState.value.id || null,
contractCode: detailState.value.contractCode,
contractName: detailState.value.contractName,
contractType: getOptionLabel(
contractTypeOptions,
detailState.value.contractType,
),
contractTypeCode:
detailState.value.contractTypeCode || detailState.value.contractType,
contractTypeCode: detailState.value.contractTypeCode,
contractSource: detailState.value.contractSource || "ECP",
creationMode: creationMode.value,
templateId: templateKey.value || null,