Funny il y a 3 ans
Parent
commit
8c8bad1ad9

+ 4 - 0
src/api/order.js

@@ -102,4 +102,8 @@ export const getLocation = (params) => {
 // 手动发单保存订单
 export const saveOrder = (params) => {
   return postJson('app/order/saveOrder', params);
+}
+// 获取骑手预计到达时间
+export const getRiderArriveTime = (params) => {
+  return get('app/order/getRiderArriveTime', params);
 }

+ 5 - 5
src/components/manualCreate.vue

@@ -123,12 +123,11 @@
         </span>
       </el-dialog>
     </el-form>
-    <el-button class="btn" size="small" type="primary" @click="onSubmit">去结算</el-button>
+    <el-button class="btn" size="small" type="primary" @click="onSubmit">{{form.takeType ? '保存' : '去结算'}}</el-button>
     <!-- 通过地图选择地理位置 -->
     <order-map @getAddressDetail="getAddressDetail" ref="orderMap"></order-map>
     <!-- 发起配送 -->
     <send-order-popup ref="sendOrderPopup"></send-order-popup>
-
   </div>
 
 </template>
@@ -170,6 +169,7 @@ export default {
         type: this.$store.state.userInfo.memberType === 1 ? 1 : 2,
         isWaimai: false,
         createType: 1,
+        shopId: this.$store.state.userInfo.shopId,
       },
       showChooseShop: false,
       showChooseAddress: false,
@@ -177,7 +177,7 @@ export default {
       shopList: [],
       searchKey: "",
       curIdx: 0,
-      shopId: this.$store.state.userInfo.shopId,
+      
       isLoading: false,
     };
   },
