Funny 3 年 前
コミット
4956b43fd7

+ 2 - 1
src/App.vue

@@ -32,7 +32,8 @@ export default {
       openMsg: false,
     };
   },
-  created() {},
+  created() {
+  },
   mounted() {
     bus.$on("closeGetSoundMsg", () => {
       console.log("进来准备关闭新订单提醒声音了");

+ 26 - 21
src/api/order.js

@@ -1,95 +1,100 @@
 import { get, post, postJson } from './http.js';
 
 // 订单列表&订单查询
-export const getOrderList = ( params ) => {
-  return get( 'app/order/listNew', params )
+export const getOrderList = (params) => {
+  return get('app/order/listNew', params)
 }
 
 // 订单角标
-export const getOrderMarker = ( params ) => {
-  return get( 'app/order/markerNew', params )
+export const getOrderMarker = (params) => {
+  return get('app/order/markerNew', params)
 }
 
 // 发起配送
-export const sendValuation = ( params ) => {
+export const sendValuation = (params) => {
   return postJson('app/order/valuation', params)
 }
 
 // 发起支付
-export const sendOrder = ( params ) => {
+export const sendOrder = (params) => {
   return postJson('app/pay/createOrder', params)
 }
 
 // 查询支付结果
-export const getPayResult = ( params ) => {
+export const getPayResult = (params) => {
   return get('app/pay/tradeQuery', params)
 }
 
 // 补打发票
-export const waimaiprinter = ( params ) => {
+export const waimaiprinter = (params) => {
   return get('app/order/print/waimai', params);
 }
 
 // 一件发单备注
-export const addRemark = ( params ) => {
+export const addRemark = (params) => {
   return post('app/order/addRemark', params);
 }
 
 // 忽略订单
-export const ignoreOrder = ( params ) => {
+export const ignoreOrder = (params) => {
   return post('app/order/ignoreOrder', params);
 }
 
 // 撤回订单
-export const rollOrder = ( params ) => {
+export const rollOrder = (params) => {
   return post('app/order/rollOrder', params);
 }
 
 // 定时发单
-export const setDeliveryTime = ( params ) => {
+export const setDeliveryTime = (params) => {
   return get('app/order/setDeliveryTime', params);
 }
 
 // 取消定时发单
-export const cancelTimingPublish = ( params ) => {
+export const cancelTimingPublish = (params) => {
   return postJson('app/order/cancelTimingPublish', params);
 }
 
 // 取消订单
-export const cancelOrder = ( params ) => {
+export const cancelOrder = (params) => {
   return post('app/order/cancel', params);
 }
 // 订单跟踪
-export const trackOrder = ( params ) => {
+export const trackOrder = (params) => {
   return get('app/order/track', params);
 }
 
 // 订单详情
-export const detailOrder = ( params ) => {
+export const detailOrder = (params) => {
   return get('app/order/detailNew', params);
 }
 
 // 加小费
-export const tips = ( params ) => {
+export const tips = (params) => {
   return post('app/order/tips', params);
 }
 
 // 新订单刷新
-export const getRefreshOrder = ( params ) => {
+export const getRefreshOrder = (params) => {
   return postJson('app/order/findNewList', params);
 }
 
 // 订单地图数据
-export const getMapData = ( params ) => {
+export const getMapData = (params) => {
   return get('app/order/showMap', params);
 }
 
 // 地点输入提示API服务
-export const getInputPrompt = ( params ) => {
+export const getInputPrompt = (params) => {
   return get('app/map/getInputPrompt', params);
 }
 
 // 地理编码信息
-export const getGeoCode = ( params ) => {
+export const getGeoCode = (params) => {
   return get('app/map/getGeoCode', params);
 }
+
+// 获取地理位置信息
+export const getLocation = (params) => {
+  return get('app/map/getLocations', params);
+}

+ 5 - 0
src/common/sider.vue

@@ -61,6 +61,11 @@
                 path: '/orderSearch',
                 name: 'orderSearch',
                 title: '订单查询',
+              },
+              {
+                path: '/manualCreate',
+                name: 'manualCreate',
+                title: '手动发单',
               }
             ]
           },

+ 212 - 0
src/components/manualCreate.vue

@@ -0,0 +1,212 @@
+<template>
+  <div class="form-wrap">
+    <el-form label-position="left" ref="form" :model="form" label-width="100px">
+      <div class="moudle">
+        <div class="title">
+          发件地址
+        </div>
+        <el-form-item label="发件门店">
+          <el-input class="input" v-model="form.name"></el-input>
+          <el-button class="but1" type="info">选择门店</el-button>
+        </el-form-item>
+        <el-form-item label="发件人电话">
+          <el-input v-model="form.name"></el-input>
+          <div>~</div>
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="发件人地址">
+          <el-input v-model="form.name">
+            <el-image @click="showMap" slot="append" class="map" src="../../static/image/icon_map.png"></el-image>
+          </el-input>
+        </el-form-item>
+        <el-form-item label="楼号/门牌号">
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+      </div>
+      <div class="moudle">
+        <div class="title">
+          收件地址
+        </div>
+        <el-form-item label="收件人姓名">
+          <el-input v-model="form.name">
+          </el-input>
+          <el-button class="but1" type="info">常用地址</el-button>
+        </el-form-item>
+        <el-form-item label="收件人电话">
+          <el-input v-model="form.name"></el-input>
+          <div>~</div>
+          <el-input v-model="form.name"></el-input>
+        </el-form-item>
+        <el-form-item label="收件人地址">
+          <el-input v-model="form.name">
+            <el-image @click="showMap" slot="append" class="map" src="../../static/image/icon_map.png"></el-image>
+          </el-input>
+        </el-form-item>
+        <el-form-item label="楼号/门牌号">
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+      </div>
+      <div class="moudle">
+        <div class="title">
+          物品信息
+        </div>
+        <el-form-item label="物品类型" label-width="103px">
+          <div class="category_box">
+            <div class="item" :class="form.categoryId == item.id ? 'active':''" v-for="(item,i) in products" :key="i" @click="$set(form,'categoryId',item.id)">
+              {{item.name}}
+            </div>
+          </div>
+        </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 }} KG</div>
+            <img @click="add(1)" src="../../static/image/icon_add.png" class="add" alt="" srcset="" />
+          </div>
+        </el-form-item>
+        <el-form-item label="物品价值">
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="发单时间">
+          <el-button class="but" type="info">立即发单</el-button>
+          <el-button class="but" type="info">预约发单</el-button>
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="发单备注">
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+      </div>
+      <div class="moudle">
+        <div class="title">
+          发票信息
+        </div>
+        <el-form-item label="发票抬头">
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+        <el-form-item label="发票税号">
+          <el-input v-model="form.name">
+          </el-input>
+        </el-form-item>
+
+      </div>
+      <!-- <el-form-item>
+        <el-button type="primary" @click="onSubmit">去结算</el-button>
+      </el-form-item> -->
+    </el-form>
+  </div>
+
+</template>
+
+<script>
+import { getProductList } from '../'
+export default {
+  name: "manualCreate",
+  data() {
+    return {
+      products:[],
+      form: {
+        name: "",
+        region: "",
+        date1: "",
+        date2: "",
+        delivery: false,
+        type: [],
+        resource: "",
+        desc: "",
+      },
+    };
+  },
+  // 监听属性 类似于data概念
+  computed: {},
+  // 监控data中的数据变化
+  watch: {},
+  // 方法集合
+  methods: {
+    onSubmit() {
+      console.log("submit!");
+    },
+    showMap(){
+
+    },
+  },
+  // 生命周期 - 创建完成(可以访问当前this实例)
+  created() {},
+  // 生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {},
+  // 生命周期 - 创建之前
+  beforeCreate() {},
+  // 生命周期 - 挂载之前
+  beforeMount() {},
+  // 生命周期 - 更新之前
+  beforeUpdate() {},
+  // 生命周期 - 更新之后
+  updated() {},
+  // 生命周期 - 销毁之前
+  beforeDestroy() {},
+  // 生命周期 - 销毁完成
+  destroyed() {},
+  // 如果页面有keep-alive缓存功能,这个函数会触发
+  activated() {},
+};
+</script>
+
+<style lang="scss" scoped  type="text/css">
+.form-wrap {
+  width: calc(100% - 40px);
+  // height: calc(100% - 40px);
+  padding: 20px;
+  background: #fff;
+  .moudle {
+    width: 600px;
+    margin: 0 100px 100px 0;
+  }
+  /deep/ .el-form {
+    display: flex;
+    flex-wrap: wrap;
+    // width: 600px;
+  }
+  /deep/ .el-form-item__label {
+    color: #b1b1b1;
+  }
+  .title {
+    font-weight: bold;
+    color: #777777;
+    margin-bottom: 20px;
+  }
+  .but {
+    margin-right: 100px;
+  }
+  .but1 {
+    margin-left: 100px;
+  }
+  /deep/ .el-form-item__content {
+    display: flex;
+  }
+  .printer-num {
+    display: flex;
+    align-items: center;
+    .reduce {
+      width: 30px;
+      height: 30px;
+      cursor: pointer;
+    }
+    .num {
+      margin: 0 10px;
+    }
+    .add {
+      width: 30px;
+      height: 30px;
+      cursor: pointer;
+    }
+    .name {
+      margin-left: 20px;
+    }
+  }
+}
+</style>

+ 72 - 7
src/components/orderComponents/orderAMap.vue

@@ -24,15 +24,20 @@
         </div>
       </div>
     </el-form>
-    <amap ref="map" :zoom="zoom" :center="center" style="height: 600px;" class="amap-demo">
+    <amap @click="onMapClick" ref="map" :zoom="zoom" :center="center" style="height: 600px;" class="amap-demo">
       <amap-marker v-for="(marker,index) in markers" :key="index" :offset="marker.offset" :position="marker.position" :icon="marker.icon" :label="marker.label" />
     </amap>
   </el-dialog>
 </template>
 
 <script>
-import { getInputPrompt, getGeoCode, getMapData } from "../../api/order.js";
-
+import {
+  getInputPrompt,
+  getGeoCode,
+  getMapData,
+  getLocation,
+} from "../../api/order.js";
+import AmapVue from "@amap/amap-vue";
 export default {
   data() {
     return {
@@ -163,7 +168,7 @@ export default {
         this.markers.push(riderM);
       }
       this.$nextTick(() => {
-        console.log('显示地图',this.$refs.map.$map);
+        console.log("显示地图", this.$refs.map.$map);
         this.$refs.map.$map.setFitView();
         setTimeout(() => {
           this.$refs.map.$map.setFitView();
@@ -188,8 +193,8 @@ export default {
     },
     chooseLocation() {
       this.dialogTableVisible = true;
-
       this.showSearch = true;
+      // this.getCurrentLocation();
       this.searchKey = "";
       this.lat = "";
       this.lng = "";
@@ -198,6 +203,66 @@ export default {
       this.$emit("getAddressDetail", this.addressDetail, this.lng, this.lat);
       this.dialogTableVisible = false;
     },
+    // 点击地图选点
+    onMapClick(e) {
+      console.log(e);
+      if (e.lnglat) {
+        this.lng = e.lnglat.lng;
+        this.lat = e.lnglat.lat;
+        this.markers = [
+          {
+            id: 1,
+            position: [this.lng, this.lat],
+            icon: "/static/image/map_current.png",
+          },
+        ];
+        this.getLocation();
+      } else {
+        this.position = null;
+      }
+    },
+    getLocation() {
+      getLocation({
+        location: `${this.lng},${this.lat}`,
+        radius: 500,
+        page: 1,
+        offset: 20,
+      }).then((res) => {
+        console.log("数据", res);
+      });
+    },
+    // 定位
+    getCurrentLocation() {
+      AMap.plugin("AMap.Geolocation", function () {
+        var geolocation = new AMap.Geolocation({
+          // 是否使用高精度定位,默认:true
+          enableHighAccuracy: true,
+          // 设置定位超时时间,默认:无穷大
+          timeout: 10000,
+          // 定位按钮的停靠位置的偏移量,默认:Pixel(10, 20)
+          buttonOffset: new AMap.Pixel(10, 20),
+          //  定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
+          zoomToAccuracy: true,
+          //  定位按钮的排放位置,  RB表示右下
+          buttonPosition: "RB",
+        });
+
+        geolocation.getCurrentPosition();
+        AMap.event.addListener(geolocation, "complete", onComplete);
+        AMap.event.addListener(geolocation, "error", onError);
+
+        function onComplete(data) {
+          // data是具体的定位信息
+          console.log(1111, data);
+          console.log(data.message);
+        }
+
+        function onError(data) {
+          // 定位出错
+          console.log(2222, data);
+        }
+      });
+    },
   },
 };
 </script>
@@ -260,7 +325,7 @@ export default {
   height: 400px;
 }
 /deep/ .amap-container img {
-  width: 35px !important;
-  height: 45px !important;
+  width: 40px !important;
+  height: 40px !important;
 }
 </style>

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

@@ -29,12 +29,12 @@
         <div class="info2" v-if="orderDetail.caution">
           <div class="title">用户备注:</div>
           <!-- <div class="cont cont1">{{orderDetail.caution.length > 60 ? orderDetail.caution.slice(0,60) + '...' : orderDetail.caution}}</div> -->
-          <div class="cont cont1">{{orderDetail.caution.length}}</div>
+          <div class="cont cont1">{{orderDetail.caution}}</div>
         </div>
         <div class="info2 info3" v-if="orderDetail.takeRemark">
           <div class="title">发单备注:</div>
           <!-- <div class="cont cont1">{{orderDetail.takeRemark.length > 60 ? orderDetail.takeRemark.slice(0,60) + '...' : orderDetail.takeRemark}}</div> -->
-          <div class="cont cont1">{{orderDetail.takeRemark.length}}</div>
+          <div class="cont cont1">{{orderDetail.takeRemark}}</div>
         </div>
         <div class="detail_ine"></div>
       </template>
@@ -79,7 +79,7 @@
       </div>
       <div class="info2 info4" v-if="!orderDetail.waimaiOrderId">
         <div class="title">取件时间:</div>
-        <div class="cont cont2">{{ !orderDetail.orderType ? '立即取件' : orderDetail.takeTime}}</div>
+        <div class="cont cont2">{{ !orderDetail.takeType ? '立即取件' : orderDetail.takeTime}}</div>
       </div>
       <!-- <div class="info2 info4" v-if="orderDetail.takeTime && buttonStatus !== 0 && buttonStatus !== 10 ">
         <div class="title">发单时间:</div>

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

@@ -87,7 +87,7 @@ export default {
       openAutoorder: 0,
       openPrintSwitch: 0,
       autodeliveryOrderTime: 0,
-      msasterSwitch: 0,
+      msasterSwitch: 1,
       centerDialogVisible: false,
       autodeliveryIds: [],
       deliveryList: [], // 运力列表
@@ -206,9 +206,9 @@ export default {
           let msasterSwitchList = res.data.map((v) => {
             return v.msasterSwitch;
           });
-          let msasterSwitch = [...new Set(msasterSwitchList)];
-          this.msasterSwitch =
-            msasterSwitch.length === 1 && msasterSwitch[0] === 1 ? 1 : 0;
+          // let msasterSwitch = [...new Set(msasterSwitchList)];
+          // this.msasterSwitch =
+          //   msasterSwitch.length === 1 && msasterSwitch[0] === 1 ? 1 : 0;
         } else {
           this.$message({
             type: "error",

+ 7 - 0
src/router/index.js

@@ -49,6 +49,12 @@ const router = new Router({
           title: '我的账户',
           component: () => import('../components/shopAccount.vue')
         },
+        {
+          path: '/manualCreate',
+          name: 'manualCreate',
+          title: '手动发单',
+          component: () => import('../components/manualCreate.vue')
+        },
 
       ]
     },
@@ -71,6 +77,7 @@ const router = new Router({
 
 router.beforeEach((to, from, next) => {
   if (to.path === '/login') {
+    localStorage.clear()
     next()
   } else {
     const token = localStorage.getItem('token') || null;

BIN
static/image/map_current.png