diff --git a/src/api/settlement/formalSettlement.js b/src/api/settlement/formalSettlement.js index 5b43fbb..49a23f7 100644 --- a/src/api/settlement/formalSettlement.js +++ b/src/api/settlement/formalSettlement.js @@ -49,3 +49,5 @@ export const applyPayments = data => request({ url: `${baseUrl}/apply-payments`, method: 'post', data }); export const claimInvoices = data => request({ url: `${baseUrl}/claim-invoices`, method: 'post', data }); +export const queryInvoicePool = params => + request({ url: `${baseUrl}/invoice-pool`, method: 'get', params }); diff --git a/src/api/vehicle/customer-archive.js b/src/api/vehicle/customer-archive.js index 9d859f2..8cfdb5f 100644 --- a/src/api/vehicle/customer-archive.js +++ b/src/api/vehicle/customer-archive.js @@ -113,6 +113,26 @@ export const getScoreTemplate = quantificationId => { }); }; +export const queryKingdeeCustomer = creditCode => { + return request({ + url: '/blade-transport/bfi/customer/query-by-credit-code', + method: 'get', + params: { + creditCode, + }, + }); +}; + +export const syncKingdee = id => { + return request({ + url: '/blade-transport/customer-archive/sync-kingdee', + method: 'post', + params: { + id, + }, + }); +}; + export const recognizeBusinessLicenseOcr = imageUrl => { return request({ url: '/blade-transport/baidu-ocr/recognize-url', diff --git a/src/axios.js b/src/axios.js index cd29fa6..cbe611e 100644 --- a/src/axios.js +++ b/src/axios.js @@ -223,6 +223,14 @@ axios.interceptors.response.use( }, error => { NProgress.done(); + // 网络级失败(HTTP 状态 >500、网关错误、超时、断网等 validateStatus 放行之外的响应) + // 原为静默 reject,接口报错页面无任何感知;统一补错误提示,取消请求与刷新令牌请求除外 + if (!axios.isCancel(error) && !isRefreshTokenRequest(error?.config)) { + ElMessage({ + message: error?.response?.data?.msg || '请求失败,请稍后重试', + type: 'error', + }); + } return Promise.reject(new Error(error)); } ); diff --git a/src/views/payment/invoice-application-form.vue b/src/views/payment/invoice-application-form.vue index 8c6d212..5a8df00 100644 --- a/src/views/payment/invoice-application-form.vue +++ b/src/views/payment/invoice-application-form.vue @@ -497,6 +497,7 @@ const emptyLine = () => ({ localId: ++localId, goodsCategory: '', goodsName: '', + taxClassificationCode: '', unit: '吨', quantity: 0, unitPriceNoTax: 0, @@ -724,9 +725,11 @@ export default { const item = this.findInvoiceItem(line); if (item) { line.taxRate = Number(item.defaultTaxRate || 0); + line.taxClassificationCode = item.taxClassificationCode || ''; } else if (clearInvalid) { line.goodsName = ''; line.taxRate = 0; + line.taxClassificationCode = ''; } this.recalculateLine(line); }, @@ -734,6 +737,7 @@ export default { const names = this.invoiceItemNames(line.goodsCategory); if (!names.some(item => item.shortName === line.goodsName)) line.goodsName = ''; line.taxRate = 0; + line.taxClassificationCode = this.findInvoiceItem(line)?.taxClassificationCode || ''; if (names.length === 1) { line.goodsName = names[0].shortName; this.handleGoodsNameChange(line); @@ -743,9 +747,11 @@ export default { const item = this.findInvoiceItem(line); if (!item) { line.taxRate = 0; + line.taxClassificationCode = ''; return; } line.taxRate = Number(item.defaultTaxRate || 0); + line.taxClassificationCode = item.taxClassificationCode || ''; this.recalculateLine(line); }, validateSettlements(rule, value, callback) { @@ -1141,6 +1147,7 @@ export default { lines: sheet.lines.map(line => ({ goodsCategory: line.goodsCategory, goodsName: line.goodsName, + taxClassificationCode: line.taxClassificationCode, unit: line.unit, quantity: line.quantity, unitPriceNoTax: line.unitPriceNoTax, diff --git a/src/views/settlement/components/formal-settlement-editor.vue b/src/views/settlement/components/formal-settlement-editor.vue index 496eb46..589f736 100644 --- a/src/views/settlement/components/formal-settlement-editor.vue +++ b/src/views/settlement/components/formal-settlement-editor.vue @@ -419,11 +419,69 @@ append-to-body destroy-on-close > + + + + + + + + + + + + + + + + + + + + 重置 + 查询 + + - - - + + + +