Browse Source

适配多运单号

xdd 4 months ago
parent
commit
15611c9b5c

+ 19 - 0
src/api/store/storeOrder.js

@@ -9,6 +9,25 @@ export function listStoreOrder(query) {
   })
 }
 
+export function getExpressByDeliverId(param) {
+  return request({
+    url: '/fsStoreDelivers/getExpressByDeliverId',
+    method: 'post',
+    data: param
+  })
+}
+
+/**
+ * 根据订单获取物流信息
+ * @param orderId
+ * @returns {*}
+ */
+export function getByOrderId(orderId){
+  return request({
+    url: '/fsStoreDelivers/getByOrderId/'+orderId,
+    method: 'get'
+  })
+}
 
 export function listAllStoreOrder(query) {
   return request({

+ 103 - 29
src/views/store/components/productOrder.vue

@@ -24,9 +24,9 @@
           <!-- <el-button size="mini" @click="handleEditUser()"  v-hasPermi="['users:user:edit']" >修改会员修改</el-button> -->
           <el-button size="mini" v-if="order.customerId!=null&&order.customerId>0"  @click="handleCustomer()"    >查看客户详情</el-button>
         </div>
-        <div class="operate-button-container"  v-hasPermi="['store:storeOrder:express']"  >
-          <el-button size="mini" @click="showExpress()" >查看物流</el-button>
-        </div>
+<!--        <div class="operate-button-container"  v-hasPermi="['store:storeOrder:express']"  >-->
+<!--          <el-button size="mini" @click="showExpress()" >查看物流</el-button>-->
+<!--        </div>-->
       </div>
       <div style="margin: 20px 0px"  v-if="order!=null">
         <span class="font-small">
@@ -92,21 +92,21 @@
                   <el-tag prop="orderType" v-for="(item, index) in orderTypeOptions"    v-if="order.orderType==item.dictValue">{{item.dictLabel}}</el-tag>
                 </span>
             </el-descriptions-item>
-            <el-descriptions-item label="物流公司编号"  >
-                <span v-if="order!=null ">
-                  {{order.deliverySn }}
-                </span>
-            </el-descriptions-item>
-            <el-descriptions-item label="物流公司名称"  >
-                <span v-if="order!=null ">
-                  {{order.deliveryName }}
-                </span>
-            </el-descriptions-item>
-            <el-descriptions-item label="快递单号"  >
-                <span v-if="order!=null ">
-                  {{order.deliveryId }}
-                </span>
-            </el-descriptions-item>
+<!--            <el-descriptions-item label="物流公司编号"  >-->
+<!--                <span v-if="order!=null ">-->
+<!--                  {{order.deliverySn }}-->
+<!--                </span>-->
+<!--            </el-descriptions-item>-->
+<!--            <el-descriptions-item label="物流公司名称"  >-->
+<!--                <span v-if="order!=null ">-->
+<!--                  {{order.deliveryName }}-->
+<!--                </span>-->
+<!--            </el-descriptions-item>-->
+<!--            <el-descriptions-item label="快递单号"  >-->
+<!--                <span v-if="order!=null ">-->
+<!--                  {{order.deliveryId }}-->
+<!--                </span>-->
+<!--            </el-descriptions-item>-->
             <el-descriptions-item label="档期归属"  >
               <el-tag prop="scheduleId" v-for="(item, index) in scheduleOptions"    v-if="order!=null&&order.scheduleId==item.id">{{item.name}}
               </el-tag>
@@ -138,6 +138,51 @@
             </el-descriptions-item>
 
       </el-descriptions>
+
+        <div style="margin-top: 20px">
+          <span class="font-small">物流信息</span>
+        </div>
+        <el-table
+          border
+          v-if="deliverList!=null"
+          :data="deliverList"
+          size="small"
+          style="width: 100%;margin-top: 20px" >
+          <el-table-column label="物流公司编码" width="150" align="center">
+            <template slot-scope="scope">
+              <p>{{scope.row.deliverSn}}</p>
+            </template>
+          </el-table-column>
+          <el-table-column label="物流公司名称" width="300" align="center">
+            <template slot-scope="scope">
+              <p>{{scope.row.deliverName}}</p>
+            </template>
+          </el-table-column>
+          <el-table-column label="物流单号" width="300" align="center">
+            <template slot-scope="scope">
+              <p>{{scope.row.deliverId}}</p>
+            </template>
+          </el-table-column>
+          <el-table-column label="物流状态" width="300" align="center">
+            <template slot-scope="scope">
+              <span>
+              <el-tag v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row!=null&&scope.row.status==item.dictValue">
+              {{item.dictLabel}}
+              </el-tag>
+              </span>
+            </template>
+          </el-table-column>
+          <el-table-column label="发货时间" width="240" align="center">
+            <template slot-scope="scope">
+              {{scope.row.deliverSendTime}}
+            </template>
+          </el-table-column>
+          <el-table-column label="操作" width="240" align="center">
+            <template slot-scope="scope">
+              <el-link  type="primary" @click="showExpress(scope)" v-hasPermi="['store:storeOrder:express']">查看物流跟踪</el-link>
+            </template>
+          </el-table-column>
+        </el-table>
       <div style="margin: 20px 0px"  v-if="order!=null">
         <span class="font-small">
           凭证信息
@@ -477,7 +522,20 @@ import { getTcmScheduleList } from "@/api/company/tcmScheduleReport";
 import {getCustomerListBySearch } from "@/api/crm/customer";
 import ImageUpload from '@/components/ImageUpload'
 import Material from '@/components/Material'
-import {bindCustomer,getExpress, listStoreOrder, getStoreOrder, delStoreOrder, addStoreOrder, updateStoreOrder, exportStoreOrder,uploadCredentials, getStoreOrderAddress,getUserPhone} from "@/api/store/storeOrder";
+import {
+  bindCustomer,
+  getExpress,
+  listStoreOrder,
+  getStoreOrder,
+  delStoreOrder,
+  addStoreOrder,
+  updateStoreOrder,
+  exportStoreOrder,
+  uploadCredentials,
+  getStoreOrderAddress,
+  getUserPhone,
+  getByOrderId, getExpressByDeliverId
+} from "@/api/store/storeOrder";
 import {getAllList} from "@/api/store/city";
 import customerDetails from '../../crm/components/customerDetails.vue';
 import addSms from '../../crm/components/addSms.vue';
@@ -487,6 +545,8 @@ export default {
     ImageUpload,Material ,addSms},
   data() {
     return {
+      deliveryStatusOptions:[],
+      deliverList: [],
       customerUserStatusOptions:[],
       scheduleOptions:[],
       dialogVisibleImage: false,
@@ -588,6 +648,10 @@ export default {
     };
   },
   created() {
+    this.getDicts("store_order_delivery_status").then((response) => {
+      this.deliveryStatusOptions = response.data;
+    });
+
     this.getDicts("crm_customer_user_status").then((response) => {
             this.customerUserStatusOptions = response.data;
         });
@@ -613,6 +677,11 @@ export default {
     }
   },
   methods: {
+    getExpressList(){
+      getByOrderId(this.orderId).then(res=>{
+        this.deliverList = res.data;
+      })
+    },
     closeSms(){
       this.addSms.open=false;
     },
@@ -622,7 +691,7 @@ export default {
         setTimeout(() => {
             that.$refs.sms.getOrderId(this.orderId,mobile,2);
         }, 500);
-        
+
     },
     handlePhone(){
       const id = this.order.id;
@@ -634,7 +703,7 @@ export default {
       const id = this.order.id;
       getStoreOrderAddress(id).then(response =>{
           this.order.userAddress = response.address;
-      }) 
+      })
     },
     showImageDialog() {
       this.dialogVisible = true;
@@ -695,15 +764,18 @@ export default {
               }
             });
     },
-    showExpress(){
+    showExpress(scope){
       this.expressDialog.open=true;
-      getExpress(this.orderId).then(response => {
-          this.express = response.data;
-          if(this.express!=null&&this.express.Traces!=null){
-              this.traces=this.express.Traces
-          }
-
-      });
+      getExpressByDeliverId({
+        orderId: this.orderId,
+        deliverId: scope.row.deliverId,
+        deliverSn: scope.row.deliverSn
+      }).then(response => {
+        this.express = response.data;
+        if(this.express!=null&&this.express.Traces!=null){
+          this.traces=this.express.Traces
+        }
+      })
 
     },
     districtChange(val){
@@ -848,6 +920,8 @@ export default {
             this.payments=response.payments;
             this.customerInfo=response.customer;
         });
+
+      this.getExpressList();
      }
   }
 };

