jufubao-base 1.0.306 → 1.0.307-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.
@@ -8,6 +8,8 @@ module.exports = {
8
8
 
9
9
  removeCodeFilmAddress:{},
10
10
 
11
- addCodeFilmcart:{},
11
+ addCodeFilmcart: {},
12
+ 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" },
13
+
12
14
 
13
15
  }
@@ -197,6 +197,13 @@
197
197
  </view>
198
198
  </view>
199
199
  </view>
200
+ <CusVipOpenDialog
201
+ v-if="is_vip==='N'"
202
+ :bgImg="openVipBgImg"
203
+ :btnBgImg="openVipBtnBgImg"
204
+ @onOpen="handleToOpen"
205
+ @onClose="handleCloseOpenVip"
206
+ ></CusVipOpenDialog>
200
207
  </view>
201
208
  </template>
202
209
 
@@ -217,7 +224,7 @@
217
224
  import componentsMixins from "@/mixins/componentsMixins";
218
225
  import extsMixins from "@/mixins/extsMixins";
219
226
  import { mapState } from 'vuex';
220
-
227
+ import CusVipOpenDialog from "@/components/CusVipOpenDialog/CusVipOpenDialog"
221
228
  export default {
222
229
  //#ifdef MP-WEIXIN
223
230
  options: { styleIsolation: 'shared' },
@@ -229,7 +236,8 @@
229
236
  XdButton,
230
237
  XdDownDrawer,
231
238
  ShopList,
232
- XdDeductSort
239
+ XdDeductSort,
240
+ CusVipOpenDialog
233
241
  },
234
242
  mixins: [
235
243
  componentsMixins, extsMixins, JfbBaseConsumpCodeMixin, QPMixin, JHDMixin, shopListMixin
@@ -286,7 +294,8 @@
286
294
  QPIconType: "",
287
295
  QPIcon: "",
288
296
  QPImg: "",
289
-
297
+ openVipBtnBgImg: "",
298
+ openVipBgImg: "",
290
299
  }
291
300
  },
