jufubao-base 1.0.61-beta1010 → 1.0.61-beta1012

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.61-beta1010",
3
+ "version": "1.0.61-beta1012",
4
4
  "private": false,
5
5
  "description": "聚福宝业务组件基础插件包",
6
6
  "main": "index.js",
@@ -66,7 +66,7 @@
66
66
  >
67
67
  进入业务板块
68
68
  </view>
69
- <view style="display:flex;align-content:center;justify-content:center">
69
+ <view style="display:flex;align-content:center;justify-content:flex-start">
70
70
  <view class="jfb-base-card-detail-entry__body-business-content">
71
71
  <view
72
72
  class="jfb-base-card-detail-entry__body-business-content-item"
@@ -16,14 +16,85 @@
16
16
  </view>
17
17
  <!-- #endif -->
18
18
  <view class="jfb-base-card-disabled-entry__body">
19
- <view
20
- v-if="disableList && disableList.length > 0"
21
- class="jfb-base-card-entry__body-card"
22
- >
19
+ <view class="card-content">
23
20
  <view
24
- v-for="(item) in disableList"
25
- class="card-list"
21
+ v-if="cardList && cardList.length > 0"
22
+ class="jfb-base-card-entry__body-card"
23
+ >
24
+ <template v-for="(item,index) in cardList">
25
+ <view
26
+ class="card-list"
27
+ :data-card="item.card_number"
28
+ :data-index="index"
29
+ :data-top="item.top"
30
+ :key="item.card_number"
31
+ v-if="setCardItemShow(item,index)"
32
+ :style="{
33
+ background: item['theme']['color'],
34
+ backgroundSize: '100%'
35
+ }"
36
+ >
37
+ <view class="card-list-warp" :style="{backgroundImage: 'url('+ item['theme']['image'] +')'}">
38
+ <view class="card-list__title">
39
+ <view>{{item['card_type_name']}}</view>
40
+ </view>
41
+ <div class="card-list__content">
42
+ <view>
43
+ <text>券号:</text>
44
+ <text>{{item.card_number}}</text>
45
+ </view>
46
+ </div>
47
+ <view class="card-list__date">
48
+ <text>有效期:</text>
49
+ <text>--</text>
50
+ </view>
51
+ <view class="card-list__yue">
52
+ <text>余额:</text>
53
+ <text>--</text>
54
+ </view>
55
+ <view class="card-list__other" v-if="item.other_card_point && item.card_point_type === 2 ">
56
+ <view>
57
+ <text>购买其他物品可抵:</text>
58
+ <text>--</text>
59
+ </view>
60
+ </view>
61
+ <template>
62
+ <view class="card-list__entry" v-if="item.entries.length > 0">
63
+ <view
64
+ @click.stop="handleUnBindCard(item)"
65
+ :style="{color: item['theme']['color']}"
66
+ >解绑</view>
67
+ </view>
68
+ <view class="card-list__nodata" v-else>暂无支持服务列表</view>
69
+ </template>
70
+ </view>
71
+ </view>
72
+ <view
73
+ class="card-content-empty card-list"
74
+ v-else
75
+ :data-card="item.card_number"
76
+ :style="{
77
+ height: item.height + 'px',
78
+ backgroundImage: 'url('+ cardItem +')'
79
+ }"
80
+ ></view>
81
+ </template>
82
+ </view>
83
+ <view v-if="cardList !== null && cardList.length === 0">
84
+ <view class="jfb-base-card-disabled-entry__body-empty">
85
+ <view class="jfb-base-card-disabled-entry__body-empty-wrap">
86
+ <image :src="emptyBg"></image>
87
+ 暂无票券
88
+ </view>
89
+ </view>
90
+ </view>
91
+ </view>
92
+ <view class="computed-height">
93
+ <view
94
+ v-for="(item) in cardComputedList"
95
+ class="card-list computed-box"
26
96
  :key="item.card_number"
97
+ :data-card="item.card_number"
27
98
  :style="{
28
99
  background: item['theme']['color'],
29
100
  backgroundSize: '100%'
@@ -65,16 +136,8 @@
65
136
  </view>
66
137
  </view>
67
138
  </view>
68
- <view v-else>
69
- <view class="jfb-base-card-disabled-entry__body-empty">
70
- <view class="jfb-base-card-disabled-entry__body-empty-wrap">
71
- <image :src="emptyBg"></image>
72
- 暂无票券
73
- </view>
74
- </view>
75
- </view>
76
139
  <view class="bottom_btn-mask"></view>
77
- <view v-if="ajaxCardList && ajaxCardList.length>0" class="bottom_btn" :style="prod_bottom">
140
+ <view v-if="cardList && cardList.length>0" class="bottom_btn" :style="prod_bottom">
78
141
  <xd-button