+ 30 - 30
src/views/store/storeOrder/allList.vue

@@ -101,16 +101,16 @@
                   />
             </el-select>
           </el-form-item>
-          <el-form-item label="物流状态" prop="deliveryStatus">
-            <el-select  style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >
-            <el-option
-                    v-for="item in deliveryStatusOptions"
-                    :key="item.dictValue"
-                    :label="item.dictLabel"
-                    :value="item.dictValue"
-                  />
-            </el-select>
-          </el-form-item>
+<!--          <el-form-item label="物流状态" prop="deliveryStatus">-->
+<!--            <el-select  style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >-->
+<!--            <el-option-->
+<!--                    v-for="item in deliveryStatusOptions"-->
+<!--                    :key="item.dictValue"-->
+<!--                    :label="item.dictLabel"-->
+<!--                    :value="item.dictValue"-->
+<!--                  />-->
+<!--            </el-select>-->
+<!--          </el-form-item>-->
           <el-form-item label="结算状态" prop="deliveryPayStatus">
             <el-select style="width:220px" v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small" >
             <el-option
@@ -158,7 +158,7 @@
             <el-select filterable style="width: 200px" v-model="queryParams.scheduleId" placeholder="请选择档期" clearable size="small" >
               <el-option
                       v-for="item in scheduleOptions"
