jufubao-base 1.0.268 → 1.0.269-beta1

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.
@@ -39,62 +39,100 @@
39
39
  <image :src="item.image_url" mode="widthFix" ></image>
40
40
  </view>
41
41
  </view>
42
- <view
43
- v-else
44
- class="jfb-base-poster__one carousel"
45
- :style="{
46
- width: getOneWidth + 'rpx',
47
- height: getOneHeight + 'rpx',
48
- borderRadius: (posterType === '1' ? radius: 0) + 'rpx',
49
- }"
50
- >
51
- <xd-swiper-dot
52
- :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}"
53
- v-if="pageSwiperShow"
54
- :current="current"
55
- :info="info"
56
- field="content_name"
57
- :mode="mode"
58
- :dots-styles="dotStyleData"
59
- >
60
- <!--#ifdef MP-WEIXIN-->
61
- <swiper
62
- class="swiper xd-swiper-content"
42
+ <template v-else>
43
+ <view v-if="nearbyMargin === 'Y'">
44
+ <xd-swiper-dot
63
45
  :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}"
64
- :indicator-dots="false"
65
- :autoplay="carouselTime>0"
66
- :interval="carouselTime"
67
- :duration="500"
46
+ v-if="pageSwiperShow"
68
47
  :current="current"
69
- circular
70
- @animationfinish="handleAnimationfinish"
71
- @change="handleChange"
48
+ :info="info"
49
+ field="content_name"
50
+ :mode="mode"
51
+ :dots-styles="dotStyleData"
72
52
  >
73
- <swiper-item v-for="(item,index) in info" :key="index" @click.stop="handleClick(item,index)">
74
- <image :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}" :src="item['image_url']" mode="widthFix"></image>
75
- </swiper-item>
76
- </swiper>
77
- <!--#endif-->
78
- <!--#ifdef H5-->
79
- <xd-swiper
80
- :indicator-dots="false"
81
- :list="info"
53
+ <swiper
54
+ v-if="nearbyMargin === 'Y'"
55
+ class="swiper xd-swiper-content"
56
+ :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}"
57
+ :indicator-dots="false"
58
+ :autoplay="carouselTime>0"
59
+ :interval="carouselTime"
60
+ :duration="500"
61
+ :current="current"
62
+ circular
63
+ :previous-margin="nearbyMarginWidth"
64
+ :next-margin="nearbyMarginWidth"
65
+ @animationfinish="handleAnimationfinish"
66
+ @change="handleChange"
67
+ >
68
+ <swiper-item v-for="(item,index) in info" :key="index" @click.stop="handleClick(item,index)">
69
+ <image class="swiper_img" :class="{current: current==index}"
70
+ style="width: 100%;height: 100%;"
71
+ :style="{borderRadius: radius + 'rpx'}"
72
+ :src="item['image_url']"
73
+ ></image>
74
+ </swiper-item>
75
+ </swiper>
76
+ </xd-swiper-dot>
77
+
78
+ </view>
79
+ <view
80
+ v-else
81
+ class="jfb-base-poster__one carousel"
82
+ :style="{
83
+ width: getOneWidth + 'rpx',
84
+ height: getOneHeight + 'rpx',
85
+ borderRadius: (posterType === '1' ? radius: 0) + 'rpx',
86
+ }"
87
+ >
88
+ <xd-swiper-dot
89
+ :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}"
90
+ v-if="pageSwiperShow"
82
91
  :current="current"
83
- :width=" getOneWidth + 'rpx'"
84
- :height="getOneHeight + 'rpx'"
85
- :interval="carouselTime"
86
- @onClickItem="handleClick"
87
- @change="handleChange"
88
- @animationfinish="handleAnimationfinish"
92
+ :info="info"
93
+ field="content_name"
94
+ :mode="mode"
95
+ :dots-styles="dotStyleData"
89
96
  >
