jufubao-mall 2.0.8-beta2 → 2.0.8-beta201

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-mall",
3
- "version": "2.0.8-beta2",
3
+ "version": "2.0.8-beta201",
4
4
  "private": false,
5
5
  "description": "聚福宝商城业务组件插件包",
6
6
  "main": "index.js",
@@ -23,6 +23,7 @@
23
23
  :scroll-x="layout==='v1'"
24
24
  :scroll-y="layout==='v2'"
25
25
  :style="{height:layout==='v2'?tabStyleComp.height:'auto'}"
26
+ :class="{'tab-linex':layout==='v1' && hStyle ==='v3'}"
26
27
  >
27
28
  <view
28
29
  class="tab_list"
@@ -244,18 +245,17 @@
244
245
  skeletonStyle(){
245
246
  let margin = 0;
246
247
  if(this.layout === 'v1') {
247
- if(this.hStyle !== 'v1') margin = '0 24rpx 0 0';
248
- else margin = '24rpx 24rpx 0 0';
248
+ margin = '24rpx 24rpx 24rpx 0';
249
249
  }
250
250
  if(this.layout === 'v2') {
251
- margin = '0 24rpx 24rpx'
251
+ margin = '12rpx'
252
252
  }
253
253
  return {
254
254
  "color": "#999",
255
255
  "fontSize": "32rpx",
256
256
  "fontWeight": "400",
257
257
  "height": this.layout === 'v1' ?"60rpx":'90rpx',
258
- "minWidth": '160rpx',
258
+ "minWidth": this.layout === 'v1'?'132rpx':'10rpx',
259
259
  "padding": this.layout === 'v1'?"0 16rpx":0,
260
260
  "marginRight": this.layout === 'v1'?"20rpx":0,
261
261
  "margin": margin,
@@ -273,7 +273,7 @@
273
273
  getItemWH(){
274
274
  let outWdith = 0;
275
275
  if(this.layout === 'v2') {
276
- outWdith += 198;
276
+ outWdith += 172;
277
277
  if(this.titleBorderWidth) outWdith += this.titleBorderWidth * 2;
278
278
  if(this.titleBorderWidth === 0 && this.vStyle === 'v1') outWdith +=2
279
279
  outWdith += this.getPMValue(this.tabPadding, 'RL', 0);
@@ -348,12 +348,12 @@
348
348
  outHeight += this.getPMValue(this.listPadding, 'TB',0);
349
349
  outHeight += this.getPMValue(this.bodyPadding, 'TB',0);
350
350
  outHeight = outHeight * this.$rpxNum
351
- if(['v1', 'v3'].includes(this.vStyle)) {
351
+ if(['v1', 'v2'].includes(this.vStyle)) {
352
352
  style['height'] = `${this.layoutInfo.bodyMinHeightPx - outHeight}px`;
353
353
  }
354
- if(['v2', 'v4'].includes(this.vStyle)) {
355
- style['max-height'] = `${this.layoutInfo.bodyMinHeightPx - outHeight}px`;
356
- }
354
+ // if(['v2', 'v4'].includes(this.vStyle)) {
355
+ // style['max-height'] = `${this.layoutInfo.bodyMinHeightPx - outHeight}px`;
356
+ // }
357
357
  style['overflowY'] = 'auto';
358
358
  style['overflowX'] = 'hidden';
359
359
  }
@@ -367,7 +367,6 @@
367
367
  //上下结构
368
368
  if(this.layout === 'v1') {
369
369
  style['padding'] = this.getMarginAndPadding(this.tabPadding, 0);
370
- if(['v2', 'v3', 'v4'].includes(this.hStyle)) style['height'] = '110rpx';
371
370
  if(!this.isPreview) {
372
371
  style['position'] = 'fixed';
373
372
  style['zIndex'] = '10';
@@ -378,21 +377,17 @@
378
377
 
379
378
  //左右结构
380
379
  if(this.layout === 'v2') {
381
- style['width'] = '198rpx';
380
+ style['width'] = '172rpx';
382
381
  style['flexShrink'] = 0;
383
382
  style['overflow'] = 'hidden';
384
383
  style['padding'] = this.getMarginAndPadding(this.tabPadding, 0);
385
384
 
386
- if(['v1', 'v2', 'v3'].includes(this.vStyle)) {
385
+ if(['v1', 'v2'].includes(this.vStyle)) {
387
386
  let tb = this.getPMValue(this.bodyPadding, 'TB', 0) * this.$rpxNum + this.titleBorderWidth * 2 *this.$rpxNum;
388
387
  tb += this.getPMValue(this.tabPadding, 'TB', 0) * this.$rpxNum
389
388
  style['height'] = `calc(${ this.layoutInfo.bodyMinHeightPx}px - ${tb}px)`;
390
389
  style['borderRadius'] = `0 ${this.titleRadius}rpx ${this.titleRadius}rpx 0`;
391
390
  }
392
- if(['v4'].includes(this.vStyle)){
393
- style['borderRadius'] = `${this.titleRadius}rpx`;
394
- style['height'] = `auto`;
395
- }
396
391
  }
397
392
  return style;
398
393
  },
@@ -405,28 +400,6 @@
405
400
  ...this.getTabHeight,
406
401
  };
407
402
  },
408
- getTabItemHeight(){
409
- if(this.layout === 'v1'){
410
- return {
411
- height: ['v2', 'v3','v4'].includes(this.hStyle)?'110rpx':'60rpx',
412
- lineHeight: ['v2', 'v3','v4'].includes(this.hStyle)?'110rpx':'60rpx',
413
- marginRight: this.titleSp + 'rpx',
414
- minWidth: ['v2', 'v3','v4'].includes(this.hStyle)?'198rpx':'170rpx',
415
- padding: ['v2', 'v3','v4'].includes(this.hStyle)?'0':'0 16rpx',
416
- }
417
- }
418
-
419
- if(this.layout === 'v2'){
420
- return {
421
- height: '100rpx',
422
- lineHeight: '100rpx',
423
- borderRadius:'0',
424
- fontSize:'24rpx',
425
- marginBottom: this.titlePadding + 'rpx'
426
- }
427
- }
428
-
429
- },
430
403
  tabItemStyleComp(){
431
404
  let style = {
432
405
  color: this.titleStyle.color,
@@ -445,6 +418,27 @@
445
418
  }
446
419
  return style
447
420
  },
421
+ getTabItemHeight(){
422
+ if(this.layout === 'v1'){
423
+ return {
424
+ height:['v1'].includes(this.hStyle) ?'60rpx' : '108rpx',
425
+ lineHeight: ['v1'].includes(this.hStyle) ?'60rpx' : '108rpx',
426
+ marginRight: this.titleSp + 'rpx',
427
+ }
428
+ }
429
+
430
+ if(this.layout === 'v2'){
431
+ return {
432
+ height: '100rpx',
433
+ lineHeight: '100rpx',
434
+ borderRadius:'0',
435
+ fontSize:'24rpx',
436
+ marginBottom: this.titlePadding + 'rpx'
437
+ }
438
+ }
439
+
440
+ },
441
+
448
442
  tabActItemStyleComp(){
449
443
  let style = {
450
444
  color: this.titleStyle.actColor,
@@ -473,9 +467,9 @@
473
467
  if(this.layout === 'v2') return {}
474
468
  return {
475
469
  borderRadius:['v1'].includes(this.hStyle)?'60rpx': 0,
476
- backgroundColor: ['v1'].includes(this.hStyle)?this.titleStyle.bgColor:'',
470
+ backgroundColor: ['v1'].includes(this.hStyle) ? this.titleStyle.bgColor:'',
477
471
  color: this.titleStyle.color,
478
- padding: ['v1'].includes(this.hStyle)?'0 20rpx': 0,
472
+ padding:'0 32rpx',
479
473
  fontSize: this.titleStyle.fontSize + 'rpx',
480
474
  fontWeight: this.titleStyle.fontWeight,
481
475
  }
@@ -495,7 +489,7 @@
495
489
  borderRadius:['v1'].includes(this.hStyle)?'60rpx': 0,
496
490
  backgroundColor: bgColor,
497
491
  backgroundImage: bgImage,
498
- padding: ['v1'].includes(this.hStyle)?'0 20rpx': 0,
492
+ padding: '0 32rpx',
499
493
  color: this.titleStyle.actColor,
500
494
  fontSize: this.titleStyle.actFontSize + 'rpx',
501
495
  fontWeight: this.titleStyle.actFontWeight,
@@ -526,8 +520,6 @@
526
520
  onJfbLoad(options) {
527
521
  //设置业务请求代码
528
522
  this.setNameSpace(options);
529
- console.log(this.showTabs);
530
-
531
523
  this.getList();
532
524
  },
533
525
  /**
@@ -540,8 +532,14 @@
540
532
  this.category_ids = gCPVal(container, 'category_ids', []);
541
533
  this.brandNumber = gCPVal(container, 'brandNumber', 300);
542
534
  this.layout = gCPVal(container, 'layout', 'v1');
543
- this.vStyle = gCPVal(container, 'vStyle', 'v2');
544
- this.hStyle = gCPVal(container, 'hStyle', 'v1');
535
+ let vStyle = gCPVal(container, 'vStyle', 'v1'); //左右接口布局
536
+ if(['v3', 'v4'].includes(vStyle)) vStyle = 'v1';
537
+ this.vStyle = vStyle;
538
+
539
+ let hStyle = gCPVal(container, 'hStyle', 'v1'); //上下接口布局
540
+ if(['v2'].includes(hStyle)) hStyle = 'v1';
541
+ this.hStyle = hStyle;
542
+
545
543
 
546
544
  if( this.layout === 'v1') {
547
545
  this.contentCell = gCPVal(container, 'contentCell', 4);
@@ -584,14 +582,12 @@
584
582
  this.newLabel = gCPVal(container, 'tabContent', [newLabel.length > 0 ? newLabel: defNewLabel]);
585
583
 
586
584
 
587
-
588
-
589
585
  //常规
590
586
  let defBodyPadding= 0;
591
587
  if(this.layout === 'v2') {
592
588
  if(['v1','v2'].includes(this.vStyle)) defBodyPadding = 0;
593
- if(['v3'].includes(this.vStyle)) defBodyPadding = {top:32,left:0, right:32, bottom:0};
594
- if(['v4'].includes(this.vStyle)) defBodyPadding = {top:32,left:32, right:32, bottom:0};
589
+ if(['v3'].includes(this.vStyle)) defBodyPadding = {top:24,left:0, right:24, bottom:0};
590
+ if(['v4'].includes(this.vStyle)) defBodyPadding = {top:24,left:24, right:24, bottom:0};
595
591
  }
596
592
  this.bodyPadding = gCPVal(container, 'bodyPadding', [defBodyPadding,0], {sKey: 'bodyPaddingStatus', fields: ['bodyPadding'], isPMR: true});
597
593
  let defContentBoxBgc = '#fff';
@@ -606,43 +602,50 @@
606
602
  //内容区域
607
603
  let defContBgColor = '';
608
604
  if(this.layout === 'v2'){
609
- if(['v2','v3', 'v4'].includes(this.vStyle))defContentBoxBgc = '#fff'
605
+ if(['v2','v3', 'v4'].includes(this.vStyle)) defContBgColor = '#fff'
610
606
  }
611
607
  if(this.layout === 'v1') defContBgColor = '#f8f8f8';
612
608
  this.contBgColor = gCPVal(container, 'contBgColor', [defContBgColor,'rgba(0,0,0,0)'], {sKey: 'contBgColorStatus', fields: ['contBgColor']});
613
- let defListPadding = {top:32,left:32, right:32, bottom:32};
609
+ let defListPadding = {top:48,left:48, right:48, bottom:48};
610
+
611
+ if(this.layout === 'v2'){
612
+ if(['v2'].includes(this.vStyle)) defListPadding = {top:40,left:40, right:40, bottom:40};
613
+ }
614
614
  if(this.layout === 'v1'){
615
615
  if(this.contentCell === 3) defListPadding = {top:48,left:48, right:48, bottom:48};
616
- else defListPadding = {top:24,left:24, right:24, bottom:24};
616
+ else defListPadding = {top:40,left:40, right:40, bottom:40};
617
617
  }
618
618
 
619
619
  this.listPadding = gCPVal(container, 'listPadding', [defListPadding,24], {sKey: 'listPaddingStatus', fields: ['listPadding'], isPMR: true});
620
620
  let defListMargin= 0;
621
621
  if(this.layout === 'v2'){
622
- if(['v3', 'v4'].includes(this.vStyle)) defListMargin = {top:0,left:32, right:0, bottom:0}
623
- if(['v2'].includes(this.vStyle)) defListMargin = {top:32,left:32, right:32, bottom:0}
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
624
  }
625
625
  this.listMargin = gCPVal(container, 'listMargin', [defListMargin,0], {sKey: 'listMarginStatus', fields: ['listMargin'], isPMR: true});
626
626
  this.contRadius = gCPVal(container, 'contRadius', [this.gStyleValue.radius,0],{sKey: 'contRadiusStatus', fields: ['contRadius']})||0;
627
627
 
628
628
 
629
629
  //选项卡
630
+ let defTitleBgc = '#fff';
630
631
  let defTabPadding = 0;
631
632
  let oldTabPadding = 0;
632
633
  if(this.layout === 'v2') {
633
- if(['v3', 'v4'].includes(this.vStyle)) defTabPadding = 0;
634
- if(['v2'].includes(this.vStyle)) defTabPadding = {top:40,left:0, right:0, bottom:0};
635
- if(['v1'].includes(this.vStyle)) defTabPadding = {top:20,left:0, right:0, bottom:0};
634
+ if(['v2', 'v1'].includes(this.vStyle)) defTabPadding = {top:0,left:0, right:0, bottom:0};
635
+ if(['v1'].includes(this.vStyle)) defTitleBgc = '#f8f8f8';
636
636
  }
637
637
  if(this.layout === 'v1') {
638
- if(['v4'].includes(this.hStyle)) defTabPadding = {top:0,left:32, right:32, bottom:0};
639
- if(['v1'].includes(this.hStyle)){
640
- defTabPadding = {top:24,left:32, right:32, bottom:24};
641
- oldTabPadding = {top:24,left:32, right:32, bottom:24};
638
+ defTabPadding = {top:0,left:32, right:0, bottom:0};
639
+ oldTabPadding = {top:0,left:32, right:0, bottom:0};
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};
642
644
  }
645
+
643
646
  }
644
647
  this.tabPadding = gCPVal(container, 'tabPadding', [defTabPadding,oldTabPadding], {sKey: 'tabPaddingStatus', fields: ['tabPadding'], isPMR: true});
645
- this.titleBgc = gCPVal(container, 'titleBgc', ['#fff','#fff'],{sKey: 'titleBgcStatus', fields: ['titleBgc']});
648
+ this.titleBgc = gCPVal(container, 'titleBgc', [defTitleBgc,'#fff'],{sKey: 'titleBgcStatus', fields: ['titleBgc']});
646
649
  let titleColor = gCPVal(container, 'titleColor', '');
647
650
  let titleActColor = gCPVal(container, 'titleActColor', '');
648
651
  let titleBgcColor = gCPVal(container, 'titleBgcColor', '');
@@ -670,20 +673,22 @@
670
673
  this.titleShadow = gCPVal(container, 'titleShadow', [this.gStyleValue.shadow,'none'], {isShadow:true, bsOld:['isTitleShadow','isTitleShadowBgcW','isTitleShadowBgc']});
671
674
  this.titleBorder = gCPVal(container, 'titleBorder', [{color: '#eee', width: '0', style: 'solid'},{color: '#eee', width: '0', style: 'solid'}], {isBorder:true, bsOld:['isTitleBorder','isTitleBorderW','isTitleBorderColor']});
672
675
  this.titleBorderWidth = gCPVal(container, 'titleBorder', [{color: '#eee', width: '0', style: 'solid'},{color: '#eee', width: '0', style: 'solid'}], {isBorder:true,isBsWidth: true, bsOld:['isTitleBorder','isTitleBorderW','isTitleBorderColor']});
676
+
673
677
  let defTitleRadius = null;
674
678
  if(this.layout === 'v2'){
675
- if(['v3','v4'].includes(this.vStyle)) defTitleRadius = '20';
679
+ if(['v1','v2'].includes(this.vStyle)) defTitleRadius = '0';
676
680
  }
677
681
  this.titleRadius = gCPVal(container, 'titleRadius', [defTitleRadius,this.gStyleValue.radius,'0'],{sKey: 'titleRadiusStatus', fields: ['titleRadius']})||0;
678
682
  this.titlePadding = gCPVal(container, 'titlePadding', '0',{sKey: 'titlePaddingStatus', fields: ['titlePadding']});
679
- this.titleSp = gCPVal(container, 'titleSp', '0',{sKey: 'titleSpStatus', fields: ['titleSp']});
683
+ this.titleSp = gCPVal(container, 'titleSp', [48, 0],{sKey: 'titleSpStatus', fields: ['titleSp']});
680
684
 
681
685
  //内容
682
686
  this.contentBgc = gCPVal(container, 'contentBgc', '#fff',{sKey: 'contentBgcStatus', fields: ['contentBgc']} );
683
687
  let contentPadding = gCPVal(container, 'contentPadding',''), bindSize = 68;
684
688
  if(this.layout === 'v1' && this.contentCell === 3) bindSize = 28;
689
+ if(this.layout === 'v1' && this.contentCell === 5) bindSize = 60;
685
690
  if(contentPadding) bindSize = 100 - Number(contentPadding);
686
- this.bindSize = 100 - Number(gCPVal(container, 'bindSize', [68,bindSize],{sKey: 'bindSizeStatus', fields: ['bindSize']}));
691
+ this.bindSize = 100 - Number(gCPVal(container, 'bindSize', [bindSize,68],{sKey: 'bindSizeStatus', fields: ['bindSize']}));
687
692
  this.radius = gCPVal(container, 'radius', [this.gStyleValue.radius,0],{sKey: 'radiusStatus', fields: ['radius']})||0;
688
693
  this.brandShadow = gCPVal(container, 'brandShadow', [this.gStyleValue.shadow,'none'], {isShadow:true, bsOld:['isContShadow','isContShadowBgcW','isContShadowBgc']});
689
694
  this.brandBorder = gCPVal(container, 'brandBorder', [{color: '#f8f8f8', width: '2', style: 'solid'},{color: '#eee', width: '0', style: 'solid'}], {isBorder:true, bsOld:['isContBorder','isContBorderW','isContBorderColor']});
@@ -729,16 +734,16 @@
729
734
  },
730
735
  getList(){
731
736
  this.$xdShowLoading({});
732
- jfbRootExec("getNewBrandWallList", {
733
- vm: this,
734
- data: {
735
- znamespace: this.xnamespace,
736
- city_code: this.isCityFilter === "Y" ? this.stateCity.city_code : "",
737
- page_size: this.brandNumber,
738
- tab: this.showTabs[this.tabIndex].value,
739
- category_ids: []//this.category_ids.join(","),
740
- }
741
- }).then(res => {
737
+ let params = {
738
+ page_size: this.brandNumber,
739
+ tab: this.showTabs[this.tabIndex].value,
740
+ }
741
+ if(this.xnamespace) params['znamespace'] = this.xnamespace;
742
+ if(this.isCityFilter === "Y") params['city_code'] = this.stateCity.city_code;
743
+ else params['city_code'] = '';
744
+ if(this.category_ids && this.category_ids.length > 0) params['category_ids'] = this.category_ids.join(",");
745
+ jfbRootExec("getNewBrandWallList", {vm: this,data: params}).then(res => {
746
+ this.$xdHideLoading();
742
747
 
743
748
  let brandList = res.items.map(item => {
744
749
  item['brand_icon'] = item.brand_icon ? getServiceUrl(item.brand_icon, "size2") : "";
@@ -761,9 +766,6 @@
761
766
  this.has_sell = res.has_sell;
762
767
  }
763
768
  this.loaded = true;
764
- this.$xdHideLoading();
765
-
766
-
767
769
 
768
770
  this.$nextTick(()=>{
769
771
  this.compTabHeight()
@@ -829,13 +831,17 @@
829
831
  justify-content: flex-start;
830
832
  align-items: center;
831
833
  flex-flow: nowrap;
834
+ position: relative;
832
835
  & > view {
833
836
  text-align: center;
834
837
  &.lineCom {
838
+ position: absolute;
839
+ left:0;
840
+ top:50%;
841
+ transform: translateY(-50%);
835
842
  width: 6rpx;
836
- height: 43rpx;
843
+ height: 46rpx;
837
844
  border-radius: 4rpx;
838
- flex-shrink: 0;
839
845
  }
840
846
  &:last-child {
841
847
  flex: 1;
@@ -847,15 +853,12 @@
847
853
  & > view {
848
854
  &.lineCom {
849
855
  position: absolute;
850
- left:32rpx;
851
- bottom: 0;
852
- right:32rpx;
856
+ left: 50%;
857
+ width: 64rpx;
858
+ transform: translateX(-50%);
859
+ bottom: 16rpx;
853
860
  height: 6rpx;
854
861
  border-radius: 4rpx;
855
- &.lineSmall {
856
- right:70rpx;
857
- left:70rpx;
858
- }
859
862
  }
860
863
  }
861
864
 
@@ -4,8 +4,8 @@ import {dataVal, statusDataVal, statusShow,cRaBorShadow} from "@/utils/AttrTools
4
4
 
5
5
  export default (data, gValue, gColor, oldData)=>{
6
6
  //分类设置
7
- let defBrandBorder = cRaBorShadow( data, 'brandBorder', {old:['isContBorder','isContBorderW','isContShadowBgc','solid']},gValue);
8
- let defBrandShadow = cRaBorShadow( data, 'brandShadow', {old:['isContShadow','isContShadowBgcW','isContBorderColor']},gValue);
7
+ let defBrandBorder = cRaBorShadow( data, 'brandBorder', {old:['isContBorder','isContBorderW','isContBorderColor','solid']},gValue);
8
+ let defBrandShadow = cRaBorShadow( data, 'brandShadow', {old:['isContShadow','isContShadowBgcW','isContShadowBgc']},gValue);
9
9
 
10
10
  //品牌大小
11
11
  let bindSize = 100;
@@ -4,6 +4,7 @@ import {
4
4
  dataVal,
5
5
  clone
6
6
  } from "@/utils/AttrTools";
7
+ import {gCPVal} from "@/utils/xd.base";
7
8
 
8
9
  export default (data, gValue, gColor, oldData={})=>{
9
10
  //老数据
@@ -30,6 +31,17 @@ export default (data, gValue, gColor, oldData={})=>{
30
31
  }
31
32
  if(data['tabContent'] !== undefined) tabContent = data['tabContent'];
32
33
 
34
+ //左右结构布局
35
+ let vStyle = data['vStyle'] || 'v1';
36
+ if(['v3', 'v4'].includes(data['vStyle'])) vStyle = 'v1';
37
+
38
+
39
+ //上下结构布局
40
+ let hStyle = data['hStyle'] || 'v1';
41
+ if(['v2'].includes(data['hStyle'])) hStyle = 'v1';
42
+
43
+
44
+
33
45
  return [
34
46
  {
35
47
  ele: 'title',
@@ -147,7 +159,7 @@ export default (data, gValue, gColor, oldData={})=>{
147
159
  groupKey: 'content',
148
160
  valueKey: "vStyle",
149
161
  cusStyle:{marginLeft: '82px' },
150
- value: dataVal({data, key:'vStyle', dValue:'v1', gValue}),
162
+ value: vStyle,
151
163
  hidden: !['v2'].includes(dataVal({data, key:'layout', dValue:'v1', gValue})),
152
164
  labelInline:true,
153
165
  key: Date.now(),
@@ -172,7 +184,7 @@ export default (data, gValue, gColor, oldData={})=>{
172
184
  groupKey: 'content',
173
185
  valueKey: "hStyle",
174
186
  cusStyle:{marginLeft: '82px' },
175
- value: dataVal({data, key:'hStyle', dValue:'v1', gValue}),
187
+ value: hStyle,
176
188
  hidden: !['v1'].includes(dataVal({data, key:'layout', dValue:'v1', gValue})),
177
189
  key: Date.now(),
178
190
  isKey:true,
@@ -4,6 +4,7 @@ import {dataVal, statusDataVal, statusShow, clone, cRaBorShadow,isDefStatus} fro
4
4
 
5
5
  export default (datas, gValue, gColor, oldData={})=>{
6
6
  let data = clone(datas);
7
+ debugger
7
8
  if(typeof data['tabPadding'] === 'string' && data['tabPadding'] ) {
8
9
  data['tabPadding'] = {
9
10
  top: Number(data['tabPadding']),
@@ -66,10 +67,7 @@ export default (datas, gValue, gColor, oldData={})=>{
66
67
  }
67
68
  if(statusDataVal({data, key:'tabPaddingStatus', fields:['tabPadding'],gValue}) === 'C') {
68
69
  if(data['layout'] === 'v2') data['tabPadding'] = {top:20,left:0, right:0, bottom:0};
69
- else {
70
- if(data.hStyle === 'v1') data['tabPadding'] = {top:24,left:32, right:32, bottom:24}
71
- else data['tabPadding'] = {top:0,left:0, right:0, bottom:0}
72
- }
70
+ else data['tabPadding'] = {top:24,left:32, right:0, bottom:24}
73
71
  }
74
72
 
75
73
 
@@ -147,7 +145,7 @@ export default (datas, gValue, gColor, oldData={})=>{
147
145
  groupKey: 'style',
148
146
  ele: 'xd-slider',
149
147
  valueKey: "titleSp",
150
- value: dataVal({data, key:'titleSp', dValue:0, gValue}),
148
+ value: dataVal({data, key:'titleSp', dValue:gValue.isAdd && gValue.isFirst ?48: 0, gValue}),
151
149
  hidden: !statusShow({data, key: 'titleSpStatus', fields:['titleSp'], gValue}),
152
150
  className: "input100",
153
151
  labelInline: true,
@@ -338,7 +336,7 @@ export default (datas, gValue, gColor, oldData={})=>{
338
336
  value: dataVal({
339
337
  data,
340
338
  key:'tabPadding',
341
- dValue:[gValue.isAdd&&gValue.isFirst ? 0: {top:24,left:32, right:32, bottom:24}],
339
+ dValue:[gValue.isAdd&&gValue.isFirst ? 0: {top:24,left:32, right:0, bottom:24}],
342
340
  gValue,
343
341
  isPM: true,
344
342
  }),
@@ -13,6 +13,7 @@
13
13
  <view
14
14
  class="shop_tabs"
15
15
  :style="[tabsStyleComp]"
16
+ v-if="titleList.length > 1"
16
17
  >
17
18
  <view
18
19
  class="tab_item"
@@ -57,7 +58,7 @@
57
58
  v-for="(item,index) in marketList"
58
59
  :key="index"
59
60
  :marker-id="item.id"
60
- style="background: rgba(0,0,0,.8);border-radius: 20px;padding: 4px 8px;color: #FFFFFF;"
61
+ style="background: rgba(0,0,0,.8);border-radius: 6px;padding: 8px 12px;color: #fff;"
61
62
  :style="{display: item.id === showMarkerId ? 'block' : 'none'}"
62
63
  >{{ item.title }}</cover-view>
63
64
  </cover-view>
@@ -93,13 +94,15 @@
93
94
  <cus-shops
94
95
  layout="v1"
95
96
  :select-id="selectIds"
96
- :is-show-btn="false"
97
+ :is-show-btn="fastEntryStatus"
97
98
  :content="cusContent"
98
99
  :cus-style="cusStyle"
99
100
  :list="showShopList"
100
101
  :main-color="mainColor"
101
102
  :sub-main-color="subMainColor"
102
- @on-event="handleToCode"
103
+ :names="cusNames"
104
+ :entry="cusEntry"
105
+ @on-event="handleToEvent"
103
106
  ></cus-shops>
104
107
  </scroll-view>
105
108
  </template>
@@ -149,8 +152,8 @@
149
152
  hasNext: true,
150
153
  next_page_token: "",
151
154
  brand_id: '',
152
- shop_id:'',
153
- resource_shop_id:'',
155
+ shop_id: '',
156
+ resource_shop_id: '',
154
157
 
155
158
  //地图
156
159
  initBaidu: false,
@@ -171,23 +174,34 @@
171
174
  scrollTop: 0,
172
175
 
173
176
  //基础
174
- serverType:['SELL'],
175
- cusContent:[],
176
- tabLayout:'v1',
177
+ serverType: ['SELL'],
178
+ cusContent: [],
179
+ tabLayout: 'v1',
177
180
  xnamespace: "",
178
- showOftenTab:'N',
179
-
181
+ showOftenTab: 'N',
182
+ fastEntryStatus: false,
183
+ cusNames: {},
184
+ cusEntry: {},
185
+ shopListStyle: 'v1',
180
186
 
181
187
  //style
182
- bodyPadding:{},
183
- cusStyle:{},
184
- contentBgColor:'rgba(0,0,0,0)',
188
+ bodyPadding: {},
189
+ cusStyle: {},
190
+ contentBgColor: 'rgba(0,0,0,0)',
185
191
 
186
192
  //选项卡
187
193
  tabBgColor: '#fff',
188
- tabStyle:{},
189
- isCallback:null,
190
- callbackParams: {}
194
+ tabStyle: {},
195
+ isCallback: null,
196
+ callbackParams: {},
197
+
198
+ //高级
199
+ codePath: '', //门店跳转
200
+ cashierPath: '',//支持核销
201
+ buyTicketPath: '',//在线选择
202
+ codeAfterPath: '',//电子码
203
+ hdSelfPath: '',//小时达
204
+ travelfPath: '', //旅游购票
191
205
  }
192
206
  },
193
207
  computed: {
@@ -271,7 +285,9 @@
271
285
  }
272
286
  },
273
287
  contStyleComp(){
274
- let height = this.layoutInfo.bodyMinHeightRpx - 100 - 72;
288
+ let height = this.layoutInfo.bodyMinHeightRpx - 72;
289
+ //大于一个标签显示标签
290
+ if(this.titleList.length > 1) height = height - 100;
275
291
  if(this.mapIsExtend) height = height - 400;
276
292
  height = height - this.getPMValue(this.bodyPadding, 'TB', 0);
277
293
  return {
@@ -542,6 +558,22 @@
542
558
  this.showOftenTab = gCPVal(container, 'showOftenTab', 'N');
543
559
  if(this.showOftenTab === 'N') this.titleList = [{label: '附近门店', value: 'nearby'}];
544
560
  if(this.showOftenTab === 'Y') this.titleList = [{label: '附近门店', value: 'nearby'},{label: '常用门店', value: 'often'}];
561
+ this.shopListStyle = gCPVal(container, 'shopListStyle', 'v1');
562
+ this.fastEntryStatus = gCPVal(container, 'fastEntryStatus', 'N') === 'Y';
563
+ let fastEntry = gCPVal(container, 'fastEntry', []).filter(item=>{
564
+ return item.check === true
565
+ });
566
+ let cusNames = {};
567
+ let cusEntry = {};
568
+ if(this.fastEntryStatus) {
569
+ for(let i = 0; i< fastEntry.length ;i++) {
570
+ if(fastEntry[i].input) cusNames[fastEntry[i].value] = fastEntry[i].input
571
+ cusEntry[fastEntry[i].value] = fastEntry[i].check;
572
+ }
573
+ }
574
+ this.cusNames = cusNames;
575
+ this.cusEntry = cusEntry;
576
+
545
577
 
546
578
  //content
547
579
  let cusContent = [];
@@ -621,38 +653,85 @@
621
653
  }
622
654
 
623
655
  //高级
624
- this.codePath = getContainerPropsValue(container, 'content.codePath', { value: "" }).value;
656
+ this.codePath = gCPVal(container, 'codePath', { value: "" }).value;
657
+ this.cashierPath = gCPVal(container, 'cashierPath', { value: "" }).value;
658
+ this.buyTicketPath = gCPVal(container, 'buyTicketPath', { value: "" }).value;
659
+ this.codeAfterPath = gCPVal(container, 'codeAfterPath', { value: "" }).value;
660
+ this.hdSelfPath = gCPVal(container, 'hdSelfPath', { value: "" }).value;
661
+ this.travelfPath = gCPVal(container, 'travelfPath', { value: "" }).value;
662
+
663
+ //关闭显示附近门店
664
+ if(this.showOftenTab === 'N') this.tab = 'nearby';
665
+
625
666
  },
626
- handleToCode({item,funcName,type}) {
627
- if(this.$configProject['isPreview'] || !this.codePath ) return;
667
+ //==点击事件===========
668
+ handleToEvent({item,type}) {
628
669
  let parmas = [];
670
+ let url = ''
629
671
  if(item.resource_shop_id) parmas.push(`resource_shop_id=${item.resource_shop_id}`);
630
672
  if(item.brand_id) parmas.push(`brand_id=${item.brand_id}`);
631
673
  if(item.consume_mode) parmas.push(`consume_mode=${item.consume_mode.join(',')}`);
632
674
  if(item.shop_id) parmas.push(`shop_id=${item.shop_id}`);
633
675
 
676
+ //详情增加扩张参数
677
+ if(item.exts_params && type === 'DL'){
678
+ parmas.push(`exts_params=${item.exts_params}`);
679
+ parmas.push(`resource_shop=${Base64.encodeURI(JSON.stringify({shop_id: item.shop_id,resource_shop_id: item.resource_shop_id }))}`);
680
+ }
634
681
 
635
- //返回操作
636
- if(this.isCallback) {
637
- parmas = []
638
- if(item.resource_shop_id) parmas.push(`resource_shop_id=${item.resource_shop_id}`);
639
- if(!this.$xdUniHelper.isEmpty(this.callbackParams)) {
640
- Object.keys(this.callbackParams).map(it=>{
641
- parmas.push(`${it}=${this.callbackParams[it]}`);
642
- })
682
+ //在线选择,电子码传惨处理
683
+ if(['SEAT','CODE'].includes(type)) parmas = [`cinema_id=${item.resource_shop_id}`]
684
+ if(['TRAVEL'].includes(type)) parmas = [`shop_id=${item.resource_shop_id}`]
685
+
686
+ //点击详情地址
687
+ if(type === 'DL') {
688
+ //有回调地址处理
689
+ if(this.isCallback) {
690
+ parmas = []
691
+ if(item.resource_shop_id) parmas.push(`resource_shop_id=${item.resource_shop_id}`);
692
+ if(!this.$xdUniHelper.isEmpty(this.callbackParams)) {
693
+ Object.keys(this.callbackParams).map(it=>{
694
+ parmas.push(`${it}=${this.callbackParams[it]}`);
695
+ })
696
+ }
697
+ this.$xdUniHelper.redirectTo({
698
+ url: this.isCallback + `?${parmas.join('&')}`
699
+ },false,true)
700
+ return
643
701
  }
644
- this.$xdUniHelper.redirectTo({
645
- url: this.isCallback + `?${parmas.join('&')}`
646
- },false,true)
647
- return
702
+
703
+ //其他情况
704
+ url = this.codePath;
705
+ }
706
+
707
+ //支持核销
708
+ if(type === 'SELL') url = this.cashierPath;
709
+ //在线选择
710
+ if(type === 'SEAT') url = this.buyTicketPath;
711
+ //电子码
712
+ if(type === 'CODE') url = this.codeAfterPath;
713
+ //小时达
714
+ if(type === 'HDSELF') url = this.hdSelfPath;
715
+ //旅游购票
716
+ if(type === 'TRAVEL') url = this.travelfPath;
717
+
718
+ if(!url) throw new Error(`${type} => 未设置访问地址`);
719
+
720
+
721
+ //预览模式
722
+ if(this.$configProject['isPreview']) {
723
+ console.warn(`uri=>${url}?${parmas.join('&')}`)
724
+ return;
648
725
  }
649
726
 
650
727
  //普通跳转
651
728
  this.$xdUniHelper.navigateTo({
652
- url: this.codePath + `?${parmas.join('&')}`
729
+ url: `${url}?${parmas.join('&')}`
653
730
  })
654
731
  },
655
732
 
733
+ //==点击事件===========
734
+
656
735
  onJfbScroll(options) {
657
736
 
658
737
  },
@@ -211,7 +211,7 @@ module.exports = {
211
211
  "consume_mode_name": "",
212
212
  "distance": "1059km",
213
213
  "distance_conversion": "1,058.9km",
214
- "default_consume_type": "CV",
214
+ "default_consume_type": "JHD",
215
215
  "consume_type": [
216
216
  "CV"
217
217
  ],
@@ -245,10 +245,13 @@ module.exports = {
245
245
  "SELL",
246
246
  "HDSELF"
247
247
  ],
248
- "consume_mode_name": "",
248
+ "consume_mode_name":{
249
+ "SELL":'电子码',
250
+ "HDSELF":'小时达'
251
+ },
249
252
  "distance": "1217km",
250
253
  "distance_conversion": "1,216.0km",
251
- "default_consume_type": "CV",
254
+ "default_consume_type": "WB",
252
255
  "consume_type": [
253
256
  "CV"
254
257
  ],
@@ -285,7 +288,7 @@ module.exports = {
285
288
  "consume_mode_name": "",
286
289
  "distance": "1224km",
287
290
  "distance_conversion": "1,223.8km",
288
- "default_consume_type": "CV",
291
+ "default_consume_type": "QP",
289
292
  "consume_type": [
290
293
  "CV"
291
294
  ],
@@ -321,7 +324,7 @@ module.exports = {
321
324
  "consume_mode_name": "",
322
325
  "distance": "1226km",
323
326
  "distance_conversion": "1,226.0km",
324
- "default_consume_type": "CV",
327
+ "default_consume_type": "QP",
325
328
  "consume_type": [
326
329
  "CV"
327
330
  ],
@@ -356,7 +359,7 @@ module.exports = {
356
359
  "consume_mode_name": "",
357
360
  "distance": "1230km",
358
361
  "distance_conversion": "1,229.7km",
359
- "default_consume_type": "CV",
362
+ "default_consume_type": "SEAT",
360
363
  "consume_type": [
361
364
  "CV"
362
365
  ],
@@ -386,12 +389,12 @@ module.exports = {
386
389
  "brand_type": "MA",
387
390
  "business_status": "OPEN_BUSINESS",
388
391
  "consume_mode": [
389
- "SELL"
392
+ "CODE"
390
393
  ],
391
- "consume_mode_name": "",
394
+ "consume_mode_name": {CODE: '电子码'},
392
395
  "distance": "1231km",
393
396
  "distance_conversion": "1,230.6km",
394
- "default_consume_type": "CV",
397
+ "default_consume_type": "CODE",
395
398
  "consume_type": [
396
399
  "CV"
397
400
  ],
@@ -421,12 +424,12 @@ module.exports = {
421
424
  "brand_type": "MA",
422
425
  "business_status": "OPEN_BUSINESS",
423
426
  "consume_mode": [
424
- "SELL"
427
+ "TRAVEL"
425
428
  ],
426
429
  "consume_mode_name": "",
427
430
  "distance": "1231km",
428
431
  "distance_conversion": "1,230.7km",
429
- "default_consume_type": "CV",
432
+ "default_consume_type": "",
430
433
  "consume_type": [
431
434
  "CV"
432
435
  ],
@@ -7,10 +7,10 @@ export default (data, gValue, gColor, oldData={})=>{
7
7
  }
8
8
  return [
9
9
  {
10
- label: '跳转地址',
10
+ label: '门店地址',
11
11
  ele: 'xd-select-pages-path',
12
12
  valueKey: 'codePath',
13
- placeholder: '请选择跳转地址页面',
13
+ placeholder: '请选择门店地址跳转地址',
14
14
  groupKey:'advanced',
15
15
  value: codePath,
16
16
  labelInline:true,
@@ -21,6 +21,81 @@ export default (data, gValue, gColor, oldData={})=>{
21
21
  },
22
22
  inline: false,
23
23
  },
24
+ {
25
+ label: '核销地址',
26
+ ele: 'xd-select-pages-path',
27
+ valueKey: 'cashierPath',
28
+ placeholder: '请选择核销地址跳转地址',
29
+ groupKey:'advanced',
30
+ className: 'input100',
31
+ value: data['cashierPath'] || null,
32
+ setting: {
33
+ mode:'new',
34
+ router: XdBus.getParentApi('getPagesTree'),
35
+ },
36
+ inline: false,
37
+ labelInline:true,
38
+ },
39
+ {
40
+ label: '在线选座',
41
+ ele: 'xd-select-pages-path',
42
+ valueKey: 'buyTicketPath',
43
+ placeholder: '请选择在线选座跳转地址',
44
+ groupKey:'advanced',
45
+ className: 'input100',
46
+ value: data['buyTicketPath'] || null,
47
+ setting: {
48
+ mode:'new',
49
+ router: XdBus.getParentApi('getPagesTree'),
50
+ },
51
+ inline: false,
52
+ labelInline:true,
53
+ },
54
+ {
55
+ label: '电子码地址',
56
+ ele: 'xd-select-pages-path',
57
+ valueKey: 'codeAfterPath',
58
+ placeholder: '请选择电子码跳转地址',
59
+ groupKey:'advanced',
60
+ className: 'input100',
61
+ value: data['codeAfterPath'] || null,
62
+ setting: {
63
+ mode:'new',
64
+ router: XdBus.getParentApi('getPagesTree'),
65
+ },
66
+ inline: false,
67
+ labelInline:true,
68
+ },
69
+ {
70
+ label: '小时达地址',
71
+ ele: 'xd-select-pages-path',
72
+ valueKey: 'hdSelfPath',
73
+ placeholder: '请选择小时达到店自取跳转地址',
74
+ groupKey:'advanced',
75
+ className: 'input100',
76
+ value: data['hdSelfPath'] || null,
77
+ setting: {
78
+ mode:'new',
79
+ router: XdBus.getParentApi('getPagesTree'),
80
+ },
81
+ inline: false,
82
+ labelInline:true,
83
+ },
84
+ {
85
+ label: '旅游门票',
86
+ ele: 'xd-select-pages-path',
87
+ valueKey: 'travelfPath',
88
+ placeholder: '请选择旅游在线订票跳转地址',
89
+ groupKey:'advanced',
90
+ className: 'input100',
91
+ value: data['travelfPath'] || null,
92
+ setting: {
93
+ mode:'new',
94
+ router: XdBus.getParentApi('getPagesTree'),
95
+ },
96
+ inline: false,
97
+ labelInline:true,
98
+ },
24
99
  {
25
100
  label: '版本号:',
26
101
  ele: 'el-input',
@@ -56,7 +56,7 @@ export default function (data, gValue, gColor, oldData){
56
56
  server:'supplier-partner',
57
57
  fn:'shop',
58
58
  path:'p1',
59
- })
59
+ }, {cusume_mode: 1})
60
60
  .then(res => {
61
61
  data.cb(res['consume_mode'])
62
62
  })
@@ -89,6 +89,27 @@ export default function (data, gValue, gColor, oldData){
89
89
  size: 'small',
90
90
  groupKey:'content',
91
91
  },
92
+ 0&&{
93
+ label: "列表布局",
94
+ ele: "xd-style-image",
95
+ groupKey: 'content',
96
+ valueKey: "shopListStyle",
97
+ value: dataVal({data, key:'shopListStyle', dValue:'v1', gValue}),
98
+ labelInline:true,
99
+ className: 'input100',
100
+ handleCustom(cusRes) {
101
+ XdBus.getParentApi('getCompStylesOptions')({
102
+ layout_ids: '67gEK19OLvv1pnomF15oJ',
103
+ key: Date.now()
104
+ })
105
+ .then(res => {
106
+ cusRes.data.cb(res)
107
+ })
108
+ .catch(error => {
109
+ console.error(error);
110
+ });
111
+ },
112
+ },
92
113
  {
93
114
  label: "门店样式",
94
115
  ele: "xd-style-image",
@@ -254,5 +275,47 @@ export default function (data, gValue, gColor, oldData){
254
275
  indent: true
255
276
  },
256
277
  {ele: 'group_end'},
278
+ {
279
+ ele:'xd-line',
280
+ groupKey:'content'
281
+ },
282
+ {
283
+ label: '快捷入口',
284
+ ele: 'xd-cus-switch',
285
+ valueKey: 'fastEntryStatus',
286
+ value: dataVal({data, key:'fastEntryStatus', dValue:"N", gValue}),
287
+ className: 'input100',
288
+ groupKey:'content',
289
+ labelInline:true,
290
+ cusStyle:{marginBottom: '10px'},
291
+ setting: {
292
+ isBackType: 'string'
293
+ },
294
+ },
295
+ {ele: 'group_start'},
296
+ {
297
+ label: '',
298
+ ele: 'xd-name-check',
299
+ valueKey: 'fastEntry',
300
+ groupKey:'content',
301
+ value: dataVal({data, key:'fastEntry', dValue:[], gValue}),
302
+ className: 'input100',
303
+ setting: {
304
+ isSort:false,
305
+ width: 100,
306
+ },
307
+ labelInline:true,
308
+ hidden: data['fastEntryStatus'] !== 'Y',
309
+ handleCustom({action, data}) {
310
+ data.cb([
311
+ {value:'cashier', label: '支持核销',input:'',check: false,placeholder:'支持核销名称,默认“去买单”'},
312
+ {value:'buyTicket', label: '在线选座',input:'',check: false,placeholder:'在线选座名称,默认“去购票”'},
313
+ {value:'code', label: '电子码门店',input:'',check: false,placeholder:'电子码门店称,默认“电子码”'},
314
+ {value:'hdSelf', label: '小时达到店',input:'',check: false,placeholder:'小时达到店名称,默认“到店自取”'},
315
+ {value:'travel', label: '旅游门票',input:'',check: false,placeholder:'旅游门票名称,默认“去购票”'}
316
+ ])
317
+ },
318
+ },
319
+ {ele: 'group_end'},
257
320
  ].filter(i=>i)
258
321
  }