Przeglądaj źródła

Merge branch 'work_order_version6.3' into zengjun

ajun 4 lat temu
rodzic
commit
2d2037f5ae

+ 4 - 1
app/WorkOrderDetail.php

@@ -21,11 +21,14 @@ class WorkOrderDetail extends Model
         'sku_amount',               // 破损sku数
         'receive_address',          // 收方信息
         'reissue_logistic_number',  // 补发单号
-        'return_logistic_number',   // 退回单号
+        'return_logistic_number',   // 退回单号 (错漏发:商家填写) (破损:创建时填写)
         'logistic_number',          // 快递单号
         'status',                   // 当前状态
         'remark',                   // 创建工单时的问题标记
         'tag',                      // 标记当前工单是否为历史标记
+        'return_address',           // 退回单 寄件人地址
+        'return_phone',             // 退回单 寄件人联系号码
+        'return_name',              // 退回单 寄件人姓名
     ];
 
     static public $enums = [

+ 36 - 0
database/migrations/2021_11_30_150432_work_order_details_add_return_info.php

@@ -0,0 +1,36 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class WorkOrderDetailsAddReturnInfo extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::table('work_order_details', function (Blueprint $table) {
+            $table->string('return_name')->comment('寄件人');
+            $table->string('return_address')->comment('寄件地址');
+            $table->string('return_phone')->comment('寄件人联系号码');
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::table('work_order_details', function (Blueprint $table) {
+            $table->dropColumn('return_name');
+            $table->dropColumn('return_address');
+            $table->dropColumn('return_phone');
+        });
+    }
+}

+ 3 - 3
resources/views/order/index/_work_order_modal.blade.php

@@ -41,13 +41,13 @@
                                placeholder="破损商品价值自动计算" disabled>
                     </div>
                 </div>
-                {{--快递单号--}}
+                {{--退回单号--}}
                 <div class="form-group row" v-if="'破损' === workOrder.orderIssueType">
                     <label for="work-order-logistic-number"
-                           class="col-sm-2 col-form-label text-right text-primary">退回单号</label>
+                           class="col-sm-2 col-form-label text-right">退回单号</label>
                     <div class="col-sm-10">
                         <input type="text" id="work-order-logistic-number" class="form-control"
-                               v-model="workOrder['logistic_number']" placeholder="快递单号">
+                               v-model="workOrder['return_logistic_number']" placeholder="快递单号">
                     </div>
                 </div>
 

+ 2 - 0
resources/views/order/index/delivering.blade.php

@@ -1389,8 +1389,10 @@
                     let packageImages = this.getImages(this.workOrder.packageImages);                   // 外包装破损图片
                     let commodityImages = this.getImages(this.workOrder.commodityImages);               // 内物破损图片
                     let dealImages = this.getImages(this.workOrder.dealImages);                         // 交易截图
+                    let return_logistic_number = this.workOrder.return_logistic_number;             // 交易截图
                     if (!this.checkDamagedWorkOrder(packageImages,commodityImages,dealImages)) return;
                     let formData = this.getDamagedFormData(packageImages,commodityImages,dealImages);
+                    formData.append('return_logistic_number',return_logistic_number ? return_logistic_number : '');
                     let url = "{{route('workOrder.damage.storeApi')}}";
                     this.createWorkOrder(formData, url);
                 },

+ 4 - 1
resources/views/order/workOrder/_bao_shi_review_modal.blade.php

@@ -191,7 +191,10 @@
             </div>
             <div class="modal-footer">
                 <button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
-                <button type="button" class="btn btn-outline-primary" @click="baoShiEdit">终审</button>
+                <button type="button" class="btn btn-outline-primary" @click="baoShiEdit">
+                    <span v-if="'错漏发' === baoShiEditWorkOrder.issue_type_name">提交</span>
+                    <span v-else>终审</span>
+                </button>
             </div>
         </div>
     </div>

+ 40 - 1
resources/views/order/workOrder/_owner_fill_work_order_modal.blade.php

@@ -144,7 +144,46 @@
                 </div>
             </div>
             <div class="modal-body" v-if="'待货主完结' === ownerEditWorKOrder.status && '错漏发' === ownerEditWorKOrder.issue_type_name">
