jufubao-base 1.0.232-beta5 → 1.0.232-beta6

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 (45) hide show
  1. package/package.json +1 -1
  2. package/src/components/JfbBaseBalance/Api.js +18 -30
  3. package/src/components/JfbBaseBalance/Attr.js +292 -24
  4. package/src/components/JfbBaseBalance/JfbBaseBalance.vue +250 -32
  5. package/src/components/JfbBaseCodeOpenVip/Api.js +17 -39
  6. package/src/components/JfbBaseCodeOpenVip/Attr.js +19 -0
  7. package/src/components/JfbBaseCodeOpenVip/JfbBaseCodeOpenVip.vue +52 -23
  8. package/src/components/JfbBaseOpenVip/Api.js +11 -40
  9. package/src/components/JfbBaseOpenVip/Attr.js +4 -4
  10. package/src/components/JfbBaseOpenVip/JfbBaseOpenVip.vue +68 -25
  11. package/src/components/JfbBaseOpenVip/Mock.js +16 -9
  12. package/src/components/JfbBaseOpenVip/XdVipList.vue +44 -6
  13. package/src/components/JfbBaseOpenVipDetail/Api.js +17 -39
  14. package/src/components/JfbBaseOpenVipDetail/Attr.js +16 -27
  15. package/src/components/JfbBaseOpenVipDetail/JfbBaseOpenVipDetail.vue +108 -23
  16. package/src/components/JfbBasePersonalData/Api.js +9 -41
  17. package/src/components/JfbBasePersonalData/Attr.js +1 -37
  18. package/src/components/JfbBasePersonalData/JfbBasePersonalData.vue +43 -21
  19. package/src/components/JfbBasePointsCard/Api.js +4 -44
  20. package/src/components/JfbBasePointsCard/Attr.js +0 -48
  21. package/src/components/JfbBasePointsCard/JfbBasePointsCard.vue +24 -107
  22. package/src/components/JfbBasePointsCard/Mock.js +1 -9
  23. package/src/components/JfbBasePointsDetail/Api.js +25 -0
  24. package/src/components/JfbBasePointsDetail/JfbBasePointsDetail.vue +65 -20
  25. package/src/components/JfbBasePointsDetail/Mock.js +2 -8
  26. package/src/components/JfbBaseSavingDetail/Api.js +12 -29
  27. package/src/components/JfbBaseSavingDetail/Attr.js +44 -22
  28. package/src/components/JfbBaseSavingDetail/JfbBaseSavingDetail.vue +593 -29
  29. package/src/components/JfbBaseSavingDetail/components/echarts.min.js +26 -0
  30. package/src/components/JfbBaseSavingDetail/components/echarts.vue +254 -0
  31. package/src/components/JfbBaseSavingDetail/components/wx-canvas.js +105 -0
  32. package/src/components/JfbBaseShare/Api.js +5 -43
  33. package/src/components/JfbBaseShare/JfbBaseShare.vue +13 -12
  34. package/src/components/JfbBaseTfkSearch/ContentProduct.vue +1 -20
  35. package/src/components/JfbBaseTfkSearch/JfbBaseTfkSearch.vue +5 -0
  36. package/src/components/JfbBaseUserInfo/JfbBaseUserInfo.vue +5 -1
  37. package/src/components/JfbBaseWithDrawAgain/Api.js +13 -30
  38. package/src/components/JfbBaseWithDrawAgain/Attr.js +70 -26
  39. package/src/components/JfbBaseWithDrawAgain/JfbBaseWithDrawAgain.vue +255 -32
  40. package/src/components/JfbBaseWithDrawRecord/Api.js +4 -43
  41. package/src/components/JfbBaseWithDrawRecord/Attr.js +56 -25
  42. package/src/components/JfbBaseWithDrawRecord/JfbBaseWithDrawRecord.vue +151 -34
  43. package/src/components/JfbBaseWithdraw/Api.js +20 -30
  44. package/src/components/JfbBaseWithdraw/Attr.js +304 -24
  45. package/src/components/JfbBaseWithdraw/JfbBaseWithdraw.vue +166 -32
