jufubao-base 1.0.289-beta2 → 1.0.290-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.
Files changed (28) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseFooter/Attr.js +155 -10
  3. package/src/components/JfbBaseFooter/JfbBaseFooter.vue +43 -96
  4. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +14 -2
  5. package/src/components/JfbBaseTfkSearch/Api.js +0 -15
  6. package/src/components/JfbBaseTfkSearch/CustomList.vue +0 -10
  7. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +7 -247
  8. package/src/components/JfbBaseUserInfo/Attr.js +0 -12
  9. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +2 -8
  10. package/src/mixins/componentsMixins.js +55 -363
  11. package/src/mixins/posterMixins.js +199 -27
  12. package/src/components/CusCouponChose/CusCouponChose.vue +0 -1027
  13. package/src/components/CusCouponItem/CusCouponItem.vue +0 -298
  14. package/src/components/CusEnter/CusEnter.vue +0 -360
  15. package/src/components/CusPoster/CusPoster.vue +0 -212
  16. package/src/components/CusPoster/CusSwiperDot.vue +0 -234
  17. package/src/components/CusProduct/CusProduct.vue +0 -372
  18. package/src/components/CusShops/CusShops.vue +0 -518
  19. package/src/components/CusSwiperDot/CusSwiperDot.vue +0 -234
  20. package/src/components/CusTab/CusTab.vue +0 -411
  21. package/src/components/CusVideo/CusVideo.vue +0 -170
  22. package/src/components/JfbBaseFooter/cusAttr/advanced.js +0 -12
  23. package/src/components/JfbBaseFooter/cusAttr/content.js +0 -447
  24. package/src/components/JfbBaseFooter/cusAttr/style.js +0 -7
  25. package/src/components/JfbBaseFooter/cusAttr/tools.js +0 -17
  26. package/src/components/JfbBaseTfkSearch/XdQueryFilter.vue +0 -354
  27. package/src/components/JfbBaseTfkSearch/XdQuerySort.vue +0 -192
  28. package/src/mixins/productCompMixins.js +0 -252
