jufubao-mall 2.0.20-beta5 → 2.0.20-beta7

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.20-beta5",
3
+ "version": "2.0.20-beta7",
4
4
  "private": false,
5
5
  "description": "聚福宝商城业务组件插件包",
6
6
  "main": "index.js",
@@ -805,7 +805,7 @@
805
805
  jfbRootExec("getBrandHomeInfo", {
806
806
  vm: this,
807
807
  data: {
808
- ...this.options,
808
+ //...this.options,
809
809
  brand_id: this.brand_id,
810
810
  xnamespace: this.xnamespace
811
811
  }
@@ -910,20 +910,24 @@
910
910
  page_size = this.show_shop_num;
911
911
  }
912
912
  }
913
+ let data = this.$xdUniHelper.deleteParamEmptyKey({
914
+ consume_mode: "SELL",
915
+ ...this.options,
916
+ brand_id: this.brand_id,
917
+ city_code: this.stateCity.city_code,
918
+ latitude: this.stateLocation.latitude,
919
+ longitude: this.stateLocation.longitude,
920
+ page_size: page_size,
921
+ page_token: this.shop_page_token,
922
+ region_limit_tpl_id: this.region_limit_tpl_id,
923
+ namespace: this.xnamespace,
924
+ });
925
+
926
+ if(data['brand_type']) delete data['brand_type'];
927
+
913
928
  jfbRootExec("getMallBrandHomeShopList", {
914
929
  vm: this,
915
- data: this.$xdUniHelper.deleteParamEmptyKey({
916
- consume_mode: "SELL",
917
- ...this.options,
918
- brand_id: this.brand_id,
919
- city_code: this.stateCity.city_code,
920
- latitude: this.stateLocation.latitude,
921
- longitude: this.stateLocation.longitude,
922
- page_size: page_size,
923
- page_token: this.shop_page_token,
924
- region_limit_tpl_id: this.region_limit_tpl_id,
925
- namespace: this.xnamespace,
926
- })
930
+ data: data
927
931
  }).then(res => {
928
932
  this.loaded = true;
929
933
  let list = res.list.map(item=>{
@@ -1284,7 +1288,7 @@
1284
1288
  background:#fff;
1285
1289
  padding: 32rpx 40rpx 40rpx 40rpx;
1286
1290
  border-radius: 8rpx;
1287
- margin-bottom: 20rpx;
1291
+ margin-bottom: 20rpx;
1288
1292
  }
1289
1293
  &_brand_info {
1290
1294
  position: relative;
@@ -1374,7 +1378,7 @@
1374
1378
  }
1375
1379
  }
1376
1380
  }
1377
-
1381
+
1378
1382
  }
1379
1383
  }
1380
1384
  </style>
@@ -285,7 +285,6 @@
285
285
  outWdith += 172;
286
286
  if(this.titleBorderWidth) outWdith += this.titleBorderWidth * 2;
287
287
  if(this.titleBorderWidth === 0 && this.vStyle === 'v1') outWdith +=2
288
- outWdith += this.getPMValue(this.tabPadding, 'RL', 0);
289
288
  }
290
289
  outWdith += this.getPMValue(this.listMargin, 'RL',0);
291
290
  outWdith += this.getPMValue(this.listPadding, 'RL',0);
@@ -392,7 +391,7 @@
392
391
  },
393
392
  tabListComp(){
394
393
  let temp = {};
395
- if(this.layout === 'v1') {
394
+ if(['v1','v2'].includes(this.layout)) {
396
395
  temp['paddingLeft'] = (this.tabPadding.left || 0) + 'rpx';
397
396
  temp['paddingRight'] = (this.tabPadding.right || 0) + 'rpx';
398
397
  temp['paddingBottom'] = (this.tabPadding.bottom || 0) + 'rpx';
@@ -413,24 +412,6 @@
413
412
  ...this.getTabHeight,
414
413
  };
415
414
  },
416
- tabItemStyleComp(){
417
- let style = {
418
- color: this.titleStyle.color,
419
- fontWeight: this.titleStyle.fontWeight,
420
- };
421
- if(this.layout === 'v2') {
422
- style['fontSize'] = '24rpx';
423
- style = {...style,...this.getTabItemHeight}
424
- if(['v2'].includes(this.vStyle)) {
425
- style['backgroundColor'] = this.titleStyle.bgColor;
426
- }
427
- }
428
- if(this.layout === 'v1') {
429
- style['fontSize'] = parseInt(this.titleStyle.actFontSize) + 'rpx';
430
- style = {...style,...this.getTabItemHeight}
431
- }
432
- return style
433
- },
434
415
  getTabItemHeight(){
435
416
  if(this.layout === 'v1'){
436
417
  return {
@@ -452,14 +433,30 @@
452
433
  }
453
434
 
454
435
  },
455
-
436
+ tabItemStyleComp(){
437
+ let style = {
438
+ color: this.titleStyle.color,
439
+ fontWeight: this.titleStyle.fontWeight,
440
+ };
441
+ if(this.layout === 'v2') {
442
+ style['fontSize'] = '24rpx';
443
+ style = {...style,...this.getTabItemHeight}
444
+ if(['v2'].includes(this.vStyle)) {
445
+ style['backgroundColor'] = this.titleStyle.bgColor;
446
+ }
447
+ }
448
+ if(this.layout === 'v1') {
449
+ style['fontSize'] = parseInt(this.titleStyle.actFontSize) + 'rpx';
450
+ style = {...style,...this.getTabItemHeight}
451
+ }
452
+ return style
453
+ },
456
454
  tabActItemStyleComp(){
457
455
  let style = {
458
456
  color: this.titleStyle.actColor,
459
457
  fontWeight: this.titleStyle.actFontWeight,
460
458
  };
461
459
  if(this.layout === 'v2') {
462
- style['fontSize'] = '24rpx';
463
460
  style = {...style,...this.getTabItemHeight}
464
461
  if(['v2'].includes(this.vStyle)) {
465
462
  if(this.titleStyle.actBgColor) style['backgroundColor'] = this.titleStyle.actBgColor;
@@ -477,14 +474,19 @@
477
474
  }
478
475
  return style
479
476
  },
477
+
480
478
  tabItemNameStyle(){
481
- if(this.layout === 'v2') return {}
479
+ if(this.layout === 'v2') return {
480
+ fontSize: parseInt(this.titleStyle.fontSize) + 'rpx',
481
+ fontWeight: this.titleStyle.fontWeight,
482
+ color: this.titleStyle.color,
483
+ }
482
484
  return {
483
485
  borderRadius:['v1'].includes(this.hStyle)?'60rpx': 0,
484
486
  backgroundColor: ['v1'].includes(this.hStyle) ? this.titleStyle.bgColor:'',
485
487
  color: this.titleStyle.color,
486
488
  padding:'0 32rpx',
487
- fontSize: this.titleStyle.fontSize + 'rpx',
489
+ fontSize: parseInt(this.titleStyle.fontSize) + 'rpx',
488
490
  fontWeight: this.titleStyle.fontWeight,
489
491
  }
490
492
  },
@@ -509,6 +511,8 @@
509
511
  return {
510
512
  backgroundColor: bgColor,
511
513
  color: color,
514
+ fontSize: parseInt(this.titleStyle.actFontSize) + 'rpx',
515
+ fontWeight: this.titleStyle.actFontWeight,
512
516
  }
513
517
  }
514
518
 
@@ -530,7 +534,7 @@
530
534
  backgroundImage: bgImage,
531
535
  padding: '0 32rpx',
532
536
  color: color,
533
- fontSize: this.titleStyle.actFontSize + 'rpx',
537
+ fontSize: parseInt(this.titleStyle.actFontSize) + 'rpx',
534
538
  fontWeight: this.titleStyle.actFontWeight,
535
539
  }
536
540
  },
