jufubao-base 1.0.56-beta4 → 1.0.56-beta5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jufubao-base",
3
- "version": "1.0.56-beta4",
3
+ "version": "1.0.56-beta5",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -1,18 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  /**
4
- * @description API模型
5
- * 建议:Ffff=>模块 Xxxx=>自定义名字
6
- * 获取单记录(getByIdFfffXxxx)
7
- * 获取列表记录(getByListFfffXxxx)
8
- * 添加列表记录(addFfffXxxxx)
9
- * 删除列表记录(removeFfffXxxxx|deleteFfffXxxx)
10
- * 更新列表记录(updateFfffXxxxx)
4
+ * @description 卡券登陆
11
5
  * @type {*[]}
12
6
  */
13
7
  module.exports = [
14
8
  {
15
- mapFnName: 'getListCardBind',
9
+ mapFnName: 'getListEntryCardBind',
16
10
  isRule: false,
17
11
  title: '获得绑定卡',
18
12
  prefix: 'list',
@@ -21,7 +15,7 @@ module.exports = [
21
15
  disabled: true,
22
16
  },
23
17
  {
24
- mapFnName: 'loginCardBind',
18
+ mapFnName: 'loginEntryCardBind',
25
19
  isRule: false,
26
20
  title: '登录卡',
27
21
  prefix: 'login',
@@ -80,17 +80,6 @@ export default {
80
80
  },
81
81
  inline: false,
82
82
  },
83
- {
84
- label: '综合福利入口页:',
85
- ele: 'xd-select-pages-path',
86
- valueKey: 'allEntryPath',
87
- placeholder: '请选择综合福利入口页',
88
- value: null,
89
- setting: {
90
- router: XdBus.getParentApi('getPagesTree'),
91
- },
92
- inline: false,
93
- },
94
83
  {
95
84
  label: '提示内容:',
96
85
  ele: 'xd-site-news',
@@ -302,10 +291,7 @@ export default {
302
291
  }
303
292
  },
304
293
  inline: false,
305
- notice: '',
306
- rules: [
307
- {required: true, message: '请配置温馨提示内容', trigger: 'change'},
308
- ],
294
+ notice: '请配置温馨提示内容,未配置的情况将不显示此模块',
309
295
  },
310
296
  ],
311
297
  };
@@ -28,12 +28,13 @@
28
28
  color: cutIndex === 1 ? '#fff' : mainColor,
29
29
  }"
30
30
  >
31
+ <view>使用扫码绑定</view>
31
32
  <xd-font-icon
32
- style="margin-bottom: 15rpx"
33
- size="80"
33
+ :style="{marginLeft: '15rpx'}"
34
+ size="50"
34
35
  icon="iconsaoma"
35
36
  ></xd-font-icon>
36
- <view>使用扫码绑定</view>
37
+
37
38
  </view>
38
39
  <view
39
40
  class="jfb-base-card-entry__body-cut-item"
@@ -44,12 +45,13 @@
44
45
  color: cutIndex === 2 ? '#fff' : mainColor,
45
46
  }"
46
47
  >
48
+ <view>券号密码绑定</view>
47
49
  <xd-font-icon
48
- style="margin-bottom: 15rpx"
49
- size="80"
50
+ :style="{marginLeft: '15rpx'}"
51
+ size="50"
50
52
  icon="iconyuechi"
51
53
  ></xd-font-icon>
52
- <view>券号密码绑定</view>
54
+
53
55
  </view>
54
56
  </template>
55
57
  <template v-else>
@@ -67,7 +69,6 @@
67
69
  </view>
68
70
  </template>
69
71
  </view>
70
- <view class="jfb-base-card-entry__body-line"></view>
71
72
  <view
72
73
  class="jfb-base-card-entry__body-notice"
73
74
  :style="{ background: noticeBackgroundColor }"
@@ -127,72 +128,53 @@
127
128
  v-if="tabIndex === 2 || tabIndex === 1"
128
129
  class="jfb-base-card-entry__body-card"
129
130
  >
