jufubao-base 1.0.312 → 1.0.314

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.
@@ -2,36 +2,142 @@
2
2
  <view
3
3
  class="jfb-base-code-open-vip"
4
4
  @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
5
+ :class="{ editx: isEditx && active }"
6
6
  >
7
7
  <!--#ifdef H5-->
8
8
  <view
9
9
  class="jfb-base-code-open-vip__edit"
10
- :class="{ editx : isEditx && active }"
10
+ :class="{ editx: isEditx && active }"
11
11
  v-if="isEditx && active"
12
12
  >
13
- <view class="jfb-base-code-open-vip__edit-icon" @click="delEdit">删除</view>
13
+ <view class="jfb-base-code-open-vip__edit-icon" @click="delEdit"
14
+ >删除</view
15
+ >
14
16
  </view>
15
17
  <!-- #endif -->
16
18
  <view class="jfb-base-code-open-vip__body" :style="[bodyStyle]">
17
- <view v-if="step === 1" class="vip_panel">
18
- <view class="combo_section">
19
+ <!-- 用户信息 -->
20
+ <view class="u_header" :style="[userStyle]">
21
+ <view class="u_avatar">
22
+ <image :src="uInfo.head_url" mode="aspectFill"></image>
23
+ </view>
24
+ <view class="u_info">
25
+ <view class="u_info-top">
26
+ <view class="vip_name">{{ uInfo.show_user_name }}</view>
27
+ <view v-if="isVip" class="vip_level plus">PLUS会员</view>
28
+ <view v-else class="vip_level">普通用户</view>
29
+ </view>
30
+ <view class="u_sub">
31
+ <!-- <view v-if="isVip" style="color:#999999;" @click="handleToDetail">已省{{ $xdUniHelper.divisionFloatNumber(save_amount, 100) }}</view> -->
32
+ <view v-if="isVip" style="color: #666666"
33
+ >到期时间:{{ vip_expire_time }}</view
34
+ >
35
+ <view v-else style="color: #666666">您暂未开通PLUS会员</view>
36
+ </view>
37
+ </view>
38
+ </view>
39
+ <!-- plus会员权益 -->
40
+ <view class="vip_info">
41
+ <view
42
+ class="vip_box"
43
+ :style="{
44
+ backgroundImage: `url(${bannerBgImg})`,
45
+ }"
46
+ ></view>
47
+ </view>
48
+ <view class="code">
49
+ <view class="code_input_wrap">
50
+ <view class="code_input_item">
51
+ <input v-model="card_number" class="input" placeholder="请输入票券号" />
52
+ <XdFontIcon
53
+ @click="handleScan"
54
+ class="icon"
55
+ size="32"
56
+ color="#BFA07C"
57
+ icon="iconsaoma"
58
+ ></XdFontIcon>
59
+ </view>
60
+ <view class="code_input_item">
61
+ <input v-model="card_password" class="input" placeholder="请输入密码" />
62
+ </view>
63
+ <view class="code_info" v-if="vipInfo&&openStatus!==false">
64
+ <view class="code_info_item">
65
+ <view class="code_info_item_label">套餐名称:</view>
66
+ <view class="code_info_item_value">{{
67
+ vipInfo.product_name
68
+ }}</view>
69
+ </view>
70
+ <view class="code_info_item">
71
+ <view class="code_info_item_label">套餐期限:</view>
72
+ <view class="code_info_item_value">{{
73
+ vipInfo.life_cycle_label
74
+ }}</view>
75
+ </view>
76
+ <view class="code_info_item">
77
+ <view class="code_info_item_label">套餐金额:</view>
78
+ <view class="code_info_item_value">
79
+ <XdUnit
80
+ fontSize="28"
81
+ :iocnSize="0.28"
82
+ colorNew="#915714"
83
+ :isOld="false"
84
+ :price="vipInfo.sale_price"
85
+ ></XdUnit>
86
+ </view>
87
+ </view>
88
+ <view class="code_info_item">
89
+ <view class="code_info_item_label">平台优惠:</view>
90
+ <view class="code_info_item_value">
91
+ <text>-</text>
92
+ <XdUnit
93
+ fontSize="28"
94
+ :iocnSize="0.28"
95
+ colorNew="#915714"
96
+ :isOld="false"
97
+ :price="100"
98
+ ></XdUnit>
99
+ </view>
100
+ </view>
101
+ </view>
102
+ <XdButton
103
+ v-if="vipInfo"
104
+ fontSize="26"
105
+ type="primary"
106
+ color="#F3D2A6"
107
+ bgColor="#1D1E1D"
108
+ @click="createVipOrder"
109
+ >0元开通</XdButton
110
+ >
111
+ <XdButton
112
+ v-else
113
+ fontSize="26"
114
+ type="primary"
115
+ color="#F3D2A6"
116
+ bgColor="#1D1E1D"
117
+ @click="searchCode"
118
+ >立即验证</XdButton
119
+ >
120
+ </view>
121
+ <view v-if="ruleImg" class="rule_box">
122
+ <image :src="ruleImg" mode="widthFix" />
123
+ </view>
124
+ <!-- <view class="combo_section">
19
125
  <view class="code_input_wrap">