90
- <template slot-scope="{ item, index}">
91
- <image :src="item['image_url']" mode="widthFix"></image>
92
- </template>
93
- </xd-swiper>
94
- <!--#endif-->
95
- </xd-swiper-dot>
96
- <view v-if="isPreview" class="carousel-mask"></view>
97
- </view>
97
+ <!--#ifdef MP-WEIXIN-->
98
+ <swiper
99
+ class="swiper xd-swiper-content"
100
+ :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}"
101
+ :indicator-dots="false"
102
+ :autoplay="carouselTime>0"
103
+ :interval="carouselTime"
104
+ :duration="500"
105
+ :current="current"
106
+ circular
107
+ @animationfinish="handleAnimationfinish"
108
+ @change="handleChange"
109
+ >
110
+ <swiper-item v-for="(item,index) in info" :key="index" @click.stop="handleClick(item,index)">
111
+ <image :style="{width: getOneWidth + 'rpx', height: getOneHeight + 'rpx'}" :src="item['image_url']" mode="widthFix"></image>
112
+ </swiper-item>
113
+ </swiper>
114
+ <!--#endif-->
115
+ <!--#ifdef H5-->
116
+ <xd-swiper
117
+ :indicator-dots="false"
118
+ :list="info"
119
+ :current="current"
120
+ :width=" getOneWidth + 'rpx'"
121
+ :height="getOneHeight + 'rpx'"
122
+ :interval="carouselTime"
123
+ @onClickItem="handleClick"
124
+ @change="handleChange"
125
+ @animationfinish="handleAnimationfinish"
126
+ >
127
+ <template slot-scope="{ item, index}">
128
+ <image :src="item['image_url']" mode="widthFix"></image>
129
+ </template>
130
+ </xd-swiper>
131
+ <!--#endif-->
132
+ </xd-swiper-dot>
133
+ <view v-if="isPreview" class="carousel-mask"></view>
134
+ </view>
135
+ </template>
98
136
  </template>
99
137
  <!--一分屏-->
100
138
  <!--多分屏-->
@@ -142,7 +180,8 @@
142
180
  mixins: [componentsMixins,extsMixins,JfbBasePosterMixin,posterMixins],
143
181
  data() {
144
182
  return {
145
- selfMask: false,
183
+ //hideMask: true,
184
+ //selfMask: false,
146
185
  pageSwiperShow:false,
147
186
  params: {},
148
187
 
@@ -150,6 +189,7 @@
150
189
  mode:'round', //default 、round 、nav 、dot, indexes
151
190
  current: 0,
152
191
  poster: null,
192
+ nearbyMargin: "N",
153
193
  posterPosition: null,
154
194
  posterType: '1',//分屏模式
155
195
  showType: '', //广告显示方式
@@ -189,6 +229,9 @@
189
229
  })
190
230
  return image
191
231
  },
232
+ nearbyMarginWidth(){
233
+ return this.nearbyMargin === 'Y' ? '80rpx': '0';
234
+ },
192
235
  getOneWidth(){
193
236
  let margin = this.checkValue(this.mS.left, 0) + this.checkValue(this.mS.right, 0);
194
237
  let padding = this.checkValue(this.bgImagePadding.left, 20) + this.checkValue(this.bgImagePadding.right, 20);
@@ -512,6 +555,7 @@
512
555
  this.carouselTime = Number(getContainerPropsValue(container, 'content.carouselTime', 5)) * 1000;
513
556
  this.useNumber = getContainerPropsValue(container, 'content.number', 1);
514
557
  this.bgColor = getContainerPropsValue(container, 'content.bgColor', 'rgba(0,0,0,0)')
558
+ this.nearbyMargin = getContainerPropsValue(container, 'content.nearbyMargin', 'N');
515
559
 
516
560
  if(this.poster.size) {
517
561
  this.width = this.poster.size.width;
@@ -609,6 +653,14 @@
609
653
  display: flex;
610
654
  }
611
655
 
656
+ .swiper_img{
657
+ transform: scale(0.95);
658
+ transition: all 0.5s;
659
+ &.current{
660
+ transform: scale(1);
661
+ }
662
+ }
663
+
612
664
  }
613
665
  &__one.notCarousel {
614
666
  position: relative;
@@ -47,6 +47,86 @@ export default {
47
47
  {label: '普通用户样式', value: 'N'},
48
48
  ]
49
49
  },
