jufubao-base 1.0.382 → 1.0.383-beta2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/modules/uni-attr.md +778 -0
- package/docs/modules/uni-components.md +124 -0
- package/docs/modules/uni-mixins.md +435 -0
- package/docs/modules/uni-other-component.md +247 -0
- package/docs/modules/uni-template.md +1407 -0
- package/docs/modules/uni-utils.md +1294 -0
- package/package.json +2 -2
- package/src/components/JfbBaseDeliveryDetail/Api.js +34 -0
- package/src/components/JfbBaseDeliveryDetail/Attr.js +32 -0
- package/src/components/JfbBaseDeliveryDetail/CusDeliveryMap.vue +472 -0
- package/src/components/JfbBaseDeliveryDetail/JfbBaseDeliveryDetail.vue +510 -0
- package/src/components/JfbBaseDeliveryDetail/JfbBaseDeliveryDetailLess.less +79 -0
- package/src/components/JfbBaseDeliveryDetail/JfbBaseDeliveryDetailMixin.js +30 -0
- package/src/components/JfbBaseDeliveryDetail/Mock.js +159 -0
- package/src/components/JfbBaseFeedBack/Api.js +42 -0
- package/src/components/JfbBaseFeedBack/Attr.js +125 -0
- package/src/components/JfbBaseFeedBack/JfbBaseFeedBack.vue +568 -0
- package/src/components/JfbBaseFeedBack/JfbBaseFeedBackLess.less +79 -0
- package/src/components/JfbBaseFeedBack/JfbBaseFeedBackMixin.js +30 -0
- package/src/components/JfbBaseFeedBack/Mock.js +13 -0
- package/src/components/JfbBaseFeedBackList/Api.js +30 -0
- package/src/components/JfbBaseFeedBackList/Attr.js +14 -0
- package/src/components/JfbBaseFeedBackList/JfbBaseFeedBackList.vue +586 -0
- package/src/components/JfbBaseFeedBackList/JfbBaseFeedBackListLess.less +79 -0
- package/src/components/JfbBaseFeedBackList/JfbBaseFeedBackListMixin.js +30 -0
- package/src/components/JfbBaseFeedBackList/Mock.js +54 -0
- package/src/components/JfbBaseMultipleExpress/Attr.js +12 -0
- package/src/components/JfbBaseMultipleExpress/JfbBaseMultipleExpress.vue +30 -5
- package/get.package.path.js +0 -22
|
@@ -0,0 +1,778 @@
|
|
|
1
|
+
# 自定义组件属性面板配置文档与规范
|
|
2
|
+
|
|
3
|
+
本文档记录了自定义组件的属性面板配置规范和使用方式,包括常见 UI 组件类型与对应组件类型的映射关系、代码示例以及根据截图识别属性配置的方法,帮助快速识别和使用正确的属性配置。
|
|
4
|
+
|
|
5
|
+
一、图示类型与组件类型映射
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
| 图示类型 | 组件类型 | 用途 | 代码示例 |
|
|
9
|
+
|---------|---------|------|---------|
|
|
10
|
+
| 标题(Title) | `title` | 用于分隔不同的配置区域 | 见二、13 |
|
|
11
|
+
| 开关(Toggle) | `xd-cus-switch` | 用于显示/隐藏选项的开关 | 见二、1 |
|
|
12
|
+
| 单选按钮(Radio) | `xd-radio` | 用于从多个选项中选择一个 | 见二、2 |
|
|
13
|
+
| 下拉选择(Dropdown) | `xd-site-select-list` | 用于从下拉列表中选择选项 | 见二、3 |
|
|
14
|
+
| 文本输入(Text Input) | `el-input` | 用于输入文本内容 | 见二、2 |
|
|
15
|
+
| 数字输入(Number Input) | `el-input` (type: 'number') | 用于输入数字 | 见二、4 |
|
|
16
|
+
| 页面路径选择 | `xd-select-pages-path` | 用于选择页面跳转路径 | 见二、5 |
|
|
17
|
+
| 业务线选择 | `xd-choose-namespace` | 用于选择业务线 | 见二、6 |
|
|
18
|
+
| 图片上传 | `xd-upload` | 用于上传图片 | 见二、7 |
|
|
19
|
+
| 颜色选择 | `xd-color` | 用于选择颜色 | 见二、8 |
|
|
20
|
+
| 边距设置 | `xd-margin-padding` | 用于设置边距和内边距 | 见二、9 |
|
|
21
|
+
| 边框设置 | `xd-border` | 用于设置边框样式 | 见二、10 |
|
|
22
|
+
| 圆角设置 | `xd-radius` | 用于设置圆角效果 | 见二、15 |
|
|
23
|
+
| 投影设置 | `xd-shadow` | 用于设置投影效果 | 见二、11 |
|
|
24
|
+
| 背景设置 | `xd-background` | 用于设置背景样式 | 见二、16 |
|
|
25
|
+
| 字体设置 | `xd-font` | 用于设置字体样式,如字号、颜色、粗细等 | 见二、17 |
|
|
26
|
+
| 布局样式选择 | `xd-style-image` | 用于选择预设的样式 | 见二、12 |
|
|
27
|
+
| 按钮(Button) | `el-button` | 用于执行操作,如预览 | 见二、14 |
|
|
28
|
+
|
|
29
|
+
二、代码示例
|
|
30
|
+
|
|
31
|
+
1. 开关(xd-cus-switch)
|
|
32
|
+
|
|
33
|
+
**用途**:用于显示/隐藏选项的开关,如商品名称、品牌、购物车、价格等。
|
|
34
|
+
|
|
35
|
+
**代码示例**:
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
{
|
|
39
|
+
label: '商品名称',
|
|
40
|
+
ele: 'xd-cus-switch',
|
|
41
|
+
valueKey: 'showProductName',
|
|
42
|
+
value: dataVal({ data, key: 'showProductName', dValue: 'Y', gValue }),
|
|
43
|
+
isRefresh: true,
|
|
44
|
+
className: 'input100',
|
|
45
|
+
groupKey:'content',
|
|
46
|
+
labelInline:true,
|
|
47
|
+
cusStyle:{marginBottom: '10px'},
|
|
48
|
+
setting: {
|
|
49
|
+
tips:['显示','不显示'],
|
|
50
|
+
isBackType: 'string'
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
2. 单选按钮(xd-radio)
|
|
56
|
+
|
|
57
|
+
**用途**:用于从多个选项中选择一个,如组件标题显示/隐藏、商品列数、图片位置、展示效果等。
|
|
58
|
+
|
|
59
|
+
**代码示例**:
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
// 组件标题显示/隐藏
|
|
63
|
+
{
|
|
64
|
+
label: '组件标题',
|
|
65
|
+
ele: 'xd-radio',
|
|
66
|
+
valueKey: 'v1_is_title',
|
|
67
|
+
value: dataVal({ data, key: 'v1_is_title', dValue: 'Y', gValue }),
|
|
68
|
+
groupKey: 'content',
|
|
69
|
+
multiple: false,
|
|
70
|
+
labelInline: true,
|
|
71
|
+
className: 'input80',
|
|
72
|
+
list: [
|
|
73
|
+
{ label: '显示', value: 'Y' },
|
|
74
|
+
{ label: '隐藏', value: 'N' },
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
|
|
78
|
+
// 商品列数
|
|
79
|
+
{
|
|
80
|
+
label: "商品列数",
|
|
81
|
+
ele: "xd-radio",
|
|
82
|
+
groupKey: "content",
|
|
83
|
+
valueKey: "v1_productColumns",
|
|
84
|
+
value: data.v1_productColumns || '2',
|
|
85
|
+
list: [
|
|
86
|
+
{ label: "2列", value: '2' },
|
|
87
|
+
{ label: "3列", value: '3' },
|
|
88
|
+
{ label: "4列", value: '4' },
|
|
89
|
+
],
|
|
90
|
+
labelInline: true,
|
|
91
|
+
},
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
3. 下拉选择(xd-site-select-list)
|
|
95
|
+
|
|
96
|
+
**用途**:用于从下拉列表中选择选项,如商品分类、营销标签、平台标签等。
|
|
97
|
+
|
|
98
|
+
**代码示例**:
|
|
99
|
+
|
|
100
|
+
```javascript
|
|
101
|
+
// 商品分类
|
|
102
|
+
{
|
|
103
|
+
label: '商品分类:',
|
|
104
|
+
ele: 'xd-site-select-list',
|
|
105
|
+
valueKey: 'v1_category_ids',
|
|
106
|
+
value: data['v1_category_ids'] || '',
|
|
107
|
+
placeholder: '请选择商品分类',
|
|
108
|
+
setting:{
|
|
109
|
+
multiple: false,
|
|
110
|
+
},
|
|
111
|
+
refresh:data.v1_xnamespace,
|
|
112
|
+
className: 'input80',
|
|
113
|
+
groupKey:'content',
|
|
114
|
+
labelInline:true,
|
|
115
|
+
handleCustom({action, data}) {
|
|
116
|
+
XdBus.getParentApi('getProductCustomCategories')({xnamespace})
|
|
117
|
+
.then(res => {
|
|
118
|
+
data.cb(res.items)
|
|
119
|
+
})
|
|
120
|
+
.catch(error => {
|
|
121
|
+
console.error(error);
|
|
122
|
+
});
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
4. 数字输入(el-input type: 'number')
|
|
128
|
+
|
|
129
|
+
**用途**:用于输入数字,如商品数量、差值等。
|
|
130
|
+
|
|
131
|
+
**代码示例**:
|
|
132
|
+
|
|
133
|
+
```javascript
|
|
134
|
+
// 商品数量
|
|
135
|
+
{
|
|
136
|
+
labelInline: true,
|
|
137
|
+
label: '',
|
|
138
|
+
ele: 'el-input',
|
|
139
|
+
type: 'number',
|
|
140
|
+
valueKey: 'v1_slideNumber',
|
|
141
|
+
groupKey:'content',
|
|
142
|
+
value: data.v1_slideNumber || '4',
|
|
143
|
+
cusStyle: { paddingLeft: '100px' },
|
|
144
|
+
placeholder: '请输入数量',
|
|
145
|
+
className: 'input60',
|
|
146
|
+
unit:'个',
|
|
147
|
+
},
|
|
148
|
+
|
|
149
|
+
// 差值
|
|
150
|
+
{
|
|
151
|
+
label: '差值',
|
|
152
|
+
ele: 'el-input',
|
|
153
|
+
type: 'number',
|
|
154
|
+
valueKey: 'differ',
|
|
155
|
+
labelInline:true,
|
|
156
|
+
value: data['differ'] || '',
|
|
157
|
+
groupKey:'content',
|
|
158
|
+
placeholder: '价差,默认值:1',
|
|
159
|
+
className: 'input80',
|
|
160
|
+
notice: '取市场价-售价的差值,大于等于设置值时展示',
|
|
161
|
+
inline: false
|
|
162
|
+
},
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
5. 页面路径选择(xd-select-pages-path)
|
|
166
|
+
|
|
167
|
+
**用途**:用于选择页面跳转路径,如更多链接、商品链接等。
|
|
168
|
+
|
|
169
|
+
**代码示例**:
|
|
170
|
+
|
|
171
|
+
```javascript
|
|
172
|
+
// 更多链接地址选择
|
|
173
|
+
{
|
|
174
|
+
label: "",
|
|
175
|
+
ele: 'xd-select-pages-path',
|
|
176
|
+
valueKey: 'v1_morePath',
|
|
177
|
+
placeholder: '请选择跳转地址',
|
|
178
|
+
value: data.v1_morePath || null,
|
|
179
|
+
inline: false,
|
|
180
|
+
className: 'input80',
|
|
181
|
+
cusStyle: { paddingLeft: '100px' },
|
|
182
|
+
groupKey:'content',
|
|
183
|
+
setting: {
|
|
184
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
6. 业务线选择(xd-choose-namespace)
|
|
190
|
+
|
|
191
|
+
**用途**:用于选择业务线。
|
|
192
|
+
|
|
193
|
+
**代码示例**:
|
|
194
|
+
|
|
195
|
+
```javascript
|
|
196
|
+
{
|
|
197
|
+
label: "业务线",
|
|
198
|
+
ele: "xd-choose-namespace",
|
|
199
|
+
valueKey: "v1_xnamespace",
|
|
200
|
+
value: dataVal({data, key:'v1_xnamespace', dValue:"", gValue}),
|
|
201
|
+
groupKey:'content',
|
|
202
|
+
className: 'input80',
|
|
203
|
+
labelInline:true,
|
|
204
|
+
placeholder: '业务线,默认继承上级配置',
|
|
205
|
+
inline: false,
|
|
206
|
+
handleCustom: (cb) => {
|
|
207
|
+
XdBus.getParentApi('getOptionsNamespaces')()
|
|
208
|
+
.then(res => {
|
|
209
|
+
cb(res.list)
|
|
210
|
+
})
|
|
211
|
+
.catch();
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
7. 图片上传(xd-upload)
|
|
217
|
+
|
|
218
|
+
**用途**:用于上传图片,如标题图标、背景图等。
|
|
219
|
+
|
|
220
|
+
**代码示例**:
|
|
221
|
+
|
|
222
|
+
```javascript
|
|
223
|
+
// 标题图标
|
|
224
|
+
{
|
|
225
|
+
label: '图标',
|
|
226
|
+
ele: 'xd-upload',
|
|
227
|
+
valueKey: `${prefix}titleIcon`,
|
|
228
|
+
groupKey: 'style',
|
|
229
|
+
value: dataVal({data, key:`${prefix}titleIcon`, dValue:{}, gValue}),
|
|
230
|
+
defaultValue: dataVal({data, key:`${prefix}titleIcon`, dValue:{}, gValue}),
|
|
231
|
+
hidden: !statusShow({data, key: `${prefix}titleIconStatus`, fields:[`${prefix}titleIcon`], gValue}),
|
|
232
|
+
slot: true,
|
|
233
|
+
oneWidth: 80,
|
|
234
|
+
oneHeight: 80,
|
|
235
|
+
elinputClassName: 'input40',
|
|
236
|
+
labelInline: true,
|
|
237
|
+
tipsformet: '<span style="font-size: 12px;color: #999">上传文件格式:@imageType@,不超过@size@MB</span>',
|
|
238
|
+
type: ['jpg', 'png', 'jpeg', 'gif'],
|
|
239
|
+
styleType: 'one',
|
|
240
|
+
uploadType: 'aliyun',
|
|
241
|
+
size: 5,
|
|
242
|
+
action: 'action',
|
|
243
|
+
sort: true,
|
|
244
|
+
},
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
8. 颜色选择(xd-color)
|
|
248
|
+
|
|
249
|
+
**用途**:用于选择颜色,如背景色、文字颜色等。
|
|
250
|
+
|
|
251
|
+
**代码示例**:
|
|
252
|
+
|
|
253
|
+
```javascript
|
|
254
|
+
// 内容区背景色
|
|
255
|
+
{
|
|
256
|
+
label: '背景色',
|
|
257
|
+
ele: 'xd-color',
|
|
258
|
+
valueKey: `${prefix}contentBgColor`,
|
|
259
|
+
labelInline: true,
|
|
260
|
+
value: dataVal({data, key:`${prefix}contentBgColor`, dValue:'#ffffff', gValue}),
|
|
261
|
+
hidden: !statusShow({data, key: `${prefix}contentBgStatus`, fields:[`${prefix}contentBgColor`], gValue}),
|
|
262
|
+
placeholder: '请选择背景颜色',
|
|
263
|
+
className: 'input80',
|
|
264
|
+
groupKey:'style',
|
|
265
|
+
setting: {
|
|
266
|
+
showAlpha: true
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
9. 边距设置(xd-margin-padding)
|
|
272
|
+
|
|
273
|
+
**用途**:用于设置外边距和内边距,支持默认、自定义等选项。
|
|
274
|
+
|
|
275
|
+
**代码示例**:
|
|
276
|
+
|
|
277
|
+
```javascript
|
|
278
|
+
// 外边距设置
|
|
279
|
+
{
|
|
280
|
+
label: '外边距',
|
|
281
|
+
ele: 'xd-margin-padding',
|
|
282
|
+
groupKey: 'style',
|
|
283
|
+
valueKey: `${prefix}margin`,
|
|
284
|
+
value: dataVal({
|
|
285
|
+
data,
|
|
286
|
+
key: `${prefix}margin`,
|
|
287
|
+
dValue: { top: 0, left: 0, right: 0, bottom: 0 },
|
|
288
|
+
gValue,
|
|
289
|
+
isPM: true,
|
|
290
|
+
isCPM: true,
|
|
291
|
+
}),
|
|
292
|
+
labelInline: true,
|
|
293
|
+
className: 'input100',
|
|
294
|
+
setting: {
|
|
295
|
+
type: 'margin',
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
|
|
299
|
+
// 内边距设置
|
|
300
|
+
{
|
|
301
|
+
label: '内边距',
|
|
302
|
+
ele: 'xd-margin-padding',
|
|
303
|
+
groupKey: 'style',
|
|
304
|
+
valueKey: `${prefix}padding`,
|
|
305
|
+
value: dataVal({
|
|
306
|
+
data,
|
|
307
|
+
key: `${prefix}padding`,
|
|
308
|
+
dValue: { top: 0, left: 0, right: 0, bottom: 0 },
|
|
309
|
+
gValue,
|
|
310
|
+
isPM: true,
|
|
311
|
+
isCPM: true,
|
|
312
|
+
}),
|
|
313
|
+
labelInline: true,
|
|
314
|
+
className: 'input100',
|
|
315
|
+
setting: {
|
|
316
|
+
type: 'padding',
|
|
317
|
+
},
|
|
318
|
+
},
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
10. 边框设置(xd-border)
|
|
322
|
+
|
|
323
|
+
**用途**:用于设置边框样式,支持默认、隐藏、自定义等选项,可调整样式、大小等。
|
|
324
|
+
|
|
325
|
+
**代码示例**:
|
|
326
|
+
|
|
327
|
+
```javascript
|
|
328
|
+
// 描边设置
|
|
329
|
+
{
|
|
330
|
+
label: '描边',
|
|
331
|
+
ele: 'xd-border',
|
|
332
|
+
groupKey: 'style',
|
|
333
|
+
valueKey: `${prefix}border`,
|
|
334
|
+
value: dataVal({
|
|
335
|
+
data,
|
|
336
|
+
key: `${prefix}border`,
|
|
337
|
+
dValue: { type: 'default', style: 'solid', width: '1', color: '#e5e5e5' },
|
|
338
|
+
gValue
|
|
339
|
+
}),
|
|
340
|
+
labelInline: true,
|
|
341
|
+
className: 'input100',
|
|
342
|
+
setting: {
|
|
343
|
+
selected: 'default', // 设置默认选中项
|
|
344
|
+
isRadio: true, // 启用editx默认
|
|
345
|
+
isDef: true, // 启动默认选项
|
|
346
|
+
//==设置默认值==
|
|
347
|
+
color: '#e5e5e5',
|
|
348
|
+
width: '1',
|
|
349
|
+
style: 'solid'
|
|
350
|
+
//==设置默认值==
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
11. 投影设置(xd-shadow)
|
|
356
|
+
|
|
357
|
+
**用途**:用于设置投影效果,支持默认、隐藏、自定义等选项,可调整大小等。
|
|
358
|
+
|
|
359
|
+
**代码示例**:
|
|
360
|
+
|
|
361
|
+
```javascript
|
|
362
|
+
// 投影设置
|
|
363
|
+
{
|
|
364
|
+
label: '投影',
|
|
365
|
+
ele: 'xd-shadow',
|
|
366
|
+
groupKey: 'style',
|
|
367
|
+
labelInline: true,
|
|
368
|
+
valueKey: `${prefix}shadow`,
|
|
369
|
+
value: dataVal({
|
|
370
|
+
data,
|
|
371
|
+
key: `${prefix}shadow`,
|
|
372
|
+
dValue: { type: 'default', size: 'small' },
|
|
373
|
+
gValue
|
|
374
|
+
}),
|
|
375
|
+
className: 'input100',
|
|
376
|
+
setting: {
|
|
377
|
+
selected: 'default',
|
|
378
|
+
isRadio: true,
|
|
379
|
+
isDef: true,
|
|
380
|
+
},
|
|
381
|
+
handleCustom({action, data}) {
|
|
382
|
+
XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_shadow'})
|
|
383
|
+
.then(res => {
|
|
384
|
+
data.cb(res.list)
|
|
385
|
+
})
|
|
386
|
+
.catch(error => {
|
|
387
|
+
console.error(error);
|
|
388
|
+
data.cb()
|
|
389
|
+
});
|
|
390
|
+
},
|
|
391
|
+
},
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
12. 布局样式选择(xd-style-image)
|
|
395
|
+
|
|
396
|
+
**用途**:用于选择预设的样式,如购物车样式。
|
|
397
|
+
|
|
398
|
+
**代码示例**:
|
|
399
|
+
|
|
400
|
+
```javascript
|
|
401
|
+
// 购物车样式
|
|
402
|
+
{
|
|
403
|
+
label: "",
|
|
404
|
+
ele: "xd-style-image",
|
|
405
|
+
groupKey: 'content',
|
|
406
|
+
valueKey: "cartStyle",
|
|
407
|
+
value: dataVal({data, key:'cartStyle', dValue:'icongouwuche-01', gValue}),
|
|
408
|
+
labelInline: true,
|
|
409
|
+
className: 'input100',
|
|
410
|
+
handleCustom(cusRes) {
|
|
411
|
+
XdBus.getParentApi('getCompStylesOptions')({
|
|
412
|
+
layout_ids: 'ngwFA8G8RzLuFHyv5cMCl',
|
|
413
|
+
key: Date.now()
|
|
414
|
+
})
|
|
415
|
+
.then(res => {
|
|
416
|
+
cusRes.data.cb(res)
|
|
417
|
+
})
|
|
418
|
+
.catch(error => {
|
|
419
|
+
console.error(error);
|
|
420
|
+
});
|
|
421
|
+
},
|
|
422
|
+
},
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
13. 标题(title)
|
|
426
|
+
|
|
427
|
+
**用途**:用于分隔不同的配置区域,如内容配置、样式配置等。
|
|
428
|
+
|
|
429
|
+
**代码示例**:
|
|
430
|
+
|
|
431
|
+
```javascript
|
|
432
|
+
// 内容配置标题
|
|
433
|
+
{
|
|
434
|
+
label: "内容配置",
|
|
435
|
+
ele: "title",
|
|
436
|
+
groupKey: "content",
|
|
437
|
+
size: "small",
|
|
438
|
+
},
|
|
439
|
+
|
|
440
|
+
// 样式配置标题
|
|
441
|
+
{
|
|
442
|
+
label: "样式配置",
|
|
443
|
+
ele: "title",
|
|
444
|
+
groupKey: "style",
|
|
445
|
+
size: "small",
|
|
446
|
+
},
|
|
447
|
+
```
|
|
448
|
+
|
|
449
|
+
14. 按钮(el-button)
|
|
450
|
+
|
|
451
|
+
**用途**:用于执行操作,如预览、保存等。
|
|
452
|
+
|
|
453
|
+
**代码示例**:
|
|
454
|
+
|
|
455
|
+
```javascript
|
|
456
|
+
// 预览按钮(通常在页面路径选择组件中使用)
|
|
457
|
+
{
|
|
458
|
+
label: "",
|
|
459
|
+
ele: 'xd-select-pages-path',
|
|
460
|
+
valueKey: 'v1_morePath',
|
|
461
|
+
placeholder: '请选择跳转地址',
|
|
462
|
+
value: data.v1_morePath || null,
|
|
463
|
+
inline: false,
|
|
464
|
+
className: 'input80',
|
|
465
|
+
cusStyle: { paddingLeft: '100px' },
|
|
466
|
+
groupKey:'content',
|
|
467
|
+
setting: {
|
|
468
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
469
|
+
}
|
|
470
|
+
},
|
|
471
|
+
// 自定义按钮
|
|
472
|
+
{
|
|
473
|
+
label: "",
|
|
474
|
+
ele: "el-button",
|
|
475
|
+
groupKey: 'content',
|
|
476
|
+
valueKey: "previewButton",
|
|
477
|
+
value: "预览",
|
|
478
|
+
labelInline: true,
|
|
479
|
+
className: 'input100',
|
|
480
|
+
setting: {
|
|
481
|
+
type: "primary",
|
|
482
|
+
size: "small"
|
|
483
|
+
},
|
|
484
|
+
handleCustom() {
|
|
485
|
+
// 预览逻辑
|
|
486
|
+
console.log('预览操作');
|
|
487
|
+
},
|
|
488
|
+
},
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
15. 圆角设置(xd-radius)
|
|
492
|
+
|
|
493
|
+
**用途**:用于设置圆角效果,支持默认、无圆角、自定义等选项,可调整宽度等。
|
|
494
|
+
|
|
495
|
+
**代码示例**:
|
|
496
|
+
|
|
497
|
+
```javascript
|
|
498
|
+
// 圆角设置
|
|
499
|
+
{
|
|
500
|
+
label: '圆角',
|
|
501
|
+
ele: 'xd-radius',
|
|
502
|
+
groupKey: 'style',
|
|
503
|
+
valueKey: `${prefix}radius`,
|
|
504
|
+
value: dataVal({
|
|
505
|
+
data,
|
|
506
|
+
key: `${prefix}radius`,
|
|
507
|
+
dValue: { type: 'default', width: '0' },
|
|
508
|
+
gValue
|
|
509
|
+
}),
|
|
510
|
+
labelInline: true,
|
|
511
|
+
className: 'input100',
|
|
512
|
+
setting: {
|
|
513
|
+
selected: 'default',
|
|
514
|
+
isRadio: true,
|
|
515
|
+
isDef: true,
|
|
516
|
+
},
|
|
517
|
+
handleCustom({action, data}) {
|
|
518
|
+
XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_radius'})
|
|
519
|
+
.then(res => {
|
|
520
|
+
data.cb(res.list)
|
|
521
|
+
})
|
|
522
|
+
.catch(error => {
|
|
523
|
+
console.error(error);
|
|
524
|
+
data.cb()
|
|
525
|
+
});
|
|
526
|
+
},
|
|
527
|
+
},
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
16. 背景设置(xd-background)
|
|
531
|
+
|
|
532
|
+
**用途**:用于设置背景样式,支持默认、隐藏、自定义等选项,可调整背景色、背景图等。
|
|
533
|
+
|
|
534
|
+
**代码示例**:
|
|
535
|
+
|
|
536
|
+
```javascript
|
|
537
|
+
// 背景设置
|
|
538
|
+
{
|
|
539
|
+
label: '背景',
|
|
540
|
+
ele: 'xd-background',
|
|
541
|
+
groupKey: 'style',
|
|
542
|
+
valueKey: `${prefix}background`,
|
|
543
|
+
value: dataVal({
|
|
544
|
+
data,
|
|
545
|
+
key: `${prefix}background`,
|
|
546
|
+
dValue: { type: 'default', color: '#ffffff', image: '' },
|
|
547
|
+
gValue
|
|
548
|
+
}),
|
|
549
|
+
labelInline: true,
|
|
550
|
+
className: 'input100',
|
|
551
|
+
setting: {
|
|
552
|
+
selected: 'default',
|
|
553
|
+
isRadio: true,
|
|
554
|
+
isDef: true,
|
|
555
|
+
},
|
|
556
|
+
handleCustom({action, data}) {
|
|
557
|
+
XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_background'})
|
|
558
|
+
.then(res => {
|
|
559
|
+
data.cb(res.list)
|
|
560
|
+
})
|
|
561
|
+
.catch(error => {
|
|
562
|
+
console.error(error);
|
|
563
|
+
data.cb()
|
|
564
|
+
});
|
|
565
|
+
},
|
|
566
|
+
}
|
|
567
|
+
```
|
|
568
|
+
|
|
569
|
+
17. 字体设置(xd-font)
|
|
570
|
+
|
|
571
|
+
**用途**:用于设置字体样式,如字号、颜色、粗细等,支持默认、自定义等选项。
|
|
572
|
+
|
|
573
|
+
**代码示例**:
|
|
574
|
+
|
|
575
|
+
```javascript
|
|
576
|
+
// 标题文字设置
|
|
577
|
+
{
|
|
578
|
+
label: '标题文字',
|
|
579
|
+
ele: 'xd-font',
|
|
580
|
+
groupKey: 'style',
|
|
581
|
+
valueKey: `${prefix}titleFont`,
|
|
582
|
+
value: dataVal({
|
|
583
|
+
data,
|
|
584
|
+
key: `${prefix}titleFont`,
|
|
585
|
+
dValue: { type: 'default', size: 'default', color: '#000000', weight: 'normal' },
|
|
586
|
+
gValue
|
|
587
|
+
}),
|
|
588
|
+
labelInline: true,
|
|
589
|
+
className: 'input100',
|
|
590
|
+
setting: {
|
|
591
|
+
selected: 'default',
|
|
592
|
+
isRadio: true,
|
|
593
|
+
isDef: true,
|
|
594
|
+
},
|
|
595
|
+
handleCustom({action, data}) {
|
|
596
|
+
XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_font'})
|
|
597
|
+
.then(res => {
|
|
598
|
+
data.cb(res.list)
|
|
599
|
+
})
|
|
600
|
+
.catch(error => {
|
|
601
|
+
console.error(error);
|
|
602
|
+
data.cb()
|
|
603
|
+
});
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
|
|
607
|
+
// 副标题文字设置
|
|
608
|
+
{
|
|
609
|
+
label: '副标题文字',
|
|
610
|
+
ele: 'xd-font',
|
|
611
|
+
groupKey: 'style',
|
|
612
|
+
valueKey: `${prefix}subTitleFont`,
|
|
613
|
+
value: dataVal({
|
|
614
|
+
data,
|
|
615
|
+
key: `${prefix}subTitleFont`,
|
|
616
|
+
dValue: { type: 'default', size: 'default', color: '#666666', weight: 'normal' },
|
|
617
|
+
gValue
|
|
618
|
+
}),
|
|
619
|
+
labelInline: true,
|
|
620
|
+
className: 'input100',
|
|
621
|
+
setting: {
|
|
622
|
+
selected: 'default',
|
|
623
|
+
isRadio: true,
|
|
624
|
+
isDef: true,
|
|
625
|
+
},
|
|
626
|
+
handleCustom({action, data}) {
|
|
627
|
+
XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_font'})
|
|
628
|
+
.then(res => {
|
|
629
|
+
data.cb(res.list)
|
|
630
|
+
})
|
|
631
|
+
.catch(error => {
|
|
632
|
+
console.error(error);
|
|
633
|
+
data.cb()
|
|
634
|
+
});
|
|
635
|
+
},
|
|
636
|
+
},
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
三、根据截图识别属性配置
|
|
640
|
+
|
|
641
|
+
1. 识别步骤
|
|
642
|
+
|
|
643
|
+
1.1 观察图示类型:识别截图中的UI元素类型,如开关、单选按钮、下拉选择等。
|
|
644
|
+
1.2 对应组件类型:根据图示类型找到对应的组件类型。
|
|
645
|
+
1.3 查找代码示例:在代码示例中找到对应的属性配置代码。
|
|
646
|
+
1.4 调整属性参数:根据具体需求调整属性参数,如valueKey、label、placeholder等。
|
|
647
|
+
|
|
648
|
+
2. 示例:识别商品名称开关
|
|
649
|
+
|
|
650
|
+
2.1 观察图示类型:截图中显示"商品名称"旁边有一个开关。
|
|
651
|
+
2.2 对应组件类型:开关对应 `xd-cus-switch` 组件。
|
|
652
|
+
2.3 查找代码示例:找到 `2.1 开关(xd-cus-switch)` 中的代码示例。
|
|
653
|
+
1.4 调整属性参数:确保valueKey设置为`showProductName`,label设置为"商品名称"。
|
|
654
|
+
|
|
655
|
+
3. 示例:识别内容配置区域
|
|
656
|
+
|
|
657
|
+
3.1 观察图示类型:截图中显示"内容配置"标题,下方有多个配置项。
|
|
658
|
+
3.2 对应组件类型:标题对应 `title` 组件,单选按钮对应 `xd-radio` 组件,文本输入对应 `el-input` 组件,页面路径选择对应 `xd-select-pages-path` 组件,业务线选择对应 `xd-choose-namespace` 组件,下拉选择对应 `xd-site-select-list` 组件。
|
|
659
|
+
3.3 查找代码示例:
|
|
660
|
+
- 标题:找到 `2.13 标题(title)` 中的代码示例
|
|
661
|
+
- 单选按钮:找到 `2.2 单选按钮(xd-radio)` 中的代码示例
|
|
662
|
+
- 文本输入:找到 `2.2 单选按钮(xd-radio)` 中的代码示例
|
|
663
|
+
- 页面路径选择:找到 `2.5 页面路径选择(xd-select-pages-path)` 中的代码示例
|
|
664
|
+
- 业务线选择:找到 `2.6 业务线选择(xd-choose-namespace)` 中的代码示例
|
|
665
|
+
- 下拉选择:找到 `2.3 下拉选择(xd-site-select-list)` 中的代码示例
|
|
666
|
+
3.4 调整属性参数:根据具体需求调整valueKey、label等参数。
|
|
667
|
+
|
|
668
|
+
4. 示例:识别样式配置区域
|
|
669
|
+
|
|
670
|
+
4.1 观察图示类型:截图中显示"样式配置"标题,下方有外边距、内边距、描边、圆角、投影、背景等配置项。
|
|
671
|
+
4.2 对应组件类型:根据图示类型找到对应的组件类型。
|
|
672
|
+
- 标题对应 `title` 组件
|
|
673
|
+
- 外边距和内边距对应 `xd-margin-padding` 组件
|
|
674
|
+
- 描边对应 `xd-border` 组件
|
|
675
|
+
- 圆角对应 `xd-radius` 组件
|
|
676
|
+
- 投影对应 `xd-shadow` 组件
|
|
677
|
+
- 背景对应 `xd-background` 组件
|
|
678
|
+
4.3 查找代码示例:
|
|
679
|
+
- 标题:找到 `2.13 标题(title)` 中的代码示例
|
|
680
|
+
- 外边距和内边距:找到 `2.9 边距设置(xd-margin-padding)` 中的代码示例
|
|
681
|
+
- 描边:找到 `2.10 边框设置(xd-border)` 中的代码示例
|
|
682
|
+
- 圆角:找到 `2.15 圆角设置(xd-radius)` 中的代码示例
|
|
683
|
+
- 投影:找到 `2.11 投影设置(xd-shadow)` 中的代码示例
|
|
684
|
+
- 背景:找到 `2.16 背景设置(xd-background)` 中的代码示例
|
|
685
|
+
4.4 调整属性参数:根据具体需求调整valueKey、label等参数。
|
|
686
|
+
|
|
687
|
+
5. 示例:识别标题栏配置区域
|
|
688
|
+
|
|
689
|
+
5.1 观察图示类型:截图中显示"标题栏"标题,下方有标题文字、副标题文字、标题背景、标题边距、标题描边、标题投影、标题圆角等配置项。
|
|
690
|
+
5.2 对应组件类型:根据图示类型找到对应的组件类型。
|
|
691
|
+
- 标题对应 `title` 组件
|
|
692
|
+
- 标题文字和副标题文字对应 `xd-font` 组件
|
|
693
|
+
- 标题背景对应 `xd-background` 组件
|
|
694
|
+
- 标题边距对应 `xd-margin-padding` 组件
|
|
695
|
+
- 标题描边对应 `xd-border` 组件
|
|
696
|
+
- 标题投影对应 `xd-shadow` 组件
|
|
697
|
+
- 标题圆角对应 `xd-radius` 组件
|
|
698
|
+
5.3 查找代码示例:
|
|
699
|
+
- 标题:找到 `2.13 标题(title)` 中的代码示例
|
|
700
|
+
- 标题文字和副标题文字:找到 `2.17 字体设置(xd-font)` 中的代码示例
|
|
701
|
+
- 标题背景:找到 `2.16 背景设置(xd-background)` 中的代码示例
|
|
702
|
+
- 标题边距:找到 `2.9 边距设置(xd-margin-padding)` 中的代码示例
|
|
703
|
+
- 标题描边:找到 `2.10 边框设置(xd-border)` 中的代码示例
|
|
704
|
+
- 标题投影:找到 `2.11 投影设置(xd-shadow)` 中的代码示例
|
|
705
|
+
- 标题圆角:找到 `2.15 圆角设置(xd-radius)` 中的代码示例
|
|
706
|
+
5.4 调整属性参数:根据具体需求调整valueKey、label等参数。
|
|
707
|
+
|
|
708
|
+
6. 示例:识别查看更多配置区域
|
|
709
|
+
|
|
710
|
+
6.1 观察图示类型:截图中显示"查看更多"标题,下方有基础风格选项、更多文字设置、更多描边设置、更多投影设置、更多圆角设置等配置项。
|
|
711
|
+
6.2 对应组件类型:根据图示类型找到对应的组件类型。
|
|
712
|
+
- 标题对应 `title` 组件
|
|
713
|
+
- 基础风格选项对应 `xd-radio` 组件
|
|
714
|
+
- 更多文字设置对应 `xd-font` 组件
|
|
715
|
+
- 更多描边设置对应 `xd-border` 组件
|
|
716
|
+
- 更多投影设置对应 `xd-shadow` 组件
|
|
717
|
+
- 更多圆角设置对应 `xd-radius` 组件
|
|
718
|
+
6.3 查找代码示例:
|
|
719
|
+
- 标题:找到 `2.13 标题(title)` 中的代码示例
|
|
720
|
+
- 基础风格选项:找到 `2.2 单选按钮(xd-radio)` 中的代码示例
|
|
721
|
+
- 更多文字设置:找到 `2.17 字体设置(xd-font)` 中的代码示例
|
|
722
|
+
- 更多描边设置:找到 `2.10 边框设置(xd-border)` 中的代码示例
|
|
723
|
+
- 更多投影设置:找到 `2.11 投影设置(xd-shadow)` 中的代码示例
|
|
724
|
+
- 更多圆角设置:找到 `2.15 圆角设置(xd-radius)` 中的代码示例
|
|
725
|
+
6.4 调整属性参数:根据具体需求调整valueKey、label等参数。
|
|
726
|
+
|
|
727
|
+
7. 示例:识别商品样式配置区域
|
|
728
|
+
|
|
729
|
+
7.1 观察图示类型:截图中显示"商品样式"标题,下方有商品名称、品牌样式、商品背景、商品描边、商品圆角、图片圆角、商品投影等配置项。
|
|
730
|
+
7.2 对应组件类型:根据图示类型找到对应的组件类型。
|
|
731
|
+
- 标题对应 `title` 组件
|
|
732
|
+
- 商品名称、品牌样式、商品背景、商品描边、商品圆角、图片圆角、商品投影的默认/自定义选项对应 `xd-radio` 组件
|
|
733
|
+
- 商品名称的字号、颜色、粗细设置对应 `xd-font` 组件
|
|
734
|
+
- 品牌样式的文字颜色设置对应 `xd-color` 组件
|
|
735
|
+
- 商品背景的背景色设置对应 `xd-color` 组件
|
|
736
|
+
- 商品描边的样式、大小设置对应 `xd-border` 组件
|
|
737
|
+
- 商品圆角和图片圆角的大小设置对应 `xd-radius` 组件
|
|
738
|
+
- 商品投影的大小设置对应 `xd-shadow` 组件
|
|
739
|
+
7.3 查找代码示例:
|
|
740
|
+
- 标题:找到 `2.13 标题(title)` 中的代码示例
|
|
741
|
+
- 单选按钮选项:找到 `2.2 单选按钮(xd-radio)` 中的代码示例
|
|
742
|
+
- 字体设置:找到 `2.17 字体设置(xd-font)` 中的代码示例
|
|
743
|
+
- 颜色选择:找到 `2.8 颜色选择(xd-color)` 中的代码示例
|
|
744
|
+
- 边框设置:找到 `2.10 边框设置(xd-border)` 中的代码示例
|
|
745
|
+
- 圆角设置:找到 `2.15 圆角设置(xd-radius)` 中的代码示例
|
|
746
|
+
- 投影设置:找到 `2.11 投影设置(xd-shadow)` 中的代码示例
|
|
747
|
+
7.4 调整属性参数:根据具体需求调整valueKey、label等参数。
|
|
748
|
+
|
|
749
|
+
四、注意事项
|
|
750
|
+
|
|
751
|
+
1. **属性命名规范**:根据布局类型使用不同的前缀,如布局1使用`v1_`前缀,布局5使用`v5_`前缀。
|
|
752
|
+
2. **条件渲染**:使用 `&&` 运算符实现条件渲染,如 `data['v1_is_title'] === 'Y' && {...}`。
|
|
753
|
+
3. **分组管理**:使用 `group_start` 和 `group_end` 包裹相关属性。
|
|
754
|
+
4. **数据过滤**:使用 `filter(i=>i)` 过滤掉无效的配置项。
|
|
755
|
+
5. **区域判断**:无区域组件直接使用属性配置,多区域组件需要为每个区域生成独立的属性配置。
|
|
756
|
+
|
|
757
|
+
五、总结
|
|
758
|
+
|
|
759
|
+
通过本文档,你可以:
|
|
760
|
+
|
|
761
|
+
1. **快速识别**:根据截图中的图示类型快速识别对应的组件类型。
|
|
762
|
+
2. **直接使用**:参考代码示例直接使用或修改属性配置。
|
|
763
|
+
3. **规范配置**:遵循统一的属性配置规范,确保代码的一致性和可维护性。
|
|
764
|
+
|
|
765
|
+
本文档将帮助你在开发过程中更加高效地实现属性表单配置,减少错误和重复工作。
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
六、更新日志
|
|
770
|
+
|
|
771
|
+
| 日期 | 版本 | 更新内容 |
|
|
772
|
+
|------|------|----------|
|
|
773
|
+
| 2026-03-13 | 1.1.0 | 更新文档标题为"自定义组件属性面板配置文档与规范" |
|
|
774
|
+
| 2026-03-13 | 1.0.1 | 清空文档内容,仅保留基础结构 |
|
|
775
|
+
|
|
776
|
+
---
|
|
777
|
+
|
|
778
|
+
> 文档持续更新中...
|