jufubao-takeorder 1.0.1

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 (50) hide show
  1. package/README.md +27 -0
  2. package/commands.js +84 -0
  3. package/commands.update.change.js +176 -0
  4. package/file.config.js +16 -0
  5. package/get.package.path.js +22 -0
  6. package/get.package.path.js.tpl +22 -0
  7. package/package.json +122 -0
  8. package/src/CreateClientID.js +16 -0
  9. package/src/ICONS.js +1148 -0
  10. package/src/appParams.js +1 -0
  11. package/src/common/authorize.js +261 -0
  12. package/src/common/getBusinessImageUrl.js +39 -0
  13. package/src/common/getServiceUrl.js +38 -0
  14. package/src/common/paysdk/jweixin.js +98 -0
  15. package/src/components/CusCouponChose/CusCouponChose.vue +1024 -0
  16. package/src/components/CusCouponItem/CusCouponItem.vue +298 -0
  17. package/src/components/CusEnter/CusEnter.vue +368 -0
  18. package/src/components/CusListItem/CusListItem.vue +141 -0
  19. package/src/components/CusPoster/CusPoster.vue +167 -0
  20. package/src/components/CusPoster/CusSwiperDot.vue +234 -0
  21. package/src/components/CusPrice/CusPrice.vue +383 -0
  22. package/src/components/CusProduct/CusProduct.vue +763 -0
  23. package/src/components/CusShops/CusShops.vue +717 -0
  24. package/src/components/CusSwiperDot/CusSwiperDot.vue +234 -0
  25. package/src/components/CusTab/CusTab.vue +544 -0
  26. package/src/components/CusVideo/CusVideo.vue +170 -0
  27. package/src/components/CusVipList/CusVipList.vue +169 -0
  28. package/src/config.app.plus.js +6 -0
  29. package/src/config.h5.js +13 -0
  30. package/src/config.mp.weixin.js +13 -0
  31. package/src/config.project.js +15 -0
  32. package/src/get.package.path.js +22 -0
  33. package/src/mixins/cardListMixins.js +187 -0
  34. package/src/mixins/colorCardMixins.js +122 -0
  35. package/src/mixins/componentsMixins.js +900 -0
  36. package/src/mixins/extsMixins.js +3 -0
  37. package/src/mixins/locationMixins.js +119 -0
  38. package/src/mixins/newLocaltionMixins.js +754 -0
  39. package/src/mixins/openDebuggerMixins.js +74 -0
  40. package/src/mixins/pageEditx.js +347 -0
  41. package/src/mixins/pageEvent.js +311 -0
  42. package/src/mixins/pageMain.js +120 -0
  43. package/src/mixins/pageUitls.js +738 -0
  44. package/src/mixins/posterMixins.js +122 -0
  45. package/src/mixins/scrollListFixedHeigthMixins.js +174 -0
  46. package/src/mocks.js +4 -0
  47. package/src/oss.config.js +17 -0
  48. package/src/settings.js +244 -0
  49. package/src/staticVersion.js +3 -0
  50. package/src/xd.less +196 -0
