jufubao-base 1.0.237-beta2 → 1.0.237-beta4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.237-beta2",
3
+ "version": "1.0.237-beta4",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -23,7 +23,6 @@
23
23
  </XdFontIcon>
24
24
  </view>
25
25
  <view>{{getAmout(amount)}}</view>
26
- <view>可用:{{getAmout(amount)}}</view>
27
26
  </view>
28
27
  <xd-button v-if="isWithDraw==='Y'" style="margin: 0" size="mini" type="primary"
29
28
  @click="handleWithdraw">提现</xd-button>
@@ -8,10 +8,9 @@ module.exports = [
8
8
  {
9
9
  mapFnName: "getExchangeCode",
10
10
  title: "兑换码",
11
- path: "/member/v1/:xnamespace/exchange/:exchange_code",
11
+ path: "/member/v1/exchange/:exchange_code",
12
12
  isRule: true,
13
13
  params: {
14
- xnamespace: ['命名空间', 'String', '必选'],
15
14
  exchange_code: ['兑换码', 'String', '必选']
16
15
  },
17
16
  isConsole: true,
@@ -106,7 +106,6 @@
106
106
  },
107
107
  methods: {
108
108
  onJfbLoad(options) {
109
- this.setNameSpace(options);
110
109
  },
111
110
  /**
112
111
  * @description 监听事件变化
@@ -130,7 +129,6 @@
130
129
  jfbRootExec("getExchangeCode", {
131
130
  vm: this,
132
131
  data: {
133
- xnamespace: this.xnamespace,
134
132
  exchange_code: this.exchange_code
135
133
  }
136
134
  }).then(res => {
@@ -47,9 +47,9 @@ export default {
47
47
  ele: 'xd-select-pages-path',
48
48
  valueKey: 'cash_pay_path',
49
49
  placeholder: '请选择核销支付路径',
50
+ value: data.cash_pay_path || null,
50
51
  className: 'input100',
51
52
  groupKey:'advanced',
52
- value: null,
53
53
  setting: {
54
54
  router: XdBus.getParentApi('getPagesTree')
55
55
  },
@@ -17,7 +17,7 @@ module.exports = [
17
17
  {
18
18
  mapFnName: "getVipList",
19
19
  title: "会员中心 - 会员卡列表",
20
- path: "/member/v1/:namespace/vip-card",
20
+ path: "/member/v1/vip-card",
21
21
  isRule: false,
22
22
  params: {
23
23
  namespace: ['业务线', 'String', true],
@@ -232,6 +232,26 @@ export default {
232
232
  inline: false,
233
233
  notice: '',
234
234
  },
235
+ {
236
+ label: "PLUS会员banner背景图",
237
+ ele: 'xd-upload',
238
+ valueKey: "bannerBgImg",
239
+ groupKey: "content",
240
+ value: data.bannerBgImg || {},
241
+ defaultValue: data.bannerBgImg || null,
242
+ slot: true,
243
+ oneWidth: 355,
244
+ oneHeight: 92,
245
+ elinputClassName: 'input40',
246
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">710px</span>,高度<span style="color:red">184px</span>',
247
+ type: ['jpg', 'png', 'jpeg'],
248
+ styleType: 'one',
249
+ uploadType: 'aliyun',
250
+ size: 5,
251
+ action: 'action',
252
+ sort: true,
253
+ maxlen: 100,
254
+ },
235
255
  {
236
256
  label: '4大特权图片:',
237
257
  ele: 'xd-upload',
@@ -243,7 +263,7 @@ export default {
243
263
  oneWidth: 375,
244
264
  oneHeight: 500,
245
265
  elinputClassName: 'input40',
246
- tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议高度为<span style="color:red">750px</span>,宽度自适应',
266
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">750px</span>,高度自适应',
247
267
  type: ['jpg', 'png', 'jpeg'],
248
268
  styleType: 'one',
249
269
  uploadType: 'aliyun',
@@ -31,19 +31,22 @@
31
31
  </view>
32
32
  </view>
33
33
  <view v-if="isVip" class="buy_btn" @click="showDrawer=true">立即续费</view>
34
- <view v-else class="buy_btn" @click="showDrawer=true">立即开通</view>
34
+ <!-- <view v-else class="buy_btn" @click="showDrawer=true">立即开通</view> -->
35
35
  </view>
36
36
 
37
37
  <!-- plus会员权益 -->
38
38
  <view class="vip_info">
39
- <view class="vip_box">
39
+ <view class="vip_box" :style="{
40
+ backgroundImage: `url(${bannerBgImg})`,
41
+ }">
40
42
  <view class="vip_box-left">
41
43
  <view class="vip_box-title">PLUS会员</view>
42
- <view>开通享受更多权益</view>
44
+ <view v-if="isVip">有效期至:{{ vip_expire_time }}</view>
45
+ <view v-else>开通享受更多权益</view>
43
46
  </view>
44
- <view class="vip_logo">
47
+ <!-- <view class="vip_logo">
45
48
  <image :src="siteLogo" mode="aspectFill"></image>
46
- </view>
49
+ </view> -->
47
50
  </view>
48
51
  </view>
49
52
  <view>
@@ -118,13 +121,14 @@
118
121
 
119
122
  showDrawer: false,
120
123
  uInfo: {},
121
- xnamespace: "",
122
124
  vipCardList: [],
123
125
  save_amount: 0,
126
+ vip_expire_time: "",
124
127
 
125
128
  siteLogo: "",
126
129
  //todo
127
130
  vipDetailPath: "",
131
+ bannerBgImg: "",
128
132
  specialImage: "",
129
133
  }
130
134
  },
@@ -152,7 +156,6 @@
152
156
  },
153
157
  methods: {
154
158
  onJfbLoad(options) {
155
- this.setNameSpace(options);
156
159
  this.p_getBaseUserInfo();
157
160
  this.p_getVipMoneySaving();
158
161
  this.p_getVipList();
@@ -163,6 +166,7 @@
163
166
  */
164
167
  init(container) {
165
168
  this.vipDetailPath = getContainerPropsValue(container, 'content.vipDetailPath', {value: "/system/system/vipdetail"}).value;
169
+ this.bannerBgImg = getServiceUrl(getContainerPropsValue(container, 'content.bannerBgImg', {url: ""}).url);
166
170
  this.specialImage = getServiceUrl(getContainerPropsValue(container, 'content.specialImage', {url: ""}).url);
167
171
  },
168
172
  p_getBaseUserInfo(){
@@ -171,6 +175,7 @@
171
175
  data: {}
172
176
  }).then(res => {
173
177
  this.uInfo = res;
178
+ this.vip_expire_time = this.$xdUniHelper.getDate(res.vip_expire_time * 1000 ).fullTime;
174
179
  })
175
180
  },