-                      :key="item.id"  
+                      :key="item.id"
                       :label="item.name"
                       :value="item.id"
                     />
@@ -241,16 +241,16 @@
                   <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
               </template>
           </el-table-column>
-          <el-table-column label="物流状态" align="center" prop="deliveryStatus" >
-              <template slot-scope="scope">
-                  <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>
-              </template>
-          </el-table-column>
-          <el-table-column label="物流结算状态" align="center" prop="deliveryPayStatus" >
-              <template slot-scope="scope">
-                  <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>
-              </template>
-          </el-table-column>
+<!--          <el-table-column label="物流状态" align="center" prop="deliveryStatus" >-->
+<!--              <template slot-scope="scope">-->
+<!--                  <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>-->
+<!--              </template>-->
+<!--          </el-table-column>-->
+<!--          <el-table-column label="物流结算状态" align="center" prop="deliveryPayStatus" >-->
+<!--              <template slot-scope="scope">-->
+<!--                  <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>-->
+<!--              </template>-->
+<!--          </el-table-column>-->
           <el-table-column label="操作" fixed="right" width="100px" align="center" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button
@@ -268,7 +268,7 @@
             </template>
           </el-table-column>
         </el-table>
-        
+
         <pagination
           v-show="total>0"
           :total="total"
@@ -282,7 +282,7 @@
       >
       <product-order  ref="order" />
     </el-drawer>
-     
+
   </div>
 </template>
 
@@ -365,7 +365,7 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
-      
+
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -446,7 +446,7 @@ export default {
         products: [
           { required: true, message: "商品不能为空" }
         ],
-        
+
       }
     };
   },
@@ -537,7 +537,7 @@ export default {
             correctLevel: QRCode.CorrectLevel.H
         })
       }, 200);
-      
+
 
     },
     handleAddUser(){
@@ -674,7 +674,7 @@ export default {
         addressId:null,
         userId:null,
         products:null,
-        
+
       };
       this.resetForm("form");
     },
@@ -727,7 +727,7 @@ export default {
               this.getList();
             }
           });
-       
+
         }
       });
     },
