Files
TakeoutSaaS.TenantUI/apps/web-antd/src/views/member/message-reach/composables/message-reach-page/constants.ts

107 lines
3.2 KiB
TypeScript

import type {
MemberMessageReachChannel,
MemberMessageReachStatus,
MemberMessageTemplateCategory,
} from '#/api/member/message-reach';
import type { MemberMessageReachTabKey } from '#/views/member/message-reach/types';
/** 消息触达查看权限。 */
export const MEMBER_MESSAGE_REACH_VIEW_PERMISSION =
'tenant:member:message-reach:view';
/** 消息触达管理权限。 */
export const MEMBER_MESSAGE_REACH_MANAGE_PERMISSION =
'tenant:member:message-reach:manage';
/** 页面 Tab 选项。 */
export const MESSAGE_REACH_TAB_OPTIONS: Array<{
label: string;
value: MemberMessageReachTabKey;
}> = [
{ label: '消息列表', value: 'list' },
{ label: '消息模板', value: 'template' },
];
/** 状态筛选选项。 */
export const MESSAGE_REACH_STATUS_FILTER_OPTIONS: Array<{
label: string;
value: '' | MemberMessageReachStatus;
}> = [
{ label: '全部状态', value: '' },
{ label: '草稿', value: 'draft' },
{ label: '待发送', value: 'pending' },
{ label: '发送中', value: 'sending' },
{ label: '已发送', value: 'sent' },
{ label: '发送失败', value: 'failed' },
];
/** 渠道筛选选项。 */
export const MESSAGE_REACH_CHANNEL_FILTER_OPTIONS: Array<{
label: string;
value: '' | MemberMessageReachChannel;
}> = [
{ label: '全部渠道', value: '' },
{ label: '站内信', value: 'inapp' },
{ label: '短信', value: 'sms' },
{ label: '微信模板', value: 'wechat-mini' },
];
/** 模板分类筛选选项。 */
export const MESSAGE_TEMPLATE_CATEGORY_FILTER_OPTIONS: Array<{
label: string;
value: '' | MemberMessageTemplateCategory;
}> = [
{ label: '全部分类', value: '' },
{ label: '通知', value: 'notice' },
{ label: '营销', value: 'marketing' },
{ label: '召回', value: 'recall' },
];
/** 模板分类编辑选项。 */
export const MESSAGE_TEMPLATE_CATEGORY_OPTIONS: Array<{
label: string;
value: MemberMessageTemplateCategory;
}> = [
{ label: '通知', value: 'notice' },
{ label: '营销', value: 'marketing' },
{ label: '召回', value: 'recall' },
];
/** 抽屉渠道选项。 */
export const MESSAGE_REACH_CHANNEL_OPTIONS: Array<{
label: string;
value: MemberMessageReachChannel;
}> = [
{ label: '站内信', value: 'inapp' },
{ label: '短信', value: 'sms' },
{ label: '微信模板消息', value: 'wechat-mini' },
];
/** 固定标签选项。 */
export const MESSAGE_AUDIENCE_TAG_OPTIONS = [
{ label: '高频客户', value: '高频客户' },
{ label: '新客', value: '新客' },
{ label: '沉睡客户', value: '沉睡客户' },
{ label: '流失客户', value: '流失客户' },
{ label: '午餐常客', value: '午餐常客' },
{ label: '大额消费', value: '大额消费' },
] as const;
/** 目标人群选项。 */
export const MESSAGE_AUDIENCE_TYPE_OPTIONS = [
{ label: '全部会员', value: 'all' },
{ label: '按标签筛选', value: 'tag' },
] as const;
/** 发送时间选项。 */
export const MESSAGE_SCHEDULE_TYPE_OPTIONS = [
{ label: '立即发送', value: 'immediate' },
{ label: '定时发送', value: 'scheduled' },
] as const;
/** 表格分页尺寸选项。 */
export const MESSAGE_LIST_PAGE_SIZE_OPTIONS = ['10', '20', '50'];
/** 模板分页尺寸选项。 */
export const MESSAGE_TEMPLATE_PAGE_SIZE_OPTIONS = ['12', '24', '48'];