jufubao-third 1.0.21 → 1.0.22-beta10

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 (67) hide show
  1. package/.claude/settings.local.json +12 -0
  2. package/package.json +1 -1
  3. package/src/components/JfbThirdPay/WalletMix.js +1 -0
  4. package/src/components/JfbThirdRideCheckPay/Api.js +18 -0
  5. package/src/components/JfbThirdRideCheckPay/Attr.js +17 -0
  6. package/src/components/JfbThirdRideCheckPay/JfbThirdRideCheckPay.vue +217 -0
  7. package/src/components/JfbThirdRideCheckPay/JfbThirdRideCheckPayLess.less +80 -0
  8. package/src/components/JfbThirdRideCheckPay/JfbThirdRideCheckPayMixin.js +30 -0
  9. package/src/components/JfbThirdRideCheckPay/Mock.js +7 -0
  10. package/src/components/JfbThirdRideCheckPay/cusAttr/advanced.js +28 -0
  11. package/src/components/JfbThirdRideCheckPay/cusAttr/content.js +27 -0
  12. package/src/components/JfbThirdRideCheckPay/cusAttr/style.js +7 -0
  13. package/src/components/JfbThirdRideConfirm/Api.js +37 -0
  14. package/src/components/JfbThirdRideConfirm/Attr.js +17 -0
  15. package/src/components/JfbThirdRideConfirm/JfbThirdRideConfirm.vue +527 -0
  16. package/src/components/JfbThirdRideConfirm/JfbThirdRideConfirmLess.less +80 -0
  17. package/src/components/JfbThirdRideConfirm/JfbThirdRideConfirmMixin.js +30 -0
  18. package/src/components/JfbThirdRideConfirm/Mock.js +69 -0
  19. package/src/components/JfbThirdRideConfirm/cusAttr/advanced.js +7 -0
  20. package/src/components/JfbThirdRideConfirm/cusAttr/content.js +27 -0
  21. package/src/components/JfbThirdRideConfirm/cusAttr/style.js +7 -0
  22. package/src/components/JfbThirdRideGenOrder/Api.js +21 -0
  23. package/src/components/JfbThirdRideGenOrder/Attr.js +17 -0
  24. package/src/components/JfbThirdRideGenOrder/JfbThirdRideGenOrder.vue +234 -0
  25. package/src/components/JfbThirdRideGenOrder/JfbThirdRideGenOrderLess.less +80 -0
  26. package/src/components/JfbThirdRideGenOrder/JfbThirdRideGenOrderMixin.js +30 -0
  27. package/src/components/JfbThirdRideGenOrder/Mock.js +11 -0
  28. package/src/components/JfbThirdRideGenOrder/cusAttr/advanced.js +37 -0
  29. package/src/components/JfbThirdRideGenOrder/cusAttr/content.js +7 -0
  30. package/src/components/JfbThirdRideGenOrder/cusAttr/style.js +7 -0
  31. package/src/components/JfbThirdRideHome/Api.js +44 -0
  32. package/src/components/JfbThirdRideHome/Attr.js +17 -0
  33. package/src/components/JfbThirdRideHome/JfbThirdRideHome.vue +831 -0
  34. package/src/components/JfbThirdRideHome/JfbThirdRideHomeLess.less +80 -0
  35. package/src/components/JfbThirdRideHome/JfbThirdRideHomeMixin.js +30 -0
  36. package/src/components/JfbThirdRideHome/Mock.js +13 -0
  37. package/src/components/JfbThirdRideHome/cusAttr/advanced.js +52 -0
  38. package/src/components/JfbThirdRideHome/cusAttr/content.js +27 -0
  39. package/src/components/JfbThirdRideHome/cusAttr/style.js +7 -0
  40. package/src/components/JfbThirdRideLand/Api.js +58 -0
  41. package/src/components/JfbThirdRideLand/Attr.js +17 -0
  42. package/src/components/JfbThirdRideLand/JfbThirdRideLand.vue +256 -0
  43. package/src/components/JfbThirdRideLand/JfbThirdRideLandLess.less +80 -0
  44. package/src/components/JfbThirdRideLand/JfbThirdRideLandMixin.js +30 -0
  45. package/src/components/JfbThirdRideLand/Mock.js +13 -0
  46. package/src/components/JfbThirdRideLand/cusAttr/advanced.js +22 -0
  47. package/src/components/JfbThirdRideLand/cusAttr/content.js +60 -0
  48. package/src/components/JfbThirdRideLand/cusAttr/style.js +109 -0
  49. package/src/components/JfbThirdRideRecord/Api.js +33 -0
  50. package/src/components/JfbThirdRideRecord/Attr.js +17 -0
  51. package/src/components/JfbThirdRideRecord/JfbThirdRideRecord.vue +533 -0
  52. package/src/components/JfbThirdRideRecord/JfbThirdRideRecordLess.less +80 -0
  53. package/src/components/JfbThirdRideRecord/JfbThirdRideRecordMixin.js +30 -0
  54. package/src/components/JfbThirdRideRecord/Mock.js +44 -0
  55. package/src/components/JfbThirdRideRecord/cusAttr/advanced.js +22 -0
  56. package/src/components/JfbThirdRideRecord/cusAttr/content.js +27 -0
  57. package/src/components/JfbThirdRideRecord/cusAttr/style.js +7 -0
  58. package/src/components/JfbThirdRideStartEnd/Api.js +20 -0
  59. package/src/components/JfbThirdRideStartEnd/Attr.js +17 -0
  60. package/src/components/JfbThirdRideStartEnd/JfbThirdRideStartEnd.vue +382 -0
  61. package/src/components/JfbThirdRideStartEnd/JfbThirdRideStartEndLess.less +80 -0
  62. package/src/components/JfbThirdRideStartEnd/JfbThirdRideStartEndMixin.js +30 -0
  63. package/src/components/JfbThirdRideStartEnd/Mock.js +17 -0
  64. package/src/components/JfbThirdRideStartEnd/cusAttr/advanced.js +22 -0
  65. package/src/components/JfbThirdRideStartEnd/cusAttr/content.js +27 -0
  66. package/src/components/JfbThirdRideStartEnd/cusAttr/style.js +7 -0
  67. package/src/mixins/getCoordinatesMixins.js +407 -0
