一些禁用状态
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
<div class="section-title-row counterparty-toolbar">
|
||||
<div class="section-title">我方主体</div>
|
||||
<a-button
|
||||
v-if="!isViewMode && !isSingleAgreementChecked"
|
||||
v-if="!isViewMode && !isOurPartyLocked"
|
||||
type="link"
|
||||
class="text-action-btn"
|
||||
@click="handleAddOurParty"
|
||||
@@ -46,7 +46,11 @@
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="party-empty-state" style="margin-bottom: 12px">
|
||||
{{ isSingleAgreementChecked ? "单方协议默认使用当前登录主体,且不可修改" : "当前登录主体必须包含在我方主体中" }}
|
||||
{{
|
||||
isSingleAgreementChecked
|
||||
? "单方协议默认使用当前登录主体,且不可修改"
|
||||
: "当前登录主体必须包含在我方主体中"
|
||||
}}
|
||||
</div>
|
||||
|
||||
<div
|
||||
@@ -59,7 +63,7 @@
|
||||
{{ party.displayName }}
|
||||
</div>
|
||||
<a-button
|
||||
v-if="!isViewMode && !isSingleAgreementChecked && ourParties.length > 1"
|
||||
v-if="!isViewMode && !isOurPartyLocked && ourParties.length > 1"
|
||||
type="link"
|
||||
danger
|
||||
class="text-action-btn"
|
||||
@@ -73,7 +77,7 @@
|
||||
v-model:value="party.companyName"
|
||||
:options="getPartyOptions(party.roleCode)"
|
||||
show-search
|
||||
:disabled="isSingleAgreementChecked"
|
||||
:disabled="isViewMode || isOurPartyLocked"
|
||||
:placeholder="`请选择${party.displayName}`"
|
||||
:filter-option="filterPartnerOption"
|
||||
@change="
|
||||
@@ -83,6 +87,7 @@
|
||||
/>
|
||||
<a-button
|
||||
class="icon-btn"
|
||||
:disabled="isViewMode || isOurPartyLocked"
|
||||
@click="showSearchTip(`${party.displayName}`)"
|
||||
>
|
||||
<SearchOutlined />
|
||||
@@ -383,6 +388,7 @@
|
||||
>
|
||||
<a-button
|
||||
size="small"
|
||||
:disabled="false"
|
||||
@click="
|
||||
downloadFile(
|
||||
detailState.contractBodyFilePath,
|
||||
@@ -418,6 +424,7 @@
|
||||
v-for="item in detailState.contractGistFileList"
|
||||
:key="item.uid || item.filePath"
|
||||
size="small"
|
||||
:disabled="false"
|
||||
@click="
|
||||
downloadFile(
|
||||
item.filePath,
|
||||
@@ -457,6 +464,7 @@
|
||||
v-for="item in detailState.authAttachmentList"
|
||||
:key="item.uid || item.filePath"
|
||||
size="small"
|
||||
:disabled="false"
|
||||
@click="
|
||||
downloadFile(
|
||||
item.filePath,
|
||||
@@ -493,6 +501,7 @@
|
||||
v-for="item in detailState.otherAttachmentList"
|
||||
:key="item.uid || item.filePath"
|
||||
size="small"
|
||||
:disabled="false"
|
||||
@click="
|
||||
downloadFile(
|
||||
item.filePath,
|
||||
@@ -519,6 +528,7 @@
|
||||
<a-space style="margin-top: 8px">
|
||||
<a-button
|
||||
size="small"
|
||||
:disabled="false"
|
||||
@click="
|
||||
downloadFile(
|
||||
detailState.signedFilePath,
|
||||
@@ -828,6 +838,7 @@
|
||||
class="extra-check-item"
|
||||
>
|
||||
<a-checkbox
|
||||
:disabled="isViewMode"
|
||||
v-model:checked="
|
||||
detailState.extraAmounts[`${item.key}Enabled`]
|
||||
"
|
||||
@@ -842,6 +853,7 @@
|
||||
:key="`${item.key}_input`"
|
||||
v-model:value="detailState.extraAmounts[item.key]"
|
||||
:disabled="
|
||||
isViewMode ||
|
||||
!detailState.extraAmounts[`${item.key}Enabled`]
|
||||
"
|
||||
:min="0"
|
||||
@@ -1041,31 +1053,7 @@ import {
|
||||
getOptionLabel,
|
||||
} from "../contractLaunchOptions.js";
|
||||
|
||||
// ========================================================================
|
||||
// 以下为表单模型 + 字典 + 工具函数,直接内联在此文件中。
|
||||
// 接入后端时,保留这些函数,替换入参/出参为真实接口即可。
|
||||
// ========================================================================
|
||||
|
||||
// ========== 合同方相关字典 ==========
|
||||
|
||||
const companyTypeOptions = [
|
||||
{ label: "客户", value: "客户" },
|
||||
{ label: "供应商", value: "供应商" },
|
||||
{ label: "合作伙伴", value: "合作伙伴" },
|
||||
{ label: "客户及供应商", value: "客户及供应商" },
|
||||
{ label: "其他", value: "其他" },
|
||||
];
|
||||
|
||||
const contractCompanyOptions = ref([
|
||||
{ label: "扬州宏富特种材料有限公司", value: "扬州宏富特种材料有限公司" },
|
||||
{ label: "宁波港船务货运代理有限公司", value: "宁波港船务货运代理有限公司" },
|
||||
{ label: "宁波浙港供应链科技有限公司", value: "宁波浙港供应链科技有限公司" },
|
||||
{ label: "上海远洋能源有限公司", value: "上海远洋能源有限公司" },
|
||||
{ label: "宁波保税区港航设备有限公司", value: "宁波保税区港航设备有限公司" },
|
||||
{ label: "浙江临港数智科技有限公司", value: "浙江临港数智科技有限公司" },
|
||||
{ label: "杭州智云实施服务有限公司", value: "杭州智云实施服务有限公司" },
|
||||
{ label: "浙港物流平台有限公司", value: "浙港物流平台有限公司" },
|
||||
]);
|
||||
const contractCompanyOptions = ref([]);
|
||||
|
||||
// ========== 合同相关字典 ==========
|
||||
|
||||
@@ -1411,13 +1399,6 @@ function copyPartyState(input) {
|
||||
isThreePartyContract: source.isThreePartyContract,
|
||||
});
|
||||
}
|
||||
|
||||
function getPartyByLocalId(list = [], localId) {
|
||||
return (Array.isArray(list) ? list : []).find(
|
||||
(item) => item.localId === localId,
|
||||
);
|
||||
}
|
||||
|
||||
/** 创建一条空的履行计划 */
|
||||
function createPerformancePlan() {
|
||||
return {
|
||||
@@ -1628,51 +1609,16 @@ const authAttachmentUploadList = ref([]);
|
||||
const bodyConfigModalRef = ref(null);
|
||||
const currentSelfParty = ref(null);
|
||||
|
||||
const companyProfileMap = {
|
||||
扬州宏富特种材料有限公司: {
|
||||
contactPhone: "13800000001",
|
||||
registeredAddress: "江苏省扬州市邗江区江阳中路88号",
|
||||
bankAccount: "622202100000000001",
|
||||
bankName: "中国工商银行扬州分行",
|
||||
contactName: "王经理",
|
||||
legalRepresentative: "张三",
|
||||
creditCode: "91321000MA1X111111",
|
||||
},
|
||||
宁波港船务货运代理有限公司: {
|
||||
contactPhone: "15757460062",
|
||||
registeredAddress: "宁波市北仑区明州西路188号",
|
||||
bankAccount: "39011600192100006088",
|
||||
bankName: "中国工商银行股份有限公司宁波市支行",
|
||||
contactName: "周经理",
|
||||
legalRepresentative: "李四",
|
||||
creditCode: "91330201MA2ABCDE9X",
|
||||
},
|
||||
宁波浙港供应链科技有限公司: {
|
||||
contactPhone: "13900000088",
|
||||
registeredAddress: "宁波市江北区长兴路689号",
|
||||
bankAccount: "621700000000000088",
|
||||
bankName: "中国银行宁波分行",
|
||||
contactName: "陈经理",
|
||||
legalRepresentative: "陈总",
|
||||
creditCode: "91330200MA2SUPPLY01",
|
||||
},
|
||||
上海远洋能源有限公司: {
|
||||
contactPhone: "13600000015",
|
||||
registeredAddress: "上海市浦东新区临港大道188号",
|
||||
bankAccount: "621483000000000015",
|
||||
bankName: "招商银行上海分行",
|
||||
contactName: "吴经理",
|
||||
legalRepresentative: "孙先生",
|
||||
creditCode: "91310115MAOCEAN001",
|
||||
},
|
||||
};
|
||||
|
||||
const isViewMode = computed(() => modalMode.value === "view");
|
||||
|
||||
const isSingleAgreementChecked = computed(
|
||||
() => String(detailState.value.isSingleAgreement || "0") === "1",
|
||||
);
|
||||
|
||||
const isOurPartyLocked = computed(
|
||||
() => isSingleAgreementChecked.value,
|
||||
);
|
||||
|
||||
const ourParties = computed(
|
||||
() => detailState.value.partyState.ourPartyList || [],
|
||||
);
|
||||
@@ -1928,29 +1874,12 @@ function handleCompanySelect(party, companyName, option = {}) {
|
||||
return;
|
||||
}
|
||||
|
||||
const profile = companyProfileMap[companyName];
|
||||
if (!profile) {
|
||||
party.companyName = companyName;
|
||||
return;
|
||||
}
|
||||
|
||||
Object.assign(party, {
|
||||
companyName,
|
||||
subjectCode: party.subjectCode || "",
|
||||
contactPhone: party.contactPhone || profile.contactPhone,
|
||||
registeredAddress: party.registeredAddress || profile.registeredAddress,
|
||||
bankAccount: party.bankAccount || profile.bankAccount,
|
||||
bankName: party.bankName || profile.bankName,
|
||||
contactName: party.contactName || profile.contactName,
|
||||
legalRepresentative:
|
||||
party.legalRepresentative || profile.legalRepresentative,
|
||||
creditCode: party.creditCode || profile.creditCode,
|
||||
oppCharacter: party.oppCharacter || "1",
|
||||
});
|
||||
party.companyName = companyName;
|
||||
refreshPartyDisplayMeta();
|
||||
}
|
||||
|
||||
function handleAddOurParty() {
|
||||
if (isSingleAgreementChecked.value) return;
|
||||
if (isOurPartyLocked.value) return;
|
||||
detailState.value.partyState.ourPartyList =
|
||||
detailState.value.partyState.ourPartyList || [];
|
||||
detailState.value.partyState.ourPartyList.push(
|
||||
@@ -1984,7 +1913,7 @@ function handleAddCounterparty() {
|
||||
}
|
||||
|
||||
function handleRemoveOurParty(localId) {
|
||||
if (isSingleAgreementChecked.value) return;
|
||||
if (isOurPartyLocked.value) return;
|
||||
detailState.value.partyState.ourPartyList = (
|
||||
detailState.value.partyState.ourPartyList || []
|
||||
).filter((item) => item.localId !== localId);
|
||||
@@ -2581,9 +2510,7 @@ function loadPartnerOptions() {
|
||||
value: item.customerNameC,
|
||||
raw: item,
|
||||
}));
|
||||
contractCompanyOptions.value = options.length
|
||||
? options
|
||||
: contractCompanyOptions.value;
|
||||
contractCompanyOptions.value = options;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user