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: '', }; }