jufubao-base 1.0.290-beta3 → 1.0.291-beta4

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.
Files changed (29) hide show
  1. package/package.json +1 -1
  2. package/src/components/CusCouponChose/CusCouponChose.vue +1027 -0
  3. package/src/components/CusCouponItem/CusCouponItem.vue +298 -0
  4. package/src/components/CusEnter/CusEnter.vue +360 -0
  5. package/src/components/CusPoster/CusPoster.vue +212 -0
  6. package/src/components/CusPoster/CusSwiperDot.vue +234 -0
  7. package/src/components/CusProduct/CusProduct.vue +372 -0
  8. package/src/components/CusShops/CusShops.vue +518 -0
  9. package/src/components/CusSwiperDot/CusSwiperDot.vue +234 -0
  10. package/src/components/CusTab/CusTab.vue +411 -0
  11. package/src/components/CusVideo/CusVideo.vue +170 -0
  12. package/src/components/JfbBaseFooter/Attr.js +10 -155
  13. package/src/components/JfbBaseFooter/JfbBaseFooter.vue +107 -46
  14. package/src/components/JfbBaseFooter/XdFooterBar.vue +325 -0
  15. package/src/components/JfbBaseFooter/cusAttr/advanced.js +12 -0
  16. package/src/components/JfbBaseFooter/cusAttr/content.js +471 -0
  17. package/src/components/JfbBaseFooter/cusAttr/style.js +7 -0
  18. package/src/components/JfbBaseFooter/cusAttr/tools.js +17 -0
  19. package/src/components/JfbBaseTfkSearch/Api.js +15 -0
  20. package/src/components/JfbBaseTfkSearch/CustomList.vue +10 -0
  21. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +255 -7
  22. package/src/components/JfbBaseTfkSearch/XdQueryFilter.vue +347 -0
  23. package/src/components/JfbBaseTfkSearch/XdQuerySort.vue +192 -0
  24. package/src/components/JfbBaseTfkSearch/listMixins.js +8 -6
  25. package/src/components/JfbBaseUserInfo/Attr.js +12 -0
  26. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +8 -2
  27. package/src/mixins/componentsMixins.js +363 -55
  28. package/src/mixins/posterMixins.js +27 -199
  29. package/src/mixins/productCompMixins.js +252 -0