-                <table class="table text-center">
+                {{--退回快递单号--}}
+                <div class="form-group row" v-if="hasReturnLogisticNumber(ownerEditWorKOrder.commodities)">
+                    <label for="work-order-logistic-number"
+                           class="col-sm-2 col-form-label text-right"><span class="text-danger">*</span>退回快递单号</label>
+                    <div class="col-sm-10">
+                        <input type="text" id="work-order-logistic-number" class="form-control"
+                               v-model="ownerEditWorKOrder['return_logistic_number']" placeholder="退回快递单号">
+                    </div>
+                </div>
+                <template v-if="hasReturnAddressInfo(ownerEditWorKOrder.commodities)">
+                    {{--上门取件-联系人--}}
+                    <div class="form-group row">
+                        <label for="work-order-logistic-number"
+                               class="col-sm-2 col-form-label text-right"><span class="text-danger">*</span>联系人</label>
+                        <div class="col-sm-10">
+                            <input type="text" id="work-order-logistic-number" class="form-control"
+                                   v-model="ownerEditWorKOrder['return_name']" placeholder="联系人">
+                        </div>
+                    </div>
+                    {{--上门取件-地址--}}
+                    <div class="form-group row">
+                        <label for="work-order-logistic-number"
+                               class="col-sm-2 col-form-label text-right"><span class="text-danger">*</span>地址</label>
+                        <div class="col-sm-10">
+                            <input type="text" id="work-order-logistic-number" class="form-control"
+                                   v-model="ownerEditWorKOrder['return_address']" placeholder="地址">
+                        </div>
+                    </div>
+                    {{--上门取件-联系号码--}}
+                    <div class="form-group row">
+                        <label for="work-order-logistic-number"
+                               class="col-sm-2 col-form-label text-right"><span class="text-danger">*</span>联系号码</label>
+                        <div class="col-sm-10">
+                            <input type="text" id="work-order-logistic-number" class="form-control"
+                                   v-model="ownerEditWorKOrder['return_phone']" placeholder="联系号码">
+                        </div>
+                    </div>
+                </template>
+
+                <table class="table text-center border">
                     <thead>
                     <tr>
                         <td>快递单号</td>

+ 24 - 5
resources/views/order/workOrder/_work_order_details.blade.php

@@ -15,20 +15,39 @@
 <transition name="fade">
     <div class="alert alert-light mb-0 border"
          v-show="selectDetailId === item.id"
-         v-if="item.details && item.details.length > 0">
-        <div class="card-body row col-12 mb-0 pb-0 "
-             v-for="(detail) in item.details">
-            <div v-if="Number(detail.price) !== 0" class="col-12 border-bottom">
+         v-for="(detail) in (item.details ? item.details : [])">
+            <div class="col-12 border-top">
                 <span
                     class="badge float-right"
                     :class="getBadgeColor(detail.tag)"
                     v-text="detail.issue_type ? detail.issue_type.name : ''"></span>
+                <span >创建时间:</span>
+                <span v-text="detail.created_at"></span>
+            </div>
+            <div v-if="Number(detail.price) !== 0" class="col-12">
                 <span class="text-monospace">商品价值:</span>
                 <span v-text="detail.price"></span>
             </div>
-        </div>
+            <div v-if="detail.return_logistic_number" class="col-12">
+                <span class="text-monospace">退回单号:</span>
+                <span v-text="detail.return_logistic_number"></span>
+            </div>
+            <div v-if="detail.return_name" class="col-12">
+                <span class="text-monospace">寄件人:</span>
+                <span v-text="detail.return_name"></span>
+            </div>
+            <div v-if="detail.return_address" class="col-12">
+                <span class="text-monospace">地址:</span>
+                <span v-text="detail.return_address"></span>
+            </div>
+            <div v-if="detail.return_phone" class="col-12">
+                <span class="text-monospace">联系号码:</span>
+                <span v-text="detail.return_phone"></span>
+            </div>
     </div>
 </transition>
+
+
 <transition name="fade">
     <div class="alert alert-light mb-0 border border-top"
          v-show="selectDetailId === item.id"

