YY 2 anos atrás
pai
commit
5b1081607d

+ 14 - 3
src/views/platmanag/sales/detail.vue

@@ -99,6 +99,7 @@
             @querySearch="querySearch"
             :customer="customer"
             :shopList="shopList"
+            :transport="transport"
           ></steps-3>
           <steps-4 v-if="info.type == '4'" @exam="exam" :active="active"></steps-4>
           <steps-5 v-if="info.type == '5'" @exam="exam" :active="active"></steps-5>
@@ -230,7 +231,7 @@ export default {
                 let shopList = res.data.shop.list;
                 this.$set(this, `shopList`, shopList);
                 shopList[0].color = '#0bbd87';
-                if (res.data.shop.is_check == '已签收' && this.info.status == '3') this.$set(this, `active`, 4);
+                // if (res.data.shop.is_check == '已签收' && this.info.status == '3') this.$set(this, `active`, 4);
               }
               this.$set(this, `activit`, res.data);
             }
@@ -241,7 +242,12 @@ export default {
     async exam(status) {
       let info = this.info;
       info.status = status;
-      if (status == '-2') info.transport.shop_receive = true;
+      if (status == '-2' || info.transport) info.transport.shop_receive = true;
+      else if (status == '-2' || !info.transport) {
+        let transport = {};
+        transport.shop_receive = true;
+        info.transport = transport;
+      }
       if (status == '-3') info.transport.customer_receive = true;
       let res;
       this.$confirm('是否确认修改售后状态', '提示', {
@@ -265,7 +271,12 @@ export default {
     async onSubmit(val) {
       let info = this.info;
       let res;
-      info.transport = { ...info.transport, shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
+      if (info.transport) {
+        info.transport = { ...info.transport, shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
+      } else {
+        let transport = { shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
+        info.transport = transport;
+      }
       if (info.id) res = await this.update(info);
       if (this.$checkRes(res)) {
         this.$message({ type: `success`, message: `维护信息成功` });

+ 23 - 8
src/views/platmanag/sales/parts/steps-3.vue

@@ -36,11 +36,8 @@
           <el-col v-if="active == 3">
             <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">店铺{{ getCheck() || '暂无快递信息' }}</el-col>
             <el-col>
-              <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
-                <el-form-item label="寄出运单号" prop="shop_transport_no">
-                  <el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递类型,同时填入" size="small"></el-input>
-                </el-form-item>
-                <el-form-item label="快递类型" prop="shop_transport_type">
+              <data-form :fields="infoFields" :rules="rules" v-model="form" labelWidth="150px" @save="onSubmit">
+                <template #shop_transport_type>
                   <el-select
                     v-model="form.shop_transport_type"
                     filterable
@@ -55,18 +52,28 @@
                   >
                     <el-option v-for="item in shop_transport_typeList" :key="item.id" :label="item.label" :value="item.value"> </el-option>
                   </el-select>
+                </template>
+              </data-form>
+              <!-- <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
+                <el-form-item label="寄出运单号" prop="shop_transport_no">
+                  <el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递类型,同时填入" size="small"></el-input>
+                </el-form-item>
+                <el-form-item label="快递类型" prop="shop_transport_type">
+                  
                 </el-form-item>
                 <el-form-item>
                   <el-button type="primary" @click="onSubmit()">保存</el-button>
                 </el-form-item>
-              </el-form>
+              </el-form> -->
             </el-col>
           </el-col>
           <el-col v-if="active == 4">
             <el-col :span="24" style="text-align: center; margin-top: 15px">
               <el-button type="primary" @click="exam('-3')" style="margin: 10px 0">已换货</el-button>
             </el-col>
-            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">买家{{ getCheckOne() || '暂无快递信息' }}</el-col>
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px" v-if="transport.customer_receive == true"
+              >买家{{ getCheckOne() || '暂无快递信息' }}</el-col
+            >
             <el-col :span="24">
               <el-timeline :reverse="reverse">
                 <el-timeline-item v-for="(activity, index) in shopList" :key="index" :timestamp="activity.time" :color="activity.color">
@@ -98,13 +105,21 @@ export default {
     customer: { type: Array },
     shopList: { type: Array },
     activit: { type: Object },
+    transport: { type: Object },
   },
   components: {},
   data: function () {
     return {
       loading: false,
       reverse: false,
-      shop_receiveList: [{ label: '已签收', value: true }],
+      infoFields: [
+        { label: '快递单号', model: 'shop_transport_no' },
+        { label: '快递类型', model: 'shop_transport_type', custom: true },
+      ],
+      rules: {
+        shop_transport_no: [{ required: true, message: '请输入快递单号', trigger: 'blur' }],
+        shop_transport_type: [{ required: true, message: '请选择快递类型', trigger: 'change' }],
+      },
     };
   },
   created() {},

+ 14 - 3
src/views/selfShop/sales/detail.vue

@@ -99,6 +99,7 @@
             @querySearch="querySearch"
             :customer="customer"
             :shopList="shopList"
+            :transport="transport"
           ></steps-3>
           <steps-4 v-if="info.type == '4'" @exam="exam" :active="active"></steps-4>
           <steps-5 v-if="info.type == '5'" @exam="exam" :active="active"></steps-5>
@@ -230,7 +231,7 @@ export default {
                 let shopList = res.data.shop.list;
                 this.$set(this, `shopList`, shopList);
                 shopList[0].color = '#0bbd87';
-                if (res.data.shop.is_check == '已签收' && this.info.status == '3') this.$set(this, `active`, 4);
+                // if (res.data.shop.is_check == '已签收' && this.info.status == '3') this.$set(this, `active`, 4);
               }
               this.$set(this, `activit`, res.data);
             }
@@ -241,7 +242,12 @@ export default {
     async exam(status) {
       let info = this.info;
       info.status = status;
-      if (status == '-2') info.transport.shop_receive = true;
+      if (status == '-2' || info.transport) info.transport.shop_receive = true;
+      else if (status == '-2' || !info.transport) {
+        let transport = {};
+        transport.shop_receive = true;
+        info.transport = transport;
+      }
       if (status == '-3') info.transport.customer_receive = true;
       let res;
       this.$confirm('是否确认修改售后状态', '提示', {
@@ -265,7 +271,12 @@ export default {
     async onSubmit(val) {
       let info = this.info;
       let res;
-      info.transport = { ...info.transport, shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
+      if (info.transport) {
+        info.transport = { ...info.transport, shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
+      } else {
+        let transport = { shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
+        info.transport = transport;
+      }
       if (info.id) res = await this.update(info);
       if (this.$checkRes(res)) {
         this.$message({ type: `success`, message: `维护信息成功` });

+ 23 - 8
src/views/selfShop/sales/parts/steps-3.vue

@@ -36,11 +36,8 @@
           <el-col v-if="active == 3">
             <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">店铺{{ getCheck() || '暂无快递信息' }}</el-col>
             <el-col>
-              <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
-                <el-form-item label="寄出运单号" prop="shop_transport_no">
-                  <el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递类型,同时填入" size="small"></el-input>
-                </el-form-item>
-                <el-form-item label="快递类型" prop="shop_transport_type">
+              <data-form :fields="infoFields" :rules="rules" v-model="form" labelWidth="150px" @save="onSubmit">
+                <template #shop_transport_type>
                   <el-select
                     v-model="form.shop_transport_type"
                     filterable
@@ -55,18 +52,28 @@
                   >
                     <el-option v-for="item in shop_transport_typeList" :key="item.id" :label="item.label" :value="item.value"> </el-option>
                   </el-select>
+                </template>
+              </data-form>
+              <!-- <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
+                <el-form-item label="寄出运单号" prop="shop_transport_no">
+                  <el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递类型,同时填入" size="small"></el-input>
+                </el-form-item>
+                <el-form-item label="快递类型" prop="shop_transport_type">
+                  
                 </el-form-item>
                 <el-form-item>
                   <el-button type="primary" @click="onSubmit()">保存</el-button>
                 </el-form-item>
-              </el-form>
+              </el-form> -->
             </el-col>
           </el-col>
           <el-col v-if="active == 4">
             <el-col :span="24" style="text-align: center; margin-top: 15px">
               <el-button type="primary" @click="exam('-3')" style="margin: 10px 0">已换货</el-button>
             </el-col>
-            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">买家{{ getCheckOne() || '暂无快递信息' }}</el-col>
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px" v-if="transport.customer_receive == true"
+              >买家{{ getCheckOne() || '暂无快递信息' }}</el-col
+            >
             <el-col :span="24">
               <el-timeline :reverse="reverse">
                 <el-timeline-item v-for="(activity, index) in shopList" :key="index" :timestamp="activity.time" :color="activity.color">
@@ -98,13 +105,21 @@ export default {
     customer: { type: Array },
     shopList: { type: Array },
     activit: { type: Object },
+    transport: { type: Object },
   },
   components: {},
   data: function () {
     return {
       loading: false,
       reverse: false,
-      shop_receiveList: [{ label: '已签收', value: true }],
+      infoFields: [
+        { label: '快递单号', model: 'shop_transport_no' },
+        { label: '快递类型', model: 'shop_transport_type', custom: true },
+      ],
+      rules: {
+        shop_transport_no: [{ required: true, message: '请输入快递单号', trigger: 'blur' }],
+        shop_transport_type: [{ required: true, message: '请选择快递类型', trigger: 'change' }],
+      },
     };
   },
   created() {},