jufubao-base 1.0.237-beta4 → 1.0.237-beta6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/JfbBaseBalance/JfbBaseBalance.vue +4 -1
- package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +3 -3
- package/src/components/JfbBaseConsumpCode/JfbBaseConsumpCode.vue +13 -2
- package/src/components/JfbBaseFastLink/Attr.js +12 -1
- package/src/components/JfbBaseFastLink/JfbBaseFastLink.vue +66 -0
- package/src/components/JfbBaseHeaderColumn/Attr.js +75 -0
- package/src/components/JfbBaseHeaderColumn/JfbBaseHeaderColumn.vue +46 -2
- package/src/components/JfbBaseNoticeDialog/JfbBaseNoticeDialog.vue +2 -2
- package/src/components/JfbBaseOpenVip/Attr.js +41 -0
- package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +31 -4
- package/src/components/JfbBaseOpenVip/Mock.js +1 -1
- package/src/components/JfbBaseOpenVip/XdVipList.vue +7 -1
- package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +13 -4
- package/src/components/JfbBaseOpenVipDetail/Mock.js +13 -11
- package/src/components/JfbBasePay/Attr.js +40 -0
- package/src/components/JfbBasePay/JfbBasePay.vue +12 -4
- package/src/components/JfbBasePay/Mock.js +0 -9
- package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +1 -1
- package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +12 -8
- package/src/components/JfbBasePoster/Attr.js +1 -1
- package/src/components/JfbBasePosterBigSmall/JfbBasePosterBigSmall.vue +2 -2
- package/src/components/JfbBasePosterGroup/Attr.js +8 -0
- package/src/components/JfbBasePosterGroup/JfbBasePosterGroup.vue +5 -2
- package/src/components/JfbBaseShare/JfbBaseShare.vue +3 -1
- package/src/components/JfbBaseTfkSearch/ContentProduct.vue +1 -0
- package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +4 -0
- package/src/components/JfbBaseTfkSearch/listMixins.js +2 -1
- package/src/components/JfbBaseUserInfo/Attr.js +61 -1
- package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +29 -5
- package/src/components/JfbBaseUserOrder/Attr.js +16 -0
- package/src/components/JfbBaseUserOrder/JfbBaseUserOrder.vue +11 -2
- package/src/components/JfbBaseWithdraw/JfbBaseWithdraw.vue +19 -3
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<!-- #endif -->
|
|
8
8
|
<view class="jfb-base-balance__body">
|
|
9
9
|
<view class="jfb-base-balance__body-tab">
|
|
10
|
-
<view v-for="(item,index) in wallet_list" :key="index" @click="handleSwitchTab(item)"
|
|
10
|
+
<view :style="{color:wallet_type===item.wallet_type?mainColor:'#333333'}" v-for="(item,index) in wallet_list" :key="index" @click="handleSwitchTab(item)"
|
|
11
11
|
class="jfb-base-balance__body-tab-item">
|
|
12
12
|
{{item.show_name}}
|
|
13
13
|
<view v-if="wallet_type===item.wallet_type" class="check" :style="{background: mainColor
|
|
@@ -219,6 +219,9 @@
|
|
|
219
219
|
},
|
|
220
220
|
onJfbShow(options) {
|
|
221
221
|
console.log('event.onJfbShow', options)
|
|
222
|
+
this.method = options.method
|
|
223
|
+
this.getContent()
|
|
224
|
+
this.getDetail()
|
|
222
225
|
},
|
|
223
226
|
onJfbHide(options) {
|
|
224
227
|
console.log('event.onJfbHide', options)
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<xd-content-xss :html="description"></xd-content-xss>
|
|
27
27
|
</view>
|
|
28
28
|
</view>
|
|
29
|
-
<view class="fixed_bottom" :style="
|
|
29
|
+
<view class="fixed_bottom" :style="fixed_bottom">
|
|
30
30
|
<xd-button type="primary" width="600rpx" @click="searchCode">查询</xd-button>
|
|
31
31
|
<view class="plus_privacy">开通视为同意 <text @click.stop="handlePrivacy('privacy_service')"></text>《共享PLUS会员用户协议》</view>
|
|
32
32
|
</view>
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
<xd-list-item label="套餐期限" paddingLR="40rpx">{{ vipInfo.life_cycle_label }}</xd-list-item>
|
|
39
39
|
<xd-list-item label="套餐金额" paddingLR="40rpx">¥{{ $xdUniHelper.divisionFloatNumber(vipInfo.sale_price, 100) }}</xd-list-item>
|
|
40
40
|
</view>
|
|
41
|
-
<view class="fixed_bottom" :style="
|
|
41
|
+
<view class="fixed_bottom" :style="fixed_bottom">
|
|
42
42
|
<xd-button type="primary" width="600rpx" @click="p_createVipOrder">立即兑换</xd-button>
|
|
43
43
|
<view class="plus_privacy">开通视为同意 <text @click.stop="handlePrivacy('privacy_service')"></text>《共享PLUS会员用户协议》</view>
|
|
44
44
|
</view>
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
}
|
|
91
91
|
},
|
|
92
92
|
fixed_bottom() {
|
|
93
|
-
return this.fixedStyle({
|
|
93
|
+
return this.fixedStyle({ height: 36, zIndex: 111})
|
|
94
94
|
},
|
|
95
95
|
},
|
|
96
96
|
watch: {
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
|
|
80
80
|
</view>
|
|
81
81
|
</view>
|
|
82
|
-
<XdDialog :show.sync="showDialog" :showClose="false" :showTitle="
|
|
82
|
+
<XdDialog :show.sync="showDialog" :showClose="false" :showTitle="true">
|
|
83
83
|
<view class="dialog-title" slot="title">门店确认</view>
|
|
84
84
|
<view class="dialog-content">
|
|
85
85
|
<view>当前门店:<span :style="{color:mainColor}">{{shopName}}</span></view>
|
|
@@ -192,6 +192,8 @@
|
|
|
192
192
|
}
|
|
193
193
|
},
|
|
194
194
|
created() {
|
|
195
|
+
console.log(this.siteInfo,'configProject');
|
|
196
|
+
|
|
195
197
|
this.init(this.container);
|
|
196
198
|
},
|
|
197
199
|
methods: {
|
|
@@ -725,11 +727,12 @@
|
|
|
725
727
|
.jfb-base-consump-code {
|
|
726
728
|
&__body {
|
|
727
729
|
.content-box {
|
|
728
|
-
margin:
|
|
730
|
+
margin: 0 30rpx 0 30rpx;
|
|
729
731
|
background-color: #fff;
|
|
730
732
|
padding: 81rpx 32rpx 32rpx 32rpx;
|
|
731
733
|
border-radius: 24rpx;
|
|
732
734
|
position: relative;
|
|
735
|
+
top: 158rpx;
|
|
733
736
|
display: flex;
|
|
734
737
|
flex-direction: column;
|
|
735
738
|
align-items: center;
|
|
@@ -886,16 +889,19 @@
|
|
|
886
889
|
&-item {
|
|
887
890
|
display: flex;
|
|
888
891
|
margin-top: 60rpx;
|
|
892
|
+
align-items: baseline;
|
|
889
893
|
|
|
890
894
|
&-label {
|
|
891
895
|
color: #999999;
|
|
892
896
|
font-size: 30rpx;
|
|
893
897
|
margin-right: 64rpx;
|
|
898
|
+
flex-shrink: 0;
|
|
894
899
|
}
|
|
895
900
|
|
|
896
901
|
&-tags {
|
|
897
902
|
display: flex;
|
|
898
903
|
align-items: flex-start;
|
|
904
|
+
flex-wrap: wrap;
|
|
899
905
|
|
|
900
906
|
&>view {
|
|
901
907
|
margin-right: 32rpx;
|
|
@@ -904,6 +910,11 @@
|
|
|
904
910
|
padding: 16rpx 24rpx;
|
|
905
911
|
border: 2rpx solid #EEEEEE;
|
|
906
912
|
color: #CCCCCC;
|
|
913
|
+
margin-bottom: 18rpx;
|
|
914
|
+
}
|
|
915
|
+
|
|
916
|
+
&>view:last-child {
|
|
917
|
+
margin-bottom: 0;
|
|
907
918
|
}
|
|
908
919
|
|
|
909
920
|
}
|
|
@@ -24,7 +24,8 @@ export default {
|
|
|
24
24
|
multiple: false,
|
|
25
25
|
className: 'input80',
|
|
26
26
|
list: [
|
|
27
|
-
{label: '
|
|
27
|
+
{label: '垂直', value: 'noraml'},
|
|
28
|
+
{label: '水平', value: 'horizontal'},
|
|
28
29
|
{label: '悬浮', value: 'fixed'},
|
|
29
30
|
],
|
|
30
31
|
inline: false,
|
|
@@ -53,6 +54,16 @@ export default {
|
|
|
53
54
|
placeholder: '请输入自定义名称',
|
|
54
55
|
className: 'input80',
|
|
55
56
|
},
|
|
57
|
+
{
|
|
58
|
+
label: '自定义服务名称:',
|
|
59
|
+
ele: 'el-input',
|
|
60
|
+
type: 'text',
|
|
61
|
+
groupKey:'content',
|
|
62
|
+
valueKey: 'customName',
|
|
63
|
+
value: data['customName']? data['customName']: '我的服务',
|
|
64
|
+
placeholder: '请输入自定义服务名称',
|
|
65
|
+
className: 'input80',
|
|
66
|
+
},
|
|
56
67
|
{
|
|
57
68
|
label: '背景颜色:',
|
|
58
69
|
ele: 'xd-color',
|
|
@@ -56,6 +56,22 @@
|
|
|
56
56
|
:layoutInfo="layoutInfo"
|
|
57
57
|
></xd-fast-nav>
|
|
58
58
|
</template>
|
|
59
|
+
<template v-if="is_layout === 'horizontal'">
|
|
60
|
+
<view :style="[horizontalStyle]">
|
|
61
|
+
<view class="x-line"></view>
|
|
62
|
+
<view class="fast-link__horizontal-title">{{customName}}</view>
|
|
63
|
+
<view class="fast-link__horizontal" v-if="list.length > 0">
|
|
64
|
+
<view :style="[horizontalItemStyle]" class="fast-link__horizontal-item" v-for="item in list" :key="item.key" @click="handleClick(item)">
|
|
65
|
+
<view class="fast-link__horizontal-item-icon" v-if="item.icon">
|
|
66
|
+
<xd-font-icon :color="iconColor" :size="item.size" :icon="item.icon"></xd-font-icon>
|
|
67
|
+
</view>
|
|
68
|
+
<view class="fast-link__horizontal-item-text" :style="{color: color, fontSize: fontSize + 'rpx'}">
|
|
69
|
+
<view>{{item.name}}</view>
|
|
70
|
+
</view>
|
|
71
|
+
</view>
|
|
72
|
+
</view>
|
|
73
|
+
</view>
|
|
74
|
+
</template>
|
|
59
75
|
</view>
|
|
60
76
|
</view>
|
|
61
77
|
</template>
|
|
@@ -107,6 +123,8 @@
|
|
|
107
123
|
margin: {},
|
|
108
124
|
padding:{},
|
|
109
125
|
rowSpacing: 20, //间距
|
|
126
|
+
|
|
127
|
+
customName: '我的服务'
|
|
110
128
|
}
|
|
111
129
|
},
|
|
112
130
|
watch: {
|
|
@@ -117,6 +135,22 @@
|
|
|
117
135
|
},
|
|
118
136
|
|
|
119
137
|
computed: {
|
|
138
|
+
horizontalStyle(){
|
|
139
|
+
let border = 0;
|
|
140
|
+
if (this.is_border === 'Y') border = `${this.is_border_w}rpx solid ${this.is_border_c}`;
|
|
141
|
+
return {
|
|
142
|
+
margin: this.getMarginAndPadding(this.margin, 20),
|
|
143
|
+
padding:this.getMarginAndPadding(this.padding, 20),
|
|
144
|
+
border,
|
|
145
|
+
background: this.backgroundColor,
|
|
146
|
+
borderRadius: this.radius + 'rpx',
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
horizontalItemStyle(){
|
|
150
|
+
return {
|
|
151
|
+
marginBottom: this.rowSpacing + 'rpx',
|
|
152
|
+
}
|
|
153
|
+
},
|
|
120
154
|
bodyStyle(){
|
|
121
155
|
let margin = `${this.checkValue(this.margin.top, 20)}rpx`;
|
|
122
156
|
margin = `${margin} ${this.checkValue(this.margin.right, 20)}rpx`;
|
|
@@ -199,6 +233,7 @@
|
|
|
199
233
|
this.subColor = getContainerPropsValue(container, 'content.textSubColor', '#000');
|
|
200
234
|
this.fontSubSize = getContainerPropsValue(container, 'content.fontSubSize', 24);
|
|
201
235
|
this.isNotExpand = getContainerPropsValue(container, 'content.isNotExpand', 'Y');
|
|
236
|
+
this.customName = getContainerPropsValue(container, 'content.customName', '我的服务');
|
|
202
237
|
if(this.is_layout === 'fixed') {
|
|
203
238
|
this.listNave = this.list.map(item=>{
|
|
204
239
|
let {appValue,path} = item.path
|
|
@@ -228,6 +263,14 @@
|
|
|
228
263
|
return index < 3
|
|
229
264
|
});
|
|
230
265
|
|
|
266
|
+
} else if(this.is_layout === 'horizontal'){
|
|
267
|
+
const remainder = this.list.length % 4;
|
|
268
|
+
if (remainder !== 0) {
|
|
269
|
+
const needed = 4 - remainder;
|
|
270
|
+
for (let i = 0; i < needed; i++) {
|
|
271
|
+
this.list.push({}); // 或者你可以插入其他默认值
|
|
272
|
+
}
|
|
273
|
+
}
|
|
231
274
|
}
|
|
232
275
|
},
|
|
233
276
|
}
|
|
@@ -285,6 +328,29 @@
|
|
|
285
328
|
align-items: center;
|
|
286
329
|
}
|
|
287
330
|
}
|
|
331
|
+
&__horizontal {
|
|
332
|
+
display: flex;
|
|
333
|
+
justify-content: space-around;
|
|
334
|
+
flex-wrap: wrap;
|
|
335
|
+
&-title {
|
|
336
|
+
color: #000000;
|
|
337
|
+
font-size: 26rpx;
|
|
338
|
+
font-weight: 500;
|
|
339
|
+
margin-bottom: 43rpx;
|
|
340
|
+
padding-left: 36rpx;
|
|
341
|
+
}
|
|
342
|
+
&-item {
|
|
343
|
+
display: flex;
|
|
344
|
+
flex-direction: column;
|
|
345
|
+
justify-content: center;
|
|
346
|
+
align-items: center;
|
|
347
|
+
box-sizing: border-box;
|
|
348
|
+
width: 25%;
|
|
349
|
+
&-icon {
|
|
350
|
+
margin-bottom: 22rpx;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
288
354
|
}
|
|
289
355
|
|
|
290
356
|
</style>
|
|
@@ -312,6 +312,28 @@ export default {
|
|
|
312
312
|
groupKey:'style',
|
|
313
313
|
hidden: true,
|
|
314
314
|
},
|
|
315
|
+
{
|
|
316
|
+
label: "是否展示二维码",
|
|
317
|
+
ele: "xd-radio",
|
|
318
|
+
valueKey: "showQrcode",
|
|
319
|
+
value: data.showQrcode || "N",
|
|
320
|
+
list: [
|
|
321
|
+
{label: "不显示", value: "N"},
|
|
322
|
+
{label: "显示", value: "Y"}
|
|
323
|
+
],
|
|
324
|
+
groupKey:'content',
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
label: "是否展示扫一扫",
|
|
328
|
+
ele: "xd-radio",
|
|
329
|
+
valueKey: "showScan",
|
|
330
|
+
value: data.showScan || "N",
|
|
331
|
+
list: [
|
|
332
|
+
{label: "不显示", value: "N"},
|
|
333
|
+
{label: "显示", value: "Y"}
|
|
334
|
+
],
|
|
335
|
+
groupKey:'content',
|
|
336
|
+
},
|
|
315
337
|
{
|
|
316
338
|
label: "是否展示快捷入口",
|
|
317
339
|
ele: "xd-radio",
|
|
@@ -368,6 +390,33 @@ export default {
|
|
|
368
390
|
placeholder: '请选择快捷入口背景颜色',
|
|
369
391
|
classNmae: 'input80',
|
|
370
392
|
},
|
|
393
|
+
data.showQrcode === 'Y' && {
|
|
394
|
+
ele: 'title',
|
|
395
|
+
label: '二维码样式设置',
|
|
396
|
+
size: 'small',
|
|
397
|
+
groupKey:'style',
|
|
398
|
+
},
|
|
399
|
+
data.showQrcode === 'Y' && {
|
|
400
|
+
label: "二维码大小:",
|
|
401
|
+
ele: "el-input",
|
|
402
|
+
valueKey: "qrcodeSize",
|
|
403
|
+
value: data.qrcodeSize || 32,
|
|
404
|
+
type: "number",
|
|
405
|
+
groupKey: "style",
|
|
406
|
+
},
|
|
407
|
+
data.showScan === 'Y' && {
|
|
408
|
+
ele: "title",
|
|
409
|
+
label: "扫一扫样式设置",
|
|
410
|
+
size: "small",
|
|
411
|
+
groupKey: "style",
|
|
412
|
+
},
|
|
413
|
+
data.showScan === 'Y' && {
|
|
414
|
+
label: "扫一扫图标颜色:",
|
|
415
|
+
ele: 'xd-color',
|
|
416
|
+
valueKey: "scanIconColor",
|
|
417
|
+
value: data.scanIconColor || '',
|
|
418
|
+
groupKey:'style',
|
|
419
|
+
},
|
|
371
420
|
{
|
|
372
421
|
label: '是否有边框:',
|
|
373
422
|
ele: 'xd-radio',
|
|
@@ -441,6 +490,32 @@ export default {
|
|
|
441
490
|
notice:'<div><span style="color:red">客服类型</span>不需要配置</div>',
|
|
442
491
|
inline: false,
|
|
443
492
|
},
|
|
493
|
+
{
|
|
494
|
+
label: '二维码跳转链接:',
|
|
495
|
+
ele: 'xd-select-pages-path',
|
|
496
|
+
valueKey: 'qrcodePath',
|
|
497
|
+
groupKey:'advanced',
|
|
498
|
+
placeholder: '选择二维码跳转链接',
|
|
499
|
+
value: data['qrcodePath'] || null,
|
|
500
|
+
setting: {
|
|
501
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
502
|
+
},
|
|
503
|
+
inline: false,
|
|
504
|
+
hidden: data.showQrcode === 'N'
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
label: "扫一扫跳转链接:",
|
|
508
|
+
ele: 'xd-select-pages-path',
|
|
509
|
+
valueKey: "scanPath",
|
|
510
|
+
groupKey:'advanced',
|
|
511
|
+
placeholder: '选择扫一扫跳转链接',
|
|
512
|
+
value: data['scanPath'] || null,
|
|
513
|
+
setting: {
|
|
514
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
515
|
+
},
|
|
516
|
+
inline: false,
|
|
517
|
+
hidden: data.showScan === 'N'
|
|
518
|
+
},
|
|
444
519
|
{
|
|
445
520
|
label: '',
|
|
446
521
|
ele: 'slot',
|
|
@@ -66,6 +66,9 @@
|
|
|
66
66
|
:key="showLocationKey"
|
|
67
67
|
></xd-city-show-api>
|
|
68
68
|
</view>
|
|
69
|
+
<view v-if="showScan==='Y'" class="scan_in" @click="handleScanClick">
|
|
70
|
+
<xd-font-icon :size="32" :color="scanIconColor" icon="iconsaoma1"></xd-font-icon>
|
|
71
|
+
</view>
|
|
69
72
|
<xd-font-icon v-if="searchIconPosition==='left'" :icon="icon" :color="iconColor" size="32"/>
|
|
70
73
|
<input
|
|
71
74
|
v-if="useSearch==='Y'"
|
|
@@ -84,6 +87,9 @@
|
|
|
84
87
|
@click.stop="doSearch"
|
|
85
88
|
>{{searchBtnText || '搜索'}}</view>
|
|
86
89
|
</view>
|
|
90
|
+
<view v-if="showQrcode==='Y'" class="qr_code" @click="handleQrCodeClick">
|
|
91
|
+
<xd-font-icon :size="qrcodeSize" icon="iconerweima"></xd-font-icon>
|
|
92
|
+
</view>
|
|
87
93
|
<view v-if="showSearchBtn==='Y' && searchBtnPosition==='out'"
|
|
88
94
|
class="search_btn_out"
|
|
89
95
|
:style="[searchBtnStyle]"
|
|
@@ -212,6 +218,12 @@
|
|
|
212
218
|
searchBoxRadius: 30,
|
|
213
219
|
bottomBorder: "",
|
|
214
220
|
inputBorder: "",
|
|
221
|
+
showQrcode: "",
|
|
222
|
+
qrcodeSize: 32,
|
|
223
|
+
qrcodePath: "",
|
|
224
|
+
showScan: "",
|
|
225
|
+
scanIconColor: "",
|
|
226
|
+
scanPath: "",
|
|
215
227
|
}
|
|
216
228
|
},
|
|
217
229
|
watch: {
|
|
@@ -243,8 +255,10 @@
|
|
|
243
255
|
this.useSearch = getContainerPropsValue(container, "content.useSearch", "Y");
|
|
244
256
|
this.searchPagePath = getContainerPropsValue(container, "content.searchPagePath", {value:""}).value;
|
|
245
257
|
this.choseCityPath = getContainerPropsValue(container, "content.choseCityPath", {value:""}).value;
|
|
246
|
-
|
|
247
|
-
|
|
258
|
+
this.showQrcode = getContainerPropsValue(container, "content.showQrcode", "");
|
|
259
|
+
this.qrcodeSize = getContainerPropsValue(container, "content.qrcodeSize", 32);
|
|
260
|
+
this.showScan = getContainerPropsValue(container, "content.showScan", "");
|
|
261
|
+
this.scanIconColor = getContainerPropsValue(container, "content.scanIconColor", "#333");
|
|
248
262
|
//基础
|
|
249
263
|
this.backgroundColor = getContainerPropsValue(container, "content.backgroundColor", '#fff');
|
|
250
264
|
this.icon = getContainerPropsValue(container, "content.icon", 'iconsousuo_mian');
|
|
@@ -282,6 +296,8 @@
|
|
|
282
296
|
this.showQuickEntry = getContainerPropsValue(container, 'content.showQuickEntry', "N");
|
|
283
297
|
this.quickEntryType = getContainerPropsValue(container, 'content.quickEntryType', "");
|
|
284
298
|
this.quickEntryPath = getContainerPropsValue(container, 'content.quickEntryPath', {value:""}).value;
|
|
299
|
+
this.qrcodePath = getContainerPropsValue(container, 'content.qrcodePath', {value:""}).value;
|
|
300
|
+
this.scanPath = getContainerPropsValue(container, 'content.scanPath', {value:""}).value;
|
|
285
301
|
|
|
286
302
|
let name , logo, platform_logo;
|
|
287
303
|
if (this.projectAttr['site_name']) name = this.projectAttr['site_name'];
|
|
@@ -320,6 +336,16 @@
|
|
|
320
336
|
})
|
|
321
337
|
}
|
|
322
338
|
},
|
|
339
|
+
handleQrCodeClick(){
|
|
340
|
+
this.$xdUniHelper.navigateTo({
|
|
341
|
+
url: this.qrcodePath
|
|
342
|
+
})
|
|
343
|
+
},
|
|
344
|
+
handleScanClick(){
|
|
345
|
+
this.$xdUniHelper.navigateTo({
|
|
346
|
+
url: this.scanPath
|
|
347
|
+
})
|
|
348
|
+
},
|
|
323
349
|
|
|
324
350
|
/***
|
|
325
351
|
* @description 定位完成事件
|
|
@@ -477,6 +503,20 @@
|
|
|
477
503
|
padding: 0;
|
|
478
504
|
}
|
|
479
505
|
}
|
|
506
|
+
.scan_in{
|
|
507
|
+
position: relative;
|
|
508
|
+
padding-right: 28rpx;
|
|
509
|
+
margin-right: 20rpx;
|
|
510
|
+
&::before{
|
|
511
|
+
content: " ";
|
|
512
|
+
position: absolute;
|
|
513
|
+
width: 2rpx;
|
|
514
|
+
height: 100%;
|
|
515
|
+
background-color: #CCCCCC;
|
|
516
|
+
right: -0rpx;
|
|
517
|
+
top: 0rpx;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
480
520
|
.search_input{
|
|
481
521
|
flex: 1;
|
|
482
522
|
text-align: left;
|
|
@@ -510,6 +550,10 @@
|
|
|
510
550
|
align-items: center;
|
|
511
551
|
justify-content: center;
|
|
512
552
|
}
|
|
553
|
+
|
|
554
|
+
.qr_code{
|
|
555
|
+
margin-left: 16rpx;
|
|
556
|
+
}
|
|
513
557
|
}
|
|
514
558
|
}
|
|
515
559
|
}
|
|
@@ -139,7 +139,7 @@ export default {
|
|
|
139
139
|
this.contentList = res.list
|
|
140
140
|
this.currentImage = getServiceUrl(
|
|
141
141
|
this.contentList[0].image_url,
|
|
142
|
-
"
|
|
142
|
+
"size8"
|
|
143
143
|
);
|
|
144
144
|
this.currentLinkUrl = this.getLinkUrl(
|
|
145
145
|
this.contentList[0].redirect_data
|
|
@@ -216,7 +216,7 @@ export default {
|
|
|
216
216
|
);
|
|
217
217
|
this.currentImage = getServiceUrl(
|
|
218
218
|
this.contentList[this.currentIndex].image_url,
|
|
219
|
-
"
|
|
219
|
+
"size8"
|
|
220
220
|
);
|
|
221
221
|
},
|
|
222
222
|
handleToLink() {
|
|
@@ -7,6 +7,17 @@ export default {
|
|
|
7
7
|
style: [],
|
|
8
8
|
content: (data) => {
|
|
9
9
|
return [
|
|
10
|
+
{
|
|
11
|
+
label: "是否展示兑换码",
|
|
12
|
+
ele: "xd-radio",
|
|
13
|
+
valueKey: 'showExchangeCode',
|
|
14
|
+
value: data.showExchangeCode || "Y",
|
|
15
|
+
groupKey: "content",
|
|
16
|
+
list: [
|
|
17
|
+
{label: "展示", value: "Y"},
|
|
18
|
+
{label: "不展示", value: "N"},
|
|
19
|
+
]
|
|
20
|
+
},
|
|
10
21
|
{
|
|
11
22
|
label: '共享PLUS会员用户协议:',
|
|
12
23
|
ele: 'xd-site-news',
|
|
@@ -251,6 +262,9 @@ export default {
|
|
|
251
262
|
action: 'action',
|
|
252
263
|
sort: true,
|
|
253
264
|
maxlen: 100,
|
|
265
|
+
rules: [
|
|
266
|
+
{required: true, message: '请添加背景图', trigger: 'change'},
|
|
267
|
+
],
|
|
254
268
|
},
|
|
255
269
|
{
|
|
256
270
|
label: '4大特权图片:',
|
|
@@ -271,6 +285,9 @@ export default {
|
|
|
271
285
|
action: 'action',
|
|
272
286
|
sort: true,
|
|
273
287
|
maxlen: 100,
|
|
288
|
+
rules: [
|
|
289
|
+
{required: true, message: '请添加特权图片', trigger: 'change'},
|
|
290
|
+
],
|
|
274
291
|
},
|
|
275
292
|
{
|
|
276
293
|
label: '会员详情路径:',
|
|
@@ -284,6 +301,30 @@ export default {
|
|
|
284
301
|
},
|
|
285
302
|
inline: false,
|
|
286
303
|
},
|
|
304
|
+
{
|
|
305
|
+
label: '兑换码详情路径:',
|
|
306
|
+
ele: 'xd-select-pages-path',
|
|
307
|
+
valueKey: 'exchangeCodePath',
|
|
308
|
+
groupKey:'advanced',
|
|
309
|
+
placeholder: '请选择兑换码详情路径',
|
|
310
|
+
value: data['exchangeCodePath'] || null,
|
|
311
|
+
setting: {
|
|
312
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
313
|
+
},
|
|
314
|
+
inline: false,
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
label: '省钱明细页面路径:',
|
|
318
|
+
ele: 'xd-select-pages-path',
|
|
319
|
+
valueKey: 'moneyDetailPath',
|
|
320
|
+
groupKey:'advanced',
|
|
321
|
+
placeholder: '请选择省钱明细页面路径',
|
|
322
|
+
value: data['moneyDetailPath'] || null,
|
|
323
|
+
setting: {
|
|
324
|
+
router: XdBus.getParentApi('getPagesTree'),
|
|
325
|
+
},
|
|
326
|
+
inline: false,
|
|
327
|
+
},
|
|
287
328
|
].filter(i=>i)
|
|
288
329
|
},
|
|
289
330
|
advanced: [],
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
<view v-else class="vip_level">普通用户</view>
|
|
27
27
|
</view>
|
|
28
28
|
<view class="u_sub">
|
|
29
|
-
<view v-if="isVip" style="color:#999999;">已省{{ $xdUniHelper.divisionFloatNumber(save_amount, 100) }}</view>
|
|
29
|
+
<view v-if="isVip" style="color:#999999;" @click="handleToDetail">已省{{ $xdUniHelper.divisionFloatNumber(save_amount, 100) }}</view>
|
|
30
30
|
<view v-else style="color:#333333;">{{ uInfo.phone_number }}</view>
|
|
31
31
|
</view>
|
|
32
32
|
</view>
|
|
@@ -75,14 +75,14 @@
|
|
|
75
75
|
</view> -->
|
|
76
76
|
</view>
|
|
77
77
|
|
|
78
|
-
<xd-vip-list v-if="!isVip" :list="
|
|
78
|
+
<xd-vip-list v-if="!isVip" :list="showVipCardList"
|
|
79
79
|
@handlePrivacy="handlePrivacy"
|
|
80
80
|
@toVipDetail="toVipDetail"
|
|
81
81
|
></xd-vip-list>
|
|
82
82
|
|
|
83
83
|
<xd-down-drawer :show.sync="showDrawer" height="480rpx">
|
|
84
84
|
<view class="drawer_title">立即续费</view>
|
|
85
|
-
<xd-vip-list :list="
|
|
85
|
+
<xd-vip-list :list="showVipCardList"
|
|
86
86
|
@handlePrivacy="handlePrivacy"
|
|
87
87
|
@toVipDetail="toVipDetail"
|
|
88
88
|
></xd-vip-list>
|
|
@@ -126,10 +126,18 @@
|
|
|
126
126
|
vip_expire_time: "",
|
|
127
127
|
|
|
128
128
|
siteLogo: "",
|
|
129
|
+
exchangeCodeVip: {
|
|
130
|
+
product_name: "兑换码",
|
|
131
|
+
sale_price: 0,
|
|
132
|
+
vip_card_id: -1
|
|
133
|
+
},
|
|
129
134
|
//todo
|
|
130
135
|
vipDetailPath: "",
|
|
131
136
|
bannerBgImg: "",
|
|
132
137
|
specialImage: "",
|
|
138
|
+
showExchangeCode: "",
|
|
139
|
+
exchangeCodePath: "",
|
|
140
|
+
moneyDetailPath: "",
|
|
133
141
|
}
|
|
134
142
|
},
|
|
135
143
|
computed: {
|
|
@@ -141,6 +149,9 @@
|
|
|
141
149
|
},
|
|
142
150
|
isVip(){
|
|
143
151
|
return this.uInfo.user_level === 'VIP';
|
|
152
|
+
},
|
|
153
|
+
showVipCardList(){
|
|
154
|
+
return this.showExchangeCode === 'Y' ? [this.exchangeCodeVip, ...this.vipCardList] : [...this.vipCardList]
|
|
144
155
|
}
|
|
145
156
|
},
|
|
146
157
|
watch: {
|
|
@@ -168,6 +179,9 @@
|
|
|
168
179
|
this.vipDetailPath = getContainerPropsValue(container, 'content.vipDetailPath', {value: "/system/system/vipdetail"}).value;
|
|
169
180
|
this.bannerBgImg = getServiceUrl(getContainerPropsValue(container, 'content.bannerBgImg', {url: ""}).url);
|
|
170
181
|
this.specialImage = getServiceUrl(getContainerPropsValue(container, 'content.specialImage', {url: ""}).url);
|
|
182
|
+
this.exchangeCodePath = getContainerPropsValue(container, 'content.exchangeCodePath', {value: ""}).value;
|
|
183
|
+
this.showExchangeCode = getContainerPropsValue(container, 'content.showExchangeCode', '');
|
|
184
|
+
this.moneyDetailPath = getContainerPropsValue(container, 'content.moneyDetailPath', {value: ""}).value;
|
|
171
185
|
},
|
|
172
186
|
p_getBaseUserInfo(){
|
|
173
187
|
jfbRootExec("getOpenBaseUserInfo", {
|
|
@@ -194,6 +208,11 @@
|
|
|
194
208
|
this.vipCardList = res.list;
|
|
195
209
|
})
|
|
196
210
|
},
|
|
211
|
+
handleToDetail(){
|
|
212
|
+
this.$xdUniHelper.navigateTo({
|
|
213
|
+
url: this.moneyDetailPath
|
|
214
|
+
})
|
|
215
|
+
},
|
|
197
216
|
handlePrivacy(code){
|
|
198
217
|
let params = `page_id=${this.pageAttr["page_id"]}`;
|
|
199
218
|
params = `${params}&container_id=${this.containerId}${code}`;
|
|
@@ -202,6 +221,12 @@
|
|
|
202
221
|
})
|
|
203
222
|
},
|
|
204
223
|
toVipDetail(vip_card_id){
|
|
224
|
+
if(vip_card_id === -1){
|
|
225
|
+
this.$xdUniHelper.navigateTo({
|
|
226
|
+
url: this.exchangeCodePath
|
|
227
|
+
})
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
205
230
|
this.$xdUniHelper.navigateTo({
|
|
206
231
|
url: `${this.vipDetailPath}?vip_card_id=${vip_card_id}`
|
|
207
232
|
})
|
|
@@ -213,7 +238,8 @@
|
|
|
213
238
|
console.log('event.onJfbReachBottom', options)
|
|
214
239
|
},
|
|
215
240
|
onJfbShow(options) {
|
|
216
|
-
console.log('event.onJfbShow', options)
|
|
241
|
+
// console.log('event.onJfbShow', options)
|
|
242
|
+
this.onJfbLoad(options)
|
|
217
243
|
},
|
|
218
244
|
onJfbHide(options) {
|
|
219
245
|
console.log('event.onJfbHide', options)
|
|
@@ -300,6 +326,7 @@
|
|
|
300
326
|
height: 184rpx;
|
|
301
327
|
margin: auto;
|
|
302
328
|
border-radius: 24rpx;
|
|
329
|
+
background-color: #E8A841;
|
|
303
330
|
// background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
|
|
304
331
|
background-size: 100% 100%;
|
|
305
332
|
background-repeat: no-repeat;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
module.exports = {
|
|
4
|
-
getOpenBaseUserInfo: {"user_name":"","user_code":"Uf4zx6EPfV","nickname":"未来~","real_name":"","head_url":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTJsajZzh53IB56crRSdmKvRbjT4V1Ha8v5uCOkASbWS0GibgLeic8OKBzAwUyBa3vZGhjwmd6RfpG9g\/132","province_code":"","city_code":"","province_name":"","city_name":"","sex":"","sex_name":"未知","birthday_date":"","phone_number":"13611111111","show_user_name":"未来~","user_level":"
|
|
4
|
+
getOpenBaseUserInfo: {"user_name":"","user_code":"Uf4zx6EPfV","nickname":"未来~","real_name":"","head_url":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/Q0j4TwGTfTJsajZzh53IB56crRSdmKvRbjT4V1Ha8v5uCOkASbWS0GibgLeic8OKBzAwUyBa3vZGhjwmd6RfpG9g\/132","province_code":"","city_code":"","province_name":"","city_name":"","sex":"","sex_name":"未知","birthday_date":"","phone_number":"13611111111","show_user_name":"未来~","user_level":"","vip_expire_time":1745026677,"request_id":"250e5709e6c95066"},
|
|
5
5
|
getVipList: {"total_size":3,"next_page_token":"","list":[{"vip_card_id":3,"product_id":60038520,"product_name":"体验卡","sale_price":200,"vip_card_icon":""},{"vip_card_id":2,"product_id":60038519,"product_name":"月卡","sale_price":2678,"vip_card_icon":""},{"vip_card_id":1,"product_id":60038515,"product_name":"测1","sale_price":20085,"vip_card_icon":""}],"request_id":"6b4aef5e06411d8a"},
|
|
6
6
|
getVipMoneySaving: { "save_amount": 100 , "request_id": "6b4aef5e06411d8a" }
|
|
7
7
|
}
|
|
@@ -10,7 +10,13 @@
|
|
|
10
10
|
</view>
|
|
11
11
|
</view>
|
|
12
12
|
<view class="vip_pay">
|
|
13
|
-
<view class="pay_btn" @click="toVipDetail"
|
|
13
|
+
<view class="pay_btn" @click="toVipDetail">
|
|
14
|
+
<template v-if="vip_card_id===-1">0元开通</template>
|
|
15
|
+
<template v-else>
|
|
16
|
+
立即支付 ¥{{ $xdUniHelper.divisionFloatNumber(curVipCard.sale_price, 100) }}
|
|
17
|
+
{{ curVipCard.vip_card_life_cycle_unit ? '/'+curVipCard.vip_card_life_cycle_unit:'' }}
|
|
18
|
+
</template>
|
|
19
|
+
</view>
|
|
14
20
|
<view class="vip_tip">开通视为同意<text @click.stop="handlePrivacy('privacy_service')">《共享PLUS会员用户协议》</text></view>
|
|
15
21
|
</view>
|
|
16
22
|
</view>
|