130
- <template v-if="cardLayout === '1'">
131
- <view
132
- v-for="(item, index) in showList"
133
- :key="index"
134
- @click="handleBindLogin(item)"
135
- class="jfb-base-card-entry__body-card-item"
136
- >
137
- <view class="jfb-base-card-entry__body-card-item-left">
138
- <xd-font-icon
139
- size="100"
140
- :color="mainColor"
141
- icon="iconyouhuiquan1-011"
142
- ></xd-font-icon>
143
- <view>{{ tabIndex === 1 ? login_name : "转换" }}</view>
144
- </view>
145
- <view class="jfb-base-card-entry__body-card-item-right">
146
- <view class="jfb-base-card-entry__body-card-item-right-top">
147
- <view>
148
- <xd-font-icon
149
- icon="iconkaquan"
150
- size="38"
151
- :style="{marginRight: '18rpx'}"
152
- :color="mainColor"
153
- ></xd-font-icon>
154
- <view>{{ item.card_type_name }}</view>
155
- </view>
131
+ <view
132
+ v-for="(item,index) in cardList"
133
+ class="card-list"
134
+ :key="item.card_number"
135
+ :style="{
136
+ backgroundImage: item['theme']['color'],
137
+ }"
138
+ >
139
+ <view class="card-list-warp" :style="{backgroundImage: 'url('+ item['theme']['image'] +')'}">
140
+ <view class="card-list__title"><view>{{item['card_type_name']}}</view></view>
141
+ <div class="card-list__content">
142
+ <view>
143
+ <text>券号:</text>
144
+ <text>{{item.card_number}}</text>
145
+ </view>
146
+ <view @click.stop="toDetail(item)">
156
147
  <view>
157
- <view>{{ item.card_number }}</view>
158
- <view>有效期至:{{ item.end_time }}</view>
148
+ <xd-font-icon icon="iconerweima" width="56" height="56" size="50" color="#fff"></xd-font-icon>
159
149
  </view>
150
+ <view>点击查看</view>
160
151
  </view>
161
- <view class="jfb-base-card-entry__body-card-item-right-bottom">
162
- <view class="jfb-base-card-entry__body-card-item-right-bottom-info">
163
- <view
164
- class="jfb-base-card-entry__body-card-item-right-bottom-info-residue"
165
- >
166
- 剩余{{ item.unit }}数:{{ item.card_point }}{{ item.unit }}
167
- </view>
168
- <view
169
- v-if="item.other_card_point && item.card_point_type !== 1"
170
- class="jfb-base-card-entry__body-card-item-right-bottom-info-deduction"
171
- >
172
- 购买其他物品可抵:{{ item.other_card_point }}
173
- </view>
174
- </view>
175
- <view
176
- @click.stop="toDetail(item)"
177
- :style="{ background: mainColor }"
178
- >查看</view
179
- >
152
+ </div>
153
+ <view class="card-list__date">
154
+ <text>有效期:</text>
155
+ <text>{{item.end_time}}</text>
156
+ </view>
157
+ <view class="card-list__yue">
158
+ <text>余额:</text>
159
+ <text>{{item.card_point}}</text>
160
+ </view>
161
+ <view class="card-list__other" v-if="item.other_card_point && item.card_point_type !== 1">
162
+ <view><text>购买其他物品可抵:</text><text>{{item.other_card_point}}</text></view>
163
+ </view>
164
+ <view class="card-list__entry" v-if="item.entry.length === 1">
165
+ <view :style="{color: mainColor}">{{login_name}}</view>
166
+ </view>
167
+ <view class="card-list__nodata" v-if="item.entry.length === 0">暂无支持服务列表</view>
168
+ <view class="card-list__entrys" v-if="item.entry.length > 1">
169
+ <view>
170
+ <view></view>
171
+ <view></view>
180
172
  </view>
173
+ <div></div>
181
174
  </view>
182
175
  </view>
