jufubao-base 1.0.169-beta9 → 1.0.169

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 (37) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseLogin/Attr.js +510 -1147
  3. package/src/components/JfbBaseLogin/JfbBaseLogin.vue +63 -364
  4. package/src/components/JfbBaseMapSearch/MapSearchMp.vue +1 -1
  5. package/src/components/JfbBaseTfkCardBind/Api.js +30 -49
  6. package/src/components/JfbBaseTfkCardBind/Attr.js +38 -635
  7. package/src/components/JfbBaseTfkCardBind/JfbBaseTfkCardBind.vue +22 -589
  8. package/src/components/JfbBaseTfkCardBind/Mock.js +9 -19
  9. package/src/components/JfbBaseTfkCardDetail/Api.js +32 -19
  10. package/src/components/JfbBaseTfkCardDetail/Attr.js +33 -692
  11. package/src/components/JfbBaseTfkCardDetail/JfbBaseTfkCardDetail.vue +23 -630
  12. package/src/components/JfbBaseTfkCardDetail/Mock.js +11 -151
  13. package/src/components/JfbBaseTfkCardLogin/Api.js +34 -19
  14. package/src/components/JfbBaseTfkCardLogin/Attr.js +33 -885
  15. package/src/components/JfbBaseTfkCardLogin/JfbBaseTfkCardLogin.vue +16 -729
  16. package/src/components/JfbBaseTfkCardLogin/Mock.js +11 -721
  17. package/src/components/JfbBaseTfkSearch/Api.js +42 -11
  18. package/src/components/JfbBaseTfkSearch/Attr.js +33 -143
  19. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +22 -171
  20. package/src/components/JfbBaseTfkSearch/Mock.js +11 -90
  21. package/src/mixins/colorCardMixins.js +9 -71
  22. package/src/mixins/componentsMixins.js +23 -346
  23. package/src/components/JfbBaseTfkCardLogin/XdCouponItem.vue +0 -271
  24. package/src/components/JfbBaseTfkSearch/AllList.vue +0 -231
  25. package/src/components/JfbBaseTfkSearch/ContentCinema.vue +0 -157
  26. package/src/components/JfbBaseTfkSearch/ContentFilm.vue +0 -179
  27. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +0 -308
  28. package/src/components/JfbBaseTfkSearch/ContentShop.vue +0 -184
  29. package/src/components/JfbBaseTfkSearch/CusAttr.js +0 -203
  30. package/src/components/JfbBaseTfkSearch/CustomList.vue +0 -401
  31. package/src/components/JfbBaseTfkSearch/SkeletonCinema.vue +0 -45
  32. package/src/components/JfbBaseTfkSearch/SkeletonFilm.vue +0 -109
  33. package/src/components/JfbBaseTfkSearch/SkeletonProduct.vue +0 -246
  34. package/src/components/JfbBaseTfkSearch/SkeletonShop.vue +0 -81
  35. package/src/components/JfbBaseTfkSearch/handleKeyword.js +0 -24
  36. package/src/components/JfbBaseTfkSearch/listMixins.js +0 -151
  37. package/src/components/JfbBaseTfkSearch/search.js +0 -293
