press-next
Version:
Vue3 组件库,支持 Composition API
78 lines (72 loc) • 2.13 kB
text/typescript
export interface MessageItem {
label: string;
value: string;
}
export interface ButtonItem {
buttonText: string; // 按钮文本
id?: string | number; // 按钮id
bgColor?: string; // 按钮颜色
type?: 'primary' | 'default'; // 按钮类型
icon?: string; // 按钮图标
}
export interface CtrlsContent {
ctrlsBtns: ButtonItem[];
}
export interface QuestionItem {
id: string | number;
text: string;
}
export function getMockData() {
// 快速问题数据
const quickQuestions: QuestionItem[] = [
{ id: 1, text: '赛制区别解释' },
{ id: 2, text: '大型赛事一般选择什么赛制?' },
{ id: 3, text: '参赛人数少于100人一般选择什么赛制?' },
{ id: 4, text: '大型赛事推荐' },
];
// 简化的AI办赛消息数据(用于演示插槽功能)
const items: MessageItem[] = [
{ label: '比赛赛制', value: '小组循环积分赛很多字会截断的放心吧' },
{ label: '比赛类型', value: '团队赛(四人)' },
{ label: '比赛模式', value: '极速对决' },
{ label: '比赛地图', value: '海岛地图' },
{ label: '比赛局数', value: '5局' },
{ label: '报名截止', value: '6月12日21点' },
{ label: '开赛时间', value: '7月12日21点' },
];
// 按钮组数据
const ctrlsBtns: ButtonItem[] = [
{
id: 1,
buttonText: '一键创建',
type: 'primary',
bgColor: 'linear-gradient(280deg, #966FFB -12.57%, #6736F3 105.32%)',
},
{
id: 2,
buttonText: '补充比赛设置',
type: 'default',
bgColor: 'rgba(211, 212, 252, 0.48)',
},
];
// 控制按钮内容配置
const content: CtrlsContent = {
ctrlsBtns,
};
// 组件属性配置
const componentProps = {
icon: '',
content,
bgColor: 'rgba(211, 212, 252, 0.48)',
items,
title: '好的,我重新为您整理线下办赛步骤:',
question: { quickQuestions },
ctrlsMore: '更多比赛',
containerClass: 'ai-match-container',
};
return componentProps;
}
const DEMO_DATA = {
...getMockData(),
};
export default DEMO_DATA;