107 lines
3.2 KiB
TypeScript
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'];
|