Funny 3 lat temu
rodzic
commit
d98afbf3ca

+ 56 - 26
src/api/tool.js

@@ -1,10 +1,40 @@
 export default {
   /**
-* 日期时间格式转换
-* @param {String || Number} dateStr  "1995-12-17T03:24:00" || 1605592704154
-* @param {String} format  "yyyy-MM-dd hh:mm:ss"
-* @returns "2020-05-29 12:32:12"
-*/
+   * fun 需要防抖的方法
+   * delay 最小抖动间隔
+   * 用法:
+   * var throttleFunction = throttle(function() {
+   * 		// 需要防抖的方法体
+   * }, 2000)
+   *
+   * 外部直接调用这个包装过的方法
+   * throttleFunction()
+   *
+   */
+  throttle(fun, delay) {
+    let last, deferTimer;
+    return function (args) {
+      let that = this;
+      let _args = arguments;
+      let now = +new Date().getTime();
+      if (last && now < last + delay) {
+        clearTimeout(deferTimer);
+        deferTimer = setTimeout(function () {
+          last = now;
+          fun.apply(that, _args);
+        }, delay);
+      } else {
+        last = now;
+        fun.apply(that, _args);
+      }
+    };
+  },
+  /**
+   * 日期时间格式转换
+   * @param {String || Number} dateStr  "1995-12-17T03:24:00" || 1605592704154
+   * @param {String} format  "yyyy-MM-dd hh:mm:ss"
+   * @returns "2020-05-29 12:32:12"
+   */
   getFormatDate(dateStr = null, format = "yyyy-MM-dd hh:mm:ss") {
     const date = new Date(
       typeof dateStr === "number" ? dateStr : Number(dateStr)
@@ -21,7 +51,8 @@ export default {
 
     if (/(y+)/.test(format)) {
       const m = RegExp.$1; // yyyy
-      format = format.replace( //匹配年份
+      format = format.replace(
+        //匹配年份
         m,
         (date.getFullYear() + "").substr(4 - m.length) //从末尾截取
         /* 1. substr(start, num) 从start 开始截取num 位
@@ -32,13 +63,14 @@ export default {
     for (let k in o) {
       if (new RegExp(`(${k})`).test(format)) {
         // console.log(RegExp.$1); MM dd hh mm ss
-        format = format.replace( //匹配月、日、时分秒
+        format = format.replace(
+          //匹配月、日、时分秒
           RegExp.$1,
           RegExp.$1.length == 1
             ? o[k]
             : ("00" + o[k]).substr(("" + o[k]).length)
-              // 拼接 '00' 的目的是如果当前月份、天数、小时...是小于10的话, 拼接成 '01'的形式
-              // ('' + o[k]).padStart(2, '0') 也可实现
+          // 拼接 '00' 的目的是如果当前月份、天数、小时...是小于10的话, 拼接成 '01'的形式
+          // ('' + o[k]).padStart(2, '0') 也可实现
         );
       }
     }
@@ -51,39 +83,38 @@ export default {
     var date = new Date(inputTime);
     var y = date.getFullYear();
     var m = date.getMonth() + 1;
-    m = m < 10 ? ('0' + m) : m;
+    m = m < 10 ? "0" + m : m;
     var d = date.getDate();
-    d = d < 10 ? ('0' + d) : d;
+    d = d < 10 ? "0" + d : d;
     var h = date.getHours();
-    h = h < 10 ? ('0' + h) : h;
+    h = h < 10 ? "0" + h : h;
     var minute = date.getMinutes();
     var second = date.getSeconds();
-    minute = minute < 10 ? ('0' + minute) : minute;
-    second = second < 10 ? ('0' + second) : second;
-    return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
+    minute = minute < 10 ? "0" + minute : minute;
+    second = second < 10 ? "0" + second : second;
+    return y + "-" + m + "-" + d + " " + h + ":" + minute + ":" + second;
   },
 
   eosFormatTime2(oldTimes1, disparityTime) {
-    let time1 = oldTimes1.split(' ');
-    let time2 = time1[1].split(':');
-    let time3 = time1[0].split('-')
+    let time1 = oldTimes1.split(" ");
+    let time2 = time1[1].split(":");
+    let time3 = time1[0].split("-");
     if (disparityTime % 1 === 0) {
-      return `${time3[1]}/${time3[2]} ${time2[0] - disparityTime}:00`
+      return `${time3[1]}/${time3[2]} ${time2[0] - disparityTime}:00`;
     } else {
-      return `${time3[1]}/${time3[2]} ${time2[0] - Math.ceil(disparityTime)}:30`
+      return `${time3[1]}/${time3[2]} ${time2[0] -
+        Math.ceil(disparityTime)}:30`;
     }
   },
   timeago(hisTime) {
     var diffValue = new Date().getTime() - hisTime,
-      result = '',
-
+      result = "",
       minute = 1000 * 60,
       hour = minute * 60,
       day = hour * 24,
       halfamonth = day * 15,
       month = day * 30,
       year = month * 12,
-
       _year = diffValue / year,
       _month = diffValue / month,
       _week = diffValue / (7 * day),
@@ -96,9 +127,8 @@ export default {
     else if (_week >= 1) result = parseInt(_week) + "周";
     else if (_day >= 1) result = parseInt(_day) + "天";
     else if (_hour >= 1) result = parseInt(_hour) + "个小时";
-    else if (_min >= 1) result = '' + parseInt(_min) + "分钟";
+    else if (_min >= 1) result = "" + parseInt(_min) + "分钟";
     else result = "1分钟";
     return result;
   }
-
-}
+};

+ 63 - 10
src/components/Home.vue

@@ -3,9 +3,15 @@
     <el-row class="order_tab">
       <el-col :span="15">
         <div class="tabList">
-          <div class="tab_item" @click="changeTab(i,item.status)" :class="{'tab_item_ac':tabNum==i?true:false}" v-for="(item,i) in tabList" :key="i">
-            <div class="point" v-show="item.num">{{item.num}}</div>
-            <span>{{item.name}}</span>
+          <div
+            class="tab_item"
+            @click="changeTab(i, item.status)"
+            :class="{ tab_item_ac: tabNum == i ? true : false }"
+            v-for="(item, i) in tabList"
+            :key="i"
+          >
+            <div class="point" v-show="item.num">{{ item.num }}</div>
+            <span>{{ item.name }}</span>
             <div class="tab_line"></div>
           </div>
         </div>
@@ -13,8 +19,19 @@
       <el-col :span="9" class="search">
         <div class="header_serch">
           <div class="search_inp">
-            <el-input size="medium" class="inp" v-model="searchKey" placeholder="请输入手机号/姓名/地址/订单编号"></el-input>
-            <el-button size="medium" type="primary" @click.stop="search" slot="append" icon="el-icon-search"></el-button>
+            <el-input
+              size="medium"
+              class="inp"
+              v-model="searchKey"
+              placeholder="请输入手机号/姓名/地址/订单编号"
+            ></el-input>
+            <el-button
+              size="medium"
+              type="primary"
+              @click.stop="search"
+              slot="append"
+              icon="el-icon-search"
+            ></el-button>
           </div>
           <!-- 1.0.0版本暂不开发该功能 -->
           <!-- <div class="Manual">手动发单</div> -->
@@ -24,9 +41,18 @@
 
     <el-row class="order_list">
       <el-col :span="24" v-loading="isLoading">
-        <order-list :list='orderList' :tabNum='tabNum'></order-list>
-        <div style="text-align: center;">
-          <el-pagination :current-page.sync="params.pageNum" @size-change="handleSizeChange" @current-change="handleCurrentChange" :page-sizes="[10, 20, 50, 100]" :page-size="params.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total" background>
+        <order-list :list="orderList" :tabNum="tabNum"></order-list>
+        <div style="text-align: center">
+          <el-pagination
+            :current-page.sync="params.pageNum"
+            @size-change="handleSizeChange"
+            @current-change="handleCurrentChange"
+            :page-sizes="[10, 20, 50, 100]"
+            :page-size="params.pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="total"
+            background
+          >
           </el-pagination>
         </div>
       </el-col>
@@ -197,7 +223,7 @@ export default {
       getOrderList(this.params).then((res) => {
         this.isLoading = false;
         if (res.code == 200) {
-          this.orderList = []
+          this.orderList = [];
           this.total = res.data.totalNums || 0;
           this.params.pageNum = res.data.pageNum;
           res.data.data.forEach((element) => {
@@ -233,12 +259,39 @@ export default {
           let newList = res.data.newList;
           let deliveryList = res.data.deliveryList;
           if (!newList.length && !deliveryList.length) return;
-          this.orderList = this.orderList.concat(newList);
+          // 根据exceptTime判断是新订单还是预约单
+          let normalList = newList
+            .filter((v) => {
+              return !v.exceptTime;
+            })
+            .map((item) => {
+              item.buttonStatus = 0;
+              return item;
+            });
+
+          let appointList = newList
+            .filter((v) => {
+              return v.exceptTime;
+            })
+            .map((item) => {
+              item.buttonStatus = 10;
+              item.exceptTime = this.$tool.getFormatDate(
+                item.exceptTime * 1000
+              );
+              return item;
+            });
+          // tabNum  0 是新订单 1是预约单
+          if (this.tabNum) {
+            this.orderList = this.orderList.concat(appointList);
+          } else {
+            this.orderList = this.orderList.concat(normalList);
+          }
           deliveryList.forEach((v) => {
             this.orderList = this.orderList.filter((v) => {
               return v.id !== v.id;
             });
           });
+          this.total = this.orderList.length;
         } else {
           this.$message({
             type: "error",

+ 4 - 4
src/components/orderComponents/orderDetail.vue

@@ -63,11 +63,11 @@
 
       <div class="info2 info4" v-if="orderDetail.waimaiOrderId">
         <div class="title">送达时间:</div>
-        <div class="cont cont2">{{ buttonStatus !== 10 ? '立即送达' : orderDetail.exceptTime}}</div>
+        <div class="cont cont2">{{ !orderDetail.exceptTime ? '立即送达' : orderDetail.exceptTime}}</div>
       </div>
       <div class="info2 info4" v-if="!orderDetail.waimaiOrderId">
         <div class="title">取件时间:</div>
-        <div class="cont cont2">{{ buttonStatus !== 10 ? '立即取件' : orderDetail.takeTime}}</div>
+        <div class="cont cont2">{{ !orderDetail.exceptTime ? '立即取件' : orderDetail.takeTime}}</div>
       </div>
       <!-- <div class="info2 info4" v-if="orderDetail.takeTime && buttonStatus !== 0 && buttonStatus !== 10 ">
         <div class="title">发单时间:</div>
@@ -77,8 +77,8 @@
         <div class="title">外卖下单时间:</div>
         <div class="cont">{{orderDetail.orderTime}}</div>
       </div>
-      <div class="info2 info4" v-if="orderDetail.createTime">
-        <div class="title">创建时间:</div>
+      <div class="info2 info4" v-if="orderDetail.createTime && !orderDetail.waimaiOrderId">
+        <div class="title">订单创建时间:</div>
         <div class="cont">{{orderDetail.createTime}}</div>
       </div>
       <div class="info2 info4" v-if="orderDetail.orderSn">

+ 112 - 65
src/components/orderComponents/orderList.vue

@@ -6,21 +6,29 @@
           <div class="empty-data" v-if="list && list.length < 1">
             <img src="../../../static/image/empty-data.png" />
           </div>
-          <div :class="curIdx === i ? 'order_item active-order-item' : 'order_item'" @click="chooseOrder(item,i)" v-for="(item,i) in list" :key="i">
+          <div :class="
+              curIdx === i ? 'order_item active-order-item' : 'order_item'
+            " @click="chooseOrder(item, i)" v-for="(item, i) in list" :key="i">
             <div class="order_item_header">
               <div class="order_item_header_l">
-                <div v-if="item.daySeq" class="Serial_number">#{{item.daySeq}}</div>
-                <img :src="item.logo || item.waimaiLogo" class="logo">
-                <span class="name">{{item.shopName}}</span>
-                <div class="sign_time" v-if="item.waimaiOrderId && item.takeType==1">{{item.exceptTime}}前送达</div>
-                <div class="sign_txt" v-if="item.waimaiOrderId && item.takeType==0">立即送达</div>
+                <div v-if="item.daySeq" class="Serial_number">
+                  #{{ item.daySeq }}
+                </div>
+                <img :src="item.logo || item.waimaiLogo" class="logo" />
+                <span class="name">{{ item.shopName }}</span>
+                <div class="sign_time" v-if="item.waimaiOrderId && item.takeType == 1">
+                  {{ item.exceptTime.slice(5) }}前送达
+                </div>
+                <div class="sign_txt" v-if="item.waimaiOrderId && item.takeType == 0">
+                  立即送达
+                </div>
                 <!-- <div class="sign_d">预约 09/10 17:30自动发起配送</div> -->
               </div>
               <!-- 新订单 -->
-              <div class="order_item_header_r" v-if=" item.buttonStatus === 0">
+              <div class="order_item_header_r" v-if="item.buttonStatus === 0">
                 <!-- <span class="header_r">已发单1分钟</span> -->
                 <el-tag v-if="tabNum === -1" class="header_r">新订单</el-tag>
-                <el-button size='small' class="btn" @click.stop="deleteItem(item)">发起配送</el-button>
+                <el-button size="small" class="btn" @click.stop="deleteItem(item)">发起配送</el-button>
               </div>
               <!-- 预约单 -->
               <div class="order_item_header_r" v-if="item.buttonStatus === 10">
@@ -28,15 +36,22 @@
                 <el-tag v-if="tabNum === -1" class="header_r">预约单</el-tag>
                 <!-- <el-button size='small' @click.stop="iGnoreOrder(item.id)">忽略订单</el-button> -->
                 <!-- <el-button size='small' @click.stop="itemAddRemark(item.id, item)">添加备注</el-button> -->
-                <!-- <el-button size='small' class="btn" @click.stop="settingTime(item)">定时发单</el-button> -->
-                <el-button size='small' class="btn" @click.stop="deleteItem(item)">发起配送</el-button>
+                <el-button size="small" class="btn" @click.stop="settingTime(item)">{{
+                  item.delayTime ? "修改定时" : "定时发单"
+                }}</el-button>
+                <!-- <el-button
+                  size="small"
+                  class="btn"
+                  @click.stop="deleteItem(item)"
+                  >发起配送</el-button
+                > -->
               </div>
               <!-- 待接单 -->
               <div class="order_item_header_r" v-if="item.buttonStatus === 1">
                 <el-tag v-if="tabNum === -1" class="header_r">待接单</el-tag>
-                <span class="header_r">已发单{{item.takeTimeTxt}}</span>
+                <span class="header_r">已发单{{ item.takeTimeTxt }}</span>
                 <!-- <el-button size='small' @click.stop="cancelOrder(item.id)">取消订单</el-button> -->
-                <el-button size='small' @click.stop="orderPrinter(item.waimaiOrderId)" v-if="item.waimaiOrderId">补打发票</el-button>
+                <el-button size="small" @click.stop="orderPrinter(item.waimaiOrderId)" v-if="item.waimaiOrderId">补打发票</el-button>
                 <!-- <el-button size='small' class="btn" @click.stop="addTip(item.id)">加&nbsp;小&nbsp;费</el-button> -->
               </div>
               <!-- 取货中 -->
@@ -44,73 +59,84 @@
                 <el-tag v-if="tabNum === -1" class="header_r">取货中</el-tag>
                 <!-- <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>
+                <el-button size="small" class="btn" @click.stop="orderPrinter(item.waimaiOrderId)" v-if="item.waimaiOrderId">补打发票</el-button>
               </div>
               <!-- 配送中 -->
               <div class="order_item_header_r" v-if="item.buttonStatus === 3">
                 <el-tag v-if="tabNum === -1" class="header_r">配送中</el-tag>
-                <span class="header_r" v-if="item.exceptTime">预计{{item.exceptTime}}送达</span>
-                <el-button size='small' class="btn" @click.stop="orderPrinter(item.waimaiOrderId)" v-if="item.waimaiOrderId">补打发票</el-button>
+                <span class="header_r" v-if="item.exceptTime">预计{{ item.exceptTime }}送达</span>
+                <el-button size="small" class="btn" @click.stop="orderPrinter(item.waimaiOrderId)" v-if="item.waimaiOrderId">补打发票</el-button>
               </div>
               <!-- 异常单 -->
               <div class="order_item_header_r" v-if="item.buttonStatus === -2">
-                <el-tag class="header_r">{{showCancelType(item.cancelType)}}</el-tag>
-                <el-button size='small' class="btn" @click.stop="orderBack(item.id)">撤回订单</el-button>
+                <el-tag class="header_r">{{
+                  showCancelType(item.cancelType)
+                }}</el-tag>
+                <el-button size="small" class="btn" @click.stop="orderBack(item.id)">撤回订单</el-button>
               </div>
               <!-- 取消单 -->
-              <div class="order_item_header_r" v-if="item.buttonStatus ===-1">
-                <el-tag class="header_r">{{showCancelType(item.cancelType)}}</el-tag>
+              <div class="order_item_header_r" v-if="item.buttonStatus === -1">
+                <el-tag class="header_r">{{
+                  showCancelType(item.cancelType)
+                }}</el-tag>
                 <!-- <el-button size='small' class="btn" @click.stop="orderBack(item.id)">撤回订单</el-button> -->
               </div>
               <!-- 猎豹平台已完成 -->
-              <div class="order_item_header_r" v-if="item.buttonStatus ===97">
+              <div class="order_item_header_r" v-if="item.buttonStatus === 97">
                 <el-tag v-if="tabNum === -1" class="header_r">已完成</el-tag>
               </div>
               <!-- 其他平台已完成 -->
-              <div class="order_item_header_r" v-if="item.buttonStatus ===98">
+              <div class="order_item_header_r" v-if="item.buttonStatus === 98">
                 <el-tag v-if="tabNum === -1" class="header_r">其他平台已完成</el-tag>
               </div>
             </div>
             <div class="order_item_cont">
-              <div class="content">{{item.receiptContactName}}<span>{{item.receiptPhone}}</span></div>
+              <div class="content">
+                {{ item.receiptContactName
+                }}<span>{{ item.receiptPhone }}</span>
+              </div>
               <div class="address">
-                {{item.receiptProvinceName}}
-                {{item.receiptCityName}}
-                {{item.receiptDistrictName}}
-                {{item.receiptAddress}}
+                {{ item.receiptProvinceName }}
+                {{ item.receiptCityName }}
+                {{ item.receiptDistrictName }}
+                {{ item.receiptAddress }}
                 <span v-if="item.orderDistance" @click.stop="checkMap(item)">
                   <i class="el-icon-location"></i>
                   <span v-if="item.orderDistance < 1000">
-                    {{item.orderDistance}}m
-                  </span>
-                  <span v-else>
-                    {{item.orderDistance / 1000}}km
+                    {{ item.orderDistance }}m
                   </span>
+                  <span v-else> {{ item.orderDistance / 1000 }}km </span>
                 </span>
               </div>
-              <div v-if="item.caution" class="itme_r">备注:{{item.caution}}</div>
+              <div v-if="item.caution" class="itme_r">
+                备注:{{ item.caution }}
+              </div>
             </div>
           </div>
-          <div v-if="item.caution" class="itme_r">备注:{{item.caution}}</div>
+          <div v-if="item.caution" class="itme_r">备注:{{ item.caution }}</div>
         </div>
       </el-col>
       <!-- 订单追踪、订单详情 -->
       <el-col :span="6">
         <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}">订单跟踪</div>
-            <div class="detail_txt" @click="orderDetailStutus=1" :class="{'detail_txt_ac':!!orderDetailStutus}">订单详情</div>
+            <div v-show="buttonStatus !== 0 && buttonStatus !== 10" class="detail_txt" @click="orderDetailStutus = 0" :class="{ detail_txt_ac: !orderDetailStutus }">
+              订单跟踪
+            </div>
+            <div class="detail_txt" @click="orderDetailStutus = 1" :class="{ detail_txt_ac: !!orderDetailStutus }">
+              订单详情
+            </div>
           </div>
           <order-track v-show="showTrack" :buttonStatus="buttonStatus" :trackOrder="trackOrder" v-if="!orderDetailStutus && needTrack"></order-track>
           <order-detail v-show="showDetail" :buttonStatus="buttonStatus" :orderDetail="orderDetail" v-else></order-detail>
           <!-- 订单跟踪、订单详情底部按钮 -->
           <div v-show="showDetail || showTrack">
             <!-- 新订单 -->
-            <div class="btns" v-if="buttonStatus ===0">
-              <el-button size='small' @click.native="itemAddRemark(list[curIdx].id, list[curIdx])" class="btn_bots">添加备注</el-button>
-              <el-button size='small' @click.native="iGnoreOrder(list[curIdx].id)" class="btn_bots">忽略订单</el-button>
-              <el-button size='small' @click.native="orderPrinter(list[curIdx].waimaiOrderId)" class="btn_bots">补打发票</el-button>
-              <el-button size='small' @click.native="deleteItem(list[curIdx])" class="btn_bots btn">发起配送</el-button>
+            <div class="btns" v-if="buttonStatus === 0">
+              <el-button size="small" @click.native="itemAddRemark(list[curIdx].id, list[curIdx])" class="btn_bots">添加备注</el-button>
+              <el-button size="small" @click.native="iGnoreOrder(list[curIdx].id)" class="btn_bots">忽略订单</el-button>
+              <el-button size="small" @click.native="orderPrinter(list[curIdx].waimaiOrderId)" class="btn_bots">补打发票</el-button>
+              <el-button size="small" @click.native="deleteItem(list[curIdx])" class="btn_bots btn">发起配送</el-button>
             </div>
             <!-- 预约单 -->
             <div class="btns" v-if="buttonStatus === 10">
@@ -118,34 +144,36 @@
                 <el-dropdown>
                   <span class="el-dropdown-link">更多</span>
                   <el-dropdown-menu slot="dropdown">
-                    <el-dropdown-item @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId"><span style="color:#FC7200;">补打发票</span></el-dropdown-item>
+                    <el-dropdown-item @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId"><span style="color: #fc7200">补打发票</span></el-dropdown-item>
                     <el-dropdown-item @click.native="iGnoreOrder(list[curIdx].id)">忽略订单</el-dropdown-item>
                   </el-dropdown-menu>
                 </el-dropdown>
               </div>
-              <el-button size='small' @click.native="itemAddRemark(list[curIdx].id, list[curIdx])" class="btn_bots">添加备注</el-button>
-              <el-button size='small' @click.native="settingTime(list[curIdx])" class="btn_bots btn">定时发单</el-button>
-              <el-button size='small' @click.native="deleteItem(list[curIdx])" class="btn_bots btn">发起配送</el-button>
+              <el-button size="small" @click.native="itemAddRemark(list[curIdx].id, list[curIdx])" class="btn_bots">添加备注</el-button>
+              <el-button size="small" @click.native="settingTime(list[curIdx])" class="btn_bots btn">{{
+                  list[curIdx].delayTime ? "修改定时" : "定时发单"
+                }}</el-button>
+              <el-button size="small" @click.native="deleteItem(list[curIdx])" class="btn_bots btn">发起配送</el-button>
             </div>
             <!-- 待接单 -->
-            <div class="btns" v-if="buttonStatus ===1">
-              <el-button size='small' @click.native="cancelOrder(list[curIdx].id)" class="btn_bots">取消订单</el-button>
-              <el-button size='small' @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots">补打发票</el-button>
-              <el-button size='small' @click.native="addTip(list[curIdx].id)" class="btn_bots btn">加小费</el-button>
+            <div class="btns" v-if="buttonStatus === 1">
+              <el-button size="small" @click.native="cancelOrder(list[curIdx].id)" class="btn_bots">取消订单</el-button>
+              <el-button size="small" @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots">补打发票</el-button>
+              <el-button size="small" @click.native="addTip(list[curIdx].id)" class="btn_bots btn">加小费</el-button>
             </div>
             <!-- 取货中 -->
             <div class="btns" v-if="buttonStatus === 2">
-              <el-button size='small' @click.native="cancelOrder(list[curIdx].id)" class="btn_bots">取消订单</el-button>
-              <el-button size='small' @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots btn">补打发票</el-button>
+              <el-button size="small" @click.native="cancelOrder(list[curIdx].id)" class="btn_bots">取消订单</el-button>
+              <el-button size="small" @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots btn">补打发票</el-button>
             </div>
             <!-- 配送中 -->
             <div class="btns" v-if="buttonStatus === 3">
-              <el-button size='small' @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots btn">补打发票</el-button>
+              <el-button size="small" @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots btn">补打发票</el-button>
             </div>
             <!-- 异常单 -->
             <div class="btns" v-if="buttonStatus === -2">
-              <el-button size='small' @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots">补打发票</el-button>
-              <el-button size='small' @click.native="orderBack(list[curIdx].id)" class="btn_bots btn">撤回订单</el-button>
+              <el-button size="small" @click.native="orderPrinter(list[curIdx].waimaiOrderId)" v-if="list[curIdx].waimaiOrderId" class="btn_bots">补打发票</el-button>
+              <el-button size="small" @click.native="orderBack(list[curIdx].id)" class="btn_bots btn">撤回订单</el-button>
             </div>
             <!-- 已取消 -->
             <div class="btns" v-if="buttonStatus === -1">
@@ -164,7 +192,7 @@
       <div>
         <el-input placeholder="请添加备注信息,最多输入20个字!" v-model="remark" :maxlength="20" />
       </div>
-      <div style="text-align: center;margin-top: 20px;">
+      <div style="text-align: center; margin-top: 20px">
         <el-button @click.stop="dialogTableVisible = false">取消</el-button>
         <el-button type="primary" class="submit-btn" @click.stop="commitRemark(orderId, item)">确定</el-button>
       </div>
@@ -173,13 +201,15 @@
     <el-dialog width="580px" center :title="exceptTime" destroy-on-close :visible.sync="settingTimeStatus">
       <div>
         <span>提前多长时间发起配送:</span>
-        <el-select size="small" style="width: 80px;;" v-model="timeValue" placeholder="请选择">
+        <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>
         <span>小时</span>
       </div>
-      <p style="color: #F74141;">提示:设置后系统将根据您设置的提前时间自动发单。</p>
-      <div style="text-align: center;margin-top: 20px;">
+      <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>
       </div>
@@ -187,12 +217,17 @@
     <!-- 取消订单弹出层 -->
     <el-dialog width="680px" center title="取消原因" destroy-on-close :visible.sync="cancelStatus">
       <div class="cancel-list">
-        <div class="item" @click.stop="changeReason(item)" :class="[(index + 1 ) % 3 == 0 ? 'no-margin': '', item.id == reasonIndex ? 'active' : '']" v-for="(item, index) in cancelList" :key="index">{{ item.name }}</div>
+        <div class="item" @click.stop="changeReason(item)" :class="[
+            (index + 1) % 3 == 0 ? 'no-margin' : '',
+            item.id == reasonIndex ? 'active' : '',
+          ]" v-for="(item, index) in cancelList" :key="index">
+          {{ item.name }}
+        </div>
       </div>
       <div class="text-area">
         <el-input show-word-limit :rows="4" type="textarea" resize="none" :maxlength="50" placeholder="请输入其他原因" v-model="cancelReason"></el-input>
       </div>
-      <div style="text-align: center;margin-top: 20px;">
+      <div style="text-align: center; margin-top: 20px">
         <el-button @click.stop="cancelStatus = false">取消</el-button>
         <el-button type="primary" class="submit-btn" @click.stop="commitCancelReason(orderId)">确定</el-button>
       </div>
@@ -202,25 +237,27 @@
       <div>
         <div class="tip-title">小费金额</div>
         <div class="tip-list">
-          <div class="tip-item" @click.stop="tipActive = index" :class="tipActive == index ? 'tip-active' : ''" v-for="(item, index) in tipList" :key="index">{{ item }}元</div>
+          <div class="tip-item" @click.stop="tipActive = index" :class="tipActive == index ? 'tip-active' : ''" v-for="(item, index) in tipList" :key="index">
+            {{ item }}元
+          </div>
           <div class="tip-item" @click.stop="tipActive = -1" :class="tipActive == -1 ? 'tip-active' : ''">
             <el-input placeholder="其他金额" v-model="tipAmount" />
           </div>
         </div>
         <!-- 支付方式 -->
-        <div class="choose-self" style="border: none;">
+        <div class="choose-self" style="border: none">
           <div class="self-top">
             <span>支付方式</span>
           </div>
           <div class="pay-list">
-            <div class="pay-item" @click.stop="paymentType = item.id" :class="paymentType == item.id ? 'pay-active' : '' " v-for="(item, index) in payList" :key="index">
+            <div class="pay-item" @click.stop="paymentType = item.id" :class="paymentType == 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>
       </div>
-      <div style="text-align: center;margin-top: 20px;">
+      <div style="text-align: center; margin-top: 20px">
         <el-button @click.stop="addTipStatus = false">取消</el-button>
         <el-button type="primary" class="submit-btn" @click.stop="richMoney(orderId)">确定</el-button>
       </div>
@@ -315,7 +352,7 @@ export default {
       showCode: false,
       link: "",
       buttonStatus: 0,
-      exceptTime: ''
+      exceptTime: "",
     };
   },
   props: {
@@ -342,6 +379,11 @@ export default {
     },
     list(newVal, oldVal) {
       this.buttonStatus = newVal.length ? newVal[0].buttonStatus : 0;
+      if (this.buttonStatus === 0 || this.buttonStatus === 10) {
+        this.needTrack = false;
+      } else {
+        this.needTrack = true;
+      }
       this.getDetailOrder();
       this.getTrackOrder();
     },
@@ -502,7 +544,7 @@ export default {
       this.item = item;
       this.settingTimeStatus = true;
       this.timeValue = item.delayTime ? item.delayTime : 1;
-      this.exceptTime = `预约期望${item.exceptTime.slice(5)}送达`
+      this.exceptTime = `预约期望${item.exceptTime.slice(5)}送达`;
     },
     // 取消订单
     cancelOrder(orderId) {
@@ -511,6 +553,11 @@ export default {
     },
     chooseOrder(v, index) {
       this.buttonStatus = this.list[index].buttonStatus;
+      if (this.buttonStatus === 0 || this.buttonStatus === 10) {
+        this.needTrack = false;
+      } else {
+        this.needTrack = true;
+      }
       this.curIdx = index;
       this.getDetailOrder();
       this.getTrackOrder();
@@ -723,7 +770,7 @@ export default {
       } else {
         return;
       }
-      if (this.tabNum < 2) return;
+      if (this.buttonStatus === 0 || this.buttonStatus === 10) return;
       trackOrder({ orderId: this.orderId }).then((res) => {
         if (res.code === 200) {
           this.trackOrder = res.data;

+ 9 - 27
src/components/orderComponents/orderTrack.vue

@@ -2,23 +2,16 @@
   <div class="order-detail">
     <!-- 取货中 -->
     <div class="picking-up">
-      <div
-        class="top"
-        v-if="
+      <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">
@@ -33,11 +26,9 @@
         <div class="label">
           <div class="label-tlt">骑手信息:</div>
           <div class="label-right">
-            <span
-              >{{ trackOrder.shipperName }}({{
+            <span>{{ trackOrder.shipperName }}({{
                 trackOrder.shipperPhone
-              }})</span
-            >
+              }})</span>
           </div>
         </div>
         <div class="label">
@@ -84,14 +75,7 @@
         <!-- 进度列表 -->
         <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>
@@ -99,11 +83,9 @@
                 </div>
                 <div class="p-bottom" v-if="v.orderStatus === 2">
                   {{ trackOrder.deliveryName }}骑手
-                  <span class="has-driver"
-                    >{{ trackOrder.shipperName }}({{
+                  <span class="has-driver">{{ trackOrder.shipperName }}({{
                       trackOrder.shipperPhone
-                    }})</span
-                  >
+                    }})</span>
                   已接单
                 </div>
                 <div class="p-bottom" v-if="v.orderStatus === 1">

+ 24 - 88
src/components/orderComponents/sendOrderPopup.vue

@@ -1,17 +1,8 @@
 <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" />
@@ -26,11 +17,9 @@
           <div class="right-content">
             <div class="right-title">
               预估&nbsp;
-              <span v-if="deliveryList && deliveryList.length > 1"
-                >{{ computedAmount >= 0 ? computedAmount : 0 }}~{{
+              <span v-if="deliveryList && deliveryList.length > 1">{{ computedAmount >= 0 ? computedAmount : 0 }}~{{
                   computedAmountMax >= 0 ? computedAmountMax : 0
-                }}</span
-              >
+                }}</span>
               <span v-if="deliveryList && deliveryList.length == 1">{{
                 computedAmountOther >= 0 ? computedAmountOther : 0
               }}</span>
@@ -51,28 +40,16 @@
               }}元
             </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" />
@@ -93,16 +70,12 @@
                         order.firstCoupon || 0,
                         item.isMine
                       )
-                    }}</span
-                    >&nbsp;元
+                    }}</span>&nbsp;元
                   </div>
-                  <div
-                    v-if="
+                  <div v-if="
                       !item.isMine &&
                       item.deliveryAmount.toFixed(2) > couponParams.limitFee
-                    "
-                    class="item-coupon"
-                  >
+                    " class="item-coupon">
                     {{
                       order.firstCoupon
                         ? `新人首单立减${order.firstCoupon}元 `
@@ -120,10 +93,7 @@
                   <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>
@@ -136,23 +106,10 @@
             <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>
@@ -165,46 +122,21 @@
         <!-- 支付方式 -->
         <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
-          :loading="loading"
-          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>
 
@@ -690,13 +622,17 @@ export default {
       };
       getCouponList(params).then((res) => {
         if (res.code == 200) {
-          console.log(res.data);
+          let data = res.data.data;
+          if (!data.length) return;
           this.couponList = [
             {
               id: -1,
               name: "不使用优惠券",
             },
-          ].concat(res.data.data);
+          ].concat(data);
+          // 默认选中一个优惠券
+          this.coupon = data[0].id;
+          this.chooseCoupon(data[0].id);
         }
       });
     },

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

@@ -11,7 +11,7 @@
     <div class="top-set">
       <div class="t-left">
         自动配送(暂不支持预约单)
-        <span>[时长设置]</span>
+        <span @click="centerDialogVisible = true">[时长设置]</span>
       </div>
       <div class="t-right">
         <span>默认下单{{autodeliveryOrderTime}}分钟后</span>

+ 48 - 17
src/components/shopCompoents/bindDelivery.vue

@@ -1,11 +1,11 @@
 <template>
   <div>
     <div class="take-out-list">
-      <div class="item" v-for="(v,index) in deliveryList" :key="index">
+      <div class="item" v-for="(v, index) in deliveryList" :key="index">
         <div class="item-top">
           <div class="top-left">
-            <img :src="v.logo" alt="" class="top-left-img">
-            <div class="name">{{v.name}}</div>
+            <img :src="v.logo" alt="" class="top-left-img" />
+            <div class="name">{{ v.name }}</div>
           </div>
           <div v-if="v.bindStatus === 1" class="top-right">
             <span>开启后首选该账号平台为配送平台</span>
@@ -18,36 +18,40 @@
               <img :src="v.pcLogo" class="l-l-img" />
             </div>
             <div class="take-out-name">
-              <div v-if="v.shopNo">商户编号:{{v.code}}</div>
-              <div v-if="v.balance">账户余额:{{v.balance}}</div>
+              <div v-if="v.shopNo">商户编号:{{ v.code }}</div>
+              <div v-if="v.balance">账户余额:{{ v.balance }}</div>
             </div>
           </div>
           <!-- 1->绑定,0:未绑定,2-> 审核中,3->拒绝,4->待完善资料 -->
           <div class="right">
-            <span class="reason">{{v.bindStatus === 2 ? '审核中' : v.bindStatus === 3 ? `已拒绝` : ''}}</span>
-            <el-button v-if="[0,3].includes(v.bindStatus)" @click="goBind(v)" v-loading.fullscreen.lock="fullscreenLoading" element-loading-text="关闭窗口后再操作!" type="primary" size="small" class="right-btn">去绑定</el-button>
+            <span class="reason">{{
+              v.bindStatus === 2 ? "审核中" : v.bindStatus === 3 ? `已拒绝` : ""
+            }}</span>
+            <el-button v-if="[0, 3].includes(v.bindStatus)" @click="goBind(v)" v-loading.fullscreen.lock="fullscreenLoading" element-loading-text="关闭窗口后再操作!" type="primary" size="small" class="right-btn">去绑定</el-button>
             <el-button v-if="[1].includes(v.bindStatus)" @click="release(v)" size="small">解&nbsp;&nbsp;&nbsp;绑</el-button>
             <!-- <el-button v-if="v.bindStatus === 2" @click="release(v)" type="info" size="small">审核中</el-button> -->
             <!-- <el-button v-if="v.bindStatus === 3" @click="release(v)" type="danger" size="small">已拒绝</el-button> -->
-            <el-button v-if="[1,4].includes(v.bindStatus)&&[1,9].includes(v.type)" @click="perfectData(v)" type="primary" size="small" class="right-btn">完善资料</el-button>
+            <el-button v-if="[1, 4].includes(v.bindStatus) && [1, 9].includes(v.type)" @click="perfectData(v)" type="primary" size="small" class="right-btn">完善资料</el-button>
           </div>
         </div>
-        <div class="respect">{{v.authMsg}}</div>
+        <div v-if="v.bindStatus === 3" class="respect">{{ v.authMsg }}</div>
       </div>
     </div>
     <!-- UU跑腿 -->
     <el-dialog :title="title" :visible.sync="centerDialogVisible" width="40%" center>
       <el-form v-if="title === 'UU跑腿绑定'" :model="UUData" ref="UUData" label-width="80px" class="demo-ruleForm">
-        <el-form-item label="城市" prop="cityName" :rules="[{ required: true, message: '城市不能为空'}]">
+        <el-form-item label="城市" prop="cityName" :rules="[{ required: true, message: '城市不能为空' }]">
           <el-input v-model="UUData.cityName" placeholder="请输入当前城市名称"></el-input>
         </el-form-item>
-        <el-form-item label="手机号" prop="mobile" :rules="[{ required: true, message: '手机号不能为空'}]">
+        <el-form-item label="手机号" prop="mobile" :rules="[{ required: true, message: '手机号不能为空' }]">
           <el-input v-model="UUData.mobile" placeholder="请输入用户手机号"></el-input>
         </el-form-item>
-        <el-form-item label="验证码" prop="validateCode" :rules="[{ required: true, message: '验证码不能为空'}]">
+        <el-form-item label="验证码" prop="validateCode" :rules="[{ required: true, message: '验证码不能为空' }]">
           <div class="code">
             <el-input v-model="UUData.validateCode" placeholder="请输入验证码"></el-input>
-            <div class="get-code" v-if="!showCode" @click.stop="getCode">获取短信验证码</div>
+            <div class="get-code" v-if="!showCode" @click.stop="getCode">
+              获取短信验证码
+            </div>
             <div class="get-code" v-else>{{ count }}秒</div>
           </div>
         </el-form-item>
@@ -57,7 +61,7 @@
         </el-form-item>
       </el-form>
       <el-form v-if="title === 'UU跑腿解绑'" :model="UUData" ref="UUData" label-width="80px" class="demo-ruleForm">
-        <el-form-item label="手机号" prop="mobile" :rules="[{ required: true, message: '手机号不能为空'}]">
+        <el-form-item label="手机号" prop="mobile" :rules="[{ required: true, message: '手机号不能为空' }]">
           <el-input v-model="UUData.mobile" placeholder="请输入用户手机号"></el-input>
         </el-form-item>
         <el-form-item>
@@ -229,10 +233,16 @@ export default {
           center: true,
         })
           .then(({ value }) => {
+            if (!value) {
+              return this.$message({
+                type: "error",
+                message: "请输入正确的顺丰同城ID",
+              });
+            }
             params.sfId = value;
             bindDelivery(params).then((res) => {
               if (res.code === 200) {
-                this.jumpUrl = res.data;
+                this.getDeliveryList();
               } else {
                 this.$message({
                   type: "error",
@@ -315,6 +325,23 @@ export default {
         this.centerDialogVisible = true;
       });
     },
+    releaseSF(v) {
+      this.$prompt("请输入顺丰同城ID", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        center: true,
+      }).then(({ value }) => {
+        console.log(111, value);
+        if (!value) {
+          return this.$message({
+            type: "error",
+            message: "请输入正确的顺丰同城ID",
+          });
+        }
+        v.sfId = value;
+        this.confirmRelease(v);
+      });
+    },
     unBindDelivery(v) {
       unBindDelivery({ id: v.id }).then((res) => {
         if (res.code === 200) {
@@ -336,7 +363,11 @@ export default {
       if (v.type === 7) {
         this.title = "UU跑腿解绑";
         this.centerDialogVisible = true;
-        // this.UURelease(v);
+        return;
+      }
+      // 顺丰同程解绑
+      if (v.type === 5) {
+        this.releaseSF(v);
         return;
       }
       this.$confirm("此操作将解绑当前配送平台, 是否继续?", "提示", {
@@ -363,7 +394,7 @@ export default {
     confirmRelease(v) {
       let params = {
         id: v.id,
-        sfId: v.thirdShopId,
+        sfId: v.sfId,
       };
       releaseDelivery(params).then((res) => {
         if (res.code === 200) {

+ 99 - 19
src/components/shopCompoents/printerAdd.vue

@@ -1,56 +1,129 @@
 <template>
   <div class="shopAdd">
     <!-- 打印机新增、编辑 -->
-    <el-dialog width="40%" :title="title" destroy-on-close center :visible.sync="showVisible">
+    <el-dialog
+      width="40%"
+      :title="title"
+      destroy-on-close
+      center
+      :visible.sync="showVisible"
+    >
       <el-form :model="form" ref="form" label-width="120px">
         <el-form-item label="选择打印机" prop="deviceType">
           <div class="category_box">
-            <div class="item" :class="form.deviceType == item.type ? 'active':''" v-for="(item,i) in devices" :key="i" @click="changeType(item)">
-              {{item.name}}
+            <div
+              class="item"
+              :class="form.deviceType == item.type ? 'active' : ''"
+              v-for="(item, i) in devices"
+              :key="i"
+              @click="changeType(item)"
+            >
+              {{ item.name }}
             </div>
           </div>
         </el-form-item>
         <el-form-item label="打印机名称" prop="name">
-          <el-input v-model="form.name" placeholder="给这台打印机取个名字吧" autocomplete="off" style="width: 100%">
+          <el-input
+            v-model="form.name"
+            placeholder="给这台打印机取个名字吧"
+            autocomplete="off"
+            style="width: 100%"
+          >
           </el-input>
         </el-form-item>
         <el-form-item label="打印机编号" prop="deviceSn">
-          <el-input v-model="form.deviceSn" placeholder="查看打印机底部标签" autocomplete="off" style="width: 100%">
+          <el-input
+            v-model="form.deviceSn"
+            placeholder="查看打印机底部标签"
+            autocomplete="off"
+            style="width: 100%"
+          >
           </el-input>
         </el-form-item>
         <el-form-item label="打印机KEY" prop="deviceSecret">
-          <el-input v-model="form.deviceSecret" placeholder="查看打印机底部标签" autocomplete="off" style="width: 100%">
+          <el-input
+            v-model="form.deviceSecret"
+            placeholder="查看打印机底部标签"
+            autocomplete="off"
+            style="width: 100%"
+          >
           </el-input>
         </el-form-item>
         <el-form-item label="自动打印接单" prop="deviceSecret">
-          <el-switch v-model="form.openOrderPrint" :active-value="1" :inactive-value="0" />
+          <el-switch
+            v-model="form.openOrderPrint"
+            :active-value="1"
+            :inactive-value="0"
+          />
         </el-form-item>
         <el-form-item label="自动打印取消单" prop="deviceSecret">
-          <el-switch v-model="form.openOrderCancelPrint" :active-value="1" :inactive-value="0" />
+          <el-switch
+            v-model="form.openOrderCancelPrint"
+            :active-value="1"
+            :inactive-value="0"
+          />
         </el-form-item>
         <el-form-item label="打印份数">
           <div class="printer-num">
-            <img @click="reduce(1)" src="../../../static/image/icon_reduce.png" class="reduce" alt="" srcset="">
-            <div class="num">{{form.printCustomerCount}} 份</div>
-            <img @click="add(1)" src="../../../static/image/icon_add.png" class="add" alt="" srcset="">
+            <img
+              @click="reduce(1)"
+              src="../../../static/image/icon_reduce.png"
+              class="reduce"
+              alt=""
+              srcset=""
+            />
+            <div class="num">{{ form.printCustomerCount }} 份</div>
+            <img
+              @click="add(1)"
+              src="../../../static/image/icon_add.png"
+              class="add"
+              alt=""
+              srcset=""
+            />
             <div class="name">客户联</div>
           </div>
           <div class="printer-num">
-            <img @click="reduce(2)" src="../../../static/image/icon_reduce.png" class="reduce" alt="" srcset="">
-            <div class="num">{{form.printMerchantCount}} 份</div>
-            <img @click="add(2)" src="../../../static/image/icon_add.png" class="add" alt="" srcset="">
+            <img
+              @click="reduce(2)"
+              src="../../../static/image/icon_reduce.png"
+              class="reduce"
+              alt=""
+              srcset=""
+            />
+            <div class="num">{{ form.printMerchantCount }} 份</div>
+            <img
+              @click="add(2)"
+              src="../../../static/image/icon_add.png"
+              class="add"
+              alt=""
+              srcset=""
+            />
             <div class="name">商家联</div>
           </div>
           <div class="printer-num">
-            <img @click="reduce(3)" src="../../../static/image/icon_reduce.png" class="reduce" alt="" srcset="">
-            <div class="num">{{form.printKitchenCount}} 份</div>
-            <img @click="add(3)" src="../../../static/image/icon_add.png" class="add" alt="" srcset="">
+            <img
+              @click="reduce(3)"
+              src="../../../static/image/icon_reduce.png"
+              class="reduce"
+              alt=""
+              srcset=""
+            />
+            <div class="num">{{ form.printKitchenCount }} 份</div>
+            <img
+              @click="add(3)"
+              src="../../../static/image/icon_add.png"
+              class="add"
+              alt=""
+              srcset=""
+            />
             <div class="name">厨房联</div>
           </div>
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
-        <el-button :loading="loading" size="medium" class="btn" @click="save">保存</el-button>
+        <el-button :loading="loading" size="medium" class="btn" @click="save"
+          >保存</el-button
+        >
       </div>
     </el-dialog>
   </div>
@@ -76,6 +149,10 @@ export default {
       loading: false,
     };
   },
+  created(){
+    this.saveFun = this.$tool.throttle(this.savePrinter, 2000);
+    console.log(1111,this.saveFun);
+  },
   methods: {
     changeType(v) {
       this.$set(this.form, "deviceType", v.type);
@@ -101,7 +178,7 @@ export default {
       }
       this.showVisible = true;
     },
-    save() {
+    savePrinter() {
       if (!String(this.form.deviceId).trim()) {
         return this.$message({
           type: "error",
@@ -144,6 +221,9 @@ export default {
         this.loading = false;
       });
     },
+    save() {
+      this.saveFun()
+    },
     add(type) {
       switch (type) {
         case 1: