提交 | 用户 | 时间
|
820397
|
1 |
import { ComponentStyle, DiyComponent } from '@/components/DiyEditor/util' |
H |
2 |
|
|
3 |
/** 商品卡片属性 */ |
|
4 |
export interface ProductCardProperty { |
|
5 |
// 布局类型:单列大图 | 单列小图 | 双列 |
|
6 |
layoutType: 'oneColBigImg' | 'oneColSmallImg' | 'twoCol' |
|
7 |
// 商品字段 |
|
8 |
fields: { |
|
9 |
// 商品名称 |
|
10 |
name: ProductCardFieldProperty |
|
11 |
// 商品简介 |
|
12 |
introduction: ProductCardFieldProperty |
|
13 |
// 商品价格 |
|
14 |
price: ProductCardFieldProperty |
|
15 |
// 商品市场价 |
|
16 |
marketPrice: ProductCardFieldProperty |
|
17 |
// 商品销量 |
|
18 |
salesCount: ProductCardFieldProperty |
|
19 |
// 商品库存 |
|
20 |
stock: ProductCardFieldProperty |
|
21 |
} |
|
22 |
// 角标 |
|
23 |
badge: { |
|
24 |
// 是否显示 |
|
25 |
show: boolean |
|
26 |
// 角标图片 |
|
27 |
imgUrl: string |
|
28 |
} |
|
29 |
// 按钮 |
|
30 |
btnBuy: { |
|
31 |
// 类型:文字 | 图片 |
|
32 |
type: 'text' | 'img' |
|
33 |
// 文字 |
|
34 |
text: string |
|
35 |
// 文字按钮:背景渐变起始颜色 |
|
36 |
bgBeginColor: string |
|
37 |
// 文字按钮:背景渐变结束颜色 |
|
38 |
bgEndColor: string |
|
39 |
// 图片按钮:图片地址 |
|
40 |
imgUrl: string |
|
41 |
} |
|
42 |
// 上圆角 |
|
43 |
borderRadiusTop: number |
|
44 |
// 下圆角 |
|
45 |
borderRadiusBottom: number |
|
46 |
// 间距 |
|
47 |
space: number |
|
48 |
// 商品编号列表 |
|
49 |
spuIds: number[] |
|
50 |
// 组件样式 |
|
51 |
style: ComponentStyle |
|
52 |
} |
|
53 |
// 商品字段 |
|
54 |
export interface ProductCardFieldProperty { |
|
55 |
// 是否显示 |
|
56 |
show: boolean |
|
57 |
// 颜色 |
|
58 |
color: string |
|
59 |
} |
|
60 |
|
|
61 |
// 定义组件 |
|
62 |
export const component = { |
|
63 |
id: 'ProductCard', |
|
64 |
name: '商品卡片', |
|
65 |
icon: 'fluent:text-column-two-left-24-filled', |
|
66 |
property: { |
|
67 |
layoutType: 'oneColBigImg', |
|
68 |
fields: { |
|
69 |
name: { show: true, color: '#000' }, |
|
70 |
introduction: { show: true, color: '#999' }, |
|
71 |
price: { show: true, color: '#ff3000' }, |
|
72 |
marketPrice: { show: true, color: '#c4c4c4' }, |
|
73 |
salesCount: { show: true, color: '#c4c4c4' }, |
|
74 |
stock: { show: false, color: '#c4c4c4' } |
|
75 |
}, |
|
76 |
badge: { show: false, imgUrl: '' }, |
|
77 |
btnBuy: { |
|
78 |
type: 'text', |
|
79 |
text: '立即购买', |
|
80 |
// todo: @owen 根据主题色配置 |
|
81 |
bgBeginColor: '#FF6000', |
|
82 |
bgEndColor: '#FE832A', |
|
83 |
imgUrl: '' |
|
84 |
}, |
|
85 |
borderRadiusTop: 8, |
|
86 |
borderRadiusBottom: 8, |
|
87 |
space: 8, |
|
88 |
spuIds: [], |
|
89 |
style: { |
|
90 |
bgType: 'color', |
|
91 |
bgColor: '', |
|
92 |
marginLeft: 8, |
|
93 |
marginRight: 8, |
|
94 |
marginBottom: 8 |
|
95 |
} as ComponentStyle |
|
96 |
} |
|
97 |
} as DiyComponent<ProductCardProperty> |