jufubao-base 1.0.169-beta5 → 1.0.169-beta7

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.
Files changed (28) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseTfkCardBind/Api.js +49 -30
  3. package/src/components/JfbBaseTfkCardBind/Attr.js +25 -1
  4. package/src/components/JfbBaseTfkCardBind/JfbBaseTfkCardBind.vue +139 -7
  5. package/src/components/JfbBaseTfkCardBind/Mock.js +19 -9
  6. package/src/components/JfbBaseTfkCardDetail/Api.js +11 -0
  7. package/src/components/JfbBaseTfkCardDetail/Attr.js +74 -0
  8. package/src/components/JfbBaseTfkCardDetail/JfbBaseTfkCardDetail.vue +141 -8
  9. package/src/components/JfbBaseTfkCardLogin/Attr.js +182 -0
  10. package/src/components/JfbBaseTfkCardLogin/JfbBaseTfkCardLogin.vue +250 -33
  11. package/src/components/JfbBaseTfkCardLogin/Mock.js +1 -1
  12. package/src/components/JfbBaseTfkCardLogin/XdCouponItem.vue +68 -16
  13. package/src/components/JfbBaseTfkSearch/AllList.vue +231 -0
  14. package/src/components/JfbBaseTfkSearch/Api.js +11 -42
  15. package/src/components/JfbBaseTfkSearch/Attr.js +125 -2
  16. package/src/components/JfbBaseTfkSearch/ContentCinema.vue +12 -2
  17. package/src/components/JfbBaseTfkSearch/{ContentItem.vue → ContentFilm.vue} +18 -4
  18. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +308 -0
  19. package/src/components/JfbBaseTfkSearch/ContentShop.vue +184 -0
  20. package/src/components/JfbBaseTfkSearch/CusAttr.js +2 -0
  21. package/src/components/JfbBaseTfkSearch/CustomList.vue +181 -28
  22. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +132 -20
  23. package/src/components/JfbBaseTfkSearch/Mock.js +90 -11
  24. package/src/components/JfbBaseTfkSearch/SkeletonCinema.vue +1 -2
  25. package/src/components/JfbBaseTfkSearch/SkeletonProduct.vue +98 -72
  26. package/src/components/JfbBaseTfkSearch/handleKeyword.js +24 -0
  27. package/src/components/JfbBaseTfkSearch/listMixins.js +71 -0
  28. package/src/components/JfbBaseTfkSearch/search.js +270 -152
@@ -1,10 +1,30 @@
1
1
  <template>
2
- <view class="skeleton-wrap-item">
2
+ <view class="skeleton-wrap-item" :class="{display: cell===1}">
3
3
  <template v-if="cell===1">
4
-
4
+ <view class="image skeleton-item" :style="{marginRight:outSpacing + 'rpx'}"></view>
5
+ <view class="content">
6
+ <view class="top">
7
+ <view class="title skeleton-item"></view>
8
+ <view class="brand skeleton-item" v-if="productConfig.is_show_brand==='Y'"></view>
9
+ <view class="tags">
10
+ <view class="skeleton-item" v-if="productConfig.showActivityPrice==='Y'"></view>
11
+ <template v-if="productConfig.isShowTag==='Y'">
12
+ <view class="skeleton-item"></view>
13
+ <view class="skeleton-item"></view>
14
+ <view class="skeleton-item"></view>
15
+ </template>
16
+ </view>
17
+ </view>
18
+ <view class="bottom">
19
+ <view class="price skeleton-item" v-if="productConfig.isPrice==='Y'"></view>
20
+ <view class="orgPrice skeleton-item" v-if="productConfig.isPrice==='Y' && productConfig.isShowDiscount === 'Y'"></view>
21
+ <view class="cart">
22
+ <view class="skeleton-item" v-if="productConfig.isAddCart === 'Y'"></view>
23
+ </view>
24
+ </view>
25
+ </view>
5
26
  </template>
6
27
  <template v-if="cell===2">
7
-
8
28
  </template>
9
29
  </view>
10
30
  </template>
@@ -21,8 +41,9 @@ export default {
21
41
  type: Number|String,
22
42
  required: true
23
43
  },
