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.
@@ -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,617 @@
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";
96
255
  },
97
- watch: {
98
- container(value, oldValue) {
99
- if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
100
- if (this.$configProject['isPreview']) this.init(value)
101
- },
256
+ },
257
+ watch: {
258
+ container(value, oldValue) {
259
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
260
+ if (this.$configProject["isPreview"]) this.init(value);
261
+ },
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.resultStr;
353
+ this.searchCode()
354
+ },
355
+ fail: (error) => {
356
+ this.$xdLog.setARMSError(error);
357
+ },
358
+ });
359
+ //#endif
360
+ } catch (err) {
361
+ console.log(err,'err');
362
+
363
+ this.$xdLog.setARMSError(err);
364
+ }
365
+ },
366
+
367
+ handlePrivacy(code) {
368
+ let params = `page_id=${this.pageAttr["page_id"]}`;
369
+ params = `${params}&container_id=${this.containerId}${code}`;
370
+ this.$xdUniHelper.navigateTo({
371
+ url: `/pages/content/content?${params}`,
372
+ });
373
+ },
374
+
375
+ searchCode() {
376
+ if (!this.card_number && !this.card_password && !this.card_qrcode) return;
377
+ let data = {};
378
+ if (this.card_number) data.card_number = this.card_number;
379
+ if (this.card_password) data.card_password = this.card_password;
380
+ if (this.card_qrcode) data.card_qrcode = this.card_qrcode;
381
+ console.log(data,'data');
382
+
383
+ this.$xdShowLoading({});
384
+ jfbRootExec("getExchangeCode", {
385
+ vm: this,
386
+ data: data,
387
+ })
388
+ .then((res) => {
142
389
  this.$xdHideLoading();
143
- this.step = 2;
390
+ this.openStatus = res.status;
391
+ this.message = res.alert_message;
392
+ this.showMessage = true;
144
393
  this.vipInfo = res;
145
- }).catch(e=>{
146
- this.$xdHideLoading();
147
394
  })
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
162
- }
395
+ .catch((e) => {
396
+ this.$xdHideLoading();
397
+ });
398
+
399
+ },
400
+
401
+ createVipOrder() {
402
+ if (this.createStatus) return;
403
+ this.createStatus = true;
404
+ this.$xdShowLoading({});
405
+ jfbRootExec("createVipOrder", {
406
+ vm: this,
407
+ data: {
408
+ business_code: this.xnamespace,
409
+ product_id: this.vipInfo.product_id,
410
+ notify_provider_id: this.projectAttr.notify_provider_id,
411
+ need_pay_price: 0,
412
+ selected_card_list_json: this.vipInfo.selected_card_list_json,
413
+ },
414
+ })
415
+ .then((res) => {
416
+ this.createStatus = false;
417
+ this.openStatus = res.status;
418
+ this.message = res.alert_message;
419
+ this.showMessage = true;
420
+ this.main_order_id = res.main_order_id
421
+ this.$xdHideLoading();
422
+ // if (res.need_pay_price > 0) {
423
+ // this.$xdUniHelper.redirectTo({
424
+ // url:
425
+ // this.payPath +
426
+ // `?order_id=${res.pay_order_id}&main_order_id=${res.main_order_id}`,
427
+ // });
428
+ // } else {
429
+ // this.$xdUniHelper.redirectTo({
430
+ // url: this.vipSuccessPath + `?order_id=${res.main_order_id}`,
431
+ // });
432
+ // }
163
433
  })
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
- },
434
+ .catch((err) => {
435
+ this.createStatus = false;
436
+ this.$xdHideLoading();
437
+ });
438
+ },
439
+ handleCloseMessage() {
440
+ this.showMessage = false;
441
+ if (!this.openStatus) {
442
+ return;
443
+ }
444
+ this.$xdUniHelper.redirectTo({
445
+ url: this.vipSuccessPath + `?order_id=${this.main_order_id}`,
446
+ });
183
447
  }
184
- }
185
-
448
+ },
449
+ };
186
450
  </script>
187
451
 
188
452
  <style scoped lang="less">
189
- @import "./JfbBaseCodeOpenVipLess.less";
453
+ @import "./JfbBaseCodeOpenVipLess.less";
190
454
 