@@ -702,16 +706,16 @@
702
706
  [{
703
707
  color: titleColor || '#333',
704
708
  bgColor: titleBgcColor || '#fff' ,
705
- fontSize: '32',
709
+ fontSize: this.layout === 'v2' ?'24':'32',
706
710
  fontWeight: '400',
707
711
  actColor: titleActColor || '',
708
- actFontWeight: '400',
709
- actFontSize: '32',
712
+ actFontWeight: '500',
713
+ actFontSize: this.layout === 'v2' ?'24':'32',
710
714
  actBgColor:this.titleBgcActColor || '',
711
715
  }],
712
716
  {sKey:'titleStyleStatus',fields:['titleStyle'],isMerge: true},
713
717
  );
714
- this.titleShadow = gCPVal(container, 'titleShadow', [this.gStyleValue.shadow,'none'], {isShadow:true, bsOld:['isTitleShadow','isTitleShadowBgcW','isTitleShadowBgc']});
718
+ this.titleShadow = gCPVal(container, 'titleShadow', [this.gStyleValue.shadow , 'none'], {isShadow:true, bsOld:['isTitleShadow','isTitleShadowBgcW','isTitleShadowBgc']});
715
719
  this.titleBorder = gCPVal(container, 'titleBorder', [{color: '#eee', width: '0', style: 'solid'},{color: '#eee', width: '0', style: 'solid'}], {isBorder:true, bsOld:['isTitleBorder','isTitleBorderW','isTitleBorderColor']});
716
720
  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']});
717
721
 
@@ -771,8 +775,10 @@
771
775
 
772
776
  switchTab(i){
773
777
  this.tabIndex = i;
778
+ this.brandList = null
774
779
  this.getList();
775
780
  },
781
+
776
782
  getList(){
777
783
  this.$xdShowLoading({});
778
784
  let params = {
@@ -783,9 +789,9 @@
783
789
  if(this.isCityFilter === "Y") params['city_code'] = this.stateCity.city_code;
784
790
  else params['city_code'] = '';
785
791
  if(this.category_ids && this.category_ids.length > 0) params['category_ids'] = this.category_ids.join(",");
792
+
786
793
  jfbRootExec("getNewBrandWallList", {vm: this,data: params}).then(res => {
787
794
  this.$xdHideLoading();
788
-
789
795
  let brandList = res.items.map(item => {
790
796
  item['brand_icon'] = item.brand_icon ? getServiceUrl(item.brand_icon, "size2") : "";
791
797
  item['status'] = true;
@@ -794,7 +800,10 @@
794
800
 
795
801
  //补缺
796
802
  if(brandList.length >0) {
797
- let differences = this.contentCell - brandList.length % this.contentCell;
803
+ let differences = 0;
804
+ if( brandList.length % this.contentCell > 0) {
805
+ differences = this.contentCell - brandList.length % this.contentCell
806
+ }
798
807
  for(let i =0; i < differences; i++) {
799
808
  brandList.push({isEmpty: true});
800
809
  }
@@ -813,6 +822,7 @@
813
822
  })
814
823
  })
815
824
  },
825
+
816
826
  toBrand(brand){
817
827
  if(this.isPreview) return;
818
828
  let { params , brand_id} = brand;
@@ -4,7 +4,6 @@ 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
8
7
  if(typeof data['tabPadding'] === 'string' && data['tabPadding'] ) {
9
8
  data['tabPadding'] = {
10
9
  top: Number(data['tabPadding']),
@@ -100,7 +99,7 @@ export default (datas, gValue, gColor, oldData={})=>{
100
99
  fontSize:'32',
101
100
  fontWeight: '400',
102
101
  actFontSize:'32',
103
- actFontWeight: '400',
102
+ actFontWeight: '500',
104
103
  actColor: data['titleActColor'] || gValue.mainColor,
105
104
  actBgColor: data['titleBgcActColor'] || ''
106
105
  },
@@ -140,7 +140,7 @@
140
140
  </view>
141
141
  <!--商品列表-->
142
142
  <xd-no-data :scale-size="2" type="product" v-if="prodList && prodList.length === 0"></xd-no-data>
143
- <xd-more v-if="(isPreview || !hasNext) && prodList.length > 0" :color="footerColor" :background="footerColor"><text>我是有底线的</text></xd-more>
143
+ <xd-more v-if="(isPreview || !hasNext) && (prodList && prodList.length > 0)" :color="footerColor" :background="footerColor"><text>我是有底线的</text></xd-more>
144
144
  <xd-to-top :isPreview="isPreview" :mainColor="mainColor" ref="VT" :scrollTop="top"></xd-to-top>
145
145
  </view>
146
146
  </view>
@@ -28,7 +28,7 @@
28
28
  height="750rpx"
29
29
  :indicatorDots="false"
30
30
  @animationfinish="animationfinish"
31
- >
31
+ >
32
32
  <!--#ifdef H5-->
33
33
  <template slot-scope="{ item,index }">
34
34
  <image v-show="item.status===true" @error="item.status=false" @click="handlePreview(index,item)" :src="item.src"></image>
@@ -148,7 +148,7 @@
148
148
  <xd-font-icon class="_ext" size="36" icon="iconsangedian-x" color="#999999"></xd-font-icon>
149
149
  </view>
150
150
  <view v-if="base_info.notice_text" class="content-item">
151
- <xd-content-xss class="address_notice_content" :html="base_info.notice_text"></xd-content-xss>
151
+ <xd-content-xss class="address_notice_content" :html="base_info.notice_text"></xd-content-xss>
152
152
  <xd-font-icon @click.stop="handleNotice" class="_ext" size="36" icon="iconwenhao" color="#999999"></xd-font-icon>
153
153
  </view>
154
154
  </view>
@@ -320,10 +320,10 @@
320
320
  :layoutInfo="layoutInfo"
321
321
  :fixedStyle="fixedStyle"
322
322
  :mainColor="mainColor"
323
- :salePriceColor="salePriceColor"
324
- :salePriceFontSize="salePriceFontSize"
325
- :originalPriceFontSize="originalPriceFontSize"
326
- :originalPriceColor="originalPriceColor"
323
+ :salePriceColor="salePriceColor"
324
+ :salePriceFontSize="salePriceFontSize"
325
+ :originalPriceFontSize="originalPriceFontSize"
326
+ :originalPriceColor="originalPriceColor"
327
327
  :isPlus="is_plus_site"
328
328
  @change="handleSkuChange"
329
329
  @onConfirm="handleConfirmSku"
@@ -583,7 +583,7 @@
583
583
  if(!this.buyButton.page_buttons) return null;
584
584
  return this.buyButton.page_buttons.find(item => item.code === 'view-delivery-scope');
585
585
  },
586
- alert_bottom() {
586
+ alert_bottom() {
587
587
  let style = this.fixedStyle({ paddingBottom: (this.btnHeight), zIndex: 110 })
588
588
  return style
589
589
  },
@@ -604,7 +604,7 @@
604
604
  },
605
605
  sectionBoxStyle() {
606
606
  console.log(this.sectionPadding,'this.getMarginAndPadding(this.sectionPadding,0)');
607
-
607
+
608
608
  return {
609
609
  margin: this.getMarginAndPadding(this.sectionPadding,0),
610
610
  borderRadius: this.sectionRadius + 'rpx',
@@ -631,7 +631,7 @@
631
631
  padding: this.getMarginAndPadding(this.btnPadding, 0)
632
632
  };
633
633
  console.log(this.btnPadding,'this.btnPaddingst');
634
-
634
+
635
635
  if(this.bottomBtnOrder === 'reverse'){
636
636
  style['flexDirection'] = 'row-reverse';
637
637
  }
@@ -678,7 +678,7 @@
678
678
  }
679
679
  },
680
680
  created() {
681
- console.log(this.getTokenForKey('user_level'), 'user_leveluser_level');
681
+ console.log(this.getTokenForKey('user_level'), 'user_leveluser_level');
682
682
  this.init(this.container);
683
683
  this.is_plus_site = this.projectAttr.headers['X-Site-Group']==="vip";
684
684
  this.is_vip = this.getTokenForKey('user_level')&&this.getTokenForKey('user_level')==='VIP'?true:false
@@ -831,9 +831,13 @@
831
831
  ...data,
832
832
  }
833
833
  }).then(res => {
834
+
835
+ //res = {"base_info":{"product_id":66359621,"partner_id":161,"product_type":"good","category_id":142028,"product_name":"LUOLAI\/罗莱家纺月冉晓杏全棉可水洗夏被","sub_title":"","thumb":"\/uploads\/20250609\/b24185b5c38d3018cadf48c91d159e62.jpg","product_tags":[],"market_tags":[],"tags":[],"prices":{"sale_price":29000,"activity_price":0,"market_price":59900,"wholesale_prices":[],"vip_price":0,"show_prices":[{"p":29000,"n":"","t":"S"},{"p":59900,"n":"","t":"U"}]},"sale_num":4,"region_limit_tpl_id":"MxAZmuFFEX_wzGPmnoUYF","channel_code":"anVmdWJhb3w2NjM1OTYyMQ%3D%3D","notice_text":""},"images":[{"src":"\/uploads\/20250611\/90b6ec501ea7591fc006871c1fb78869.jpg"},{"src":"\/uploads\/20250609\/dec58372f4e7f1ef1ee8792820104e1f.jpg"},{"src":"\/uploads\/20250609\/27300fe6c336db75b18593823b5471cc.jpg"},{"src":"\/uploads\/20250609\/0ce25a57e372377223ec76d45409bfe4.jpg"},{"src":"\/uploads\/20250609\/9c3a9c7bd8d9361c23aee0d64c47409e.jpg"}],"videos":[],"parameters":[{"label":"品牌","value":"LUOLAI\/罗莱家纺","key":"brand"}],"delivery_methods":[{"label":"快递配送","value":"logistics"}],"brand_info":{"brand_id":40064,"brand_name":"LUOLAI\/罗莱家纺","brand_icon":"https:\/\/jfb-public-images.oss-cn-qingdao.aliyuncs.com\/admin-upload\/202105081449057244.jpg?x-oss-process=style\/common","brand_type":"MA","supplier_id":1358505},"skus":[{"product_sku":70199044,"standards":[{"attr_id":"","name":"月冉晓杏全棉可水洗夏被","value":"150*200cm\/950g","image":"\/\/img1-b.jufubao.cn\/uploads\/20250611\/a9c8fd6dc54918eb6687c65fea034e55.jpg?ver=1749625095120","desc":""}],"prices":{"sale_price":29000,"activity_price":0,"market_price":59900,"wholesale_prices":[],"vip_price":0,"show_prices":[{"p":29000,"n":"","t":"S"},{"p":59900,"n":"","t":"U"}]},"enabled":true},{"product_sku":70199045,"standards":[{"attr_id":"","name":"月冉晓杏全棉可水洗夏被","value":"200*230cm\/1450g","image":"\/\/img1-b.jufubao.cn\/uploads\/20250611\/0eca2b62949531ce2e22137ab7580a2c.jpg?ver=1749625100584","desc":""}],"prices":{"sale_price":36600,"activity_price":0,"market_price":69900,"wholesale_prices":[],"vip_price":0,"show_prices":[{"p":36600,"n":"","t":"S"},{"p":69900,"n":"","t":"U"}]},"enabled":true}],"sms_activity":{"status":"","activity_type":"","activity_tips":"","activity_price":0,"end_time":0,"start_time":0,"distance_start_time":0,"distance_end_time":0,"max_buy_num":0,"is_today":""},"similar_products":[],"request_id":"c4fa548ce8fa2185"}
836
+
837
+
834
838
  this.$xdHideLoading({});
835
839
  this.loadingInfo = false;
836
- const { base_info, brand_info, delivery_methods, images, parameters, skus, similar_products, videos, sms_activity } = res;
840
+ const { base_info, brand_info, delivery_methods, images, parameters, skus, similar_products, videos, sms_activity } = res;
837
841
  if(base_info.prices.market_price) {
838
842
  base_info.prices.market_price = this.$xdUniHelper.divisionFloatNumber(base_info.prices.market_price,100)
839
843
  }
@@ -996,23 +1000,23 @@
996
1000
 
997
1001
  // 根据布局类型设置价格
998
1002
  if (this.goodsLayout === 'flash') {
999
- const prices = this.smsStatus === 'ing'
1000
- ? PRICE_CONFIG.FLASH.ING
1003
+ const prices = this.smsStatus === 'ing'
1004
+ ? PRICE_CONFIG.FLASH.ING
1001
1005
  : PRICE_CONFIG.FLASH.WARM;
1002
-
1006
+
1003
1007
  this.$set(this.base_info.prices, 'show_prices', prices);
1004
-
1008
+
1005
1009
  // 处理时间格式
1006
- this.hours = this.smsStatus === 'ing'
1007
- ? this.hours.split(':')[0]
1008
- : this.hours.includes(':00')
1009
- ? this.hours
1010
+ this.hours = this.smsStatus === 'ing'
1011
+ ? this.hours.split(':')[0]
1012
+ : this.hours.includes(':00')
1013
+ ? this.hours
1010
1014
  : `${this.hours}:00`;
1011
1015
  } else {
1012
- const prices = this.showDiscount === 'Y'
1013
- ? PRICE_CONFIG.NORMAL.WITH_DISCOUNT
1016
+ const prices = this.showDiscount === 'Y'
1017
+ ? PRICE_CONFIG.NORMAL.WITH_DISCOUNT
1014
1018
  : PRICE_CONFIG.NORMAL.WITHOUT_DISCOUNT;
1015
-
1019
+
1016
1020
  this.$set(this.base_info.prices, 'show_prices', prices);
1017
1021
  }
1018
1022
  },
@@ -1144,7 +1148,7 @@
1144
1148
  this.getElementHeight()
1145
1149
  });