24
- productConfig(){
25
-
44
+ productConfig:{
45
+ type:Object|null,
46
+ default: null
26
47
  },
27
48
  }
28
49
  }
@@ -32,80 +53,85 @@ export default {
32
53
 
33
54
  <style scoped lang="less">
34
55
  .skeleton-wrap-item {
35
- height: 240rpx;
36
- display: flex;
37
- justify-content: space-between;
38
- align-items: center;
39
-
40
- //影片列表骨架
41
- &-image {
42
- .skeleton-item(160rpx, 240rpx);
43
- flex-shrink: 0;
44
- margin-right: 20rpx;
45
- }
46
-
47
- &-title {
48
- flex: 1;
49
-
50
- .title {
51
- .skeleton-item(100%, 50rpx);
52
- margin-bottom: 20rpx;
53
- }
54
-
55
- .director,.star,.type {
56
- .skeleton-item(100%, 40rpx);
57
- margin-bottom: 10rpx;
58
- }
59
- }
60
-
61
- &-btn {
62
- display: flex;
63
- align-content: space-between;
64
- align-items: flex-end;
65
- justify-content: flex-end;
66
- flex-flow: wrap;
67
- height: 100%;
68
- box-sizing: border-box;
69
- padding: 10rpx 0;
70
- width: 130rpx;
71
- flex-shrink: 0;
72
-
73
- & > .score {
74
- .skeleton-item(100rpx, 40rpx);
75
- }
76
- & > .btn {
77
- .skeleton-item(130rpx, 60rpx);
78
- }
79
- }
80
-
81
- &:last-child {
82
- margin-bottom: 0!important;
83
- }
56
+ min-height: 200rpx;
84
57
 
85
- //影院列表骨架
86
- &.list {
87
- display: block;
88
- }
89
- & > .title {
90
- .skeleton-item(100%, 60rpx);
91
- margin-bottom: 20rpx;
92
- }
93
- & > .address {
94
- .skeleton-item(100%, 40rpx);
95
- margin-bottom: 20rpx;
96
- }
97
- & > .bottom {
58
+ &.display {
98
59
  display: flex;
99
60
  justify-content: space-between;
100
61
  align-items: center;
101
- padding-top: 30rpx;
62
+ align-content: space-between;
102
63
 
103
- & > .local {
104
- .skeleton-item(120rpx, 30rpx);
64
+ & .image {
65
+ .skeleton-item(200rpx, 200rpx);
105
66
  }
106
- & > .btn {
107
- .skeleton-item(150rpx, 70rpx);
67
+
68
+ & .content {
69
+ flex: 1;
70
+ min-height: 200rpx;
71
+
72
+ .top {
73
+ height: 140rpx;
74
+
75
+ & .title {
76
+ .skeleton-item(100%, 60rpx);
77
+
78
+ }
79
+
80
+ & .brand {
81
+ margin-top: 10rpx;
82
+ .skeleton-item(70%, 25rpx);
83
+ }
84
+
85
+ .tags {
86
+ display: flex;
87
+ justify-content: flex-start;
88
+ align-items: center;
89
+ flex-flow: wrap;
90
+ margin-top: 10rpx;
91
+
92
+ & > view {
93
+ .skeleton-item(80rpx, 30rpx);
94
+ margin-left: 10rpx;
95
+ &:first-child {
96
+ margin-left: 0;
97
+ width: 120rpx;
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ .bottom {
104
+ display: flex;
105
+ justify-content: flex-end;
106
+ align-content: center;
107
+ align-items: center;
108
+ width: 100%;
109
+ height: 40rpx;
110
+ margin-top: 20rpx;
111
+
112
+ & .price {
113
+ flex-shrink: 0;
114
+ .skeleton-item(120rpx, 35rpx);
115
+ }
116
+
117
+ & .orgPrice {
118
+ flex-shrink: 0;
119
+ margin-left: 20rpx;
120
+ .skeleton-item(130rpx, 20rpx);
121
+ }
122
+
123
+ & .cart {
124
+ flex: 1;
125
+ display: flex;
126
+ justify-content: flex-end;
127
+ align-items: center;
128
+ & > view {
129
+ .skeleton-item(40rpx, 40rpx);
130
+ }
131
+ }
132
+ }
108
133
  }
109
134
  }
135
+
110
136
  }
111
137
  </style>
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ export default ($vm, str , keyword='', options={})=>{
4
+ if(keyword === '') return str;
5
+ try {
6
+ let __option = {
7
+ tag: 'text',
8
+ color: 'red',
9
+ weight: '500',
10
+ };
11
+ if ($vm.$xdUniHelper.checkVarType(keyword) === 'array') {
12
+ keyword = keyword.join('|');
13
+ } else if ($vm.$xdUniHelper.checkVarType(keyword) === 'string') {
14
+ keyword = keyword.trim();
15
+ }
16
+ let opt = Object.assign({}, __option, options);
17
+ let reg = new RegExp(`(${keyword})`, 'ig');
18
+ return str.replace(reg, `<${opt.tag} style="color:${opt.color};font-weight: ${opt.weight}">$1</${opt.tag}>`);
19
+ } catch (e) {
20
+ console.error(e)
21
+ return str;
22
+ }
23
+ }
24
+
@@ -22,6 +22,7 @@ export default {
22
22
 
23
23
  },
24
24
  methods:{
25
+
25
26
  cusInit(container){
26
27
  this.isShowExchange = getContainerPropsValue(container, 'content.isShowExchange', 'N');
27
28
 
@@ -71,6 +72,76 @@ export default {
71
72
  this.$refs['customList']['onCusReloadList'](this.options)
72
73
  },
73
74
  //通信相关================
75
+
76
+ //cinema/film/shop/product
77
+
78
+ //影片列表事件
79
+ handleFilmDetail(film_id,film){
80
+ // console.warn(`toFilmInfo(影片详情).${film_id}`)
81
+ // if(!this.fimeDetailPath) {
82
+ // console.error('未配置链接');
83
+ // return;
84
+ // }
85
+ // if( this.isPreview) return;
86
+ // this.$xdUniHelper.navigateTo({
87
+ // url: this.fimeDetailPath + `?film_id=${film_id}`
88
+ // })
89
+ },
90
+ handleBuy(film_id,film){
91
+ // console.warn(`toBuyChooseCinema(选择影院).${film_id}`)
92
+ // if(!this.buyPath) {
93
+ // console.error('未配置链接');
94
+ // return;
95
+ // }
96
+ // if( this.isPreview) return;
97
+ // this.$xdUniHelper.navigateTo({
98
+ // url: this.buyPath + `?film_id=${film_id}`
99
+ // })
100
+ },
101
+ //影片列表事件
102
+
103
+ //影院列表事件
104
+ handleSchedule(item, cinema){
105
+ // console.warn(`handleSchedule(选择排期).${item.cinema_id}`)
106
+ // if(!this.onlinePath) {
107
+ // console.error('未配置链接');
108
+ // return;
109
+ // }
110
+ // if( this.isPreview) return;
111
+ // this.$xdUniHelper.navigateTo({
112
+ // url: this.onlinePath + `?cinema_id=${item.cinema_id}`,
113
+ // });
114
+ },
115
+ handleCodeDetail(item, cinema){
116
+ // console.warn(`handleCodeDetail(选择电子码列表).${item.cinema_id}`)
117
+ // if(!this.codePath) {
118
+ // console.error('未配置链接');
119
+ // return;
120
+ // }
121
+ // if( this.isPreview) return;
122
+ // this.$xdUniHelper.navigateTo({
123
+ // url: this.codePath + `?cinema_id=${item.cinema_id}`,
124
+ // });
125
+ },
126
+ handleCashierDetail(item, cinema){
127
+ //todo
128
+ },
129
+ //影院列表事件
130
+
131
+ //门店列表事件
132
+ handleShopJhd(item, shop){
133
+ debugger
134
+ },
135
+ handleShopDetail(item, shop){
136
+ debugger
137
+ },
138
+ //门店列表事件
139
+
140
+ //商品链接事件
141
+ handleProductDetail(item, product){
142
+ debugger
143
+ }
144
+ //商品链接事件
74
145
  },
75
146
  }
76
147