@@ -0,0 +1,533 @@
1
+ <template>
2
+ <view
3
+ class="jfb-third-ride-record"
4
+ @click="handleEditxSelect"
5
+ :class="{ editx : isEditx && active }"
6
+ >
7
+ <!--#ifdef H5-->
8
+ <view
9
+ class="jfb-third-ride-record__edit"
10
+ :class="{ editx : isEditx && active }"
11
+ v-if="isEditx && active"
12
+ >
13
+ <view class="jfb-third-ride-record__edit-icon" @click.stop="delEdit">
14
+ <xd-font-icon icon="iconshanchu-01" color="#fff" size="30"></xd-font-icon>
15
+ </view>
16
+ </view>
17
+ <!-- #endif -->
18
+ <view class="jfb-third-ride-record__body">
19
+ <!-- 顶部导航栏 -->
20
+ <view class="rec-nav">
21
+ <view class="rec-nav__back" @click="handleBack">
22
+ <xd-font-icon icon="iconzuojiantou" color="#333" size="36"></xd-font-icon>
23
+ </view>
24
+ <text class="rec-nav__title">全部出行记录</text>
25
+ </view>
26
+
27
+ <!-- 记录列表 -->
28
+ <view class="rec-list">
29
+ <template v-for="(group, gIdx) in groups">
30
+ <view :key="gIdx" v-if="group.items.length" class="rec-group">
31
+ <!-- 分组标题 -->
32
+ <view class="rec-group__head">
33
+ <view class="rec-group__dot" :class="'rec-group__dot--' + group.dotColor"></view>
34
+ <text class="rec-group__label">{{ group.label }}</text>
35
+ <text class="rec-group__count">{{ group.count }}单</text>
36
+ </view>
37
+
38
+ <!-- 记录卡片 -->
39
+ <view
40
+ v-for="item in group.items"
41
+ :key="item.channel_order_id"
42
+ class="rec-card"
43
+ @click="handleCardClick(item)"
44
+ >
45
+ <!-- 状态行 -->
46
+ <view class="rec-card__head">
47
+ <view class="rec-status" :class="'rec-status--' + item.statusType">
48
+ <view class="rec-status__dot"></view>
49
+ <text>{{ item.statusText }}</text>
50
+ </view>
51
+ <text class="rec-card__time">{{ item.time }}</text>
52
+ </view>
53
+
54
+ <!-- 路线 -->
55
+ <view class="rec-route">
56
+ <view class="rec-route__line">
57
+ <view class="rec-dot rec-dot--start"></view>
58
+ <text class="rec-route__addr">{{ item.from }}</text>
59
+ </view>
60
+ <view class="rec-route__line">
61
+ <view class="rec-dot rec-dot--end"></view>
62
+ <text class="rec-route__addr">{{ item.to }}</text>
63
+ </view>
64
+ </view>
65
+
66
+ <!-- 底部信息 -->
67
+ <view class="rec-card__foot">
68
+ <text class="rec-card__meta">{{ item.meta }}</text>
69
+ <view class="rec-card__price">
70
+ <text class="rec-card__sym">¥</text>
71
+ <text class="rec-card__val">{{ item.price }}</text>
72
+ </view>
73
+ </view>
74
+ </view>
75
+ </view>
76
+ </template>
77
+
78
+ <!-- 空状态 -->
79
+ <view v-if="!ingList.length && !comList.length && !comLoading" class="rec-empty">
80
+ <text>暂无出行记录</text>
81
+ </view>
82
+
83
+ <!-- 已完成订单分页提示 -->
84
+ <view v-if="comList.length" class="rec-list__foot">
85
+ <text v-if="comLoading">加载中...</text>
86
+ <text v-else-if="!hasNext">没有更多了</text>
87
+ <text v-else>上拉加载更多</text>
88
+ </view>
89
+ </view>
90
+ </view>
91
+ </view>
92
+ </template>
93
+
94
+ <script>
95
+ import XdFontIcon from "@/components/XdFontIcon/XdFontIcon";
96
+ import { jfbRootExec } from "@/utils/xd.event";
97
+ import JfbThirdRideRecordMixin from "./JfbThirdRideRecordMixin";
98
+ import { getContainerPropsValue } from "@/utils/xd.base";
99
+ import componentsMixins from "@/mixins/componentsMixins";
100
+ import extsMixins from "@/mixins/extsMixins";
101
+ export default {
102
+ name: "JfbThirdRideRecord",
103
+ components: {
104
+ XdFontIcon
105
+ },
106
+ mixins: [
107
+ componentsMixins, extsMixins, JfbThirdRideRecordMixin
108
+ ],
109
+ data() {
110
+ return {
111
+ xnamespace: "",
112
+ orderDetailsPath: "",
113
+ page_token: "1", //已完成订单分页参数(字符串),首页为"1",后续使用接口返回的 next_page_token
114
+ page_size: 10,
115
+ next_page_token: "", //下一页token
116
+ hasNext: false, //是否还有下一页
117
+ comLoading: false, //已完成订单加载中
118
+ ingTotal: 0, //进行中订单总数
119
+ comTotal: 0, //已完成订单总数
120
+ comList: [], //已完成订单
121
+ ingList: [], //进行中订单
122
+ //进行中订单 show_status 与状态样式的映射(已完成固定为 finished)
123
+ statusTypeMap: {
124
+ 1: 'dispatching', //正在派单
125
+ 2: 'waiting', //待上车
126
+ 3: 'riding' //行程中
127
+ }
128
+ }
129
+ },
130
+ computed: {
131
+ groups() {
132
+ return [
133
+ {
134
+ label: '进行中',
135
+ count: this.ingTotal,
136
+ dotColor: 'orange',
137
+ items: this.ingList.map(item => this.formatItem(item, 'ING'))
138
+ },
139
+ {
140
+ label: '已完成',
141
+ count: this.comTotal,
142
+ dotColor: 'gray',
143
+ items: this.comList.map(item => this.formatItem(item, 'COM'))
144
+ }
145
+ ]
146
+ }
147
+ },
148
+ watch: {
149
+ container(value, oldValue) {
150
+ if (JSON.stringify(value) === JSON.stringify(oldValue)) return;
151
+ if (this.$configProject['isPreview']) this.init(value)
152
+ },
153
+ },
154
+ created() {
155
+ this.init(this.container);
156
+ },
157
+ methods: {
158
+ async onJfbLoad(options) {
159
+ this.setNameSpace(options);
160
+ //进行中订单:只获取一次,不分页
161
+ this.getList('ING').then(res => {
162
+ this.ingList = res.list || [];
163
+ this.ingTotal = res.total_size || this.ingList.length;
164
+ })
165
+ //已完成订单:分页获取
166
+ this.p_getComList();
167
+ },
168
+ getList(type = 'COM', options = {}){
169
+ return jfbRootExec("rideOrderList", {
170
+ vm: this,
171
+ data: {
172
+ xnamespace: this.xnamespace,
173
+ order_type: type,
174
+ ...options
175
+ }
176
+ })
177
+ },
178
+ p_getComList(){
179
+ if(this.comLoading) return;
180
+ this.comLoading = true;
181
+ let data = {
182
+ page_token: this.page_token,
183
+ page_size: this.page_size
184
+ }
185
+ this.getList('COM', data).then(res => {
186
+ let list = res.list || [];
187
+ if(this.page_token == '1'){
188
+ this.comList = list;
189
+ }else{
190
+ this.comList = this.comList.concat(list);
191
+ }
192
+ this.comTotal = res.total_size || this.comList.length;
193
+ this.next_page_token = res.next_page_token || "";
194
+ this.hasNext = this.next_page_token !== "";
195
+ this.comLoading = false;
196
+ }).catch(() => {
197
+ this.comLoading = false;
198
+ })
199
+ },
200
+ /**
201
+ * @description 接口订单数据转换为卡片展示数据
202
+ * @param item {object} 接口订单数据
203
+ * @param orderType {string} ING进行中,COM已完成
204
+ */
205
+ formatItem(item, orderType){
206
+ return {
207
+ ...item,
208
+ statusType: this.getStatusType(item, orderType),
209
+ statusText: item.show_status_name,
210
+ time: this.formatTime(item.depart_time || item.request_time),
211
+ from: item.start_name,
212
+ to: item.end_name,
213
+ meta: this.formatMeta(item),
214
+ price: this.formatFee(item.total_fee)
215
+ }
216
+ },
217
+ getStatusType(item, orderType){
218
+ if(orderType === 'COM') return 'finished';
219
+ return this.statusTypeMap[item.show_status] || 'dispatching';
220
+ },
221
+ formatMeta(item){
222
+ let parts = [];
223
+ if(item.order_service_type_name) parts.push(item.order_service_type_name);
224
+ if(item.ride_type_name) parts.push(item.ride_type_name);
225
+ let mileage = Number(item.mileage || item.estimate_mileage || 0);
226
+ if(mileage > 0) parts.push((mileage / 1000).toFixed(1) + 'km');
227
+ return parts.join(' · ');
228
+ },
229
+ //金额:分转元
230
+ formatFee(fee){
231
+ return (Number(fee || 0) / 100).toFixed(2);
232
+ },
233
+ //出发时间:今天/昨天显示相对时间,其余显示 MM/DD HH:mm
234
+ formatTime(val){
235
+ if(!val && val !== 0) return '';
236
+ let date;
237
+ //纯数字为unix时间戳(兼容秒/毫秒)
238
+ if(/^\d+$/.test(String(val))){
239
+ let ts = Number(val);
240
+ if(String(ts).length <= 10) ts = ts * 1000;
241
+ date = new Date(ts);
242
+ }else{
243
+ date = new Date(String(val).replace(/-/g, '/'));
244
+ }
245
+ if(isNaN(date.getTime())) return val;
246
+ let pad = n => (n < 10 ? '0' + n : '' + n);
247
+ let hm = pad(date.getHours()) + ':' + pad(date.getMinutes());
248
+ let now = new Date();
249
+ if(this.isSameDay(date, now)) return '今天 ' + hm;
250
+ let yest = new Date(now.getTime());
251
+ yest.setDate(now.getDate() - 1);
252
+ if(this.isSameDay(date, yest)) return '昨天 ' + hm;
253
+ return pad(date.getMonth() + 1) + '/' + pad(date.getDate()) + ' ' + hm;
254
+ },
255
+ isSameDay(a, b){
256
+ return a.getFullYear() === b.getFullYear()
257
+ && a.getMonth() === b.getMonth()
258
+ && a.getDate() === b.getDate();
259
+ },
260
+ handleBack() {
261
+ jfbRootExec('navigateBack', { vm: this })
262
+ },
263
+ handleCardClick(item) {
264
+ if(item.to_order_detail === 'Y'){
265
+ this.$xdUniHelper.navigateTo({
266
+ url: this.orderDetailsPath + '?order_id=' + item.main_order_id
267
+ })
268
+ }else{
269
+ jfbRootExec("orderDetailUrl", {
270
+ vm: this,
271
+ data: {
272
+ channel_order_id: item.channel_order_id,
273
+ channel_code: "amapcar",
274
+ business_code: this.xnamespace
275
+ }
276
+ }).then(res => {
277
+ let url = res.value;
278
+ // #ifdef H5
279
+ window.location.href = url;
280
+ // #endif
281
+ })
282
+ }
283
+ },
284
+ /**
285
+ * @description 监听事件变化
286
+ * @param container {object} 业务组件对象自己
287
+ */
288
+ init(container) {
289
+ this.xnamespace = getContainerPropsValue(container, 'content.xnamespace', this.projectAttr.business_code || '');
290
+ this.orderDetailsPath = getContainerPropsValue(container, 'content.orderDetailsPath', {value: ""}).value;
291
+ },
292
+ onJfbScroll(options) {
293
+ console.log('event.onJfbScroll', options)
294
+ },
295
+ onJfbReachBottom(options) {
296
+ //已完成订单触底加载更多
297
+ if(this.hasNext && !this.comLoading){
298
+ this.page_token = this.next_page_token;
299
+ this.p_getComList();
300
+ }
301
+ },
302
+ onJfbShow(options) {
303
+ console.log('event.onJfbShow', options)
304
+ },
305
+ onJfbHide(options) {
306
+ console.log('event.onJfbHide', options)
307
+ },
308
+ onJfbBack(options) {
309
+ console.log('event.onJfbBack', options)
310
+ },
311
+ onJfbUpdate(...data) {
312
+ console.log('event.onJfbUpdate', data)
313
+ },
314
+ onJfbCustomEvent(options) {
315
+ console.log('event.onJfbReachBottom', options)
316
+ },
317
+ }
318
+ }
319
+
320
+ </script>
321
+
322
+ <style scoped lang="less">
323
+ @import "./JfbThirdRideRecordLess.less";
324
+
325
+ .jfb-third-ride-record {
326
+ background: #f5f5f5;
327
+ min-height: 100vh;
328
+
329
+ &__body {
330
+ padding-bottom: 40rpx;
331
+ }
332
+ }
333
+
334
+ // 导航栏
335
+ .rec-nav {
336
+ display: flex;
337
+ align-items: center;
338
+ justify-content: center;
339
+ position: relative;
340
+ height: 88rpx;
341
+ background: #fff;
342
+
343
+ &__back {
344
+ position: absolute;
345
+ left: 24rpx;
346
+ display: flex;
347
+ align-items: center;
348
+ }
349
+
350
+ &__title {
351
+ font-size: 34rpx;
352
+ font-weight: 600;
353
+ color: #333;
354
+ }
355
+ }
356
+
357
+ // 空状态
358
+ .rec-empty {
359
+ display: flex;
360
+ align-items: center;
361
+ justify-content: center;
362
+ padding: 160rpx 0;
363
+ color: #999;
364
+ font-size: 28rpx;
365
+ }
366
+
367
+ // 分页加载提示
368
+ .rec-list__foot {
369
+ text-align: center;
370
+ padding: 24rpx 0;
371
+ color: #999;
372
+ font-size: 24rpx;
373
+ }
374
+
375
+ // 分组
376
+ .rec-group {
377
+ margin-top: 24rpx;
378
+
379
+ &__head {
380
+ display: flex;
381
+ align-items: center;
382
+ padding: 0 30rpx;
383
+ margin-bottom: 24rpx;
384
+ }
385
+
386
+ &__dot {
387
+ width: 16rpx;
388
+ height: 16rpx;
389
+ border-radius: 50%;
390
+ margin-right: 16rpx;
391
+
392
+ &--orange { background: #FFC870; }
393
+ &--gray { background: #CCCCCC; }
394
+ }
395
+
396
+ &__label {
397
+ font-size: 28rpx;
398
+ font-weight: 500;
399
+ color: #333;
400
+ margin-right: 16rpx;
401
+ }
402
+
403
+ &__count {
404
+ font-size: 24rpx;
405
+ color: #999;
406
+ }
407
+ }
408
+
409
+ // 状态标签
410
+ .rec-status {
411
+ display: flex;
412
+ align-items: center;
413
+ padding: 6rpx 20rpx;
414
+ border-radius: 24rpx;
415
+ font-size: 24rpx;
416
+ font-weight: 500;
417
+
418
+ &__dot {
419
+ width: 12rpx;
420
+ height: 12rpx;
421
+ border-radius: 50%;
422
+ margin-right: 16rpx;
423
+ }
424
+
425
+ //正在派单
426
+ &--dispatching {
427
+ background: rgba(255, 141, 26, 0.05);
428
+ color: rgba(255, 141, 26, 1);
429
+ .rec-status__dot { background: rgba(255, 141, 26, 1); }
430
+ }
431
+
432
+ //行程中
433
+ &--riding {
434
+ background: rgba(85, 75, 230, 0.05);
435
+ color: rgba(85, 75, 230, 1);
436
+ .rec-status__dot { background: rgba(85, 75, 230, 1); }
437
+ }
438
+
439
+ //预约待上车
440
+ &--waiting {
441
+ background: rgba(7, 182, 212, 0.05);
442
+ color: rgba(7, 182, 212, 1);
443
+ .rec-status__dot { background: rgba(7, 182, 212, 1); }
444
+ }
445
+
446
+ //已完成
447
+ &--finished {
448
+ background: rgba(18, 185, 129, 0.05);
449
+ color: rgba(18, 185, 129, 1);
450
+ .rec-status__dot { background: rgba(18, 185, 129, 1); }
451
+ }
452
+ }
453
+
454
+ // 路线圆点
455
+ .rec-dot {
456
+ width: 16rpx;
457
+ height: 16rpx;
458
+ border-radius: 50%;
459
+ margin-right: 32rpx;
460
+ flex-shrink: 0;
461
+
462
+ &--start { background: #52c41a; }
463
+ &--end { background: #f5222d; }
464
+ }
465
+
466
+ // 记录卡片
467
+ .rec-card {
468
+ background: #fff;
469
+ margin: 0 20rpx 16rpx;
470
+ padding: 24rpx 32rpx;
471
+ border-radius: 16rpx;
472
+
473
+ &__head {
474
+ display: flex;
475
+ align-items: center;
476
+ justify-content: space-between;
477
+ margin-bottom: 24rpx;
478
+ }
479
+
480
+ &__time {
481
+ font-size: 24rpx;
482
+ color: #999;
483
+ }
484
+
485
+ &__foot {
486
+ display: flex;
487
+ align-items: center;
488
+ justify-content: space-between;
489
+ margin-top: 20rpx;
490
+ }
491
+
492
+ &__meta {
493
+ font-size: 24rpx;
494
+ color: #999;
495
+ }
496
+
497
+ &__price {
498
+ display: flex;
499
+ align-items: baseline;
500
+ }
501
+
502
+ &__sym {
503
+ font-size: 24rpx;
504
+ color: #333;
505
+ font-weight: 600;
506
+ }
507
+
508
+ &__val {
509
+ font-size: 40rpx;
510
+ color: #333;
511
+ font-weight: 700;
512
+ }
513
+ }
514
+
515
+ // 路线区域
516
+ .rec-route {
517
+ &__line {
518
+ display: flex;
519
+ align-items: center;
520
+ margin-bottom: 16rpx;
521
+
522
+ &:last-child {
523
+ margin-bottom: 0;
524
+ }
525
+ }
526
+
527
+ &__addr {
528
+ font-size: 28rpx;
529
+ color: #333;
530
+ font-weight: 500;
531
+ }
532
+ }
533
+ </style>
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @desc 获取绝对路径完整地址
3
+ * @param @path
4
+ **/
5
+ //例如:https://image.jufubao.cn/20220501010108/image/bg/default_gonghui_bg.png
6
+ @basePath: 'business/';
7
+ @doMain: '//sandbox-img.jufubao.cn/';
8
+
9
+ .getBusinessImageUrl(@path, @size: 'size8') {
10
+ @url: "@{doMain}@{basePath}@{path}?x-oss-process=style/@{size}";
11
+ background-image: url(@url);
12
+ }
13
+
14
+ //start
15
+ .jfb-third-ride-record {
16
+ box-sizing: border-box;
17
+
18
+ &__body{
19
+ position: relative;
20
+ overflow: hidden;
21
+ z-index: 2
22
+ }
23
+
24
+ &.editx,&.editx:hover {
25
+ position: relative;
26
+ min-height: unit(100, rpx);
27
+ z-index: 3;
28
+ &::after {
29
+ border: 2rpx dashed blue;
30
+ content: " ";
31
+ position: absolute;
32
+ top:0;
33
+ left:0;
34
+ bottom:0;
35
+ right:0;
36
+ z-index: var(--preview-z-index);
37
+ cursor: pointer;
38
+ }
39
+
40
+ }
41
+
42
+
43
+ &__edit {
44
+ cursor: pointer;
45
+ position: absolute;
46
+ right: unit(0, rpx);
47
+ top: unit(0, rpx);
48
+ height: unit(50, rpx);
49
+ z-index: 100;
50
+ display: flex;
51
+ justify-content: center;
52
+ align-items: center;
53
+ background: rgba(0, 0, 0, .4);
54
+ border-radius: 0 0 0 20rpx;
55
+ box-shadow: 0 0 10px rbga(0, 0, 0, 0.3);
56
+ color: #fff;
57
+ font-size: unit(22, rpx);
58
+ padding: 0 6rpx 0 6px;
59
+
60
+ &-icon{
61
+ padding: 0 unit(20, rpx);
62
+ }
63
+
64
+ &.editx {
65
+ box-sizing: border-box;
66
+
67
+ }
68
+ }
69
+ }
70
+ //end
71
+
72
+
73
+ /**notPreview**/
74
+ .jfb-third-ride-record {
75
+ //&:before {
76
+ //content: " ";
77
+ //display: table;
78
+ //}
79
+ }
80
+ /**endNotPreview**/
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+
4
+ //@AttrImport
5
+ import Attr from "./Attr";
6
+ //@EndAttrImport
7
+
8
+
9
+ export default {
10
+ data() {
11
+ return {
12
+ //#ifdef H5
13
+
14
+ //@AttrData
15
+ Attr:{}, //对外开发编辑属性
16
+ //@EndAttrData
17
+
18
+ // #endif
19
+ cssRoot: 'jfb-third-ride-record'
20
+ }
21
+ },
22
+ created() {
23
+
24
+ //@AttrDataCreated
25
+ this.Attr = this.$xdUniHelper.customClone(Attr);
26
+ //@EndAttrDataCreated
27
+
28
+
29
+ },
30
+ }
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ rideOrderList: {
5
+ "total_size": 1,
6
+ "next_page_token": "",
7
+ "list": [
8
+ {
9
+ "channel_order_id": "40160320001350016846830466",
10
+ "user_id": 5000020,
11
+ "mobile": "",
12
+ "user_name": "",
13
+ "start_name": "中国民生银行(北京西客站支行)Mock",
14
+ "end_name": "清华大学",
15
+ "ride_type": 1,
16
+ "ride_type_name": "经济型",
17
+ "total_fee": 8527,
18
+ "enterprise_amount": 0,
19
+ "person_amount": 0,
20
+ "estimate_price": 10430,
21
+ "estimate_mileage": 19200,
22
+ "estimate_time": 2473,
23
+ "duration": "41",
24
+ "mileage": "19200",
25
+ "show_status": 4,
26
+ "show_status_name": "已完成",
27
+ "to_order_detail": "N",
28
+ "order_service_type": 1,
29
+ "order_service_type_name": "实时单",
30
+ "driver_name": "亢师傅",
31
+ "driver_phone": "17677632483",
32
+ "license_plate": "沪C7***15",
33
+ "car_type": "起亚K5",
34
+ "car_color": "金色",
35
+ "fee_detail": "",
36
+ "request_time": "2026-08-14 16:48:07",
37
+ "depart_time": 1786697287,
38
+ "get_on_time": "",
39
+ "get_off_time": ""
40
+ }
41
+ ],
42
+ "request_id": "8d5f00c80f8d22ce"
43
+ }
44
+ }
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ export default (data, gValue, gColor, oldData) => {
4
+ return [
5
+ //高级
6
+ {
7
+ label: '订单详情',
8
+ groupKey:'advanced',
9
+ className: 'input100',
10
+ ele: 'xd-select-pages-path',
11
+ valueKey: 'orderDetailsPath',
12
+ placeholder: '请选择订单详情跳转路径',
13
+ labelInline: true,
14
+ inline: false,
15
+ value: data['orderDetailsPath'] || null,
16
+ setting: {
17
+ mode:'new',
18
+ router: XdBus.getParentApi('getPagesTree')
19
+ },
20
+ },
21
+ ].filter(i=>i)
22
+ }