@@ -735,7 +735,7 @@ export default {
     handleDelete(row) {
        this.products.splice(this.products.findIndex(item => item.id === row.id), 1)
        this.compute();
-       
+
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -825,7 +825,7 @@ export default {
     max-width: 200px;
     text-align: left;
     .goods-title{
-      
+
       overflow:hidden;
       white-space: nowrap;
       text-overflow: ellipsis;

+ 33 - 33
src/views/store/storeOrder/list.vue

@@ -91,16 +91,16 @@
                   />
             </el-select>
           </el-form-item>
-          <el-form-item label="物流状态" prop="deliveryStatus">
-            <el-select  style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >
-            <el-option
-                    v-for="item in deliveryStatusOptions"
-                    :key="item.dictValue"
-                    :label="item.dictLabel"
-                    :value="item.dictValue"
-                  />
-            </el-select>
-          </el-form-item>
+<!--          <el-form-item label="物流状态" prop="deliveryStatus">-->
+<!--            <el-select  style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >-->
+<!--            <el-option-->
+<!--                    v-for="item in deliveryStatusOptions"-->
+<!--                    :key="item.dictValue"-->
+<!--                    :label="item.dictLabel"-->
+<!--                    :value="item.dictValue"-->
+<!--                  />-->
+<!--            </el-select>-->
+<!--          </el-form-item>-->
           <el-form-item label="结算状态" prop="deliveryPayStatus">
             <el-select style="width:220px" v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small" >
             <el-option
@@ -148,7 +148,7 @@
             <el-select filterable style="width: 200px" v-model="queryParams.scheduleId" placeholder="请选择档期" clearable size="small" >
               <el-option
                       v-for="item in scheduleOptions"
-                      :key="item.id"  
+                      :key="item.id"
                       :label="item.name"
                       :value="item.id"
                     />
@@ -175,7 +175,7 @@
               icon="el-icon-download"
               size="mini"
                 @click="handleExport"
-             
+
             >导出订单</el-button>
           </el-col>
           <el-col :span="1.5">
@@ -223,7 +223,7 @@
                       <div class="sku">{{ JSON.parse(item.jsonInfo).sku}}</div>
                       <div class="price">¥{{JSON.parse(item.jsonInfo).price}}×{{item.num}}</div>
                     </div>
-                    
+
                   </div>
               </template>
           </el-table-column> -->
@@ -256,16 +256,16 @@
                   <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
               </template>
           </el-table-column>
-          <el-table-column label="物流状态" align="center" prop="deliveryStatus" >
-              <template slot-scope="scope">
-                  <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>
-              </template>
-          </el-table-column>
-          <el-table-column label="物流结算状态" align="center" prop="deliveryPayStatus" >
-              <template slot-scope="scope">
-                  <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>
-              </template>
-          </el-table-column>
+<!--          <el-table-column label="物流状态" align="center" prop="deliveryStatus" >-->
+<!--              <template slot-scope="scope">-->
+<!--                  <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>-->
+<!--              </template>-->
+<!--          </el-table-column>-->
+<!--          <el-table-column label="物流结算状态" align="center" prop="deliveryPayStatus" >-->
+<!--              <template slot-scope="scope">-->
+<!--                  <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>-->
+<!--              </template>-->
+<!--          </el-table-column>-->
           <el-table-column label="操作" fixed="right" width="100px" align="center" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button
@@ -279,11 +279,11 @@
                 type="text"
                 @click="handleGenPayUrl(scope.row)"
                 v-hasPermi="['store:storeOrder:genPayUrl']"
-              >生成付款链接</el-button> 
+              >生成付款链接</el-button>
             </template>
           </el-table-column>
         </el-table>
-        
+
         <pagination
           v-show="total>0"
           :total="total"
@@ -436,7 +436,7 @@
             <div  class="qrcode" ref="qrCodeUrl"></div>
         </div>
     </el-dialog>
-     
+
   </div>
 </template>
 
@@ -514,7 +514,7 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
-      
+
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -595,7 +595,7 @@ export default {
         products: [
           { required: true, message: "商品不能为空" }
         ],
-        
+
       }
     };
   },
@@ -660,7 +660,7 @@ export default {
             correctLevel: QRCode.CorrectLevel.H
         })
       }, 200);
-      
+
 
     },
     handleAddUser(){
@@ -797,7 +797,7 @@ export default {
         addressId:null,
         userId:null,
         products:null,
-        
+
       };
       this.resetForm("form");
     },
@@ -850,7 +850,7 @@ export default {
               this.getList();
             }
           });
-       
+
         }
       });
     },
