jufubao-base 1.0.167 → 1.0.169-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.
@@ -13,8 +13,153 @@
13
13
  <view class="jfb-base-tfk-card-login__edit-icon" @click="delEdit">删除</view>
14
14
  </view>
15
15
  <!-- #endif -->
16
- <view class="jfb-base-tfk-card-login__body">
17
- <view>测试插件( {{containerId}} )</view>
16
+ <view class="jfb-base-tfk-card-login__body" :style="{
17
+ '--card-list-margin': ($rpxNum * cardItemMargin) + 'px',
18
+ }">
19
+ <view class="menu_wrap" :style="menuBoxStyle">
20
+ <view class="menu_list">
21
+ <view class="menu_item" :style="{
22
+ marginRight: menuItemMargin + 'px'
23
+ }">
24
+ <view class="menu_item_inner"
25
+ :style="[menuType === 'card' ? menuItemActiveStyle : menuItemStyle, menuItemBoxStyle]">我的票券包</view>
26
+ </view>
27
+ <view class="menu_item">
28
+ <view class="menu_item_inner"
29
+ :style="[menuType === 'coupon' ? menuItemActiveStyle : menuItemStyle, menuItemBoxStyle]">我的优惠券</view>
30
+ </view>
31
+ </view>
32
+ <view @click="toBindCard">
33
+ <xd-font-icon :icon="bindCardIcon.icon"
34
+ :color="bindCardIcon.color"
35
+ :style="{fontSize: bindCardIcon.fontSize}"
36
+ ></xd-font-icon>
37
+ </view>
38
+ </view>
39
+ <view class="JfbBaseNotice">
40
+ <!--notice-->
41
+ <view class="jfb-base-tfk-card-login__body-line" v-if="!notice"></view>
42
+ <view :style="{marginTop: '0rpx'}" class="jfb-base-tfk-card-login__body-notice" v-if="notice">
43
+ <view
44
+ class="jfb-base-tfk-card-login__body-notice-in"
45
+ :style="{ background: noticeBackgroundColor }"
46
+ >
47
+ <xd-notice-bar
48
+ style="width: 100%"
49
+ :showIcon="true"
50
+ :scrollable="true"
51
+ :speed="20"
52
+ :fontSize="24"
53
+ :height="70"
54
+ :is-no-bgc="false"
55
+ >
56
+ <template>
57
+ <view v-html="notice"></view>
58
+ </template>
59
+ </xd-notice-bar>
60
+ </view>
61
+ </view>
62
+ <view class="jfb-base-tfk-card-login__body-notice" v-if="noticeStatus && isPreview && notice === ''">
63
+ <view
64
+ class="jfb-base-tfk-card-login__body-notice-in"
65
+ :style="{
66
+ background: noticeBackgroundColor,
67
+ textAlign: 'center',
68
+ color: dangerColor,
69
+ fontSize: 26 + 'rpx',
70
+ }">该组件未配置数据,因此改模块在正式环境将不显示</view>
71
+ </view>
72
+ <!--notice end-->
73
+ </view>
74
+ <view class="card_list_wrap" :style="listBoxStyle">
75
+
76
+ <!-- 我的票券包- 已绑票券 -->
77
+ <template v-if="menuType === 'card'">
78
+ <view v-if="loadingList">
79
+ <view class="bind_list skeleton-wrap">
80
+ <view class="bind_item" v-for="i in 5" :key="i" :style="cardItemBoxStyle">
81
+ <view class="bind_point"></view>
82
+ <view class="bind_deduct"></view>
83
+ <view class="bind_number"></view>
84
+ <view class="bind_time"></view>
85
+ <view class="bind_type"></view>
86
+ <view class="bind_btn"></view>
87
+ </view>
88
+ </view>
89
+ </view>
90
+ <view v-else>
91
+ <view v-if="cardList.length" class="bind_list">
92
+ <view class="bind_item" v-for="(item, i) in cardList" :key="i"
93
+ :style="cardItemBoxStyle">
94
+ <view class="bind_point">120</view>
95
+ <view class="bind_deduct">兑换其他商品可抵:240元宝</view>
96
+ <view class="bind_number">1001000002541</view>
97
+ <view class="bind_time">2029-12-31到期</view>
98
+ <view class="bind_type" :style="{
99
+ top: cardPadding.top + 'rpx',
100
+ right: cardPadding.right + 'rpx',
101
+ }">
102
+ <view>兰州vip优惠券</view>
103
+ <view>(可转票券)</view>
104
+ </view>
105
+ <view class="bind_btn" :style="[{
106
+ right: cardPadding.right + 'rpx',
107
+ bottom: cardPadding.bottom + 'rpx',
108
+ borderRadius: cardBtnRadius + 'rpx',
109
+ padding: bindCardBtnPadding
110
+ }, item.is_login !== 'Y' ? bindCardActiveStyle : bindCardBtnStyle]">登录</view>
111
+ </view>
112
+ <view v-if="!hasCardList" class="no_more_card">没有更多券了,查看失效的票券 ></view>
113
+ </view>
114
+ <view v-else>
115
+ 暂无数据
116
+ </view>
117
+ </view>
118
+ </template>
119
+
120
+ <!-- 优惠券 -->
121
+ <template v-else >
122
+ <view v-if="couponList.length" class="coupon_list">
123
+ <view class="coupon_item" v-for="(item, i) in couponList" :key="i" :style="couponItemBoxStyle">
124
+ <view class="coupon_left">
125
+ <view class="_point">200<text style="font-size: 24rpx;">点</text></view>
126
+ <view class="_rule">满100减40</view>
127
+ </view>
128
+ <view class="coupon_right" :style="couponRightItemBoxStyle">
129
+ <view class="cont_top" :style="{
130
+ background: couponTitleBgColor
131
+ }">众福优选-众选全场通兑次票60档(上海)</view>
132
+ <view class="cont_main">
133
+ <view class="cou_number">券号:923974909815654</view>
134
+ <view class="cou_time">有效期:2023-09-09</view>
135
+ <view class="cou_point">余额:120</view>
136
+ <view class="cou_btn" :style="[couponBtnStyle, {
137
+ padding: couponBtnPadding,
138
+ borderRadius: couponBtnRadius + 'rpx'
139
+ }]">去使用</view>
140
+ </view>
141
+ <view class="cont_bottom">
142
+ <view class="switch_rule">
143
+ <view>使用规则</view>
144
+ <view>
145
+ <xd-font-icon icon="iconxia_down" size="24"></xd-font-icon>
146
+ </view>
147
+ </view>
148
+ <view class="expand_rule">
149
+ 这是一段文字规则描述,不知道又多长多长长...
150
+ </view>
151
+ </view>
152
+ </view>
153
+ </view>
154
+ <view v-if="!hasCouponList" class="no_more_card">没有更多券了,查看失效的票券 ></view>
155
+ </view>
156
+ <view v-else>
157
+ 暂无数据
158
+ </view>
159
+
160
+ </template>
161
+ </view>
162
+
18
163
  </view>
