Browse Source

店铺代码提交

yjwang 4 weeks ago
parent
commit
e593b451d6

+ 26 - 0
src/api/store/storeAfterSales.js

@@ -86,6 +86,24 @@ export function noAuditing(data) {
   })
 }
 
+// 撤销(与 admin 平台 /cancel 保持一致)
+export function cancelSales(data) {
+  return request({
+    url: '/store/storeAfterSales/cancel',
+    method: 'post',
+    data: data
+  })
+}
+
+// 平台审核(与 admin 平台 /audit1 保持一致)
+export function audit1(data) {
+  return request({
+    url: '/store/storeAfterSales/audit1',
+    method: 'post',
+    data: data
+  })
+}
+
 // 删除售后记录
 export function delSales(id) {
   return request({
@@ -110,3 +128,11 @@ export function getRelatedProducts(id) {
     method: 'get'
   })
 }
+
+// 查询用户寄回快递轨迹
+export function getExpress(id) {
+  return request({
+    url: '/store/storeAfterSales/getExpress/' + id,
+    method: 'get'
+  })
+}

+ 88 - 18
src/views/components/store/storeAfterSalesDetails.vue

@@ -6,7 +6,7 @@
 <div class="content" v-if="item!=null" style="padding-bottom: 20px;">
   <div class="desct"></div>
 <div class="order-status" v-if="item!=null" >
-          <el-steps  :active="item.status+1" align-center finish-status="success">
+          <el-steps  :active="item.status==4?item.status+1:item.status" align-center>
             <el-step title="待审核"></el-step>
               <el-step title="平台已审核等待用户发货"></el-step>
               <el-step title="用户已发货待仓库审核"></el-step>
@@ -25,8 +25,11 @@
               <div class="operate-button-container"  >
                  <el-button size="mini" @click="editDelivery()" >编辑物流</el-button>
               </div>
+              <div class="operate-button-container" v-if="item && item.deliverySn">
+                 <el-button size="mini" @click="showShipBack()">查看寄回物流</el-button>
+              </div>
               <div class="operate-button-container"  v-if="item.status==0 && item.salesStatus==0">
-                  <el-button size="mini" @click="goAuditing(1)" v-hasPermi="['his:storeAfterSales:audit']">退款审核</el-button>
+                  <el-button size="mini" @click="handleAudit1()" >平台审核</el-button>
                </div>
                <div class="operate-button-container"  v-if="item.status==2 && item.salesStatus==0">
                   <el-button size="mini" @click="depotAuditing(3)" >仓库审核</el-button>
@@ -210,12 +213,44 @@
       <storeOrderDetails  ref="Details" />
     </el-drawer>
 
+    <el-dialog title="用户寄回快递信息" :visible.sync="ship.open" width="720px" append-to-body>
+      <el-descriptions :column="1" border v-if="item!=null">
+        <el-descriptions-item label="物流公司编码">{{ item.shipperCode }}</el-descriptions-item>
+        <el-descriptions-item label="物流名称">{{ item.deliveryName }}</el-descriptions-item>
+        <el-descriptions-item label="物流单号">{{ item.deliverySn }}</el-descriptions-item>
+        <el-descriptions-item label="商家手机号">{{ item.phoneNumber }}</el-descriptions-item>
+      </el-descriptions>
+      <div style="margin-top: 20px; font-weight: bold;">物流流转信息</div>
+      <div v-loading="expressLoading">
+        <el-table v-if="traces && traces.length > 0"
+                  style="margin-top: 10px;width: 100%"
+                  :data="traces" border size="small">
+          <el-table-column label="时间" width="170" align="center">
+            <template slot-scope="scope">{{ scope.row.AcceptTime }}</template>
+          </el-table-column>
+          <el-table-column label="位置" align="center">
+            <template slot-scope="scope">{{ scope.row.Location }}</template>
+          </el-table-column>
+          <el-table-column label="描述" align="center">
+            <template slot-scope="scope">{{ scope.row.AcceptStation }}</template>
+          </el-table-column>
+        </el-table>
+        <div v-else-if="!expressLoading"
+             style="margin-top: 10px; padding: 24px 0; text-align: center; color: #909399;">
+          暂无信息
+        </div>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="ship.open = false">关 闭</el-button>
+      </div>
+    </el-dialog>
+
 
     </div>
 </template>
 
 <script>
-import {tuiMoney,noAuditing,depotAuditing, auditing, codeId, logList,getRelatedProducts, itemList,listSales, getSales, delSales, addSales, updateSales, exportSales } from "@/api/store/storeAfterSales";
+import {tuiMoney,noAuditing,depotAuditing, auditing, codeId, logList,getRelatedProducts, itemList,listSales, getSales, delSales, addSales, updateSales, exportSales, getExpress, cancelSales, audit1 } from "@/api/store/storeAfterSales";
 import storeOrderDetails from '../store/storeOrderDetails.vue';
   export default {
     name: "orderDet",
@@ -244,6 +279,11 @@ import storeOrderDetails from '../store/storeOrderDetails.vue';
           open:false,
           title:"订单详情"
         },
+        ship:{
+          open:false
+        },
+        traces:[],
+        expressLoading:false,
         logs:[],
         nickName:null,
         storeName:null,
@@ -314,21 +354,18 @@ import storeOrderDetails from '../store/storeOrderDetails.vue';
        }).catch(function() {});
       },
       NoAuditing(row){
-      var that=this;
-      this.$confirm('是否撤销退款?', "撤销退款", {
-         confirmButtonText: "确定",
-         cancelButtonText: "取消",
-         type: "warning"
-       }).then(function() {
-         var data={
-            id:that.item.id,
-            status:row,
-          }
-         return noAuditing(data);
-       }).then(() => {
-         this.msgSuccess("操作成功");
-         this.getlist();
-       }).catch(function() {});
+        var that=this;
+        var id = this.item.id;
+        this.$prompt('是否确定取消订单?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+        }).then(({ value }) => {
+          var data = { salesId: id, remark: value };
+          return cancelSales(data);
+        }).then(() => {
+          this.msgSuccess("操作成功");
+          this.getlist();
+        }).catch(function() {});
       },
       goAuditing(row){
         var that=this;
@@ -348,6 +385,22 @@ import storeOrderDetails from '../store/storeOrderDetails.vue';
         }).catch(function() {});
       },
 