176
181
  p_getVipMoneySaving(){
@@ -184,9 +189,7 @@
184
189
  p_getVipList(){
185
190
  jfbRootExec("getVipList", {
186
191
  vm: this,
187
- data: {
188
- namespace: this.xnamespace,
189
- }
192
+ data: {}
190
193
  }).then(res => {
191
194
  this.vipCardList = res.list;
192
195
  })
@@ -291,12 +294,15 @@
291
294
  }
292
295
 
293
296
  .vip_info{
294
- padding: 20rpx;
297
+ // padding: 20rpx;
295
298
  .vip_box{
296
- width: 100%;
299
+ width: 710rpx;
297
300
  height: 184rpx;
301
+ margin: auto;
298
302
  border-radius: 24rpx;
299
- background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
303
+ // background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
304
+ background-size: 100% 100%;
305
+ background-repeat: no-repeat;
300
306
  display: flex;
301
307
  align-items: center;
302
308
  justify-content: space-between;
@@ -8,11 +8,10 @@ module.exports = [
8
8
  {
9
9
  mapFnName: "getVipConfirm",
10
10
  title: "获取vip确认信息",
11
- path: "/member/v1/:xnamespace/order/confirm",
11
+ path: "/member/v1/order/confirm",
12
12
  isRule: false,
13
13
  data: {
14
14
  vip_card_id: ["vip卡id", "Number", "必选"],
15
- xnamespace: ['业务线', 'String', '必选']
16
15
  },
17
16
  isConsole: true,
18
17
  disabled: true,
@@ -98,7 +98,6 @@
98
98
  },
99
99
  methods: {
100
100
  onJfbLoad(options) {
101
- this.setNameSpace(options);
102
101
  this.vip_card_id = options.vip_card_id;
103
102
  this.p_getVipConfirm();
104
103
  },
@@ -115,7 +114,6 @@
115
114
  vm: this,
116
115
  data: {
117
116
  vip_card_id: this.vip_card_id,
118
- xnamespace: this.xnamespace
119
117
  }
120
118
  }).then(res => {
121
119
  this.vipInfo = res;
@@ -6,51 +6,15 @@
6
6
  */
7
7
  module.exports = [
8
8
  {
9
- //设置方法名字当别忘记加上【模块名字】:Poster
10
- mapFnName: 'getPosterByIdFilmSquate',
11
- title: '获取电影广场列表',
12
- path: '/api/account/film/list-film-square',
9
+ mapFnName: 'getListPosterGroupContent', //自定义方法名字(必选)
10
+ title: '获取内容',
11
+ path: '/cms/v1/ad-content',
13
12
  isRule: false,
14
13
  params: {
15
- last_key: ['当前页', 'Number', '必选'],
16
- page_size: ['每页数量', 'Number', '必选'],
17
- },
18
- isConsole: true,
19
- disabled: true,
20
- },
21
- {
22
- //设置方法名字当别忘记加上【模块名字】:Poster
23
- mapFnName: 'updatePosterFilmPaiqiDate',
24
- title: '更新排期',
25
- path: '/api/account/film/paiqi-date',
26
- isRule: false,
27
- params: {
28
- film_id: ['电影id', 'Number', '必选'],
29
- cinema_id: ['影院id', 'Number', '必选'],
30
- },
31
- isConsole: true,
32
- disabled: true,
33
- },
34
- {
35
- //设置方法名字当别忘记加上【模块名字】:Poster
36
- mapFnName: 'removePosterFilmAddress',
37
- title: '删除我的配送地址',
38
- path: '/api/account/film/paiqi-date',
39
- isRule: false,
40
- params: {
41
- film_id: ['电影id', 'Number', '必选'],
42
- },
43
- isConsole: true,
44
- disabled: true,
45
- },
46
- {
47
- //设置方法名字当别忘记加上【模块名字】:Poster
48
- mapFnName: 'addPosterFilmcart',
49
- title: '添加购物车',
50
- path: '/api/account/film/paiqi-date',
51
- isRule: false,
52
- params: {
53
- film_id: ['电影id', 'Number', '必选'],
14
+ scene: ['使用场景', 'String', '选填'],
15
+ container_id: ['插件ID', 'String', '必填'],
16
+ page_id: ['页面ID', 'String', '必填'],
17
+ page_size: ['记录条数', 'Number', '必填'],
54
18
  },
55
19
  isConsole: true,
56
20
  disabled: true,
@@ -8,41 +8,139 @@ export default {
8
8
  content: (data) => {
9
9
  return [
10
10
  {
11
- label: '背景颜色:',
12
- ele: 'xd-color',
13
- valueKey: 'bgColor',
14
- value: data.bgColor || '',
15
- placeholder: '请输入占位框背景颜色',
16
- groupKey:'content',
11
+ label: '外边距:',
12
+ ele: 'xd-margin-padding',
13
+ valueKey: 'bodyMargin',
14
+ groupKey: 'style',
15
+ value: data['bodyMargin'] || null,
16
+ setting: {
17
+ type: 'margin',
18
+ },
19
+ placeholder: '请设置外边距',
20
+ inline: false,
21
+ notice: '设置外边距,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">0</span>像素',
17
22
  },
18
23
  {
19
- label: '选中路径:',
20
- groupKey:'advanced',
21
- className: 'input100',
22
- ele: 'xd-select-pages-path',
23
- valueKey: 'select-pages-path',
24
- value: data['select-pages-path'] || null,
24
+ label: '外填充:',
25
+ ele: 'xd-margin-padding',
26
+ valueKey: 'bodyPadding',
27
+ groupKey: 'style',
28
+ value: data['bodyPadding'] || null,
25
29
  setting: {
26
- router: XdBus.getParentApi('getPagesTree')
30
+ type: 'padding',
27
31
  },
32
+ placeholder: '请设置外填充',
33
+ inline: false,
34
+ notice: '设置填充值,<span style="color: red">单位:像素</span>。默认值:<span style="color: red">20</span>像素',
28
35
  },
29
- data.bgColor && {
30
- label: '高度:',
31
- ele: 'el-input',
32
- groupKey:'style',
33
- type: 'number',
34
- valueKey: 'height',
35
- value: data.height || 100,
36
- placeholder: '请输入占位框高度,单位像素,默认:10px',
36
+ {
37
+ label: '圆角设置:',
38
+ ele: 'xd-site-select-list',
39
+ valueKey: 'radius',
40
+ value: data['radius'] || '20',
41
+ labelInline: true,
42
+ groupKey: 'style',
43
+ placeholder: '请选择圆角设置',
44
+ multiple: false,
37
45
  className: 'input60',
46
+ handleCustom({ action, data }) {
47
+ XdBus.getParentApi('getOptionsSettingList')({
48
+ setting_id: 'edtix_style_radius',
49
+ key: Date.now()
50
+ })
51
+ .then(res => {
52
+ data.cb(res.list)
53
+ })
54
+ .catch(error => {
55
+ console.error(error);
56
+ });
57
+ },
58
+ },
59
+ {
60
+ label: '背景图:',
61
+ ele: 'xd-upload',
62
+ valueKey: 'backgroundImage',
63
+ groupKey: 'content',
64
+ value: data.backgroundImage || {},
65
+ defaultValue: data.backgroundImage || null,
66
+ slot: true,
67
+ oneWidth: 375,
68
+ oneHeight: 290,
69
+ elinputClassName: 'input40',
70
+ tipsformet: `上传文件格式:@imageType@,不超过@size@MB,尺寸:375*290像素`,
71
+ type: ['jpg', 'png', 'jpeg'],
72
+ styleType: 'one',
73
+ uploadType: 'aliyun',
74
+ size: 5,
75
+ action: 'action',
76
+ sort: true,
77
+ maxlen: 100,
78
+ },
79
+ {
80
+ label: "主标题:",
81
+ ele: "xd-tinymce",
82
+ valueKey: "title",
83
+ value: data.title || '',
84
+ groupKey: 'content',
85
+ imageConfig: {
86
+ sort: true,
87
+ maxlen: 100,
88
+ action: "action",
89
+ size: 5,
90
+ tipsformet: "上传文件格式:@imageType@,不超过@size@MB.",
91
+ uploadType: "aliyun",
92
+ type: ["jpg", "png", "jpeg"],
93
+ },
38
94
  },
39
95
  {
40
- label: '', //label
41
- groupKey:'advanced',
42
- ele: 'slot', //package 名称
43
- slot: 'is_reference',
96
+ label: "副标题:",
97
+ ele: "el-input",
98
+ valueKey: "subtitle",
99
+ groupKey: 'content',
100
+ value: data.subtitle || '',
101
+ },
102
+ {
103
+ label: '是否展示更多:',
104
+ ele: 'xd-radio',
105
+ valueKey: 'is_show_more',
106
+ value: data['is_show_more'] || 'Y',
107
+ groupKey: 'content',
108
+ placeholder: '请选择是否展示更多',
109
+ multiple: false,
110
+ className: 'input80',
111
+ list: [
112
+ { label: '展示', value: 'Y' },
113
+ { label: '隐藏', value: 'N' },
114
+ ]
115
+ },
116
+ data['is_show_more'] === 'Y' && {
117
+ label: '更多跳转路径:',
118
+ ele: 'xd-select-pages-path',
119
+ valueKey: 'morePath',
120
+ groupKey: 'advanced',
121
+ placeholder: '请选择更多跳转路径',
122
+ value: data['morePath'] || null,
123
+ setting: {
124
+ router: XdBus.getParentApi('getPagesTree'),
125
+ },
126
+ inline: false,
127
+ },
128
+ {
129
+ label: '广告组:',
130
+ ele: 'xd-site-poster-group',
131
+ valueKey: 'posterGroup',
132
+ groupKey: 'content',
133
+ value: data.posterGroup || {},
134
+ isKey: true,
135
+ key: new Date().getTime(),
136
+ setting: {
137
+ scene: { label: '广告', value: 'normal' },
138
+ },
139
+ rules: [
140
+ { required: true, message: '请选择广告位', trigger: 'change' },
141
+ ],
44
142
  },
45
- ].filter(i=>i)
143
+ ].filter(i => i)
46
144
  },
47
145
  advanced: [],
48
146
  };
@@ -1,43 +1,72 @@
1
1
  <template>
2
- <view
3
- class="jfb-base-poster-group"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
2
+ <view class="jfb-base-poster-group" @click="handleEditxSelect" :class="{ editx : isEditx && active }">
7
3
  <!--#ifdef H5-->
8
- <view
9
- class="jfb-base-poster-group__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
4
+ <view class="jfb-base-poster-group__edit" :class="{ editx : isEditx && active }" v-if="isEditx && active">
13
5
  <view class="jfb-base-poster-group__edit-icon" @click="delEdit">删除</view>
14
6
  </view>
15
7
  <!-- #endif -->
16
- <view class="jfb-base-poster-group__body">
17
- <view>测试插件( {{containerId}} )</view>
8
+ <view class="jfb-base-poster-group__body" :style="[bodyStyleComp]">
9
+ <view class="jfb-base-poster-group__body-header">
10
+ <view class="jfb-base-poster-group__body-header-title">
11
+ <XdContentXss v-html="title"></XdContentXss>
12
+ <view @click="handleToMore" v-if="is_show_more==='Y'" class="jfb-base-poster-group__body-header-title-more">
13
+ 更多
14
+ <XdFontIcon size="20" icon="iconxiangyou_xian"></XdFontIcon>
15
+ </view>
16
+ </view>
17
+ <view class="jfb-base-poster-group__body-header-subtitle">
18
+ {{subtitle}}
19
+ </view>
20
+ </view>
21
+ <view class="jfb-base-poster-group__body-content">
22
+ <view class="jfb-base-poster-group__body-content-tabs">
23
+ <view @click="handleChangeTab(item)" :style="tab===item.random?[activeStyleComp]:[normalStyleComp]"
24
+ class="jfb-base-poster-group__body-content-tabs-item" v-for="(item, index) in posterGroup.group"
25
+ :key="index">
26
+ {{item.title}}
27
+ </view>
28
+ </view>
29
+ <view v-if="imageGroup&&imageGroup.length>0" class="jfb-base-poster-group__body-content-images">
30
+ <image :style="{width: imageWidth,height:imageWidth}" @click="handleClick(item)"
31
+ v-for="(item,index) in imageGroup" :key="index" :src="item.image_url">
32
+ </image>
33
+ </view>
34
+ </view>
18
35
  </view>
19
36
  </view>
20
37
  </template>
21
38
 
22
39
  <script>
23
40
  import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
41
+ import XdContentXss from '@/components/XdContentXss/XdContentXss';
24
42
  import { jfbRootExec } from "@/utils/xd.event";
25
43
  import JfbBasePosterGroupMixin from "./JfbBasePosterGroupMixin";
26
44
  import { getContainerPropsValue } from "@/utils/xd.base";
45
+ import getServiceUrl from "@/common/getServiceUrl";
27
46
  import componentsMixins from "@/mixins/componentsMixins";
28
47
  import extsMixins from "@/mixins/extsMixins";
29
48
  export default {
30
49
  name: "JfbBasePosterGroup",
31
50
  components: {
32
- XdFontIcon
51
+ XdFontIcon,
52
+ XdContentXss
33
53
  },
34
54
  mixins: [
35
55
  componentsMixins, extsMixins, JfbBasePosterGroupMixin
36
56
  ],
37
57
  data() {
38
58
  return {
39
-
40
- //todo
59
+ posterGroup: {},
60
+ morePath: '',
61
+ is_show_more: 'Y',
62
+ backgroundImage: '',
63
+ title: '',
64
+ subtitle: '',
65
+ imageGroup: [],
66
+ tab: '',
67
+ radius: 0,
68
+ margin: {},
69
+ padding: {},
41
70
  }
42
71
  },
43
72
  watch: {
@@ -46,33 +75,100 @@
46
75
  if (this.$configProject['isPreview']) this.init(value)
47
76
  },
48
77
  },
78
+ computed: {
79
+ bodyStyleComp() {
80
+ return {
81
+ backgroundImage: `url(${this.backgroundImage})`,
82
+ backgroundSize: '100% 100%',
83
+ backgroundPosition: 'center',
84
+ backgroundRepeat: 'no-repeat',
85
+ borderRadius: `${this.radius}rpx`,
86
+ margin: this.getMarginAndPadding(this.margin, 20),
87
+ padding: this.getMarginAndPadding(this.padding, 20),
88
+ }
89
+ },
90
+ activeStyleComp() {
91
+ return {
92
+ color: '#6D4604',
93
+ background: '#FDDC83',
94
+ border: '1px solid #FDDC83',
95
+ borderRadius: '40rpx'
96
+ }
97
+ },
98
+ normalStyleComp() {
99
+ return {
100
+ color: '#F5DC9E',
101
+ border: '1px solid #F5DC9E',
102
+ borderRadius: '40rpx'
103
+ }
104
+ },
105
+ imageWidth() {
106
+ let width = 750
107
+ let paddingLeft = this.checkValue(this.padding.left,20)
108
+ let paddingRight = this.checkValue(this.padding.right,20)
109
+ let marginLeft = this.checkValue(this.margin.left,20)
110
+ let marginRight = this.checkValue(this.margin.right,20)
111
+ width = width - paddingLeft - paddingRight - marginLeft - marginRight
112
+ width = width - 60 //减去右边距
113
+ return `${width / 4}rpx`
114
+ }
115
+ },
49
116
  created() {
50
117
  this.init(this.container);
51
-
52
- //todo
53
118
  },
54
119
  methods: {
55
120
  onJfbLoad(options) {
56
-
57
- // jfbRootExec('baiduUserLogin', {
58
-
59
- // vm: this,// data: {
60
-
61
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
62
-
63
- // }
64
-
65
- // }).then().catch()
121
+ this.getPosterGroup(this.posterGroup.group[0])
122
+ },
123
+ getPosterGroup(item) {
124
+ this.tab = item.random;
125
+ this.imageGroup = [];
126
+ jfbRootExec('getListPosterGroupContent', {
127
+ vm: this,
128
+ data: {
129
+ page_id: this.pageAttr["page_id"], //页面ID
130
+ container_id: this.containerId + item.random, //组件ID
131
+ page_size: 200
132
+ }
133
+ }).then(res => {
134
+ this.imageGroup = res.list.map(item => {
135
+ return {
136
+ ...item,
137
+ image_url: getServiceUrl(item.image_url)
138
+ }
139
+ })
140
+ }).catch()
66
141
  },
67
142
  /**
68
143
  * @description 监听事件变化
69
144
  * @param container {object} 业务组件对象自己
70
145
  */
71
146
  init(container) {
72
-
73
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
74
-
75
- //this.height = getContainerPropsValue(container, 'content.height', 10);
147
+ this.posterGroup = getContainerPropsValue(container, 'content.posterGroup', {});
148
+ this.morePath = getContainerPropsValue(container, 'content.morePath', { value: "" }).value;
149
+ this.is_show_more = getContainerPropsValue(container, 'content.is_show_more', 'Y');
150
+ this.backgroundImage = getServiceUrl(getContainerPropsValue(container, 'content.backgroundImage', { url: "" }).url);
151
+ this.title = getContainerPropsValue(container, 'content.title', '<p style="font-weight:bold;font-size:16px"><span style="color: #FFF">全球大牌,会员低至</span><span style="color: #F2D894">8折</span></p>');
152
+ this.subtitle = getContainerPropsValue(container, 'content.subtitle', '超300+品牌商品');
153
+ this.radius = getContainerPropsValue(container, 'content.radius', 20);
154
+ this.margin = getContainerPropsValue(container, 'content.bodyMargin', {});
155
+ this.padding = getContainerPropsValue(container, 'content.bodyPadding', {});
156
+ },
157
+ checkValue(value, dValue = 0) {
158
+ if (value === undefined || value === '' || value === null) return dValue;
159
+ return Number(value || 0);
160
+ },
161
+ handleClick(item) {
162
+ if (this.isPreview) return;
163
+ this.handlePosterClick(item)
164
+ },
165
+ handleToMore() {
166
+ this.$xdUniHelper.navigateTo({
167
+ url: this.morePath,
168
+ });
169
+ },
170
+ handleChangeTab(item) {
171
+ this.getPosterGroup(item)
76
172
  },
77
173
  onJfbScroll(options) {
78
174
  console.log('event.onJfbScroll', options)
@@ -104,8 +200,66 @@
104
200
  @import "./JfbBasePosterGroupLess.less";
105
201
 
106
202
  .jfb-base-poster-group {
107
- &__body{
203
+ &__body {
204
+ padding: 24rpx;
205
+ margin: 20rpx;
206
+ border-radius: 30rpx;
207
+
208
+ &-header {
209
+ &-title {
210
+ display: flex;
211
+ align-items: center;
212
+ justify-content: space-between;
213
+ margin-bottom: 10rpx;
214
+
215
+ &-more {
216
+ display: flex;
217
+ align-items: center;
218
+ color: #FFFFFF;
219
+ font-size: 24rpx;
220
+ }
221
+ }
108
222
 
223
+ &-subtitle {
224
+ color: #FFFFFF;
225
+ font-size: 24rpx;
226
+ }
227
+ }
228
+
229
+ &-content {
230
+ &-tabs {
231
+ display: flex;
232
+ flex-wrap: wrap;
233
+
234
+ &-item {
235
+ margin-top: 20rpx;
236
+ margin-right: 20rpx;
237
+ padding: 11rpx 25rpx;
238
+ font-size: 25rpx;
239
+ }
240
+ }
241
+
242
+ &-images {
243
+ display: flex;
244
+ flex-wrap: wrap;
245
+ align-content: flex-start;
246
+
247
+ &>image {
248
+ display: flex;
249
+ justify-content: center;
250
+ align-items: center;
251
+ margin-top: 20rpx;
252
+ margin-right: 20rpx;
253
+ width: 145rpx;
254
+ height: 145rpx;
255
+ border-radius: 14rpx;
256
+ }
257
+
258
+ &>image:nth-child(4n) {
259
+ margin-right: 0;
260
+ }
261
+ }
262
+ }
109
263
  }
110
264
  }
111
- </style>
265
+ </style>
@@ -29,8 +29,8 @@
29
29
  </swiper-item>
30
30
  </swiper>
31
31
  </view>
32
- <!-- #ifdef MP-WEIXIN -->
33
- <view class="share_wrap">
32
+
33
+ <view v-if="showShare" class="share_wrap">
34
34
  <view class="share_btn" @click="toSendWx">
35
35
  <image src="https://sandbox-img.jufubao.cn/uploads/20250410/57bc093618bc51a85dc8bb68825d2b97.png?x-oss-process=style/size8" mode="widthFix"></image>
36
36
  </view>
@@ -38,7 +38,6 @@
38
38
  <image src="https://sandbox-img1.jufubao.cn/uploads/20250410/faeb136bfd684ab6fa4608208ad26294.png?x-oss-process=style/size8" mode="widthFix"></image>
39
39
  </view>
40
40
  </view>
41
- <!-- #endif -->
42
41
 
43
42
  <view class="visit_tip">
44
43
  好友使用你的邀请码成功注册后<br/>Ta将成为你的邀请用户
@@ -69,11 +68,21 @@
69
68
  closeMask: true,
70
69
  shareIndex: 0,
71
70
  shareList: [],
71
+ isPreview: false,
72
72
  //todo
73
73
  }
74
74
  },
75
75
  computed: {
76
76
  ...mapState(["shareInfo"]),
77
+ showShare(){
78
+ if(this.isPreview) return true;
79
+ // #ifdef MP-WEIXIN
80
+ return true;
81
+ // #endif
82
+ // #ifdef H5
83
+ return false;
84
+ // #endif
85
+ }
77
86
  },
78
87
  watch: {
79
88
  container(value, oldValue) {
@@ -83,7 +92,7 @@
83
92
  },
84
93
  created() {
85
94
  this.init(this.container);
86
-
95
+ this.isPreview = this.$configProject['isPreview'];
87
96
  //todo
88
97
  },
89
98
  methods: {
@@ -544,6 +544,18 @@ export default {
544
544
  },
545
545
  inline: false,
546
546
  },
547
+ data['is_plus_site']==='Y'&&{
548
+ label: '二维码路径:',
549
+ ele: 'xd-select-pages-path',
550
+ valueKey: 'codePath',
551
+ groupKey:'advanced',
552
+ placeholder: '请选择二维码路径',
553
+ value: data['codePath'] || null,
554
+ setting: {
555
+ router: XdBus.getParentApi('getPagesTree'),
556
+ },
557
+ inline: false,
558
+ },
547
559
  {
548
560
  label: '',
549
561
  ele: 'slot',
@@ -24,14 +24,14 @@
24
24
  </view>
25
25
  <view class="jfb-base-user-info__body-plus-header-top-left-info">
26
26
  <view class="jfb-base-user-info__body-plus-header-top-left-info-name" v-if="logined">
27
- <view>{{userInfo|getName}} </view>
27
+ <view :style="[nickNameStyle]">{{userInfo|getName}} </view>
28
28
  <view v-if="is_vip==='Y'"><text>PLUS</text>会员</view>
29
29
  <view v-else>普通用户</view>
30
30
  </view>
31
31
  <view>{{userInfo.phone_number}}</view>
32
32
  </view>
33
33
  </view>
34
- <view class="jfb-base-user-info__body-plus-header-right">
34
+ <view @click="handleToCode" class="jfb-base-user-info__body-plus-header-right">
35
35
  <xd-font-icon size="40" icon="iconerweima"></xd-font-icon>
36
36
  </view>
37
37
  </view>
@@ -270,6 +270,7 @@
270
270
  plusBottomBackgroundColor: '',
271
271
  normalTopBackgroundColor: '',
272
272
  normalBottomBackgroundColor: '',
273
+ codePath: ''
273
274
  }
274
275
  },
275
276
  watch: {
@@ -397,6 +398,7 @@
397
398
  this.normalBottomBackgroundColor = getContainerPropsValue(container, 'content.normalBottomBackgroundColor', 'linear-gradient(90deg, #FCF2DC 0%, #FAE7C4 100%)');
398
399
  this.openVipPath = getContainerPropsValue(container, 'content.openVipPath', { value: "" }).value;
399
400
  this.viewPath = getContainerPropsValue(container, 'content.viewPath', { value: "" }).value;
401
+ this.codePath = getContainerPropsValue(container, 'content.codePath', { value: "" }).value;
400
402
  },
401
403
  handleAddress() {
402
404
  this.$xdUniHelper.navigateTo({
@@ -412,6 +414,11 @@
412
414
  this.$xdUniHelper.navigateTo({
413
415
  url: this.viewPath
414
416
  })
417
+ },
418
+ handleToCode() {
419
+ this.$xdUniHelper.navigateTo({
420
+ url: this.codePath
421
+ })
415
422
  }
416
423
  }
417
424
  }