+ 42 - 6
resources/views/order/workOrder/index.blade.php

@@ -85,7 +85,8 @@
                                                 style="background-color: #54c337;color: #FFFFFF;border-color:#90acb6;"
                                                 v-if="isBaoShiReview(item)"
                                                 @click="baoShiShowEdit(item,i)">
-                                            终审
+                                            <span v-if="'错漏发' ===  item.issue_type_name">宝时处理</span>
+                                            <span v-else>终审</span>
                                         </button>
                                     @endcan
                                 </td>
@@ -335,6 +336,10 @@
                     refundImages: [], // 退款图
                     dealImages: [], // 交易图
                     commodities: [],
+                    return_logistic_number:null,
+                    return_name:null,
+                    return_address:null,
+                    return_phone:null,
                 },
                 fillWorkOrder: {
                     id: null,
@@ -511,6 +516,9 @@
                         return_logistic_number: detail.return_logistic_number,
                         remark: detail.remark,
                         tag: detail.tag,
+                        return_address: detail.return_address,
+                        return_phone: detail.return_phone,
+                        return_name: detail.return_name,
                     };
                 },
                 groupCommodities(workOrder, isCurrent = true) {
@@ -1276,10 +1284,8 @@
                             return;
                         }
                         let formData = new FormData();
-                        let {detail_id, reissue_logistic_number, logistic_number, price, dealImages, refundImages,commodities} = this.ownerEditWorKOrder;
+                        let {detail_id, price, dealImages, refundImages,commodities} = this.ownerEditWorKOrder;
                         formData.append('detail_id', detail_id);
-                        formData.append('reissue_logistic_number', reissue_logistic_number);
-                        formData.append('logistic_number', logistic_number);
                         formData.append('price', price);
                         dealImages = this.getImages(dealImages);
                         refundImages = this.getImages(refundImages);
@@ -1315,8 +1321,13 @@
                         }
                         let url = '{{route('workOrder.mistake.owner.handlerAndEndApi')}}';
                         let formData = new FormData();
-                        let {detail_id, commodities} = this.ownerEditWorKOrder;
+                        let {detail_id, commodities,return_logistic_number,
+                            return_address,return_phone,return_name,} = this.ownerEditWorKOrder;
                         formData.append('detail_id', detail_id);
+                        formData.append('return_logistic_number',return_logistic_number ? return_logistic_number : '');
+                        formData.append('return_address', return_address ? return_address : '');
+                        formData.append('return_phone', return_phone ? return_phone : '');
+                        formData.append('return_name', return_name ? return_name : '');
                         commodities.forEach(e => {
                             formData.append("commodities[]", JSON.stringify(e));
                         });
@@ -1381,6 +1392,19 @@
                         if (filters.length > 0 ){
                             return {success: false, message: '商品详情中的处理项,和处理子项 未必选项'};
                         }
+                        // hasReturnAddressInfo
+                        // hasReturnLogisticNumber
+                        if(this.hasReturnAddressInfo(this.ownerEditWorKOrder.commodities)){
+                            if (!this.ownerEditWorKOrder.return_name || !this.ownerEditWorKOrder.return_address || !this.ownerEditWorKOrder.return_phone){
+                                return {success: false, message: '完整填写寄件人信息'};
+                            }
+                        }
+                        if(this.hasReturnLogisticNumber(this.ownerEditWorKOrder.commodities)){
+                            if (!this.ownerEditWorKOrder.return_logistic_number ){
+                                return {success: false, message: '填写退回快递单号'};
+                            }
+                        }
+
                     }
                     return {success: true};
                 },
@@ -1500,7 +1524,19 @@
                             commodities[index]['count'] = count;
                         }
                     }
-                }
+                },
+                hasReturnAddressInfo(commodities){
+                    let filter = commodities.filter(e=>{
+                        return e.process_result_info.includes('宝时上门取件');
+                    });
+                    return filter.length > 0;
+                },
+                hasReturnLogisticNumber(commodities){
+                    let filter = commodities.filter(e=>{
+                        return e.process_result_info.includes('客户自行退回');
+                    });
+                    return filter.length > 0;
+                },
             },
         });
     </script>