@@ -1,109 +0,0 @@
1
- <template>
2
- <view class="skeleton-wrap-item">
3
- <view class="skeleton-wrap-item-image skeleton-item" :style="{marginRight:outSpacing + 'rpx'}"></view>
4
- <view class="skeleton-wrap-item-title">
5
- <view class="title skeleton-item"></view>
6
- <view class="type skeleton-item"></view>
7
- <view class="director skeleton-item"></view>
8
- <view class="star skeleton-item"></view>
9
- </view>
10
- <view class="skeleton-wrap-item-btn skeleton-item" :style="{marginLeft:outSpacing + 'rpx'}">
11
- <view class="score skeleton-item"></view>
12
- <view class="btn skeleton-item"></view>
13
- </view>
14
- </view>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- name: "SkeletonFilm",
20
- props:{
21
- outSpacing:{
22
- type: Number|String,
23
- default:20
24
- }
25
- }
26
- }
27
- </script>
28
-
29
-
30
-
31
- <style scoped lang="less">
32
- .skeleton-wrap-item {
33
- height: 240rpx;
34
- display: flex;
35
- justify-content: space-between;
36
- align-items: center;
37
-
38
- //影片列表骨架
39
- &-image {
40
- .skeleton-item(160rpx, 240rpx);
41
- flex-shrink: 0;
42
- margin-right: 20rpx;
43
- }
44
-
45
- &-title {
46
- flex: 1;
47
-
48
- .title {
49
- .skeleton-item(100%, 50rpx);
50
- margin-bottom: 20rpx;
51
- }
52
-
53
- .director,.star,.type {
54
- .skeleton-item(100%, 40rpx);
55
- margin-bottom: 10rpx;
56
- }
57
- }
58
-
59
- &-btn {
60
- display: flex;
61
- align-content: space-between;
62
- align-items: flex-end;
63
- justify-content: flex-end;
64
- flex-flow: wrap;
65
- height: 100%;
66
- box-sizing: border-box;
67
- padding: 10rpx 0;
68
- width: 130rpx;
69
- flex-shrink: 0;
70
-
71
- & > .score {
72
- .skeleton-item(100rpx, 40rpx);
73
- }
74
- & > .btn {
75
- .skeleton-item(130rpx, 60rpx);
76
- }
77
- }
78
-
79
- &:last-child {
80
- margin-bottom: 0!important;
81
- }
82
-
83
- //影院列表骨架
84
- &.list {
85
- display: block;
86
- }
87
- & > .title {
88
- .skeleton-item(100%, 60rpx);
89
- margin-bottom: 20rpx;
90
- }
91
- & > .address {
92
- .skeleton-item(100%, 40rpx);
93
- margin-bottom: 20rpx;
94
- }
95
- & > .bottom {
96
- display: flex;
97
- justify-content: space-between;
98
- align-items: center;
99
- padding-top: 30rpx;
100
-
101
- & > .local {
102
- .skeleton-item(120rpx, 30rpx);
103
- }
104
- & > .btn {
105
- .skeleton-item(150rpx, 70rpx);
106
- }
107
- }
108
- }
109
- </style>
@@ -1,246 +0,0 @@
1
- <template>
2
- <view class="skeleton-wrap-item" :class="{display: cell===1}">
3
- <template v-if="cell===1">
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>
26
- </template>
27
- <template v-if="cell===2">
28
- <view class="image2 skeleton-item" :style="{marginBottom:outSpacing + 'rpx', height: height + 'rpx'}"></view>
29
- <view class="content2">
30
- <view class="top">
31
- <view class="title skeleton-item"></view>
32
- <view class="brand skeleton-item" v-if="productConfig.is_show_brand==='Y'"></view>
33
- <view class="tags">
34
- <view class="skeleton-item" v-if="productConfig.showActivityPrice==='Y'"></view>
35
- <template v-if="productConfig.isShowTag==='Y'">
36
- <view class="skeleton-item"></view>
37
- <view class="skeleton-item"></view>
38
- <view class="skeleton-item"></view>
39
- </template>
40
- </view>
41
- </view>
42
- <view class="bottom">
43
- <view class="price skeleton-item" v-if="productConfig.isPrice==='Y'"></view>
44
- <view class="orgPrice skeleton-item" v-if="productConfig.isPrice==='Y' && productConfig.isShowDiscount === 'Y'"></view>
45
- <view class="cart">
46
- <view class="skeleton-item" v-if="productConfig.isAddCart === 'Y'"></view>
47
- </view>
48
- </view>
49
- </view>
50
- </template>
51
- </view>
52
- </template>
53
-
54
- <script>
55
- export default {
56
- name: "SkeletonProduct",
57
- props:{
58
- outSpacing:{
59
- type: Number|String,
60
- default:20
61
- },
62
- cell:{
63
- type: Number|String,
64
- required: true
65
- },
66
- height:{
67
- type: Number|String,
68
- default:''
69
- },
70
- productConfig:{
71
- type:Object|null,
72
- default: null
73
- },
74
- }
75
- }
76
- </script>
77
-
78
-
79
-
80
- <style scoped lang="less">
81
- .skeleton-wrap-item {
82
- min-height: 200rpx;
83
-
84
- &.display {
85
- display: flex;
86
- justify-content: space-between;
87
- align-items: center;
88
- align-content: space-between;
89
-
90
- & .image {
91
- .skeleton-item(200rpx, 200rpx);
92
- }
93
-
94
-
95
- & .content {
96
- flex: 1;
97
- min-height: 200rpx;
98
-
99
- .top {
100
- height: 140rpx;
101
-
102
- & .title {
103
- .skeleton-item(100%, 60rpx);
104
-
105
- }
106
-
107
- & .brand {
108
- margin-top: 10rpx;
109
- .skeleton-item(70%, 25rpx);
110
- }
111
-
112
- .tags {
113
- display: flex;
114
- justify-content: flex-start;
115
- align-items: center;
116
- flex-flow: wrap;
117
- margin-top: 10rpx;
118
-
119
- & > view {
120
- .skeleton-item(80rpx, 30rpx);
121
- margin-left: 10rpx;
122
- &:first-child {
123
- margin-left: 0;
124
- width: 120rpx;
125
- }
126
- }
127
- }
128
- }
129
-
130
- .bottom {
131
- display: flex;
132
- justify-content: flex-end;
133
- align-content: center;
134
- align-items: center;
135
- width: 100%;
136
- height: 40rpx;
137
- margin-top: 20rpx;
138
-
139
- & .price {
140
- flex-shrink: 0;
141
- .skeleton-item(120rpx, 35rpx);
142
- }
143
-
144
- & .orgPrice {
145
- flex-shrink: 0;
146
- margin-left: 20rpx;
147
- .skeleton-item(130rpx, 20rpx);
148
- }
149
-
150
- & .cart {
151
- flex: 1;
152
- display: flex;
153
- justify-content: flex-end;
154
- align-items: center;
155
- & > view {
156
- .skeleton-item(40rpx, 40rpx);
157
- }
158
- }
159
- }
160
- }
161
- }
162
-
163
- & .image2 {
164
- .skeleton-item();
165
- }
166
-
167
- & .content2 {
168
- flex: 1;
169
-
170
- .top {
171
- min-height: 140rpx;
172
-
173
- & .title {
174
- .skeleton-item(100%, 60rpx);
175
-
176
- }
177
-
178
- & .brand {
179
- margin-top: 10rpx;
180
- .skeleton-item(70%, 25rpx);
181
- }
182
-
183
- .tags {
184
- display: flex;
185
- justify-content: flex-start;
186
- align-items: center;
187
- flex-flow: wrap;
188
- margin-top: 10rpx;
189
-
190
-
191
- & > view {
192
- .skeleton-item(80rpx, 30rpx);
193
- margin-right: 10rpx;
194
-
195
- &:first-child {
196
- margin-right: 0;
197
- width: 120rpx;
198
- }
199
-
200
- &:nth-child(4) {
201
- margin-top: 10rpx;
202
- }
203
- &:nth-child(5) {
204
- margin-top: 10rpx;
205
- }
206
- &:nth-child(6) {
207
- margin-top: 10rpx;
208
- }
209
- }
210
- }
211
- }
212
-
213
- .bottom {
214
- display: flex;
215
- justify-content: flex-end;
216
- align-content: center;
217
- align-items: center;
218
- width: 100%;
219
- height: 40rpx;
220
- margin-top: 20rpx;
221
-
222
- & .price {
223
- flex-shrink: 0;
224
- .skeleton-item(100rpx, 35rpx);
225
- }
226
-
227
- & .orgPrice {
228
- flex-shrink: 0;
229
- margin-left: 20rpx;
230
- .skeleton-item(100rpx, 20rpx);
231
- }
232
-
233
- & .cart {
234
- flex: 1;
235
- display: flex;
236
- justify-content: flex-end;
237
- align-items: center;
238
- & > view {
239
- .skeleton-item(40rpx, 40rpx);
240
- }
241
- }
242
- }
243
- }
244
-
245
- }
246
- </style>
@@ -1,81 +0,0 @@
1
- <template>
2
- <view class="skeleton-wrap-item">
3
- <view class="image skeleton-item" :style="{marginRight: outSpacing + 'rpx'}"></view>
4
- <view class="content">
5
- <view class="title">
6
- <view class="title-left skeleton-item"></view>
7
- <view class="title-right skeleton-item"></view>
8
- </view>
9
- <view class="address skeleton-item"></view>
10
- <view class="phone skeleton-item"></view>
11
- <view class="btn">
12
- <view class="skeleton-item"></view>
13
- </view>
14
- </view>
15
- </view>
16
- </template>
17
-
18
- <script>
19
- export default {
20
- name: "SkeletonShop",
21
- props:{
22
- outSpacing:{
23
- type: Number|String,
24
- default:20
25
- }
26
- }
27
- }
28
- </script>
29
-
30
- <style scoped lang="less">
31
- .skeleton-wrap-item {
32
- height: 200rpx;
33
- display: flex;
34
- justify-content: space-between;
35
- align-items: center;
36
-
37
- & > .image {
38
- .skeleton-item(200rpx, 200rpx);
39
- flex-shrink: 0;
40
- }
41
-
42
- .content {
43
- height: 100%;
44
-
45
- .title {
46
- display: flex;
47
- justify-content: space-between;
48
- align-items: center;
49
- margin-bottom: 20rpx;
50
-
51
- &-left {
52
- flex: 1;
53
- margin-right: 20rpx;
54
- .skeleton-item(100%, 40rpx);
55
- }
56
- &-right {
57
- flex-shrink: 0;
58
- .skeleton-item(100rpx, 30rpx);
59
- }
60
- }
61
-
62
- flex: 1;
63
- .address {
64
- margin-bottom: 10rpx;
65
- .skeleton-item(100%, 30rpx);
66
- }
67
- .phone {
68
- margin-bottom: 10rpx;
69
- .skeleton-item(100%, 30rpx);
70
- }
71
- .btn {
72
- display: flex;
73
- justify-content: flex-end;
74
-
75
- .skeleton-item {
76
- .skeleton-item(100rpx, 50rpx)
77
- }
78
- }
79
- }
80
- }
81
- </style>
@@ -1,24 +0,0 @@
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
-
@@ -1,151 +0,0 @@
1
- 'use strict';
2
- import { getContainerPropsValue } from "@/utils/xd.base";
3
-
4
- export default {
5
- data(){
6
- return {
7
- isShowExchange:'N',
8
-
9
- contMargin:{},
10
- contRradius:'10',
11
- contShadow:'',
12
- contBorder:'',
13
- contBgColor:'',
14
- contBorderWidth: 0,
15
-
16
- imgRradius:'10',
17
-
18
- productConfig:null,
19
- }
20
- },
21
- created(){
22
-
23
- },
24
- methods:{
25
-
26
- cusInit(container){
27
- this.isShowExchange = getContainerPropsValue(container, 'content.isShowExchange', 'N');
28
-
29
- //商品相关
30
- let is_show_brand = getContainerPropsValue(container, 'content.is_show_brand', 'N');
31
- let isPrice = getContainerPropsValue(container, 'content.isPrice', "Y");
32
- let isShowTag = getContainerPropsValue(container, 'content.isShowTag', "Y");
33
- let isShowDiscount = getContainerPropsValue(container, 'content.isShowDiscount', "Y");
34
- let isAddCart = getContainerPropsValue(container, 'content.isAddCart', "Y");
35
- let differ = getContainerPropsValue(container, 'content.differ', 1);
36
- let showActivityPrice = getContainerPropsValue(container, 'content.showActivityPrice', 'N');
37
- this.productConfig = {is_show_brand,isPrice,isShowTag,isShowDiscount,isAddCart,differ,showActivityPrice}
38
-
39
- //内容
40
- this.contMargin = getContainerPropsValue(container, 'content.contMargin', {});
41
- this.contRradius = getContainerPropsValue(container, 'content.contRradius', '10');
42
- this.contShadow = this.getXdShadow({width:20, color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.contShadow', {}))
43
- this.contBorder = this.getXdBorder({width:2,color:'rgba(0,0,0,0)'},getContainerPropsValue(container, 'content.contBorder', {}));
44
- this.contBgColor = getContainerPropsValue(container, 'content.contBgColor', '#fff');
45
- this.contObjBorder = getContainerPropsValue(container, 'content.contBorder', {});
46
- if(this.contObjBorder && this.contObjBorder.type === 'Y') {
47
- if(this.contObjBorder.value && this.contObjBorder.value.width) {
48
- this.contBorderWidth = Number(this.contObjBorder.value.width);
49
- }
50
- else this.contBorderWidth = 2;
51
- }
52
-
53
- //图片
54
- this.imgRradius = getContainerPropsValue(container, 'content.imgRradius', '10');
55
-
56
- },
57
-
58
-
59
- //通信相关================
60
- handleParentVm(cb){
61
- cb(this)
62
- },
63
-
64
- onJfbReachBottom(options) {
65
- console.log('event.onJfbReachBottom', options)
66
- this.$refs['customList']['onCusReachBottom'](options)
67
-
68
- },
69
-
70
- onCusReload() {
71
- console.log('event.onCusReload', this.options)
72
- this.$refs['customList']['onCusReloadList'](this.options)
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
- let url = this.checkUrlIsValid(product.detail_redirect_data)
143
- if(product.detail_redirect_data) {
144
-
145
- }
146
- debugger
147
- }
148
- //商品链接事件
149
- },
150
- }
151
-