109 lines
2.6 KiB
TypeScript
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: '',
|
|
};
|
|
}
|