+      /** 平台审核,与 admin 总后台一致 */
+      handleAudit1(){
+        var id = this.item.id;
+        this.$confirm('确定审请通过?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          var data = { salesId: id };
+          return audit1(data);
+        }).then(() => {
+          this.msgSuccess("操作成功");
+          this.getlist();
+        }).catch(function() {});
+      },
+
       depotAuditing(row){
         var that=this;
         this.$confirm('是否确认审核通过?', "审核", {
@@ -391,6 +444,23 @@ import storeOrderDetails from '../store/storeOrderDetails.vue';
         this.editForm.deliverySn = this.item.deliverySn;
       },
 
+      showShipBack(){
+        this.ship.open = true;
+        this.traces = [];
+        if (this.item && this.item.deliverySn) {
+          this.expressLoading = true;
+          getExpress(this.item.id).then(response => {
+            if (response && response.data && response.data.Traces) {
+              this.traces = response.data.Traces;
+            } else {
+              this.traces = [];
+            }
+          }).finally(() => {
+            this.expressLoading = false;
+          });
+        }
+      },
+
       cancel1(){
         this.edit.open = false;
         this.editForm.deliveryName = null;

+ 4 - 3
src/views/store/storeAfterSales/index.vue

@@ -2,10 +2,10 @@
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
 
-      <el-form-item label="订单编号" prop="orderId" size="small">
+      <el-form-item label="订单编号" prop="orderCode" size="small">
         <el-input
-          v-model="queryParams.orderId"
-          placeholder="请输入订单ID"
+          v-model="queryParams.orderCode"
+          placeholder="请输入订单编号"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -204,6 +204,7 @@ export default {
         pageSize: 10,
         storeId: null,
         orderId: null,
+        orderCode: null,
         refundAmount: null,
         refundType: null,
         reasons: null,