50
+ data['is_plus_site']==='Y'&&{
51
+ label: "PLUS会员用户盒子背景图片:",
52
+ ele: 'xd-upload',
53
+ valueKey: 'plusBgImg',
54
+ value: data.plusBgImg || null, //v-model
55
+ defaultValue: data.plusBgImg || null, //默认图片对象
56
+ groupKey: "content",
57
+ slot: true, //按钮是否使用slot
58
+ oneWidth: 445/2, //单个图片显示宽度
59
+ oneHeight: 225/2, //单个图片显示高度
60
+ elinputClassName: 'input40',
61
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
62
+ type: ['jpg', 'png', 'jpeg'],
63
+ styleType: 'one', //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
64
+ uploadType: 'aliyun', //''=>API服务上传 qiniu=>七牛云OSS上传 aliyun=> 阿里云OSS上传
65
+ size: 5, //5M
66
+ action: 'aliyun',
67
+ sort: true, //当上传图片列表时候,是否启用排序
68
+ maxlen: 100, //当上传图片列表时候,最大数量数量
69
+ },
70
+ data['is_plus_site']==='Y'&&{
71
+ label: "PLUS会员页面背景图片:",
72
+ ele: 'xd-upload',
73
+ valueKey: 'plusPageBgImg',
74
+ value: data.plusPageBgImg || null, //v-model
75
+ defaultValue: data.plusPageBgImg || null, //默认图片对象
76
+ groupKey: "content",
77
+ slot: true, //按钮是否使用slot
78
+ oneWidth: 445/2, //单个图片显示宽度
79
+ oneHeight: 225/2, //单个图片显示高度
80
+ elinputClassName: 'input40',
81
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.',
82
+ type: ['jpg', 'png', 'jpeg'],
83
+ styleType: 'one', //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
84
+ uploadType: 'aliyun', //''=>API服务上传 qiniu=>七牛云OSS上传 aliyun=> 阿里云OSS上传
85
+ size: 5, //5M
86
+ action: 'aliyun',
87
+ sort: true, //当上传图片列表时候,是否启用排序
88
+ maxlen: 100, //当上传图片列表时候,最大数量数量
89
+ },
90
+ data['is_plus_site']==='Y'&&{
91
+ label: "PLUS普通用户盒子背景图片:",
92
+ ele: 'xd-upload',
93
+ valueKey: 'normalBgImg',
94
+ value: data.normalBgImg || null, //v-model
95
+ defaultValue: data.normalBgImg || null, //默认图片对象
96
+ groupKey: "content",
97
+ slot: true, //按钮是否使用slot
98
+ oneWidth: 445/2, //单个图片显示宽度
99
+ oneHeight: 225/2, //单个图片显示高度
100
+ elinputClassName: 'input40',
101
+ tipsformet: '上传格式:@imageType@不超过@size@MB.',
102
+ type: ['jpg', 'png', 'jpeg'],
103
+ styleType: 'one', //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
104
+ uploadType: 'aliyun', //''=>API服务上传 qiniu=>七牛云OSS上传 aliyun=> 阿里云OSS上传
105
+ size: 5, //5M
106
+ action: 'aliyun',
107
+ sort: true, //当上传图片列表时候,是否启用排序
108
+ maxlen: 100, //当上传图片列表
109
+ },
110
+ data['is_plus_site']==='Y'&&{
111
+ label: "PLUS普通用户页面背景图片:",
112
+ ele: 'xd-upload',
113
+ valueKey: 'normalPageBgImg',
114
+ value: data.normalPageBgImg || null, //v-model
115
+ defaultValue: data.normalPageBgImg || null, //默认图片对象
116
+ groupKey: "content",
117
+ slot: true, //按钮是否使用slot
118
+ oneWidth: 445/2, //单个图片显示宽度
119
+ oneHeight: 225/2, //单个图片显示高度
120
+ elinputClassName: 'input40',
121
+ tipsformet: '上传格式:@imageType@不超过@size@MB.',
122
+ type: ['jpg', 'png', 'jpeg'],
123
+ styleType: 'one', //其值:one=>单文件上传 auth=>证件正反面上传 list=>多文件上传
124
+ uploadType: 'aliyun', //''=>API服务上传 qiniu=>七牛云OSS上传 aliyun=> 阿里云OSS上传
125
+ size: 5, //5M
126
+ action: 'aliyun',
127
+ sort: true, //当上传图片列表时候,是否启用排序
128
+ maxlen: 100, //当上传图片列表
129
+ },
50
130
  data['is_plus_site']==='N'&&{
51
131
  label: '内容排版:',
52
132
  ele: 'xd-radio',
@@ -24,7 +24,15 @@
24
24
  <view v-if="is_vip==='Y'"><text>PLUS</text>会员</view>
25
25
  <view v-else>普通用户</view>
26
26
  </view>
27
- <view>{{userInfo.phone_number}}</view>
27
+ <view>
28
+ <view v-if="is_vip==='Y'">
29
+ <text style="color:#D19E6B;">已省</text><text style="color: #FEE9CC;">¥30.00</text>
30
+ </view>
31
+ <view v-else>
32
+ <text style="color:#CCCCCC;">开通会员预计可省</text>
33
+ <text style="color:#FFFFFF;">¥49.00</text>
34
+ </view>
35
+ </view>
28
36
  </view>
29
37
  </view>
30
38
  <view @click="handleToCode" class="jfb-base-user-info__body-plus-header-right">
@@ -33,11 +41,20 @@
33
41
  </view>
34
42
  <view :style="[boxPlusStyleCompBottom]" :class="is_vip==='Y'?'is_vip_bottom':'is_normal_bottom'"
35
43
  class="jfb-base-user-info__body-plus-header-bottom">
36
- <view v-if="is_vip==='Y'">点击查看更多会员权益</view>
37
- <view v-else>开通 <span :style="{color:mainColor}">PLUS会员</span>享受更多内容</view>
38
- <view v-if="is_vip==='Y'" @click="handleToView">立即查看</view>
39
- <view v-else @click="handleToOpen">立即开通</view>
44
+ <view class="_left">
45
+ <view v-if="is_vip==='Y'">有效期至:2025年10月01日</view>
46
+ <view v-else></view>
47
+ </view>
48
+ <view class="_right">
49
+ <view v-if="is_vip==='Y'" @click="handleToView">
50
+ <!-- 立即续费 -->
51
+ </view>
52
+ <view v-else @click="handleToOpen">
53
+ <!-- 立即开通 -->
54
+ </view>
55
+ </view>
40
56
  </view>
57
+ <view class="market_data"></view>
41
58
  </view>
42
59
  </view>
43
60
  <view v-else>
@@ -161,20 +178,21 @@
161
178
  padding: this.getMarginAndPadding(this.padding, 0),
162
179
  boxShadow: shadow,
163
180
  border: border,
181
+ backgroundImage: this.is_vip === 'Y' ? `url(${this.plusBgImg})` : `url(${this.normalBgImg})`,
164
182
  }