@@ -215,6 +215,7 @@ export default {
     chooseShop() {
       this.showChooseShop = false;
       let sendAddress = this.shopList[this.curIdx];
+      this.form.shopId = sendAddress.id
       Object.keys(this.form.sendAddress).map((v) => {
         this.form.sendAddress[v] = sendAddress[v];
         this.form.sendAddress.phone = sendAddress.mobile;
@@ -231,7 +232,7 @@ export default {
         if (res.code === 200) {
           this.shopList = res.data;
           let sendAddress = res.data.filter((v) => {
-            return v.id === this.shopId;
+            return v.id === this.form.shopId;
           })[0];
           Object.keys(this.form.sendAddress).map((v) => {
             this.form.sendAddress[v] = sendAddress[v];
@@ -312,7 +313,6 @@ export default {
       this.$refs.orderMap.chooseLocation();
     },
     getAddressDetail(v, lng, lat) {
-      console.log(111, v, lng, lat);
       this.form.receiptAddress.address = v.address;
       this.form.receiptAddress.provinceName = v.province;
       this.form.receiptAddress.cityName = v.city;

+ 23 - 7
src/components/orderComponents/orderList.vue

@@ -2,7 +2,7 @@
   <div>
     <el-row class="track-detail">
       <!-- 订单追踪、订单详情 -->
-      <el-col :span="7"  v-loading="!orderDetailStutus && !showTrack" element-loading-text="拼命加载中">
+      <el-col :span="7" v-loading="!orderDetailStutus && !showTrack" element-loading-text="拼命加载中">
         <div class="order_detail">
           <div class="detail_title">
             <div v-show="buttonStatus !== 0 && buttonStatus !== 10" class="detail_txt" @click="orderDetailStutus = 0" :class="{ detail_txt_ac: !orderDetailStutus }">
@@ -12,7 +12,7 @@
               订单详情
             </div>
           </div>
-          <order-track v-show="showTrack" :hasLocation="hasLocation" :buttonStatus="buttonStatus" :trackOrder="trackOrder" v-if="!orderDetailStutus && needTrack"></order-track>
+          <order-track v-show="showTrack" :riderArriveTime="riderArriveTime" :buttonStatus="buttonStatus" :trackOrder="trackOrder" v-if="!orderDetailStutus && needTrack"></order-track>
           <order-detail v-show="showDetail" :buttonStatus="buttonStatus" :orderDetail="orderDetail" v-else></order-detail>
           <!-- 订单跟踪、订单详情底部按钮 -->
           <div class="bottom-btns" v-show="showDetail || showTrack">
@@ -289,6 +289,7 @@ import {
   trackOrder,
   detailOrder,
   tips,
+  getRiderArriveTime,
   getPayResult,
   getMapData,
 } from "../../api/order.js";
@@ -354,8 +355,8 @@ export default {
       link: "",
       buttonStatus: 0,
       exceptTime: "",
-      hasLocation: false, // 是否有骑手位置
       delayTime: "", // 预约延迟时间
+      riderArriveTime: {}, //骑手预计取货送达时间
     };
   },
   props: {
@@ -376,7 +377,6 @@ export default {
     list: {
       handler(newVal, oldVal) {
         this.buttonStatus = newVal.length ? newVal[0].buttonStatus : 0;
-        this.hasLocation = newVal.length ? !!newVal[0].orderDistance : false;
         if (this.buttonStatus === 0 || this.buttonStatus === 10) {
           this.needTrack = false;
           this.orderDetailStutus = 1;
@@ -386,6 +386,7 @@ export default {
         }
         this.getDetailOrder();
         this.getTrackOrder();
+        this.getRiderArriveTime();
       },
       immediate: true,
     },
@@ -574,7 +575,6 @@ export default {
     },
     chooseOrder(v, index) {
       this.buttonStatus = this.list[index].buttonStatus;
-      this.hasLocation = !!this.list[index].orderDistance;
       if (this.buttonStatus === 0 || this.buttonStatus === 10) {
         this.needTrack = false;
         this.orderDetailStutus = 1;
@@ -585,6 +585,7 @@ export default {
       this.curIdx = index;
       this.getDetailOrder();
       this.getTrackOrder();
+      this.getRiderArriveTime();
     },
     // 忽略订单
     iGnoreOrder(orderId) {
@@ -788,13 +789,13 @@ export default {
     },
     // 订单跟踪
     getTrackOrder() {
+      if (this.buttonStatus === 0 || this.buttonStatus === 10) return;
       this.showTrack = false;
       if (this.list.length) {
         this.orderId = this.list[this.curIdx].id;
       } else {
         return;
       }
-      if (this.buttonStatus === 0 || this.buttonStatus === 10) return;
       trackOrder({ orderId: this.orderId }).then((res) => {
         if (res.code === 200) {
           this.trackOrder = res.data;
@@ -807,6 +808,21 @@ export default {
         }
       });
     },
+    // 获取骑手预计到达时间
+    getRiderArriveTime() {
+      // 只有取货中和配送中调用该接口
+      if (![2, 3].includes(this.buttonStatus)) return;
+      if (this.list.length) {
+        this.orderId = this.list[this.curIdx].id;
+      } else {
+        return;
+      }
+      getRiderArriveTime({ orderId: this.orderId }).then((res) => {
+        if(res.code === 200){
+          this.riderArriveTime = res.data
+        }
+      });
+    },
     showCancelType(type) {
       let name = "";
       switch (type) {
@@ -1179,7 +1195,7 @@ export default {
   font-size: 14px;
   font-weight: 400;
   color: #b1b1b1;
-  word-wrap:break-word;
+  word-wrap: break-word;
 }
 .order_detail {
   position: relative;

+ 5 - 5
src/components/orderComponents/orderTrack.vue

@@ -7,15 +7,15 @@
         {{showCancelType(trackOrder.cancelType)}}
       </div>
       <div class="top" v-if="
-          hasLocation && ((buttonStatus === 2 && trackOrder.riderArriveMinute) ||
-          (buttonStatus === 3 && trackOrder.estimateArriveTime))
+          (buttonStatus === 2 && riderArriveTime.riderArriveMinute) ||
+          (buttonStatus === 3 && riderArriveTime.estimateArriveTime)
         ">
         <div class="top-l">
           <img src="../../../static/image/time-icon.png" class="time-icon" />
           <span class="top-tlt">骑手预计</span>
         </div>
-        <span v-if="buttonStatus === 2" class="top-tlt-l">{{ trackOrder.riderArriveMinute }}分钟后到店取件</span>
-        <span v-if="buttonStatus === 3" class="top-tlt-l">{{ trackOrder.estimateArriveTime }}送达</span>
+        <span v-if="buttonStatus === 2" class="top-tlt-l">{{ riderArriveTime.riderArriveMinute }}分钟后到店取件</span>
+        <span v-if="buttonStatus === 3" class="top-tlt-l">{{ riderArriveTime.estimateArriveTime }}送达</span>
       </div>
       <!-- 配送信息 ( 待接单无配送信息 ) -->
       <div class="send-info" v-if="trackOrder.deliveryName">
@@ -113,7 +113,7 @@ export default {
   props: {
     trackOrder: Object,
     buttonStatus: Number,
-    hasLocation: Boolean,
+    riderArriveTime: Object,
   },
   data() {
     return {};