19
164
  </view>
20
165
  </template>
@@ -26,20 +171,203 @@
26
171
  import { getContainerPropsValue } from "@/utils/xd.base";
27
172
  import componentsMixins from "@/mixins/componentsMixins";
28
173
  import extsMixins from "@/mixins/extsMixins";
174
+ import getServiceUrl from '@/common/getServiceUrl'
175
+ import XdNoticeBar from "@/components/XdNoticeBar/XdNoticeBar";
176
+ import Color from "color"
29
177
  export default {
30
178
  name: "JfbBaseTfkCardLogin",
31
179
  components: {
32
- XdFontIcon
180
+ XdFontIcon,
181
+ XdNoticeBar
33
182
  },
34
183
  mixins: [
35
184
  componentsMixins, extsMixins, JfbBaseTfkCardLoginMixin
36
185
  ],
37
186
  data() {
38
187
  return {
188
+ menuType: "coupon", // card, coupon
189
+ loadingList: false,
190
+ cardList: [{id: 1}, {id: 2}],
191
+ couponList: [{id: 1}, {id: 2}],
192
+ hasCardList: false,
193
+ hasCouponList: false,
39
194
 
40
195
  //todo
196
+ previewCurrent: "",
197
+ isPreview: false,
198
+ notice: "",
199
+ noticeStatus: false,
200
+ noticeBackgroundColor: "",
201
+ cardBindPath: "",
202
+ menuPadding: {},
203
+ menuBtnPadding: {},
204
+ menuItemMargin: 40,
205
+ menuBorderWidth: 1,
206
+ menuTabColor: {},
207
+ bindCardIcon: {},
208
+ cardImageUrl: "",
209
+ couponImageUrl: "",
210
+ cardPadding: {},
211
+ cardRadius: 0,
212
+ couponRadius: 0,
213
+ cardListPadding: {},
214
+ cardItemMargin: 20,
215
+ couponTitleBgColor: "",
216
+ cardBtnTextStyle: {}, //我的票券包登录按钮文字背景色设置
217
+ cardBtnRadius: 16,
218
+ cardBtnPadding: {},
219
+ couponBtnTextStyle: {}, //优惠券包登录按钮文字背景色设置
220
+ couponUseBtnPadding: {},
221
+ couponBtnRadius: 16,
41
222
  }
42
223
  },
224
+ computed: {
225
+ menuBoxStyle(){
226
+ let padding = `${this.checkValue(this.menuPadding.top, 20)}rpx`;
227
+ padding = `${padding} ${this.checkValue(this.menuPadding.right, 20)}rpx`;
228
+ padding = `${padding} ${this.checkValue(this.menuPadding.bottom, 20)}rpx`;
229
+ padding = `${padding} ${this.checkValue(this.menuPadding.left, 20)}rpx`;
230
+
231
+ return this.styleObjectToString({
232
+ // background: this.formBgColor,
233
+ padding: padding,
234
+ })
235
+ },
236
+ menuItemBoxStyle(){
237
+ let padding = `${this.checkValue(this.menuBtnPadding.top, 20)}rpx`;
238
+ padding = `${padding} ${this.checkValue(this.menuBtnPadding.right, 20)}rpx`;
239
+ padding = `${padding} ${this.checkValue(this.menuBtnPadding.bottom, 20)}rpx`;
240
+ padding = `${padding} ${this.checkValue(this.menuBtnPadding.left, 20)}rpx`;
241
+ return this.styleObjectToString({
242
+ padding
243
+ })
244
+ },
245
+ menuItemStyle(){
246
+ let styleObj = {
247
+ color: this.menuTabColor['color'] || '#333',
248
+ background: this.menuTabColor['bgColor'] || '#fff',
249
+ fontSize: this.menuTabColor['fontSize'] || '30rpx',
250
+ fontWeight: this.menuTabColor['fontWeight'] || 'normal',
251
+ borderWidth: this.menuBorderWidth + 'px',
252
+ }
253
+
254
+ return this.styleObjectToString(styleObj)
255
+ },
256
+ menuItemActiveStyle(){
257
+ let defaultTextColor = '#ff5a39';
258
+ let styleActiveObj = {
259
+ color: this.menuTabColor['actColor'] || defaultTextColor,
260
+ background: this.menuTabColor['actBgColor'] || '#fff',
261
+ fontSize: this.menuTabColor['actFontSize'] || '30rpx',
262
+ fontWeight: this.menuTabColor['actFontWeight'] || 'normal',
263
+ borderBottom: `${this.menuBorderWidth}px solid ${this.menuTabColor['actColor'] || defaultTextColor}`
264
+ }
265
+ return this.styleObjectToString(styleActiveObj)
266
+ },
267
+ bindCardBtnPadding(){
268
+ let padding = `${this.checkValue(this.cardBtnPadding.top, 20)}rpx`;
269
+ padding = `${padding} ${this.checkValue(this.cardBtnPadding.right, 20)}rpx`;
270
+ padding = `${padding} ${this.checkValue(this.cardBtnPadding.bottom, 20)}rpx`;
271
+ padding = `${padding} ${this.checkValue(this.cardBtnPadding.left, 20)}rpx`;
272
+ return padding;
273
+ },
274
+ bindCardBtnStyle(){
275
+ let styleObj = {
276
+ color: this.cardBtnTextStyle['color'] || '#333',
277
+ background: this.cardBtnTextStyle['bgColor'] || '#fff',
278
+ fontSize: this.cardBtnTextStyle['fontSize'] || '30rpx',
279
+ fontWeight: this.cardBtnTextStyle['fontWeight'] || 'normal',
280
+ }
281
+ return this.styleObjectToString(styleObj)
282
+ },
283
+ bindCardActiveStyle(){
284
+ let defaultTextColor = '#ff5a39';
285
+ let styleActiveObj = {
286
+ color: this.cardBtnTextStyle['actColor'] || defaultTextColor,
287
+ background: this.cardBtnTextStyle['actBgColor'] || '#fff',
288
+ fontSize: this.cardBtnTextStyle['actFontSize'] || '30rpx',
289
+ fontWeight: this.cardBtnTextStyle['actFontWeight'] || 'normal',
290
+ }
291
+ return this.styleObjectToString(styleActiveObj)
292
+ },
293
+ couponBtnPadding(){
294
+ let padding = `${this.checkValue(this.couponUseBtnPadding.top, 20)}rpx`;
295
+ padding = `${padding} ${this.checkValue(this.couponUseBtnPadding.right, 20)}rpx`;
296
+ padding = `${padding} ${this.checkValue(this.couponUseBtnPadding.bottom, 20)}rpx`;
297
+ padding = `${padding} ${this.checkValue(this.couponUseBtnPadding.left, 20)}rpx`;
298
+ return padding;
299
+ },
300
+ couponBtnStyle(){
301
+ let styleObj = {
302
+ color: this.couponBtnTextStyle['color'] || '#333',
303
+ background: this.couponBtnTextStyle['bgColor'] || '#fff',
304
+ fontSize: this.couponBtnTextStyle['fontSize'] || '30rpx',
305
+ fontWeight: this.couponBtnTextStyle['fontWeight'] || 'normal',
306
+ }
307
+ return this.styleObjectToString(styleObj)
308
+ },
309
+ getCardBgImage(){
310
+ let bg = '';
311
+ if(this.$xdUniHelper.checkVarType(this.cardImageUrl) === 'object'
312
+ || this.$xdUniHelper.checkVarType(this.cardImageUrl) === 'array'
313
+ ) {
314
+ if(!this.$xdUniHelper.isEmpty(this.cardImageUrl)) {
315
+ return getServiceUrl(this.cardImageUrl.url)
316
+ }
317
+ }
318
+ return bg
319
+ },
320
+ cardItemBoxStyle(){
321
+ let image = {};
322
+ if(this.cardImageUrl) image = {
323
+ backgroundImage: `url(${this.getCardBgImage})`,
324
+ backgroundSize: '100%',
325
+ backgroundRepeat: 'no-repeat',
326
+ }
327
+ let padding = `${this.checkValue(this.cardPadding.top, 20)}rpx`;
328
+ padding = `${padding} ${this.checkValue(this.cardPadding.right, 20)}rpx`;
329
+ padding = `${padding} ${this.checkValue(this.cardPadding.bottom, 20)}rpx`;
330
+ padding = `${padding} ${this.checkValue(this.cardPadding.left, 20)}rpx`;
331
+ image['padding'] = padding;
332
+ image['borderRadius'] = this.cardRadius + 'rpx';
333
+ return this.styleObjectToString(image)
334
+ },
335
+ listBoxStyle(){
336
+ let padding = `${this.checkValue(this.cardListPadding.top, 20)}rpx`;
337
+ padding = `${padding} ${this.checkValue(this.cardListPadding.right, 20)}rpx`;
338
+ padding = `${padding} ${this.checkValue(this.cardListPadding.bottom, 20)}rpx`;
339
+ padding = `${padding} ${this.checkValue(this.cardListPadding.left, 20)}rpx`;
340
+
341
+ return this.styleObjectToString({
342
+ padding: padding,
343
+ })
344
+ },
345
+ getCouponBgImage(){
346
+ let bg = '';
347
+ if(this.$xdUniHelper.checkVarType(this.couponImageUrl) === 'object'
348
+ || this.$xdUniHelper.checkVarType(this.couponImageUrl) === 'array'
349
+ ) {
350
+ if(!this.$xdUniHelper.isEmpty(this.couponImageUrl)) {
351
+ return getServiceUrl(this.couponImageUrl.url)
352
+ }
353
+ }
354
+ return bg
355
+ },
356
+ couponRightItemBoxStyle(){
357
+ let image = {};
358
+ if(this.cardImageUrl) image = {
359
+ backgroundImage: `url(${this.getCouponBgImage})`,
360
+ backgroundSize: '100%',
361
+ backgroundRepeat: 'no-repeat',
362
+ }
363
+ return this.styleObjectToString(image)
364
+ },
365
+ couponItemBoxStyle(){
366
+ return this.styleObjectToString({
367
+ borderRadius: this.couponRadius + 'rpx',
368
+ })
369
+ },
370
+ },
43
371
  watch: {
44
372
  container(value, oldValue) {
45
373
  if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
@@ -48,31 +376,73 @@
48
376
  },
49
377
  created() {
50
378
  this.init(this.container);
51
-
379
+ this.isPreview = this.$configProject.isPreview;
380
+ this.noticeBackgroundColor = Color(this.warningColor).alpha(0.2).toString();
52
381
  //todo
53
382
  },
54
383
  methods: {
55
384
  onJfbLoad(options) {
56
-
57
- // jfbRootExec('baiduUserLogin', {
58
-
59
- // vm: this,// data: {
60
-
61
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
62
-
63
- // }
64
-
65
- // }).then().catch()
385
+ this.getContent();
66
386
  },
67
387
  /**
68
388
  * @description 监听事件变化
69
389
  * @param container {object} 业务组件对象自己
70
390
  */
71
- init(container) {
391
+ init(value) {
392
+ this.previewCurrent = getContainerPropsValue(value, "content.previewCurrent", 'card');
393
+ this.cardBindPath = getContainerPropsValue(value, "content.cardBindPath", {value: ""}).value;
394
+ this.menuPadding = getContainerPropsValue(value, "content.menuPadding", {top: 20, left: 20, right: 20, bottom: 20});
395
+ this.menuBtnPadding = getContainerPropsValue(value, "content.menuBtnPadding", {top: 20, left: 20, right: 20, bottom: 20});
396
+ this.menuItemMargin = getContainerPropsValue(value, "content.menuItemMargin", 40);
397
+ this.menuTabColor = getContainerPropsValue(value, "content.menuTabColor", {});
398
+ this.menuBorderWidth = getContainerPropsValue(value, "content.menuBorderWidth", 1);
399
+ this.bindCardIcon = getContainerPropsValue(value, "content.bindCardIcon", {});
400
+ this.cardImageUrl = getContainerPropsValue(value, "content.cardImageUrl", "");
401
+ this.couponImageUrl = getContainerPropsValue(value, "content.couponImageUrl", "");
402
+ this.cardPadding = getContainerPropsValue(value, "content.cardPadding", {top: 20, left: 20, right: 20, bottom: 20});
403
+ this.cardRadius = getContainerPropsValue(value, "content.cardRadius", 16);
404
+ this.couponRadius = getContainerPropsValue(value, "content.couponRadius", 16);
405
+ this.cardListPadding = getContainerPropsValue(value, "content.cardListPadding", {});
406
+ this.cardItemMargin = getContainerPropsValue(value, "content.cardItemMargin", 20);
407
+ this.couponTitleBgColor = getContainerPropsValue(value, "content.couponTitleBgColor", {});
408
+ this.cardBtnTextStyle = getContainerPropsValue(value, "content.cardBtnTextStyle", {});
409
+ this.cardBtnRadius = getContainerPropsValue(value, "content.cardBtnRadius", 16);
410
+ this.cardBtnPadding = getContainerPropsValue(value, "content.cardBtnPadding", {top: 20, left: 20, right: 20, bottom: 20});
411
+ this.couponBtnTextStyle = getContainerPropsValue(value, "content.couponBtnTextStyle", {});
412
+ this.couponUseBtnPadding = getContainerPropsValue(value, "content.couponUseBtnPadding", {top: 20, left: 20, right: 20, bottom: 20});
413
+ this.couponBtnRadius = getContainerPropsValue(value, "content.couponBtnRadius", 16);
72
414
 
73
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
415
+ console.log(this.couponTitleBgColor, 'couponTitleBgColor')
74
416
 
75
- //this.height = getContainerPropsValue(container, 'content.height', 10);
417
+ if(this.$configProject.isPreview){
418
+ this.menuType = this.previewCurrent;
419
+ }
420
+ },
421
+ toBindCard(){
422
+ this.$xdUniHelper.navigateTo({
423
+ url: this.cardBindPath
424
+ })
425
+ },
426
+ getContent() {
427
+ jfbRootExec("getListBaseNewsContent", {
428
+ vm: this,
429
+ data: {
430
+ page_id: this.pageAttr["page_id"], //页面ID
431
+ container_id: this.containerId, //组件ID
432
+ limit: 1,
433
+ },
434
+ })
435
+ .then((res) => {
436
+ if (res.list.length > 0) {
437
+ if(res.list && res.list.length > 0) {
438
+ this.notice = this.$xdUniHelper.filterHtml(res.list[0].content);
439
+ }
440
+ this.noticeStatus = true;
441
+ }
442
+ })
443
+ .catch((error) => {
444
+ console.error(error);
445
+ });
76
446
  },
77
447
  onJfbScroll(options) {
78
448
  console.log('event.onJfbScroll', options)
@@ -105,7 +475,202 @@
105
475
 
106
476
  .jfb-base-tfk-card-login {
107
477
  &__body{
478
+ .menu_wrap{
479
+ display: flex;
480
+ justify-content: space-between;
481
+ align-items: center;
482
+ background-color: #FFFFFF;
483
+ .menu_list{
484
+ display: flex;
485
+ align-items: center;
486
+ .menu_item_inner{
487
+ border-bottom: 1px solid transparent;
488
+ }
489
+ }
490
+ }
491
+ &-notice {
492
+ width: 100%;
493
+ margin-top: unit(30, rpx);
494
+ height: unit(80, rpx);
495
+ position: relative;
496
+ &-in {
497
+ position: absolute;
498
+ left: unit(-30, rpx);
499
+ top: unit(0, rpx);
500
+ right: unit(-30, rpx);
501
+ bottom: 0;
502
+ display: flex;
503
+ padding: 0 unit(30, rpx);
504
+ overflow: hidden;
505
+ align-items: center;
506
+ }
507
+
508
+ }
509
+ .card_list_wrap{
510
+ padding: 0 20rpx;
511
+ .bind_list{
512
+ &.skeleton-wrap{
513
+ .bind_item{
514
+ .bind_point{
515
+ .skeleton-item(120rpx, 40rpx);
516
+ }
517
+ .bind_deduct{
518
+ .skeleton-item(350rpx, 48rpx);
519
+ padding: 0;
520
+ }
521
+ .bind_number{
522
+ .skeleton-item(250rpx, 28rpx);
523
+ }
524
+ .bind_time{
525
+ .skeleton-item(180rpx, 24rpx);
526
+ }
527
+ .bind_type{
528
+ .skeleton-item(150rpx, 66rpx);
529
+ }
530
+ .bind_btn{
531
+ .skeleton-item(180rpx, 64rpx);
532
+ padding: 0;
533
+ }
534
+ }
535
+ }
536
+ .bind_item{
537
+ padding: 32rpx;
538
+ background: #fff;
539
+ border-radius: 16rpx;
540
+ border: 1px solid #eeeeee;
541
+ margin: var(--card-list-margin) 0;
542
+ position: relative;
543
+ .bind_point{
544
+ color: #000;
545
+ font-size: 48rpx;
546
+ }
547
+ .bind_deduct{
548
+ font-size: 28rpx;
549
+ color: #999;
550
+ background: rgba(51, 51, 51, 0.05);
551
+ display: inline-block;
552
+ padding: 4rpx 20rpx;
553
+ margin-top: 12rpx;
554
+ }
555
+ .bind_number{
556
+ font-size: 28rpx;
557
+ color: #999;
558
+ margin-top: 20rpx;
559
+ font-weight: 500;
560
+ }
561
+ .bind_time{
562
+ font-size: 24rpx;
563
+ color: #999;
564
+ margin-top: 16rpx;
565
+ font-weight: 500;
566
+ line-height: 1;
567
+ }
568
+ .bind_type{
569
+ font-size: 28rpx;
570
+ color: #333333;
571
+ position: absolute;
572
+ top: 32rpx;
573
+ right: 32rpx;
574
+ text-align: center;
575
+ font-size: 24rpx;
576
+ font-weight: 400;
577
+ }
578
+ .bind_btn{
579
+ font-size: 28rpx;
580
+ color: #999;
581
+ position: absolute;
582
+ bottom: 32rpx;
583
+ right: 32rpx;
584
+ background: #ddd;
585
+ padding: 16rpx 60rpx;
586
+ border-radius: 12rpx;
587
+ }
588
+ }
589
+ }
590
+ .coupon_list{
591
+ .coupon_item{
592
+ display: flex;
593
+ margin: 20rpx 0;
594
+ border-radius: 16rpx;
595
+ background: #FFFFFF;
596
+ overflow: hidden;
597
+ .coupon_left{
598
+ color: #FFFFFF;
599
+ width: 170rpx;
600
+ display: flex;
601
+ flex-direction: column;
602
+ align-items: center;
603
+ justify-content: center;
604
+ background: linear-gradient(180deg, #FFA852 0%, #FF5733 100%);
108
605
 
606
+ ._point{
607
+ font-size: 48rpx;
608
+ }
609
+ ._rule{
610
+ font-size: 24rpx;
611
+ }
612
+ }
613
+ .coupon_right{
614
+ flex: 1;
615
+ width: 530rpx;
616
+ .cont_top{
617
+ background: rgba(255, 87, 51, 0.1);
618
+ padding: 8rpx 40rpx;
619
+ font-size: 24rpx;
620
+ overflow: hidden;
621
+ white-space: nowrap;
622
+ text-overflow: ellipsis;
623
+ }
624
+ .cont_main{
625
+ position: relative;
626
+ padding: 28rpx 20rpx 28rpx 40rpx;
627
+ .cou_number{
628
+ font-size: 32rpx;
629
+ font-weight: bold;
630
+ }
631
+ .cou_time{
632
+ font-size: 28rpx;
633
+ margin: 16rpx 0;
634
+ }
635
+ .cou_point{
636
+ font-size: 28rpx;
637
+ }
638
+ .cou_btn{
639
+ position: absolute;
640
+ padding: 10rpx 30rpx;
641
+ background-color: #ddd;
642
+ border-radius: 12rpx;
643
+ right: 20rpx;
644
+ bottom: 20rpx;
645
+ }
646
+ }
647
+ .cont_bottom{
648
+ background: #EEEEEE;
649
+ .switch_rule{
650
+ display: flex;
651
+ align-items: center;
652
+ justify-content: space-between;
653
+ padding: 12rpx 40rpx;
654
+ }
655
+ .expand_rule{
656
+ padding: 12rpx 40rpx;
657
+ font-size: 20rpx;
658
+ overflow: hidden;
659
+ white-space: nowrap;
660
+ text-overflow: ellipsis;
661
+ background-color: #F5F5F5;
662
+ }
663
+ }
664
+ }
665
+ }
666
+ }
667
+ .no_more_card{
668
+ text-align: center;
669
+ padding: 20rpx 0;
670
+ color: #CCCCCC;
671
+ font-size: 28rpx;
672
+ }
673
+ }
109
674
  }
110
675
  }
111
676
  </style>