@@ -0,0 +1,471 @@
1
+ 'use strict';
2
+
3
+ import tools from "./tools";
4
+ import ICONS from "@/ICONS";
5
+ import {
6
+ dataVal,
7
+ customVal,
8
+ statusDataVal,
9
+ statusShow
10
+ } from "@/utils/AttrTools";
11
+
12
+ export default function (data, gValue, gColor, oldData){
13
+ const {footerSettingImage, footerSetting} = tools(data);
14
+ let footerTpl = dataVal({data, key:'footerTpl', dValue:'normal', gValue});
15
+ let iconStyle = {
16
+ cusColor:{
17
+ iconColor: '#333',
18
+ color: '#333'
19
+ },
20
+ cusActColor:{
21
+ iconColor: gColor.mainColor,
22
+ color:gColor.mainColor
23
+ }
24
+ }
25
+ if(data.color) {
26
+ iconStyle['cusColor'] = {
27
+ iconColor: data.color,
28
+ color: data.color
29
+ }
30
+ }
31
+ if(data.selectedColor) {
32
+ iconStyle['cusActColor'] = {
33
+ iconColor: data.selectedColor,
34
+ color: data.selectedColor
35
+ }
36
+ }
37
+ if(data.iconStyle !== undefined) iconStyle = data.iconStyle;
38
+
39
+ return [
40
+ {
41
+ label: '',
42
+ ele: 'slot',
43
+ slot: 'is_reference_title',
44
+ groupKey: 'content',
45
+ labelInline:true,
46
+ },
47
+ {
48
+ ele: 'title',
49
+ label: '基础',
50
+ size: 'small',
51
+ groupKey:'content',
52
+ },
53
+ {
54
+ label: "组件样式",
55
+ ele: "xd-style-image",
56
+ groupKey: 'content',
57
+ valueKey: "footerTpl",
58
+ value: dataVal({data, key:'footerTpl', dValue:'normal', gValue}),
59
+ labelInline:true,
60
+ className: 'input100',
61
+ handleCustom(cusRes) {
62
+ XdBus.getParentApi('getCompStylesOptions')({
63
+ layout_ids: 'lynkWnvoDmMLIdOR1AhSt',
64
+ key: Date.now()
65
+ })
66
+ .then(res => {
67
+ cusRes.data.cb(res)
68
+ })
69
+ .catch(error => {
70
+ console.error(error);
71
+ });
72
+ },
73
+ },
74
+
75
+ footerTpl === 'itemCenterBig'&&{ele: 'group_start'},
76
+ {
77
+ label: '中间图标',
78
+ ele: 'xd-radio',
79
+ groupKey: 'content',
80
+ valueKey: 'iconCenterStatus',
81
+ value: statusDataVal({data, key:'iconCenterStatus', fields:['centerColor','centerWidth'],gValue}),
82
+ hidden: !(footerTpl === 'itemCenterBig'),
83
+ labelInline:true,
84
+ list: [
85
+ {label: '默认', value: 'D'},
86
+ {label: '自定义', value: 'C'},
87
+ ]
88
+ },
89
+ {
90
+ label: '边框大小',
91
+ ele: 'el-input',
92
+ type: 'number',
93
+ groupKey: 'content',
94
+ valueKey: 'centerWidth',
95
+ cusStyle: {paddingLeft: '80px'},
96
+ labelInline:true,
97
+ value: dataVal({data, key:'centerWidth', dValue:12, gValue}),
98
+ hidden:!(footerTpl === 'itemCenterBig') || !statusShow({data, key: 'iconCenterStatus', fields:['centerColor','centerWidth'], gValue}),
99
+ className: 'input100',
100
+ },
101
+ {
102
+ label: '边框颜色',
103
+ ele: 'xd-color',
104
+ valueKey: 'centerColor',
105
+ groupKey:'content',
106
+ labelInline:true,
107
+ cusStyle: {paddingLeft: '80px'},
108
+ value: dataVal({data, key:'centerColor', dValue:'', gValue}),
109
+ hidden:!(footerTpl === 'itemCenterBig') || !statusShow({data, key: 'iconCenterStatus', fields:['centerColor','centerWidth'], gValue}),
110
+ placeholder: '请选择边框颜色',
111
+ setting: {
112
+ showAlpha: true
113
+ },
114
+ className: 'input100',
115
+ },
116
+ footerTpl === 'itemCenterBig'&& {ele: 'group_end'},
117
+
118
+ {
119
+ label: "菜单名称",
120
+ ele: "xd-radio",
121
+ valueKey: "isShowTitle",
122
+ labelInline:true,
123
+ value: dataVal({data, key:'isShowTitle', dValue:'Y', gValue}),
124
+ groupKey:'content',
125
+ list: [
126
+ {"label": "显示", "value": "Y"},
127
+ {"label": "隐藏", "value": "N"},
128
+ ],
129
+ },
130
+
131
+ {
132
+ label: '图标配色',
133
+ ele: 'xd-radio',
134
+ groupKey: 'content',
135
+ valueKey: 'iconStyleStatus',
136
+ value: statusDataVal({data, key:'iconStyleStatus', fields:['iconStyle','color','selectedColor'],gValue}),
137
+ labelInline:true,
138
+ list: [
139
+ {label: '默认', value: 'D'},
140
+ {label: '自定义', value: 'C'},
141
+ ]
142
+ },
143
+ {ele: 'group_start'},
144
+ {
145
+ label: '',
146
+ ele: 'xd-text-and-bgc',
147
+ groupKey:'content',
148
+ valueKey: 'iconStyle',
149
+ value: iconStyle,
150
+ hidden: !statusShow({data, key: 'iconStyleStatus', fields:['iconStyle','color','selectedColor'], gValue}),
151
+ labelInline:true,
152
+ setting: {
153
+ fontSize: false,
154
+ weight:false,
155
+ bgColor: false,
156
+ selected:true,
157
+ color: false,
158
+ cusColor: [
159
+ {label: '图标色', value: 'iconColor'},
160
+ {label: '文字色', value: 'color'},
161
+ ],
162
+ default:{
163
+ cusColor:{
164
+ iconColor: '#333',
165
+ color: '#333'
166
+ },
167
+ cusActColor:{
168
+ color: gColor.mainColor,
169
+ iconColor: gColor.mainColor
170
+ }
171
+ }
172
+ },
173
+ handleCustom({action, data}) {
174
+ XdBus.getParentApi('getOptionsSettingList')({setting_id: 'edtix_style_font_size'})
175
+ .then(res => {
176
+ data.cb(res.list)
177
+ })
178
+ .catch(error => {
179
+ console.error(error);
180
+ data.cb([])
181
+ });
182
+ },
183
+ },
184
+ {ele: 'group_end'},
185
+
186
+ {
187
+ label: '导航样式',
188
+ ele: 'xd-radio',
189
+ groupKey: 'content',
190
+ valueKey: 'navStatus',
191
+ value: statusDataVal({data, key:'navStatus', fields:['backgroundImage','bgColor','borderColor'], gValue}),
192
+ labelInline:true,
193
+ list: [
194
+ {label: '默认', value: 'D'},
195
+ {label: '自定义', value: 'C'},
196
+ ]
197
+ },
198
+ {ele: 'group_start'},
199
+ {
200
+ label: '背景色',
201
+ ele: 'xd-color',
202
+ valueKey: 'bgColor',
203
+ groupKey:'content',
204
+ value: dataVal({data, key:'bgColor', dValue:'', gValue}),
205
+ hidden:!statusShow({data, key: 'navStatus', fields:['bgColor','backgroundImage','borderColor'], gValue}),
206
+ labelInline:true,
207
+ placeholder: '请选择背景颜色',
208
+ setting: {
209
+ showAlpha: true
210
+ },
211
+ classNmae: 'input800',
212
+ },
213
+ {
214
+ label: '边框色:',
215
+ ele: 'xd-color',
216
+ valueKey: 'borderColor',
217
+ groupKey:'content',
218
+ value: dataVal({data, key:'borderColor', dValue:'', gValue}),
219
+ hidden:!statusShow({data, key: 'navStatus', fields:['bgColor','backgroundImage','borderColor'], gValue}),
220
+ placeholder: '请选择边框颜色',
221
+ labelInline:true,
222
+ setting: {
223
+ showAlpha: true
224
+ },
225
+ classNmae: 'input800',
226
+ },
227
+ {
228
+ label: '背景图',
229
+ labelInline:true,
230
+ ele: 'xd-upload',
231
+ valueKey: 'backgroundImage',
232
+ groupKey:'content',
233
+ value: dataVal({data, key:'backgroundImage', dValue:{}, gValue}),
234
+ hidden:!statusShow({data, key: 'navStatus', fields:['bgColor','backgroundImage','borderColor'], gValue}),
235
+ defaultValue: dataVal({data, key:'backgroundImage', dValue:null, gValue}),
236
+ slot: true,
237
+ oneWidth: 260,
238
+ oneHeight: 260*110/750,
239
+ elinputClassName: 'input40',
240
+ tipsformet: '<span style="font-size: 12px; color: #999">上传文件格式:@imageType@,不超过@size@MB。建议尺寸:<span style="color:red">750*110</span>像素</span>',
241
+ type: ['jpg', 'png', 'jpeg'],
242
+ styleType: 'one',
243
+ uploadType: 'aliyun',
244
+ size: .5,
245
+ action: 'action',
246
+ sort: true,
247
+ maxlen: 1,
248
+ },
249
+ {ele: 'group_end'},
250
+ //--弃用-----
251
+ {
252
+ label: '菜单图片配置:',
253
+ ele: 'xd-footer-setting',
254
+ valueKey: 'footerSettingImage',
255
+ groupKey:'content',
256
+ value: footerSettingImage,
257
+ hidden: true,
258
+ setting: {
259
+ router: XdBus.getParentApi('getPagesTree'),
260
+ hideAdd: true,
261
+ showField: {
262
+ path: true,
263
+ icon: false,
264
+ notice: false,
265
+ image: true,
266
+ actImage: true
267
+ },
268
+ disabel:{
269
+ path: true,
270
+ icon: true,
271
+ notice: true,
272
+ image: true,
273
+ actImage: true
274
+ },
275
+ },
276
+ handleCustom({action,data}){
277
+ if(action === 'number') {
278
+ XdBus.getParentApi('getOptionsNoticeNumber')()
279
+ .then(res => {
280
+ data.cb(res.list)
281
+ })
282
+ .catch();
283
+ }
284
+ },
285
+ },
286
+ {
287
+ label: '选中',
288
+ ele: 'xd-color',
289
+ valueKey: 'selectedColor',
290
+ groupKey:'content',
291
+ labelInline:true,
292
+ hidden: true,
293
+ setting: {
294
+ showAlpha: true
295
+ },
296
+ value: dataVal({data, key:'selectedColor', dValue:'', gValue}),
297
+ placeholder: '请选择菜单文字选中颜色',
298
+ classNmae: 'input100',
299
+ },
300
+ {
301
+ label: '未选中',
302
+ ele: 'xd-color',
303
+ valueKey: 'color',
304
+ groupKey:'content',
305
+ value: dataVal({data, key:'color', dValue:'', gValue}),
306
+ hidden: true,
307
+ labelInline:true,
308
+ setting: {
309
+ showAlpha: true
310
+ },
311
+ placeholder: '请选择菜单文字颜色',
312
+ classNmae: 'input100',
313
+ },
314
+ //--弃用-----
315
+ {
316
+ ele: 'title',
317
+ label: '菜单内容',
318
+ size: 'small',
319
+ groupKey:'content',
320
+ },
321
+ {
322
+ label: '',
323
+ ele: 'xd-footer-new-setting',
324
+ valueKey: 'footer-setting',
325
+ groupKey:'content',
326
+ value: footerSetting,
327
+ labelInline:true,
328
+ hidden: !(dataVal({data, key:'footerTpl', dValue:'normal', gValue}) === 'normal') ,
329
+ cusStyle: {marginLeft: 0,paddingLeft:0,paddingRight:0},
330
+ setting: {
331
+ router: XdBus.getParentApi('getPagesTree'),
332
+ icons:ICONS,
333
+ mode: 'new',
334
+ tplMode: footerTpl,
335
+ iconColor:{
336
+ color: data['iconStyleStatus'] === 'D'? '#333': iconStyle.cusColor.iconColor,
337
+ actColor : data['iconStyleStatus'] === 'D'?gColor.mainColor: iconStyle.cusActColor.iconColor
338
+ },
339
+ showField: {
340
+ path: true,
341
+ icon: true,
342
+ notice: true,
343
+ }
344
+ },
345
+ handleCustom({action,data}){
346
+ console.log(`handleCustom.${action}`, data);
347
+ if(action === 'number') {
348
+ XdBus.getParentApi('getOptionsNoticeNumber')()
349
+ .then(res => {
350
+ data.cb(res.list)
351
+ })
352
+ .catch();
353
+ }
354
+ },
355
+ className: 'input100',
356
+ rules: [
357
+ {
358
+ required: false,
359
+ validator: (rule, value, callback) => {
360
+ let setTpl = dataVal({data, key:'footerTpl', dValue:'normal', gValue});
361
+ if(setTpl === 'normal') {
362
+ if(value && value.length === 0) callback('请设置菜单');
363
+ else {
364
+ let errorStr = '';
365
+ if(value && value.length > 0) {
366
+ let len = value.length;
367
+ for(let i = 0; i < len; i++) {
368
+ if(value[i].name.length > 5) {
369
+ errorStr = `菜单${i}最大长度不能超过5个汉字`;
370
+ break
371
+ }
372
+ }
373
+ }
374
+ if(errorStr) {
375
+ callback(errorStr)
376
+ }else callback();
377
+ }
378
+ }
379
+ else callback()
380
+ },
381
+ trigger: ['blur','change']
382
+ }
383
+ ],
384
+ },
385
+ {
386
+ label: '',
387
+ ele: 'xd-footer-new-setting',
388
+ valueKey: 'footer-setting-center-big',
389
+ groupKey:'content',
390
+ value: dataVal({data, key:'footer-setting-center-big', dValue:[], gValue}),
391
+ labelInline:true,
392
+ cusStyle: {marginLeft: 0,paddingLeft:0},
393
+ setting: {
394
+ router: XdBus.getParentApi('getPagesTree'),
395
+ icons:ICONS,
396
+ mode: 'new',
397
+ tplMode: footerTpl,
398
+
399
+ showField: {
400
+ path: true,
401
+ icon: true,
402
+ notice: true,
403
+ }
404
+ },
405
+ handleCustom({action,data}){
406
+ console.log(`handleCustom.${action}`, data);
407
+ if(action === 'number') {
408
+ XdBus.getParentApi('getOptionsNoticeNumber')()
409
+ .then(res => {
410
+ data.cb(res.list)
411
+ })
412
+ .catch();
413
+ }
414
+ },
415
+ hidden: !(dataVal({data, key:'footerTpl', dValue:'normal', gValue}) === 'itemCenterBig'),
416
+ rules: [
417
+ {
418
+ required: false,
419
+ validator: (rule, value, callback) => {
420
+ let setTpl = dataVal({data, key:'footerTpl', dValue:'normal', gValue});
421
+ if(setTpl === 'itemCenterBig') {
422
+ if(value && value.length === 0) callback('请设置菜单');
423
+ else {
424
+ let errorStr = '';
425
+ if(value && value.length > 0) {
426
+ let len = value.length;
427
+ for(let i = 0; i < len; i++) {
428
+ if(value[i].name.length > 5) {
429
+ errorStr = `菜单${i}最大长度不能超过5个汉字`;
430
+ break
431
+ }
432
+ }
433
+ }
434
+ if(errorStr) {
435
+ callback(errorStr)
436
+ }else callback();
437
+ }
438
+ }
439
+ else callback()
440
+ },
441
+ trigger: 'blur'
442
+ }
443
+ ],
444
+ className: 'input100',
445
+ },
446
+ {
447
+ label: '版本号:',
448
+ ele: 'el-input',
449
+ type: 'text',
450
+ groupKey: 'content',
451
+ valueKey: 'version',
452
+ value: 'v2.0',
453
+ hidden: true,
454
+ },
455
+ {
456
+ label: '引用过滤字段设置:',
457
+ ele: 'el-input',
458
+ type: 'text',
459
+ groupKey: 'content',
460
+ valueKey: 'refFilterContent',
461
+ value: '[]',
462
+ hidden: true,
463
+ },
464
+ {
465
+ label: '',
466
+ ele: 'slot',
467
+ slot: 'is_reference',
468
+ groupKey: 'content',
469
+ },
470
+ ].filter(i=>i)
471
+ }
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ export default function (data, gValue,gColor,oldData){
4
+ return [
5
+ ].filter(i=>i)
6
+ }
7
+
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ export default (data)=>{
4
+ let footerSettingImage = [];
5
+ let footerSetting = []
6
+ if(data['footerSettingImage'] && data['footerSettingImage'].length > 0 ) {
7
+ footerSettingImage = data['footerSettingImage'];
8
+ }
9
+ if(data['footer-setting'] && data['footer-setting'].length > 0){
10
+ footerSetting = data['footer-setting'];
11
+ footerSetting.map((item,index)=>{
12
+ if(!footerSettingImage[index]) footerSettingImage[index] = {};
13
+ footerSettingImage[index] = Object.assign({},JSON.parse(JSON.stringify(item)),footerSettingImage[index])
14
+ })
15
+ }
16
+ return {footerSettingImage, footerSetting}
17
+ }
@@ -24,4 +24,19 @@ module.exports = [
24
24
  isConsole: true,
25
25
  disabled: true,
26
26
  },