@@ -0,0 +1,298 @@
1
+ <template>
2
+ <view @click="toDetail" class="xd-coupon_item" :style="couponItemBoxStyle">
3
+ <view class="coupon_left" :style="{
4
+ background: couponLeftBgColor
5
+ }">
6
+ <view class="_point">
7
+ <xd-unit
8
+ :unitFontSize="24"
9
+ :fontSize="48"
10
+ :price="item.card_point"
11
+ :isOld="false"
12
+ :unit="item.unit || ''"
13
+ :colorNew="'#ffffff'"
14
+ ></xd-unit>
15
+ <!-- <text style="font-size: 24rpx;">{{ item.unit }}</text> -->
16
+ </view>
17
+ <view class="_rule">{{ item.show_name }}</view>
18
+ </view>
19
+ <view class="coupon_right" :style="couponRightItemBoxStyle">
20
+ <view class="cont_top" :style="{
21
+ background: couponTitleBgColor,
22
+ color: mainColor
23
+ }">{{ item.card_type_name }}</view>
24
+ <view class="cont_main">
25
+ <view class="cou_number">券号:{{ item.card_number }}</view>
26
+ <view class="cou_time">有效期:{{getTimeFormat(item.end_time) }}</view>
27
+ <view class="cou_point">
28
+ 余额:
29
+ <xd-unit
30
+ :unitFontSize="24"
31
+ :fontSize="28"
32
+ :price="item.card_point"
33
+ :isOld="false"
34
+ :unit="item.unit || ''"
35
+ :colorNew="'#333333'"
36
+ ></xd-unit>
37
+ </view>
38
+ <slot name="btn">
39
+ <view class="cou_btn"
40
+ :style="[
41
+ item.is_login === 'Y' ? couponBtnActiveStyle : couponBtnStyle,
42
+ {
43
+ padding: couponBtnPadding,
44
+ borderRadius: couponBtnRadius + 'rpx'
45
+ }
46
+ ]"
47
+ @click.stop="goToUseCoupon"
48
+ >{{item.is_login === 'Y' ? '已登录' : '去使用'}}</view>
49
+ </slot>
50
+ </view>
51
+ <view class="cont_bottom">
52
+ <view class="switch_rule" @click.stop="switchRule">
53
+ <view>使用规则</view>
54
+ <view>
55
+ <xd-font-icon v-if="!expand" icon="iconxia_down" size="24"></xd-font-icon>
56
+ <xd-font-icon v-else icon="iconshang_up" size="24"></xd-font-icon>
57
+ </view>
58
+ </view>
59
+ <view v-if="expand" class="expand_rule">
60
+ {{ item.card_use_rule }}
61
+ </view>
62
+ </view>
63
+ </view>
64
+ </view>
65
+ </template>
66
+ <script>
67
+ import getServiceUrl from '@/common/getServiceUrl'
68
+ import XdUnit from "@/components/XdUnit/XdUnit";
69
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
70
+ export default{
71
+ name: "CusCouponItem",
72
+ components: {
73
+ XdFontIcon,
74
+ XdUnit
75
+ },
76
+ props: {
77
+ item:{
78
+ type: Object,
79
+ },
80
+ couponRadius: {
81
+ type: String | Number,
82
+ default: "16"
83
+ },
84
+ couponLeftBgColor: {
85
+ type: String,
86
+ default: 'linear-gradient(180deg, #FFA852 0%, #FF5733 100%)'
87
+ },
88
+ couponImageUrl: {
89
+ type: Object | String
90
+ },
91
+ couponTitleBgColor: {
92
+ type: String,
93
+ default: "rgba(255, 87, 51, 0.1)"
94
+ },
95
+ mainColor: {
96
+ type: String,
97
+ default: "#000"
98
+ },
99
+ couponUseBtnPadding: {
100
+ type: Object,
101
+ default(){
102
+ return {
103
+ top: 20,
104
+ right: 20,
105
+ bottom: 10,
106
+ left: 20
107
+ }
108
+ },
109
+ },
110
+ couponBtnRadius: {
111
+ type: String | Number,
112
+ default: "16"
113
+ },
114
+ couponBtnTextStyle: {
115
+ type: Object,
116
+ default(){
117
+ return {
118
+ color: '#fff',
119
+ bgColor: '#ff5722',
120
+ fontSize: '30rpx',
121
+ fontWeight: 'normal'
122
+ }
123
+ }
124
+ }
125
+ },
126
+ data() {
127
+ return {
128
+ expand: false,
129
+ }
130
+ },
131
+ computed: {
132
+ couponItemBoxStyle(){
133
+ return this.styleObjectToString({
134
+ borderRadius: this.couponRadius + 'rpx',
135
+ })
136
+ },
137
+ couponBtnPadding(){
138
+ let padding = `${this.checkValue(this.couponUseBtnPadding.top, 20)}rpx`;
139
+ padding = `${padding} ${this.checkValue(this.couponUseBtnPadding.right, 20)}rpx`;
140
+ padding = `${padding} ${this.checkValue(this.couponUseBtnPadding.bottom, 20)}rpx`;
141
+ padding = `${padding} ${this.checkValue(this.couponUseBtnPadding.left, 20)}rpx`;
142
+ return padding;
143
+ },
144
+ couponBtnStyle(){
145
+ let styleObj = {
146
+ color: this.couponBtnTextStyle['color'] || '#333',
147
+ background: this.couponBtnTextStyle['bgColor'] || '#fff',
148
+ fontSize: this.couponBtnTextStyle['fontSize'] || '30rpx',
149
+ fontWeight: this.couponBtnTextStyle['fontWeight'] || 'normal',
150
+ }
151
+ return this.styleObjectToString(styleObj)
152
+ },
153
+ couponBtnActiveStyle(){
154
+ return this.styleObjectToString({
155
+ color: this.couponBtnTextStyle['actColor'] || '#fff',
156
+ background: this.couponBtnTextStyle['actBgColor'] || '#ff5722',
157
+ fontSize: this.couponBtnTextStyle['actFontSize'] || '30rpx',
158
+ fontWeight: this.couponBtnTextStyle['actFontWeight'] || 'normal',
159
+ })
160
+ },
161
+ couponRightItemBoxStyle(){
162
+ let image = {};
163
+ if(this.cardImageUrl) image = {
164
+ backgroundImage: `url(${this.getCouponBgImage})`,
165
+ backgroundSize: '100%',
166
+ backgroundRepeat: 'no-repeat',
167
+ }
168
+ return this.styleObjectToString(image)
169
+ },
170
+ getCouponBgImage(){
171
+ let bg = '';
172
+ if(this.$xdUniHelper.checkVarType(this.couponImageUrl) === 'object'
173
+ || this.$xdUniHelper.checkVarType(this.couponImageUrl) === 'array'
174
+ ) {
175
+ if(!this.$xdUniHelper.isEmpty(this.couponImageUrl)) {
176
+ return getServiceUrl(this.couponImageUrl.url)
177
+ }
178
+ }
179
+ return bg
180
+ },
181
+ },
182
+ methods: {
183
+ switchRule(){
184
+ this.expand = !this.expand;
185
+ },
186
+ getTimeFormat(time) {
187
+ let date = null;
188
+ if (time == +time) {
189
+ if ((time + "").length <= 10) date = new Date(+time * 1000);
190
+ else date = new Date(+time);
191
+ return (
192
+ date.getFullYear() +
193
+ "-" +
194
+ (date.getMonth() + 1) +
195
+ "-" +
196
+ date.getDate()
197
+ );
198
+ }
199
+ return time;
200
+ },
201
+ toDetail(){
202
+ this.$emit('toDetail', this.item);
203
+ },
204
+ goToUseCoupon(){
205
+ this.$emit('useCoupon', this.item);
206
+ },
207
+ checkValue(value, dValue = 0){
208
+ if(value === undefined || value === '' || value === null) return dValue;
209
+ return Number(value || 0);
210
+ },
211
+ }
212
+ }
213
+
214
+ </script>
215
+ <style lang="less" scoped>
216
+ .xd-coupon_item{
217
+ display: flex;
218
+ margin: 20rpx 0;
219
+ border-radius: 16rpx;
220
+ background: #FFFFFF;
221
+ overflow: hidden;
222
+ border: 2rpx solid #eee;
223
+ .coupon_left{
224
+ color: #FFFFFF;
225
+ width: 170rpx;
226
+ flex-shrink: 0;
227
+ display: flex;
228
+ flex-direction: column;
229
+ align-items: center;
230
+ justify-content: center;
231
+
232
+ ._point{
233
+ font-size: 48rpx;
234
+ }
235
+ ._rule{
236
+ font-size: 24rpx;
237
+ }
238
+ }
239
+ .coupon_right{
240
+ flex: 1;
241
+ width: 0;
242
+ .cont_top{
243
+ background: rgba(255, 87, 51, 0.1);
244
+ padding: 8rpx 40rpx;
245
+ font-size: 24rpx;
246
+ overflow: hidden;
247
+ white-space: nowrap;
248
+ text-overflow: ellipsis;
249
+ }
250
+ .cont_main{
251
+ position: relative;
252
+ padding: 28rpx 20rpx 28rpx 40rpx;
253
+ color: #333333;
254
+ .cou_number{
255
+ font-size: 32rpx;
256
+ font-weight: bold;
257
+ }
258
+ .cou_time{
259
+ font-size: 28rpx;
260
+ margin: 16rpx 0;
261
+ }
262
+ .cou_point{
263
+ font-size: 28rpx;
264
+ display: flex;
265
+ align-items: center;
266
+ }
267
+ .cou_btn{
268
+ position: absolute;
269
+ padding: 10rpx 30rpx;
270
+ background-color: #ddd;
271
+ border-radius: 12rpx;
272
+ right: 20rpx;
273
+ bottom: 20rpx;
274
+ }
275
+ }
276
+ .cont_bottom{
277
+ background: #EEEEEE;
278
+ .switch_rule{
279
+ display: flex;
280
+ align-items: center;
281
+ justify-content: space-between;
282
+ padding: 12rpx 40rpx;
283
+ font-size: 24rpx;
284
+ color: #666666;
285
+ }
286
+ .expand_rule{
287
+ padding: 12rpx 40rpx;
288
+ font-size: 20rpx;
289
+ color: #333333;
290
+ overflow: hidden;
291
+ white-space: nowrap;
292
+ text-overflow: ellipsis;
293
+ background-color: #F5F5F5;
294
+ }
295
+ }
296
+ }
297
+ }
298
+ </style>
@@ -0,0 +1,368 @@
1
+ <template>
2
+ <view
3
+ class="list-poster"
4
+ v-if="enterList !== null && enterList.length > 0"
5
+ >
6
+ <!--静态显示-->
7
+ <view class="list-poster-one" v-if="0"></view>
8
+ <!--静态显示-->
9
+ <view class="list-poster-more" v-else>
10
+ <cus-swiper-dot
11
+ :style="[outStyleBoxComp]"
12
+ :current="current"
13
+ :info="enterListComp"
14
+ field="content_name"
15
+ :mode="mode"
16
+ :dots-styles="dotStyleData"
17
+ >
18
+ <swiper
19
+ class="swiper xd-swiper-content"
20
+ :style="[inStyleBoxComp]"
21
+ :indicator-dots="false"
22
+ :autoplay="time > 0"
23
+ :interval="time"
24
+ :duration="500"
25
+ :current="current"
26
+ circular
27
+ @animationfinish="handleAnimationFinish"
28
+ @change="handleChange"
29
+ >
30
+ <swiper-item
31
+ v-for="(item,index) in enterListComp"
32
+ :key="index"
33
+ >
34
+ <view :style="[boxStyleComp]" class="swiper-list">
35
+ <view
36
+ v-for="(brand,idx) in item"
37
+ :key="brand.value"
38
+ :style="[
39
+ itemStyleComp,
40
+ {marginRight:(idx>0&&(idx+1)%column===0)?0:(columnSpacing + 'rpx')},
41
+ {marginTop:idx<column?0:(rowSpacing + 'rpx')}
42
+ ]"
43
+ @click.stop="handlePosterClick(brand,index)"
44
+ >
45
+ <view :style="[itemImageComp]" class="list-image" >
46
+ <image v-if="brand['error-status']===false" :style="[config['iconStyle']]" :src="getCNDUrl(brand.brand_icon)" :alt="brand.label"></image>
47
+ <image v-else :style="[config['iconStyle']]" :src="iconErrorUrl" :alt="brand.label"></image>
48
+ </view>
49
+ <view class="list-title" :style="[config['titleStyle']]">{{brand.label}}</view>
50
+ </view>
51
+ </view>
52
+ </swiper-item>
53
+ </swiper>
54
+ </cus-swiper-dot>
55
+ </view>
56
+ </view>
57
+ </template>
58
+
59
+ <script>
60
+
61
+ import CusSwiperDot from "@/components/CusSwiperDot/CusSwiperDot.vue";
62
+ import Color from "color";
63
+ import getServiceUrl from "@/common/getServiceUrl";
64
+
65
+ export default {
66
+ name: "CusEnter",
67
+ components: {
68
+ CusSwiperDot
69
+ },
70
+ props:{
71
+ config: {
72
+ type: Object,
73
+ default(){
74
+ return {
75
+ outWidth: uni.getSystemInfoSync().safeArea.width,//(px)
76
+ column: 5,//列
77
+ row: 2, //行
78
+ wrapperPadding:0, //盒子填充(有投影时候设置) (rpx)
79
+ wrapperPaddingRL: 0, //内容盒子左右边距和
80
+ wrapperPaddingTB: 0, //内容盒子上下边距和
81
+ wrapperBorderRadius:0, //内容盒子圆角设置
82
+ iconBoxStyle: {}, //图片icon外壳样式
83
+ titleStyle: {}, //图标下文字样式
84
+ columnSpacing: 0, //列间距 (rpx)
85
+ rowSpacing: 0, //行间距 (rpx)
86
+ iconStyle: { //icon样式
87
+ borderRadius: 0, // (rpx)
88
+ iconPadding: 0 // (rpx)
89
+ },
90
+ }
91
+ }
92
+ },
93
+ /**
94
+ * @description 是否为广告模式,非广告模式使用事件通知上层进行页面跳转
95
+ */
96
+ isPoster:{
97
+ type:Boolean,
98
+ default: false,
99
+ },
100
+ iconErrorUrl: {
101
+ type:String,
102
+ required: true,
103
+ },
104
+ time:{
105
+ type: Number,
106
+ default: 5
107
+ },
108
+ enterList:{
109
+ type: Array|null,
110
+ default: null
111
+ },
112
+ mode:{
113
+ type: String,
114
+ default:'round'
115
+ },
116
+ mainColor:{
117
+ type:String,
118
+ required: true
119
+ }
120
+ },
121
+
122
+ computed:{
123
+ //maps
124
+ columnSpacing(){
125
+ return this.config.columnSpacing
126
+ },
127
+ rowSpacing(){
128
+ return this.config.rowSpacing
129
+ },
130
+ column(){
131
+ return this.config.column
132
+ },
133
+ row(){
134
+ return this.config.row
135
+ },
136
+ //外填充样式
137
+ boxStyleComp(){
138
+ return {
139
+ padding: this.config.wrapperPadding,
140
+ boxSizing:'border-box'
141
+ }
142
+ },
143
+ dotStyleData(){
144
+ return this.dotStyleDataConf()[this.mode];
145
+ },
146
+ enterListComp(){
147
+ let temp = [];
148
+ let page_token = this.column * this.row;
149
+ let len = Math.ceil(this.enterList.length/page_token);
150
+ for(let i=0; i < len; i++) {
151
+ temp.push(this.$xdUniHelper.getLocalPaginationData(this.enterList, i+1,page_token));
152
+ }
153
+ return temp;
154
+ },
155
+ //icon盒子样式设置
156
+ itemImageComp(){
157
+ return {
158
+ width: this.itemWidth + 'px',
159
+ height: this.itemWidth + 'px',
160
+ padding: this.iconSize + 'rpx',
161
+ boxSizing:'border-box',
162
+ ...this.config.iconBoxStyle
163
+ }
164
+ },
165
+
166
+ //图标列表宽度
167
+ itemWidth(){
168
+ return (this.config.outWidth - (this.column - 1) * this.columnSpacing * this.$rpxNum)/this.column;
169
+ },
170
+
171
+ //图标列表样式
172
+ itemStyleComp(){
173
+ return {
174
+ width: this.itemWidth + 'px',
175
+ height: (this.itemWidth + this.textHeight*this.$rpxNum) + 'px',
176
+ }
177
+ },
178
+
179
+ outStyleBoxComp(){
180
+ return this.styleBox();
181
+ },
182
+
183
+ inStyleBoxComp(){
184
+ return this.styleBox('in');
185
+ },
186
+
187
+
188
+ },
189
+
190
+ data(){
191
+ return {
192
+ current:0,
193
+ dotStyleDataConf(){
194
+ let alpha = 0.6;
195
+ let selectedColor = `rgba(${Color(this.mainColor).alpha(alpha).array().join(',')})`;
196
+ let textColor = `rgba(${Color(this.mainColor).alpha(0.2).array().join(',')})`;
197
+ return {
198
+ dot: {
199
+ backgroundColor: 'rgba(166,166,166,.5)',
200
+ border: '0px rgba(166,166,166,.5) solid',
201
+ color: '#fff',
202
+ selectedBackgroundColor: selectedColor,
203
+ selectedBorder: `0px this.mainColor solid`
204
+ },
205
+ default: {
206
+ width: 16,
207
+ backgroundColor: 'rgba(200,200,200,.45)',
208
+ border: '1px rgba(200,200,200,.45) solid',
209
+ color: '#fff',
210
+ selectedBackgroundColor: selectedColor,
211
+ selectedBorder: `1px this.mainColor solid`
212
+ },
213
+ round: {
214
+ backgroundColor: 'rgba(166,166,166,.5)',
215
+ border: '0px rgba(166,166,166,.5) solid',
216
+ color: '#fff',
217
+ selectedBackgroundColor: selectedColor,
218
+ selectedBorder: `0px this.mainColor solid`
219
+ },
220
+ nav: {
221
+ backgroundColor: selectedColor,
222
+ border: '1px rgba(0,0,0,.2) solid',
223
+ color: '#fff',
224
+ selectedBackgroundColor: selectedColor,
225
+ selectedBorder: '1px rgba(255, 255, 255 1) solid'
226
+ },
227
+ indexes: {
228
+ backgroundColor: textColor,
229
+ border: '0px rgba(0,0,0,.2) solid',
230
+ color: '#fff',
231
+ selectedBackgroundColor: selectedColor,
232
+ selectedBorder: '0px rgba(0,0,0,.8) solid',
233
+ selectedColor: '#fff',
234
+ }
235
+ }
236
+ },
237
+ textHeight: 40,
238
+ indexHeight: 46,
239
+ }
240
+ },
241
+ methods:{
242
+ getCNDUrl(url) {
243
+ return getServiceUrl(url,'size3')
244
+ },
245
+ styleBox(out='out'){
246
+ let boxPaddingBT = this.config.wrapperPaddingTB * this.$rpxNum
247
+ let height = this.itemWidth * (this.row);
248
+ let text = this.textHeight * this.row * this.$rpxNum;
249
+ let columnSpacings = this.rowSpacing * (this.row -1) * this.$rpxNum;
250
+ let modeHeight = this.indexHeight * this.$rpxNum;
251
+ if(this.mode === "normal") modeHeight = 10 * this.$rpxNum;
252
+ if(out === 'in') modeHeight = 0;
253
+
254
+ return {
255
+ width: '100%',
256
+ height: (height + columnSpacings + modeHeight + text + boxPaddingBT) + 'px'
257
+ }
258
+ },
259
+
260
+ handlePosterClick(item,index){
261
+ if(!this.isPoster) {
262
+ this.$emit('on-detail', {item,index});
263
+ return;
264
+ }
265
+
266
+ if(!item.redirect_data) {
267
+ console.warn(`未配置链接地址: ${item.redirect_data}`);
268
+ console.error(`未配置链接地址: ${item.redirect_data}`);
269
+ return
270
+ }
271
+
272
+ //内部链接跳转地址
273
+ if (item.redirect_type === 'INN') {
274
+ try {
275
+ let url = JSON.parse(item.redirect_data);
276
+ let params = '';
277
+ if(url.page) {
278
+ if (item['redirect_params']) params = `?${item['redirect_params']}`;
279
+ this.$xdUniHelper.navigateTo({url: url.page + params})
280
+ }
281
+ else {
282
+ console.error(`应用链接配置错误: ${url.page}`)
283
+ }
284
+ } catch (e) {
285
+ console.error(`应用链接配置错误: ${item.redirect_data}`)
286
+ }
287
+ }
288
+
289
+ //外部链接
290
+ if (item.redirect_type === 'URL') {
291
+ let reg = /^(http:\/\/|https:\/\/|\/\/)+.+$/;
292
+ let spReg = /(-apiuri\/v)/;
293
+ //#ifdef MP-WEIXIN
294
+ try {
295
+ let url = JSON.parse(item.redirect_data);
296
+ if (reg.test(url.url) || spReg.test(url.url)) {
297
+ console.warn(`广告跳转外站: ${url.url}`)
298
+ this.$xdUniHelper.navigateTo(url);
299
+ } else {
300
+ console.error(`广告跳转外站配置错误: ${url.url}`)
301
+ }
302
+ } catch (e) {
303
+ console.error(`广告跳转外站配置错误: ${item.redirect_data}`)
304
+ }
305
+ //#endif
306
+ //#ifdef H5
307
+ try {
308
+ let url = JSON.parse(item.redirect_data);
309
+ console.warn(`广告跳转外站: ${url.url}`);
310
+ this.$xdUniHelper.redirectTo(url, false)
311
+ } catch (e) {
312
+ console.error(`广告跳转外站配置错误: ${item.redirect_data}`)
313
+ }
314
+ //#endif
315
+
316
+ }
317
+
318
+ //无跳转地址
319
+ if(item.redirect_type === 'EMP') {
320
+ console.warn(`无跳转地址`);
321
+ }
322
+ },
323
+
324
+ handleChange(e){
325
+ this.current = e.detail.current;
326
+ },
327
+
328
+ handleAnimationFinish(e){
329
+ },
330
+ }
331
+ }
332
+
333
+ </script>
334
+
335
+
336
+ <style scoped lang="less">
337
+ .swiper-list {
338
+ display: flex;
339
+ justify-content: flex-start;
340
+ align-items: flex-start;
341
+ flex-flow: wrap;
342
+ flex-shrink: 0;
343
+
344
+ & > view {
345
+ flex-shrink: 0;
346
+ }
347
+
348
+ .list-image {
349
+ display: flex;
350
+ justify-content: center;
351
+ align-items: center;
352
+ }
353
+
354
+ .list-title {
355
+ text-align: center;
356
+ font-size: 24rpx;
357
+ color: #666;
358
+ line-height: 40rpx;
359
+ .uni-one-cut(40);
360
+ padding: 0 6rpx;
361
+ }
362
+
363
+ & image {
364
+ width:100%;
365
+ height: 100%;
366
+ }
367
+ }
368
+ </style>