storeBelieveInLight пре 1 година
родитељ
комит
148a11dbe5
2 измењених фајлова са 459 додато и 11 уклоњено
  1. 3 1
      pages/ordermanagement/index.vue
  2. 456 10
      shop/afterSalesManagement/afterSalesDetail.vue

+ 3 - 1
pages/ordermanagement/index.vue

@@ -165,9 +165,10 @@ export default {
165 165
 
166 166
     await readAppInfo();
167 167
     await getPhpToken();
168
+   
168 169
     let jurisdiction = uni.getStorageSync("jurisdiction") || [];
169 170
     console.log("jurisdiction", jurisdiction);
170
-    let mnuList = this.mnu;
171
+    let mnuList = this.mnu || [];
171 172
     if (jurisdiction) {
172 173
       jurisdiction.forEach((res, index) => {
173 174
         mnuList.forEach((result, i) => {
@@ -229,6 +230,7 @@ export default {
229 230
         return;
230 231
       }
231 232
     } else {
233
+       return
232 234
       uni.redirectTo({
233 235
         url: "/pages/user/login/index?type=1",
234 236
       });

+ 456 - 10
shop/afterSalesManagement/afterSalesDetail.vue

@@ -38,7 +38,7 @@
38 38
               ? "退货退款"
39 39
               : ""
40 40
           }} -->
41
-          <view
41
+          <!-- <view
42 42
             class="no-cs-tuihuo"
43 43
             :class="[
44 44
               storeRefundOrder && storeRefundOrder.status == 2
@@ -46,9 +46,9 @@
46 46
                 : '',
47 47
             ]"
48 48
             >{{ formatDataValue1("status") }}</view
49
-          >
49
+          > -->
50 50
           <!-- 退货退款成功 已发货仅退款成功-->
51
-          <view
51
+          <!-- <view
52 52
             class="content--tuihuo-icon"
53 53
             v-if="storeRefundOrder && storeRefundOrder.status != 0"
54 54
           >
@@ -58,7 +58,7 @@
58 58
               color="#999999"
59 59
               class="arrow_right_log"
60 60
             ></uni-icons>
61
-          </view>
61
+          </view> -->
62 62
         </view>
63 63
       </view>
64 64
       <!-- 物流信息卡片  1、退货退款成功   2、退货退款失败 3、退货中 -->
@@ -140,6 +140,15 @@
140 140
         部分退款并完成售后
141 141
       </view>
142 142
     </view>
143
+    <view class="btn-list" v-else>
144
+      <view
145
+        class="btn primary"
146
+        style="width: calc(100% - 40rpx); margin: 0 20rpx"
147
+        @click="onHandleclickJindu(storeRefundOrder, 'jindu')"
148
+      >
149
+        售后进度
150
+      </view>
151
+    </view>
143 152
     <uni-popup
144 153
       ref="popup"
145 154
       type="center"
@@ -157,6 +166,20 @@
157 166
           ></uni-icons>
158 167
         </view>
159 168
         <view class="popup_data__content">
169
+          <uni-section
170
+            title="用户备注:"
171
+            type="line"
172
+            padding
173
+            v-if="storeRefundOrder.mark && storeRefundOrder.mark.length > 0"
174
+          >
175
+            <uni-easyinput
176
+              type="textarea"
177
+              autoHeight
178
+              :maxlength="500"
179
+              :disabled="true"
180
+              v-model="storeRefundOrder.mark"
181
+            ></uni-easyinput>
182
+          </uni-section>
160 183
           <!-- 1.同意 -1.拒绝 2.部分退款 -->
161 184
           <!-- 拒绝只用输入框  -1.拒绝-->
162 185
           <uni-section
@@ -257,6 +280,335 @@
257 280
         </view>
258 281
       </view>
259 282
     </uni-popup>
283
+
284
+    <uni-popup
285
+      ref="popupRefsTuikuan"
286
+      type="bottom"
287
+      :animation="true"
288
+      :is-mask-click="false"
289
+    >
290
+      <view class="popup_data">
291
+        <view class="popup_data__headers">
292
+          <view class="popup_data__headers--title">售后进度</view>
293
+          <uni-icons
294
+            type="closeempty"
295
+            class="custom_icons"
296
+            size="30"
297
+            @click="handleClosexxx"
298
+          ></uni-icons>
299
+        </view>
300
+        <view class="popup_data__content_eee">
301
+          <!-- 仅退款 -->
302
+          <template v-if="storeRefundOrder.refund_type == 1">
303
+            <view class="info-content">
304
+              <view class="info-item">
305
+                <text class="label">售后类型:</text>
306
+                <text class="value">{{
307
+                  storeRefundOrder.refund_type == 1
308
+                    ? "仅退款"
309
+                    : storeRefundOrder.refund_type == 2
310
+                    ? "退货退款"
311
+                    : ""
312
+                }}</text>
313
+              </view>
314
+              <view class="info-item">
315
+                <text class="label">申请金额:</text>
316
+                <text class="value"
317
+                  >¥{{ storeRefundOrder.refund_price || 0 }}</text
318
+                >
319
+              </view>
320
+              <view class="info-item">
321
+                <text class="label">售后状态:</text>
322
+                <text class="value">{{
323
+                  storeRefundOrder.status == 0
324
+                    ? "审核中"
325
+                    : storeRefundOrder.status == 1
326
+                    ? "处理中"
327
+                    : storeRefundOrder.status == 2
328
+                    ? "待收货"
329
+                    : "已完成"
330
+                }}</text>
331
+              </view>
332
+
333
+              <view class="progress-wrap">
334
+                <text class="progress-label"
335
+                  >售后进度</text
336
+                >
337
+                <view class="vertical-timeline">
338
+                  <view class="timeline-node">
339
+                    <view class="timeline-vertical-line">
340
+                      <view class="blue-dot"></view>
341
+
342
+                      <!-- 点下方竖线 -->
343
+                    </view>
344
+                    <view class="node-content">
345
+                      <text style="color: blue">售后申请</text>
346
+                      <text class="time">{{
347
+                        storeRefundOrder.create_time
348
+                      }}</text>
349
+                    </view>
350
+                  </view>
351
+                  <view class="timeline-node">
352
+                    <view class="timeline-vertical-line">
353
+                      <view class="blue-dot"></view>
354
+                    </view>
355
+                    <view class="node-content">
356
+                      <text style="color: blue">商家处理</text>
357
+                      <text
358
+                        class="time"
359
+                        v-if="
360
+                          storeRefundOrder.status != 3 &&
361
+                          storeRefundOrder.status != 5
362
+                        "
363
+                        style="color: transparent"
364
+                        >{{ storeRefundOrder.create_time }}</text
365
+                      >
366
+                      <text
367
+                        class="time"
368
+                        v-if="
369
+                          storeRefundOrder.status == 3 ||
370
+                          storeRefundOrder.status == 5 ||
371
+                          storeRefundOrder.status == -1
372
+                        "
373
+                        >{{ storeRefundOrder.handle_time }}</text
374
+                      >
375
+                    </view>
376
+                  </view>
377
+                  <view class="timeline-node last-node">
378
+                    <view class="timeline-vertical-line">
379
+                      <view class="blue-dot"></view>
380
+                    </view>
381
+                    <view class="node-content">
382
+                      <text
383
+                        v-if="
384
+                          storeRefundOrder.status != 3 &&
385
+                          storeRefundOrder.status != 5 &&
386
+                          storeRefundOrder.status != -1
387
+                        "
388
+                        >售后完成</text
389
+                      >
390
+                      <text
391
+                        style="color: blue"
392
+                        v-if="
393
+                          storeRefundOrder.status == 3 ||
394
+                          storeRefundOrder.status == 5 ||
395
+                          storeRefundOrder.status == -1
396
+                        "
397
+                        >售后完成</text
398
+                      >
399
+                      <text
400
+                        class="time"
401
+                        v-if="
402
+                          storeRefundOrder.status != 3 &&
403
+                          storeRefundOrder.status != 5
404
+                        "
405
+                        style="color: transparent"
406
+                        >{{ storeRefundOrder.create_time }}</text
407
+                      >
408
+                      <text
409
+                        class="time"
410
+                        v-if="
411
+                          storeRefundOrder.status == 3 ||
412
+                          storeRefundOrder.status == 5 ||
413
+                          storeRefundOrder.status == -1
414
+                        "
415
+                        >{{ storeRefundOrder.complete_time }}</text
416
+                      >
417
+                    </view>
418
+                  </view>
419
+                </view>
420
+              </view>
421
+
422
+              <view
423
+                class="info-item"
424
+                style="margin-top: 20rpx"
425
+                v-if="
426
+                  storeRefundOrder.status == 3 || storeRefundOrder.status == 5
427
+                "
428
+              >
429
+                <text class="label">退款金额:</text>
430
+                <text class="value">¥{{ storeRefundOrder.refund_price }}</text>
431
+              </view>
432
+              <view
433
+                class="info-item"
434
+                style="margin-top: 20rpx"
435
+                v-if="storeRefundOrder.status == 5"
436
+              >
437
+                <text class="label">商家备注:</text>
438
+                <text class="value">{{ storeRefundOrder.mark }}</text>
439
+              </view>
440
+              <view
441
+                class="info-item"
442
+                style="margin-top: 20rpx"
443
+                v-if="
444
+                  storeRefundOrder.status == 4 || storeRefundOrder.status == -1
445
+                "
446
+              >
447
+                <text class="label">拒绝原因:</text>
448
+                <text class="value">{{ storeRefundOrder.fail_message }}</text>
449
+              </view>
450
+            </view>
451
+          </template>
452
+          <!-- 退货退款 -->
453
+          <template v-else>
454
+            <view class="info-content">
455
+              <view class="info-item">
456
+                <text class="label">售后类型:</text>
457
+                <text class="value">{{
458
+                  storeRefundOrder.refund_type == 1
459
+                    ? "仅退款"
460
+                    : storeRefundOrder.refund_type == 2
461
+                    ? "退货退款"
462
+                    : ""
463
+                }}</text>
464
+              </view>
465
+              <view class="info-item">
466
+                <text class="label">申请金额:</text>
467
+                <text class="value"
468
+                  >¥{{ storeRefundOrder.refund_price || 0 }}</text
469
+                >
470
+              </view>
471
+              <view class="info-item">
472
+                <text class="label">售后状态:</text>
473
+                <text class="value">{{
474
+                  storeRefundOrder.status == 0
475
+                    ? "审核中"
476
+                    : storeRefundOrder.status == 1
477
+                    ? "处理中"
478
+                    : storeRefundOrder.status == 2
479
+                    ? "待收货"
480
+                    : "已完成"
481
+                }}</text>
482
+              </view>
483
+
484
+              <view class="progress-wrap">
485
+                <text class="progress-label"
486
+                  >售后进度</text
487
+                >
488
+                <view class="vertical-timeline">
489
+                  <view class="timeline-node">
490
+                    <view class="timeline-vertical-line">
491
+                      <view class="blue-dot"></view>
492
+
493
+                      <!-- 点下方竖线 -->
494
+                    </view>
495
+                    <view class="node-content">
496
+                      <text style="color: blue">售后申请</text>
497
+                      <text class="time">{{
498
+                        storeRefundOrder.create_time
499
+                      }}</text>
500
+                    </view>
501
+                  </view>
502
+                  <view class="timeline-node">
503
+                    <view class="timeline-vertical-line">
504
+                      <view class="blue-dot"></view>
505
+                    </view>
506
+                    <view class="node-content">
507
+                      <text v-if="storeRefundOrder.status == 0">商家同意</text>
508
+                      <text style="color: blue" v-else>商家同意</text>
509
+                      <text
510
+                        class="time"
511
+                        v-if="storeRefundOrder.status == 0"
512
+                        style="color: transparent"
513
+                        >{{ storeRefundOrder.create_time }}</text
514
+                      >
515
+                      <text class="time" v-else>{{
516
+                        storeRefundOrder.handle_time
517
+                      }}</text>
518
+                    </view>
519
+                  </view>
520
+                  <view class="timeline-node">
521
+                    <view class="timeline-vertical-line">
522
+                      <view class="blue-dot"></view>
523
+                    </view>
524
+                    <view class="node-content">
525
+                      <text
526
+                        v-if="
527
+                          storeRefundOrder.status == 0 ||
528
+                          storeRefundOrder.status == 1
529
+                        "
530
+                        >商品寄回</text
531
+                      >
532
+                      <text style="color: blue" v-else>商品寄回</text>
533
+                      <text
534
+                        class="time"
535
+                        v-if="
536
+                          storeRefundOrder.status == 0 ||
537
+                          storeRefundOrder.status == 1
538
+                        "
539
+                        style="color: transparent"
540
+                        >{{ storeRefundOrder.create_time }}</text
541
+                      >
542
+                      <text class="time" v-else>{{
543
+                        storeRefundOrder.delivery_time
544
+                      }}</text>
545
+                    </view>
546
+                  </view>
547
+                  <view class="timeline-node last-node">
548
+                    <view class="timeline-vertical-line">
549
+                      <view class="blue-dot"></view>
550
+                    </view>
551
+                    <view class="node-content">
552
+                      <text
553
+                        v-if="
554
+                          storeRefundOrder.status == 0 ||
555
+                          storeRefundOrder.status == 1 ||
556
+                          storeRefundOrder.status == 2
557
+                        "
558
+                        >售后完成</text
559
+                      >
560
+                      <text style="color: blue" v-else>售后完成</text>
561
+                      <text
562
+                        class="time"
563
+                        v-if="
564
+                          storeRefundOrder.status == 0 ||
565
+                          storeRefundOrder.status == 1 ||
566
+                          storeRefundOrder.status == 2
567
+                        "
568
+                        style="color: transparent"
569
+                        >{{ storeRefundOrder.create_time }}</text
570
+                      >
571
+                      <text class="time" v-else>{{
572
+                        storeRefundOrder.delivery_time
573
+                      }}</text>
574
+                    </view>
575
+                  </view>
576
+                </view>
577
+              </view>
578
+
579
+              <view
580
+                class="info-item"
581
+                style="margin-top: 20rpx"
582
+                v-if="
583
+                  storeRefundOrder.status == 3 || storeRefundOrder.status == 5
584
+                "
585
+              >
586
+                <text class="label">退款金额:</text>
587
+                <text class="value">¥{{ storeRefundOrder.refund_price }}</text>
588
+              </view>
589
+              <view
590
+                class="info-item"
591
+                style="margin-top: 20rpx"
592
+                v-if="storeRefundOrder.status == 5"
593
+              >
594
+                <text class="label">商家备注:</text>
595
+                <text class="value">{{ storeRefundOrder.mark }}</text>
596
+              </view>
597
+              <view
598
+                class="info-item"
599
+                style="margin-top: 20rpx"
600
+                v-if="
601
+                  storeRefundOrder.status == 4 || storeRefundOrder.status == -1
602
+                "
603
+              >
604
+                <text class="label">拒绝原因:</text>
605
+                <text class="value">{{ storeRefundOrder.fail_message }}</text>
606
+              </view>
607
+            </view>
608
+          </template>
609
+        </view>
610
+      </view>
611
+    </uni-popup>
260 612
   </view>
261 613
 </template>
262 614
 
@@ -550,8 +902,9 @@ export default {
550 902
         indexs: this.indexs,
551 903
         formType: "shouhouDetail",
552 904
         order_id: this.order_id,
553
-        shouhou:0,
554
-        refund_order_id: item.refund_order_id || this.storeRefundOrder.refund_order_id || "",
905
+        shouhou: 0,
906
+        refund_order_id:
907
+          item.refund_order_id || this.storeRefundOrder.refund_order_id || "",
555 908
       };
556 909
 
557 910
       const urlParams = toQueryString(params);
@@ -580,15 +933,23 @@ export default {
580 933
         this.popUpTitle = "部分退款并完成售后";
581 934
       }
582 935
     },
936
+    onHandleclickJindu(item, type) {
937
+      this.$refs.popupRefsTuikuan.open();
938
+      console.log(item);
939
+    },
940
+    handleClosexxx(){
941
+      this.$refs.popupRefsTuikuan.close();
942
+    }
583 943
   },
584 944
   computed: {
585 945
     getBtnAuth() {
586 946
       if (
947
+        (this.storeRefundOrder.refund_type == 1 &&
948
+          this.storeRefundOrder.status == 0) ||
949
+        (this.storeRefundOrder.refund_type == 2 &&
950
+          this.storeRefundOrder.status == 2) ||
587 951
         (this.storeRefundOrder.refund_type == 2 &&
588
-          (this.storeRefundOrder.status == 1 ||
589
-            this.storeRefundOrder.status == 2)) ||
590
-        (this.storeRefundOrder.status == 0 &&
591
-          this.storeRefundOrder.refund_type == 1)
952
+          this.storeRefundOrder.status == 0)
592 953
       ) {
593 954
         return true;
594 955
       } else {
@@ -831,4 +1192,89 @@ page {
831 1192
   align-items: center;
832 1193
   margin-top: 20rpx;
833 1194
 }
1195
+.info-content {
1196
+  margin-top: 20rpx;
1197
+}
1198
+
1199
+.info-item {
1200
+  display: flex;
1201
+  align-items: center;
1202
+  margin-bottom: 15rpx;
1203
+}
1204
+
1205
+.label {
1206
+  width: 160rpx;
1207
+  color: #666;
1208
+  font-size: 26rpx;
1209
+}
1210
+
1211
+.value {
1212
+  color: #333;
1213
+  font-size: 24rpx;
1214
+}
1215
+
1216
+.progress-wrap {
1217
+  margin: 28rpx 0;
1218
+}
1219
+
1220
+.progress-label {
1221
+  display: block;
1222
+  color: #666;
1223
+  font-size: 28rpx;
1224
+  margin-bottom: 16rpx;
1225
+}
1226
+
1227
+.vertical-timeline {
1228
+  position: relative;
1229
+  padding-left: 32rpx;
1230
+}
1231
+
1232
+.timeline-node {
1233
+  margin-bottom: 30rpx;
1234
+  position: relative;
1235
+}
1236
+
1237
+.timeline-vertical-line {
1238
+  position: relative;
1239
+  left: 20rpx;
1240
+  width: 2rpx;
1241
+  background: #e0e0e0;
1242
+}
1243
+
1244
+.blue-dot {
1245
+  width: 16rpx;
1246
+  height: 16rpx;
1247
+  background: #409eff;
1248
+  border-radius: 50%;
1249
+  position: absolute;
1250
+  left: -10rpx;
1251
+  top: 15rpx;
1252
+  transform: translateY(-50%);
1253
+}
1254
+
1255
+.line-below-dot {
1256
+  width: 4rpx;
1257
+  height: 100%;
1258
+  background: #e0e0e0;
1259
+  margin-top: 16rpx; /* 蓝色点高度 + 间距 */
1260
+}
1261
+
1262
+.last-node .line-below-dot {
1263
+  display: none; /* 最后一个节点隐藏下方竖线 */
1264
+}
1265
+
1266
+.node-content {
1267
+  padding-left: 30rpx;
1268
+}
1269
+
1270
+.time {
1271
+  font-size: 24rpx;
1272
+  color: #999;
1273
+  display: block;
1274
+  margin-top: 10rpx;
1275
+}
1276
+.popup_data__content_eee {
1277
+  overflow: auto;
1278
+  max-height: 800rpx;
1279
+}
834 1280
 </style>