feat: 完成会员消息触达模块页面与交互
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
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'];
|
||||
Reference in New Issue
Block a user