import type { DescItem, DropMenu } from '@eciol/ant-ui'; import { BasicColumn } from '@eciol/ant-ui'; import { useI18n } from '@eciol/locale'; import { formatUtcDateTime, openWindow, useGlobSetting } from '@eciol/shared'; import { getDownloadFile } from '@/api'; import { useDetail } from '../jas/list/useDetail'; const { t } = useI18n(); export enum PaymentOrderStatus { RECEIVABLE = 1, // 待收款 RECEIVED = 10, // 已收款 } const { uploadUrl } = useGlobSetting(); export const getReceiptsInfoSchema: () => DescItem[] = () => [ { field: 'billNo', label: t('partnerPortal.paymentOrders.paynum'), }, { field: 'billStatus', label: t('partnerPortal.paymentOrders.status'), render(val) { const { billStatusMap } = useDetail(); return billStatusMap.get(val); }, }, { field: 'realApplyAmount', label: t('partnerPortal.paymentOrders.payamount'), render(text, data) { return text || text == 0 ? `${text} (${data.currencyName})` : ''; }, }, { field: 'invoiceFileId', label: t('partnerPortal.paymentOrders.invfile'), render(val) { if (!val) { return ''; } return h( 'a', { onClick() { openWindow(uploadUrl + '/http/download/' + val); }, }, t('component.upload.download'), ); }, }, { field: 'paymentMethodName', label: t('partnerPortal.paymentOrders.receiptsAccountType'), render(val, data) { if (!val) return ''; return `${val} (${data.currencyName})`; // return t('partnerPortal.paymentOrders.receiptsAccountTypeValue', [val]); }, show(data) { return data.paymentMethod; }, }, { field: 'bankAct', label: t('partnerPortal.paymentOrders.bankAccount'), show(data) { return data.paymentMethod === 1; }, }, { field: 'bankName', label: t('partnerPortal.recelptsInfomation.abank'), show(data) { return data.paymentMethod === 1; }, }, { field: 'bankHolderName', label: t('partnerPortal.recelptsInfomation.aaccountname'), show(data) { return data.paymentMethod === 1; }, }, { field: 'bankAddr', label: t('partnerPortal.recelptsInfomation.bankadd'), span: 2, show(data) { return data.paymentMethod === 1; }, }, { field: 'ibanCode', label: t('partnerPortal.recelptsInfomation.iban'), show(data) { return data.paymentMethod === 1; }, }, { field: 'swiftCode', label: t('partnerPortal.recelptsInfomation.swift'), show(data) { return data.paymentMethod === 1; }, }, { field: 'bankAct', label: t('partnerPortal.paymentOrders.payPalAccount'), show(data) { return data.paymentMethod === 2; }, }, { field: 'remark', label: t('partnerPortal.recelptsInfomation.other'), span: 2, }, ]; export function getBasicColumns(): BasicColumn[] { return [ { title: t('partnerPortal.paymentOrders.jasno'), dataIndex: 'purchaseOrderNo', }, { title: t('partnerPortal.paymentOrders.jasamount'), dataIndex: 'totalAmount', customRender({ record, value }) { return `${value} ${record.currencyName}`; }, }, { title: t('partnerPortal.paymentOrders.ecipm'), dataIndex: 'createByName', }, { title: t('partnerPortal.paymentOrders.confirmdelivery'), width: 150, dataIndex: 'confirmOn', format(text) { return formatUtcDateTime({ date: text }); }, }, { title: t('partnerPortal.paymentOrders.jobname'), dataIndex: 'purchaseOrderName', }, ]; } export const initDropMenuList: DropMenu[] = [ { text: t('partnerPortal.paymentOrders.receivable'), disabled: true, event: 'title1', }, { text: '2023040551', divider: true, event: '2', }, { text: t('partnerPortal.paymentOrders.received'), disabled: true, event: 'title2', }, { text: '2023040584', event: '4', }, { text: '2023040523', event: '5', }, ];