1146
1150
  },50)
1147
-
1151
+
1148
1152
  }).catch(err => {
1149
1153
  this.$xdHideLoading();
1150
1154
  this.$xdLog.catch(err);
@@ -12,7 +12,7 @@
12
12
  */
13
13
  module.exports = [
14
14
  {
15
- mapFnName: 'getMallProductList',
15
+ mapFnName: 'getNewMallProductList',
16
16
  title: '获取商品列表',
17
17
  path: '/product/v1/:xnamespace/product/search',
18
18
  isRule: false,
@@ -33,14 +33,14 @@ module.exports = [
33
33
  disabled: true,
34
34
  },
35
35
  {
36
- mapFnName: 'getMallCategoryTree',
36
+ mapFnName: 'getNewMallCategoryTree',
37
37
  title: '分类 - 树列表',
38
- path: '/product/v1/:xnamespace/category/index',
38
+ path: '/product/v1/:xnamespace/category/tree',
39
39
  isRule: false,
40
40
  params: {
41
41
  xnamespace: ['xnamespace', 'String', '必选'],
42
- group_id: ['分组ID', 'Number', '必选'],
43
- need_rec: ['是否需要推荐分类', 'Number', '必选'],
42
+ level: ['获取几层数据,默认:2', 'Number', '必选', 2],
43
+ root_category_id: ['父级分类,默认:0', 'Number', '必选', 0],
44
44
  },
45
45
  isConsole: true,
46
46
  disabled: true,
@@ -59,8 +59,8 @@ module.exports = [
59
59
  disabled: true,
60
60
  },
61
61
  {
62
- mapFnName: "getSearchFilterList",
63
- mapFn: "getSearchFilterList",
62
+ mapFnName: "getNewSearchFilterList",
63
+ mapFn: "getNewSearchFilterList",
64
64
  title: "获取商品搜索过滤列表",
65
65
  path: "/product/v1/:xnamespace/product/search-filters",
66
66
  isRule: false,
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <view class="jfb-filter" v-if="showQuery === 'Y'" :style="[cssStyle]">
3
+
3
4
  <view class="jfb-filter-placeholder" :style="[placeholderStyleComp]"></view>
4
5
  <view class="jfb-filter-menu" :style="[cusMenuStyle,menuStyleTopComp]">
5
6
  <template v-if="sortList.length > 0">
@@ -95,7 +96,7 @@
95
96
  :class="{
96
97
  active: isOtherActive(tab, item.value),
97
98
  noMarginRigth: i%column === (column-1),
98
- noMarginTop: i/column <= 1
99
+ noMarginTop: i/column < 1
99
100
  }"
100
101
  @click="setOhterChooseTag(tab, item)"
101
102
  >{{item.label}}</view>
@@ -252,19 +253,19 @@ export default {
252
253
  return {
253
254
  zIndex: this.showQueryModal ? 1002 : 1,
254
255
  position:this.$configProject.isPreview?'absolute':'fixed',
255
- top: this.$configProject.isPreview ? 0 : this.queryMaskComp.top
256
+ top: this.$configProject.isPreview ? 0 : (parseInt(this.queryMaskComp.top) - 2) + 'rpx',
256
257
  }
257
258
  },
258
259
  queryTopComp(){
259
260
  let {paddingTb} = this.cusMenuStyle;
260
261
  let height = 48;//默认90高,填充0
261
262
  return {
262
- top: this.topHeight + this.layoutInfo.top + (height + paddingTb - 4) + 'rpx'
263
+ top: this.topHeight + this.layoutInfo.top + (height + paddingTb - 2) + 'rpx'
263
264
  }
264
265
  },
265
266
  menuTextColorComp(){
266
267
  return {
267
- color: this.cusMenuStyle.color || '#666'
268
+ color: this.cusMenuStyle.color || '#999'
268
269
  }
269
270
  },
270
271
 
@@ -331,7 +332,7 @@ export default {
331
332
  if(this.menuAct !== 'common') {
332
333
  params = {
333
334
  ...params,
334
- borderColor: Color(font.color).alpha(0.01).toString(),
335
+ borderColor: Color(font.color).alpha(0.2).toString(),
335
336
  backgroundColor: Color(font.color).alpha(0.1).toString(),
336
337
  }
337
338
  }
@@ -776,7 +777,8 @@ export default {
776
777
  border-top: 1px solid var(--com-menu-border);
777
778
  display: flex;
778
779
  justify-content: space-around;
779
- height: 48rpx;
780
+ height: 49rpx;
781
+
780
782
 
781
783
  &-item {
782
784
  display: flex;
@@ -893,7 +895,7 @@ export default {
893
895
 
894
896
  & > ._tag {
895
897
  text-align: center;
896
- line-height: 66rpx;
898
+ line-height: 62rpx;
897
899
  border-radius: 4rpx;
898
900
  font-size: 24rpx;
899
901
  color: #666;
@@ -902,6 +904,9 @@ export default {
902
904
  white-space: nowrap;
903
905
  box-sizing: border-box;
904
906
  background-color: #f8f8f8;
907
+ border-width: 2rpx;
908
+ border-style: solid;
909
+ padding: 0 10rpx;
905
910
 
906
911
  &.noMarginRigth{
907
912
  margin-right: 0!important;
@@ -24,7 +24,6 @@
24
24
  <view v-if="!loaded" class="skeleton-cate">
25
25
  <view class="cate_tab" v-if="showCategory === 'Y'">
26
26
  <view class="cate_tab_item" v-for="i in 5" :key="i"></view>
27
-
28
27
  </view>
29
28
  <view class="sub_cate" v-if="showCategory === 'Y'">
30
29
  <view class="sub_cate_item" v-for="i in 5" :key="i">
@@ -449,6 +448,12 @@
449
448
  if(this.initStatus && this.onLoadStatus) this.handleInit();
450
449
  },
451
450
 
451
+ filterModeData(){
452
+ if(this.$configProject.isPreview) {
453
+ this.$refs['filter-query'].hideSelectMenu();//隐藏菜单
454
+ }
455
+ },
456
+
452
457
  },
453
458
  created() {
454
459
  this.isPreview = this.$configProject.isPreview;
@@ -663,7 +668,7 @@
663
668
  let defFilterBgcColor = '#fff';
664
669
  if( category ==='v4') defFilterBgcColor = this.pageAttr.background;
665
670
  this.filterBgcColor = gCPVal(container, 'filterBgcColor', [defFilterBgcColor,'#fff'], {sKey: 'filterBgcColorStatus',fields:['filterBgcColor']});
666
- this.filterColor = gCPVal(container, 'filterColor', ['#666'], {sKey: 'filterColorStatus',fields:['filterColor']});
671
+ this.filterColor = gCPVal(container, 'filterColor', ['#333'], {sKey: 'filterColorStatus',fields:['filterColor']});
667
672
  this.filterTopBorder = gCPVal(container, 'filterTopBorder', [{ color: '#f8f8f8', width: '2', style: 'solid'},{ color: '#f8f8f8', width: '0', style: 'solid'}], {isBorder:true});
668
673
  this.filterTopBorderWidth = gCPVal(container, 'filterTopBorder', [{ color: '#f8f8f8', width: '2', style: 'solid'},{ color: '#f8f8f8', width: '0', style: 'solid'}], {isBorder:true, isBsWidth: true});
669
674
 
@@ -809,22 +814,25 @@
809
814
 
810
815
  //二级导航文字颜色
811
816
  this.level2BgcColor = gCPVal(container, 'level2BgcColor', ['#fff','#f8f8f8'],{sKey:'level2BgcColorStatus', fields:['level2BgcColor']});
817
+
818
+ let color = gCPVal(container, 'level2Color', '') || '#333',
819
+ actColoor= this.mainColor , bgColor='',bgActColor='';
820
+ if(categoryLayout1ShowType === 'parentNew') {
821
+ actColoor = '#fff';
822
+ bgActColor = this.mainColor;
823
+ }
824
+
812
825
  const level2Name = gCPVal(container, 'level2Name', {
813
826
  fontSize: '24',
814
827
  actFontSize: '24',
815
- color: gCPVal(container, 'level2Color', '') || '#333',
816
- actColor: this.mainColor,
817
- bgColor:'',
818
- actBgColor:'',
828
+ color: color,
829
+ actColor:actColoor,
830
+ bgColor:bgColor,
831
+ actBgColor:bgActColor,
819
832
  fontWeight: 'normal',
820
833
  actFontWeight: 'normal',
821
- borderStyle:'solid',
822
- borderColor: 'rgba(0,0,0,0)',
823
- borderWidth: 0,
824
- borderActStyle:'solid',
825
- borderActColor: 'rgba(0,0,0,0)',
826
- borderActWidth:0,
827
834
  },{sKey:'level2NameStatus', fields:['level2Name','level2Color'],isMerge: true});
835
+ debugger
828
836
 
829
837
  const subTitleRadius = gCPVal(container, 'subTitleRadius', ['40rpx'],{sKey:'subTitleRadiusStatus', fields:['subTitleRadius']})||0;
830
838
  const subTitleIconShadow = gCPVal(container, 'subTitleIconShadow', [this.gStyleValue.shadow,'none'], {isShadow:true});
@@ -956,7 +964,7 @@
956
964
  this.isFirst = false;
957
965
  clearTimeout(this.timer);
958
966
  this.timer = setTimeout(() => {
959
- jfbRootExec("getMallProductList", {
967
+ jfbRootExec("getNewMallProductList", {
960
968
  vm: this,
961
969
  data: this.$xdUniHelper.deleteParamEmptyKey(data)
962
970
  })
@@ -1047,13 +1055,12 @@
1047
1055
  getCategoryList(){
1048
1056
  return new Promise((resolve)=>{
1049
1057
  if(this.showCategory==="Y") {
1050
- jfbRootExec("getMallCategoryTree", {
1058
+ jfbRootExec("getNewMallCategoryTree", {
1051
1059
  vm: this,
1052
1060
  data: {
1053
1061
  xnamespace: this.xnamespace,
1054
- parent_id: this.parentId,
1062
+ root_category_id: Number(this.parentId),
1055
1063
  level: 2,
1056
- need_rec: this.options.need_rec
1057
1064
  }
1058
1065
  })
1059
1066
  .then(res => {
@@ -1102,7 +1109,7 @@
1102
1109
  //过滤条件
1103
1110
  getSearchFilterList(){
1104
1111
  let data = this.getFilterListParams();
1105
- jfbRootExec("getSearchFilterList", {
1112
+ jfbRootExec("getNewSearchFilterList", {
1106
1113
  vm: this,
1107
1114
  data: data
1108
1115
  }).then(res => {
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  module.exports = {
4
- getSearchFilterList: {
4
+ getNewSearchFilterList: {
5
5
  items: [
6
6
  {
7
7
  title: '配送方式',
@@ -93,7 +93,7 @@ module.exports = {
93
93
  ],
94
94
  request_id: "f1733f02aa8c9672"
95
95
  },
96
- getMallProductList: {
96
+ getNewMallProductList: {
97
97
  total_size: 8,
98
98
  next_page_token: "1",
99
99
  list: [
@@ -443,7 +443,7 @@ module.exports = {
443
443
  ],
444
444
  request_id: "9512a165463ba45b"
445
445
  },
446
- getMallCategoryTree: {
446
+ getNewMallCategoryTree: {
447
447
  items: [
448
448
  {
449
449
  category_name: "佳节礼品",
@@ -502,66 +502,5 @@ module.exports = {
502
502
  }
503
503
  ],
504
504
  request_id: "bf0aed811fd63214"
505
- },
506
- getMallCategoryChildren: {
507
- items: [
508
- {
509
- category_name: "佳节礼品",
510
- category_id: 10001,
511
- category_icon:
512
- "http://static.e56buy.com/XdnPLVzrdDzhdZJGZvy5Mt2QLhgtYZwV",
513
- children: []
514
- },
515
- {
516
- category_name: "粮油副食",
517
- category_id: 10002,
518
- category_icon:
519
- "http://sandbox-img.jufubao.cn/uploads/20230406/2bcd668a78c0171f83ca68a9dfc2f8f5.jpeg",
520
- children: []
521
- },
522
- {
523
- category_name: "休闲食品",
524
- category_id: 10003,
525
- category_icon:
526
- "http://sandbox-img.jufubao.cn/uploads/20230403/dadf68c84461a3a3f1caa30fe4debc2f.jpg",
527
- children: []
528
- },
529
- {
530
- category_name: "乳品饮料",
531
- category_id: 10004,
532
- category_icon:
533
- "http://sandbox-img.jufubao.cn/uploads/20230324/008363a661eec227e2e1dd91ea6095e0.png",
534
- children: []
535
- },
536
- {
537
- category_name: "家纺用品",
538
- category_id: 10005,
539
- category_icon:
540
- "http://sandbox-img.jufubao.cn/uploads/20230525/b432700f35328c44fc8b8c9f36a113f0.png",
541
- children: []
542
- },
543
- {
544
- category_name: "家用电器",
545
- category_id: 10006,
546
- category_icon:
547
- "http://sandbox-img.jufubao.cn/uploads/20230525/a849865fcb85f7756285a2a96a90811b.jpg",
548
- children: []
549
- },
550
- {
551
- category_name: "日货用品",
552
- category_id: 10007,
553
- category_icon:
554
- "http://sandbox-img.jufubao.cn/uploads/20230525/f56df5f334b392daaa539e74df269dbe.jpg",
555
- children: []
556
- },
557
- {
558
- category_name: "生鲜冷链",
559
- category_id: 10008,
560
- category_icon:
561
- "http://static.e56buy.com/XdHO6sAVMAb8WzwPvtwoo1iuCxh8uWXp",
562
- children: []
563
- }
564
- ],
565
- request_id: "bf0aed811fd63214"
566
505
  }
567
506
  };
@@ -57,6 +57,7 @@
57
57
  <image :src="sub.category_icon" style="width:100%;height:100%"/>
58
58
  </view>
59
59
  </view>
60
+ <view style="margin-top: 8rpx; height: 36rpx"></view>
60
61
  <view
61
62
  class="sub_name"
62
63
  :style="[sub.category_id === (['child','parentNew'].includes(showType)? uiPid:uiCateId )?level2ActNameComp:level2NameComp]"
@@ -332,13 +333,14 @@ export default {
332
333
 
333
334
  methods: {
334
335
  init(navList, pid){
336
+ debugger
335
337
  if(navList.length === 0) return;
336
338
 
337
339
  //预览模式生效
338
340
  if(this.isPreview) {
339
341
  navList = navList.filter(item=>{
340
342
  //显示父级显示全部分类
341
- if(['all', 'parent','parentNew'].includes(this.showType)) return true
343
+ if(['all', 'parent','parentNew','child'].includes(this.showType)) return true
342
344
  //只显示子级去掉全部分类
343
345
  else return item.category_id !== -1
344
346
  });
@@ -353,6 +355,14 @@ export default {
353
355
  this.subCategory = navList[this.tabIndex].children;
354
356
  }
355
357
 
358
+ //图片样式作为一级显示时候(预览模式)
359
+ if(['child','parentNew'].includes(this.showType)) {
360
+ if(this.pid === '') {
361
+ this.uiPid = -1;
362
+ this.initPid = -1;
363
+ }
364
+ }
365
+
356
366
  this.transformNavList = navList;
357
367
  this.refreshNav = Date.now()
358
368
 
@@ -504,12 +514,17 @@ export default {
504
514
  align-content: center;
505
515
  flex-flow: nowrap;
506
516
 
517
+
507
518
  .sub_cate {
508
519
  display: inline-block;
509
520
  margin: 16rpx var(--sub-icon-right-sp) 16rpx 0;
510
521
  padding: 0 16rpx;
511
522
  text-align: center;
512
523
 
524
+ & > view {
525
+ position: relative;
526
+ }
527
+
513
528
  &:last-child {
514
529
  margin-right: 32rpx;
515
530
  }
@@ -541,6 +556,7 @@ export default {
541
556
  margin-top: 8rpx;
542
557
  overflow: hidden;
543
558
  white-space: wrap;
559
+ box-sizing: border-box;
544
560
  word-break: break-all;
545
561
  line-height: 36rpx;
546
562
  height: 36rpx;
@@ -67,7 +67,7 @@
67
67
  <view :style="[subTitleIcon]" class="sub_icon">
68
68
  <image :src="item.category_icon" />
69
69
  </view>
70
- <view :style="[(uiPid === item.category_id?level2ActNameComp:level2NameComp)]">{{item.category_name||item.name}}</view>
70
+ <view class="sub_name" :style="[(uiPid === item.category_id?level2ActNameComp:level2NameComp)]">{{item.category_name||item.name}}</view>
71
71
  </view>
72
72
  </view>
73
73
  <!--一级分类-->
@@ -160,14 +160,19 @@ export default {
160
160
  },
161
161
  cateBarStyleRLComp(){
162
162
  return {
163
- backgroundColor: Color( this.styleConfig.backgroundColor).lighten(.2).hex().toString()
163
+ backgroundColor: Color( this.styleConfig.backgroundColor).lighten(.2).hex().toString(),
164
164
  }
165
165
  },
166
166
  cateBarStyleComp(){
167
+ let orderColor = '';
168
+ let {backgroundColor} = this.styleConfig;
169
+ if(Color(backgroundColor).isDark()) orderColor = Color(backgroundColor).lighten(0.8).toString();
170
+ else if(Color(backgroundColor).isLight()) orderColor = Color(backgroundColor).darken(0.05).toString();
171
+
167
172
  return {
168
173
  top: this.$configProject.isPreview?0:(this.layoutInfo.top) + 'rpx',
169
174
  backgroundColor: this.styleConfig.backgroundColor,
170
- '--border-color': Color( this.styleConfig.backgroundColor).lighten(.5).hex().toString(),
175
+ '--border-color': orderColor,
171
176
  position: this.$configProject.isPreview?'absolute':'fixed',
172
177
  };
173
178
  },
@@ -195,7 +200,8 @@ export default {
195
200
  itemStyleComp(){
196
201
  return {
197
202
  width: this.getWidth(64,5) + 'px',
198
- margin:'0 0 24rpx'
203
+ margin:'0 0 24rpx',
204
+ paddingBottom: '40rpx'
199
205
  }
200
206
  },
201
207
  },
@@ -362,7 +368,7 @@ export default {
362
368
  display: flex;
363
369
  justify-content: center;
364
370
  align-items: center;
365
- border-left: 2rpx solid #f8f8f8;;
371
+ border-left: 4rpx solid var(--border-color);
366
372
  background: #FFFFFF;
367
373
  z-index: 1;
368
374
  flex-shrink: 0;
@@ -397,6 +403,19 @@ export default {
397
403
  align-items: center;
398
404
  font-size: 24rpx;
399
405
  color: #333333;
406
+ position: relative;
407
+
408
+ & > .sub_name {
409
+ left: 0!important;
410
+ right: 0!important;
411
+ text-align: center;
412
+ width: 100%!important;
413
+ overflow: hidden;
414
+ word-break: break-all;
415
+ white-space: wrap;
416
+ height: 36rpx;
417
+ line-height: 36rpx;
418
+ }
400
419
  &.active{
401
420
  color: var(--main-color);
402
421
  }
@@ -25,9 +25,20 @@ export default {
25
25
  borderWidth:level2Name.borderWidth + 'rpx',
26
26
  borderColor:level2Name.borderColor,
27
27
  padding: padding,
28
- borderRadius: radius
28
+ borderRadius: radius,
29
+ ...this.parentNewComp,
29
30
  }
30
31
  },
32
+
33
+ parentNewComp(){
34
+ return {
35
+ position: 'absolute',
36
+ bottom: '0',
37
+ left: '-16rpx',
38
+ width: `calc(100% + 32rpx)`
39
+ }
40
+ },
41
+
31
42
  level2ActNameComp(){
32
43
  if(this.$xdUniHelper.isEmpty(this.tabStyle)) return {}
33
44
  if(this.$xdUniHelper.isEmpty(this.tabStyle['level2Name'])) return {}
@@ -48,7 +59,8 @@ export default {
48
59
  borderWidth:level2Name.borderActWidth + 'rpx',
49
60
  borderColor:level2Name.borderActColor,
50
61
  padding: padding,
51
- borderRadius: radius
62
+ borderRadius: radius,
63
+ ...this.parentNewComp,
52
64
  }
53
65
  },
54
66
 
@@ -6,7 +6,8 @@ import {
6
6
  customVal,
7
7
  cusDisabled ,
8
8
  getCustomAttr,
9
- isArray
9
+ isArray,
10
+ isObject
10
11
  } from "@/utils/AttrTools";
11
12
  import PosterAttr from "@/utils/Attr/PosterAttr";
12
13
  import ProductAttr from "@/utils/Attr/ProductAttr";
@@ -172,7 +173,23 @@ export default (data, gValue,gColor,oldData)=>{
172
173
  inline:false,
173
174
  notice:'建议尺寸:128*128像素',
174
175
  rules: [
175
- {required: true, message: '请上传全部图标', trigger: ['blur', 'change']},
176
+ {
177
+ validator: (rule, value, callback) => {
178
+ if(!value) callback('请上传全部图片图片');
179
+ else {
180
+ if(!isObject(value)){
181
+ callback('请上传全部图片图片');
182
+ }
183
+ else {
184
+ if(!value.url)callback('请上传全部图片图片');
185
+ else callback()
186
+ }
187
+ }
188
+ },
189
+ message: '请上传全部图片图片',
190
+ trigger: ['blur', 'change'],
191
+ required: true,
192
+ }
176
193
  ],
177
194
  },
178
195
  {
@@ -203,6 +220,20 @@ export default (data, gValue,gColor,oldData)=>{
203
220
  groupKey:'content',
204
221
  className: 'input100',
205
222
  hidden: categoryParentType === 'root',
223
+ rules: [
224
+ {
225
+ validator: (rule, value, callback) => {
226
+ if(categoryParentType === 'root') callback();
227
+ else {
228
+ if(!value) callback('请输入父级分类ID');
229
+ else callback()
230
+ }
231
+ },
232
+ message: '请输入父级分类ID',
233
+ trigger: ['blur', 'change'],
234
+ required: true,
235
+ }
236
+ ],
206
237
  },
207
238
  {ele: 'group_end'},
208
239
  {
@@ -1,10 +1,13 @@
1
1
  'use strict';
2
2
 
3
3
  import {cRaBorShadow, dataVal, statusDataVal, statusShow} from "@/utils/AttrTools";
4
- const Color = require('color');
5
4
 
6
5
  export default (data, gValue, gColor, oldData)=>{
7
6
  let filterTopBorder = cRaBorShadow(data , 'filterTopBorder',{dValue:'D'}, gValue)
7
+ let filterBgcColor = '#fff';
8
+ if(gValue.isAdd && gValue.isFirst) {
9
+ if(data['category'] === 'v4') filterBgcColor = '#f8f8f8';
10
+ }
8
11
  return [
9
12
  {
10
13
  ele: 'title',
@@ -70,7 +73,7 @@ export default (data, gValue, gColor, oldData)=>{
70
73
  ele: 'xd-color',
71
74
  valueKey: 'filterBgcColor',
72
75
  groupKey:'style',
73
- value: dataVal({data, key:'filterBgcColor', dValue:'#fff', gValue}),
76
+ value: dataVal({data, key:'filterBgcColor', dValue:filterBgcColor, gValue}),
74
77
  hidden: !statusShow({data, key: 'filterBgcColorStatus', fields:['filterBgcColor'], gValue}),
75
78
  classNmae: 'input80',
76
79
  setting: {
@@ -97,7 +100,7 @@ export default (data, gValue, gColor, oldData)=>{
97
100
  ele: 'xd-color',
98
101
  valueKey: 'filterColor',
99
102
  groupKey:'style',
100
- value: dataVal({data, key:'filterColor', dValue:'#999', gValue}),
103
+ value: dataVal({data, key:'filterColor', dValue:'#333', gValue}),
101
104
  hidden: !statusShow({data, key: 'filterColorStatus', fields:['filterColor'], gValue}),
102
105
  classNmae: 'input80',
103
106
  setting: {
@@ -253,10 +253,10 @@ export default (data, gValue, gColor, oldData)=>{
253
253
  hidden: !statusShow({data, key: 'level2NameStatus', fields:['level2Name','level2Color'], gValue}) || disabled,
254
254
  setting: {
255
255
  fontSize: true,
256
- weight:true,
256
+ weight:false,
257
257
  bgColor:true,
258
258
  selected:true,
259
- isBorder:true,
259
+ isBorder:false,
260
260
  default: level2Name
261
261
  },
262
262
  handleCustom({action, data}) {
@@ -200,6 +200,7 @@ export default (data, gValue, gColor, oldData={})=>{
200
200
  hidden: !statusShow({data, key: 'titleRadiusStatus', fields:['titleRadius'], gValue}),
201
201
  placeholder: '请选择商品是否设置圆角',
202
202
  multiple: false,
203
+ isBackNotValue: true,
203
204
  className: 'input80',
204
205
  groupKey:'style',
205
206
  handleCustom({action, data}) {
@@ -409,7 +410,7 @@ export default (data, gValue, gColor, oldData={})=>{
409
410
  ele: 'xd-radio',
410
411
  groupKey: 'style',
411
412
  valueKey: 'contRadiusStatus',
412
- value: statusDataVal({data, key:'contRadiusStatus',cValue:'N', fields:['contRadius'],gValue}),
413
+ value: statusDataVal({data,key:'contRadiusStatus',cValue:'N', fields:['contRadius'],gValue}),
413
414
  labelInline:true,
414
415
  list: [
415
416
  {label: '默认', value: 'D'},
@@ -428,6 +429,7 @@ export default (data, gValue, gColor, oldData={})=>{
428
429
  placeholder: '请选择商品是否设置圆角',
429
430
  multiple: false,
430
431
  className: 'input80',
432
+ isBackNotValue: true,
431
433
  groupKey:'style',
432
434
  handleCustom({action, data}) {
433
435
  XdBus.getParentApi('getOptionsSettingList')({
@@ -469,6 +471,7 @@ export default (data, gValue, gColor, oldData={})=>{
469
471
  placeholder: '请选择商品图圆角是否设置圆角',
470
472
  multiple: false,
471
473
  className: 'input80',
474
+ isBackNotValue: true,
472
475
  value: dataVal({data, key:'imageRadius', dValue:'10', gValue}),
473
476
  hidden: !statusShow({data, key: 'imageRadiusStatus', fields:['imageRadius'], gValue}),
474
477
  handleCustom({action, data}) {