feat: 发票登记移至工具栏并回显已认领收票单
This commit is contained in:
@@ -44,6 +44,9 @@ export const invoiceDetailQuery = invoiceNo =>
|
||||
// 先票后款:结算单认领收票单候选(审批通过且未被有效应付结算单认领)
|
||||
export const claimCandidates = keyword =>
|
||||
request({ url: `${baseUrl}/claim-candidates`, method: 'get', params: { keyword } });
|
||||
// 先票后款:结算单已认领收票登记列表(发票登记对话框回显已认领票)
|
||||
export const claimedReceipts = formalSettlementId =>
|
||||
request({ url: `${baseUrl}/claimed-list`, method: 'get', params: { formalSettlementId } });
|
||||
|
||||
export const approvalStatusOptions = [
|
||||
{ label: '草稿', value: 'draft' },
|
||||
|
||||
@@ -23,6 +23,15 @@
|
||||
@click="$emit('payment')"
|
||||
>付款申请</el-button
|
||||
>
|
||||
<!-- 先票后款:付款结算单审批通过后可发票登记(关联收票单并推送指定应付),选中一条付款结算单操作 -->
|
||||
<el-button
|
||||
v-if="showPaymentAction && hasPermission('invoice_register')"
|
||||
type="primary"
|
||||
plain
|
||||
:disabled="!selection.length"
|
||||
@click="emitSingle('invoiceRegister')"
|
||||
>发票登记</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="hasPermission('sync')"
|
||||
type="primary"
|
||||
@@ -189,13 +198,6 @@ export default {
|
||||
row.kingdeeSyncStatus !== 'synced'
|
||||
)
|
||||
actions.push({ type: 'void', label: '作废', danger: true });
|
||||
// 先票后款:付款结算单审批通过后可发票登记(关联收票单并推送指定应付)
|
||||
if (
|
||||
this.showPaymentAction &&
|
||||
this.hasPermission('invoice_register') &&
|
||||
row.approvalStatus === 'approved'
|
||||
)
|
||||
actions.push({ type: 'invoiceRegister', label: '发票登记' });
|
||||
return actions;
|
||||
},
|
||||
statusType(status) {
|
||||
|
||||
@@ -144,8 +144,11 @@
|
||||
<template #default="{ row }">{{ formatMoney(row.invoiceAmount) }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="90" fixed="right" align="center">
|
||||
<template #default="{ $index }">
|
||||
<template #default="{ row, $index }">
|
||||
<!-- 已认领票回显:认领保存为增量逻辑不支持移除,仅新增票可移除 -->
|
||||
<el-tag v-if="row.claimed" size="small">已认领</el-tag>
|
||||
<el-link
|
||||
v-else
|
||||
type="danger"
|
||||
:disabled="invoiceRegisterDialog.saving"
|
||||
@click="invoiceRegisterDialog.candidates.splice($index, 1)"
|
||||
@@ -186,6 +189,7 @@ import { isAdministrator } from '@/utils/auth';
|
||||
import { downloadFile } from '@/utils/util';
|
||||
import * as api from '@/api/settlement/formalSettlement';
|
||||
import * as paymentApi from '@/api/payment/paymentApplication';
|
||||
import * as invoiceReceiptApi from '@/api/payment/invoiceReceipt';
|
||||
import { formalSettlementOption, kingdeeSyncName } from '@/option/settlement/formalSettlement';
|
||||
import organizationSearch from '@/mixins/organization-search';
|
||||
import FormalSettlementEditor from './components/formal-settlement-editor.vue';
|
||||
@@ -682,10 +686,21 @@ export default {
|
||||
}
|
||||
},
|
||||
// 先票后款路径B:发票登记——认领收票单(claim-invoices 走增量认领并同步收票侧关系)
|
||||
openInvoiceRegisterDialog(row) {
|
||||
// 打开时回显本单已认领收票单(claimed 标记禁止移除),已认领过票的可直接保存推送补指定应付
|
||||
async openInvoiceRegisterDialog(row) {
|
||||
if ((row?.approvalStatus || '') !== 'approved') {
|
||||
this.$message.warning('仅审批通过的付款结算单允许发票登记');
|
||||
return;
|
||||
}
|
||||
this.invoiceRegisterDialog.row = row || {};
|
||||
this.invoiceRegisterDialog.candidates = [];
|
||||
this.invoiceRegisterDialog.visible = true;
|
||||
try {
|
||||
const claimed = this.unwrapData(await invoiceReceiptApi.claimedReceipts(row.id)) || [];
|
||||
this.invoiceRegisterDialog.candidates = claimed.map(item => ({ ...item, claimed: true }));
|
||||
} catch (error) {
|
||||
this.invoiceRegisterDialog.candidates = [];
|
||||
}
|
||||
},
|
||||
addInvoiceRegisterCandidates(rows) {
|
||||
const existing = new Set(
|
||||
|
||||
Reference in New Issue
Block a user