183
- </template>
184
- <template v-else>
185
- <xd-card-v2
186
- :login-name="login_name"
187
- v-for="(item, index) in showList"
188
- :mainColor="mainColor"
189
- :key="index"
190
- :cardInfo="item"
191
- :tabIndex="tabIndex"
192
- @toDetail="toDetail(item)"
193
- @bindLogin="handleBindLogin(item)">
194
- </xd-card-v2>
195
- </template>
176
+
177
+ </view>
196
178
  </view>
197
179
  <view v-if="showDisabled==='Y'" @click="handleToDisabled" class="jfb-base-card-entry__body-disabled">
198
180
  已失效票券>>>
@@ -284,16 +266,26 @@ export default {
284
266
  bindUrl: "",
285
267
  detailUrl: "",
286
268
  confirmUrl: "",
287
- allEntryPath: "", //综合福利入口页
269
+ //allEntryPath: "", //综合福利入口页
288
270
  disabledUrl: "",
289
271
  cardLayout: "1", //票券布局
290
-
291
272
  showDisabled: 'Y',
292
-
273
+
274
+ cardThemesColor: [
275
+ 'radial-gradient(50% 50%, rgba(255, 151, 128, 1) 0%, rgba(255, 64, 61, 1) 100%)',
276
+ 'radial-gradient(50% 50%, rgba(247, 198, 35, 1) 0%, rgba(255, 81, 0, 1) 99.91%)',
277
+ 'radial-gradient(50% 50%, rgba(0, 207, 193, 1) 0%, rgba(0, 117, 108, 1) 99.91%)',
278
+ 'radial-gradient(50% 50%, rgba(255, 148, 77, 1) 0%, rgba(240, 92, 0, 1) 100%)',
279
+ 'radial-gradient(50% 50%, rgba(252, 126, 49, 1) 0%, rgba(255, 143, 67, 1) 100%)'
280
+ ],
281
+ cardThemesImage: [
282
+ '//img.jufubao.cn/component/card/vip.png',
283
+ //'//img.jufubao.cn/component/card/vip2.png'
284
+ ],
285
+
286
+ //活动
293
287
  dialogEvent: false,
294
- // is_show_change: false,
295
- popup:
296
- "https://img.zcool.cn/community/01784158abe781a801219c77e981ee.jpg?x-oss-process=image/auto-orient,1/resize,m_lfit,w_1280,limit_1/sharpen,100",
288
+ popup: "https://img.zcool.cn/community/01784158abe781a801219c77e981ee.jpg?x-oss-process=image/auto-orient,1/resize,m_lfit,w_1280,limit_1/sharpen,100",
297
289
  };
298
290
  },