165
183
  },
166
184
 
167
185
  boxPlusStyleCompTop() {
168
186
  return {
169
187
  borderRadius: `${this.radius + 'rpx'} ${this.radius + 'rpx'} 0 0`,
170
- background: this.is_vip === 'Y' ? this.plusTopBackgroundColor : this.normalTopBackgroundColor
188
+ // background: this.is_vip === 'Y' ? this.plusTopBackgroundColor : this.normalTopBackgroundColor
171
189
  }
172
190
  },
173
191
 
174
192
  boxPlusStyleCompBottom() {
175
193
  return {
176
194
  borderRadius: `0 0 ${this.radius + 'rpx'} ${this.radius + 'rpx'}`,
177
- background: this.is_vip === 'Y' ? this.plusBottomBackgroundColor : this.normalBottomBackgroundColor
195
+ // background: this.is_vip === 'Y' ? this.plusBottomBackgroundColor : this.normalBottomBackgroundColor
178
196
  }
179
197
  },
180
198
 
@@ -282,7 +300,12 @@
282
300
  normalTopBackgroundColor: '',
283
301
  normalBottomBackgroundColor: '',
284
302
  codePath: '',
285
- profilePath: ''
303
+ profilePath: '',
304
+
305
+ plusBgImg: "",
306
+ plusPageBgImg: "",
307
+ normalBgImg: "",
308
+ normalPageBgImg: "",
286
309
  }