@@ -1,20 +1,78 @@
1
1
  <template>
2
- <view
3
- class="jfb-base-saving-detail"
4
- @click="handleEditxSelect"
5
- :class="{ editx : isEditx && active }"
6
- >
2
+ <view class="jfb-base-saving-detail" @click="handleEditxSelect" :class="{ editx : isEditx && active }">
7
3
  <!--#ifdef H5-->
8
- <view
9
- class="jfb-base-saving-detail__edit"
10
- :class="{ editx : isEditx && active }"
11
- v-if="isEditx && active"
12
- >
4
+ <view class="jfb-base-saving-detail__edit" :class="{ editx : isEditx && active }" v-if="isEditx && active">
13
5
  <view class="jfb-base-saving-detail__edit-icon" @click="delEdit">删除</view>
14
6
  </view>
15
7
  <!-- #endif -->
16
8
  <view class="jfb-base-saving-detail__body">
17
- <view>测试插件( {{containerId}} )</view>
9
+ <scroll-view scroll-x="true">
10
+ <view class="tab_list" :style="[tabStyleComp]">
11
+ <view class="tab_item" v-for="(tab, i) in tabs" :key="tab.value" :style="{
12
+ color: i === tabIndex? titleActColor : titleColor,
13
+ }" @click="switchTab(i)">
14
+ {{tab.label}}
15
+ <view v-if="i === tabIndex" class="check" :style="{background: titleActColor
16
+ }"></view>
17
+ <view class="check" v-else></view>
18
+ </view>
19
+
20
+ </view>
21
+ </scroll-view>
22
+ <view v-if="tab==='month'">
23
+ <view style="width: 710rpx;margin: 0 auto;borderRadius: 20rpx;background:#FFF">
24
+ <view class="jfb-base-saving-detail__body-month">
25
+ <view @click="handleLastMonth">上一月</view>
26
+ <view>{{monthDateRange}}</view>
27
+ <view @click="handleNextMonth">下一月</view>
28
+ </view>
29
+ <view style="width: 710rpx;height: 480rpx">
30
+ <echarts ref="monthEcharts" :option="option" canvasId="monthEcharts"></echarts>
31
+ </view>
32
+ <view class="jfb-base-saving-detail__body-block"></view>
33
+ </view>
34
+ </view>
35
+ <view v-if="tab==='year'">
36
+ <view style="width: 710rpx;margin: 0 auto;borderRadius: 20rpx;background:#FFF">
37
+ <view class="jfb-base-saving-detail__body-cycle">{{yearDateRange}}</view>
38
+ <view style="width: 710rpx;height: 480rpx">
39
+ <echarts ref="yearEcharts" :option="option" canvasId="yearEcharts"></echarts>
40
+ </view>
41
+ <view class="jfb-base-saving-detail__body-block"></view>
42
+ </view>
43
+ </view>
44
+ <view v-if="tab==='total'">
45
+ <view style="width: 710rpx;margin: 0 auto;borderRadius: 20rpx;background:#FFF">
46
+ <view class="jfb-base-saving-detail__body-cycle">{{totalDateRange}}</view>
47
+ <view style="width: 710rpx;height: 480rpx">
48
+ <echarts ref="totalEcharts" :option="option" canvasId="totalEcharts"></echarts>
49
+ </view>
50
+ <view class="jfb-base-saving-detail__body-block"></view>
51
+ </view>
52
+ </view>
53
+ <view class="jfb-base-saving-detail__body-product">
54
+ <view class="jfb-base-saving-detail__body-product-title">
55
+ <view>购物</view>
56
+ <view>已省:{{saveAmount}}</view>
57
+ </view>
58
+ <view v-if="productList.length>0">
59
+ <view v-for="(item,index) in productList" :key="index" class="jfb-base-saving-detail__body-product-item">
60
+ <image :src="item.product_image">
61
+ </image>
62
+ <view class="jfb-base-saving-detail__body-product-item-info">
63
+ <view class="jfb-base-saving-detail__body-product-item-info-name">{{item.product_name}}</view>
64
+ <view class="jfb-base-saving-detail__body-product-item-info-time">
65
+ <view>{{item.order_time}}</view>
66
+ <view>{{item.product_num}}件</view>
67
+ </view>
68
+ <view class="jfb-base-saving-detail__body-product-item-info-price">
69
+ <view>合计节省</view>
70
+ <view :style="{color:mainColor}">{{item.saving_amount/100}}</view>
71
+ </view>
72
+ </view>
73
+ </view> 
74
+ </view>
75
+ </view>
18
76
  </view>
