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,763 @@
1
+ <template>
2
+ <view
3
+ class="product"
4
+ :class="{
5
+ two: cell >= 2 ,
6
+ one: (cell === 1 && columnOneLayout === 'H'),
7
+ oneV: (cell === 1 && columnOneLayout === 'V')
8
+ }"
9
+ @click="handleDetail()"
10
+ >
11
+ <view
12
+ class="product-image"
13
+ :style="{
14
+ marginRight: (cell === 1 ? (cellSpacing + 'rpx'):0),
15
+ marginBottom: (cell === 1&& columnOneLayout ==='H' ? 0: (cellSpacing + 'rpx')),
16
+ width: (cell === 1 ? '240rpx': '100%'),
17
+ height: (cell === 1 && columnOneLayout ==='H' ? '240rpx': (height + 'rpx')),
18
+ backgroundColor: '#f8f8f8',
19
+ borderRadius: imageRadius + 'rpx',
20
+ }"
21
+ >
22
+ <image v-if="errorStatus" :src="errorImage" :alt="item['product_name']" ></image>
23
+ <image v-if="!errorStatus" :src="imageUrl" :alt="item['product_name']" @error="handleError(item)"></image>
24
+ <xd-product-status :status="item['status']"></xd-product-status>
25
+ <view class="tagL" :style="[imgLs.length?imgLs[0]['css']:{},{top:imageRadius + 'rpx'}]" v-if="imgLs.length">{{imgLs[0].label}}</view>
26
+ <view class="tagR" :style="[imgRs.length?imgRs[0]['css']:{},{top:imageRadius + 'rpx'}]" v-if="imgRs.length">{{imgRs[0].label}}</view>
27
+ </view>
28
+ <view class="product-content">
29
+ <view class="product-content-info">
30
+ <view
31
+ v-if="cell === 3"
32
+ class="name showThree"
33
+ :style="[nameFontComp,cutStringComp]"
34
+ >
35
+ <view class="nameTags" v-if="beTitles.length > 0">
36
+ <view :key="beTitle.label" :style="[beTitle.css,cusTagComp]" v-for="beTitle in beTitles">{{beTitle.label}}</view>
37
+ </view>
38
+ <view class="nameCont" :style="{fontSize:columnOneLayout !=='H'?'32rpx': '28rpx'}">{{cusName}}</view>
39
+ </view>
40
+ <view
41
+ v-else
42
+ class="name"
43
+ :style="[nameFontComp,cutStringComp]"
44
+ :class="{showOne: isOne}"
45
+ >
46
+ <view class="nameTags" :style="{verticalAlign:columnOneLayout ==='V'?'middle':'top'}" v-if="beTitles.length > 0">
47
+ <view :key="beTitle.label" :style="[beTitle.css,cusTagComp]" v-for="beTitle in beTitles">{{beTitle.label}}</view>
48
+ </view>
49
+ <view class="nameCont" :style="{fontSize:columnOneLayout !=='H'?'32rpx': '28rpx'}">{{cusName}}</view>
50
+ </view>
51
+ <view class="brandBox" v-if="productConfig.is_show_brand==='Y' || params.length > 0">
52
+ <view
53
+ class="brand"
54
+ v-if="productConfig.is_show_brand==='Y'"
55
+ :style="[brandStyle]"
56
+ >{{item['brand_name']}}</view>
57
+ <template v-for="(param,pIndex) in params">
58
+ <view v-if="productConfig.is_show_brand==='Y' || pIndex >= 1" class="brand" :style="[param.css,{padding: '0 6rpx',fontSize: '20rpx'}]">|</view>
59
+ <view class="brand" :style="[param.css]">{{param.label}}</view>
60
+ </template>
61
+ </view>
62
+ <view
63
+ v-if="tags.length > 0"
64
+ class="tags"
65
+ :class="{showTwo:!isOne, showThree: cell === 3}"
66
+ :style="[showThreeTagsStyle]"
67
+ >
68
+ <view
69
+ v-for="(tag,index) in tags"
70
+ :key="index"
71
+ class="_tag"
72
+ :style="[tag.css]"
73
+ >{{tag.label}}</view>
74
+ </view>
75
+ </view>
76
+ <view class="product-content-btn" v-if="isBtn" :class="{twoThree: isBtnHasMarginTop}">
77
+ <view :class="{onePrice: onePrice, showThree: isPriceTwoRow }">
78
+ <CusPrice v-if="productConfig.isPrice === 'Y'" :type="priceType" :isPlus="isPlus" :key="priceKey" :showPrice="showPriceComp"></CusPrice>
79
+ </view>
80
+ <view
81
+ :class="{'cart-btn-auto': !isIcon}"
82
+ :style="{height:cartSize+'rpx', width: cartSize + 'rpx',position:'absolute',right:0,bottom:0,zIndex: 300}"
83
+ v-if="isShowCart && colorComp"
84
+ >
85
+ <view @click.stop="handleDetail('Y')">
86
+ <xd-font-icon
87
+ v-if="isIcon"
88
+ :icon="cartIcon"
89
+ :color="colorComp"
90
+ :size="cartSize"
91
+ ></xd-font-icon>
92
+ <view v-else :style="[{color: colorComp},iconStyleComp,cartTextSize]" class="cart-btn">{{productConfig.cartName}}</view>
93
+ </view>
94
+ </view>
95
+ </view>
96
+ </view>
97
+ </view>
98
+ </template>
99
+
100
+ <script>
101
+ import getServiceUrl from "@/common/getServiceUrl";
102
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon.vue";
103
+ import XdProductStatus from "@/components/XdProductStatus/XdProductStatus";
104
+ import XdUnit from "@/components/XdUnit/XdUnit.vue";
105
+ import Color from "color";
106
+ import CusPrice from '@/components/CusPrice/CusPrice.vue'
107
+ import {getParentsStyles} from "@/utils/xd.base";
108
+ import mpLoadingGVarMixins from "@/mixins/mpLoadingGVarMixins";
109
+
110
+ export default {
111
+ name: "CusProduct",
112
+ components:{
113
+ XdFontIcon,
114
+ XdUnit,
115
+ XdProductStatus,
116
+ CusPrice
117
+ },
118
+ mixins:[mpLoadingGVarMixins],
119
+ props:{
120
+ keyword:{
121
+ type:String,
122
+ default:''
123
+ },
124
+ //一列(水平/垂直)布局
125
+ columnOneLayout:{
126
+ type:String,
127
+ default:'H'
128
+ },
129
+ nameFont: {
130
+ type:Object,
131
+ default(){
132
+ return {}
133
+ }
134
+ },
135
+
136
+ height:{
137
+ type:Number|String,
138
+ default:"auto",
139
+ },
140
+
141
+ item:Object,
142
+ cellSpacing: {
143
+ type: Number|String,
144
+ default: 20
145
+ },
146
+ color:{
147
+ type:String,
148
+ default:'',
149
+ },
150
+ brandColor:{
151
+ type: String|Object,
152
+ default: '#999'
153
+ },
154
+ oldPriceColor: {
155
+ type: String,
156
+ default: '#999'
157
+ },
158
+ imageRadius:{
159
+ type: String|Number,
160
+ default: '10'
161
+ },
162
+ cell:{
163
+ type: Number|String,
164
+ required: true
165
+ },
166
+ productConfig:{
167
+ type:Object|null,
168
+ default: null
169
+ },
170
+ isPlus: {
171
+ type: Boolean,
172
+ default: false
173
+ },
174
+ },
175
+ computed:{
176
+ cutStringComp(){
177
+ return this.$root.getCutString(this.cell === 3?1:2, this.columnOneLayout !=='H'?32: 28)
178
+ },
179
+ nameFontComp(){
180
+ if(this.$xdUniHelper.isEmpty(this.nameFont)) return {
181
+ color: '#333',
182
+ fontWeight: '500',
183
+
184
+ };
185
+ return {
186
+ color: this.nameFont.color || '#333',
187
+ fontWeight: this.nameFont.fontWeight || '500',
188
+ }
189
+ },
190
+ isBtnHasMarginTop(){
191
+ return !(this.tags.length > 0 || (this.productConfig.is_show_brand === 'Y' || this.params.length > 0));
192
+ },
193
+ showPriceComp(){
194
+ if(this.$configProject['isPreview']) {
195
+ if(this.isPlus) return this.item['show_prices'];
196
+ else {
197
+ return this.item['show_prices'].map(it=>{
198
+ if(it.p > 1000000) it.p = Math.floor(this.$xdUniHelper.divisionFloatNumber(it.p, 10));
199
+ return it
200
+ })
201
+ }
202
+ }
203
+ else return this.item['show_prices']
204
+ },
205
+ isShowCart(){
206
+ if(this.productConfig.isAddCart === 'N') return false;
207
+ else if(this.productConfig.isAddCart === 'Y') {
208
+ return !(this.cell === 3 && this.isPlus);
209
+ }else {
210
+ return false
211
+ }
212
+ },
213
+ cusTagComp(){
214
+ //debugger
215
+ if(this.cell === 1 && this.columnOneLayout !== 'H') {
216
+ return {
217
+ padding: '0 16rpx',
218
+ borderRadius: '12rpx',
219
+ fontSize: '28rpx',
220
+ }
221
+ }
222
+ return {
223
+ padding: '0 16rpx',
224
+ }
225
+ },
226
+ cartSize(){
227
+ let size = '52'
228
+ if(this.cell === 1) {
229
+ if(this.columnOneLayout === 'H') size = '52'
230
+ else size = '64'
231
+ }
232
+ if(this.cell === 3) size = '40'
233
+ return size
234
+ },
235
+ cartTextSize(){
236
+ let size = '24rpx'
237
+ let lh = '44rpx'
238
+ let padding = '0 16rpx 0rpx';
239
+
240
+ if(this.cell === 1) {
241
+ if(this.columnOneLayout === 'H'){
242
+ lh = '44rpx'
243
+ size = '24rpx'
244
+ padding = '0 20rpx 0'
245
+ }
246
+ else {
247
+ size = '32rpx'
248
+ lh = '64rpx'
249
+ padding = '0 32rpx 0'
250
+ }
251
+ }
252
+ return {
253
+ fontSize:size,
254
+ lineHeight: lh,
255
+ padding,
256
+ }
257
+ },
258
+ brandStyle(){
259
+ if(typeof this.brandColor === 'string') return {color:this.brandColor}
260
+ else {
261
+ let isBgColor = true;
262
+ let isBorColor = true;
263
+
264
+ if(!this.brandColor.bgColor ||
265
+ (this.brandColor.bgColor && Color(this.brandColor.bgColor).toString() === 'rgba(0, 0, 0, 0)')
266
+ ) isBgColor = false;
267
+ if(!this.brandColor.borderColor ||
268
+ (this.brandColor.borderColor && Color(this.brandColor.borderColor).toString() === 'rgba(0, 0, 0, 0)')
269
+ ) isBorColor = false;
270
+
271
+ let padding = '0';
272
+ let bgColor = 'rgb(0, 0, 0, 0)';
273
+ let border = '0';
274
+ let borderRadius = 0
275
+ let marginTop = 0;
276
+ if(isBgColor || isBorColor){
277
+ padding = '0 10rpx';
278
+ borderRadius = '10rpx'
279
+ if(isBgColor) bgColor = this.brandColor.bgColor;
280
+ if(isBorColor){
281
+ border = `2rpx solid ${this.brandColor.borderColor}`;
282
+ }
283
+ }
284
+ return {
285
+ border: border,
286
+ backgroundColor: bgColor,
287
+ color: this.brandColor.color,
288
+ padding,
289
+ borderRadius,
290
+ marginTop
291
+ }
292
+ }
293
+ },
294
+ isPriceTwoRow(){
295
+ if(this.cell === 3) {
296
+ if(this.productConfig.isPrice === 'N') return false;
297
+ else if(this.productConfig.isShowDiscount === 'N') return false
298
+ return true;
299
+ }
300
+ return false
301
+ },
302
+ onePrice(){
303
+ if(this.cell === 1) return true;
304
+ if(this.cell === 3) return false;
305
+ if(this.cell === 2) return false;
306
+ },
307
+ cusName(){
308
+ return this.item['product_name'] || this.item['list_title']
309
+ },
310
+ imageUrl(){
311
+ if(!this.item['thumb']) return getServiceUrl('/common/empty/product.png?v1=1','size4')
312
+ return getServiceUrl(this.item['thumb'], 'size4')
313
+ },
314
+ isOne(){
315
+ let status = false;
316
+ if(this.cell === 1 && this.columnOneLayout ==='H') status = false
317
+ return status
318
+ },
319
+ isBtn(){
320
+ return this.productConfig.isPrice === 'Y' || this.productConfig.isAddCart === 'Y'
321
+ },
322
+ dividePrice() {
323
+ return this.$xdUniHelper.divisionFloatNumber(this.item.market_price, 100);
324
+ },
325
+ colorComp(){
326
+ return this.color || this.mainColor
327
+ },
328
+ showThreeTagsStyle() {
329
+ if(this.cell === 3) {
330
+ return {height:'40rpx'}
331
+ }
332
+ return {}
333
+ },
334
+ priceType(){
335
+ if(this.cell === 3) return 'three'
336
+ if(this.cell === 2) return 'two'
337
+ if(this.cell === 1) return 'one'
338
+ },
339
+ cartIcon(){
340
+ return this.productConfig.cartIcon || 'icongouwuche-01';
341
+ },
342
+ isIcon(){
343
+ return this.cartIcon.indexOf('btn_cart') === -1
344
+ },
345
+ iconStyleComp(){
346
+ if(this.isIcon === false){
347
+ let css = this.cartIcon.split('_')[1];
348
+ let bgColor ='#fff', border = 0, radius = 0, color = this.color || this.m;
349
+ switch (css) {
350
+ case 'cartFPlain':
351
+ border = `1px solid ${color}`;
352
+ break;
353
+ case 'cartFFull':
354
+ color = '#fff'
355
+ bgColor = this.color;
356
+ break;
357
+ case 'cartCPlain':
358
+ border = `1px solid ${color}`;
359
+ radius = '22rpx';
360
+ if(this.cell === 1 && this.columnOneLayout !== 'H') radius = '32rpx';
361
+ break;
362
+ case 'cartCFull':
363
+ color = '#fff'
364
+ bgColor = this.color;
365
+ radius = '22rpx';
366
+ if(this.cell === 1 && this.columnOneLayout !== 'H') radius = '32rpx';
367
+ break;
368
+ default:
369
+ break;
370
+ }
371
+ return {
372
+ color: color,
373
+ backgroundColor: bgColor,
374
+ border,
375
+ borderRadius:radius,
376
+ }
377
+ }
378
+ return {}
379
+ },
380
+ },
381
+ watch:{
382
+ item(){
383
+ this.tags = [];
384
+ this.beTitles = [];
385
+ this.imgRs = [];
386
+ this.imgLs = [];
387
+ this.params = [];
388
+ this.handleTagsInit();
389
+ },
390
+ showPriceComp() {
391
+ this.priceKey = new Date().getTime();
392
+ }
393
+ },
394
+ data(){
395
+ return {
396
+ tagObj: null,
397
+ tagObjColor: null,
398
+ errorStatus: false,
399
+ errorImage:'',
400
+ tags:[],
401
+ beTitles:[],
402
+ imgRs:[],
403
+ imgLs:[],
404
+ params:[],
405
+ mainColor: '',
406
+ priceKey: 'priceKey'
407
+ }
408
+ },
409
+ async created() {
410
+ let style = await getParentsStyles(this.$parent);
411
+ this.mainColor = style.$mainColor;
412
+ this.tagObj = this.$colorConfig.productTags;
413
+ this.tagObjColor = this.$colorConfig.productTagsColor;
414
+ this.errorImage = getServiceUrl('/common/empty/product.png?v1=1','size4');
415
+ this.handleTagsInit();
416
+ },
417
+ methods:{
418
+ handleTagsInit(){
419
+ if(this.item.tags && this.item.tags.length > 0) {
420
+ this.item.tags.map(it=>{
421
+ if(it['style']){
422
+ let flag = this.$colorConfig['tagStyle'][it['style']];
423
+ if(flag.radius) {
424
+ it.css = this.btnStyleComp(flag,flag.radius);
425
+ }
426
+ else it.css = this.btnStyleComp(flag);
427
+ }
428
+ else {
429
+ it.css = this.btnStyleComp(this.$colorConfig['tagStyle']['GR4']);
430
+ }
431
+ if(it.pos === 'tag') this.tags.push(it);
432
+ else if(it.pos === 'beTitle') this.beTitles.push(it);
433
+ else if(it.pos === 'imgR') this.imgRs.push(it);
434
+ else if(it.pos === 'imgL') this.imgLs.push(it);
435
+ else if(it.pos === 'param') this.params.push(it);
436
+ else this.tags.push(it);
437
+ })
438
+ }
439
+ },
440
+ handleError(item){
441
+ this.errorStatus = true;
442
+ },
443
+ handleDetail(type='N'){
444
+ this.$emit('on-product-detail', {isCart:type,...this.item});
445
+ },
446
+ btnStyleComp({style, color, bgColor}, cusRadius='8rpx'){
447
+ let c = '',bgc = '', border = 0, radius = 0, padding='0 10rpx';
448
+ if(style) {
449
+ switch (style) {
450
+ case 'css1':
451
+ c = color || '#999';
452
+ padding = 0;
453
+ break;
454
+ case 'css2':
455
+ c = color || '#999';
456
+ bgc = bgColor;
457
+ radius = cusRadius;
458
+ break;
459
+ case 'css3':
460
+ c = color || '#999';
461
+ bgc = bgColor;
462
+ break;
463
+ case 'css4':
464
+ c = color ||'#999';
465
+ bgc = bgColor ||'#fff';
466
+ radius = cusRadius;
467
+ border = `1px solid rgba(${Color(c).alpha(0.3).array().join(',')})`;
468
+ break;
469
+ case 'css5':
470
+ c = color ||'#999';
471
+ bgc = bgColor ||'#fff';
472
+ radius = '0';
473
+ border = `1px solid rgba(${Color(c).alpha(0.3).array().join(',')})`;
474
+ break;
475
+ case 'css6':
476
+ c = color ||'#999';
477
+ bgc = bgColor || '#fff';
478
+ radius = cusRadius;
479
+ border = `1px solid ${c}`
480
+ break;
481
+ case 'css7':
482
+ c = color ||'#999';
483
+ bgc = bgColor || '#fff';
484
+ radius = '0';
485
+ border = `1px solid ${c}`
486
+ break;
487
+ case 'css8':
488
+ c = color||'#fff';
489
+ bgc = bgColor;
490
+ radius = cusRadius;
491
+ break;
492
+ case 'css9':
493
+ c = color||'#fff';
494
+ bgc = bgColor;
495
+ break;
496
+ case 'cssL':
497
+ c = color;
498
+ bgc = bgColor;
499
+ radius = `0 ${cusRadius} ${cusRadius} 0`;
500
+ padding = '0 20rpx 0 10rpx'
501
+ break;
502
+ case 'cssR':
503
+ c = color;
504
+ bgc = bgColor;
505
+ radius = `${cusRadius} 0 0 ${cusRadius}`;
506
+ padding = '0 10rpx 0 20rpx'
507
+ break;
508
+ default:
509
+ c = color ||'#999'
510
+ padding = 0;
511
+ break;
512
+ }
513
+ return {
514
+ color: c,
515
+ backgroundColor: bgc,
516
+ border,
517
+ borderRadius:radius,
518
+ padding
519
+ }
520
+ }
521
+ else return {}
522
+ },
523
+ }
524
+ }
525
+ </script>
526
+
527
+
528
+
529
+ <style scoped lang="less">
530
+ .product {
531
+
532
+ &.oneV {
533
+ .product-image {
534
+ flex-shrink: 0;
535
+ position: relative;
536
+ width: 100%!important;
537
+ }
538
+
539
+ .product-content {
540
+ }
541
+ }
542
+
543
+ &.one {
544
+ display: flex;
545
+ justify-content: space-between;
546
+ align-items: flex-start;
547
+
548
+ .product-image {
549
+ flex-shrink: 0;
550
+ position: relative;
551
+ }
552
+
553
+ .product-content {
554
+ flex: 1;
555
+ min-height: 240rpx;
556
+ display: flex;
557
+ justify-content: flex-start;
558
+ flex-flow: wrap;
559
+ align-content: space-between;
560
+ }
561
+ }
562
+
563
+ &.two {
564
+ .product-image {
565
+ width: 100%;
566
+ display: flex;
567
+ flex-shrink: 0;
568
+ justify-content: center;
569
+ align-items: center;
570
+ position: relative;
571
+ & > image {
572
+ height: 100%;
573
+ width: 100%;
574
+ }
575
+ }
576
+
577
+ }
578
+
579
+ &-image {
580
+ overflow: hidden;
581
+ & > image {
582
+ height: 100%;
583
+ width: 100%;
584
+ }
585
+
586
+ & .tagL {
587
+ position: absolute;
588
+ left: 0;
589
+ font-size: 20rpx;
590
+ line-height: 40rpx;
591
+ }
592
+
593
+ & .tagR {
594
+ position: absolute;
595
+ right: 0;
596
+ font-size: 20rpx;
597
+ line-height: 40rpx;
598
+ }
599
+ }
600
+
601
+ &-content {
602
+ overflow: hidden;
603
+ &-info {
604
+
605
+ }
606
+
607
+ &-btn {
608
+ width: 100%;
609
+ display: flex;
610
+ justify-content: space-between;
611
+ align-items: center;
612
+ position: relative;
613
+
614
+ &.twoThree {
615
+ margin-top: 18rpx;
616
+ }
617
+
618
+ & .showThree {
619
+ height: 72rpx;
620
+ display: flex;
621
+ justify-content: flex-start;
622
+ align-items: center;
623
+ flex-flow: wrap;
624
+ & > view {
625
+ width: 100%;
626
+ flex-shrink: 0;
627
+ }
628
+ }
629
+
630
+ .onePrice {
631
+ display: flex;
632
+ justify-content: flex-start;
633
+ align-items: center;
634
+
635
+ & > view:nth-child(2) {
636
+ margin-left: 20rpx;
637
+ }
638
+ }
639
+
640
+ & > view:first-child {
641
+ flex: 1;
642
+ & > view:first-child {
643
+ display: flex;
644
+ justify-content: flex-start;
645
+ align-items: center;
646
+ overflow: hidden;
647
+ }
648
+ & > view:nth-child(2) {
649
+ line-height: 30rpx;
650
+ }
651
+ }
652
+
653
+
654
+
655
+ & > view:nth-child(2) {
656
+ flex-shrink: 0;
657
+ width: 40rpx;
658
+ height: 40rpx;
659
+ display: flex;
660
+ justify-content: center;
661
+ align-items: center;
662
+ cursor: pointer;
663
+ }
664
+
665
+ .oldPrice {
666
+ margin-left: 6rpx;
667
+ }
668
+
669
+ & .cart-btn-auto {
670
+ width: auto!important;
671
+ }
672
+ }
673
+
674
+ & .name {
675
+ margin-bottom: 10rpx;
676
+
677
+ & .nameTags {
678
+ display: inline-block;
679
+ vertical-align: top;
680
+
681
+ & > view {
682
+ display: inline-block;
683
+ vertical-align: top;
684
+ font-size: 22rpx;
685
+ margin-right: 10rpx;
686
+ }
687
+ }
688
+
689
+ & .nameCont {
690
+ line-height: 1.5;
691
+ display: inline;
692
+ }
693
+
694
+ &.showThree {
695
+ .uni-max-cut(1,40);
696
+ margin-bottom: 10rpx;
697
+ }
698
+ &.showOne {
699
+ .uni-max-cut(1,40);
700
+ }
701
+ }
702
+
703
+
704
+
705
+ & .brandBox {
706
+ width: 100%;
707
+ margin-bottom: 16rpx;
708
+ font-size: 24rpx;
709
+ .uni-max-cut(1,40);
710
+ box-sizing: border-box;
711
+
712
+ & > view {
713
+ height: 36rpx;
714
+ display: inline-block;
715
+ vertical-align: middle;
716
+ line-height: 36rpx;
717
+ box-sizing: border-box;
718
+ overflow: hidden;
719
+ }
720
+
721
+
722
+ }
723
+
724
+ & .tags {
725
+ display: flex;
726
+ justify-content: flex-start;
727
+ align-content: flex-start;
728
+ flex-flow: wrap;
729
+ width: 100%;
730
+
731
+ &.showThree {
732
+ overflow: hidden;
733
+ max-height: 40rpx;
734
+ }
735
+
736
+ &.showTwo {
737
+ & > view{
738
+ margin-bottom: 8rpx;
739
+ }
740
+ }
741
+
742
+ & > view {
743
+ padding: 0 16rpx;
744
+ line-height: 34rpx;
745
+ font-size: 20rpx;
746
+ color:#fff;
747
+ margin-right: 10rpx;
748
+
749
+ &:last-child {
750
+ margin-right: 0;
751
+ }
752
+
753
+ }
754
+ }
755
+
756
+ & .cart-btn {
757
+ padding: 0 .5rem;
758
+ box-sizing: border-box;
759
+ }
760
+
761
+ }
762
+ }
763
+ </style>