Files
TakeoutSaaS.TenantUI/apps/web-antd/src/views/finance/invoice/composables/invoice-page/constants.ts

109 lines
2.6 KiB
TypeScript

import type {
FinanceInvoiceSettingFormState,
FinanceInvoiceTabKey,
OptionItem,
} from '../../types';
/**
* 文件职责:发票管理页面常量定义。
*/
import type { FinanceInvoiceStatsDto } from '#/api/finance';
import { getMonthFirstDateString, getTodayDateString } from './helpers';
/** 发票管理页面查看权限。 */
export const FINANCE_INVOICE_VIEW_PERMISSION = 'tenant:finance:invoice:view';
/** 发票开票权限。 */
export const FINANCE_INVOICE_ISSUE_PERMISSION = 'tenant:finance:invoice:issue';
/** 发票作废权限。 */
export const FINANCE_INVOICE_VOID_PERMISSION = 'tenant:finance:invoice:void';
/** 发票设置权限。 */
export const FINANCE_INVOICE_SETTINGS_PERMISSION =
'tenant:finance:invoice:settings';
/** 分段选项。 */
export const INVOICE_TAB_OPTIONS: Array<{
label: string;
value: FinanceInvoiceTabKey;
}> = [
{ label: '开票记录', value: 'records' },
{ label: '发票设置', value: 'settings' },
];
/** 发票状态筛选项。 */
export const INVOICE_STATUS_OPTIONS: OptionItem[] = [
{ label: '全部状态', value: 'all' },
{ label: '待开票', value: 'pending' },
{ label: '已开票', value: 'issued' },
{ label: '已作废', value: 'voided' },
];
/** 发票类型筛选项。 */
export const INVOICE_TYPE_OPTIONS: OptionItem[] = [
{ label: '全部类型', value: 'all' },
{ label: '普通发票', value: 'normal' },
{ label: '专用发票', value: 'special' },
];
/** 默认统计数据。 */
export const DEFAULT_INVOICE_STATS: FinanceInvoiceStatsDto = {
currentMonthIssuedAmount: 0,
currentMonthIssuedCount: 0,
pendingCount: 0,
voidedCount: 0,
};
/** 创建默认筛选条件。 */
export function createDefaultFilters() {
return {
startDate: getMonthFirstDateString(),
endDate: getTodayDateString(),
status: 'all',
invoiceType: 'all',
keyword: '',
};
}
/** 创建默认分页。 */
export function createDefaultPagination() {
return {
page: 1,
pageSize: 10,
totalCount: 0,
};
}
/** 创建默认设置表单。 */
export function createDefaultSettingsForm(): FinanceInvoiceSettingFormState {
return {
companyName: '',
taxpayerNumber: '',
registeredAddress: '',
registeredPhone: '',
bankName: '',
bankAccount: '',
enableElectronicNormalInvoice: true,
enableElectronicSpecialInvoice: false,
enableAutoIssue: false,
autoIssueMaxAmount: 10_000,
};
}
/** 创建默认开票表单。 */
export function createDefaultIssueForm() {
return {
contactEmail: '',
issueRemark: '',
};
}
/** 创建默认作废表单。 */
export function createDefaultVoidForm() {
return {
voidReason: '',
};
}