20
126
  <input class="code_input" v-model="exchange_code" placeholder="请输入兑换码"></input>
21
127
  </view>
22
- </view>
23
- <view class="combo_section">
24
- <!-- <view class="desc_tit">文案描述</view> -->
25
- <view class="desc_cont">
128
+ </view> -->
129
+ <!-- <view class="combo_section"> -->
130
+ <!-- <view class="desc_tit">文案描述</view> -->
131
+ <!-- <view class="desc_cont">
26
132
  <xd-content-xss :html="description"></xd-content-xss>
27
133
  </view>
28
- </view>
29
- <view class="fixed_bottom" :style="fixed_bottom">
134
+ </view> -->
135
+ <!-- <view class="fixed_bottom" :style="fixed_bottom">
30
136
  <xd-button type="primary" width="600rpx" @click="searchCode">查询</xd-button>
31
137
  <view class="plus_privacy">开通视为同意 <text @click.stop="handlePrivacy('privacy_service')">《共享PLUS会员用户协议》</text></view>
32
- </view>
138
+ </view> -->
33
139
  </view>
34
- <view v-else class="vip_panel">
140
+ <!-- <view v-else class="vip_panel">
35
141
  <view class="combo_section">
36
142
  <view class="combo_section-title">兑换码:{{ vipInfo.exchange_code }}</view>
37
143
  <xd-list-item label="套餐名称" paddingLR="40rpx">{{ vipInfo.product_name }}</xd-list-item>
@@ -42,210 +148,630 @@
42
148
  <xd-button type="primary" width="600rpx" @click="createVipOrder">立即兑换</xd-button>
43
149
  <view class="plus_privacy">开通视为同意 <text @click.stop="handlePrivacy('privacy_service')">《共享PLUS会员用户协议》</text></view>
44
150
  </view>
45
- </view>
151
+ </view> -->
46
152
  </view>
153
+ <XdDailog
154
+ class="confirm-dialog"
155
+ title="提示"
156
+ :showClose="false"
157
+ :maskAutoClose="true"
158
+ :show.sync="showMessage"
159
+ >
160
+ <view style="color: #999999">
161
+ <XdContentXss :html="message"></XdContentXss>
162
+ </view>
163
+ <template slot="btn">
164
+ <view class="confirm-dialog__btn">
165
+ <XdButton
166
+ @click="handleCloseMessage"
167
+ type="primary"
168
+ size="small"
169
+ width="500rpx"
170
+ >确定</XdButton
171
+ >
172
+ </view>
173
+ </template>
174
+ </XdDailog>
47
175
  </view>
48
176
  </template>
49
177
 
50
178
  <script>