287
310
  },
288
311
  watch: {
@@ -403,6 +426,10 @@
403
426
  this.rightContentPadding = getContainerPropsValue(container, 'content.rightContentPadding', {});
404
427
  this.rightContentRadius = getContainerPropsValue(container, 'content.rightContentRadius', 0);
405
428
  //plus
429
+ this.plusBgImg = getServiceUrl(getContainerPropsValue(container, 'content.plusBgImg', { url: ""}).url);
430
+ this.plusPageBgImg = getServiceUrl(getContainerPropsValue(container, 'content.plusPageBgImg', { url: ""}).url);
431
+ this.normalBgImg = getServiceUrl(getContainerPropsValue(container, 'content.normalBgImg', { url: ""}).url);
432
+ this.normalPageBgImg = getServiceUrl(getContainerPropsValue(container, 'content.normalPageBgImg', { url: ""}).url);
406
433
  this.is_plus_site = getContainerPropsValue(container, 'content.is_plus_site', 'N');
407
434
  this.is_plus_preview = getContainerPropsValue(container, 'content.is_plus_preview', 'N');
408
435
  this.plusTopBackgroundColor = getContainerPropsValue(container, 'content.plusTopBackgroundColor', 'linear-gradient(270deg, rgba(250, 211, 140, 1) 0%, rgba(235, 185, 99, 1) 21.19%, rgba(232, 169, 66, 1) 100%)');
@@ -415,6 +442,14 @@
415
442
  this.profilePath = getContainerPropsValue(container, 'content.profilePath', { value: "" }).value;
416
443
  this.plusNickStyle = getContainerPropsValue(container, 'content.plusNickStyle', {});
417
444
  this.normalNickStyle = getContainerPropsValue(container, 'content.normalNickStyle', {});
445
+
446
+ if(this.is_plus_site === 'Y'){
447
+ let bg = this.is_vip === 'Y' ? this.plusPageBgImg : this.normalPageBgImg;
448
+ if(this.$configProject['isPreview']){
449
+ bg = this.is_plus_preview === 'Y' ? this.plusPageBgImg : this.normalPageBgImg;
450
+ }
451
+ this.$xdRoot.$emit("setLayoutPageBg", bg);
452
+ }
418
453
  },
419
454
  handleToPersonal(){
420
455
  this.$xdUniHelper.navigateTo({
@@ -529,13 +564,16 @@
529
564
  }
530
565
 
531
566
  &-plus-header {
567
+ background-size: 100% auto;
568
+ background-repeat: no-repeat;
569
+ background-position: 0% 0%;
532
570
  .is_normal_top {
533
571
  color: #333333;
534
572
 
535
573
  .jfb-base-user-info__body-plus-header-top-left-info-name {
536
574
  &>view:nth-child(2) {
537
- color: #615850;
538
- background: #FFE6C4;
575
+ color: #333333;
576
+ background: #F7E6FF;
539
577
  }
540
578
  }
541
579
  }
@@ -563,6 +601,8 @@
563
601
  display: flex;
564
602
  justify-content: space-between;
565
603
  padding: 40rpx;
604
+ height: 160rpx;
605
+ box-sizing: border-box;
566
606
 
567
607
  &-left {
568
608
  display: flex;
@@ -617,7 +657,27 @@
617
657
  font-size: 24rpx;
618
658
  display: flex;
619
659
  justify-content: space-between;
620
- padding: 20rpx 40rpx;
660
+ height: 72rpx;
661
+ box-sizing: border-box;
662
+ ._left{
663
+ display: flex;
664
+ align-items: center;
665
+ flex: 1;
666
+ padding-left: 40rpx;
667
+ color: rgba(252, 247, 254, 0.8);
668
+ }
669
+ ._right{
670
+ height: 100%;
671
+ width: 200rpx;
672
+ & > view{
673
+ width: 100%;
674
+ height: 100%;
675
+ }
676
+ }
677
+ }
678
+
679
+ .market_data{
680
+ height: 140rpx;
621
681
  }
622
682
  }
623
683
  }