27
+ {
28
+ //设置方法名字当别忘记加上【模块名字】:Tfk
29
+ mapFnName: 'getTfkSearchFilterItems',
30
+ title: '获取搜索筛选条件',
31
+ path: '/mall/v1/msearch/search-filter',
32
+ isRule: false,
33
+ data: {
34
+ type: ['类型', 'String', '必选'],
35
+ namespace: ['业务线', 'Number', '非必选'],
36
+ city_code: ['城市编码', 'Number', '非必选'],
37
+ filter_item: ['纬度', 'Number', '非必选'],
38
+ },
39
+ isConsole: true,
40
+ disabled: true,
41
+ },
27
42
  ];
@@ -177,6 +177,10 @@ export default {
177
177
  tabId:{
178
178
  type:String,
179
179
  required:true
180
+ },
181
+ refresh: {
182
+ type: String | Number,
183
+ default: '',
180
184
  }
181
185
  },
182
186
 
@@ -282,6 +286,12 @@ export default {
282
286
  this.onCusReloadList();
283
287
  },
284
288
 
289
+ refresh() {
290
+ this.handleClear();
291
+ this.parseTab()
292
+ this.onCusReloadList();
293
+ },
294
+
285
295
  stateCity(n, o){
286
296
  if(n && JSON.stringify(n) !== JSON.stringify(o)){
287
297
  this.onCusReloadList()