YY 2 年之前
父節點
當前提交
54c214110a

+ 2 - 0
src/store/index.js

@@ -28,6 +28,7 @@ import goods from './module/shop/goods';
 import serviceContact from './module/shop/serviceContact';
 import goodsSpec from './module/shop/goodsSpec';
 import afterSale from './module/shop/afterSale';
+import getTransportInfo from './module/shop/getTransportInfo';
 import goodsRate from './module/shop/goodsRate';
 
 import order from './module/trade/order';
@@ -62,6 +63,7 @@ export default new Vuex.Store({
     orderDetail,
     coupon,
     afterSale,
+    getTransportInfo,
     serviceContact,
     sot,
     todo,

+ 44 - 0
src/store/module/shop/getTransportInfo.js

@@ -0,0 +1,44 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+const _ = require('lodash');
+Vue.use(Vuex);
+const api = {
+  url: '/point/v1/api/afterSale/getTransportInfo',
+};
+
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit, ...info } = {}) {
+    const res = await this.$axios.$get(`${api.url}`, {
+      skip,
+      limit,
+      ...info,
+    });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.url}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.url}/${payload}`);
+    return res;
+  },
+  async update({ commit }, payload) {
+    const id = _.get(payload, 'id', _.get(payload, '_id'));
+    const res = await this.$axios.$post(`${api.url}/${id}`, payload);
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.url}/${payload}`);
+    return res;
+  },
+};
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 4 - 2
src/views/platmanag/order/detail_orderDetail.vue

@@ -226,8 +226,10 @@ export default {
               this.querySearch(type.label);
             }
             this.$set(this, `transport`, res.data.transport);
