Funny 3 år sedan
förälder
incheckning
74395016db

+ 1 - 0
package.json

@@ -12,6 +12,7 @@
   "dependencies": {
     "axios": "^0.21.4",
     "element-ui": "^2.15.5",
+    "moment": "^2.29.1",
     "node-sass": "^6.0.1",
     "qrcodejs2": "0.0.2",
     "qs": "^6.10.1",

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

@@ -42,7 +42,7 @@
               <!-- 取货中 -->
               <div class="order_item_header_r" v-if="item.buttonStatus === 2">
                 <el-tag v-if="tabNum === -1" class="header_r">取货中</el-tag>
-                <span v-show="Number(item.riderArriveMinute)" class="header_r">预计{{Number(item.riderArriveMinute)}}分钟取件</span>
+                <!-- <span v-show="Number(item.riderArriveMinute)" class="header_r">预计{{Number(item.riderArriveMinute)}}分钟取件</span> -->
                 <!-- <el-button size='small' @click.stop="cancelOrder(item.id)">取消订单</el-button> -->
                 <el-button size='small' class="btn" @click.stop="orderPrinter(item.waimaiOrderId)" v-if="item.waimaiOrderId">补打发票</el-button>
               </div>
@@ -170,9 +170,9 @@
       </div>
     </el-dialog>
     <!-- 设置预约发单时间弹出层 -->
-    <el-dialog width="580px" center title="设置预约时间" destroy-on-close :visible.sync="settingTimeStatus">
+    <el-dialog width="580px" center :title="exceptTime" destroy-on-close :visible.sync="settingTimeStatus">
       <div>
-        <span>提前发起配送时间:</span>
+        <span>提前多长时间发起配送:</span>
         <el-select size="small" style="width: 80px;;" v-model="timeValue" placeholder="请选择">
           <el-option v-for="(item, index) in timeList" :key="index" :label="item" :value="item"></el-option>
         </el-select>
@@ -180,8 +180,8 @@
       </div>
       <p style="color: #F74141;">提示:设置后系统将根据您设置的提前时间自动发单。</p>
       <div style="text-align: center;margin-top: 20px;">
-        <el-button @click.stop="settingTimeStatus = false">取消</el-button>
-        <el-button type="primary" class="submit-btn" @click.stop="commitTimeValue(orderId)">确定</el-button>
+        <el-button @click.stop="settingTimeStatus = false">取消预约发单</el-button>
+        <el-button type="primary" class="submit-btn" @click.stop="commitTimeValue(orderId)">确定修改</el-button>
       </div>
     </el-dialog>
     <!-- 取消订单弹出层 -->
@@ -273,7 +273,7 @@ export default {
         },
         {
           id: 4,
-          name: "余额支付",
+          name: "余额/三方支付",
           icon: "../../../static/image/yu-e.png",
         },
       ],
