| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 | 
							- // pages/MaterialFlowInfo/MaterialFlowInfo.js
 
- var http = require('../../utils/http.js');
 
- var util = require('../../utils/util.js');
 
- Page({
 
-   /**
 
-    * 页面的初始数据
 
-    */
 
-   data: {
 
-     steps: [], //订单物流
 
-     packageInfo: [],
 
-     delivery: {},
 
-     latitude: '', //初始纬度
 
-     longitude: '', //初始经度
 
-     scale: 14,
 
-     markers: [],
 
-     polyline: [],
 
-     // 限制拖动的最大和最小范围(这里根据需求设置上下拖动300rpx范围)
 
-     maxTop: 760, // 初始位置760rpx + 300rpx
 
-     minTop: 560, // 初始位置760rpx - 300rpx
 
-     flowInfoBoxTop: 560,
 
-     option: ''
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面加载
 
-    */
 
-   onLoad(options) {
 
-     this.setData({
 
-       option: options,
 
-       latitude:options.lat,
 
-       longitude:options.long
 
-     })
 
-     this.getDeliveryInfo()
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面初次渲染完成
 
-    */
 
-   onReady() {
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面显示
 
-    */
 
-   onShow() {
 
-   },
 
-   /**
 
-    * 刷新
 
-    */
 
-   updateInfo: function () {
 
-     this.getDeliveryInfo()
 
-   },
 
-   /**
 
-    * 配送信息
 
-    * @param {*} e 
 
-    */
 
-   getDeliveryInfo: function () {
 
-     wx.showLoading();
 
-     let url = this.data.option.refundSn ? `/p/myDelivery/refund/${this.data.option.refundSn}` : `/p/myDelivery/orderInfo/${this.data.option.orderNumber}`
 
-     var params = {
 
-       url: url,
 
-       method: "GET",
 
-       callBack: res => {
 
-         wx.hideLoading();
 
-         let dataInfo = []
 
-         if (res.info) {
 
-           this.setData({
 
-             delivery: res
 
-           })
 
-           res.info.forEach(e => {
 
-             e.ctime = util.timestampToDate(e.ctime, 'Y-M-D h:m:s')
 
-             // status:10待接单,20已接单,30已到店,40配送中,50已完成,60已取消,70配送失败
 
-             let statusText;
 
-             switch (e.status) {
 
-               case 10:
 
-                 statusText = '待接单'
 
-                 break
 
-               case 20:
 
-                 statusText = '已接单'
 
-                 break
 
-               case 30:
 
-                 statusText = '已到店'
 
-                 break
 
-               case 40:
 
-                 statusText = '配送中'
 
-                 break
 
-               case 50:
 
-                 statusText = '已完成'
 
-                 break
 
-               case 60:
 
-                 statusText = '已取消'
 
-                 break
 
-               case 70:
 
-                 statusText = '配送失败'
 
-                 break
 
-             }
 
-             let riderName = e.riderName == '' ? '' : ';配送员:' + e.riderName + ','
 
-             let riderPhone = e.riderPhone == '' ? '' : '联系方式:' + e.riderPhone
 
-             dataInfo.push({
 
-               text: statusText + ';' + e.ctime,
 
-               desc: e.statusDesc + riderName + riderPhone,
 
-               inactiveIcon: 'smile'
 
-             })
 
-           })
 
-         } else {
 
-           res.forEach(item => {
 
-             if (item.deliveryDto) {
 
-               let trackPoints = [];
 
-               let content = []
 
-               item.deliveryDto.info.forEach(e => {
 
-                 trackPoints.push({
 
-                   latitude: e.riderLatitude,
 
-                   longitude: e.riderLongitude
 
-                 })
 
-                 content.push({
 
-                   text: e.statusDesc
 
-                 })
 
-                 /*路线绘制 */
 
-                 let polylineData = {
 
-                   points: trackPoints,
 
-                   color: '#449CF7',
 
-                   width: 2
 
-                 };
 
-                 /*距离计算start*/
 
-                 let point1 = {
 
-                   latitude:this.data.option.lat,
 
-                   longitude:this.data.option.long
 
-                 };
 
-                 let point2 = {
 
-                   latitude: trackPoints[0].latitude,
 
-                   longitude: trackPoints[0].longitude
 
-                 };
 
-                 let distance = util.getDistance(point1, point2);
 
-                 /*距离计算end*/
 
-                 /*起终点配置start*/
 
-                 let startMarker = {
 
-                   latitude: trackPoints[0].latitude,
 
-                   longitude: trackPoints[0].longitude,
 
-                   iconPath: '/images/icon/origin.png', //示例图标路径
 
-                   width: 20,
 
-                   height: 20,
 
-                   callout: {
 
-                     content: content[0].text + ',' + '距离' + distance,
 
-                     display: 'ALWAYS',
 
-                     padding: 5,
 
-                     borderRadius: 6,
 
-                     color: '#006CE8'
 
-                   }
 
-                 };
 
-                 let endMarker = {
 
-                   latitude:this.data.option.lat,
 
-                   longitude:this.data.option.long,
 
-                   iconPath:wx.getStorageSync('loginResult').pic,
 
-                   width: 20,
 
-                   height: 20,
 
-                   callout: {
 
-                     content:wx.getStorageSync('loginResult').nickName,
 
-                     display: 'ALWAYS',
 
-                     padding: 5,
 
-                     borderRadius: 6,
 
-                     color: '#006CE8'
 
-                   }
 
-                 };
 
-                 /*起终点配置end*/
 
-                 this.setData({
 
-                   polyline: [polylineData],
 
-                   markers: [startMarker, endMarker]
 
-                 })
 
-                 e.ctime = util.timestampToDate(e.ctime, 'Y-M-D h:m:s')
 
-                 // status:10待接单,20已接单,30已到店,40配送中,50已完成,60已取消,70配送失败
 
-                 let statusText;
 
-                 let contentText;
 
-                 switch (e.status) {
 
-                   case 10:
 
-                     statusText = '待接单'
 
-                     contentText = ''
 
-                     break
 
-                   case 20:
 
-                     statusText = '已接单'
 
-                     contentText = ''
 
-                     break
 
-                   case 30:
 
-                     statusText = '已到目的地'
 
-                     contentText = '配送员已就位,待出货'
 
-                     break
 
-                   case 40:
 
-                     statusText = '配送中'
 
-                     contentText = '配送员已取货,正赶往目的地'
 
-                     break
 
-                   case 50:
 
-                     statusText = '已完成'
 
-                     contentText = '客户已收到商品'
 
-                     break
 
-                   case 60:
 
-                     statusText = '已取消'
 
-                     contentText = ''
 
-                     break
 
-                   case 70:
 
-                     statusText = '配送失败'
 
-                     contentText = ''
 
-                     break
 
-                 }
 
-                 /*物流信息格式处理*/
 
-                 let riderName = e.riderName == '' ? '' : ' ' + contentText + ';配送员:' + e.riderName + ','
 
-                 let riderPhone = e.riderPhone == '' ? '' : '联系方式:' + e.riderPhone
 
-                 dataInfo.push({
 
-                   text: statusText + ';' + e.ctime,
 
-                   desc: e.statusDesc + riderName + riderPhone,
 
-                   inactiveIcon: 'smile'
 
-                 })
 
-               })
 
-             }
 
-           })
 
-           this.setData({
 
-             packageInfo: res
 
-           })
 
-         }
 
-         this.setData({
 
-           steps: dataInfo
 
-         })
 
-       }
 
-     };
 
-     http.request(params);
 
-   },
 
-   /**
 
-    * 触摸开始事件处理函数
 
-    * @param {*} e 
 
-    */
 
-   touchStart(e) {
 
-     this.startY = e.touches[0].pageY;
 
-   },
 
-   /**
 
-    * 触摸移动事件处理函数
 
-    * @param {*} e 
 
-    */
 
-   touchMove(e) {
 
-     const moveY = e.touches[0].pageY;
 
-     const offset = moveY - this.startY;
 
-     let newTop = this.data.flowInfoBoxTop + offset;
 
-     // 限制拖动范围
 
-     newTop = Math.min(this.data.maxTop, Math.max(this.data.minTop, newTop));
 
-     this.setData({
 
-       flowInfoBoxTop: newTop
 
-     });
 
-     this.startY = moveY;
 
-   },
 
-   mapClick() {
 
-     let currentTop = this.data.flowInfoBoxTop;
 
-     // 下移300rpx,确保不超出设定范围
 
-     currentTop = Math.min(this.data.maxTop, currentTop + 300);
 
-     this.setData({
 
-       flowInfoBoxTop: currentTop
 
-     });
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面隐藏
 
-    */
 
-   onHide() {
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面卸载
 
-    */
 
-   onUnload() {
 
-   },
 
-   /**
 
-    * 页面相关事件处理函数--监听用户下拉动作
 
-    */
 
-   onPullDownRefresh() {
 
-   },
 
-   /**
 
-    * 页面上拉触底事件的处理函数
 
-    */
 
-   onReachBottom() {
 
-   },
 
-   /**
 
-    * 用户点击右上角分享
 
-    */
 
-   onShareAppMessage() {
 
-   }
 
- })
 
 
  |