79
142
  width="680rpx"
80
143
  radius="50rpx"
@@ -234,6 +297,7 @@ export default {
234
297
  onJfbBack(options) {
235
298
  console.log("event.onJfbBack", options);
236
299
  },
300
+
237
301
  },
238
302
  };
239
303
  </script>
@@ -581,4 +645,22 @@ export default {
581
645
  height: unit(120, rpx);
582
646
  }
583
647
  }
648
+
649
+ .computed-height {
650
+ position: fixed;
651
+ top:-999999px;
652
+ width: 100%;
653
+ z-index: 99999;
654
+ }
655
+
656
+ .card-content-empty {
657
+ background-size: 100%;
658
+ background-repeat: no-repeat;
659
+ background-position: top center;
660
+
661
+ & > image {
662
+ width: 100%;
663
+ height: 100%;
664
+ }
665
+ }
584
666
  </style>
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
- import {mapState} from "vuex";
2
+ import {mapState,mapMutations} from "vuex";
3
3
 
4
4
  export default {
5
5
  data() {
@@ -8,9 +8,9 @@ export default {
8
8
 
9
9
  //卡券列表
10
10
  cardOrgList:[], //原始数据
11
- cardList:[], //计算后的卡列表
11
+ cardList:null, //计算后的卡列表
12
12
  cardPageNum: 0, //当前页面
13
- cardPageLen: 10, //每页获取数据调试
13
+ cardPageLen: 5, //每页获取数据调试
14
14
  cardComputedList:[], //当前获取的数据列表
15
15
  cardLoading: false, //加载状态值设置
16
16
  cardNextTop: 0, //计算到每一个节点的距离顶部Top值
@@ -20,29 +20,24 @@ export default {
20
20
  //转换按钮
21
21
  hasChangeStatus: false,//是否有转换按钮
22
22
 
23
- cardItemBg1: '//img.jufubao.cn/component/card/card_item_02.png',
24
- cardItemBg2: '//img.jufubao.cn/component/card/card_item_01.png'
23
+ cardItemEntry: '//img.jufubao.cn/component/card/card_item_entry.png?v1=11',
24
+ cardItem: '//img.jufubao.cn/component/card/card_item.png?v1=11'
25
25
  }
26
26
  },
27
27
  computed:{
28
28
  ...mapState(['srollPreview'])
29
29
  },
30
- watch:{
31
- // srollPreview(value){
32
- // console.log(value)
33
- // }
34
- },
35
- created(){
36
30
 
31
+ created() {
32
+ this.setSrollPreview({
33
+ pageWindowPrevStart: 0,
34
+ pageWindowPrevEnd: uni.getSystemInfoSync().safeArea.height,
35
+ });
37
36
  },
38
37
 
39
- mounted(){
40
-
41
-
42
- },
43
38
  methods:{
39
+ ...mapMutations(['setSrollPreview']),
44
40
  setCardItemShow({height , top},index){
45
-
46
41
  //预览模式只获取10条
47
42
  if(this.$configProject.isPreview) {
48
43
  console.log(this.cardPageLen, index, this.cardPageLen > index)
@@ -84,7 +79,7 @@ export default {
84
79
  this.cardNextTop = this.cardNextTop + card['height'] + (paddingBottom * this.$rpxNum)
85
80
  return card
86
81
  });
87
- this.cardList = this.cardList.concat(arr);
82
+ this.cardList = (this.cardList||[]).concat(arr);
88
83
  this.$xdHideLoading();
89
84
  }).exec();
90
85
  })
@@ -94,12 +89,15 @@ export default {
94
89
  let newCardList = this.$xdUniHelper.cloneDeep(cardList);
95
90
  let validCardList = this.getCardGroupItem(newCardList.list.filter((item) => {
96
91
  return item["is_valid"] === "N";
97
- }), newCardList['site_entry_settings']).map((item,index)=>{
92
+ }), newCardList['site_entry_settings'],'Y').map((item,index)=>{
98
93
  item['index'] = index;
99
94
  return item
100
95
  });
101
96
  this.cardOrgList = this.$xdUniHelper.cloneDeep(validCardList);
102
- this.cardComputedList = this.cardOrgList.slice(this.cardPageNum,this.cardPageLen);
97
+ this.cardComputedList = this.cardOrgList.slice(
98
+ this.cardPageNum*this.cardPageLen,
99
+ this.cardPageNum*this.cardPageLen + this.cardPageLen
100
+ );
103
101
  this.handleCardComputed(paddingBottom).then().catch();
104
102
  },
105
103
 