191
- .jfb-base-code-open-vip {
192
- &__body{
193
- .combo_section{
194
- border-radius: 24rpx;
455
+ .jfb-base-code-open-vip {
456
+ &__body {
457
+ .u_header {
458
+ display: flex;
459
+ align-items: center;
460
+ padding: 24rpx 40rpx;
461
+ margin-bottom: 20rpx;
462
+
463
+ .u_avatar {
464
+ width: 120rpx;
465
+ height: 120rpx;
466
+ border-radius: 120rpx;
467
+ margin-right: 24rpx;
195
468
  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%);
469
+ image {
470
+ width: 100%;
471
+ height: 100%;
472
+ }
473
+ }
474
+ .u_info {
475
+ flex: 1;
476
+ &-top {
477
+ display: flex;
478
+ align-items: center;
479
+ .vip_name {
480
+ font-size: 28rpx;
481
+ color: #333333;
482
+ }
483
+ .vip_level {
484
+ padding: 4rpx 16rpx;
485
+ border-radius: 24rpx;
486
+ font-size: 24rpx;
487
+ background-color: #ffe6c4;
488
+ color: #615850;
489
+ margin-left: 8rpx;
490
+ &.plus {
491
+ background: linear-gradient(180deg, #615243 0%, #2d2824 100%);
492
+ color: #ffefd7;
493
+ }
494
+ }
495
+ }
496
+ .u_sub {
497
+ margin-top: 24rpx;
498
+ font-size: 24rpx;
499
+ }
500
+ }
501
+ .buy_btn {
502
+ width: 146rpx;
503
+ height: 60rpx;
504
+ background-color: var(--main-color);
505
+ color: #fff;
506
+ border-radius: 60rpx;
507
+ line-height: 60rpx;
508
+ text-align: center;
509
+ font-size: 24rpx;
510
+ }
511
+ }
512
+ .code {
513
+ padding: 24rpx;
514
+ background: #fff;
515
+ &_input_wrap {
516
+ background: linear-gradient(
517
+ 180deg,
518
+ rgba(251, 233, 208, 1) 0%,
519
+ rgba(246, 217, 183, 1) 100%
520
+ ),
521
+ linear-gradient(
522
+ 180deg,
523
+ rgba(248, 223, 193, 1) 0%,
524
+ rgba(232, 186, 133, 1) 100%
525
+ );
526
+ border-radius: 32rpx;
527
+ padding: 48rpx 64rpx;
528
+ }
529
+ &_input_item {
530
+ margin-bottom: 24rpx;
531
+ position: relative;
532
+ .icon {
533
+ position: absolute;
534
+ right: 28rpx;
535
+ top: 50%;
536
+ transform: translate(0, -50%);
537
+ }
538
+ & > .input {
539
+ background: #fff3e6;
540
+ border: 2rpx solid #bfa07c;
541
+ border-radius: 12rpx;
542
+ padding: 16rpx 24rpx;
203
543
  font-size: 28rpx;
204
- color: #915714;
205
- font-weight: 500;
206
544
  }
207
- ::v-deep .my-list_value{
208
- color: #999999;
545
+ & > .input ::v-deep .uni-input-placeholder {
546
+ color: #bfa07c !important;
209
547
  }
210
- .desc_tit{
211
- height: 72rpx;
212
- line-height: 72rpx;
213
- text-align: center;
548
+ }
549
+ &_info {
550
+ background: #fff3e6;
551
+ border-radius: 16rpx;
552
+ padding: 16rpx;
553
+ margin-bottom: 40rpx;
554
+ font-size: 28rpx;
555
+ &_item {
556
+ display: flex;
557
+ align-items: center;
558
+ justify-content: space-between;
559
+ margin-bottom: 16rpx;
560
+ &_label {
561
+ color: #bfa07c;
562
+ }
563
+ &_value {
564
+ color: #915714;
565
+ display: flex;
566
+ align-items: center;
567
+ }
214
568
  }
215
- .desc_cont{
216
- padding: 24rpx;
569
+ &_item:last-child {
570
+ margin-bottom: 0;
217
571
  }
218
- .code_input_wrap{
219
- width: 100%;
220
- padding: 36rpx;
221
- box-sizing: border-box;
572
+ }
573
+ }
574
+ .rule_box {
575
+ width: 710rpx;
576
+ background-size: 100% 100%;
577
+ background-repeat: no-repeat;
578
+ }
579
+ .vip_info {
580
+ // padding: 20rpx;
581
+ margin-bottom: 20rpx;
582
+ background: #fff;
583
+ .vip_box {
584
+ width: 710rpx;
585
+ height: 340rpx;
586
+ margin: auto;
587
+ border-radius: 32rpx;
588
+ background-color: #e8a841;
589
+ // background: linear-gradient(90deg, #E8A841 0%, #FAD48E 100%);
590
+ background-size: 100% 100%;
591
+ background-repeat: no-repeat;
592
+ display: flex;
593
+ align-items: center;
594
+ justify-content: space-between;
595
+ padding: 40rpx;
596
+ box-sizing: border-box;
597
+
598
+ &-left {
599
+ font-size: 24rpx;
600
+ font-weight: 400;
601
+ color: #ffffff;
602
+ display: flex;
603
+ align-self: stretch;
604
+ flex-direction: column;
605
+ justify-content: space-between;
222
606
  }
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;
607
+ &-title {
608
+ font-size: 32rpx;
609
+ font-weight: bold;
610
+ }
611
+ .vip_logo {
612
+ width: 104rpx;
613
+ height: 104rpx;
614
+ image {
615
+ width: 100%;
616
+ height: 100%;
617
+ }
618
+ }
619
+ }
620
+
621
+ .vip_banner {
622
+ display: flex;
623
+ padding: 16rpx;
624
+ margin: 20rpx 0;
625
+ justify-content: space-around;
626
+ .banner_item {
627
+ display: flex;
628
+ align-items: center;
629
+ flex-direction: column;
630
+ .banner_img {
631
+ width: 108rpx;
632
+ height: 108rpx;
633
+ border-radius: 108rpx;
634
+ // background-color: #EBB963;
635
+ }
636
+ .banner_text {
637
+ color: #333333;
638
+ font-size: 24rpx;
639
+ font-weight: 500;
640
+ margin-top: 16rpx;
641
+ }
642
+ }
643
+ }
644
+
645
+ .vip_good {
646
+ background-color: #ffffff;
647
+ border-radius: 24rpx;
648
+ overflow: hidden;
649
+ &-title {
650
+ height: 110rpx;
651
+ line-height: 110rpx;
652
+ font-size: 36rpx;
653
+ font-weight: 500;
654
+ text-align: center;
655
+ color: #000000;
656
+ border-bottom: 1px solid #fafafa;
657
+ position: relative;
658
+ .line {
659
+ position: absolute;
660
+ left: 50%;
661
+ top: 50%;
662
+ transform: translate(-50%, -50%);
663
+ width: 280rpx;
664
+ height: 1px;
665
+ background-color: #000000;
666
+ }
667
+ ._text {
668
+ position: relative;
669
+ z-index: 10;
670
+ background-color: #fff;
671
+ padding: 0 24rpx;
672
+ }
673
+ }
674
+ .good_item {
675
+ padding: 32rpx 46rpx;
676
+ border-bottom: 1px solid #fafafa;
677
+ &:last-child {
678
+ border-bottom: none;
679
+ }
680
+ .good_title {
681
+ display: flex;
682
+ align-items: center;
683
+ font-size: 28rpx;
684
+ font-weight: 500;
685
+ color: #666666;
686
+
687
+ &-tag {
688
+ padding: 8rpx 16rpx;
689
+ border-radius: 8rpx;
690
+ font-size: 22rpx;
691
+ line-height: 1;
692
+ background: linear-gradient(90deg, #fcd083 0%, #ffdead 100%);
693
+ color: #915714;
694
+ margin-right: 16rpx;
695
+ }
696
+ }
697
+ .good_cont {
698
+ font-size: 28rpx;
699
+ color: #bbbbbb;
700
+ font-size: 400;
701
+ margin-top: 16rpx;
702
+ }
230
703
  }
231
704
  }
232
- .fixed_bottom{
233
- position: fixed;
234
- bottom: 0;
235
- left: 0;
705
+ }
706
+ .combo_section {
707
+ border-radius: 24rpx;
708
+ overflow: hidden;
709
+ margin: 20rpx;
710
+ background-color: #ffffff;
711
+ &-title {
712
+ height: 72rpx;
713
+ line-height: 72rpx;
714
+ text-align: center;
715
+ background: linear-gradient(90deg, #fcd083 0%, #ffdead 100%);
716
+ font-size: 28rpx;
717
+ color: #915714;
718
+ font-weight: 500;
719
+ }
720
+ ::v-deep .my-list_value {
721
+ color: #999999;
722
+ }
723
+ .desc_tit {
724
+ height: 72rpx;
725
+ line-height: 72rpx;
726
+ text-align: center;
727
+ }
728
+ .desc_cont {
729
+ padding: 24rpx;
730
+ }
731
+ .code_input_wrap {
236
732
  width: 100%;
237
733
  padding: 36rpx;
238
734
  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
- }
735
+ }
736
+ .code_input {
737
+ width: 100%;
738
+ height: 90rpx;
739
+ background-color: #fafafa;
740
+ box-sizing: border-box;
741
+ padding: 0 36rpx;
742
+ border-radius: 16rpx;
743
+ }
744
+ }
745
+ .fixed_bottom {
746
+ position: fixed;
747
+ bottom: 0;
748
+ left: 0;
749
+ width: 100%;
750
+ padding: 36rpx;
751
+ box-sizing: border-box;
752
+ background-color: #ffffff;
753
+ display: flex;
754
+ flex-direction: column;
755
+ align-items: center;
756
+ .plus_privacy {
757
+ font-size: 22rpx;
758
+ color: #999;
759
+ margin-top: 16rpx;
248
760
  }
249
761
  }
250
762
  }
763
+ }
251
764
  </style>