51
- import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
52
- import XdListItem from "@/components/CusListItem/CusListItem"
53
- import XdButton from "@/components/XdButton/XdButton";
54
- import XdContentXss from "@/components/XdContentXss/XdContentXss"
55
- import { jfbRootExec } from "@/utils/xd.event";
56
- import JfbBaseCodeOpenVipMixin from "./JfbBaseCodeOpenVipMixin";
57
- import { getContainerPropsValue } from "@/utils/xd.base";
58
- import componentsMixins from "@/mixins/componentsMixins";
59
- import extsMixins from "@/mixins/extsMixins";
60
- export default {
61
- name: "JfbBaseCodeOpenVip",
62
- components: {
63
- XdFontIcon,
64
- XdListItem,
65
- XdButton,
66
- XdContentXss
67
- },
68
- mixins: [
69
- componentsMixins, extsMixins, JfbBaseCodeOpenVipMixin
70
- ],
71
- data() {
72
- return {
73
- closeMask: true,
74
- xnamespace: "",
179
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
180
+ import XdListItem from "@/components/CusListItem/CusListItem";
181
+ import XdButton from "@/components/XdButton/XdButton";
182
+ import XdContentXss from "@/components/XdContentXss/XdContentXss";
183
+ import XdUnit from "@/components/XdUnit/XdUnit";
184
+ import XdDailog from "@/components/XdDailog/XdDailog";
185
+ import { jfbRootExec } from "@/utils/xd.event";
186
+ import JfbBaseCodeOpenVipMixin from "./JfbBaseCodeOpenVipMixin";
187
+ import { getContainerPropsValue } from "@/utils/xd.base";
188
+ import componentsMixins from "@/mixins/componentsMixins";
189
+ import extsMixins from "@/mixins/extsMixins";
190
+ import getServiceUrl from "@/common/getServiceUrl";
191
+ import { mapState, mapActions } from "vuex";
75
192
 
76
- exchange_code: "",
77
- createStatus: false,
78
- step: 1,
79
- vipInfo: {},
193
+ export default {
194
+ name: "JfbBaseCodeOpenVip",
195
+ components: {
196
+ XdFontIcon,
197
+ XdListItem,
198
+ XdButton,
199
+ XdContentXss,
200
+ XdUnit,
201
+ XdDailog,
202
+ },
203
+ mixins: [componentsMixins, extsMixins, JfbBaseCodeOpenVipMixin],
204
+ data() {
205
+ return {
206
+ closeMask: true,
207
+ xnamespace: "",
80
208
 
81
- description: "",
82
- vipSuccessPath: "",
83
- payPath: "",
84
- }
209
+ exchange_code: "",
210
+ createStatus: false,
211
+ vipInfo: null,
212
+
213
+ description: "",
214
+ vipSuccessPath: "",
215
+ // payPath: "",
216
+ uInfo: {},
217
+ vip_expire_time: "",
218
+ userBgImg: "",
219
+ userBgColor: "",
220
+ bannerBgImg: "",
221
+ ruleImg: "",
222
+ showMessage: false,
223
+ message: "",
224
+ main_order_id: "",
225
+ openStatus: '',
226
+ card_number: '',
227
+ card_password: '',
228
+ card_qrcode: ''
229
+ };
230
+ },
231
+ computed: {
232
+ ...mapState({
233
+ jwxSDK: (state) => state.jwxSDK,
234
+ jfbAuthorize: (state) => state.jfbAuthorize,
235
+ }),
236
+ bodyStyle() {
237
+ return {
238
+ minHeight: this.layoutInfo.bodyMinHeightRpx + "rpx",
239
+ "--main-color": this.mainColor,
240
+ };
85
241
  },
86
- computed: {
87
- bodyStyle(){
88
- return {
89
- minHeight: this.layoutInfo.bodyMinHeightRpx + 'rpx',
90
- '--main-color': this.mainColor,
91
- }
92
- },
93
- fixed_bottom() {
94
- return this.fixedStyle({ height: 36, zIndex: 111})
95
- },
242
+ fixed_bottom() {
243
+ return this.fixedStyle({ height: 36, zIndex: 111 });
244
+ },
245
+ userStyle() {
246
+ return {
247
+ backgroundImage: `url(${this.userBgImg})`,
248
+ backgroundColor: this.userBgColor,
249
+ backgroundRepeat: "no-repeat",
250
+ backgroundSize: "100% 100%",
251
+ };
252
+ },
253
+ isVip() {
254
+ return this.uInfo.user_level === "VIP";
255
+ },
256
+ },
257
+ watch: {
258
+ container(value, oldValue) {
259
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
260
+ if (this.$configProject["isPreview"]) this.init(value);
96
261
  },
97
- watch: {
98
- container(value, oldValue) {
99
- if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
100
- if (this.$configProject['isPreview']) this.init(value)
101
- },
262
+ },
263
+ created() {
264
+ this.init(this.container);
265
+ },
266
+ methods: {
267
+ onJfbLoad(options) {
268
+ if (options["ecode"]) {
269
+ this.exchange_code = options["ecode"];
270
+ this.searchCode();
271
+ }
272
+ this.p_getBaseUserInfo();
273
+ },
274
+ p_getBaseUserInfo() {
275
+ jfbRootExec("getOpenBaseUserInfo", {
276
+ vm: this,
277
+ data: {},
278
+ }).then((res) => {
279
+ res = res || {};
280
+ if (res["head_url"])
281
+ res["head_url"] = getServiceUrl(res["head_url"], "size2");
282
+ this.uInfo = res;
283
+ this.vip_expire_time = this.$xdUniHelper.getDate(
284
+ res.vip_expire_time * 1000
285
+ ).fullDate;
286
+ });
102
287
  },
103
- created() {
104
- this.init(this.container);
105
288
 
289
+ /**
290
+ * @description 监听事件变化
291
+ * @param container {object} 业务组件对象自己
292
+ */
293
+ init(container) {
294
+ this.description = getContainerPropsValue(
295
+ container,
296
+ "content.description",
297
+ ""
298
+ );
299
+ this.vipSuccessPath = getContainerPropsValue(
300
+ container,
301
+ "content.vipSuccessPath",
302
+ { value: "" }
303
+ ).value;
304
+ // this.payPath = getContainerPropsValue(container, "content.payPath", {
305
+ // value: "",
306
+ // }).value;
307
+ this.userBgImg = getServiceUrl(
308
+ getContainerPropsValue(container, "content.userBgImg", { url: "" }).url
309
+ );
310
+ this.userBgColor = getContainerPropsValue(
311
+ container,
312
+ "content.userBgColor",
313
+ "#FFFFFF"
314
+ );
315
+ this.bannerBgImg = getServiceUrl(
316
+ getContainerPropsValue(container, "content.bannerBgImg", { url: "" })
317
+ .url
318
+ );
319
+ this.ruleImg = getServiceUrl(
320
+ getContainerPropsValue(container, "content.ruleImg", { url: "" }).url
321
+ );
106
322
  },
107
- methods: {
108
- onJfbLoad(options) {
109
- if(options['ecode']) {
110
- this.exchange_code = options['ecode'];
111
- this.searchCode();
323
+
324
+ /**
325
+ * @description 扫码绑定
326
+ */
327
+ handleScan() {
328
+ console.log('scanscan');
329
+ try {
330
+ //#ifdef H5
331
+ if (this.jwxSDK !== null) {
332
+ this.jwxSDK.scanQRCode({
333
+ needResult: 1,
334
+ scanType: ["qrCode"],
335
+ success: (res) => {
336
+ this.card_qrcode = res.resultStr;
337
+ this.searchCode();
338
+ },
339
+ fail: (error) => {
340
+ if (typeof error === "string") error = { error: error };
341
+ if (window["jwxJfbSDKParams"])
342
+ error = Object.assign(error, window["jwxJfbSDKParams"]);
343
+ this.$xdLog.setARMSError(error);
344
+ },
345
+ });
112
346
  }
113
- },
114
-
115
- /**
116
- * @description 监听事件变化
117
- * @param container {object} 业务组件对象自己
118
- */
119
- init(container) {
120
- this.description = getContainerPropsValue(container, 'content.description', "");
121
- this.vipSuccessPath = getContainerPropsValue(container, 'content.vipSuccessPath', {value: ""}).value;
122
- this.payPath = getContainerPropsValue(container, 'content.payPath', {value: ""}).value;
123
- },
124
-
125
- handlePrivacy(code){
126
- let params = `page_id=${this.pageAttr["page_id"]}`;
127
- params = `${params}&container_id=${this.containerId}${code}`;
128
- this.$xdUniHelper.navigateTo({
129
- url: `/pages/content/content?${params}`
130
- })
131
- },
132
-
133
- searchCode(){
134
- if(!this.exchange_code) return;
135
- this.$xdShowLoading({});
136
- jfbRootExec("getExchangeCode", {
137
- vm: this,
138
- data: {
139
- exchange_code: this.exchange_code
140
- }
141
- }).then(res => {
347
+ //#endif
348
+ //#ifdef MP-WEIXIN
349
+ uni.scanCode({
350
+ scanType: ["qrCode"],
351
+ success: (res) => {
352
+ this.card_qrcode = res.result;
353
+ console.log(JSON.stringify(res),'二维码成功');
354
+ this.searchCode()
355
+ },
356
+ fail: (error) => {
357
+ this.$xdLog.setARMSError(error);
358
+ },
359
+ });
360
+ //#endif
361
+ } catch (err) {
362
+ console.log(err,'err');
363
+
364
+ this.$xdLog.setARMSError(err);
365
+ }
366
+ },
367
+
368
+ handlePrivacy(code) {
369
+ let params = `page_id=${this.pageAttr["page_id"]}`;
370
+ params = `${params}&container_id=${this.containerId}${code}`;
371
+ this.$xdUniHelper.navigateTo({
372
+ url: `/pages/content/content?${params}`,
373
+ });
374
+ },
375
+
376
+ searchCode() {
377
+ if (!this.card_number && !this.card_password && !this.card_qrcode) return;
378
+ console.log('可以扫码');
379
+
380
+ let data = {};
381
+ if (this.card_number) data.card_number = this.card_number;
382
+ if (this.card_password) data.card_password = this.card_password;
383
+ if (this.card_qrcode) data.card_qrcode = this.card_qrcode;
384
+ console.log(data,'data');
385
+
386
+ this.$xdShowLoading({});
387
+ jfbRootExec("getExchangeCode", {
388
+ vm: this,
389
+ data: data,
390
+ })
391
+ .then((res) => {
142
392
  this.$xdHideLoading();
143
- this.step = 2;
393
+ this.openStatus = res.status;
394
+ this.message = res.alert_message;
395
+ if (res.alert_message) {
396
+ this.showMessage = true;
397
+ return
398
+ }
144
399
  this.vipInfo = res;
145
- }).catch(e=>{
146
- this.$xdHideLoading();
147
400
  })
148
- },
149
-
150
- createVipOrder(){
151
- if(this.createStatus) return
152
- this.createStatus = true;
153
- this.$xdShowLoading({});
154
- jfbRootExec("createVipOrder", {
155
- vm: this,
156
- data: {
157
- business_code: this.xnamespace,
158
- product_id: this.vipInfo.product_id,
159
- notify_provider_id: this.projectAttr.notify_provider_id,
160
- need_pay_price: 0,
161
- selected_card_list_json: this.vipInfo.selected_card_list_json
401
+ .catch((e) => {
402
+ console.log(e,'扫码失败');
403
+ this.$xdHideLoading();
404
+ });
405
+
406
+ },
407
+
408
+ createVipOrder() {
409
+ if (this.createStatus) return;
410
+ this.createStatus = true;
411
+ this.$xdShowLoading({});
412
+ jfbRootExec("createVipOrder", {
413
+ vm: this,
414
+ data: {
415
+ business_code: this.xnamespace,
416
+ notify_provider_id: this.projectAttr.notify_provider_id,
417
+ need_pay_price: 0,
418
+ card_number: this.card_number,
419
+ card_password: this.card_password,
420
+ card_qrcode: this.card_qrcode,
421
+ },
422
+ })
423
+ .then((res) => {
424
+ this.createStatus = false;
425
+ this.openStatus = res.status;
426
+ this.main_order_id = res.main_order_id
427
+ if (res.alert_message) {
428
+ this.message = res.alert_message;
429
+ this.showMessage = true;
430
+ this.$xdHideLoading();
431
+ return
162
432
  }
433
+ this.$xdHideLoading();
434
+ // if (res.need_pay_price > 0) {
435
+ // this.$xdUniHelper.redirectTo({
436
+ // url:
437
+ // this.payPath +
438
+ // `?order_id=${res.pay_order_id}&main_order_id=${res.main_order_id}`,
439
+ // });
440
+ // } else {
441
+ // this.$xdUniHelper.redirectTo({
442
+ // url: this.vipSuccessPath + `?order_id=${res.main_order_id}`,
443
+ // });
444
+ // }
163
445
  })
164
- .then(res => {
165
- this.createStatus = false;
166
- this.$xdHideLoading();
167
- if(res.need_pay_price > 0){
168
- this.$xdUniHelper.redirectTo({
169
- url: this.payPath + `?order_id=${res.pay_order_id}&main_order_id=${res.main_order_id}`
170
- })
171
- }
172
- else{
173
- this.$xdUniHelper.redirectTo({
174
- url: this.vipSuccessPath + `?order_id=${res.main_order_id}`
175
- })
176
- }
177
- })
178
- .catch(err=>{
179
- this.createStatus = false;
180
- this.$xdHideLoading();
181
- })
182
- },
446
+ .catch((err) => {
447
+ this.createStatus = false;
448
+ this.$xdHideLoading();
449
+ });
450
+ },
451
+ handleCloseMessage() {
452
+ this.showMessage = false;
453
+ if (!this.openStatus) {
454
+ return;
455
+ }
456
+ this.$xdUniHelper.redirectTo({
457
+ url: this.vipSuccessPath + `?order_id=${this.main_order_id}`,
458
+ });
183
459
  }
184
- }
185
-
460
+ },
461
+ };
186
462
  </script>
187
463
 
188
464
  <style scoped lang="less">
189
- @import "./JfbBaseCodeOpenVipLess.less";
465
+ @import "./JfbBaseCodeOpenVipLess.less";
190
466
 
191
- .jfb-base-code-open-vip {
192
- &__body{
193
- .combo_section{
194
- border-radius: 24rpx;
467
+ .jfb-base-code-open-vip {
468
+ &__body {
469
+ .u_header {
470
+ display: flex;
471
+ align-items: center;
472
+ padding: 24rpx 40rpx;
473
+ margin-bottom: 20rpx;
474
+
475
+ .u_avatar {
476
+ width: 120rpx;
477
+ height: 120rpx;
478
+ border-radius: 120rpx;
479
+ margin-right: 24rpx;
195
480
  overflow: hidden;
196
- margin: 20rpx;
197
- background-color: #FFFFFF;
198
- &-title{
199
- height: 72rpx;
200
- line-height: 72rpx;
201
- text-align: center;
202
- background: linear-gradient(90deg, #FCD083 0%, #FFDEAD 100%);
481
+ image {
482
+ width: 100%;
483
+ height: 100%;
484
+ }
485
+ }
486
+ .u_info {
487
+ flex: 1;
488
+ &-top {
489
+ display: flex;
490
+ align-items: center;
491
+ .vip_name {
492
+ font-size: 28rpx;
493
+ color: #333333;
494
+ }
495
+ .vip_level {
496
+ padding: 4rpx 16rpx;
497
+ border-radius: 24rpx;
498
+ font-size: 24rpx;
499
+ background-color: #ffe6c4;
500
+ color: #615850;
501
+ margin-left: 8rpx;
502
+ &.plus {
503
+ background: linear-gradient(180deg, #615243 0%, #2d2824 100%);
504
+ color: #ffefd7;
505
+ }
506
+ }
507
+ }
508
+ .u_sub {
509
+ margin-top: 24rpx;
510
+ font-size: 24rpx;
511
+ }
512
+ }
513
+ .buy_btn {
514
+ width: 146rpx;
515
+ height: 60rpx;
516
+ background-color: var(--main-color);
517
+ color: #fff;
518
+ border-radius: 60rpx;
519
+ line-height: 60rpx;
520
+ text-align: center;
521
+ font-size: 24rpx;
522
+ }
523
+ }
524
+ .code {
525
+ padding: 24rpx;
526
+ background: #fff;
527
+ &_input_wrap {
528
+ background: linear-gradient(
529
+ 180deg,
530
+ rgba(251, 233, 208, 1) 0%,
531
+ rgba(246, 217, 183, 1) 100%
532
+ ),
533
+ linear-gradient(
534
+ 180deg,
535
+ rgba(248, 223, 193, 1) 0%,
536
+ rgba(232, 186, 133, 1) 100%
537
+ );
538
+ border-radius: 32rpx;
539
+ padding: 48rpx 64rpx;
540
+ }
541
+ &_input_item {
542
+ margin-bottom: 24rpx;
543
+ position: relative;
544
+ .icon {
545
+ position: absolute;
546
+ right: 28rpx;
547
+ top: 50%;
548
+ transform: translate(0, -50%);
549
+ z-index: 3000;
550
+ }
551
+ & > .input {
552
+ background: #fff3e6;
553
+ border: 2rpx solid #bfa07c;
554
+ border-radius: 12rpx;
555
+ padding: 16rpx 24rpx;
203
556
  font-size: 28rpx;
204
- color: #915714;
205
- font-weight: 500;
206
557
  }
207
- ::v-deep .my-list_value{
208
- color: #999999;
558
+ & > .input ::v-deep .uni-input-placeholder {
559
+ color: #bfa07c !important;
209
560
  }
210
- .desc_tit{
211
- height: 72rpx;
212
- line-height: 72rpx;
213
- text-align: center;
561
+ }
562
+ &_info {
563
+ background: #fff3e6;
564
+ border-radius: 16rpx;
565
+ padding: 16rpx;
566
+ margin-bottom: 40rpx;
567
+ font-size: 28rpx;
568
+ &_item {
569
+ display: flex;
570
+ align-items: center;
571
+ justify-content: space-between;
572
+ margin-bottom: 16rpx;
573
+ &_label {
574
+ color: #bfa07c;
575
+ }
576
+ &_value {
577
+ color: #915714;
578
+ display: flex;
579
+ align-items: center;
580
+ }
214
581
  }
215
- .desc_cont{
216
- padding: 24rpx;
582
+ &_item:last-child {
583
+ margin-bottom: 0;
217
584
  }
218
- .code_input_wrap{
219
- width: 100%;
220
- padding: 36rpx;
221
- box-sizing: border-box;
585
+ }
586
+ }
587
+ .rule_box {
588
+ width: 710rpx;
589
+ background-size: 100% 100%;
590
+ background-repeat: no-repeat;
591
+ }
592
+ .vip_info {
593
+ // padding: 20rpx;
594
+ margin-bottom: 20rpx;
595
+ background: #fff;
596
+ .vip_box {
597
+ width: 710rpx;
598
+ height: 340rpx;
599
+ margin: auto;
600
+ border-radius: 32rpx;
601
+ background-color: #e8a841;
602
+ // background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
603
+ background-size: 100% 100%;
604
+ background-repeat: no-repeat;
605
+ display: flex;
606
+ align-items: center;
607
+ justify-content: space-between;
608
+ padding: 40rpx;
609
+ box-sizing: border-box;
610
+
611
+ &-left {
612
+ font-size: 24rpx;
613
+ font-weight: 400;
614
+ color: #ffffff;
615
+ display: flex;
616
+ align-self: stretch;
617
+ flex-direction: column;
618
+ justify-content: space-between;
222
619
  }
223
- .code_input{
224
- width: 100%;
225
- height: 90rpx;
226
- background-color: #FAFAFA;
227
- box-sizing: border-box;
228
- padding: 0 36rpx;
229
- border-radius: 16rpx;
620
+ &-title {
621
+ font-size: 32rpx;
622
+ font-weight: bold;
623
+ }
624
+ .vip_logo {
625
+ width: 104rpx;
626
+ height: 104rpx;
627
+ image {
628
+ width: 100%;
629
+ height: 100%;
630
+ }
230
631
  }
231
632
  }
232
- .fixed_bottom{
233
- position: fixed;
234
- bottom: 0;
235
- left: 0;
633
+
634
+ .vip_banner {
635
+ display: flex;
636
+ padding: 16rpx;
637
+ margin: 20rpx 0;
638
+ justify-content: space-around;
639
+ .banner_item {
640
+ display: flex;
641
+ align-items: center;
642
+ flex-direction: column;
643
+ .banner_img {
644
+ width: 108rpx;
645
+ height: 108rpx;
646
+ border-radius: 108rpx;
647
+ // background-color: #EBB963;
648
+ }
649
+ .banner_text {
650
+ color: #333333;
651
+ font-size: 24rpx;
652
+ font-weight: 500;
653
+ margin-top: 16rpx;
654
+ }
655
+ }
656
+ }
657
+
658
+ .vip_good {
659
+ background-color: #ffffff;
660
+ border-radius: 24rpx;
661
+ overflow: hidden;
662
+ &-title {
663
+ height: 110rpx;
664
+ line-height: 110rpx;
665
+ font-size: 36rpx;
666
+ font-weight: 500;
667
+ text-align: center;
668
+ color: #000000;
669
+ border-bottom: 1px solid #fafafa;
670
+ position: relative;
671
+ .line {
672
+ position: absolute;
673
+ left: 50%;
674
+ top: 50%;
675
+ transform: translate(-50%, -50%);
676
+ width: 280rpx;
677
+ height: 1px;
678
+ background-color: #000000;
679
+ }
680
+ ._text {
681
+ position: relative;
682
+ z-index: 10;
683
+ background-color: #fff;
684
+ padding: 0 24rpx;
685
+ }
686
+ }
687
+ .good_item {
688
+ padding: 32rpx 46rpx;
689
+ border-bottom: 1px solid #fafafa;
690
+ &:last-child {
691
+ border-bottom: none;
692
+ }
693
+ .good_title {
694
+ display: flex;
695
+ align-items: center;
696
+ font-size: 28rpx;
697
+ font-weight: 500;
698
+ color: #666666;
699
+
700
+ &-tag {
701
+ padding: 8rpx 16rpx;
702
+ border-radius: 8rpx;
703
+ font-size: 22rpx;
704
+ line-height: 1;
705
+ background: linear-gradient(90deg, #fcd083 0%, #ffdead 100%);
706
+ color: #915714;
707
+ margin-right: 16rpx;
708
+ }
709
+ }
710
+ .good_cont {
711
+ font-size: 28rpx;
712
+ color: #bbbbbb;
713
+ font-size: 400;
714
+ margin-top: 16rpx;
715
+ }
716
+ }
717
+ }
718
+ }
719
+ .combo_section {
720
+ border-radius: 24rpx;
721
+ overflow: hidden;
722
+ margin: 20rpx;
723
+ background-color: #ffffff;
724
+ &-title {
725
+ height: 72rpx;
726
+ line-height: 72rpx;
727
+ text-align: center;
728
+ background: linear-gradient(90deg, #fcd083 0%, #ffdead 100%);
729
+ font-size: 28rpx;
730
+ color: #915714;
731
+ font-weight: 500;
732
+ }
733
+ ::v-deep .my-list_value {
734
+ color: #999999;
735
+ }
736
+ .desc_tit {
737
+ height: 72rpx;
738
+ line-height: 72rpx;
739
+ text-align: center;
740
+ }
741
+ .desc_cont {
742
+ padding: 24rpx;
743
+ }
744
+ .code_input_wrap {
236
745
  width: 100%;
237
746
  padding: 36rpx;
238
747
  box-sizing: border-box;
239
- background-color: #FFFFFF;
240
- display: flex;
241
- flex-direction: column;
242
- align-items: center;
243
- .plus_privacy{
244
- font-size: 22rpx;
245
- color: #999;
246
- margin-top: 16rpx;
247
- }
748
+ }
749
+ .code_input {
750
+ width: 100%;
751
+ height: 90rpx;
752
+ background-color: #fafafa;
753
+ box-sizing: border-box;
754
+ padding: 0 36rpx;
755
+ border-radius: 16rpx;
756
+ }
757
+ }
758
+ .fixed_bottom {
759
+ position: fixed;
760
+ bottom: 0;
761
+ left: 0;
762
+ width: 100%;
763
+ padding: 36rpx;
764
+ box-sizing: border-box;
765
+ background-color: #ffffff;
766
+ display: flex;
767
+ flex-direction: column;
768
+ align-items: center;
769
+ .plus_privacy {
770
+ font-size: 22rpx;
771
+ color: #999;
772
+ margin-top: 16rpx;
248
773
  }
249
774
  }
250
775
  }
776
+ }
251
777
  </style>