299
291
  created() {
@@ -320,6 +312,49 @@ export default {
320
312
 
321
313
  },
322
314
  methods: {
315
+ stringToNumber(str) {
316
+ let result = 0;
317
+ let len = str.length;
318
+ for (let i = 0; i < len; i++) {
319
+ result = result + str.charCodeAt(i) + i;
320
+ }
321
+ return result;
322
+ },
323
+ getCardThemes(name){
324
+ let colorLen = this.cardThemesColor.length;
325
+ let imgLen = this.cardThemesImage.length;
326
+ let colorIndex = this.stringToNumber(name)% colorLen;
327
+ let imgIndex = this.stringToNumber(name) % imgLen;
328
+ return {
329
+ color: this.cardThemesColor[colorIndex],
330
+ image: this.cardThemesImage[imgIndex],
331
+ }
332
+ },
333
+
334
+ getEntry(codes=[] , allEntry=[]){
335
+ //无支持业务线或者未配置业务入口
336
+ if(codes.length ===0 || allEntry.length === 0) return [];
337
+
338
+ let support = [];
339
+ codes.map(bus=>{
340
+ allEntry.map(it=>{
341
+ if(bus === it['business_code']){
342
+ support.push(it);
343
+ }
344
+ })
345
+ });
346
+ return support
347
+ },
348
+
349
+ getCardGroupItem(list, allEntry){
350
+ list.map(item=>{
351
+ //设置卡片样式
352
+ item['theme'] = this.getCardThemes(item['card_type_name']);
353
+ item['entry'] = this.getEntry(item['business_codes'], allEntry)
354
+ });
355
+ return list
356
+ },
357
+
323
358
  init(container){
324
359
  //设置
325
360
  this.cardLayout = getContainerPropsValue(container,"content.cardLayout","1");
@@ -328,7 +363,7 @@ export default {
328
363
  this.bindUrl = getContainerPropsValue(container,"content.bind_url",{value: ""}).value;
329
364
  this.detailUrl = getContainerPropsValue(container,"content.detail_url",{value: ""}).value;
330
365
  this.confirmUrl = getContainerPropsValue(container,"content.confirm_url",{value: ""}).value;
331
- this.allEntryPath = getContainerPropsValue(container,"content.allEntryPath",{value: ""}).value;
366
+ //this.allEntryPath = getContainerPropsValue(container,"content.allEntryPath",{value: ""}).value;
332
367
  this.login_name = getContainerPropsValue(container, "content.login_name", "登录");
333
368
  },
334
369
  handleToLink(path) {
@@ -489,12 +524,12 @@ export default {
489
524
  },
490
525
 
491
526
  getCardList(options) {
492
- let params = {is_all: 'Y'};
527
+ let params = {is_all: 'Y', is_show_entry_settings: 'Y'};
493
528
  if(options['jfb_business_code']) {
494
529
  params['card_business_code'] = options['jfb_business_code'];
495
530
  }
496
531
  this.$xdShowLoading({});
497
- jfbRootExec("getListCardBind", {
532
+ jfbRootExec("getListEntryCardBind", {
498
533
  vm: this,
499
534
  data: params
500
535
  })
@@ -513,9 +548,9 @@ export default {
513
548
  ),
514
549
  };
515
550
  });
516
- this.cardList = res.list.filter((item) => {
551
+ this.cardList = this.getCardGroupItem(res.list.filter((item) => {
517
552
  return item["is_valid"] === "Y";
518
- });
553
+ }), res['site_entry_settings']);
519
554
  this.disableList = res.list.filter((item) => {
520
555
  return item["is_valid"] === "N";
521
556
  });
@@ -551,7 +586,7 @@ export default {
551
586
  box-sizing: border-box;
552
587
 
553
588
  &__body {
554
- padding: unit(55, rpx) unit(35, rpx);
589
+ padding: unit(40, rpx) unit(26, rpx);
555
590
  color: #333;
556
591
 
557
592
  &-dialog {
@@ -592,43 +627,25 @@ export default {
592
627
  display: flex;
593
628
  align-items: center;
594
629
  justify-content: space-between;
630
+
595
631
 
596
632
  &-item {
597
633
  border: unit(6, rpx) solid;
598
634
  font-size: unit(36, rpx);
599
635
  color: #fe7a63ff;
600
636
  border-radius: unit(16, rpx);
601
- width: unit(308, rpx);
602
- height: unit(182, rpx);
637
+ width: unit(320, rpx);
638
+ height: unit(94, rpx);
603
639
  display: flex;
604
- flex-direction: column;
605
640
  align-items: center;
606
641
  justify-content: center;
607
-
608
- &.one {
609
- width: 100%;
610
- flex-direction: row;
611
- height: unit(100, rpx);
612
- align-items: center;
613
- justify-content: center;
614
-
615
- & > view {
616
- font-size: unit(36, rpx);
617
- margin-left: unit(10, rpx);
618
- }
619
- }
642
+ box-sizing: border-box;
643
+
620
644
  }
621
645
  }
622
646
 
623
- &-line {
624
- width: 120%;
625
- height: unit(4, rpx);
626
- background: #eee;
627
- margin: unit(60, rpx) unit(-35, rpx) 0 unit(-35, rpx);
628
- }
629
-
630
647
  &-notice {
631
- margin: 0 unit(-35, rpx) 0 unit(-35, rpx);
648
+ margin: unit(40, rpx) unit(-35, rpx) 0 unit(-35, rpx);
632
649
  padding: unit(22, rpx) unit(35, rpx);
633
650
  line-height: unit(70, rpx);
634
651
  }
@@ -656,87 +673,136 @@ export default {
656
673
  margin-bottom: unit(46, rpx);
657
674
  }
658
675
 
659
- &-card {
660
- &-item {
661
- display: flex;
662
- align-items: center;
663
- justify-content: flex-start;
664
- border: unit(2, rpx) solid #eeeeee;
665
- border-radius: unit(20, rpx);
666
- margin-bottom: unit(30, rpx);
667
- background: #fff;
668
-
669
- &-left {
670
- width: unit(200, rpx);
671
- display: flex;
672
- flex-direction: column;
673
- align-items: center;
674
- justify-content: center;
675
- font-size: unit(24, rpx);
676
- }
677
-
678
- &-right {
679
- flex: 1;
680
- border-left: unit(2, rpx) solid #eeeeeeff;
681
-
682
- &-top {
683
- border-bottom: unit(2, rpx) solid #eeeeeeff;
684
- padding: unit(30, rpx) unit(40, rpx);
685
-
686
- & > view:nth-child(1) {
687
- display: flex;
688
- font-size: unit(28, rpx);
689
- margin-bottom: unit(18, rpx);
690
- }
691
-
692
- & > view:nth-child(2) {
693
- font-size: unit(24, rpx);
694
- color: #666;
695
-
696
- & > view:nth-child(1) {
697
- margin-right: unit(30, rpx);
698
- }
699
- }
700
- }
701
-
702
- &-bottom {
703
- display: flex;
704
- justify-content: space-between;
705
- align-items: center;
706
- padding: unit(20, rpx) unit(40, rpx);
707
-
708
- &-info {
709
- &-residue {
710
- font-size: unit(24, rpx);
711
- margin-bottom: unit(8, rpx);
712
- }
713
-
714
- &-deduction {
715
- font-size: unit(24, rpx);
716
- color: #666;
717
- }
718
- }
719
-
720
- & > view:nth-child(2) {
721
- width: unit(80, rpx);
722
- height: unit(40, rpx);
723
- border-radius: unit(40, rpx);
724
- font-size: unit(22, rpx);
725
- color: #fff;
726
- text-align: center;
727
- line-height: unit(40, rpx);
728
- padding: unit(5, rpx) unit(9, rpx);
729
- }
730
- }
731
- }
732
- }
733
- }
734
-
735
676
  &-disabled {
736
677
  font-size: unit(28, rpx);
737
678
  color: #b8b7be;
738
679
  margin-bottom: unit(30, rpx);
680
+ padding-top: unit(30, rpx);
681
+ }
682
+ }
683
+ }
684
+
685
+ .card-list {
686
+ overflow: hidden;
687
+ border-radius: unit(16, rpx);
688
+ background-size: 100%;
689
+
690
+
691
+ &__title {
692
+ height: unit(46, rpx);
693
+ display: flex;
694
+ justify-content: flex-start;
695
+ align-items: center;
696
+
697
+ & > view {
698
+ padding: 0 unit(80, rpx);
699
+ font-size: unit(24, rpx);
700
+ line-height: unit(46, rpx);
701
+ background: rgba(102, 102, 102, 0.4);
702
+ color: #fff;
703
+ border-radius: 0 0 unit(16, rpx) 0;
704
+ }
705
+
706
+ }
707
+
708
+ &__content {
709
+ padding: unit(20, rpx) unit(40, rpx) 0;
710
+ height: unit(86, rpx);
711
+ display: flex;
712
+ justify-content: space-between;
713
+ align-items: center;
714
+
715
+ & > view:first-child {
716
+ font-size: unit(36, rpx);
717
+ line-height: unit(86, rpx);
718
+ color: #fff;
719
+ font-weight: 700;
720
+ }
721
+
722
+ & > view:nth-child(2) {
723
+ font-size: unit(24, rpx);
724
+ display: flex;
725
+ justify-content: space-between;
726
+ align-items: center;
727
+ flex-flow: wrap;
728
+ flex-direction: column;
729
+ color: #fff;
730
+ }
731
+ }
732
+
733
+ &__date {
734
+ padding: 0 unit(40, rpx);
735
+ font-size: unit(28, rpx);
736
+ line-height: unit(32, rpx);
737
+ color: #fff;
738
+ }
739
+
740
+ &__yue {
741
+ padding: unit(10, rpx) unit(40, rpx) 0;
742
+ font-size: unit(28, rpx);
743
+ line-height: unit(32, rpx);
744
+ color: #fff;
745
+
746
+ & > text:nth-child(2) {
747
+ font-weight: 700;
739
748
  }
740
749
  }
750
+
751
+ &__other {
752
+ display: flex;
753
+ justify-content: flex-start;
754
+ align-items: center;
755
+ padding: unit(20, rpx) unit(40, rpx) 0;
756
+ margin-top: unit(0, rpx);
757
+
758
+ & > view {
759
+ border-radius:unit(8, rpx);
760
+ background: rgba(255, 255, 255, 0.2);
761
+ height: unit(48, rpx);
762
+ line-height: unit(48, rpx);
763
+ display: flex;
764
+ justify-content: flex-start;
765
+ align-items: center;
766
+ font-weight: 400;
767
+ font-size: unit(24, rpx);
768
+ padding: 0 unit(20, rpx);
769
+ color: #fff;
770
+ }
771
+
772
+
773
+ }
774
+
775
+ &__nodata {
776
+ padding: unit(20, rpx) unit(40, rpx) 0;
777
+ margin-top: unit(0, rpx);
778
+ color: #fff;
779
+ font-size: unit(28, rpx);
780
+ }
781
+
782
+ &__entry {
783
+ position: absolute;
784
+ bottom: unit(28, rpx);
785
+ left: unit(40, rpx);
786
+ right: unit(40, rpx);
787
+ height: unit(64, rpx);
788
+
789
+ & > view {
790
+ line-height: unit(64, rpx);
791
+ text-align: center;
792
+ font-size: unit(26, rpx);
793
+ border-radius: unit(8, rpx);
794
+ background: rgba(255, 255, 255, 1);
795
+ box-shadow: 0 unit(4, rpx) unit(8, rpx) rgba(156, 62, 0, 0.11);
796
+ font-weight: 500;
797
+ }
798
+ }
799
+
800
+ & > view {
801
+ width: unit(700, rpx);
802
+ min-height: unit(410, rpx);
803
+ position: relative;
804
+ border-radius: unit(16, rpx);
805
+ background-size: 100%;
806
+ }
741
807
  }
742
808
  </style>
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  module.exports = {
4
- getListCardBind: {
4
+ getListEntryCardBind: {
5
5
  "is_show_invalid_card_entrance": "Y",
6
6
  "list": [{
7
7
  "card_number": "101001000005195",
@@ -105,7 +105,7 @@ module.exports = {
105
105
  "is_exchange": "N"
106
106
  }], "request_id": "dd73b058e5de1e90"
107
107
  },
108
- loginCardBind: {
108
+ loginEntryCardBind: {
109
109
  "card_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhM2U4YjQ5OWEwNzUwN2EyIiwiaWF0IjoxNjc0OTYzODE3LjY2OTM1MywiZXhwIjoxNjc1MDIwNTc3LjY2OTM1MywiY2FyZF9udW1iZXIiOiIxMDEwMDEwMDAwMDUxOTUiLCJjYXJkX3R5cGVfbmFtZSI6IjZJR2E1NmFQNWE2ZDU2YVA1WTJoNXJXTDZLK1Y2SnVMNTdPViIsInByaWNlIjoxMDAsIm9ubGluZV9wcmljZSI6MTAwLCJ1c2Vfc2NlbmNlIjozLCJidXNpbmVzc19jb2RlcyI6IjAsMSwyLDMsNCJ9.LsoBJq4pC_gSc1jZRwDhD2rAfOf1DMCy29VHomGiqYE",
110
110
  "card_expire_in": 56760,
111
111
  "request_id": "8fde2506c426a55d"