jufubao-mall 2.0.20-beta1 → 2.0.20-beta3
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/package.json +1 -1
- package/src/components/JfbMallBrandWall/JfbMallBrandWall.vue +91 -48
- package/src/components/JfbMallBrandWall/cusAttr/brand.js +4 -4
- package/src/components/JfbMallBrandWall/cusAttr/content.js +13 -11
- package/src/components/JfbMallBrandWall/cusAttr/tab.js +41 -50
- package/src/components/JfbMallProductList/ComFilterQuery.vue +22 -8
- package/src/components/JfbMallProductList/JfbMallProductList.vue +23 -3
- package/src/components/JfbMallProductList/Mock.js +8 -0
- package/src/components/JfbMallProductList/XdCateV1.vue +30 -7
- package/src/components/JfbMallProductList/XdCateV2.vue +5 -0
- package/src/components/JfbMallProductList/cusAttr/content.js +33 -0
- package/src/components/JfbMallProductList/cusAttr/icon.js +57 -19
package/package.json
CHANGED
|
@@ -22,12 +22,13 @@
|
|
|
22
22
|
<scroll-view
|
|
23
23
|
:scroll-x="layout==='v1'"
|
|
24
24
|
:scroll-y="layout==='v2'"
|
|
25
|
-
:style="{height:layout==='v2'?tabStyleComp.height:'auto'}"
|
|
25
|
+
:style="{height:layout==='v2'? tabStyleComp.height:'auto'}"
|
|
26
26
|
:class="{'tab-linex':layout==='v1' && hStyle ==='v3'}"
|
|
27
27
|
>
|
|
28
28
|
<view
|
|
29
29
|
class="tab_list"
|
|
30
30
|
:class="{hStyle: layout === 'v1'}"
|
|
31
|
+
:style="[tabListComp]"
|
|
31
32
|
v-if="loaded"
|
|
32
33
|
>
|
|
33
34
|
<view
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
|| (layout === 'v1' && ['v2','v3'].includes(hStyle))"
|
|
47
48
|
class="lineCom"
|
|
48
49
|
:class="{lineSmall: ['v3'].includes(hStyle)}"
|
|
49
|
-
:style="{backgroundColor: i === tabIndex?
|
|
50
|
+
:style="{backgroundColor: i === tabIndex?tabActItemNameStyle.color:'rgba(0,0,0,0)'}"
|
|
50
51
|
></view>
|
|
51
52
|
<view :style="[i === tabIndex?tabActItemNameStyle:tabItemNameStyle]">{{tab.input}}</view>
|
|
52
53
|
</view>
|
|
@@ -199,14 +200,15 @@
|
|
|
199
200
|
|
|
200
201
|
//选项卡信息
|
|
201
202
|
titleBgc: '',
|
|
202
|
-
tabPadding:{}
|
|
203
|
+
tabPadding:{},//选项卡填充
|
|
203
204
|
titleStyle:{},
|
|
204
205
|
titleRadius:0,
|
|
205
206
|
titleShadow:'',
|
|
206
207
|
titleBorder:0,
|
|
207
208
|
titleBorderWidth:0,
|
|
208
209
|
titleBgcActColor:'',
|
|
209
|
-
titlePadding: 0,
|
|
210
|
+
titlePadding: 0, //内容与选项卡填充
|
|
211
|
+
titleSp: 0, //选项卡间距
|
|
210
212
|
|
|
211
213
|
|
|
212
214
|
//内容
|
|
@@ -245,7 +247,7 @@
|
|
|
245
247
|
skeletonStyle(){
|
|
246
248
|
let margin = 0;
|
|
247
249
|
if(this.layout === 'v1') {
|
|
248
|
-
margin = '
|
|
250
|
+
margin = '0rpx 24rpx 0rpx 0';
|
|
249
251
|
}
|
|
250
252
|
if(this.layout === 'v2') {
|
|
251
253
|
margin = '12rpx'
|
|
@@ -263,7 +265,10 @@
|
|
|
263
265
|
}
|
|
264
266
|
},
|
|
265
267
|
showTabs(){
|
|
266
|
-
let tabs = this.$xdUniHelper.cloneDeep(this.newLabel).filter(item=>
|
|
268
|
+
let tabs = this.$xdUniHelper.cloneDeep(this.newLabel).filter(item=>{
|
|
269
|
+
return item.check === true
|
|
270
|
+
});
|
|
271
|
+
|
|
267
272
|
//线下签是否展示通过后台控制
|
|
268
273
|
if(this.has_sell) return tabs;
|
|
269
274
|
else return tabs.filter(item => item.value !== 'sell');
|
|
@@ -351,9 +356,6 @@
|
|
|
351
356
|
if(['v1', 'v2'].includes(this.vStyle)) {
|
|
352
357
|
style['height'] = `${this.layoutInfo.bodyMinHeightPx - outHeight}px`;
|
|
353
358
|
}
|
|
354
|
-
// if(['v2', 'v4'].includes(this.vStyle)) {
|
|
355
|
-
// style['max-height'] = `${this.layoutInfo.bodyMinHeightPx - outHeight}px`;
|
|
356
|
-
// }
|
|
357
359
|
style['overflowY'] = 'auto';
|
|
358
360
|
style['overflowX'] = 'hidden';
|
|
359
361
|
}
|
|
@@ -366,7 +368,7 @@
|
|
|
366
368
|
let style = {}
|
|
367
369
|
//上下结构
|
|
368
370
|
if(this.layout === 'v1') {
|
|
369
|
-
|
|
371
|
+
|
|
370
372
|
if(!this.isPreview) {
|
|
371
373
|
style['position'] = 'fixed';
|
|
372
374
|
style['zIndex'] = '10';
|
|
@@ -380,23 +382,36 @@
|
|
|
380
382
|
style['width'] = '172rpx';
|
|
381
383
|
style['flexShrink'] = 0;
|
|
382
384
|
style['overflow'] = 'hidden';
|
|
383
|
-
style['padding'] =
|
|
385
|
+
style['padding'] = 0;
|
|
384
386
|
|
|
385
387
|
if(['v1', 'v2'].includes(this.vStyle)) {
|
|
386
388
|
let tb = this.getPMValue(this.bodyPadding, 'TB', 0) * this.$rpxNum + this.titleBorderWidth * 2 *this.$rpxNum;
|
|
387
|
-
tb += this.getPMValue(this.tabPadding, 'TB', 0) * this.$rpxNum
|
|
388
389
|
style['height'] = `calc(${ this.layoutInfo.bodyMinHeightPx}px - ${tb}px)`;
|
|
389
390
|
style['borderRadius'] = `0 ${this.titleRadius}rpx ${this.titleRadius}rpx 0`;
|
|
390
391
|
}
|
|
391
392
|
}
|
|
392
393
|
return style;
|
|
393
394
|
},
|
|
395
|
+
tabListComp(){
|
|
396
|
+
let temp = {};
|
|
397
|
+
if(this.layout === 'v1') {
|
|
398
|
+
temp['paddingLeft'] = (this.tabPadding.left || 0) + 'rpx';
|
|
399
|
+
temp['paddingRight'] = (this.tabPadding.right || 0) + 'rpx';
|
|
400
|
+
temp['paddingBottom'] = (this.tabPadding.bottom || 0) + 'rpx';
|
|
401
|
+
temp['paddingTop'] = (this.tabPadding.top || 0) + 'rpx';
|
|
402
|
+
}
|
|
403
|
+
return temp
|
|
404
|
+
},
|
|
394
405
|
tabStyleComp(){
|
|
406
|
+
let border = {};
|
|
407
|
+
if(this.layout === 'v2') border = {border: this.titleBorder}
|
|
408
|
+
else border = {borderBottom: this.titleBorder}
|
|
395
409
|
return {
|
|
396
410
|
boxShadow: this.titleShadow,
|
|
397
|
-
|
|
411
|
+
...border,
|
|
398
412
|
backgroundColor: this.titleBgc,
|
|
399
|
-
|
|
413
|
+
//在模版二不使用内容与选项卡直接间距
|
|
414
|
+
marginBottom: this.layout === 'v2'?0:this.titlePadding + 'rpx',
|
|
400
415
|
...this.getTabHeight,
|
|
401
416
|
};
|
|
402
417
|
},
|
|
@@ -421,9 +436,10 @@
|
|
|
421
436
|
getTabItemHeight(){
|
|
422
437
|
if(this.layout === 'v1'){
|
|
423
438
|
return {
|
|
424
|
-
height:
|
|
425
|
-
lineHeight:
|
|
439
|
+
height: '60rpx',
|
|
440
|
+
lineHeight:'60rpx',
|
|
426
441
|
marginRight: this.titleSp + 'rpx',
|
|
442
|
+
minWidth: '80rpx'
|
|
427
443
|
}
|
|
428
444
|
}
|
|
429
445
|
|
|
@@ -433,7 +449,7 @@
|
|
|
433
449
|
lineHeight: '100rpx',
|
|
434
450
|
borderRadius:'0',
|
|
435
451
|
fontSize:'24rpx',
|
|
436
|
-
marginBottom: this.
|
|
452
|
+
marginBottom: this.titleSp + 'rpx'
|
|
437
453
|
}
|
|
438
454
|
}
|
|
439
455
|
|
|
@@ -475,10 +491,35 @@
|
|
|
475
491
|
}
|
|
476
492
|
},
|
|
477
493
|
tabActItemNameStyle(){
|
|
478
|
-
if(this.layout === 'v2') return {}
|
|
479
494
|
let bgColor = '';
|
|
480
495
|
let bgImage = 'none';
|
|
496
|
+
let color = this.mainColor;
|
|
497
|
+
if(this.layout === 'v2') {
|
|
498
|
+
if(['v2'].includes(this.vStyle)) {
|
|
499
|
+
//选项卡标签文字颜色
|
|
500
|
+
if(this.titleStyle.actColor) color = this.titleStyle.actColor;
|
|
501
|
+
else color = '#fff';
|
|
502
|
+
|
|
503
|
+
//选项卡标签背景颜色
|
|
504
|
+
if(this.titleStyle.actBgColor) bgColor = this.titleStyle.actBgColor;
|
|
505
|
+
else {
|
|
506
|
+
if(this.mainGradient && this.mainGradient.indexOf('gradient') !== -1) bgImage = this.mainGradient;
|
|
507
|
+
else bgColor = this.mainColor;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
return {
|
|
512
|
+
backgroundColor: bgColor,
|
|
513
|
+
color: color,
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
|
|
481
517
|
if(['v1'].includes(this.hStyle)) {
|
|
518
|
+
//选项卡标签文字颜色
|
|
519
|
+
if(this.titleStyle.actColor) color = this.titleStyle.actColor;
|
|
520
|
+
else color = '#fff';
|
|
521
|
+
|
|
522
|
+
//选项卡标签背景颜色
|
|
482
523
|
if(this.titleStyle.actBgColor) bgColor = this.titleStyle.actBgColor;
|
|
483
524
|
else {
|
|
484
525
|
if(this.mainGradient && this.mainGradient.indexOf('gradient') !== -1) bgImage = this.mainGradient;
|
|
@@ -490,7 +531,7 @@
|
|
|
490
531
|
backgroundColor: bgColor,
|
|
491
532
|
backgroundImage: bgImage,
|
|
492
533
|
padding: '0 32rpx',
|
|
493
|
-
color:
|
|
534
|
+
color: color,
|
|
494
535
|
fontSize: this.titleStyle.actFontSize + 'rpx',
|
|
495
536
|
fontWeight: this.titleStyle.actFontWeight,
|
|
496
537
|
}
|
|
@@ -514,9 +555,6 @@
|
|
|
514
555
|
this.$nextTick()
|
|
515
556
|
},
|
|
516
557
|
methods: {
|
|
517
|
-
tr() {
|
|
518
|
-
return tr
|
|
519
|
-
},
|
|
520
558
|
onJfbLoad(options) {
|
|
521
559
|
//设置业务请求代码
|
|
522
560
|
this.setNameSpace(options);
|
|
@@ -562,7 +600,8 @@
|
|
|
562
600
|
]
|
|
563
601
|
let newLabel = this.$xdUniHelper.cloneDeep(gCPVal(container, 'newLabel', []))
|
|
564
602
|
.filter(item=>{
|
|
565
|
-
|
|
603
|
+
//更古老数据,相对新数据
|
|
604
|
+
return item['isShow'] === undefined || item['isShow'] === true
|
|
566
605
|
})
|
|
567
606
|
.sort((a,b)=>Number(a.sort)-Number(b.sort))
|
|
568
607
|
.map(item=>{
|
|
@@ -572,6 +611,7 @@
|
|
|
572
611
|
item['check'] = item['isShow'];
|
|
573
612
|
delete item['isShow'];
|
|
574
613
|
}
|
|
614
|
+
else item['check'] = true;
|
|
575
615
|
if(item['newLabel'] !== undefined || item['label'] !== undefined) {
|
|
576
616
|
item['input'] = item['newLabel'] || item['label'];
|
|
577
617
|
delete item['newLabel'];
|
|
@@ -579,8 +619,20 @@
|
|
|
579
619
|
}
|
|
580
620
|
return item
|
|
581
621
|
});
|
|
582
|
-
|
|
622
|
+
let defValues = {
|
|
623
|
+
all: '全部',
|
|
624
|
+
sell:'线下',
|
|
625
|
+
code:'电子码',
|
|
626
|
+
stod:'线上',
|
|
627
|
+
'stod-samecity':'同城配送',
|
|
628
|
+
"stod-logistics":'快递配送',
|
|
629
|
+
'stod-takeout':'门店自提'
|
|
630
|
+
}
|
|
583
631
|
|
|
632
|
+
this.newLabel = gCPVal(container, 'tabContent', newLabel.length > 0 ? newLabel: defNewLabel).map(item=>{
|
|
633
|
+
if(item.input === '') item.input = defValues[item.value];
|
|
634
|
+
return item
|
|
635
|
+
});
|
|
584
636
|
|
|
585
637
|
//常规
|
|
586
638
|
let defBodyPadding= 0;
|
|
@@ -616,12 +668,10 @@
|
|
|
616
668
|
else defListPadding = {top:40,left:40, right:40, bottom:40};
|
|
617
669
|
}
|
|
618
670
|
|
|
671
|
+
let defListMargin = 0;
|
|
672
|
+
if(this.layout === 'v2' && this.vStyle === 'v2') defListMargin = 24;
|
|
673
|
+
|
|
619
674
|
this.listPadding = gCPVal(container, 'listPadding', [defListPadding,24], {sKey: 'listPaddingStatus', fields: ['listPadding'], isPMR: true});
|
|
620
|
-
let defListMargin= 0;
|
|
621
|
-
if(this.layout === 'v2'){
|
|
622
|
-
//if(['v3', 'v4'].includes(this.vStyle)) defListMargin = {top:0,left:24, right:0, bottom:0}
|
|
623
|
-
if(['v2'].includes(this.vStyle)) defListMargin = {top:24,left:24, right:24, bottom:24}
|
|
624
|
-
}
|
|
625
675
|
this.listMargin = gCPVal(container, 'listMargin', [defListMargin,0], {sKey: 'listMarginStatus', fields: ['listMargin'], isPMR: true});
|
|
626
676
|
this.contRadius = gCPVal(container, 'contRadius', [this.gStyleValue.radius,0],{sKey: 'contRadiusStatus', fields: ['contRadius']})||0;
|
|
627
677
|
|
|
@@ -631,18 +681,11 @@
|
|
|
631
681
|
let defTabPadding = 0;
|
|
632
682
|
let oldTabPadding = 0;
|
|
633
683
|
if(this.layout === 'v2') {
|
|
634
|
-
if(['v2', 'v1'].includes(this.vStyle)) defTabPadding = {top:0,left:0, right:0, bottom:0};
|
|
635
684
|
if(['v1'].includes(this.vStyle)) defTitleBgc = '#f8f8f8';
|
|
636
685
|
}
|
|
637
686
|
if(this.layout === 'v1') {
|
|
638
|
-
defTabPadding = {top:
|
|
639
|
-
oldTabPadding = {top:
|
|
640
|
-
|
|
641
|
-
if(['v1'].includes(this.hStyle)) {
|
|
642
|
-
defTabPadding = {top:24,left:32, right:0, bottom:24};
|
|
643
|
-
oldTabPadding = {top:24,left:32, right:0, bottom:24};
|
|
644
|
-
}
|
|
645
|
-
|
|
687
|
+
defTabPadding = {top:24,left:32, right:32, bottom:24};
|
|
688
|
+
oldTabPadding = {top:40,left:40, right:40, bottom:40};
|
|
646
689
|
}
|
|
647
690
|
this.tabPadding = gCPVal(container, 'tabPadding', [defTabPadding,oldTabPadding], {sKey: 'tabPaddingStatus', fields: ['tabPadding'], isPMR: true});
|
|
648
691
|
this.titleBgc = gCPVal(container, 'titleBgc', [defTitleBgc,'#fff'],{sKey: 'titleBgcStatus', fields: ['titleBgc']});
|
|
@@ -653,7 +696,7 @@
|
|
|
653
696
|
let titleStyleStatus = gCPVal(container, 'titleStyleStatus', '');
|
|
654
697
|
if(titleStyleStatus === 'D') titleActColor = '';
|
|
655
698
|
let mainColor = titleActColor || this.mainColor;
|
|
656
|
-
if(this.layout === 'v1' && this.hStyle === 'v1') mainColor = '#fff';
|
|
699
|
+
//if(this.layout === 'v1' && this.hStyle === 'v1') mainColor = '#fff';
|
|
657
700
|
if(this.layout === 'v2' && this.vStyle === 'v2') mainColor = '#fff';
|
|
658
701
|
this.titleStyle = gCPVal(
|
|
659
702
|
container,
|
|
@@ -663,10 +706,10 @@
|
|
|
663
706
|
bgColor: titleBgcColor || '#fff' ,
|
|
664
707
|
fontSize: '32',
|
|
665
708
|
fontWeight: '400',
|
|
666
|
-
actColor:
|
|
709
|
+
actColor: titleActColor || '',
|
|
667
710
|
actFontWeight: '400',
|
|
668
711
|
actFontSize: '32',
|
|
669
|
-
actBgColor:
|
|
712
|
+
actBgColor:this.titleBgcActColor || '',
|
|
670
713
|
}],
|
|
671
714
|
{sKey:'titleStyleStatus',fields:['titleStyle'],isMerge: true},
|
|
672
715
|
);
|
|
@@ -679,16 +722,16 @@
|
|
|
679
722
|
if(['v1','v2'].includes(this.vStyle)) defTitleRadius = '0';
|
|
680
723
|
}
|
|
681
724
|
this.titleRadius = gCPVal(container, 'titleRadius', [defTitleRadius,this.gStyleValue.radius,'0'],{sKey: 'titleRadiusStatus', fields: ['titleRadius']})||0;
|
|
682
|
-
this.titlePadding = gCPVal(container, 'titlePadding',
|
|
683
|
-
this.titleSp = gCPVal(container, 'titleSp', [48, 0],{sKey: 'titleSpStatus', fields: ['titleSp']});
|
|
725
|
+
this.titlePadding = gCPVal(container, 'titlePadding', 0,{sKey: 'titlePaddingStatus', fields: ['titlePadding']});
|
|
726
|
+
this.titleSp = gCPVal(container, 'titleSp', [(this.layout === 'v2'?0:48), 0],{sKey: 'titleSpStatus', fields: ['titleSp']});
|
|
684
727
|
|
|
685
728
|
//内容
|
|
686
729
|
this.contentBgc = gCPVal(container, 'contentBgc', '#fff',{sKey: 'contentBgcStatus', fields: ['contentBgc']} );
|
|
687
730
|
let contentPadding = gCPVal(container, 'contentPadding',''), bindSize = 68;
|
|
688
731
|
if(this.layout === 'v1' && this.contentCell === 3) bindSize = 28;
|
|
689
732
|
if(this.layout === 'v1' && this.contentCell === 5) bindSize = 60;
|
|
690
|
-
if(contentPadding) bindSize =
|
|
691
|
-
this.bindSize =
|
|
733
|
+
if(contentPadding) bindSize = 112 - Number(contentPadding);
|
|
734
|
+
this.bindSize = 112 - Number(gCPVal(container, 'bindSize', [bindSize,68],{sKey: 'bindSizeStatus', fields: ['bindSize']}));
|
|
692
735
|
this.radius = gCPVal(container, 'radius', [this.gStyleValue.radius,0],{sKey: 'radiusStatus', fields: ['radius']})||0;
|
|
693
736
|
this.brandShadow = gCPVal(container, 'brandShadow', [this.gStyleValue.shadow,'none'], {isShadow:true, bsOld:['isContShadow','isContShadowBgcW','isContShadowBgc']});
|
|
694
737
|
this.brandBorder = gCPVal(container, 'brandBorder', [{color: '#f8f8f8', width: '2', style: 'solid'},{color: '#eee', width: '0', style: 'solid'}], {isBorder:true, bsOld:['isContBorder','isContBorderW','isContBorderColor']});
|
|
@@ -696,8 +739,8 @@
|
|
|
696
739
|
container,
|
|
697
740
|
"brandStyle",
|
|
698
741
|
[{
|
|
699
|
-
color: gCPVal(container, 'brandNameColor', '') || '#
|
|
700
|
-
fontSize: '
|
|
742
|
+
color: gCPVal(container, 'brandNameColor', '') || '#666',
|
|
743
|
+
fontSize: '28rpx',
|
|
701
744
|
fontWeight: '400',
|
|
702
745
|
}],
|
|
703
746
|
{sKey:'brandStyleStatus',fields:['brandStyle'],isMerge: true},
|
|
@@ -856,7 +899,7 @@
|
|
|
856
899
|
left: 50%;
|
|
857
900
|
width: 64rpx;
|
|
858
901
|
transform: translateX(-50%);
|
|
859
|
-
bottom: 16rpx;
|
|
902
|
+
bottom: -16rpx;
|
|
860
903
|
height: 6rpx;
|
|
861
904
|
border-radius: 4rpx;
|
|
862
905
|
}
|
|
@@ -55,13 +55,13 @@ export default (data, gValue, gColor, oldData)=>{
|
|
|
55
55
|
groupKey: 'style',
|
|
56
56
|
ele: 'xd-slider',
|
|
57
57
|
valueKey: "bindSize",
|
|
58
|
-
value: dataVal({data, key:'bindSize', dValue: gValue.isAdd && gValue.isFirst?bindSize: 68, gValue}),
|
|
58
|
+
value: dataVal({data, key:'bindSize', dValue: gValue.isAdd && gValue.isFirst ? bindSize: 68, gValue}),
|
|
59
59
|
hidden: !statusShow({data, key: 'bindSizeStatus', fields:['bindSize'], gValue}),
|
|
60
60
|
className: "input100",
|
|
61
61
|
labelInline: true,
|
|
62
62
|
setting:{
|
|
63
|
-
min:
|
|
64
|
-
max:
|
|
63
|
+
min: 50,//最小值
|
|
64
|
+
max: 90, //最小值
|
|
65
65
|
step:1, //步长
|
|
66
66
|
showStops:false,//显示间断点
|
|
67
67
|
showInput:false,//显示输入框
|
|
@@ -97,7 +97,7 @@ export default (data, gValue, gColor, oldData)=>{
|
|
|
97
97
|
selected:false,
|
|
98
98
|
default:{
|
|
99
99
|
color: data['brandNameColor'] || '#666',
|
|
100
|
-
fontSize:'
|
|
100
|
+
fontSize:'28rpx',
|
|
101
101
|
fontWeight: '400'
|
|
102
102
|
},
|
|
103
103
|
},
|
|
@@ -10,8 +10,10 @@ export default (data, gValue, gColor, oldData={})=>{
|
|
|
10
10
|
//老数据
|
|
11
11
|
let tabContent = [];
|
|
12
12
|
if(data['newLabel'] !== undefined) {
|
|
13
|
-
let newLabel = clone(data['newLabel']).
|
|
14
|
-
|
|
13
|
+
let newLabel = clone(data['newLabel']).map(item=>{
|
|
14
|
+
if(typeof item.isShow === 'boolean') item.check = item.isShow;
|
|
15
|
+
else item.check = true;
|
|
16
|
+
return item
|
|
15
17
|
});
|
|
16
18
|
tabContent = newLabel.sort((a,b)=>Number(a.sort)-Number(b.sort)).map(item=>{
|
|
17
19
|
item['placeholder'] = '自定义名称';
|
|
@@ -86,13 +88,13 @@ export default (data, gValue, gColor, oldData={})=>{
|
|
|
86
88
|
inline: false,
|
|
87
89
|
handleCustom({action, data}) {
|
|
88
90
|
data.cb([
|
|
89
|
-
{value:'all', label: '全部',input:'',check: true,placeholder:'自定义名称'},
|
|
90
|
-
{value:'sell', label: '线下',input:'',check: true, placeholder:'自定义名称'},
|
|
91
|
-
{value:'code', label: '电子码',input:'',check: true,placeholder:'自定义名称'},
|
|
92
|
-
{value:'stod', label: '线上',input:'',check: true,placeholder:'自定义名称'},
|
|
93
|
-
{value:'stod-samecity', label: '同城配送',input:'',check: false,placeholder:'自定义名称'},
|
|
94
|
-
{value:'stod-logistics', label: '快递配送',input:'',check: false,placeholder:'自定义名称'},
|
|
95
|
-
{value:'stod-takeout', label: '门店自提',input:'',check: false,placeholder:'自定义名称'},
|
|
91
|
+
{value:'all', label: '全部',input:'', def: '全部', check: true,placeholder:'自定义名称'},
|
|
92
|
+
{value:'sell', label: '线下',input:'', def: '线下',check: true, placeholder:'自定义名称'},
|
|
93
|
+
{value:'code', label: '电子码',input:'', def: '电子码',check: true,placeholder:'自定义名称'},
|
|
94
|
+
{value:'stod', label: '线上',input:'', def: '线上',check: true,placeholder:'自定义名称'},
|
|
95
|
+
{value:'stod-samecity', label: '同城配送',input:'', def: '同城配送',check: false,placeholder:'自定义名称'},
|
|
96
|
+
{value:'stod-logistics', label: '快递配送',input:'', def: '快递配送',check: false,placeholder:'自定义名称'},
|
|
97
|
+
{value:'stod-takeout', label: '门店自提',input:'', def: '门店自提',check: false,placeholder:'自定义名称'},
|
|
96
98
|
])
|
|
97
99
|
},
|
|
98
100
|
},
|
|
@@ -146,7 +148,7 @@ export default (data, gValue, gColor, oldData={})=>{
|
|
|
146
148
|
value: dataVal({data, key:'layout', dValue:'v1', gValue}),
|
|
147
149
|
multiple: false,
|
|
148
150
|
groupKey: 'content',
|
|
149
|
-
className: '
|
|
151
|
+
className: 'input100',
|
|
150
152
|
labelInline:true,
|
|
151
153
|
list: [
|
|
152
154
|
{label: '上下布局', value: 'v1'},
|
|
@@ -211,7 +213,7 @@ export default (data, gValue, gColor, oldData={})=>{
|
|
|
211
213
|
placeholder: '请选择显示列',
|
|
212
214
|
multiple: false,
|
|
213
215
|
groupKey: 'content',
|
|
214
|
-
className: '
|
|
216
|
+
className: 'input100',
|
|
215
217
|
labelInline:true,
|
|
216
218
|
hidden: !(['v1'].includes(dataVal({data, key:'layout', dValue:'v2', gValue}) )),
|
|
217
219
|
list: [
|
|
@@ -27,48 +27,38 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
27
27
|
let defTitleShadow = cRaBorShadow( data, 'titleShadow', {old:['isTitleShadow','isTitleShadowBgcW','isTitleShadowBgc']},gValue);
|
|
28
28
|
let titleStyleFields = ['titleBgcColor','titleBgcActColor','titleColor','titleActColor'];
|
|
29
29
|
|
|
30
|
-
function handle(isBtn, isChange=false){
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
handle(data.hStyle === 'v1', true);
|
|
63
|
-
}
|
|
64
|
-
//左右结构,切换Tab样式
|
|
65
|
-
if(data['layout'] === 'v2' && data.vStyle && oldData.vStyle && data.vStyle !== oldData.vStyle) {
|
|
66
|
-
handle(data.vStyle === 'v2');
|
|
67
|
-
}
|
|
68
|
-
if(statusDataVal({data, key:'tabPaddingStatus', fields:['tabPadding'],gValue}) === 'C') {
|
|
69
|
-
if(data['layout'] === 'v2') data['tabPadding'] = {top:20,left:0, right:0, bottom:0};
|
|
70
|
-
else data['tabPadding'] = {top:24,left:32, right:0, bottom:24}
|
|
71
|
-
}
|
|
30
|
+
// function handle(isBtn, isChange=false){
|
|
31
|
+
// if(isBtn) {
|
|
32
|
+
// if(data['titleStyle'] !== undefined) {
|
|
33
|
+
// data['titleStyle']['color'] = '#333';
|
|
34
|
+
// data['titleStyle']['actColor'] = '#fff';
|
|
35
|
+
// data['titleStyle']['bgColor'] = '#fff';
|
|
36
|
+
// data['titleStyle']['actBgColor'] = '';
|
|
37
|
+
// }
|
|
38
|
+
// }
|
|
39
|
+
// else {
|
|
40
|
+
// if(data['titleStyle'] !== undefined) {
|
|
41
|
+
// data['titleStyle']['color'] = '#333';
|
|
42
|
+
// data['titleStyle']['actColor'] = gColor.mainColor;
|
|
43
|
+
// data['titleStyle']['bgColor'] = '';
|
|
44
|
+
// data['titleStyle']['actBgColor'] = '';
|
|
45
|
+
// }
|
|
46
|
+
// }
|
|
47
|
+
// }
|
|
48
|
+
//
|
|
49
|
+
// //切换左右
|
|
50
|
+
// if(data['layout'] !== oldData.layout) {
|
|
51
|
+
// handle(data['layout'] === 'v1'?data.hStyle === 'v1': data.vStyle === 'v2', data['layout'] === 'v1');
|
|
52
|
+
// }
|
|
53
|
+
//
|
|
54
|
+
// //上下结构,切换Tab样式
|
|
55
|
+
// if(data['layout'] === 'v1' && data.hStyle && oldData.hStyle && data.hStyle !== oldData.hStyle) {
|
|
56
|
+
// handle(data.hStyle === 'v1', true);
|
|
57
|
+
// }
|
|
58
|
+
// //左右结构,切换Tab样式
|
|
59
|
+
// if(data['layout'] === 'v2' && data.vStyle && oldData.vStyle && data.vStyle !== oldData.vStyle) {
|
|
60
|
+
// handle(data.vStyle === 'v2');
|
|
61
|
+
// }
|
|
72
62
|
|
|
73
63
|
|
|
74
64
|
return [
|
|
@@ -106,7 +96,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
106
96
|
selected:true,
|
|
107
97
|
default:{
|
|
108
98
|
color: data['titleColor'] || '#333',
|
|
109
|
-
bgColor:data['titleBgcColor'] || '#fff',
|
|
99
|
+
bgColor: data['titleBgcColor'] || '#fff',
|
|
110
100
|
fontSize:'32',
|
|
111
101
|
fontWeight: '400',
|
|
112
102
|
actFontSize:'32',
|
|
@@ -145,7 +135,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
145
135
|
groupKey: 'style',
|
|
146
136
|
ele: 'xd-slider',
|
|
147
137
|
valueKey: "titleSp",
|
|
148
|
-
value: dataVal({data, key:'titleSp', dValue:gValue.
|
|
138
|
+
value: dataVal({data, key:'titleSp', dValue:gValue.isFirst && gValue.isAdd?(data.layout === 'v2'?0:48):0}),
|
|
149
139
|
hidden: !statusShow({data, key: 'titleSpStatus', fields:['titleSp'], gValue}),
|
|
150
140
|
className: "input100",
|
|
151
141
|
labelInline: true,
|
|
@@ -166,6 +156,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
166
156
|
valueKey: 'titlePaddingStatus',
|
|
167
157
|
value: statusDataVal({data, key: 'titlePaddingStatus', fields:['titlePadding'], gValue}),
|
|
168
158
|
labelInline:true,
|
|
159
|
+
hidden: data['layout'] ==='v2',
|
|
169
160
|
list: [
|
|
170
161
|
{label: '默认', value: 'D'},
|
|
171
162
|
{label: '自定义', value: 'C'},
|
|
@@ -178,7 +169,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
178
169
|
ele: 'xd-slider',
|
|
179
170
|
valueKey: "titlePadding",
|
|
180
171
|
value: dataVal({data, key:'titlePadding', dValue:0, gValue}),
|
|
181
|
-
hidden: !statusShow({data, key: 'titlePaddingStatus', fields:['titlePadding'], gValue}),
|
|
172
|
+
hidden: !statusShow({data, key: 'titlePaddingStatus', fields:['titlePadding'], gValue}) || data['layout'] ==='v2',
|
|
182
173
|
className: "input100",
|
|
183
174
|
labelInline: true,
|
|
184
175
|
setting:{
|
|
@@ -336,7 +327,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
336
327
|
value: dataVal({
|
|
337
328
|
data,
|
|
338
329
|
key:'tabPadding',
|
|
339
|
-
dValue:[gValue.isAdd&&gValue.isFirst
|
|
330
|
+
dValue:[gValue.isAdd && gValue.isFirst?{top:24,left:32, right:32, bottom:24}: 40],
|
|
340
331
|
gValue,
|
|
341
332
|
isPM: true,
|
|
342
333
|
}),
|
|
@@ -357,7 +348,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
357
348
|
groupKey: 'style',
|
|
358
349
|
placeholder: '请选择未选中文字颜色',
|
|
359
350
|
classNmae: 'input80',
|
|
360
|
-
hidden:
|
|
351
|
+
hidden: false
|
|
361
352
|
},
|
|
362
353
|
{
|
|
363
354
|
label: '选中标签背景颜色:',
|
|
@@ -367,7 +358,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
367
358
|
groupKey: 'style',
|
|
368
359
|
placeholder: '请选择选中标签背景颜色',
|
|
369
360
|
classNmae: 'input80',
|
|
370
|
-
hidden:
|
|
361
|
+
hidden: false
|
|
371
362
|
},
|
|
372
363
|
{
|
|
373
364
|
label: '未选中文字颜色:',
|
|
@@ -377,7 +368,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
377
368
|
groupKey: 'style',
|
|
378
369
|
placeholder: '请选择未选中文字颜色',
|
|
379
370
|
classNmae: 'input80',
|
|
380
|
-
hidden:
|
|
371
|
+
hidden: false
|
|
381
372
|
},
|
|
382
373
|
{
|
|
383
374
|
label: '选中文字颜色:',
|
|
@@ -387,7 +378,7 @@ export default (datas, gValue, gColor, oldData={})=>{
|
|
|
387
378
|
groupKey: 'style',
|
|
388
379
|
placeholder: '请选择选中文字颜色',
|
|
389
380
|
classNmae: 'input80',
|
|
390
|
-
hidden:
|
|
381
|
+
hidden: false
|
|
391
382
|
},
|
|
392
383
|
|
|
393
384
|
{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<view class="jfb-filter" v-if="showQuery === 'Y'">
|
|
3
|
-
<view class="jfb-filter-placeholder" :style="[placeholderStyleComp]"
|
|
2
|
+
<view class="jfb-filter" v-if="showQuery === 'Y'" :style="[cssStyle]">
|
|
3
|
+
<view class="jfb-filter-placeholder" :style="[placeholderStyleComp]"></view>
|
|
4
4
|
<view class="jfb-filter-menu" :style="[cusMenuStyle,menuStyleTopComp]">
|
|
5
5
|
<template v-if="sortList.length > 0">
|
|
6
6
|
<view
|
|
@@ -251,7 +251,8 @@ export default {
|
|
|
251
251
|
menuStyleTopComp(){
|
|
252
252
|
return {
|
|
253
253
|
zIndex: this.showQueryModal ? 1002 : 1,
|
|
254
|
-
|
|
254
|
+
position:this.$configProject.isPreview?'absolute':'fixed',
|
|
255
|
+
top: this.$configProject.isPreview ? 0 : this.queryMaskComp.top
|
|
255
256
|
}
|
|
256
257
|
},
|
|
257
258
|
queryTopComp(){
|
|
@@ -271,7 +272,7 @@ export default {
|
|
|
271
272
|
otherMenuComp(){
|
|
272
273
|
let height = 48; //菜单高度
|
|
273
274
|
let maxHeight = this.$root.layoutInfo['bodyMinHeightRpx'] - (300 + height + this.topHeight) ;
|
|
274
|
-
if(this.$configProject.isPreview) maxHeight =
|
|
275
|
+
if(this.$configProject.isPreview) maxHeight = 600;
|
|
275
276
|
return {
|
|
276
277
|
backgroundColor: this.cusPopStyle['filterListColor'] || '#f8f8f8',
|
|
277
278
|
maxHeight: maxHeight + 'rpx',
|
|
@@ -335,6 +336,20 @@ export default {
|
|
|
335
336
|
}
|
|
336
337
|
}
|
|
337
338
|
return params
|
|
339
|
+
},
|
|
340
|
+
cssStyle(){
|
|
341
|
+
let filterListColor = this.cusPopStyle['filterListColor'] || '#f8f8f8';
|
|
342
|
+
if(Color(filterListColor).isDark()) filterListColor = Color(filterListColor).lighten(0.8).toString();
|
|
343
|
+
else if(Color(filterListColor).isLight()) filterListColor = Color(filterListColor).darken(0.03).toString();
|
|
344
|
+
|
|
345
|
+
let menuListColor = this.cusPopStyle['backgroundColor'] || '#fff';
|
|
346
|
+
if(Color(menuListColor).isDark()) menuListColor = Color(menuListColor).lighten(0.8).toString();
|
|
347
|
+
else if(Color(menuListColor).isLight()) menuListColor = Color(menuListColor).darken(0.03).toString();
|
|
348
|
+
|
|
349
|
+
return {
|
|
350
|
+
'--com-pop-border': filterListColor,
|
|
351
|
+
'--com-menu-border': menuListColor
|
|
352
|
+
}
|
|
338
353
|
}
|
|
339
354
|
},
|
|
340
355
|
watch:{
|
|
@@ -623,7 +638,6 @@ export default {
|
|
|
623
638
|
this.closeQueryModal();
|
|
624
639
|
},
|
|
625
640
|
switchOtherOpen(tab){
|
|
626
|
-
debugger
|
|
627
641
|
this.filterTabs = this.filterTabs.map(item => {
|
|
628
642
|
if(JSON.stringify(tab.value) === JSON.stringify(item.value)) item['open'] = !item['open'];
|
|
629
643
|
return item;
|
|
@@ -749,6 +763,7 @@ export default {
|
|
|
749
763
|
|
|
750
764
|
<style scoped lang="less">
|
|
751
765
|
.jfb-filter {
|
|
766
|
+
position: relative;
|
|
752
767
|
&-placeholder {
|
|
753
768
|
font-size: 20rpx;
|
|
754
769
|
}
|
|
@@ -758,8 +773,7 @@ export default {
|
|
|
758
773
|
left: 0;
|
|
759
774
|
right: 0;
|
|
760
775
|
z-index: 100;
|
|
761
|
-
border-top: 1px solid
|
|
762
|
-
width: 100%;
|
|
776
|
+
border-top: 1px solid var(--com-menu-border);
|
|
763
777
|
display: flex;
|
|
764
778
|
justify-content: space-around;
|
|
765
779
|
height: 48rpx;
|
|
@@ -831,7 +845,7 @@ export default {
|
|
|
831
845
|
.xd-query-sort{
|
|
832
846
|
&-item {
|
|
833
847
|
height: 80rpx;
|
|
834
|
-
border-bottom: 1rpx solid
|
|
848
|
+
border-bottom: 1rpx solid var(--com-pop-border);
|
|
835
849
|
line-height: 80rpx;
|
|
836
850
|
padding-left: 80rpx;
|
|
837
851
|
color: #999;
|
|
@@ -416,15 +416,22 @@
|
|
|
416
416
|
allIcon(){
|
|
417
417
|
this.handleAllChange()
|
|
418
418
|
},
|
|
419
|
+
|
|
419
420
|
allName(){
|
|
420
421
|
this.handleAllChange()
|
|
421
422
|
},
|
|
423
|
+
|
|
422
424
|
showCategory(val){
|
|
423
425
|
if(this.$configProject.isPreview) {
|
|
424
426
|
if(val === 'Y') this.getCategoryList();
|
|
425
427
|
else this.navList = [];
|
|
426
428
|
}
|
|
429
|
+
},
|
|
427
430
|
|
|
431
|
+
parentId(){
|
|
432
|
+
if(this.$configProject.isPreview) {
|
|
433
|
+
this.getCategoryList();
|
|
434
|
+
}
|
|
428
435
|
},
|
|
429
436
|
|
|
430
437
|
need_show_tags(value,oldValue) {
|
|
@@ -440,7 +447,7 @@
|
|
|
440
447
|
},
|
|
441
448
|
onLoadStatus(){
|
|
442
449
|
if(this.initStatus && this.onLoadStatus) this.handleInit();
|
|
443
|
-
}
|
|
450
|
+
},
|
|
444
451
|
|
|
445
452
|
},
|
|
446
453
|
created() {
|
|
@@ -554,6 +561,13 @@
|
|
|
554
561
|
//基础
|
|
555
562
|
this.sort = gCPVal(container, "sort", "default");
|
|
556
563
|
this.version = gCPVal(container, 'version', '');
|
|
564
|
+
let categoryParentType = gCPVal(container, 'categoryParentType', 'root');
|
|
565
|
+
if(categoryParentType === 'root') this.parentId = 0;
|
|
566
|
+
else {
|
|
567
|
+
let categoryParent = gCPVal(container, 'categoryParent', '');
|
|
568
|
+
if(!categoryParent) this.parentId = 0;
|
|
569
|
+
else this.parentId = categoryParent;
|
|
570
|
+
}
|
|
557
571
|
this.xnamespace = gCPVal(container, 'xnamespace', this.projectAttr.business_code||this.xnamespace);
|
|
558
572
|
this.listPadding = gCPVal(container,'listPadding', [{top:16, left:16, right:16,bottom:16},20], {sKey:'listPaddingStatus',fields:['listPadding'],isPMR: true});
|
|
559
573
|
this.contentColor = gCPVal(container,'contentColor', ['#f8f8f8','#fafafa'], {sKey:'contentColorStatus',fields:['contentColor']});
|
|
@@ -593,7 +607,7 @@
|
|
|
593
607
|
|
|
594
608
|
//==过滤区域============
|
|
595
609
|
let categoryLayout = gCPVal(container, "categoryLayout", "v1");
|
|
596
|
-
let category =
|
|
610
|
+
let category = gCPVal(container, 'category',categoryLayout);
|
|
597
611
|
|
|
598
612
|
//是否显示过滤菜单
|
|
599
613
|
let showQuery = gCPVal(container, "showQuery", 'Y');
|
|
@@ -604,7 +618,7 @@
|
|
|
604
618
|
else this.isFilterMenuForFilterFields = [];
|
|
605
619
|
//是否显示品牌菜单
|
|
606
620
|
let showBrandFilter = gCPVal(container, "showBrandFilter", "in");
|
|
607
|
-
|
|
621
|
+
let filterModeSort = ['common','price','host','brand','delivery_method','filter'];
|
|
608
622
|
//菜单设置
|
|
609
623
|
let filterMode = [];
|
|
610
624
|
if(showQuery === 'Y') {
|
|
@@ -616,6 +630,8 @@
|
|
|
616
630
|
if(showBrandFilter === 'out') filterMode.push('brand');
|
|
617
631
|
filterMode.push('filter');
|
|
618
632
|
}
|
|
633
|
+
//已经设置
|
|
634
|
+
else filterMode = this.$xdUniHelper.cloneDeep(filterModeArr);
|
|
619
635
|
|
|
620
636
|
//设置条件
|
|
621
637
|
if(filterMode.length <= 4 && filterMode.length >=2) {
|
|
@@ -786,6 +802,8 @@
|
|
|
786
802
|
const subTitleIconBorder = gCPVal(container, 'subTitleIconBorder', [{style:'solid', width: '2', color: this.mainColor},'0'], {isBorder:true});
|
|
787
803
|
let navStyle = gCPVal(container, 'navStyle', 'line-6-8-s');
|
|
788
804
|
if(navStyle.indexOf('line-') === 0) navStyle = 'line-6-8-s';
|
|
805
|
+
const iconWdith = gCPVal(container, 'iconWdith', [100],{sKey:'iconWdithStatus', fields:['iconWdith']});
|
|
806
|
+
const iconBgColor = gCPVal(container, 'iconBgColor', [100],{sKey:'iconBgColorStatus', fields:['iconBgColor']});
|
|
789
807
|
|
|
790
808
|
this.tabStyle = {
|
|
791
809
|
titleColor,
|
|
@@ -797,6 +815,8 @@
|
|
|
797
815
|
titleActFontWeight,
|
|
798
816
|
subTitleIconShadow,
|
|
799
817
|
subTitleIconBorder,
|
|
818
|
+
iconWdith,
|
|
819
|
+
iconBgColor,
|
|
800
820
|
titleBgColor,
|
|
801
821
|
titleActBgColor,
|
|
802
822
|
level2Name,
|
|
@@ -5,6 +5,8 @@ module.exports = {
|
|
|
5
5
|
items: [
|
|
6
6
|
{
|
|
7
7
|
title: '配送方式',
|
|
8
|
+
value:'delivery_method',
|
|
9
|
+
multiple: false,
|
|
8
10
|
options: [
|
|
9
11
|
{
|
|
10
12
|
label: '同城配送',
|
|
@@ -25,6 +27,8 @@ module.exports = {
|
|
|
25
27
|
},
|
|
26
28
|
{
|
|
27
29
|
title: "品牌",
|
|
30
|
+
value:'brand',
|
|
31
|
+
multiple: true,
|
|
28
32
|
options: [
|
|
29
33
|
{"label":"美克斯","value":"100787","icon":"//img.jufubao.cn\/uploads\/20240311\/ef2f44e422d73d9b09746cfe0b2c312d.jpg?x-oss-process=style/size4"},
|
|
30
34
|
{"label":"DOCTOR LI","value":"100535","icon":"//img.jufubao.cn\/uploads\/20240102\/924d9c1b4a06d8a47dfe53a6a6b529b6.png?x-oss-process=style/size4"},
|
|
@@ -65,6 +69,8 @@ module.exports = {
|
|
|
65
69
|
},
|
|
66
70
|
{
|
|
67
71
|
title: "尺寸",
|
|
72
|
+
value:'attr',
|
|
73
|
+
multiple: false,
|
|
68
74
|
options: [
|
|
69
75
|
{ label: "≤4英寸", value: "size-1" },
|
|
70
76
|
{ label: "6英寸", value: "size-2" },
|
|
@@ -75,6 +81,8 @@ module.exports = {
|
|
|
75
81
|
},
|
|
76
82
|
{
|
|
77
83
|
title: "适用场景",
|
|
84
|
+
value:'attr',
|
|
85
|
+
multiple: true,
|
|
78
86
|
options: [
|
|
79
87
|
{ label: "生日", value: "scene-1" },
|
|
80
88
|
{ label: "下午茶", value: "scene-2" },
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<view v-if="!isFixed" class="category_wrap-mask" :style="[categoryWarperMaskComp]" ></view>
|
|
4
4
|
<view
|
|
5
5
|
class="category_wraper"
|
|
6
|
-
:style="
|
|
6
|
+
:style="[categoryWaperComp]"
|
|
7
7
|
>
|
|
8
8
|
<view v-if="showParent && isShowCategory" >
|
|
9
9
|
<view class="tab_wrap" :style="[{backgroundColor:titleBgcColor}]">
|
|
@@ -40,20 +40,22 @@
|
|
|
40
40
|
:key="sub_category_list"
|
|
41
41
|
class="sub_category_list"
|
|
42
42
|
>
|
|
43
|
-
|
|
44
43
|
<view v-for="(sub,i) in imageIconList" :key="sub.category_id" class="sub_cate icon">
|
|
45
44
|
<view
|
|
46
45
|
:id="'cate-scroll__index-'+i"
|
|
47
46
|
@click="handleCateClick(sub, 1)"
|
|
48
47
|
>
|
|
49
|
-
<view
|
|
50
|
-
|
|
48
|
+
<view
|
|
49
|
+
:style="[sub.category_id === (['child','parentNew'].includes(showType)? uiPid:uiCateId )?subActTitleIcon:subTitleIcon,subTitleInIcon]"
|
|
50
|
+
class="sub_icon"
|
|
51
|
+
>
|
|
52
|
+
<view>
|
|
51
53
|
<image :src="sub.category_icon" style="width:100%;height:100%"/>
|
|
52
54
|
</view>
|
|
53
55
|
</view>
|
|
54
56
|
<view
|
|
55
57
|
class="sub_name"
|
|
56
|
-
:style="[sub.category_id === (['child','parentNew'].includes(showType)? uiPid:
|
|
58
|
+
:style="[sub.category_id === (['child','parentNew'].includes(showType)? uiPid:uiCateId )?level2ActNameComp:level2NameComp]"
|
|
57
59
|
>{{sub.category_name}}</view>
|
|
58
60
|
</view>
|
|
59
61
|
</view>
|
|
@@ -89,6 +91,7 @@
|
|
|
89
91
|
import CusTab from "@/components/CusTab/CusTab.vue"
|
|
90
92
|
import getServiceUrl from "@/common/getServiceUrl";
|
|
91
93
|
import cateMixins from "./cateMixins";
|
|
94
|
+
import Color from "color";
|
|
92
95
|
export default {
|
|
93
96
|
components: {
|
|
94
97
|
CusTab
|
|
@@ -250,7 +253,12 @@ export default {
|
|
|
250
253
|
return {height: height + 'rpx'}
|
|
251
254
|
},
|
|
252
255
|
subTitleInIcon(){
|
|
253
|
-
|
|
256
|
+
let {iconWdith, iconBgColor} = this.tabStyle
|
|
257
|
+
return {
|
|
258
|
+
width: iconWdith + 'rpx',
|
|
259
|
+
height: iconWdith + 'rpx',
|
|
260
|
+
backgroundColor: iconBgColor
|
|
261
|
+
}
|
|
254
262
|
},
|
|
255
263
|
//是否展示父级分类
|
|
256
264
|
showParent(){
|
|
@@ -262,9 +270,14 @@ export default {
|
|
|
262
270
|
backgroundColor: this.level2BgcColor,
|
|
263
271
|
color: this.level2Color,
|
|
264
272
|
}
|
|
273
|
+
|
|
274
|
+
let level2BgcColor = this.level2BgcColor || '#fff';
|
|
275
|
+
if(Color(level2BgcColor).isDark()) level2BgcColor = Color(level2BgcColor).lighten(0.8).toString();
|
|
276
|
+
else if(Color(level2BgcColor).isLight()) level2BgcColor = Color(level2BgcColor).darken(0.03).toString();
|
|
277
|
+
|
|
265
278
|
if(this.showParent && this.isShowCategory){
|
|
266
279
|
temp = Object.assign({},temp, {
|
|
267
|
-
borderTop
|
|
280
|
+
borderTop:`2rpx solid ${level2BgcColor}`,
|
|
268
281
|
boxSizing: 'border-box'
|
|
269
282
|
})
|
|
270
283
|
}
|
|
@@ -288,6 +301,12 @@ export default {
|
|
|
288
301
|
backgroundColor: this.tabStyle.titleActBgColor,
|
|
289
302
|
}
|
|
290
303
|
},
|
|
304
|
+
categoryWaperComp(){
|
|
305
|
+
return {
|
|
306
|
+
position:this.$configProject.isPreview?'absolute':'fixed',
|
|
307
|
+
top: this.$configProject.isPreview ? 0 : (this.layoutInfo.top + 'rpx')
|
|
308
|
+
}
|
|
309
|
+
}
|
|
291
310
|
},
|
|
292
311
|
created(){
|
|
293
312
|
this.isPreview = this.$configProject.isPreview;
|
|
@@ -397,6 +416,7 @@ export default {
|
|
|
397
416
|
* @param type 1=>图文 2=>文字
|
|
398
417
|
*/
|
|
399
418
|
handleCateClick(sub , type = 1){
|
|
419
|
+
debugger
|
|
400
420
|
//当前布局为v1时候
|
|
401
421
|
if(this.showType === 'all') this.clickClidItem(sub);
|
|
402
422
|
|
|
@@ -498,6 +518,9 @@ export default {
|
|
|
498
518
|
margin: 0 auto;
|
|
499
519
|
overflow: hidden;
|
|
500
520
|
box-sizing: border-box;
|
|
521
|
+
display: flex;
|
|
522
|
+
justify-content: center;
|
|
523
|
+
align-items: center;
|
|
501
524
|
& > view {
|
|
502
525
|
background-color: #fff;
|
|
503
526
|
width: calc(100% - var(--sub-icon-border)*2);
|
|
@@ -172,9 +172,14 @@ export default {
|
|
|
172
172
|
};
|
|
173
173
|
},
|
|
174
174
|
chosePanelFixedTop(){
|
|
175
|
+
let level2BgcColor = '#fff';
|
|
176
|
+
if(Color(level2BgcColor).isDark()) level2BgcColor = Color(level2BgcColor).lighten(0.8).toString();
|
|
177
|
+
else if(Color(level2BgcColor).isLight()) level2BgcColor = Color(level2BgcColor).darken(0.03).toString();
|
|
178
|
+
|
|
175
179
|
return {
|
|
176
180
|
top: this.$configProject.isPreview?'108rpx':(parseInt(this.cateBarStyleComp.top) + 108) + 'rpx',
|
|
177
181
|
position: this.$configProject.isPreview?'absolute':'fixed',
|
|
182
|
+
borderTop: `2rpx solid ${level2BgcColor}`
|
|
178
183
|
}
|
|
179
184
|
},
|
|
180
185
|
|
|
@@ -55,6 +55,9 @@ export default (data, gValue,gColor,oldData)=>{
|
|
|
55
55
|
isShowDelivery = data['isShowDelivery'];
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
let categoryParentType = dataVal({data, key:'categoryParentType', dValue:'root', gValue});
|
|
59
|
+
|
|
60
|
+
|
|
58
61
|
return[
|
|
59
62
|
{
|
|
60
63
|
ele: 'title',
|
|
@@ -172,6 +175,35 @@ export default (data, gValue,gColor,oldData)=>{
|
|
|
172
175
|
{required: true, message: '请上传全部图标', trigger: ['blur', 'change']},
|
|
173
176
|
],
|
|
174
177
|
},
|
|
178
|
+
{
|
|
179
|
+
label: '父级分类',
|
|
180
|
+
ele: 'xd-radio',
|
|
181
|
+
groupKey: 'content',
|
|
182
|
+
valueKey: 'categoryParentType',
|
|
183
|
+
value: categoryParentType,
|
|
184
|
+
labelInline:true,
|
|
185
|
+
className: 'input100',
|
|
186
|
+
list: [
|
|
187
|
+
{label: '根目录', value: 'root'},
|
|
188
|
+
{label: '自定义', value: 'child'},
|
|
189
|
+
],
|
|
190
|
+
notice:'展示指定父级分类下的子级分类',
|
|
191
|
+
inline: false
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
label: '',
|
|
195
|
+
ele: 'el-input',
|
|
196
|
+
type: 'number',
|
|
197
|
+
labelInline: true,
|
|
198
|
+
valueKey: 'categoryParent',
|
|
199
|
+
cusStyle: {
|
|
200
|
+
paddingLeft: '90px'
|
|
201
|
+
},
|
|
202
|
+
value: dataVal({data, key:'categoryParent', dValue:'', gValue}),
|
|
203
|
+
groupKey:'content',
|
|
204
|
+
className: 'input100',
|
|
205
|
+
hidden: categoryParentType === 'root',
|
|
206
|
+
},
|
|
175
207
|
{ele: 'group_end'},
|
|
176
208
|
{
|
|
177
209
|
label: "分类样式",
|
|
@@ -309,6 +341,7 @@ export default (data, gValue,gColor,oldData)=>{
|
|
|
309
341
|
groupKey:'content',
|
|
310
342
|
valueKey: "filterMode",
|
|
311
343
|
value: filterMode,
|
|
344
|
+
isSort: true,
|
|
312
345
|
list:[
|
|
313
346
|
{"label": "综合", "value": 'common'},
|
|
314
347
|
{"label": "销量", "value": 'hot'},
|
|
@@ -103,25 +103,6 @@ export default (data, gValue, gColor, oldData)=>{
|
|
|
103
103
|
{label: '自定义', value: 'C'},
|
|
104
104
|
]
|
|
105
105
|
},
|
|
106
|
-
0&&{
|
|
107
|
-
label: "图标大小",
|
|
108
|
-
groupKey: 'style',
|
|
109
|
-
ele: 'xd-slider',
|
|
110
|
-
valueKey: "iconWdith",
|
|
111
|
-
value: data['iconWdith'] === undefined?128:data['iconWdith'],
|
|
112
|
-
className: "input80",
|
|
113
|
-
labelInline: true,
|
|
114
|
-
setting:{
|
|
115
|
-
min: 64,//最小值
|
|
116
|
-
max: 128, //最小值
|
|
117
|
-
step:1, //步长
|
|
118
|
-
showStops:false,//显示间断点
|
|
119
|
-
showInput:false,//显示输入框
|
|
120
|
-
},
|
|
121
|
-
inline:false,
|
|
122
|
-
notice:'调整分类图标大小'
|
|
123
|
-
},
|
|
124
|
-
|
|
125
106
|
{ele: 'group_start'},
|
|
126
107
|
{
|
|
127
108
|
label: '',
|
|
@@ -160,6 +141,63 @@ export default (data, gValue, gColor, oldData)=>{
|
|
|
160
141
|
},
|
|
161
142
|
},
|
|
162
143
|
{ele: 'group_end'},
|
|
144
|
+
{
|
|
145
|
+
label: '图标大小',
|
|
146
|
+
ele: 'xd-radio',
|
|
147
|
+
groupKey: 'style',
|
|
148
|
+
valueKey: 'iconWdithStatus',
|
|
149
|
+
value: statusDataVal({data, key:'iconWdithStatus', fields:['iconWdith'],gValue}),
|
|
150
|
+
labelInline:true,
|
|
151
|
+
list: [
|
|
152
|
+
{label: '默认', value: 'D'},
|
|
153
|
+
{label: '自定义', value: 'C'},
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
{ele: 'group_start'},
|
|
157
|
+
{
|
|
158
|
+
label: "",
|
|
159
|
+
groupKey: 'style',
|
|
160
|
+
ele: 'xd-slider',
|
|
161
|
+
valueKey: "iconWdith",
|
|
162
|
+
value: dataVal({data, key:'iconWdith', dValue:100, gValue}),
|
|
163
|
+
hidden: !statusShow({data, key: 'iconWdithStatus', fields:['iconWdith'], gValue}),
|
|
164
|
+
className: "input80",
|
|
165
|
+
labelInline: true,
|
|
166
|
+
setting:{
|
|
167
|
+
min: 50,//最小值
|
|
168
|
+
max: 100, //最小值
|
|
169
|
+
step:1, //步长
|
|
170
|
+
showStops:false,//显示间断点
|
|
171
|
+
showInput:false,//显示输入框
|
|
172
|
+
},
|
|
173
|
+
},
|
|
174
|
+
{ele: 'group_end'},
|
|
175
|
+
{
|
|
176
|
+
label: '图标背景',
|
|
177
|
+
ele: 'xd-radio',
|
|
178
|
+
groupKey: 'style',
|
|
179
|
+
valueKey: 'iconBgColorStatus',
|
|
180
|
+
value: statusDataVal({data, key:'iconBgColorStatus', fields:['iconBgColor'],gValue}),
|
|
181
|
+
labelInline:true,
|
|
182
|
+
list: [
|
|
183
|
+
{label: '默认', value: 'D'},
|
|
184
|
+
{label: '自定义', value: 'C'},
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{ele: 'group_start'},
|
|
188
|
+
{
|
|
189
|
+
label: '',
|
|
190
|
+
ele: 'xd-color',
|
|
191
|
+
valueKey: 'iconBgColor',
|
|
192
|
+
groupKey:'style',
|
|
193
|
+
value: dataVal({data, key:'iconBgColor', dValue:'#f8f8f8', gValue}),
|
|
194
|
+
hidden: !statusShow({data, key: 'iconBgColorStatus', fields:['iconBgColor'], gValue}),
|
|
195
|
+
classNmae: 'input80',
|
|
196
|
+
setting: {
|
|
197
|
+
showAlpha: true
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
{ele: 'group_end'},
|
|
163
201
|
|
|
164
202
|
{
|
|
165
203
|
label: '名称样式',
|