@@ -1,212 +0,0 @@
1
- <template>
2
- <view
3
- class="list-poster"
4
- v-if="posterList !== null && posterList.length > 0"
5
- >
6
- <view
7
- :style="{width: '100%', height: styleObj.posterSize.height + 'rpx' }"
8
- class="list-poster-one"
9
- v-if="posterList.length === 1"
10
- >
11
- <image
12
- @click.stop="handlePosterClick(posterList[0],0)"
13
- :style="{width: '100%', height: styleObj.posterSize.height + 'rpx' }"
14
- :src="posterList[0].image_url"
15
- :alt="posterList[0].content_name"
16
- ></image>
17
- </view>
18
-
19
- <view class="list-poster-more" v-else>
20
- <cus-swiper-dot
21
- :style="{width:'100%', height: styleObj.posterSize.height + 'rpx' }"
22
- :current="current"
23
- :info="posterList"
24
- field="content_name"
25
- :mode="mode"
26
- :dots-styles="dotStyleData"
27
- >
28
- <swiper
29
- class="swiper xd-swiper-content"
30
- :style="{width: '100%', height: styleObj.posterSize.height + 'rpx' }"
31
- :indicator-dots="false"
32
- :autoplay="styleObj.carouselTime >0"
33
- :interval="styleObj.carouselTime"
34
- :duration="500"
35
- :current="current"
36
- circular
37
- @animationfinish="handleAnimationFinish"
38
- @change="handleChange"
39
- >
40
- <swiper-item v-for="(item,index) in posterList" :key="index" @click.stop="handlePosterClick(item,index)">
41
- <image
42
- :style="{width: '100%', height: styleObj.posterSize.height + 'rpx' }"
43
- :src="item['image_url']"
44
- ></image>
45
- </swiper-item>
46
- </swiper>
47
- </cus-swiper-dot>
48
- </view>
49
- </view>
50
- </template>
51
-
52
- <script>
53
-
54
- import CusSwiperDot from "@/components/CusSwiperDot/CusSwiperDot.vue";
55
- import Color from "color";
56
-
57
- export default {
58
- name: "CusPoster",
59
- components: {
60
- CusSwiperDot
61
- },
62
- props:{
63
- styleObj:{
64
- type: Object,
65
- default(){
66
- return {}
67
- }
68
- },
69
- posterList:{
70
- type: Array|null,
71
- default: null
72
- },
73
- mode:{
74
- type: String,
75
- default:''
76
- },
77
- mainColor:{
78
- type:String,
79
- required: true
80
- }
81
- },
82
-
83
- computed:{
84
- dotStyleData(){
85
- return this.dotStyleDataConf()[this.mode];
86
- }
87
- },
88
-
89
- data(){
90
- return {
91
- current:0,
92
- dotStyleDataConf(){
93
- let alpha = 0.6;
94
- let selectedColor = `rgba(${Color(this.mainColor).alpha(alpha).array().join(',')})`;
95
- return {
96
- dot: {
97
- backgroundColor: 'rgba(166,166,166,.5)',
98
- border: '0px rgba(166,166,166,.5) solid',
99
- color: '#fff',
100
- selectedBackgroundColor: selectedColor,
101
- selectedBorder: `0px this.mainColor solid`
102
- },
103
- default: {
104
- width: 16,
105
- backgroundColor: 'rgba(200,200,200,.45)',
106
- border: '1px rgba(200,200,200,.45) solid',
107
- color: '#fff',
108
- selectedBackgroundColor: selectedColor,
109
- selectedBorder: `1px this.mainColor solid`
110
- },
111
- round: {
112
- backgroundColor: 'rgba(166,166,166,.5)',
113
- border: '0px rgba(166,166,166,.5) solid',
114
- color: '#fff',
115
- selectedBackgroundColor: selectedColor,
116
- selectedBorder: `0px this.mainColor solid`
117
- },
118
- nav: {
119
- backgroundColor: 'rgba(0,0,0,.5)',
120
- border: '1px rgba(0,0,0,.5) solid',
121
- color: '#fff',
122
- selectedBackgroundColor: 'rgba(255, 255, 255, 1)',
123
- selectedBorder: '1px rgba(255, 255, 255 1) solid'
124
- },
125
- indexes: {
126
- backgroundColor: 'rgba(0,0,0,.5)',
127
- border: '0px rgba(0,0,0,.5) solid',
128
- color: '#aaa',
129
- selectedBackgroundColor: 'rgba(0,0,0,.8)',
130
- selectedBorder: '0px rgba(0,0,0,.8) solid',
131
- selectedColor: '#fff',
132
- }
133
- }
134
- },
135
- }
136
- },
137
- methods:{
138
- handlePosterClick(item,index){
139
- if(!item.redirect_data) {
140
- console.warn(`未配置链接地址: ${item.redirect_data}`);
141
- console.error(`未配置链接地址: ${item.redirect_data}`);
142
- return
143
- }
144
-
145
- //内部链接跳转地址
146
- if (item.redirect_type === 'INN') {
147
- try {
148
- let url = JSON.parse(item.redirect_data);
149
- let params = '';
150
- if(url.page) {
151
- if (item['redirect_params']) params = `?${item['redirect_params']}`;
152
- this.$xdUniHelper.navigateTo({url: url.page + params})
153
- }
154
- else {
155
- console.error(`应用链接配置错误: ${url.page}`)
156
- }
157
- } catch (e) {
158
- console.error(`应用链接配置错误: ${item.redirect_data}`)
159
- }
160
- }
161
-
162
- //外部链接
163
- if (item.redirect_type === 'URL') {
164
- let reg = /^(http:\/\/|https:\/\/|\/\/)+.+$/;
165
- let spReg = /(-apiuri\/v)/;
166
- //#ifdef MP-WEIXIN
167
- try {
168
- let url = JSON.parse(item.redirect_data);
169
- if (reg.test(url.url) || spReg.test(url.url)) {
170
- console.warn(`广告跳转外站: ${url.url}`)
171
- this.$xdUniHelper.navigateTo(url);
172
- } else {
173
- console.error(`广告跳转外站配置错误: ${url.url}`)
174
- }
175
- } catch (e) {
176
- console.error(`广告跳转外站配置错误: ${item.redirect_data}`)
177
- }
178
- //#endif
179
- //#ifdef H5
180
- try {
181
- let url = JSON.parse(item.redirect_data);
182
- console.warn(`广告跳转外站: ${url.url}`);
183
- this.$xdUniHelper.redirectTo(url, false)
184
- } catch (e) {
185
- console.error(`广告跳转外站配置错误: ${item.redirect_data}`)
186
- }
187
- //#endif
188
-
189
- }
190
-
191
- //无跳转地址
192
- if(item.redirect_type === 'EMP') {
193
- console.warn(`无跳转地址`);
194
- }
195
- },
196
-
197
- handleChange(e){
198
- this.current = e.detail.current;
199
- },
200
-
201
- handleAnimationFinish(e){
202
- //this.current = e.detail.current;
203
- },
204
- }
205
- }
206
-
207
- </script>
208
-
209
-
210
- <style scoped lang="less">
211
-
212
- </style>
@@ -1,234 +0,0 @@
1
- <template>
2
- <view class="uni-swiper__warp">
3
- <slot />
4
- <view v-if="mode === 'default'" :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box" key='default'>
5
- <view v-for="(item,index) in info" @click="clickItem(index)" :style="{
6
- 'width': (index === current? dots.width*1.7: dots.width ) + 'px','height':dots.width*(2/5) +'px' ,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border-radius':'0px'}"
7
- :key="index" class="uni-swiper__dots-item uni-swiper__dots-bar" />
8
- </view>
9
- <view v-if="mode === 'dot'" :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box" key='dot'>
10
- <view v-for="(item,index) in info" @click="clickItem(index)" :style="{
11
- 'width': dots.width + 'px','height':dots.height +'px' ,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border':index !==current ? dots.border:dots.selectedBorder}"
12
- :key="index" class="uni-swiper__dots-item" />
13
- </view>
14
- <view v-if="mode === 'round'" :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box" key='round'>
15
- <view v-for="(item,index) in info" @click="clickItem(index)" :class="[index === current&&'uni-swiper__dots-long']" :style="{
16
- 'width':(index === current? dots.width*3:dots.width ) + 'px','height':dots.height +'px' ,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border':index !==current ? dots.border:dots.selectedBorder}"
17
- :key="index" class="uni-swiper__dots-item " />
18
- </view>
19
- <view v-if="mode === 'nav'" key='nav' :style="{'background-color':dotsStyles.backgroundColor,'bottom':'0'}" class="uni-swiper__dots-box uni-swiper__dots-nav">
20
- <text :style="{'color':dotsStyles.color}" class="uni-swiper__dots-nav-item">{{ (current+1)+"/"+info.length }}</text>
21
- </view>
22
- <view v-if="mode === 'indexes'" key='indexes' :style="{'bottom':dots.bottom + 'px'}" class="uni-swiper__dots-box">
23
- <view v-for="(item,index) in info" @click="clickItem(index)" :style="{
24
- 'width':dots.width + 'rpx','height':dots.height +'rpx' ,'color':index === current?dots.selectedColor:dots.color,'background-color':index !== current?dots.backgroundColor:dots.selectedBackgroundColor,'border':index !==current ? dots.border:dots.selectedBorder}"
25
- :key="index" class="uni-swiper__dots-item uni-swiper__dots-indexes"><text class="uni-swiper__dots-indexes-text">{{ index+1 }}</text></view>
26
- </view>
27
- </view>
28
- </template>
29
-
30
- <script>
31
-
32
- /**
33
- * XdSwiperDot 轮播图指示点
34
- * @description 自定义轮播图指示点
35
- * @tutorial https://ext.dcloud.net.cn/plugin?id=284
36
- * @property {Number} current 当前指示点索引,必须是通过 `swiper` 的 `change` 事件获取到的 `e.detail.current`
37
- * @property {String} mode = [default|round|nav|indexes] 指示点的类型
38
- * @value defualt 默认指示点
39
- * @value round 圆形指示点
40
- * @value nav 条形指示点
41
- * @value indexes 索引指示点
42
- * @property {String} field mode 为 nav 时,显示的内容字段(mode = nav 时必填)
43
- * @property {String} info 轮播图的数据,通过数组长度决定指示点个数
44
- * @property {Object} dotsStyles 指示点样式
45
- * @event {Function} clickItem 组件触发点击事件时触发,e={currentIndex}
46
- */
47
-
48
- export default {
49
- name: 'XdSwiperDot',
50
- emits:['clickItem'],
51
- props: {
52
- info: {
53
- type: Array,
54
- default () {
55
- return []
56
- }
57
- },
58
- current: {
59
- type: Number,
60
- default: 0
61
- },
62
- dotsStyles: {
63
- type: Object,
64
- default () {
65
- return {}
66
- }
67
- },
68
- // 类型 :default(默认) indexes long nav
69
- mode: {
70
- type: String,
71
- default: 'default'
72
- },
73
- // 只在 nav 模式下生效,变量名称
74
- field: {
75
- type: String,
76
- default: ''
77
- }
78
- },
79
- data() {
80
- return {
81
- dotsSource: {
82
- width: 8,
83
- height: 8,
84
- bottom: 7,
85
- color: '#fff',
86
- backgroundColor: 'rgba(0, 0, 0, .3)',
87
- border: '1px rgba(0, 0, 0, .3) solid',
88
- selectedBackgroundColor: '#333',
89
- selectedBorder: '1px rgba(0, 0, 0, .9) solid'
90
- },
91
- dots: { }
92
- }
93
- },
94
- watch: {
95
- dotsStyles(newVal) {
96
- this.init(newVal)
97
- },
98
- mode() {
99
- this.init(this.dotsStyles)
100
- }
101
-
102
- },
103
- created() {
104
- this.init(this.dotsStyles)
105
- },
106
- methods: {
107
- clickItem(index) {
108
- this.$emit('clickItem', index)
109
- },
110
-
111
- init(value){
112
- let dot = {};
113
- if (this.mode === 'indexes') {
114
- dot = {
115
- width: 34,
116
- height: 34,
117
- }
118
- }
119
- this.dots = Object.assign(
120
- JSON.parse(JSON.stringify(this.dotsSource)),
121
- JSON.parse(JSON.stringify(value)),
122
- dot
123
- )
124
- }
125
-
126
- }
127
- }
128
- </script>
129
-
130
- <style lang="scss" scoped>
131
- .uni-swiper__warp {
132
- /* #ifndef APP-NVUE */
133
- display: flex;
134
- /* #endif */
135
- flex: 1;
136
- flex-direction: column;
137
- position: relative;
138
- overflow: hidden;
139
- }
140
-
141
- .uni-swiper__dots-box {
142
- position: absolute;
143
- bottom: 10px;
144
- left: 0;
145
- right: 0;
146
- /* #ifndef APP-NVUE */
147
- display: flex;
148
- /* #endif */
149
- flex: 1;
150
- flex-direction: row;
151
- justify-content: center;
152
- align-items: center;
153
- }
154
-
155
- .uni-swiper__dots-item {
156
- width: 8px;
157
- border-radius: 100px;
158
- margin-left: 6px;
159
- background-color: $uni-bg-color-mask;
160
- /* #ifndef APP-NVUE */
161
- cursor: pointer;
162
- /* #endif */
163
- /* #ifdef H5 */
164
- // border-width: 5px 0;
165
- // border-style: solid;
166
- // border-color: transparent;
167
- // background-clip: padding-box;
168
- /* #endif */
169
- // transition: width 0.2s linear; 不要取消注释,不然会不能变色
170
- }
171
-
172
- .uni-swiper__dots-item:first-child {
173
- margin: 0;
174
- }
175
-
176
- .uni-swiper__dots-default {
177
- border-radius: 100px;
178
- }
179
-
180
- .uni-swiper__dots-long {
181
- border-radius: 50px;
182
- }
183
-
184
- .uni-swiper__dots-bar {
185
- border-radius: 50px;
186
- }
187
-
188
- .uni-swiper__dots-nav {
189
- bottom: 20rpx!important;
190
- height: 38rpx;
191
- line-height: 38rpx;
192
- position: absolute;
193
- right: 0;
194
- left: initial;
195
- /* #ifndef APP-NVUE */
196
- display: flex;
197
- /* #endif */
198
- flex: 1;
199
- flex-direction: row;
200
- justify-content: flex-start;
201
- align-items: center;
202
- background-color: rgba(0, 0, 0, 0.5);
203
- border-radius: 6rpx 0 0 6rpx;
204
-
205
- & > text {
206
- font-size: 20rpx;
207
- padding: 0 10px!important;
208
- margin: 0;
209
- text-align: center;
210
- }
211
- }
212
-
213
- .uni-swiper__dots-nav-item {
214
- /* overflow: hidden;
215
- text-overflow: ellipsis;
216
- white-space: nowrap; */
217
- font-size: $uni-font-size-base;
218
- color: #fff;
219
- margin: 0 15px;
220
- }
221
-
222
- .uni-swiper__dots-indexes {
223
- /* #ifndef APP-NVUE */
224
- display: flex;
225
- /* #endif */
226
- // flex: 1;
227
- justify-content: center;
228
- align-items: center;
229
- }
230
-
231
- .uni-swiper__dots-indexes-text {
232
- font-size: $uni-font-size-sm;
233
- }
234
- </style>