@@ -858,7 +858,7 @@ export default {
     handleDelete(row) {
        this.products.splice(this.products.findIndex(item => item.id === row.id), 1)
        this.compute();
-       
+
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -948,7 +948,7 @@ export default {
     max-width: 200px;
     text-align: left;
     .goods-title{
-      
+
       overflow:hidden;
       white-space: nowrap;
       text-overflow: ellipsis;

+ 30 - 30
src/views/store/storeOrder/myList.vue

@@ -57,16 +57,16 @@
              <el-option key="1"  label="已上传" value="1" />
         </el-select>
       </el-form-item>
-      <el-form-item label="物流状态" prop="deliveryStatus">
-         <el-select style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >
-         <el-option
-                v-for="item in deliveryStatusOptions"
-                :key="item.dictValue"
-                :label="item.dictLabel"
-                :value="item.dictValue"
-              />
-        </el-select>
-      </el-form-item>
+<!--      <el-form-item label="物流状态" prop="deliveryStatus">-->
+<!--         <el-select style="width:220px" v-model="queryParams.deliveryStatus" placeholder="请选择物流状态" clearable size="small" >-->
+<!--         <el-option-->
+<!--                v-for="item in deliveryStatusOptions"-->
+<!--                :key="item.dictValue"-->
+<!--                :label="item.dictLabel"-->
+<!--                :value="item.dictValue"-->
+<!--              />-->
+<!--        </el-select>-->
+<!--      </el-form-item>-->
       <el-form-item label="结算状态" prop="deliveryPayStatus">
          <el-select style="width:220px" v-model="queryParams.deliveryPayStatus" placeholder="请选择物流结算状态" clearable size="small" >
          <el-option
@@ -170,7 +170,7 @@
                   <div class="sku">{{ JSON.parse(item.jsonInfo).sku}}</div>
                   <div class="price">¥{{JSON.parse(item.jsonInfo).price}}×{{item.num}}</div>
                 </div>
-                
+
               </div>
           </template>
       </el-table-column> -->
@@ -203,16 +203,16 @@
               <el-tag prop="status" v-for="(item, index) in statusOptions"    v-if="scope.row.status==item.dictValue">{{item.dictLabel}}</el-tag>
           </template>
       </el-table-column>
-      <el-table-column label="物流状态" align="center" prop="deliveryStatus" >
-          <template slot-scope="scope">
-              <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>
-          </template>
-      </el-table-column>
-      <el-table-column label="物流结算状态" align="center" prop="deliveryPayStatus" >
-          <template slot-scope="scope">
-              <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>
-          </template>
-      </el-table-column>
+<!--      <el-table-column label="物流状态" align="center" prop="deliveryStatus" >-->
+<!--          <template slot-scope="scope">-->
+<!--              <el-tag prop="status" v-for="(item, index) in deliveryStatusOptions"    v-if="scope.row.deliveryStatus==item.dictValue">{{item.dictLabel}}</el-tag>-->
+<!--          </template>-->
+<!--      </el-table-column>-->
+<!--      <el-table-column label="物流结算状态" align="center" prop="deliveryPayStatus" >-->
+<!--          <template slot-scope="scope">-->
+<!--              <el-tag prop="status" v-for="(item, index) in deliveryPayStatusOptions"    v-if="scope.row.deliveryPayStatus==item.dictValue">{{item.dictLabel}}</el-tag>-->
+<!--          </template>-->
+<!--      </el-table-column>-->
       <el-table-column label="操作" fixed="right" width="100px" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -230,7 +230,7 @@
         </template>
       </el-table-column>
     </el-table>
-    
+
     <pagination
       v-show="total>0"
       :total="total"
@@ -308,7 +308,7 @@ export default {
       single: true,
       // 非多个禁用
       multiple: true,
-      
+
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -388,7 +388,7 @@ export default {
         products: [
           { required: true, message: "商品不能为空" }
         ],
-        
+
       }
     };
   },
@@ -412,7 +412,7 @@ export default {
     this.getDicts("store_delivery_pay_status").then((response) => {
       this.deliveryPayStatusOptions = response.data;
     });
-    
+
     this.getList();
   },
   methods: {
@@ -428,7 +428,7 @@ export default {
             correctLevel: QRCode.CorrectLevel.H
         })
       }, 200);
-      
+
 
     },
     handleAddUser(){
@@ -565,7 +565,7 @@ export default {
         addressId:null,
         userId:null,
         products:null,
-        
+
       };
       this.resetForm("form");
     },
@@ -618,7 +618,7 @@ export default {
               this.getList();
             }
           });
-       
+
         }
       });
     },
@@ -626,7 +626,7 @@ export default {
     handleDelete(row) {
        this.products.splice(this.products.findIndex(item => item.id === row.id), 1)
        this.compute();
-       
+
     },
     /** 导出按钮操作 */
     handleExport() {
@@ -716,7 +716,7 @@ export default {
     max-width: 200px;
     text-align: left;
     .goods-title{
-      
+
       overflow:hidden;
       white-space: nowrap;
       text-overflow: ellipsis;