@@ -108,7 +106,6 @@ export default {
108
106
  this.cardLoading = true;
109
107
  this.$xdShowLoading({});
110
108
  this.cardPageNum++;
111
- console.log('onJfbReachBottom',this.cardPageNum)
112
109
  this.$nextTick(()=>{
113
110
  setTimeout(()=>{
114
111
  this.cardLoading = false;
@@ -126,16 +123,13 @@ export default {
126
123
 
127
124
  },
128
125
 
129
- clearDefault(){
130
- this.cardOrgList = [];
131
- this.cardList = [];
132
- this.cardPageNum = 0;
133
- this.cardComputedList = [];
134
- this.cardLoading = false;
135
- this.cardNextTop = 0;
136
- this.contentStatus = false;
137
- this.hasContent = true;
138
- }
126
+ onJfbScroll({e}){
127
+ this.setSrollPreview({
128
+ pageWindowPrevStart: e.scrollTop,
129
+ pageWindowPrevEnd:e.scrollTop + uni.getSystemInfoSync().safeArea.height
130
+ })
131
+ },
132
+
139
133
  }
140
134
  }
141
135
 
@@ -223,7 +223,7 @@
223
223
  }"
224
224
  ></view>
225
225
  </view>
226
- <view v-else-if="cardList === null">
226
+ <view v-else-if="cardList !== null && cardList.length === 0">
227
227
  <view class="jfb-base-card-entry__body-empty">
228
228
  <view class="jfb-base-card-entry__body-empty-wrap">
229
229
  <image :src="emptyBg"></image>
@@ -261,7 +261,6 @@
261
261
  :data-card="item.card_number"
262
262
  class="card-list computed-box"
263
263
  :key="item.card_number"
264
- v-if="index < 20"
265
264
  :style="{
266
265
  background: item['theme']['color'],
267
266
  backgroundSize: '100%'
@@ -664,7 +663,7 @@ export default {
664
663
  })
665
664
  .then((res) => {
666
665
  this.showDisabled = res.is_show_invalid_card_entrance;
667
- res.list.map((item) => {
666
+ res.list = res.list.map((item) => {
668
667
  return {
669
668
  ...item,
670
669
  card_point: this.$xdUniHelper.divisionFloatNumber(
@@ -684,15 +683,12 @@ export default {
684
683
  this.hasChangeStatus = this.getCardGroupItem(this.ajaxCardList.list.filter((item) => {
685
684
  return item["is_exchange"] === "Y";
686
685
  }), res['site_entry_settings']).length > 0;
686
+
687
687
  this.$xdHideLoading();
688
688
  })
689
689
  .catch(() => this.$xdHideLoading());
690
690
  },
691
691
 
692
- onShow(options) {
693
- this.onJfbLoad(options);
694
- },
695
-
696
692
  onJfbUpdate(data) {
697
693
  this.getContent();
698
694
  },
@@ -93,7 +93,7 @@
93
93
  style="
94
94
  display: flex;
95
95
  align-content: center;
96
- justify-content: center;
96
+ justify-content: flex-start;
97
97
  "
98
98
  >
99
99
  <view class="jfb-base-card-info-entry__body-business-content">
@@ -289,7 +289,7 @@ export default {
289
289
  }
290
290
  });
291
291
  if(res && res.site_entry_settings && res.site_entry_settings.length>0) {
292
- res.site_entry_settings = res.site_entry_settings.filter(item=>{
292
+ temp.site_entry_settings = res.site_entry_settings.filter(item=>{
293
293
  item['image_url'] = getServiceUrl(item['image_url'])
294
294
  return res.business_codes.includes(item.business_code)
295
295
  })
@@ -326,7 +326,7 @@ export default {
326
326
  }
327
327
  });
328
328
  if(res && res.site_entry_settings && res.site_entry_settings.length>0) {
329
- res.site_entry_settings = res.site_entry_settings.filter(item=>{
329
+ temp.site_entry_settings = res.site_entry_settings.filter(item=>{
330
330
  item['image_url'] = getServiceUrl(item['image_url'])
331
331
  return res.business_codes.includes(item.business_code)
332
332
  })
@@ -1,148 +0,0 @@
1
- 'use strict';
2
- import {mapState} from "vuex";
3
-
4
- export default {
5
- data() {
6
- return {
7
- ajaxCardList: null, //接口返回原始数据
8
-
9
- //卡券列表
10
- cardOrgList:[], //原始数据
11
- cardList:[], //计算后的卡列表
12
- cardPageNum: 0, //当前页面
13
- cardPageLen: 5, //每页获取数据调试
14
- cardComputedList:[], //当前获取的数据列表
15
- cardLoading: false, //加载状态值设置
16
- cardNextTop: 0, //计算到每一个节点的距离顶部Top值
17
- contentStatus: false, //内容框是否已经进行过计算距离顶部Top值状态
18
- hasContent: true, //是否可以进行继续加载状态
19
-
20
- //转换按钮
21
- hasChangeStatus: false,//是否有转换按钮
22
-
23
- cardItemBg1: '//img.jufubao.cn/component/card/card_item_02.png',
24
- cardItemBg2: '//img.jufubao.cn/component/card/card_item_01.png'
25
- }
26
- },
27
- computed:{
28
- ...mapState(['srollPreview'])
29
- },
30
- watch:{
31
- // srollPreview(value){
32
- // console.log(value)
33
- // }
34
- },
35
- created(){
36
-
37
- },
38
-
39
- mounted(){
40
-
41
-
42
- },
43
- methods:{
44
- setCardItemShow({height , top},index){
45
-
46
- //预览模式只获取10条
47
- if(this.$configProject.isPreview) {
48
- console.log(this.cardPageLen, index, this.cardPageLen > index)
49
- return this.cardPageLen > index;
50
- }
51
-
52
- //打包模式
53
- let fiexd = 50;
54
- let boxTop = top + height + fiexd;
55
- let boxBottom = top - (fiexd);
56
- let {pageWindowPrevStart, pageWindowPrevEnd} = this.srollPreview;
57
- return boxTop > pageWindowPrevStart && boxBottom < pageWindowPrevEnd;
58
- },
59
-
60
- getBoxTop(){
61
- return new Promise((resolve, reject)=>{
62
- const query = uni.createSelectorQuery().in(this);
63
- query.select('.card-content').boundingClientRect(data=>{
64
- this.cardNextTop = data.top;
65
- this.contentStatus = true;
66
- resolve();
67
- }).exec()
68
- })
69
-
70
- },
71
-
72
- async handleCardComputed(paddingBottom){
73
- this.$xdShowLoading({});
74
- if(this.contentStatus === false) await this.getBoxTop();
75
- this.$nextTick(()=>{
76
- const query = uni.createSelectorQuery().in(this);
77
- query.selectAll('.computed-box').boundingClientRect(data => {
78
- let arr = data.map(item=>{
79
- let card = this.cardComputedList.filter(it=>{
80
- return item.dataset.card === it.card_number;
81
- })[0];
82
- card['height'] = item.height + (paddingBottom * this.$rpxNum);
83
- card['top'] = this.cardNextTop;
84
- this.cardNextTop = this.cardNextTop + card['height']
85
- return card
86
- });
87
-
88
-
89
- this.cardList = this.cardList.concat(arr);
90
-
91
-
92
-
93
- this.$xdHideLoading();
94
- }).exec();
95
- })
96
- },
97
-
98
- handleCardInit(cardList,isChange = false, paddingBottom = 30){
99
- let newCardList = this.$xdUniHelper.cloneDeep(cardList);
100
- let validCardList = this.getCardGroupItem(newCardList.list.filter((item) => {
101
- if(isChange === true) return item["is_valid"] === "Y";
102
- else return item["is_exchange"] === "Y";
103
- }), newCardList['site_entry_settings']).map((item,index)=>{
104
- item['index'] = index;
105
- return item
106
- });
107
- this.cardOrgList = this.$xdUniHelper.cloneDeep(validCardList);
108
- this.cardComputedList = this.cardOrgList.slice(this.cardPageNum,this.cardPageLen);
109
- this.handleCardComputed(paddingBottom).then().catch();
110
- },
111
-
112
- onJfbReachBottom(){
113
- if(this.cardLoading || !this.hasContent) return;
114
- this.cardLoading = true;
115
- this.$xdShowLoading({});
116
- this.cardPageNum++;
117
- console.log('onJfbReachBottom',this.cardPageNum)
118
- this.$nextTick(()=>{
119
- setTimeout(()=>{
120
- this.cardLoading = false;
121
- this.$xdHideLoading();
122
- this.cardComputedList = this.cardOrgList.slice(
123
- this.cardPageNum*this.cardPageLen,
124
- this.cardPageNum*this.cardPageLen + this.cardPageLen
125
- );
126
- this.handleCardComputed().then().catch();
127
- if(this.cardComputedList.length < this.cardPageLen) {
128
- this.hasContent = false;
129
- }
130
- },500)
131
- })
132
-
133
- },
134
-
135
- clearDefault(){
136
- this.cardOrgList = [];
137
- this.cardList = [];
138
- this.cardPageNum = 0;
139
- this.cardComputedList = [];
140
- this.cardLoading = false;
141
- this.cardNextTop = 0;
142
- this.contentStatus = false;
143
- this.hasContent = true;
144
- }
145
- }
146
- }
147
-
148
-