@@ -315,6 +315,7 @@ export default {
       showCode: false,
       link: "",
       buttonStatus: 0,
+      exceptTime: ''
     };
   },
   props: {
@@ -467,7 +468,7 @@ export default {
       let exT = moment(this.item.exceptTime).valueOf();
       let nowTime = moment(exT)
         .subtract(this.timeValue, "hours")
-        .format("YYYY-MM-DD HH:mm:ss"); //当前时间的前1小时时间
+        .format("YYYY-MM-DD HH:mm:ss"); //当前时间的前n小时时间
       let t1 = moment(nowTime).valueOf(); // 时间戳
       console.log(nowTime, this.item, "-------------");
       if (t1 - timestamp < 0) {
@@ -501,6 +502,7 @@ export default {
       this.item = item;
       this.settingTimeStatus = true;
       this.timeValue = item.delayTime ? item.delayTime : 1;
+      this.exceptTime = `预约期望${item.exceptTime.slice(5)}送达`
     },
     // 取消订单
     cancelOrder(orderId) {

+ 43 - 18
src/components/orderComponents/orderTrack.vue

@@ -2,13 +2,23 @@
   <div class="order-detail">
     <!-- 取货中 -->
     <div class="picking-up">
-      <div class="top" v-if="buttonStatus === 2 || buttonStatus === 3">
+      <div
+        class="top"
+        v-if="
+          (buttonStatus === 2 && trackOrder.riderArriveMinute) ||
+          (buttonStatus === 3 && trackOrder.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"
+          >{{ trackOrder.riderArriveMinute }}分钟到店取件</span
+        >
+        <span v-if="buttonStatus === 3" class="top-tlt-l"
+          >{{ trackOrder.estimateArriveTime }}送达</span
+        >
       </div>
       <!-- 配送信息 ( 待接单无配送信息 ) -->
       <div class="send-info" v-if="trackOrder.deliveryName">
@@ -17,31 +27,35 @@
           <div class="label-tlt">接单平台:</div>
           <div class="label-right">
             <img :src="trackOrder.deliveryLogo" class="send-logo" />
-            <span>{{trackOrder.deliveryName}}</span>
+            <span>{{ trackOrder.deliveryName }}</span>
           </div>
         </div>
         <div class="label">
           <div class="label-tlt">骑手信息:</div>
           <div class="label-right">
-            <span>{{trackOrder.shipperName}}({{trackOrder.shipperPhone}})</span>
+            <span
+              >{{ trackOrder.shipperName }}({{
+                trackOrder.shipperPhone
+              }})</span
+            >
           </div>
         </div>
         <div class="label">
-          <div class="label-tlt">{{trackOrder.deliveryName}}客服:</div>
+          <div class="label-tlt">{{ trackOrder.deliveryName }}客服:</div>
           <div class="label-right">
-            <span>{{trackOrder.shipperPhone}}</span>
+            <span>{{ trackOrder.customerPhone }}</span>
           </div>
         </div>
         <div class="label">
           <div class="label-tlt">接单时间:</div>
           <div class="label-right">
-            <span>{{trackOrder.receiveTime}}</span>
+            <span>{{ trackOrder.receiveTime }}</span>
           </div>
         </div>
         <div class="label">
-          <div class="label-tlt">{{trackOrder.deliveryName}}订单号:</div>
+          <div class="label-tlt">{{ trackOrder.deliveryName }}订单号:</div>
           <div class="label-right">
-            <span>{{trackOrder.deliveryOrderSn}}</span>
+            <span>{{ trackOrder.deliveryOrderSn }}</span>
           </div>
         </div>
       </div>
@@ -51,13 +65,13 @@
         <div class="label">
           <div class="label-tlt">配送费用:</div>
           <div class="label-right">
-            <span>¥{{trackOrder.payAmount}}</span>
+            <span>¥{{ trackOrder.payAmount }}</span>
           </div>
         </div>
-        <div class="label" >
+        <div class="label">
           <div class="label-tlt">发单时间:</div>
           <div class="label-right">
-            <span>{{trackOrder.sendTime}}</span>
+            <span>{{ trackOrder.sendTime }}</span>
           </div>
         </div>
       </div>
@@ -70,15 +84,26 @@
         <!-- 进度列表 -->
         <div class="process">
           <el-timeline>
-            <el-timeline-item class="p-item" v-for="(v,i) in trackOrder.itemList" :key="i" type="info" size="large" :icon="i ? 'el-icon-success' : 'el-icon-circle-check'">
+            <el-timeline-item
+              class="p-item"
+              v-for="(v, i) in trackOrder.itemList"
+              :key="i"
+              type="info"
+              size="large"
+              :icon="i ? 'el-icon-success' : 'el-icon-circle-check'"
+            >
               <div class="p-right">
                 <div class="p-top">
-                  <span class="p-status">{{orderStatus(v.orderStatus)}}</span>
-                  <span class="p-time">{{v.nodeTime}}</span>
+                  <span class="p-status">{{ orderStatus(v.orderStatus) }}</span>
+                  <span class="p-time">{{ v.nodeTime }}</span>
                 </div>
                 <div class="p-bottom" v-if="v.orderStatus === 2">
-                  {{trackOrder.deliveryName}}骑手
-                  <span class="has-driver">{{trackOrder.shipperName}}({{trackOrder.shipperPhone}})</span>
+                  {{ trackOrder.deliveryName }}骑手
+                  <span class="has-driver"
+                    >{{ trackOrder.shipperName }}({{
+                      trackOrder.shipperPhone
+                    }})</span
+                  >
                   已接单
                 </div>
                 <div class="p-bottom" v-if="v.orderStatus === 1">

+ 138 - 20
src/components/orderComponents/sendOrderPopup.vue

@@ -1,8 +1,17 @@
 <template>
   <div>
-    <el-dialog width="700px" :show-close="false" destroy-on-close :visible.sync="dialogTableVisible">
+    <el-dialog
+      width="700px"
+      :show-close="false"
+      destroy-on-close
+      :visible.sync="dialogTableVisible"
+    >
       <div class="send-content">
-        <div class="top-juhe" @click.stop="changeDeliveryType" :class="{'active': deliveryType == 1}">
+        <div
+          class="top-juhe"
+          @click.stop="changeDeliveryType"
+          :class="{ active: deliveryType == 1 }"
+        >
           <div class="left-content">
             <div class="juhe-icon">
               <img src="../../../static/image/juhe-icon.png" />
@@ -17,23 +26,53 @@
           <div class="right-content">
             <div class="right-title">
               预估&nbsp;
-              <span v-if="deliveryList && deliveryList.length > 1">{{ computedAmount >= 0 ? computedAmount : 0 }}~{{ computedAmountMax >=0 ? computedAmountMax : 0 }}</span>
-              <span v-if="deliveryList && deliveryList.length == 1">{{ computedAmountOther >=0 ? computedAmountOther : 0 }}</span>
+              <span v-if="deliveryList && deliveryList.length > 1"
+                >{{ computedAmount >= 0 ? computedAmount : 0 }}~{{
+                  computedAmountMax >= 0 ? computedAmountMax : 0
+                }}</span
+              >
+              <span v-if="deliveryList && deliveryList.length == 1">{{
+                computedAmountOther >= 0 ? computedAmountOther : 0
+              }}</span>
               <span v-if="deliveryList && deliveryList.length < 1">--</span>
               &nbsp;元
             </div>
-            <div class="youhui" v-if="deliveryList.length >= 1">优惠合计{{discount(deliveryList.length > 1 ? computedAmountMax : computedAmountOther, tipAmount, couponPrice, order.firstCoupon || 0, 0)}}元</div>
+            <div class="youhui" v-if="deliveryList.length >= 1">
+              优惠合计{{
+                discount(
+                  deliveryList.length > 1
+                    ? computedAmountMax
+                    : computedAmountOther,
+                  tipAmount,
+                  couponPrice,
+                  order.firstCoupon || 0,
+                  0
+                )
+              }}元
+            </div>
           </div>
-          <img v-if="deliveryType == 1" src="../../../static/image/choose-icon.png" class="choose-icon" />
+          <img
+            v-if="deliveryType == 1"
+            src="../../../static/image/choose-icon.png"
+            class="choose-icon"
+          />
         </div>
         <!-- 自选运力 -->
         <div class="choose-self">
           <div class="self-top">
-            <img src="../../../static/image/choose-self-icon.png" class="choose-self-icon" />
+            <img
+              src="../../../static/image/choose-self-icon.png"
+              class="choose-self-icon"
+            />
             <span>自选运力</span>
           </div>
           <div class="delivery-list">
-            <div class="delivery-list-item" @click.stop="deliveryItem(item)" v-for="(item, index) in deliveryList" :key="index">
+            <div
+              class="delivery-list-item"
+              @click.stop="deliveryItem(item)"
+              v-for="(item, index) in deliveryList"
+              :key="index"
+            >
               <div class="item-left">
                 <div class="item-logo">
                   <img :src="item.logo" />
@@ -45,12 +84,46 @@
               </div>
               <div class="item-right">
                 <div>
-                  <div class="item-price">预估&nbsp;<span>{{ computePrice(item.deliveryAmount, tipAmount, couponPrice, order.firstCoupon || 0, item.isMine) }}</span>&nbsp;元</div>
-                  <div v-if="!item.isMine && item.deliveryAmount.toFixed(2) > couponParams.limitFee" class="item-coupon">{{order.firstCoupon ? `新人首单立减${order.firstCoupon}元 ` : ''}}优惠合计{{discount(item.deliveryAmount, tipAmount, couponPrice, order.firstCoupon || 0, item.isMine)}}元</div>
+                  <div class="item-price">
+                    预估&nbsp;<span>{{
+                      computePrice(
+                        item.deliveryAmount,
+                        tipAmount,
+                        couponPrice,
+                        order.firstCoupon || 0,
+                        item.isMine
+                      )
+                    }}</span
+                    >&nbsp;元
+                  </div>
+                  <div
+                    v-if="
+                      !item.isMine &&
+                      item.deliveryAmount.toFixed(2) > couponParams.limitFee
+                    "
+                    class="item-coupon"
+                  >
+                    {{
+                      order.firstCoupon
+                        ? `新人首单立减${order.firstCoupon}元 `
+                        : ""
+                    }}优惠合计{{
+                      discount(
+                        item.deliveryAmount,
+                        tipAmount,
+                        couponPrice,
+                        order.firstCoupon || 0,
+                        item.isMine
+                      )
+                    }}元
+                  </div>
                   <div v-if="item.isMine" class="item-coupon">绑定的自运力</div>
                 </div>
                 <div class="item-choose">
-                  <img v-if="!item.isChoose" src="../../../static/image/item-choose-icon.png" />
+                  <img
+                    v-if="!item.isChoose"
+                    src="../../../static/image/item-choose-icon.png"
+                  />
                   <img v-else src="../../../static/image/select_yes@2x.png" />
                 </div>
               </div>
@@ -63,10 +136,23 @@
             <div></div>
             <div class="coupon-box">
               <!-- <img src="../../../static/image/coupon-icon.png" class="coupon-icon" /> -->
-              <el-select @change="chooseCoupon" v-model="coupon" placeholder="请选择使用优惠券">
-                <el-option v-for="item in couponList" :key="item.id" :label="item.name" :value="item.id">
+              <el-select
+                @change="chooseCoupon"
+                v-model="coupon"
+                placeholder="请选择使用优惠券"
+              >
+                <el-option
+                  v-for="item in couponList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
                   <span style="float: left">{{ item.name }}</span>
-                  <span style="float: right; color: #8492a6; font-size: 13px" v-if="item.num">x{{ item.num }}</span>
+                  <span
+                    style="float: right; color: #8492a6; font-size: 13px"
+                    v-if="item.num"
+                    >x{{ item.num }}</span
+                  >
                 </el-option>
               </el-select>
               <!-- <span>选择优惠券</span>
@@ -77,23 +163,48 @@
           <div class="coupon-list"></div>
         </div>
         <!-- 支付方式 -->
-        <div class="choose-self" style="border: none;">
+        <div class="choose-self" style="border: none">
           <div class="self-top">
-            <img src="../../../static/image/choose-self-icon.png" class="choose-self-icon" />
+            <img
+              src="../../../static/image/choose-self-icon.png"
+              class="choose-self-icon"
+            />
             <span>支付方式</span>
           </div>
           <div class="pay-list">
-            <div class="pay-item" @click="payId = item.id" :class="payId == item.id ? 'pay-active' : '' " v-for="(item, index) in payList" :key="index">
+            <div
+              class="pay-item"
+              @click="payId = item.id"
+              :class="payId == item.id ? 'pay-active' : ''"
+              v-for="(item, index) in payList"
+              :key="index"
+            >
               <img :src="item.icon" class="pay-icon" />
               <span>{{ item.name }}</span>
             </div>
           </div>
         </div>
-        <el-button type="primary" class="submit-btn" @click.stop="payMoney">确定支付</el-button>
+        <el-button
+          :loading="loading"
+          type="primary"
+          class="submit-btn"
+          @click.stop="payMoney"
+          >确定支付</el-button
+        >
       </div>
     </el-dialog>
     <!-- 支付二维码弹出层 -->
-    <qr-code v-if="showCode" @paySuccess="paySuccess" @refreshCode="payMoney" @closeCode="showCode = false" ref="code" :payAmount="payAmount" :link="link" :paymentType="payId" :orderSn="orderSn"></qr-code>
+    <qr-code
+      v-if="showCode"
+      @paySuccess="paySuccess"
+      @refreshCode="payMoney"
+      @closeCode="showCode = false"
+      ref="code"
+      :payAmount="payAmount"
+      :link="link"
+      :paymentType="payId"
+      :orderSn="orderSn"
+    ></qr-code>
   </div>
 </template>
 
@@ -140,13 +251,14 @@ export default {
         },
         {
           id: 4,
-          name: "余额支付",
+          name: "余额/三方支付",
           icon: "../../../static/image/yu-e.png",
         },
       ],
       showCode: false,
       link: "",
       orderSn: "",
+      loading: false,
     };
   },
   components: {
@@ -352,6 +464,7 @@ export default {
     paySuccess() {
       this.showCode = false;
       this.dialogTableVisible = false;
+      this.loading = false;
       bus.$emit("pullData", 2);
     },
     payMoney() {
@@ -366,6 +479,7 @@ export default {
           });
         }
       }
+      this.loading = true;
       let params = {
         ...this.requestParams,
         createType: 1,
@@ -384,6 +498,7 @@ export default {
         if (res.code == 200) {
           if (this.payId == 4) {
             this.dialogTableVisible = false;
+            this.loading = false;
             bus.$emit("pullData", 2);
           } else if (
             (this.payId == 1 || this.payId == 2) &&
@@ -397,12 +512,14 @@ export default {
             (this.payId == 1 || this.payId == 2) &&
             res.data.status == 0
           ) {
+            this.loading = false;
             return this.$message({
               message: "获取二维码失败,请联系客服",
               type: "error",
             });
           }
         } else if (res.code === 250) {
+          this.loading = false;
           this.$confirm("当前账户余额不足, 是否前去充值?", "提示", {
             confirmButtonText: "立即充值",
             cancelButtonText: "取消",
@@ -413,6 +530,7 @@ export default {
             });
           });
         } else {
+          this.loading = false;
           this.$message({
             message: res.msg,
             type: "error",

+ 1 - 1
src/components/orderSearch.vue

@@ -95,7 +95,7 @@ export default {
         },
         {
           name: "手动发单",
-          status: 4,
+          status: 99,
         },
       ],
       tabList: [

+ 1 - 1
src/components/settingComponents/voiceSetting.vue

@@ -148,7 +148,7 @@ export default {
           this.openAutodelivery = res.data.openAutodelivery;
           this.openAutoorder = res.data.openAutoorder;
           this.openPrintSwitch = res.data.openPrintSwitch;
-          this.autodeliveryIds = res.data.autodeliveryIds.split(",");
+          this.autodeliveryIds = res.data.autodeliveryIds ? res.data.autodeliveryIds.split(",") : [];
         } else {
           this.$message({
             type: "error",