292
301
  watch: {
@@ -321,6 +330,9 @@
321
330
  created() {
322
331
  this.isPreview = this.$configProject['isPreview']
323
332
  this.is_vip = this.getTokenForKey('user_level') && this.getTokenForKey('user_level') === 'VIP' ? 'Y' : 'N'
333
+ if (this.$configProject['isPreview']) {
334
+ this.is_vip='Y'
335
+ }
324
336
  this.init(this.container);
325
337
  // #ifdef H5
326
338
  if (!this.$configProject.isPreview && (isWechat() || isWechatTools())) {
@@ -405,7 +417,12 @@
405
417
  this.QPIconType = gCPVal(container, 'QPIconType', "icon");
406
418
  this.QPIcon = gCPVal(container, 'QPIcon', 'iconerweima');
407
419
  this.QPImg = getServiceUrl(gCPVal(container, 'QPImg', {url: ""}).url);
408
-
420
+ this.openVipBgImg = getServiceUrl(
421
+ getContainerPropsValue(container, "content.openVipBgImg", { url: "" }).url,
422
+ );
423
+ this.openVipBtnBgImg = getServiceUrl(
424
+ getContainerPropsValue(container, "content.openVipBtnBgImg", { url: "" }).url
425
+ );
409
426
  console.log("this.scanImg", this.scanImg);
410
427
  },
411
428
  handleConsumeType(consumeType){
@@ -528,6 +545,9 @@
528
545
  if (this.statusTimer) clearTimeout(this.statusTimer);
529
546
  if (this.orderTimer) clearTimeout(this.orderTimer);
530
547
  },
548
+ handleCloseOpenVip() {
549
+ this.$xdUniHelper.navigateBack()
550
+ },
531
551
 
532
552
  onJfbUnload(options) {
533
553
  console.log('event.onJfbUnload', options)
@@ -68,7 +68,7 @@ export default (data)=>{
68
68
  className: 'input100',
69
69
  },
70
70
  {
71
- label: '选取城市:',
71
+ label: '选取城市',
72
72
  ele: 'xd-select-pages-path',
73
73
  valueKey: 'cityPath',
74
74
  placeholder: '请选择选取城市跳转页面',
@@ -89,6 +89,48 @@ export default function (data={},gValue={},gColor={},oldData) {
89
89
  maxlen: 100,
90
90
  labelInline: true,
91
91
  },
92
- {ele: 'group_end'},
92
+ { ele: 'group_end' },
93
+ {
94
+ label: "开通PLUS背景图",
95
+ ele: 'xd-upload',
96
+ valueKey: "openVipBgImg",
97
+ groupKey: "style",
98
+ labelInline: true,
99
+ value: data.openVipBgImg || {},
100
+ defaultValue: data.openVipBgImg || null,
101
+ slot: true,
102
+ oneWidth: 355,
103
+ oneHeight: 355,
104
+ elinputClassName: 'input40',
105
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">710px</span>,高度为<span style="color:red">710px</span>',
106
+ type: ['jpg', 'png', 'jpeg'],
107
+ styleType: 'one',
108
+ uploadType: 'aliyun',
109
+ size: 5,
110
+ action: 'action',
111
+ sort: true,
112
+ maxlen: 100,
113
+ },
114
+ {
115
+ label: "开通PLUS按钮背景图",
116
+ ele: 'xd-upload',
117
+ valueKey: "openVipBtnBgImg",
118
+ groupKey: "style",
119
+ labelInline: true,
120
+ value: data.openVipBtnBgImg || {},
121
+ defaultValue: data.openVipBtnBgImg || null,
122
+ slot: true,
123
+ oneWidth: 223,
124
+ oneHeight: 44,
125
+ elinputClassName: 'input40',
126
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">446px</span>,宽度为<span style="color:red">88px</span>',
127
+ type: ['jpg', 'png', 'jpeg'],
128
+ styleType: 'one',
129
+ uploadType: 'aliyun',
130
+ size: 5,
131
+ action: 'action',
132
+ sort: true,
133
+ maxlen: 100,
134
+ },
93
135
  ].filter(i=>i)
94
136
  }
@@ -243,6 +243,56 @@ export default {
243
243
  inline: false,
244
244
  notice: '',
245
245
  },
246
+ {
247
+ label: "用户信息背景颜色:",
248
+ ele: "xd-color",
249
+ valueKey: "userBgColor",
250
+ value: data.userBgColor || null,
251
+ groupKey: "style",
252
+ },
253
+ {
254
+ label: "用户信息背景图",
255
+ ele: 'xd-upload',
256
+ valueKey: "userBgImg",
257
+ groupKey: "content",
258
+ value: data.userBgImg || {},
259
+ defaultValue: data.userBgImg || null,
260
+ slot: true,
261
+ oneWidth: 355,
262
+ oneHeight: 84,
263
+ elinputClassName: 'input40',
264
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">710px</span>,高度<span style="color:red">196px</span>',
265
+ type: ['jpg', 'png', 'jpeg'],
266
+ styleType: 'one',
267
+ uploadType: 'aliyun',
268
+ size: 5,
269
+ action: 'action',
270
+ sort: true,
271
+ maxlen: 100,
272
+ },
273
+ {
274
+ label: "激活码开通",
275
+ ele: 'xd-upload',
276
+ valueKey: "codeImg",
277
+ groupKey: "content",
278
+ value: data.codeImg || {},
279
+ defaultValue: data.codeImg || null,
280
+ slot: true,
281
+ oneWidth: 355,
282
+ oneHeight: 100,
283
+ elinputClassName: 'input40',
284
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">710px</span>,高度<span style="color:red">200px</span>',
285
+ type: ['jpg', 'png', 'jpeg'],
286
+ styleType: 'one',
287
+ uploadType: 'aliyun',
288
+ size: 5,
289
+ action: 'action',
290
+ sort: true,
291
+ maxlen: 100,
292
+ rules: [
293
+ { required: true, message: '请添加背景图', trigger: 'change' },
294
+ ],
295
+ },
246
296
  {
247
297
  label: "PLUS会员banner背景图",
248
298
  ele: 'xd-upload',
@@ -252,9 +302,9 @@ export default {
252
302
  defaultValue: data.bannerBgImg || null,
253
303
  slot: true,
254
304
  oneWidth: 355,
255
- oneHeight: 92,
305
+ oneHeight: 170,
256
306
  elinputClassName: 'input40',
257
- tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">710px</span>,高度<span style="color:red">184px</span>',
307
+ tipsformet: '上传文件格式:@imageType@,不超过@size@MB.建议宽度为<span style="color:red">710px</span>,高度<span style="color:red">340px</span>',
258
308
  type: ['jpg', 'png', 'jpeg'],
259
309
  styleType: 'one',
260
310
  uploadType: 'aliyun',
@@ -15,7 +15,7 @@
15
15
  <!-- #endif -->
16
16
  <view class="jfb-base-open-vip__body" :style="[bodyStyle]">
17
17
  <!-- 用户信息 -->
18
- <view class="u_header">
18
+ <view class="u_header" :style="[userStyle]">
19
19
  <view class="u_avatar">
20
20
  <image :src="uInfo.head_url" mode="aspectFill"></image>
21
21
  </view>
@@ -26,11 +26,12 @@
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;" @click="handleToDetail">已省{{ $xdUniHelper.divisionFloatNumber(save_amount, 100) }}</view>
30
- <view v-else style="color:#333333;">{{ uInfo.phone_number }}</view>
29
+ <!-- <view v-if="isVip" style="color:#999999;" @click="handleToDetail">已省{{ $xdUniHelper.divisionFloatNumber(save_amount, 100) }}</view> -->
30
+ <view v-if="isVip" style="color:#666666;">到期时间:{{ vip_expire_time }}</view>
31
+ <view v-else style="color:#666666;">您暂未开通PLUS会员</view>
31
32
  </view>
32
33
  </view>
33
- <view v-if="isVip" class="buy_btn" @click="showDrawer=true">立即续费</view>
34
+ <!-- <view v-if="isVip" class="buy_btn" @click="showDrawer=true">立即续费</view> -->
34
35
  <!-- <view v-else class="buy_btn" @click="showDrawer=true">立即开通</view> -->
35
36
  </view>
36
37
 
@@ -39,17 +40,28 @@
39
40
  <view class="vip_box" :style="{
40
41
  backgroundImage: `url(${bannerBgImg})`,
41
42
  }">
42
- <view class="vip_box-left">
43
+ <!-- <view class="vip_box-left">
43
44
  <view class="vip_box-title">PLUS会员</view>
44
45
  <view v-if="isVip">有效期至:{{ vip_expire_time }}</view>
45
46
  <view v-else>开通享受更多权益</view>
46
- </view>
47
+ </view> -->
47
48
  <!-- <view class="vip_logo">
48
49
  <image :src="siteLogo" mode="aspectFill"></image>
49
50
  </view> -->
50
51
  </view>
51
52
  </view>
52
- <view>
53
+ <xd-vip-list :list="showVipCardList"
54
+ @handlePrivacy="handlePrivacy"
55
+ @toVipDetail="toVipDetail"
56
+ :mainColor="mainColor"
57
+ ></xd-vip-list>
58
+ <view>
59
+ <view v-if="showExchangeCode==='Y'" @click="toVipDetail(-1)" class="vip_code_info">
60
+ <view class="vip_code_box" :style="{
61
+ backgroundImage: `url(${codeImg})`,
62
+ }">
63
+ </view>
64
+ </view>
53
65
  <image :src="specialImage" mode="widthFix" style="width: 100%;"></image>
54
66
  <!--
55
67
  <view class="vip_banner">
@@ -74,22 +86,17 @@
74
86
  </view>
75
87
  </view> -->
76
88
  </view>
77
- <view :style="{height: '342rpx'}"></view>
78
- <view :style="prod_bottom">
79
- <xd-vip-list v-if="!isVip" :list="showVipCardList"
80
- @handlePrivacy="handlePrivacy"
81
- @toVipDetail="toVipDetail"
82
- ></xd-vip-list>
83
- </view>
89
+ <!-- <view :style="{height: '342rpx'}"></view> -->
90
+ <!-- <view :style="prod_bottom"> -->
91
+ <!-- </view> -->
84
92
 
85
- <xd-down-drawer :show.sync="showDrawer" height="480rpx">
93
+ <!-- <xd-down-drawer :show.sync="showDrawer" height="480rpx">
86
94
  <view class="drawer_title">立即续费</view>
87
95
  <xd-vip-list :list="showVipCardList"
88
96
  @handlePrivacy="handlePrivacy"
89
97
  @toVipDetail="toVipDetail"
90
98
  ></xd-vip-list>
91
- </xd-down-drawer>
92
-
99
+ </xd-down-drawer> -->
93
100
  </view>
94
101
  </view>
95
102
  </template>
@@ -99,6 +106,7 @@
99
106
  import XdButton from "@/components/XdButton/XdButton";
100
107
  import XdVipList from "./XdVipList.vue";
101
108
  import XdDownDrawer from "@/components/XdDownDrawer/XdDownDrawer.vue"
109
+ import XdDailog from "@/components/XdDailog/XdDailog";
102
110
  import { jfbRootExec } from "@/utils/xd.event";
103
111
  import JfbBaseOpenVipMixin from "./JfbBaseOpenVipMixin";
104
112
  import { getContainerPropsValue } from "@/utils/xd.base";
@@ -112,7 +120,8 @@
112
120
  XdFontIcon,
113
121
  XdButton,
114
122
  XdVipList,
115
- XdDownDrawer
123
+ XdDownDrawer,
124
+ XdDailog
116
125
  },
117
126
  mixins: [
118
127
  componentsMixins, extsMixins, JfbBaseOpenVipMixin
@@ -140,6 +149,9 @@
140
149
  showExchangeCode: "",
141
150
  exchangeCodePath: "",
142
151
  moneyDetailPath: "",
152
+ userBgImg: '',
153
+ userBgColor: '',
154
+ codeImg: '',
143
155
  }
144
156
  },
145
157
  computed: {
@@ -153,11 +165,20 @@
153
165
  return this.uInfo.user_level === 'VIP';
154
166
  },
155
167
  showVipCardList(){
156
- return this.showExchangeCode === 'Y' ? [this.exchangeCodeVip, ...this.vipCardList] : [...this.vipCardList]
168
+ // return this.showExchangeCode === 'Y' ? [this.exchangeCodeVip, ...this.vipCardList] : [...this.vipCardList]
169
+ return [...this.vipCardList]
157
170
  },
158
171
  prod_bottom() {
159
172
  return this.fixedStyle({height: 0, zIndex: 111});
160
173
  },
174
+ userStyle() {
175
+ return {
176
+ backgroundImage: `url(${this.userBgImg})`,
177
+ backgroundColor: this.userBgColor,
178
+ backgroundRepeat: 'no-repeat',
179
+ backgroundSize: '100% 100%',
180
+ }
181
+ }
161
182
  },
162
183
  watch: {
163
184
  container(value, oldValue) {
@@ -186,7 +207,10 @@
186
207
  this.specialImage = getServiceUrl(getContainerPropsValue(container, 'content.specialImage', {url: ""}).url);
187
208
  this.exchangeCodePath = getContainerPropsValue(container, 'content.exchangeCodePath', {value: ""}).value;
188
209
  this.showExchangeCode = getContainerPropsValue(container, 'content.showExchangeCode', '');
189
- this.moneyDetailPath = getContainerPropsValue(container, 'content.moneyDetailPath', {value: ""}).value;
210
+ this.moneyDetailPath = getContainerPropsValue(container, 'content.moneyDetailPath', { value: "" }).value;
211
+ this.userBgImg = getServiceUrl(getContainerPropsValue(container, 'content.userBgImg', { url: "" }).url);
212
+ this.userBgColor = getContainerPropsValue(container, "content.userBgColor", "#FFFFFF");
213
+ this.codeImg = getServiceUrl(getContainerPropsValue(container, 'content.codeImg', {url: ""}).url);
190
214
  },
191
215
  p_getBaseUserInfo(){
192
216
  jfbRootExec("getOpenBaseUserInfo", {
@@ -274,7 +298,7 @@
274
298
  display: flex;
275
299
  align-items: center;
276
300
  padding: 24rpx 40rpx;
277
- margin: 20rpx;
301
+ margin-bottom: 20rpx;
278
302
 
279
303
  .u_avatar{
280
304
  width: 120rpx;
@@ -326,13 +350,35 @@
326
350
  }
327
351
  }
328
352
 
353
+ .vip_code_info{
354
+ margin-bottom: 20rpx;
355
+ background: #fff;
356
+ .vip_code_box{
357
+ width: 710rpx;
358
+ height: 200rpx;
359
+ margin: auto;
360
+ border-radius: 60rpx;
361
+ background-color: #E8A841;
362
+ // background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
363
+ background-size: 100% 100%;
364
+ background-repeat: no-repeat;
365
+ display: flex;
366
+ align-items: center;
367
+ justify-content: space-between;
368
+ padding: 40rpx;
369
+ box-sizing: border-box;
370
+ }
371
+ }
372
+
329
373
  .vip_info{
330
374
  // padding: 20rpx;
375
+ margin-bottom: 20rpx;
376
+ background: #fff;
331
377
  .vip_box{
332
378
  width: 710rpx;
333
- height: 184rpx;
379
+ height: 340rpx;
334
380
  margin: auto;
335
- border-radius: 24rpx;
381
+ border-radius: 32rpx;
336
382
  background-color: #E8A841;
337
383
  // background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
338
384
  background-size: 100% 100%;
@@ -379,7 +425,7 @@
379
425
  width: 108rpx;
380
426
  height: 108rpx;
381
427
  border-radius: 108rpx;
382
- background-color: #EBB963;
428
+ // background-color: #EBB963;
383
429
  }
384
430
  .banner_text{
385
431
  color: #333333;
@@ -2,6 +2,6 @@
2
2
 
3
3
  module.exports = {
4
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
- getOpenVipList: {"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"},
5
+ getOpenVipList: {"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":9999,"vip_card_icon":""}],"request_id":"6b4aef5e06411d8a"},
6
6
  getVipMoneySaving: { "save_amount": 100 , "request_id": "6b4aef5e06411d8a" }
7
7
  }
@@ -5,29 +5,60 @@
5
5
  v-for="item in uiList" :key="item.vip_card_id"
6
6
  @click="handleChoseVip(item.vip_card_id)"
7
7
  >
8
- <view class="vip_name">{{ item.product_name}}</view>
9
- <view class="vip_price">¥{{ $xdUniHelper.divisionFloatNumber(item.sale_price, 100) }}</view>
8
+ <view>
9
+ <view class="vip_name">{{ item.product_name}}</view>
10
+ <view class="vip_price"><text>¥</text>{{ $xdUniHelper.divisionFloatNumber(item.sale_price, 100) }}</view>
11
+ </view>
10
12
  </view>
11
13
  </view>
12
14
  <view class="vip_pay">
13
- <view class="pay_btn" @click="toVipDetail">
15
+ <view class="pay_btn" @click="toVipDetail()">
14
16
  <template v-if="vip_card_id===-1">0元开通</template>
15
17
  <template v-else>
16
- 立即支付 ¥{{ $xdUniHelper.divisionFloatNumber(curVipCard.sale_price, 100) }}
18
+ ¥{{ $xdUniHelper.divisionFloatNumber(curVipCard.sale_price, 100) }} 确认协议并开通
17
19
  </template>
18
20
  </view>
19
- <view class="vip_tip">开通视为同意<text @click.stop="handlePrivacy('privacy_service')">《共享PLUS会员用户协议》</text></view>
21
+ <view class="vip_tip">
22
+ <checkbox-group @change="checkboxChange">
23
+ <label>
24
+ <view>
25
+ <checkbox
26
+ :color="mainColor"
27
+ style="transform:scale(0.6)"
28
+ :value="1"/>
29
+ </view>
30
+ </label>
31
+ </checkbox-group>
32
+ 勾选同意<text @click.stop="handlePrivacy('privacy_service')">《共享PLUS会员用户协议》</text>
33
+ </view>
20
34
  </view>
35
+ <XdDailog
36
+ class="confirm-dialog"
37
+ title="开通确认"
38
+ :showClose="false"
39
+ :maskAutoClose="true"
40
+ :show.sync="showConfirm">
41
+ <view style="color:#999999;font-size: 28rpx;">
42
+ 我已阅读并同意<text @click.stop="handlePrivacy('privacy_service')">《PLUS会员服务协议》</text>
43
+ </view>
44
+ <template slot="btn">
45
+ <view class="confirm-dialog__btn" @click="showConfirm=false">
46
+ <XdButton @click="toVipDetail(1)" type="primary" size="small" width="500rpx">继续开通</XdButton>
47
+ </view>
48
+ </template>
49
+ </XdDailog>
21
50
  </view>
22
51
  </template>
23
52
 
24
53
  <script>
25
54
  import XdButton from "@/components/XdButton/XdButton.vue"
26
55
  import XdUnit from "@/components/XdUnit/XdUnit.vue"
56
+ import XdDailog from "@/components/XdDailog/XdDailog.vue"
27
57
  export default {
28
58
  components: {
29
59
  XdButton,
30
- XdUnit
60
+ XdUnit,
61
+ XdDailog
31
62
  },
32
63
  props: {
33
64
  list: {
@@ -35,6 +66,10 @@
35
66
  default(){
36
67
  return []
37
68
  }
69
+ },
70
+ mainColor: {
71
+ type: String,
72
+ default: ''
38
73
  }
39
74
  },
40
75
  watch: {
@@ -51,7 +86,9 @@
51
86
  data(){
52
87
  return {
53
88
  uiList: [],
54
- vip_card_id: ''
89
+ vip_card_id: '',
90
+ isAgree: [],
91
+ showConfirm: false
55
92
  }
56
93
  },
57
94
  methods: {
@@ -61,7 +98,17 @@
61
98
  handleChoseVip(vip_card_id){
62
99
  this.vip_card_id = vip_card_id
63
100
  },
64
- toVipDetail(){
101
+ checkboxChange(e) {
102
+ this.isAgree = e.detail.value;
103
+ },
104
+ toVipDetail(isAgree) {
105
+ if (isAgree) {
106
+ this.isAgree= [isAgree]
107
+ }
108
+ if (this.isAgree.length === 0) {
109
+ this.showConfirm = true
110
+ return
111
+ }
65
112
  if(this.vip_card_id){
66
113
  this.$emit('toVipDetail', this.vip_card_id)
67
114
  }
@@ -77,18 +124,20 @@
77
124
  width: 100%;
78
125
  overflow: auto;
79
126
  white-space: nowrap;
80
- padding: 32rpx 16rpx;
127
+ padding: 32rpx 24rpx;
81
128
  .vip_item{
82
- display: inline-block;
83
- width: 160rpx;
84
- height: 112rpx;
85
- border-radius: 24rpx;
129
+ display: inline-flex; /* 关键:inline-level 的 flex 容器 */
130
+ align-items: center; /* 子元素垂直居中 */
131
+ justify-content: center; /* 可选:子元素水平居中 */
132
+ width: 220rpx;
133
+ height: 266rpx;
134
+ border-radius: 32rpx;
86
135
  text-align: center;
87
136
  color: #999999;
88
137
  border: 4rpx solid #EEEEEE;
89
138
  background-color: #EEEEEE;
90
139
  box-sizing: border-box;
91
- margin: 0 16rpx;
140
+ margin-left: 20rpx;
92
141
  padding: 20rpx 0;
93
142
  line-height: 1;
94
143
  font-weight: 500;
@@ -98,16 +147,22 @@
98
147
  color: #AB6900;
99
148
  }
100
149
  .vip_name{
101
- font-size: 24rpx;
102
- margin-bottom: 12rpx;
150
+ font-size: 32rpx;
151
+ margin-bottom: 32rpx;
103
152
  }
104
153
  .vip_price{
105
- font-size: 36rpx;
154
+ font-size: 60rpx;
155
+ &>text{
156
+ font-size: 24rpx;
157
+ }
106
158
  }
107
159
  }
160
+ .vip_item:first-child{
161
+ margin-left: 0;
162
+ }
108
163
  }
109
164
  .vip_pay{
110
- padding: 24rpx 0 50rpx;
165
+ padding: 0 0 24rpx;
111
166
  .pay_btn{
112
167
  width: 600rpx;
113
168
  display: flex;
@@ -118,13 +173,24 @@
118
173
  color: #FFFFFF;
119
174
  margin: 0 auto;
120
175
  border-radius: 80rpx;
176
+ font-size: 32rpx;
121
177
  }
122
178
  }
123
179
  .vip_tip{
124
- text-align: center;
125
180
  font-size: 22rpx;
126
181
  color: #999999;
127
182
  margin-top: 24rpx;
183
+ display: flex;
184
+ align-items: center;
185
+ justify-content: center;
128
186
  }
187
+ .confirm-dialog ::v-deep .xd-dailog__body-title{
188
+ font-size: 32rpx;
189
+ color: #333;
190
+ }
191
+ .confirm-dialog__btn{
192
+ border-top: 2rpx dashed #E5E5E5;
193
+ padding-top: 28rpx;
194
+ }
129
195
  }
130
196
  </style>