mpvue实现微信小程序快递单号查询

mpvue刚出来的时候确实很火,但目前好像没有维护,不是很好找官方的文档,只能通过各大论坛的大佬们总结的文章去研究和论证
使用快递100的接口https://m.kuaidi100.com,mpvue也是完全遵循原生微信小程序的语法,所以接口只允许https.~~~~
**在app.vue主文件里面定义一个globalData并初始化一个订单集合

 globalData: {~~~~
    orderInfo: []
  }

mine页面

在此过程中我踩了一个大坑
引入主文件的全局数据需要和vue项目一样
import {app,globalData} from "../../app.vue";

两个简单输入框~~以及绑定了输入事件~~ mpvue也是完全支持v-model的~~~~
 <view class="section">
    <input class="order-input" placeholder="请输入订单号" @change="bindChange"  v-model="value" id="orderId" />
    <input  class="order-input" placeholder="请输入快递公司拼音如shunfeng" @change="bindChange" v-model="value" id="company" />
  </view>
  查询按钮~~~~
  ` <button class="query-btn" size="default" type="primary"  loading=""  @click="search"> 查询 </button>`

在methods里面写入相应的方法

 methods:{
                
          //上面的方法~~~~
          bindChange: function (e) {
               console.log(e);
               var id;
               var value;
               id = e.currentTarget.id;
               value = e.mp.detail.value + '';
               this.inputCon[id] = value;
          },
          search: function () {
          
               var that = this;
               var type = that.inputCon.company;
               var postid = that.inputCon.orderId;
               var data = {
                    'type':type,
                    'postid':postid
               }
               console.log(this.globalData.queryInfo);
               console.log(data);
              
                this.globalData.queryInfo=data;
               console.log(app);
                wx.request({
                    url: 'https://m.kuaidi100.com/query',
                    data: data,
                    header: {
                    'content-type': 'application/json'
                    },
               success:  (res)=> {
               var errTip = res.data.message;
               var orderInfo = res.data.data;
               console.log(orderInfo);
               if(orderInfo.length == 0) {
          
                    console.log(errTip)
                    // that.setData({
                    // errTip:errTip
                    // })
                    this.errTip=errTip
                    return
               }
               // that.setData({
               //      errTip:''
               //      })
               this.errTip=""
               this.globalData.orderInfo = orderInfo;
               console.log( this.globalData.orderInfo)
               wx.navigateTo({
                    url: '../order/main'
               });
                wx.setNavigationBarTitle({
                    title: data.postid
               });
               }
          })
          }

     }

点击查询按钮后跳订单详情页面

order页面内容

<template>
  <view class="order-list">
    <block v-for="(item,index) in orders" :key="index">
      <view class="order-time">{{item.ftime}}:</view>
      <view class="order-txt">{{item.context}}</view>
    </block>
  </view>
</template>
<script>
export default {
     data(){
          return{
               orders:[]
          }
     },
  onLoad: function(options) {
  拿订购信息并渲染
    console.log(options);
    console.log(this.globalData.orderInfo)
     var orderInfo = this.globalData.orderInfo;
     this.orders=orderInfo
  }
};
</script>
<style>
</style>

就这样ok了,当然功能还不是很人性化,因为输入快递名称需要使用拼音,完全依赖于原接口,后面想着如何优化一下

阅读 338

推荐阅读