houzhongjian
2024-08-08 820397e43a0b64d35c6d31d2a55475061438593b
提交 | 用户 | 时间
820397 1 import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util'
H 2 import { cloneDeep } from 'lodash-es'
3
4 /** 菜单导航属性 */
5 export interface MenuSwiperProperty {
6   // 布局: 图标+文字 | 图标
7   layout: 'iconText' | 'icon'
8   // 行数
9   row: number
10   // 列数
11   column: number
12   // 导航菜单列表
13   list: MenuSwiperItemProperty[]
14   // 组件样式
15   style: ComponentStyle
16 }
17 /** 菜单导航项目属性 */
18 export interface MenuSwiperItemProperty {
19   // 图标链接
20   iconUrl: string
21   // 标题
22   title: string
23   // 标题颜色
24   titleColor: string
25   // 链接
26   url: string
27   // 角标
28   badge: {
29     // 是否显示
30     show: boolean
31     // 角标文字
32     text: string
33     // 角标文字颜色
34     textColor: string
35     // 角标背景颜色
36     bgColor: string
37   }
38 }
39
40 export const EMPTY_MENU_SWIPER_ITEM_PROPERTY = {
41   title: '标题',
42   titleColor: '#333',
43   badge: {
44     show: false,
45     textColor: '#fff',
46     bgColor: '#FF6000'
47   }
48 } as MenuSwiperItemProperty
49
50 // 定义组件
51 export const component = {
52   id: 'MenuSwiper',
53   name: '菜单导航',
54   icon: 'bi:grid-3x2-gap',
55   property: {
56     layout: 'iconText',
57     row: 1,
58     column: 3,
59     list: [cloneDeep(EMPTY_MENU_SWIPER_ITEM_PROPERTY)],
60     style: {
61       bgType: 'color',
62       bgColor: '#fff',
63       marginBottom: 8
64     } as ComponentStyle
65   }
66 } as DiyComponent<MenuSwiperProperty>