19
77
  </view>
20
78
  </template>
@@ -24,61 +82,445 @@
24
82
  import { jfbRootExec } from "@/utils/xd.event";
25
83
  import JfbBaseSavingDetailMixin from "./JfbBaseSavingDetailMixin";
26
84
  import { getContainerPropsValue } from "@/utils/xd.base";
85
+ import echarts from './components/echarts.vue'
27
86
  import componentsMixins from "@/mixins/componentsMixins";
28
87
  import extsMixins from "@/mixins/extsMixins";
29
88
  export default {
30
89
  name: "JfbBaseSavingDetail",
31
90
  components: {
32
- XdFontIcon
91
+ XdFontIcon,
92
+ echarts
33
93
  },
34
94
  mixins: [
35
95
  componentsMixins, extsMixins, JfbBaseSavingDetailMixin
36
96
  ],
37
97
  data() {
38
98
  return {
39
-
40
- //todo
99
+ tabs: [
100
+ {
101
+ label: '月度',
102
+ value: 'month'
103
+ },
104
+ {
105
+ label: '年度',
106
+ value: 'year'
107
+ },
108
+ {
109
+ label: '累计',
110
+ value: 'total'
111
+ }
112
+ ],
113
+ //标题
114
+ titleBgc: '',
115
+ titleColor: '',
116
+ titleActColor: '',
117
+ titlePadding: '',
118
+ tabPadding: '',
119
+ tabIndex: 0,
120
+ tab: 'month',
121
+ option: null,
122
+ monthDateRange: '',
123
+ yearDateRange: '',
124
+ totalDateRange: '',
125
+ saveAmount: 0, //节省金额
126
+ productList: [],
127
+ hasNext: true,
128
+ page_token: 1
41
129
  }
42
130
  },
131
+ computed: {
132
+ tabStyleComp() {
133
+ return {
134
+ background: this.titleBgc,
135
+ marginBottom: this.titlePadding + 'rpx',
136
+ padding: this.getMarginAndPadding(this.tabPadding, { top: 40, right: 0, bottom: 40, left: 0 }),
137
+ }
138
+ },
139
+ },
43
140
  watch: {
44
141
  container(value, oldValue) {
45
142
  if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
46
143
  if (this.$configProject['isPreview']) this.init(value)
47
144
  },
145
+ tab(value, oldValue) {
146
+ //请求数据
147
+ if (value === 'month') {
148
+ this.getMonthData()
149
+ } else if (value === 'year') {
150
+ this.getYearData()
151
+ } else if (value === 'total') {
152
+ this.getTotalData()
153
+ }
154
+ this.hasNext = true;
155
+ this.page_token = 1
156
+ this.monthDateRange = ""
157
+ }
48
158
  },
49
159
  created() {
50
160
  this.init(this.container);
51
-
52
- //todo
53
161
  },
54
162
  methods: {
55
163
  onJfbLoad(options) {
164
+ if (this.tab === 'month') {
165
+ this.getMonthData()
166
+ } else if (this.tab === 'year') {
167
+ this.getYearData()
168
+ } else if (this.tab === 'total') {
169
+ this.getTotalData()
170
+ }
171
+ },
172
+ getMonthData() {
173
+ let data = {}
174
+ if (this.monthDateRange) {
175
+ data.year = this.getYearAndMonth(this.monthDateRange).year
176
+ data.month = this.getYearAndMonth(this.monthDateRange).month
177
+ }
178
+ jfbRootExec('getMonthSavingDetail', {
179
+ vm: this,
180
+ data: data,
181
+ }).then(res => {
182
+ const textColor = '#999'
183
+ const seriesData = res.record_months.map(item => {
184
+ return item.value
185
+ })
186
+ const xAxisList = res.record_months.map(item => {
187
+ return item.label
188
+ })
189
+ this.option = {
56
190
 
57
- // jfbRootExec('baiduUserLogin', {
58
-
59
- // vm: this,// data: {
60
-
61
- // account: 'gaoshiyong',// password: '123456789',// type: 3,// ...options
62
-
63
- // }
191
+ tooltip: {
192
+ trigger: 'axis'
193
+ },
194
+ grid: {
195
+ top: '15%',
196
+ left: '15%',
197
+ right: '15%',
198
+ bottom: '15%',
199
+ containLabel: false
200
+ },
201
+ xAxis: {
202
+ type: 'category',
203
+ data: xAxisList,
204
+ axisLabel: {
205
+ // 坐标轴字体颜色
206
+ color: textColor,
207
+ fontSize: 10,
208
+ },
209
+ axisLine: {
210
+ show: false
211
+ },
212
+ axisLine: {
213
+ show: false,
214
+ },
215
+ axisTick: { //y轴刻度线
216
+ show: false
217
+ },
218
+ splitLine: {
219
+ // 网格
220
+ show: false
221
+ },
222
+ boundaryGap: false
223
+ },
224
+ yAxis: {
225
+ type: 'value',
226
+ min: 0,
227
+ nameTextStyle: {
228
+ color: textColor,
229
+ fontSize: 10,
230
+ padding: [0, 0, 0, 80]
231
+ },
232
+ axisLabel: {
233
+ // 坐标轴字体颜色
234
+ color: textColor,
235
+ fontSize: 10
236
+ },
237
+ axisLine: {
238
+ show: false,
239
+ },
240
+ axisTick: { //y轴刻度线
241
+ show: false
242
+ },
243
+ splitLine: {
244
+ // 网格
245
+ show: true,
246
+ lineStyle: {
247
+ color: '#CCCCCC',
248
+ type: 'dashed'
249
+ }
250
+ }
251
+ },
64
252
 
65
- // }).then().catch()
253
+ series: [
254
+ {
255
+ name: '成绩(分)',
256
+ type: 'line',
257
+ symbol: 'circle',
258
+ symbolSize: 10,
259
+ smooth: true,
260
+ z: 1,
261
+ itemStyle: {
262
+ color: '#5487FF'
263
+ },
264
+ lineStyle: {
265
+ color: '#5487FF'
266
+ },
267
+ data: seriesData
268
+ }
269
+ ]
270
+ };
271
+ this.monthDateRange = res.date_range
272
+ this.saveAmount = res.save_amount
273
+ this.hasNext = res.next_page_token !== "";
274
+ if (this.page_token === 1) {
275
+ this.productList = res.list
276
+ } else {
277
+ this.productList = this.productList.concat(res.list);
278
+ }
279
+ })
280
+ },
281
+ getYearData() {
282
+ jfbRootExec('getYearSavingDetail', {
283
+ vm: this,
284
+ data: {},
285
+ }).then(res => {
286
+ // 最大值
287
+ let max = res.total_amount / 100;
288
+ // 数量
289
+ let value = res.save_amount / 100;
290
+ // 计算
291
+ let rate = Math.round((value * 1000) / max);
292
+ this.option = {
293
+ backgroundColor: '#fff', // 设置图表区域的背景颜色
294
+ borderRadius: 10, // 设置图表区域的圆角
295
+ title: [
296
+ {
297
+ text: '{a|周期已省}\n{b|' + rate + '}', // 显示标题
298
+ show: true, // 是否显示
299
+ x: 'center', // x轴位置
300
+ y: 'center', // y轴位置
301
+ textStyle: { // 样式配置
302
+ rich: {
303
+ a: {
304
+ fontSize: 16,
305
+ fontWeight: 'normal',
306
+ color: '#666',
307
+ padding: [0, 0, 10, 0], // 边距
308
+ },
309
+ b: {
310
+ fontSize: 40,
311
+ fontWeight: 700,
312
+ color: '#000'
313
+ },
314
+ },
315
+ },
316
+ },
317
+ ],
318
+ polar: {
319
+ center: ['50%', '50%'],
320
+ radius: ['60%', '75%'],
321
+ },
322
+ angleAxis: {
323
+ max: max,
324
+ startAngle: 90, // 开始的角度
325
+ show: false,
326
+ },
327
+ radiusAxis: {
328
+ type: 'category',
329
+ show: true,
330
+ axisLabel: {
331
+ show: false, // 是否显示标签
332
+ },
333
+ axisLine: {
334
+ show: false, // 是否显示轴线
335
+ },
336
+ axisTick: {
337
+ show: false, // 是否显示刻度
338
+ },
339
+ },
340
+ series: [
341
+ {
342
+ name: '',
343
+ type: 'bar',
344
+ roundCap: true,
345
+ showBackground: true,
346
+ backgroundStyle: {
347
+ color: '#f5f5f5',
348
+ },
349
+ data: [value],
350
+ coordinateSystem: 'polar',
351
+ itemStyle: {
352
+ normal: {
353
+ color: this.mainColor,
354
+ },
355
+ },
356
+ },
357
+ ],
358
+ };
359
+ this.yearDateRange = res.date_range
360
+ this.saveAmount = res.save_amount
361
+ this.hasNext = res.next_page_token !== "";
362
+ if (this.page_token === 1) {
363
+ this.productList = res.list
364
+ } else {
365
+ this.productList = this.productList.concat(res.list);
366
+ }
367
+ })
368
+ },
369
+ getTotalData() {
370
+ jfbRootExec('getTotalSavingDetail', {
371
+ vm: this,
372
+ data: {},
373
+ }).then(res => {
374
+ let max = res.total_amount / 100;
375
+ // 数量
376
+ let value = res.save_amount / 100;
377
+ // 计算
378
+ let rate = Math.round((value * 1000) / max);
379
+ this.option = {
380
+ backgroundColor: '#fff', // 设置图表区域的背景颜色
381
+ borderRadius: 10, // 设置图表区域的圆角
382
+ title: [
383
+ {
384
+ text: '{a|周期已省}\n{b|' + rate + '}', // 显示标题
385
+ show: true, // 是否显示
386
+ x: 'center', // x轴位置
387
+ y: 'center', // y轴位置
388
+ textStyle: { // 样式配置
389
+ rich: {
390
+ a: {
391
+ fontSize: 16,
392
+ fontWeight: 'normal',
393
+ color: '#666',
394
+ padding: [0, 0, 10, 0], // 边距
395
+ },
396
+ b: {
397
+ fontSize: 40,
398
+ fontWeight: 700,
399
+ color: '#000'
400
+ },
401
+ },
402
+ },
403
+ },
404
+ ],
405
+ polar: {
406
+ center: ['50%', '50%'],
407
+ radius: ['60%', '75%'],
408
+ },
409
+ angleAxis: {
410
+ max: max,
411
+ startAngle: 90, // 开始的角度
412
+ show: false,
413
+ },
414
+ radiusAxis: {
415
+ type: 'category',
416
+ show: true,
417
+ axisLabel: {
418
+ show: false, // 是否显示标签
419
+ },
420
+ axisLine: {
421
+ show: false, // 是否显示轴线
422
+ },
423
+ axisTick: {
424
+ show: false, // 是否显示刻度
425
+ },
426
+ },
427
+ series: [
428
+ {
429
+ name: '',
430
+ type: 'bar',
431
+ roundCap: true,
432
+ showBackground: true,
433
+ backgroundStyle: {
434
+ color: '#f5f5f5',
435
+ },
436
+ data: [value],
437
+ coordinateSystem: 'polar',
438
+ itemStyle: {
439
+ normal: {
440
+ color: this.mainColor,
441
+ },
442
+ },
443
+ },
444
+ ],
445
+ };
446
+ this.totalDateRange = res.date_range
447
+ this.saveAmount = res.save_amount
448
+ this.hasNext = res.next_page_token !== "";
449
+ if (this.page_token === 1) {
450
+ this.productList = res.list
451
+ } else {
452
+ this.productList = this.productList.concat(res.list);
453
+ }
454
+ })
66
455
  },
67
456
  /**
68
457
  * @description 监听事件变化
69
458
  * @param container {object} 业务组件对象自己
70
459
  */
71
460
  init(container) {
461
+ //标题
462
+ this.titleBgc = getContainerPropsValue(container, 'content.titleBgc', '#ffff');
463
+ this.titlePadding = getContainerPropsValue(container, 'content.titlePadding', 20);
464
+ this.tabPadding = getContainerPropsValue(container, 'content.tabPadding', { top: 40, right: 0, bottom: 40, left: 0 });
465
+ this.titleColor = getContainerPropsValue(container, 'content.titleColor', '#666');
466
+ this.titleActColor = getContainerPropsValue(container, 'content.titleActColor', this.mainColor);
467
+ },
468
+ switchTab(i) {
469
+ this.tab = this.tabs[i].value;
470
+ this.tabIndex = i;
471
+ },
472
+ getYearAndMonth(dateStr) {
473
+ // 将输入的日期字符串转换为Date对象
474
+ const date = new Date(dateStr.replace("年", "-").replace("月", "-01"));
72
475
 
73
- //this.bgcolor = getContainerPropsValue(container, 'content.bgcolor', '#fff');
476
+ // 获取年份和月份
477
+ const year = date.getFullYear();
478
+ const month = String(date.getMonth() + 1).padStart(2);
74
479
 
75
- //this.height = getContainerPropsValue(container, 'content.height', 10);
480
+ return {
481
+ year: year,
482
+ month: month
483
+ };
484
+ },
485
+ formatDate(date) {
486
+ const year = date.getFullYear();
487
+ const month = String(date.getMonth() + 1).padStart(2);
488
+ return `${year}年${month}月`;
489
+ },
490
+ handleLastMonth() {
491
+ const dateRange = new Date(this.monthDateRange.replace("年", "-").replace("月", "-01"));
492
+ // 获取上一个月的日期范围
493
+ const previousMonth = new Date(dateRange);
494
+ previousMonth.setMonth(dateRange.getMonth() - 1);
495
+ const previousMonthStart = new Date(previousMonth.getFullYear(), previousMonth.getMonth(), 1);
496
+ const previousMonthEnd = new Date(previousMonth.getFullYear(), previousMonth.getMonth() + 1, 0);
497
+ this.monthDateRange = this.formatDate(previousMonthStart)
498
+ this.getMonthData()
499
+ },
500
+ handleNextMonth() {
501
+ const dateRange = new Date(this.monthDateRange.replace("年", "-").replace("月", "-01"));
502
+ // 获取下一个月的日期范围
503
+ const nextMonth = new Date(dateRange);
504
+ nextMonth.setMonth(dateRange.getMonth() + 1);
505
+ const nextMonthStart = new Date(nextMonth.getFullYear(), nextMonth.getMonth(), 1);
506
+ const nextMonthEnd = new Date(nextMonth.getFullYear(), nextMonth.getMonth() + 1, 0);
507
+ this.monthDateRange = this.formatDate(nextMonthEnd)
508
+ this.getMonthData()
76
509
  },
77
510
  onJfbScroll(options) {
78
511
  console.log('event.onJfbScroll', options)
79
512
  },
80
513
  onJfbReachBottom(options) {
81
- console.log('event.onJfbReachBottom', options)
514
+ if (this.hasNext) {
515
+ this.page_token = this.next_page_token;
516
+ if (this.tab === 'month') {
517
+ this.getMonthData()
518
+ } else if (this.tab === 'year') {
519
+ this.getYearData()
520
+ } else if (this.tab === 'total') {
521
+ this.getTotalData()
522
+ }
523
+ }
82
524
  },
83
525
  onJfbShow(options) {
84
526
  console.log('event.onJfbShow', options)
@@ -104,8 +546,130 @@
104
546
  @import "./JfbBaseSavingDetailLess.less";
105
547
 
106
548
  .jfb-base-saving-detail {
107
- &__body{
549
+ &__body {
550
+ .tab_list {
551
+ display: flex;
552
+ justify-content: space-around;
553
+ align-items: center;
554
+ white-space: nowrap;
555
+
556
+ .tab_item {
557
+ flex: 1;
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: center;
561
+ flex-direction: column;
562
+ color: #666666;
563
+ font-size: unit(32, rpx);
564
+ white-space: nowrap;
565
+ }
566
+
567
+ .check {
568
+ width: 60rpx;
569
+ height: 6rpx;
570
+ margin-top: 12rpx;
571
+ }
572
+ }
573
+
574
+ &-cycle {
575
+ font-size: 32rpx;
576
+ color: #999;
577
+ text-align: center;
578
+ padding-top: 40rpx;
579
+ }
580
+
581
+ &-block {
582
+ height: 40rpx;
583
+ width: 100%;
584
+ }
585
+
586
+ &-month {
587
+ display: flex;
588
+ align-items: center;
589
+ justify-content: space-around;
590
+ padding: 40rpx 24rpx 20rpx 24rpx;
591
+
592
+ &>view:first-child,
593
+ &>view:last-child {
594
+ font-size: 28rpx;
595
+ color: #999999;
596
+ padding: 12rpx 60rpx;
597
+ background: #F5F5F5;
598
+ border-radius: 40rpx;
599
+ }
600
+
601
+ &>view:nth-child(2) {
602
+ font-size: 32rpx;
603
+ color: #999;
604
+ }
605
+ }
606
+
607
+ &-product {
608
+ border-radius: 20rpx;
609
+ background: #fff;
610
+ margin: 20rpx;
108
611
 
612
+ &-title {
613
+ font-size: 28rpx;
614
+ display: flex;
615
+ align-items: center;
616
+ justify-content: space-between;
617
+ padding: 24rpx;
618
+ border-bottom: 2rpx solid #eee;
619
+
620
+ &>view:first-child {
621
+ color: #333;
622
+ font-weight: 500;
623
+ }
624
+
625
+ &>view:nth-child(2) {
626
+ color: #999999;
627
+ font-size: 24rpx;
628
+ }
629
+ }
630
+
631
+ &-item {
632
+ display: flex;
633
+ padding: 26rpx;
634
+ border-bottom: 2rpx solid #eee;
635
+
636
+ &>image {
637
+ width: 200rpx;
638
+ height: 200rpx;
639
+ margin-right: 32rpx;
640
+ flex-shrink: 0;
641
+
642
+ }
643
+
644
+ &-info {
645
+ &-name {
646
+ font-size: 28rpx;
647
+ color: #333333;
648
+ .uni-max-cut(2, 80);
649
+ }
650
+
651
+ &-time {
652
+ display: flex;
653
+ align-items: center;
654
+ justify-content: space-between;
655
+ font-size: 24rpx;
656
+ color: #999999;
657
+ margin: 40rpx 0 12rpx 0;
658
+ }
659
+
660
+ &-price {
661
+ display: flex;
662
+ align-items: center;
663
+ justify-content: space-between;
664
+ font-size: 24rpx;
665
+
666
+ &>view:nth-child(2) {
667
+ font-weight: 500;
668
+ }
669
+ }
670
+ }
671
+ }
672
+ }
109
673
  }
110
674
  }
111
- </style>
675
+ </style>