jufubao-mall 2.0.29-beta1 → 2.0.31

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.
@@ -0,0 +1,459 @@
1
+ import {
2
+ dataVal,
3
+ statusDataVal,
4
+ statusShow,
5
+ cRaBorShadow,
6
+ cusDisabled,
7
+ getCustomAttr,
8
+ TestCssInfo
9
+ } from "@/utils/AttrTools";
10
+ export default function (data = {}, gValue = {}, gColor = {}, oldData = {}) {
11
+ //内容边框兼容
12
+ let productDisabled = cusDisabled({
13
+ data,
14
+ key: 'productStyle',
15
+ fields: { 'contBgColorStatus': ['contBgColor'], 'contBorder': ['contBorder', 'bs'] },
16
+ gValue
17
+ });
18
+ let defContBorder = cRaBorShadow(data, 'contBorder', { disabled: productDisabled, old: ['is_border', 'is_border_w', 'is_border_c', 'solid'] }, gValue);
19
+ let defContShadow = cRaBorShadow(data, 'contShadow', { old: ['is_shadow', 'is_shadow_w', 'is_shadow_bg'] }, gValue);
20
+ return [
21
+ {
22
+ ele: 'title',
23
+ label: '商品样式',
24
+ size: 'small',
25
+ groupKey: 'style',
26
+ },
27
+ {
28
+ label: '商品名称',
29
+ ele: 'xd-radio',
30
+ groupKey: 'style',
31
+ valueKey: 'contStyleStatus',
32
+ value: statusDataVal({ data, key: 'contStyleStatus', fields: ['contStyle', 'contSpacing'], gValue }),
33
+ labelInline: true,
34
+ list: [
35
+ { label: '默认', value: 'D' },
36
+ { label: '自定义', value: 'C' },
37
+ ]
38
+ },
39
+ { ele: 'group_start' },
40
+ {
41
+ label: '',
42
+ ele: 'xd-text-and-bgc',
43
+ groupKey: 'style',
44
+ valueKey: 'contStyle',
45
+ value: dataVal({ data, key: 'contStyle', dValue: {}, gValue }),
46
+ hidden: !statusShow({ data, key: 'contStyleStatus', fields: ['contSpacing', 'contStyle'], gValue }),
47
+ setting: {
48
+ fontSize: false,
49
+ weight: true,
50
+ bgColor: false,
51
+ selected: false,
52
+ default: {
53
+ color: '#333',
54
+ fontWeight: 'normal'
55
+ },
56
+ isBorder: false,
57
+ },
58
+ handleCustom({ action, data }) {
59
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_font_size' })
60
+ .then(res => {
61
+ data.cb(res.list)
62
+ })
63
+ .catch(error => {
64
+ console.error(error);
65
+ data.cb([])
66
+ });
67
+ },
68
+ },
69
+ {
70
+ label: "间距",
71
+ groupKey: 'style',
72
+ ele: 'xd-slider',
73
+ valueKey: "contSpacing",
74
+ value: dataVal({ data, key: 'contSpacing', dValue: 16, gValue }),
75
+ hidden: !statusShow({ data, key: 'contStyleStatus', fields: ['contSpacing', 'contStyle'], gValue }),
76
+ className: "input100",
77
+ labelInline: true,
78
+ setting: {
79
+ min: 0,
80
+ max: 100,
81
+ step: 1,
82
+ showStops: false,
83
+ showInput: false,
84
+ }
85
+ },
86
+ { ele: 'group_end' },
87
+ {
88
+ label: '品牌样式',
89
+ ele: 'xd-radio',
90
+ groupKey: 'style',
91
+ valueKey: 'contBrandStatus',
92
+ value: statusDataVal({ data, key: 'contBrandStatus', fields: ['contBrandColor', 'contBrandBgColor'], gValue }),
93
+ labelInline: true,
94
+ list: [
95
+ { label: '默认', value: 'D' },
96
+ { label: '自定义', value: 'C' },
97
+ ]
98
+ },
99
+ { ele: 'group_start' },
100
+ {
101
+ label: '文字颜色',
102
+ ele: 'xd-color',
103
+ labelInline: true,
104
+ valueKey: 'contBrandColor',
105
+ value: dataVal({ data, key: 'contBrandColor', dValue: '#999', gValue }),
106
+ hidden: !statusShow({ data, key: 'contBrandStatus', fields: ['contBrandColor', 'contBrandBgColor'], gValue }),
107
+ placeholder: '请选择文字颜色',
108
+ className: 'input80',
109
+ groupKey: 'style',
110
+ setting: {
111
+ showAlpha: true
112
+ },
113
+ },
114
+ {
115
+ label: '背景颜色',
116
+ ele: 'xd-color',
117
+ labelInline: true,
118
+ valueKey: 'contBrandBgColor',
119
+ value: dataVal({ data, key: 'contBrandBgColor', dValue: '', gValue }),
120
+ hidden: !statusShow({ data, key: 'contBrandStatus', fields: ['contBrandColor', 'contBrandBgColor'], gValue }),
121
+ placeholder: '请选择背景颜色',
122
+ className: 'input80',
123
+ groupKey: 'style',
124
+ setting: {
125
+ showAlpha: true
126
+ },
127
+ },
128
+ { ele: 'group_end' },
129
+ {
130
+ label: '商品背景',
131
+ ele: 'xd-radio',
132
+ groupKey: 'style',
133
+ valueKey: 'contBgColorStatus',
134
+ value: statusDataVal({
135
+ data,
136
+ key: 'contBgColorStatus',
137
+ fields: ['contBgColor'],
138
+ gValue,
139
+ cusField: ['productStyle']
140
+ }),
141
+ disabled: productDisabled,
142
+ isRefresh: productDisabled,
143
+ labelInline: true,
144
+ list: [
145
+ { label: '默认', value: 'D' },
146
+ { label: '自定义', value: 'C' },
147
+ ]
148
+ },
149
+ { ele: 'group_start' },
150
+ {
151
+ label: '背景色',
152
+ ele: 'xd-color',
153
+ valueKey: 'contBgColor',
154
+ labelInline: true,
155
+ value: dataVal({
156
+ data,
157
+ key: 'contBgColor',
158
+ dValue: [getCustomAttr(data['productStyle'], 'backgroundColor'), '#fff'],
159
+ gValue,
160
+ }),
161
+ hidden: !statusShow({ data, key: 'contBgColorStatus', fields: ['contBgColor'], gValue }),
162
+ disabled: productDisabled,
163
+ isRefresh: productDisabled,
164
+ placeholder: '请选择背景颜色',
165
+ className: 'input80',
166
+ groupKey: 'style',
167
+ setting: {
168
+ showAlpha: true
169
+ },
170
+ },
171
+ { ele: 'group_end' },
172
+ {
173
+ label: '商品描边',
174
+ ele: 'xd-border',
175
+ labelInline: true,
176
+ groupKey: 'style',
177
+ valueKey: 'contBorder',
178
+ value: defContBorder,
179
+ disabled: productDisabled,
180
+ isRefresh: productDisabled,
181
+ setting: {
182
+ selected: defContBorder.type,
183
+ isRadio: true,//启用editx默认
184
+ isDef: true, //启动默认选项
185
+ //==设置默认值==
186
+ color: '#e5e5e5',
187
+ width: '0',
188
+ style: 'solid'
189
+ //==设置默认值==
190
+ },
191
+ },
192
+ {
193
+ label: '商品圆角',
194
+ ele: 'xd-radio',
195
+ groupKey: 'style',
196
+ valueKey: 'contRadiusStatus',
197
+ value: statusDataVal({ data, key: 'contRadiusStatus', cValue: 'N', fields: ['contRadius'], gValue }),
198
+ labelInline: true,
199
+ list: [
200
+ { label: '默认', value: 'D' },
201
+ { label: '无圆角', value: 'N' },
202
+ { label: '自定义', value: 'C' },
203
+ ]
204
+ },
205
+ { ele: 'group_start' },
206
+ {
207
+ label: '',
208
+ ele: 'xd-site-select-list',
209
+ labelInline: true,
210
+ valueKey: 'contRadius',
211
+ value: dataVal({ data, key: 'contRadius', dValue: '16', gValue }),
212
+ hidden: !statusShow({ data, key: 'contRadiusStatus', fields: ['contRadius'], gValue }),
213
+ placeholder: '请选择商品是否设置圆角',
214
+ multiple: false,
215
+ className: 'input80',
216
+ groupKey: 'style',
217
+ handleCustom({ action, data }) {
218
+ XdBus.getParentApi('getOptionsSettingList')({
219
+ setting_id: 'edtix_style_radius',
220
+ key: Date.now()
221
+ })
222
+ .then(res => {
223
+ res.list = res.list.filter(item => {
224
+ return item.label !== '无';
225
+ });
226
+ data.cb(res.list)
227
+ })
228
+ .catch(error => {
229
+ console.error(error);
230
+ });
231
+ },
232
+ },
233
+ { ele: 'group_end' },
234
+ {
235
+ label: '商品图圆角',
236
+ ele: 'xd-radio',
237
+ groupKey: 'style',
238
+ valueKey: 'imageRadiusStatus',
239
+ value: statusDataVal({ data, key: 'imageRadiusStatus', fields: ['imageRadius'], gValue }),
240
+ labelInline: true,
241
+ list: [
242
+ { label: '默认', value: 'D' },
243
+ { label: '无圆角', value: 'N' },
244
+ { label: '自定义', value: 'C' },
245
+ ]
246
+ },
247
+ { ele: 'group_start' },
248
+ {
249
+ label: '',
250
+ ele: 'xd-site-select-list',
251
+ valueKey: 'imageRadius',
252
+ labelInline: true,
253
+ groupKey: 'style',
254
+ placeholder: '请选择商品图圆角是否设置圆角',
255
+ multiple: false,
256
+ className: 'input80',
257
+ value: dataVal({ data, key: 'imageRadius', dValue: '8', gValue }),
258
+ hidden: !statusShow({ data, key: 'imageRadiusStatus', fields: ['imageRadius'], gValue }),
259
+ handleCustom({ action, data }) {
260
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
261
+ .then(res => {
262
+ res.list = res.list.filter(item => {
263
+ return item.label !== '无';
264
+ });
265
+ data.cb(res.list)
266
+ })
267
+ .catch(error => {
268
+ console.error(error);
269
+ });
270
+ },
271
+ },
272
+ { ele: 'group_end' },
273
+ {
274
+ label: '商品投影',
275
+ ele: 'xd-shadow',
276
+ labelInline: true,
277
+ groupKey: 'style',
278
+ valueKey: 'contShadow',
279
+ value: defContShadow,
280
+ className: 'input100',
281
+ setting: {
282
+ selected: defContShadow.type,
283
+ isRadio: true,
284
+ isDef: true,
285
+ default: {
286
+ color: 'rgba(0,0,0,.05)',
287
+ width: '10',
288
+ }
289
+ },
290
+ handleCustom({ action, data }) {
291
+ XdBus.getParentApi('getOptionsSettingList')({ setting_id: 'edtix_style_radius' })
292
+ .then(res => {
293
+ res.list = res.list.filter(item => {
294
+ return item.label !== '无';
295
+ });
296
+ data.cb(res.list)
297
+ })
298
+ .catch(error => {
299
+ console.error(error);
300
+ data.cb([])
301
+ });
302
+ },
303
+ },
304
+ {
305
+ label: '商品间距',
306
+ ele: 'xd-radio',
307
+ groupKey: 'style',
308
+ valueKey: 'columnRowStatus',
309
+ value: statusDataVal({ data, key: 'columnRowStatus', fields: ['mainSpacing', 'rowMainSpacing'], gValue }),
310
+ labelInline: true,
311
+ list: [
312
+ { label: '默认', value: 'D' },
313
+ { label: '自定义', value: 'C' },
314
+ ]
315
+ },
316
+ { ele: 'group_start' },
317
+ {
318
+ label: '列间距',
319
+ ele: 'el-input',
320
+ type: 'number',
321
+ labelInline: true,
322
+ groupKey: 'style',
323
+ valueKey: 'mainSpacing',
324
+ value: dataVal({ data, key: 'mainSpacing', dValue: 16, gValue }),
325
+ hidden: !statusShow({ data, key: 'columnRowStatus', fields: ['mainSpacing', 'rowMainSpacing'], gValue }),
326
+ inline: false,
327
+ append: 'px',
328
+ className: 'input60',
329
+ },
330
+ {
331
+ label: '行间距',
332
+ ele: 'el-input',
333
+ type: 'number',
334
+ labelInline: true,
335
+ groupKey: 'style',
336
+ valueKey: 'rowMainSpacing',
337
+ value: dataVal({ data, key: 'rowMainSpacing', dValue: 16, gValue }),
338
+ hidden: !statusShow({ data, key: 'columnRowStatus', fields: ['mainSpacing', 'rowMainSpacing'], gValue }),
339
+ append: 'px',
340
+ inline: false,
341
+ className: 'input60',
342
+ },
343
+ { ele: 'group_end' },
344
+ {
345
+ label: '商品留白',
346
+ ele: 'xd-radio',
347
+ groupKey: 'style',
348
+ valueKey: 'contPaddingStatus',
349
+ value: statusDataVal({ data, key: 'contPaddingStatus', fields: ['contPadding'], gValue }),
350
+ labelInline: true,
351
+ list: [
352
+ { label: '默认', value: 'D' },
353
+ { label: '自定义', value: 'C' },
354
+ ]
355
+ },
356
+ { ele: 'group_start' },
357
+ {
358
+ label: '',
359
+ ele: 'xd-margin-padding',
360
+ groupKey: 'style',
361
+ valueKey: 'contPadding',
362
+ value: dataVal({ data, key: 'contPadding', dValue: 16, gValue, isPM: true }),
363
+ hidden: !statusShow({ data, key: 'contPaddingStatus', fields: ['contPadding'], gValue }),
364
+ setting: {
365
+ type: 'padding',
366
+ },
367
+ },
368
+ { ele: 'group_end' },
369
+ {
370
+ label: '内容区背景',
371
+ ele: 'xd-radio',
372
+ groupKey: 'style',
373
+ valueKey: 'contBgStatus',
374
+ value: statusDataVal({ data, key: 'contBgStatus', fields: ['contBackgroundColor', 'contBackground'], gValue }),
375
+ labelInline: true,
376
+ list: [
377
+ { label: '默认', value: 'D' },
378
+ { label: '自定义', value: 'C' },
379
+ ]
380
+ },
381
+ { ele: 'group_start' },
382
+ {
383
+ label: '背景色',
384
+ ele: 'xd-color',
385
+ groupKey: 'style',
386
+ valueKey: 'contBackgroundColor',
387
+ value: dataVal({ data, key: 'contBackgroundColor', dValue: null, gValue }),
388
+ hidden: !statusShow({ data, key: 'contBgStatus', fields: ['contBackgroundColor', 'contBackground'], gValue }),
389
+ placeholder: '请选择背景颜色',
390
+ labelInline: true,
391
+ classNmae: 'input80',
392
+ },
393
+ {
394
+ label: '背景图',
395
+ ele: 'xd-upload',
396
+ labelInline: true,
397
+ valueKey: 'contBackground',
398
+ value: dataVal({
399
+ data,
400
+ key: 'contBackground',
401
+ dValue: null,
402
+ gValue,
403
+ }),
404
+ defaultValue: dataVal({
405
+ data,
406
+ key: 'contBackground',
407
+ dValue: null,
408
+ gValue,
409
+ }),
410
+ slot: true,
411
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.,建议宽度为:<span style="color:red">750</span>像素',
412
+ type: ['jpg', 'png', 'jpeg'],
413
+ styleType: 'one',
414
+ uploadType: 'aliyun',
415
+ hidden: !statusShow({ data, key: 'contBgStatus', fields: ['contBackgroundColor', 'contBackground'], gValue }),
416
+ oneWidth: 120,
417
+ oneHeight: 120,
418
+ size: 5,
419
+ action: 'aliyun',
420
+ groupKey: 'style',
421
+ },
422
+ { ele: 'group_end' },
423
+ {
424
+ label: '内容区边距',
425
+ ele: 'xd-radio',
426
+ groupKey: 'style',
427
+ valueKey: 'contMarginStatus',
428
+ value: statusDataVal({ data, key: 'contMarginStatus', fields: ['contMargin'], gValue }),
429
+ labelInline: true,
430
+ list: [
431
+ { label: '默认', value: 'D' },
432
+ { label: '自定义', value: 'C' },
433
+ ]
434
+ },
435
+ { ele: 'group_start' },
436
+ {
437
+ label: '',
438
+ ele: 'xd-margin-padding',
439
+ groupKey: 'style',
440
+ valueKey: 'contMargin',
441
+ value: dataVal({
442
+ data,
443
+ key: 'contMargin',
444
+ dValue: null,
445
+ gValue,
446
+ isPM: true,
447
+ isCPM: false,
448
+ }
449
+ ),
450
+ setting: {
451
+ type: 'margin',
452
+ },
453
+ hidden: !statusShow({ data, key: 'contMarginStatus', fields: ['contMargin'], gValue }),
454
+ inline: false,
455
+ notice: '边距设置,单位:<span style="color: red">像素</span>。默认值:<span style="color: red">0</span> 像素',
456
+ },
457
+ { ele: 'group_end' },
458
+ ].filter(i => i)
459
+ }