相对方确认签署
This commit is contained in:
@@ -521,30 +521,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="counterpartyPartyNames.length" class="counterparty-confirm-section">
|
<div v-if="counterpartyConfirmItems.length" class="counterparty-confirm-section">
|
||||||
<div class="counterparty-confirm-title">相对方签署确认</div>
|
<div class="counterparty-confirm-title">相对方签署确认</div>
|
||||||
<div
|
<div
|
||||||
v-for="name in counterpartyPartyNames"
|
v-for="item in counterpartyConfirmItems"
|
||||||
:key="name"
|
:key="item.partyId || item.partnerId || item.companyName"
|
||||||
class="counterparty-confirm-row"
|
class="counterparty-confirm-row"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
v-if="counterpartyConfirmMap[name]?.confirmed"
|
v-if="item.confirmed"
|
||||||
class="confirm-status status-done"
|
class="confirm-status status-done"
|
||||||
>✓</span>
|
>✓</span>
|
||||||
<span v-else class="confirm-status status-pending">○</span>
|
<span v-else class="confirm-status status-pending">○</span>
|
||||||
<span class="confirm-name">{{ name }}</span>
|
<span class="confirm-name">{{ item.companyName }}</span>
|
||||||
<span
|
<span
|
||||||
v-if="counterpartyConfirmMap[name]?.confirmed"
|
v-if="item.confirmed"
|
||||||
class="confirm-method"
|
class="confirm-method"
|
||||||
>{{ counterpartyConfirmMap[name]?.method === 'manual' ? '(代确认)' : '(已确认)' }}</span>
|
>{{ item.method === 'manual' ? '(代确认)' : '(已确认)' }}</span>
|
||||||
<a-button
|
<a-button
|
||||||
v-else
|
v-else
|
||||||
size="small"
|
size="small"
|
||||||
type="primary"
|
type="primary"
|
||||||
ghost
|
ghost
|
||||||
:loading="counterpartyConfirmLoading"
|
:loading="counterpartyConfirmLoading"
|
||||||
@click="handleConfirmCounterparty(name)"
|
@click="handleConfirmCounterparty(item)"
|
||||||
>我已签署完成</a-button>
|
>我已签署完成</a-button>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="unconfirmedPartyNames.length" class="counterparty-confirm-note">
|
<div v-if="unconfirmedPartyNames.length" class="counterparty-confirm-note">
|
||||||
@@ -1290,16 +1290,16 @@ const querySealTypes = ref([0, 20, 10, 30, 40, 50, 60]);
|
|||||||
const fetchingSeals = ref(false);
|
const fetchingSeals = ref(false);
|
||||||
const sealList = ref([]);
|
const sealList = ref([]);
|
||||||
const sealDefaultScale = ref(1.0);
|
const sealDefaultScale = ref(1.0);
|
||||||
|
const counterpartyConfirmItems = computed(
|
||||||
/** 解析相对方名单(分号分隔) */
|
() => counterpartyConfirmMap.value?.items || [],
|
||||||
const counterpartyPartyNames = computed(() => {
|
);
|
||||||
const text = businessRecord.value?.counterpartySummary || '';
|
|
||||||
return text.split(/[;;]/).map(s => s.trim()).filter(Boolean);
|
|
||||||
});
|
|
||||||
|
|
||||||
/** 未确认的相对方名单 */
|
/** 未确认的相对方名单 */
|
||||||
const unconfirmedPartyNames = computed(() => {
|
const unconfirmedPartyNames = computed(() => {
|
||||||
return counterpartyPartyNames.value.filter(name => !counterpartyConfirmMap.value[name]?.confirmed);
|
return counterpartyConfirmItems.value
|
||||||
|
.filter((item) => !item.confirmed)
|
||||||
|
.map((item) => item.companyName)
|
||||||
|
.filter(Boolean);
|
||||||
});
|
});
|
||||||
|
|
||||||
async function loadCounterpartyConfirm() {
|
async function loadCounterpartyConfirm() {
|
||||||
@@ -1314,13 +1314,19 @@ async function loadCounterpartyConfirm() {
|
|||||||
counterpartyConfirmLoading.value = false;
|
counterpartyConfirmLoading.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleConfirmCounterparty(companyName) {
|
async function handleConfirmCounterparty(item = {}) {
|
||||||
if (!businessRecord.value?.id) return;
|
if (!businessRecord.value?.id) return;
|
||||||
|
if (!item.partyId) {
|
||||||
|
message.error("缺少相对方标识,无法确认");
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
const res = await confirmCounterparty(businessRecord.value.id, { companyName });
|
const res = await confirmCounterparty(businessRecord.value.id, {
|
||||||
|
partyId: String(item.partyId),
|
||||||
|
});
|
||||||
if (isSuccessResponse(res) && res.result) {
|
if (isSuccessResponse(res) && res.result) {
|
||||||
counterpartyConfirmMap.value = res.result || {};
|
counterpartyConfirmMap.value = res.result || {};
|
||||||
message.success(`已确认:${companyName}`);
|
message.success(`已确认:${item.companyName || "相对方"}`);
|
||||||
} else {
|
} else {
|
||||||
message.error(getResponseMessage(res, '确认失败'));
|
message.error(getResponseMessage(res, '确认失败'));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user