-            this.form.shop_transport_type = this.transport.shop_transport_type;
-            this.form.shop_transport_no = this.transport.shop_transport_no;
+            this.$set(this.form, `shop_transport_type`, this.transport.shop_transport_type);
+            this.$set(this.form, `shop_transport_no`, this.transport.shop_transport_no);
+            // this.form.shop_transport_type = this.transport.shop_transport_type;
+            // this.form.shop_transport_no = this.transport.shop_transport_no;
           }
           res = await this.sotFetch(this.id);
           if (this.$checkRes(res)) {

+ 120 - 72
src/views/platmanag/sales/detail.vue

@@ -5,18 +5,50 @@
         <el-col class="top-btn">
           <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
         </el-col>
-        <el-col :span="8" class="one" v-if="info.type == '1' || info.type == '2' || info.type == '3'">
+        <el-col :span="8" class="one">
           <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
-          <el-col :span="24" class="goods">
-            <el-col :span="6"><el-image :src="file"></el-image></el-col>
-            <el-col :span="18">
-              <el-col :span="12">
-                <p>{{ goods.name }}</p>
-                <p>规格:{{ good.name }}</p>
+          <el-col v-if="info.type == '1' || info.type == '2' || info.type == '3'">
+            <el-col :span="24" class="goods">
+              <el-col :span="6"><el-image :src="file"></el-image></el-col>
+              <el-col :span="18">
+                <el-col :span="12">
+                  <p>{{ goods.name }}</p>
+                  <p>规格:{{ good.name }}</p>
+                </el-col>
+                <el-col :span="12" class="money">
+                  <p>¥{{ good.sell_money }}</p>
+                  <p>X{{ good.buy_num }}</p>
+                </el-col>
               </el-col>
-              <el-col :span="12" class="money">
-                <p>¥{{ good.sell_money }}</p>
-                <p>X{{ good.buy_num }}</p>
+            </el-col>
+          </el-col>
+          <el-col v-if="info.type == '4' || info.type == '5'">
+            <el-col :span="24" v-for="(item, index) in list" :key="index">
+              <el-col :span="24" class="goods bode">
+                <el-col :span="6"><el-image :src="item.goods.file[0].url"></el-image></el-col>
+                <el-col :span="18">
+                  <el-col :span="12">
+                    <el-col>
+                      <p>{{ item.goods.name }}</p>
+                    </el-col>
+                    <el-col>
+                      <p>规格:{{ item.name }}</p>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="12" class="money">
+                    <el-col>
+                      <p>¥{{ item.sell_money }}</p>
+                    </el-col>
+                    <el-col>
+                      <p>X{{ item.buy_num }}</p>
+                    </el-col>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="bode">
+                <el-col :span="6">运费</el-col>
+                <el-col :span="18" class="other" v-if="!item.goods.freight == '0'">{{ item.goods.freight }}</el-col>
+                <el-col :span="18" class="other" v-else>包邮</el-col>
               </el-col>
             </el-col>
           </el-col>
@@ -32,7 +64,7 @@
             <el-col :span="6">售后类型</el-col>
             <el-col :span="18" class="other">{{ info.zhType }}</el-col>
           </el-col>
-          <el-col :span="24">
+          <el-col :span="24" v-if="info.type == '1' || info.type == '2' || info.type == '4' || info.type == '5'">
             <el-col :span="6">退款金额</el-col>
             <el-col :span="18" class="other">{{ info.money }}</el-col>
           </el-col>
@@ -40,67 +72,36 @@
             <el-col :span="6">售后状态</el-col>
             <el-col :span="18" class="other">{{ info.zhStatus }}</el-col>
           </el-col>
-          <el-col :span="24" v-if="info.type == '2'">
+          <el-col :span="24" v-if="info.type == '2' || info.type == '3'">
             <el-col :span="6">退回运单号</el-col>
             <el-col :span="18" class="other">{{ transport.customer_transport_no || '暂无单号' }}</el-col>
           </el-col>
-          <el-col :span="24" v-if="info.type == '2'">
+          <el-col :span="24" v-if="info.type == '3'">
             <el-col :span="6">寄出运单号</el-col>
             <el-col :span="18" class="other">{{ transport.shop_transport_no || '暂无单号' }}</el-col>
           </el-col>
-          <el-col :span="24">
+          <el-col :span="24" v-if="info.type == '1' || info.type == '2' || info.type == '3'">
             <el-col :span="6">售后描述</el-col>
             <el-col :span="18" class="other">{{ info.desc }}</el-col>
           </el-col>
         </el-col>
-        <el-col :span="8" class="one" v-if="info.type == '4' || info.type == '5'">
-          <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
-          <el-col :span="24" v-for="(item, index) in list" :key="index">
-            <el-col :span="24" class="goods bode">
-              <el-col :span="6"><el-image :src="item.goods.file[0].url"></el-image></el-col>
-              <el-col :span="18">
-                <el-col :span="12">
-                  <el-col>
-                    <p>{{ item.goods.name }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>规格:{{ item.name }}</p>
-                  </el-col>
-                </el-col>
-                <el-col :span="12" class="money">
-                  <el-col>
-                    <p v-if="form.type == '0'">¥{{ item.sell_money }}</p>
-                    <p v-else-if="form.type == '1'">¥{{ item.group_config.money }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>X{{ item.buy_num }}</p>
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="bode">
-              <el-col :span="6">运费</el-col>
-              <el-col :span="18" class="other" v-if="!item.goods.freight == '0'">{{ item.goods.freight }}</el-col>
-              <el-col :span="18" class="other" v-else>包邮</el-col>
-            </el-col>
-          </el-col>
-        </el-col>
         <el-col :span="12" class="two">
-          <steps-1 v-if="info.type == '1'" @next="next" @exam="exam" :active="active"></steps-1>
-          <steps-2 v-if="info.type == '2'" @next="next" @exam="exam" :active="active" :activities="activities"></steps-2>
+          <steps-1 v-if="info.type == '1'" @exam="exam" :active="active"></steps-1>
+          <steps-2 v-if="info.type == '2'" @exam="exam" :active="active" :customer="customer"></steps-2>
           <steps-3
             v-if="info.type == '3'"
-            @next="next"
             @exam="exam"
             :active="active"
             @onSubmit="onSubmit"
             :form="form"
             :shop_transport_typeList="shop_transport_typeList"
+            :activit="activit"
             @querySearch="querySearch"
-            :activities="activities"
+            :customer="customer"
+            :shopList="shopList"
           ></steps-3>
-          <steps-4 v-if="info.type == '4'" @next="next" @exam="exam" :active="active"></steps-4>
-          <steps-5 v-if="info.type == '5'" @next="next" @exam="exam" :active="active"></steps-5>
+          <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>
         </el-col>
       </el-col>
     </el-row>
@@ -114,6 +115,7 @@ import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
 const { mapActions } = createNamespacedHelpers('afterSale');
 const { mapActions: dictData } = createNamespacedHelpers('dictData');
 const { mapActions: sot } = createNamespacedHelpers('sot');
+const { mapActions: getTransportInfo } = createNamespacedHelpers('getTransportInfo');
 
 export default {
   name: 'form-1',
@@ -133,7 +135,9 @@ export default {
       list: [],
       // 图片
       file: '',
+      // 商品
       goods: {},
+      // 规格
       good: {},
       transport: {},
       typeList: [],
@@ -143,8 +147,10 @@ export default {
       info: {},
       // 物流
       shop_transport_typeList: [],
-      activities: [],
-      active: 0,
+      customer: [],
+      shopList: [],
+      activit: {},
+      active: 1,
     };
   },
   async created() {
@@ -154,6 +160,7 @@ export default {
   methods: {
     ...sot({ sotFetch: 'fetch' }),
     ...dictData({ dictQuery: 'query' }),
+    ...getTransportInfo({ getFetch: 'fetch' }),
     ...mapActions(['fetch', 'create', 'update']),
     // 查询
     async search() {
@@ -169,9 +176,7 @@ export default {
           // 商品
           this.$set(this, `list`, res.data.order_detail.goods);
         } else if (res.data.type == '1' || res.data.type == '2' || res.data.type == '3') {
-          if (res.data.transport) {
-            this.$set(this, `transport`, res.data.transport);
-          }
+          if (res.data.transport) this.$set(this, `transport`, res.data.transport);
           // 图片
           this.$set(this, `file`, res.data.goods.goods.file[0].url);
           // 商品
@@ -179,14 +184,67 @@ export default {
           // 规格
           this.$set(this, `good`, res.data.goods);
         }
+        // 仅退款
+        if (res.data.status == '-1') this.$set(this, `active`, 3);
+        else if (res.data.status == '!1') this.$set(this, `active`, 4);
+        // 退货
+        else if (res.data.status == '2') this.$set(this, `active`, 2);
+        else if (res.data.status == '-2') this.$set(this, `active`, 4);
+        else if (res.data.status == '!2') this.$set(this, `active`, 5);
+        // 换货
+        else if (res.data.status == '3') this.$set(this, `active`, 2);
+        else if (res.data.status == '-3') this.$set(this, `active`, 6);
+        else if (res.data.status == '!3') this.$set(this, `active`, 7);
+        // 取消订单
+        else if (res.data.status == '-4') this.$set(this, `active`, 3);
+        else if (res.data.status == '!4') this.$set(this, `active`, 4);
+        // 拒收
+        else if (res.data.status == '5') this.$set(this, `active`, 3);
+        else if (res.data.status == '!5') this.$set(this, `active`, 5);
+        else if (res.data.status == '-5') this.$set(this, `active`, 4);
+        // 查询物流
+        if (res.data.transport) {
+          // 快递数据回显
+          let arr = await this.dictQuery({ code: 'transport_type', value: res.data.transport.shop_transport_type });
+          if (this.$checkRes(arr)) {
+            let type = arr.data.find((i) => i.value == res.data.transport.shop_transport_type);
+            if (type) {
+              res.data.transport.shop_transport_name = type.label;
+              this.querySearch(type.label);
+            }
+            this.$set(this, `transport`, res.data.transport);
+            this.$set(this.form, `shop_transport_type`, this.transport.shop_transport_type);
+            this.$set(this.form, `shop_transport_no`, this.transport.shop_transport_no);
+            // this.form.shop_transport_type = this.transport.shop_transport_type;
+            // this.form.shop_transport_no = this.transport.shop_transport_no;
+          }
+          // 显示物流
+          res = await this.getFetch(this.id);
+          if (this.$checkRes(res)) {
+            if (res.errcode == '0') {
+              if (res.data.customer) {
+                let customer = res.data.customer.list;
+                this.$set(this, `customer`, customer);
+                customer[0].color = '#0bbd87';
+                if (res.data.customer.is_check == '已签收' && this.info.status == '3') this.$set(this, `active`, 3);
+              }
+              if (res.data.shop) {
+                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);
+              }
+              this.$set(this, `activit`, res.data);
+            }
+          }
+        }
       }
     },
-    next(active) {
-      this.active = active + 1;
-    },
     async exam(status) {
       let info = this.info;
       info.status = status;
+      if (status == '-2') info.transport.shop_receive = true;
+      if (status == '-3') info.transport.customer_receive = true;
       let res;
       this.$confirm('是否确认修改售后状态', '提示', {
         confirmButtonText: '确定',
@@ -208,13 +266,8 @@ export default {
     },
     async onSubmit(val) {
       let info = this.info;
-      let transport = {};
       let res;
-      if (val.shop_transport_no && val.shop_transport_type) {
-        transport.shop_transport_no = val.shop_transport_no;
-        transport.shop_transport_type = val.shop_transport_type;
-        info.transport = transport;
-      }
+      info.transport = { ...info.transport, shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
       if (info.id) res = await this.update(info);
       if (this.$checkRes(res)) {
         this.$message({ type: `success`, message: `维护信息成功` });
@@ -234,11 +287,6 @@ export default {
       if (this.$checkRes(res)) {
         this.$set(this, `statusList`, res.data);
       }
-      // 物流
-      // res = await this.dictQuery({ code: 'transport_type' });
-      // if (this.$checkRes(res)) {
-      //   this.$set(this, `shop_transport_typeList`, res.data);
-      // }
     },
     // 返回
     toBack() {
@@ -267,7 +315,7 @@ export default {
 .main {
   .one {
     font-size: 20px;
-    margin: 10px 0 0 8%;
+    margin: 10px 4% 0 8%;
     padding: 5px;
     .add {
       border-bottom: 2px dashed #ccc;

+ 13 - 10
src/views/platmanag/sales/parts/steps-1.vue

@@ -3,18 +3,22 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
+          <el-step title="买家已申请仅退款"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
         <el-col :span="24" style="text-align: center">
           <el-col v-if="active == '0'"> 买家已申请仅退款 </el-col>
-          <el-col v-if="active == '1'">
+          <el-col v-if="active == '1'" style="text-align: center; margin: 15px 0; font-size: 18px">
             <el-button type="primary" @click="exam('1')">同意售后,处理退款</el-button>
             <el-button type="primary" @click="exam('!1')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'"> 已完成退款 </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 2">下一步</el-button>
+          <el-col v-if="active == 3">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已退款成功</el-col>
+          </el-col>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -28,13 +32,12 @@ export default {
   props: { active: { type: Number } },
   components: {},
   data: function () {
-    return {};
+    return {
+      status: '0',
+    };
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 20 - 13
src/views/platmanag/sales/parts/steps-2.vue

@@ -3,19 +3,22 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
-          <el-step title="步骤4"> </el-step>
+          <el-step title="买家已申请退货"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="查看买家寄出物流" v-if="active != 5"> </el-step>
+          <el-step title="售后完成"> </el-step>
         </el-steps>
-        <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请退货 </el-col>
-          <el-col v-if="active == '1'">
+        <el-col :span="24">
+          <el-col v-if="active == 0"> 买家已申请退货 </el-col>
+          <el-col v-if="active == 1" style="text-align: center; margin: 15px 0; font-size: 18px">
             <el-button type="primary" @click="exam('2')">同意售后,处理退货</el-button>
             <el-button type="primary" @click="exam('!2')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <p>查看买家寄出物流</p>
+          <el-col v-if="active == 2">
+            <el-col :span="24" style="text-align: center; margin-top: 15px">
+              <el-button type="primary" style="margin: 10px 0" @click="exam('-2')">已退货</el-button>
+            </el-col>
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">买家{{ activit.shop.is_check || '暂无快递信息' }}</el-col>
             <!-- <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
             <el-col :span="24">{{ transport.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
             <el-col :span="24">
@@ -26,14 +29,18 @@
             </el-col> -->
             <el-col :span="24">
               <el-timeline :reverse="reverse">
-                <el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.time" :color="activity.color">
+                <el-timeline-item v-for="(activity, index) in customer" :key="index" :timestamp="activity.time" :color="activity.color">
                   {{ activity.context }}
                 </el-timeline-item>
               </el-timeline>
             </el-col>
           </el-col>
-          <el-col v-if="active == '3'"> <el-button type="primary" @click="exam('-2')">已退货</el-button> </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 3">下一步</el-button>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已退货成功</el-col>
+          </el-col>
+          <el-col v-if="active == 5">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -44,7 +51,7 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'steps-1',
-  props: { active: { type: Number } },
+  props: { active: { type: Number }, customer: { type: Array } },
   components: {},
   data: function () {
     return {

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

@@ -3,21 +3,20 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
-          <el-step title="步骤4"> </el-step>
-          <el-step title="步骤5"> </el-step>
-          <el-step title="步骤6"> </el-step>
+          <el-step title="买家已申请换货"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="查看买家寄出物流" v-if="active != 7"> </el-step>
+          <el-step title="收到退回商品,填写物流信息" v-if="active != 7"> </el-step>
+          <el-step title="查看物流,确认买家收货" v-if="active != 7"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
-        <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请退货 </el-col>
-          <el-col v-if="active == '1'">
-            <el-button type="primary" @click="exam('3')">同意售后,处理退货</el-button>
+        <el-col :span="24" style="margin-top: 15px">
+          <el-col v-if="active == 0"> 买家已申请换货 </el-col>
+          <el-col v-if="active == 1" style="text-align: center; margin: 15px 0">
+            <el-button type="primary" @click="exam('3')">同意售后,处理货</el-button>
             <el-button type="primary" @click="exam('!3')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <p>查看买家寄出物流</p>
+          <el-col v-if="active == 2">
             <!-- <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
             <el-col :span="24">{{ transport.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
             <el-col :span="24">
@@ -28,14 +27,14 @@
             </el-col> -->
             <el-col :span="24">
               <el-timeline :reverse="reverse">
-                <el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.time" :color="activity.color">
+                <el-timeline-item v-for="(activity, index) in customer" :key="index" :timestamp="activity.time" :color="activity.color">
                   {{ activity.context }}
                 </el-timeline-item>
               </el-timeline>
             </el-col>
           </el-col>
-          <el-col v-if="active == '3'">
-            <p>收到买家寄回快递,填写寄出物流信息</p>
+          <el-col v-if="active == 3">
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">店铺{{ activit.customer.is_check || '暂无快递信息' }}</el-col>
             <el-col>
               <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
                 <el-form-item label="寄出运单号" prop="shop_transport_no">
@@ -63,29 +62,25 @@
               </el-form>
             </el-col>
           </el-col>
-          <el-col v-if="active == '4'">
-            <p>查看寄出物流</p>
-            <!-- <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
-            <el-col :span="24">{{ transport.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
-            <el-col :span="24">
-              <p>订单编号: {{ form.id }}</p>
+          <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">
-              <p>收货地址:{{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }}</p>
-            </el-col> -->
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">买家{{ activit.shop.is_check || '暂无快递信息' }}</el-col>
             <el-col :span="24">
               <el-timeline :reverse="reverse">
-                <el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.time" :color="activity.color">
+                <el-timeline-item v-for="(activity, index) in shopList" :key="index" :timestamp="activity.time" :color="activity.color">
                   {{ activity.context }}
                 </el-timeline-item>
               </el-timeline>
             </el-col>
           </el-col>
-          <el-col v-if="active == '5'">
-            <el-col>买家确认收货</el-col>
-            <el-col><el-button type="primary" @click="exam('-3')">已换货</el-button></el-col>
+          <el-col v-if="active == 6">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">换货成功</el-col>
+          </el-col>
+          <el-col v-if="active == 7">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
           </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 5">下一步</el-button>
         </el-col>
       </el-col>
     </el-row>
@@ -96,19 +91,24 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'steps-1',
-  props: { active: { type: Number }, form: { type: Object }, shop_transport_typeList: { type: Array }, activities: { type: Array } },
+  props: {
+    active: { type: Number },
+    form: { type: Object },
+    shop_transport_typeList: { type: Array },
+    customer: { type: Array },
+    shopList: { type: Array },
+    activit: { type: Object },
+  },
   components: {},
   data: function () {
     return {
       loading: false,
       reverse: false,
+      shop_receiveList: [{ label: '已签收', value: true }],
     };
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 10 - 11
src/views/platmanag/sales/parts/steps-4.vue

@@ -3,20 +3,22 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
+          <el-step title="买家已申请取消订单"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
         <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请取消订单 </el-col>
-          <el-col v-if="active == '1'">
+          <el-col v-if="active == 0"> 买家已申请取消订单 </el-col>
+          <el-col v-if="active == 1" style="text-align: center; margin: 15px 0; font-size: 18px">
             <el-button type="primary" @click="exam('4')">同意售后,处理取消订单</el-button>
             <el-button type="primary" @click="exam('!4')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <el-col><el-button type="primary" @click="exam('-4')">已取消订单</el-button></el-col>
+          <el-col v-if="active == 3">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已取消订单</el-col>
+          </el-col>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
           </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 2">下一步</el-button>
         </el-col>
       </el-col>
     </el-row>
@@ -34,9 +36,6 @@ export default {
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 14 - 11
src/views/platmanag/sales/parts/steps-5.vue

@@ -3,20 +3,26 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
+          <el-step title="买家已申请拒收"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="等待"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
         <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请拒收商品 </el-col>
-          <el-col v-if="active == '1'">
+          <el-col v-if="active == 0"> 买家已申请拒收商品 </el-col>
+          <el-col v-if="active == 1">
             <el-button type="primary" @click="exam('5')">同意拒收商品</el-button>
             <el-button type="primary" @click="exam('!5')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <el-col><el-button type="primary" @click="exam('-5')">结束拒收商品</el-button></el-col>
+          <el-col v-if="active == 3">
+            <el-button type="primary" @click="exam('-5')">结束拒收售后</el-button>
+          </el-col>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒收成功</el-col>
+          </el-col>
+          <el-col v-if="active == 5">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
           </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 2">下一步</el-button>
         </el-col>
       </el-col>
     </el-row>
@@ -34,9 +40,6 @@ export default {
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 4 - 2
src/views/selfShop/order/detail_orderDetail.vue

@@ -226,8 +226,10 @@ export default {
               this.querySearch(type.label);
             }
             this.$set(this, `transport`, res.data.transport);
-            this.form.shop_transport_type = this.transport.shop_transport_type;
-            this.form.shop_transport_no = this.transport.shop_transport_no;
+            this.$set(this.form, `shop_transport_type`, this.transport.shop_transport_type);
+            this.$set(this.form, `shop_transport_no`, this.transport.shop_transport_no);
+            // this.form.shop_transport_type = this.transport.shop_transport_type;
+            // this.form.shop_transport_no = this.transport.shop_transport_no;
           }
           res = await this.sotFetch(this.id);
           if (this.$checkRes(res)) {

+ 118 - 72
src/views/selfShop/sales/detail.vue

@@ -5,18 +5,50 @@
         <el-col class="top-btn">
           <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
         </el-col>
-        <el-col :span="8" class="one" v-if="info.type == '1' || info.type == '2' || info.type == '3'">
+        <el-col :span="8" class="one">
           <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
-          <el-col :span="24" class="goods">
-            <el-col :span="6"><el-image :src="file"></el-image></el-col>
-            <el-col :span="18">
-              <el-col :span="12">
-                <p>{{ goods.name }}</p>
-                <p>规格:{{ good.name }}</p>
+          <el-col v-if="info.type == '1' || info.type == '2' || info.type == '3'">
+            <el-col :span="24" class="goods">
+              <el-col :span="6"><el-image :src="file"></el-image></el-col>
+              <el-col :span="18">
+                <el-col :span="12">
+                  <p>{{ goods.name }}</p>
+                  <p>规格:{{ good.name }}</p>
+                </el-col>
+                <el-col :span="12" class="money">
+                  <p>¥{{ good.sell_money }}</p>
+                  <p>X{{ good.buy_num }}</p>
+                </el-col>
               </el-col>
-              <el-col :span="12" class="money">
-                <p>¥{{ good.sell_money }}</p>
-                <p>X{{ good.buy_num }}</p>
+            </el-col>
+          </el-col>
+          <el-col v-if="info.type == '4' || info.type == '5'">
+            <el-col :span="24" v-for="(item, index) in list" :key="index">
+              <el-col :span="24" class="goods bode">
+                <el-col :span="6"><el-image :src="item.goods.file[0].url"></el-image></el-col>
+                <el-col :span="18">
+                  <el-col :span="12">
+                    <el-col>
+                      <p>{{ item.goods.name }}</p>
+                    </el-col>
+                    <el-col>
+                      <p>规格:{{ item.name }}</p>
+                    </el-col>
+                  </el-col>
+                  <el-col :span="12" class="money">
+                    <el-col>
+                      <p>¥{{ item.sell_money }}</p>
+                    </el-col>
+                    <el-col>
+                      <p>X{{ item.buy_num }}</p>
+                    </el-col>
+                  </el-col>
+                </el-col>
+              </el-col>
+              <el-col :span="24" class="bode">
+                <el-col :span="6">运费</el-col>
+                <el-col :span="18" class="other" v-if="!item.goods.freight == '0'">{{ item.goods.freight }}</el-col>
+                <el-col :span="18" class="other" v-else>包邮</el-col>
               </el-col>
             </el-col>
           </el-col>
@@ -32,7 +64,7 @@
             <el-col :span="6">售后类型</el-col>
             <el-col :span="18" class="other">{{ info.zhType }}</el-col>
           </el-col>
-          <el-col :span="24">
+          <el-col :span="24" v-if="info.type == '1' || info.type == '2' || info.type == '4' || info.type == '5'">
             <el-col :span="6">退款金额</el-col>
             <el-col :span="18" class="other">{{ info.money }}</el-col>
           </el-col>
@@ -40,67 +72,36 @@
             <el-col :span="6">售后状态</el-col>
             <el-col :span="18" class="other">{{ info.zhStatus }}</el-col>
           </el-col>
-          <el-col :span="24" v-if="info.type == '2'">
+          <el-col :span="24" v-if="info.type == '2' || info.type == '3'">
             <el-col :span="6">退回运单号</el-col>
             <el-col :span="18" class="other">{{ transport.customer_transport_no || '暂无单号' }}</el-col>
           </el-col>
-          <el-col :span="24" v-if="info.type == '2'">
+          <el-col :span="24" v-if="info.type == '3'">
             <el-col :span="6">寄出运单号</el-col>
             <el-col :span="18" class="other">{{ transport.shop_transport_no || '暂无单号' }}</el-col>
           </el-col>
-          <el-col :span="24">
+          <el-col :span="24" v-if="info.type == '1' || info.type == '2' || info.type == '3'">
             <el-col :span="6">售后描述</el-col>
             <el-col :span="18" class="other">{{ info.desc }}</el-col>
           </el-col>
         </el-col>
-        <el-col :span="8" class="one" v-if="info.type == '4' || info.type == '5'">
-          <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
-          <el-col :span="24" v-for="(item, index) in list" :key="index">
-            <el-col :span="24" class="goods bode">
-              <el-col :span="6"><el-image :src="item.goods.file[0].url"></el-image></el-col>
-              <el-col :span="18">
-                <el-col :span="12">
-                  <el-col>
-                    <p>{{ item.goods.name }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>规格:{{ item.name }}</p>
-                  </el-col>
-                </el-col>
-                <el-col :span="12" class="money">
-                  <el-col>
-                    <p v-if="form.type == '0'">¥{{ item.sell_money }}</p>
-                    <p v-else-if="form.type == '1'">¥{{ item.group_config.money }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>X{{ item.buy_num }}</p>
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="bode">
-              <el-col :span="6">运费</el-col>
-              <el-col :span="18" class="other" v-if="!item.goods.freight == '0'">{{ item.goods.freight }}</el-col>
-              <el-col :span="18" class="other" v-else>包邮</el-col>
-            </el-col>
-          </el-col>
-        </el-col>
         <el-col :span="12" class="two">
-          <steps-1 v-if="info.type == '1'" @next="next" @exam="exam" :active="active"></steps-1>
-          <steps-2 v-if="info.type == '2'" @next="next" @exam="exam" :active="active" :activities="activities"></steps-2>
+          <steps-1 v-if="info.type == '1'" @exam="exam" :active="active"></steps-1>
+          <steps-2 v-if="info.type == '2'" @exam="exam" :active="active" :customer="customer"></steps-2>
           <steps-3
             v-if="info.type == '3'"
-            @next="next"
             @exam="exam"
             :active="active"
             @onSubmit="onSubmit"
             :form="form"
             :shop_transport_typeList="shop_transport_typeList"
+            :activit="activit"
             @querySearch="querySearch"
-            :activities="activities"
+            :customer="customer"
+            :shopList="shopList"
           ></steps-3>
-          <steps-4 v-if="info.type == '4'" @next="next" @exam="exam" :active="active"></steps-4>
-          <steps-5 v-if="info.type == '5'" @next="next" @exam="exam" :active="active"></steps-5>
+          <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>
         </el-col>
       </el-col>
     </el-row>
@@ -114,6 +115,7 @@ import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
 const { mapActions } = createNamespacedHelpers('afterSale');
 const { mapActions: dictData } = createNamespacedHelpers('dictData');
 const { mapActions: sot } = createNamespacedHelpers('sot');
+const { mapActions: getTransportInfo } = createNamespacedHelpers('getTransportInfo');
 
 export default {
   name: 'form-1',
@@ -133,7 +135,9 @@ export default {
       list: [],
       // 图片
       file: '',
+      // 商品
       goods: {},
+      // 规格
       good: {},
       transport: {},
       typeList: [],
@@ -143,8 +147,10 @@ export default {
       info: {},
       // 物流
       shop_transport_typeList: [],
-      activities: [],
-      active: 0,
+      customer: [],
+      shopList: [],
+      activit: {},
+      active: 1,
     };
   },
   async created() {
@@ -154,6 +160,7 @@ export default {
   methods: {
     ...sot({ sotFetch: 'fetch' }),
     ...dictData({ dictQuery: 'query' }),
+    ...getTransportInfo({ getFetch: 'fetch' }),
     ...mapActions(['fetch', 'create', 'update']),
     // 查询
     async search() {
@@ -169,9 +176,7 @@ export default {
           // 商品
           this.$set(this, `list`, res.data.order_detail.goods);
         } else if (res.data.type == '1' || res.data.type == '2' || res.data.type == '3') {
-          if (res.data.transport) {
-            this.$set(this, `transport`, res.data.transport);
-          }
+          if (res.data.transport) this.$set(this, `transport`, res.data.transport);
           // 图片
           this.$set(this, `file`, res.data.goods.goods.file[0].url);
           // 商品
@@ -179,14 +184,65 @@ export default {
           // 规格
           this.$set(this, `good`, res.data.goods);
         }
+        // 仅退款
+        if (res.data.status == '-1') this.$set(this, `active`, 3);
+        else if (res.data.status == '!1') this.$set(this, `active`, 4);
+        // 退货
+        else if (res.data.status == '2') this.$set(this, `active`, 2);
+        else if (res.data.status == '-2') this.$set(this, `active`, 4);
+        else if (res.data.status == '!2') this.$set(this, `active`, 5);
+        // 换货
+        else if (res.data.status == '3') this.$set(this, `active`, 2);
+        else if (res.data.status == '-3') this.$set(this, `active`, 6);
+        else if (res.data.status == '!3') this.$set(this, `active`, 7);
+        // 取消订单
+        else if (res.data.status == '-4') this.$set(this, `active`, 3);
+        else if (res.data.status == '!4') this.$set(this, `active`, 4);
+        // 拒收
+        else if (res.data.status == '5') this.$set(this, `active`, 3);
+        else if (res.data.status == '!5') this.$set(this, `active`, 5);
+        else if (res.data.status == '-5') this.$set(this, `active`, 4);
+        // 查询物流
+        if (res.data.transport) {
+          // 快递数据回显
+          let arr = await this.dictQuery({ code: 'transport_type', value: res.data.transport.shop_transport_type });
+          if (this.$checkRes(arr)) {
+            let type = arr.data.find((i) => i.value == res.data.transport.shop_transport_type);
+            if (type) {
+              res.data.transport.shop_transport_name = type.label;
+              this.querySearch(type.label);
+            }
+            this.$set(this, `transport`, res.data.transport);
+            this.$set(this.form, `shop_transport_type`, this.transport.shop_transport_type);
+            this.$set(this.form, `shop_transport_no`, this.transport.shop_transport_no);
+          }
+          // 显示物流
+          res = await this.getFetch(this.id);
+          if (this.$checkRes(res)) {
+            if (res.errcode == '0') {
+              if (res.data.customer) {
+                let customer = res.data.customer.list;
+                this.$set(this, `customer`, customer);
+                customer[0].color = '#0bbd87';
+                if (res.data.customer.is_check == '已签收' && this.info.status == '3') this.$set(this, `active`, 3);
+              }
+              if (res.data.shop) {
+                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);
+              }
+              this.$set(this, `activit`, res.data);
+            }
+          }
+        }
       }
     },
-    next(active) {
-      this.active = active + 1;
-    },
     async exam(status) {
       let info = this.info;
       info.status = status;
+      if (status == '-2') info.transport.shop_receive = true;
+      if (status == '-3') info.transport.customer_receive = true;
       let res;
       this.$confirm('是否确认修改售后状态', '提示', {
         confirmButtonText: '确定',
@@ -208,13 +264,8 @@ export default {
     },
     async onSubmit(val) {
       let info = this.info;
-      let transport = {};
       let res;
-      if (val.shop_transport_no && val.shop_transport_type) {
-        transport.shop_transport_no = val.shop_transport_no;
-        transport.shop_transport_type = val.shop_transport_type;
-        info.transport = transport;
-      }
+      info.transport = { ...info.transport, shop_transport_no: val.shop_transport_no, shop_transport_type: val.shop_transport_type, shop_receive: true };
       if (info.id) res = await this.update(info);
       if (this.$checkRes(res)) {
         this.$message({ type: `success`, message: `维护信息成功` });
@@ -234,11 +285,6 @@ export default {
       if (this.$checkRes(res)) {
         this.$set(this, `statusList`, res.data);
       }
-      // 物流
-      // res = await this.dictQuery({ code: 'transport_type' });
-      // if (this.$checkRes(res)) {
-      //   this.$set(this, `shop_transport_typeList`, res.data);
-      // }
     },
     // 返回
     toBack() {
@@ -267,7 +313,7 @@ export default {
 .main {
   .one {
     font-size: 20px;
-    margin: 10px 0 0 8%;
+    margin: 10px 4% 0 8%;
     padding: 5px;
     .add {
       border-bottom: 2px dashed #ccc;

+ 13 - 10
src/views/selfShop/sales/parts/steps-1.vue

@@ -3,18 +3,22 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
+          <el-step title="买家已申请仅退款"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
         <el-col :span="24" style="text-align: center">
           <el-col v-if="active == '0'"> 买家已申请仅退款 </el-col>
-          <el-col v-if="active == '1'">
+          <el-col v-if="active == '1'" style="text-align: center; margin: 15px 0; font-size: 18px">
             <el-button type="primary" @click="exam('1')">同意售后,处理退款</el-button>
             <el-button type="primary" @click="exam('!1')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'"> 已完成退款 </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 2">下一步</el-button>
+          <el-col v-if="active == 3">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已退款成功</el-col>
+          </el-col>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -28,13 +32,12 @@ export default {
   props: { active: { type: Number } },
   components: {},
   data: function () {
-    return {};
+    return {
+      status: '0',
+    };
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 20 - 13
src/views/selfShop/sales/parts/steps-2.vue

@@ -3,19 +3,22 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
-          <el-step title="步骤4"> </el-step>
+          <el-step title="买家已申请退货"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="查看买家寄出物流" v-if="active != 5"> </el-step>
+          <el-step title="售后完成"> </el-step>
         </el-steps>
-        <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请退货 </el-col>
-          <el-col v-if="active == '1'">
+        <el-col :span="24">
+          <el-col v-if="active == 0"> 买家已申请退货 </el-col>
+          <el-col v-if="active == 1" style="text-align: center; margin: 15px 0; font-size: 18px">
             <el-button type="primary" @click="exam('2')">同意售后,处理退货</el-button>
             <el-button type="primary" @click="exam('!2')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <p>查看买家寄出物流</p>
+          <el-col v-if="active == 2">
+            <el-col :span="24" style="text-align: center; margin-top: 15px">
+              <el-button type="primary" style="margin: 10px 0" @click="exam('-2')">已退货</el-button>
+            </el-col>
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">买家{{ activit.shop.is_check || '暂无快递信息' }}</el-col>
             <!-- <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
             <el-col :span="24">{{ transport.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
             <el-col :span="24">
@@ -26,14 +29,18 @@
             </el-col> -->
             <el-col :span="24">
               <el-timeline :reverse="reverse">
-                <el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.time" :color="activity.color">
+                <el-timeline-item v-for="(activity, index) in customer" :key="index" :timestamp="activity.time" :color="activity.color">
                   {{ activity.context }}
                 </el-timeline-item>
               </el-timeline>
             </el-col>
           </el-col>
-          <el-col v-if="active == '3'"> <el-button type="primary" @click="exam('-2')">已退货</el-button> </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 3">下一步</el-button>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已退货成功</el-col>
+          </el-col>
+          <el-col v-if="active == 5">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
+          </el-col>
         </el-col>
       </el-col>
     </el-row>
@@ -44,7 +51,7 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'steps-1',
-  props: { active: { type: Number } },
+  props: { active: { type: Number }, customer: { type: Array } },
   components: {},
   data: function () {
     return {

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

@@ -3,21 +3,20 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
-          <el-step title="步骤4"> </el-step>
-          <el-step title="步骤5"> </el-step>
-          <el-step title="步骤6"> </el-step>
+          <el-step title="买家已申请换货"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="查看买家寄出物流" v-if="active != 7"> </el-step>
+          <el-step title="收到退回商品,填写物流信息" v-if="active != 7"> </el-step>
+          <el-step title="查看物流,确认买家收货" v-if="active != 7"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
-        <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请退货 </el-col>
-          <el-col v-if="active == '1'">
-            <el-button type="primary" @click="exam('3')">同意售后,处理退货</el-button>
+        <el-col :span="24" style="margin-top: 15px">
+          <el-col v-if="active == 0"> 买家已申请换货 </el-col>
+          <el-col v-if="active == 1" style="text-align: center; margin: 15px 0">
+            <el-button type="primary" @click="exam('3')">同意售后,处理货</el-button>
             <el-button type="primary" @click="exam('!3')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <p>查看买家寄出物流</p>
+          <el-col v-if="active == 2">
             <!-- <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
             <el-col :span="24">{{ transport.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
             <el-col :span="24">
@@ -28,14 +27,14 @@
             </el-col> -->
             <el-col :span="24">
               <el-timeline :reverse="reverse">
-                <el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.time" :color="activity.color">
+                <el-timeline-item v-for="(activity, index) in customer" :key="index" :timestamp="activity.time" :color="activity.color">
                   {{ activity.context }}
                 </el-timeline-item>
               </el-timeline>
             </el-col>
           </el-col>
-          <el-col v-if="active == '3'">
-            <p>收到买家寄回快递,填写寄出物流信息</p>
+          <el-col v-if="active == 3">
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">店铺{{ activit.customer.is_check || '暂无快递信息' }}</el-col>
             <el-col>
               <el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
                 <el-form-item label="寄出运单号" prop="shop_transport_no">
@@ -63,29 +62,25 @@
               </el-form>
             </el-col>
           </el-col>
-          <el-col v-if="active == '4'">
-            <p>查看寄出物流</p>
-            <!-- <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
-            <el-col :span="24">{{ transport.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
-            <el-col :span="24">
-              <p>订单编号: {{ form.id }}</p>
+          <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">
-              <p>收货地址:{{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }}</p>
-            </el-col> -->
+            <el-col :span="24" style="text-align: center; margin: 15px 0; font-size: 18px">买家{{ activit.shop.is_check || '暂无快递信息' }}</el-col>
             <el-col :span="24">
               <el-timeline :reverse="reverse">
-                <el-timeline-item v-for="(activity, index) in activities" :key="index" :timestamp="activity.time" :color="activity.color">
+                <el-timeline-item v-for="(activity, index) in shopList" :key="index" :timestamp="activity.time" :color="activity.color">
                   {{ activity.context }}
                 </el-timeline-item>
               </el-timeline>
             </el-col>
           </el-col>
-          <el-col v-if="active == '5'">
-            <el-col>买家确认收货</el-col>
-            <el-col><el-button type="primary" @click="exam('-3')">已换货</el-button></el-col>
+          <el-col v-if="active == 6">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">换货成功</el-col>
+          </el-col>
+          <el-col v-if="active == 7">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
           </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 5">下一步</el-button>
         </el-col>
       </el-col>
     </el-row>
@@ -96,19 +91,24 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'steps-1',
-  props: { active: { type: Number }, form: { type: Object }, shop_transport_typeList: { type: Array }, activities: { type: Array } },
+  props: {
+    active: { type: Number },
+    form: { type: Object },
+    shop_transport_typeList: { type: Array },
+    customer: { type: Array },
+    shopList: { type: Array },
+    activit: { type: Object },
+  },
   components: {},
   data: function () {
     return {
       loading: false,
       reverse: false,
+      shop_receiveList: [{ label: '已签收', value: true }],
     };
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 10 - 11
src/views/selfShop/sales/parts/steps-4.vue

@@ -3,20 +3,22 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
+          <el-step title="买家已申请取消订单"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
         <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请取消订单 </el-col>
-          <el-col v-if="active == '1'">
+          <el-col v-if="active == 0"> 买家已申请取消订单 </el-col>
+          <el-col v-if="active == 1" style="text-align: center; margin: 15px 0; font-size: 18px">
             <el-button type="primary" @click="exam('4')">同意售后,处理取消订单</el-button>
             <el-button type="primary" @click="exam('!4')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <el-col><el-button type="primary" @click="exam('-4')">已取消订单</el-button></el-col>
+          <el-col v-if="active == 3">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已取消订单</el-col>
+          </el-col>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
           </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 2">下一步</el-button>
         </el-col>
       </el-col>
     </el-row>
@@ -34,9 +36,6 @@ export default {
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },

+ 14 - 11
src/views/selfShop/sales/parts/steps-5.vue

@@ -3,20 +3,26 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-steps :active="active" align-center finish-status="success">
-          <el-step title="步骤1"> </el-step>
-          <el-step title="步骤2"> </el-step>
-          <el-step title="步骤3"> </el-step>
+          <el-step title="买家已申请拒收"> </el-step>
+          <el-step title="审核"> </el-step>
+          <el-step title="等待"> </el-step>
+          <el-step title="售后结束"> </el-step>
         </el-steps>
         <el-col :span="24" style="text-align: center">
-          <el-col v-if="active == '0'"> 买家已申请拒收商品 </el-col>
-          <el-col v-if="active == '1'">
+          <el-col v-if="active == 0"> 买家已申请拒收商品 </el-col>
+          <el-col v-if="active == 1">
             <el-button type="primary" @click="exam('5')">同意拒收商品</el-button>
             <el-button type="primary" @click="exam('!5')">拒绝</el-button>
           </el-col>
-          <el-col v-if="active == '2'">
-            <el-col><el-button type="primary" @click="exam('-5')">结束拒收商品</el-button></el-col>
+          <el-col v-if="active == 3">
+            <el-button type="primary" @click="exam('-5')">结束拒收售后</el-button>
+          </el-col>
+          <el-col v-if="active == 4">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒收成功</el-col>
+          </el-col>
+          <el-col v-if="active == 5">
+            <el-col style="text-align: center; margin: 15px 0; font-size: 18px">已拒绝</el-col>
           </el-col>
-          <el-button type="primary" style="margin-top: 10%" @click="next(active)" v-if="active < 2">下一步</el-button>
         </el-col>
       </el-col>
     </el-row>
@@ -34,9 +40,6 @@ export default {
   },
   created() {},
   methods: {
-    next(active) {
-      this.$emit('next', active);
-    },
     exam(status) {
       this.$emit('exam', status);
     },