我的快递,快递单号,扫一扫二维码

我的快递,快递单号,扫一扫二维码

2021-03-13
¥ 0 终身VIP免费 升级终身VIP
下载不了?请联系网站客服提交链接错误!
增值服务: 安装指导 环境配置 二次开发 网站建设 模板修改 源码安装 LOGO设计 图片设计
我的快递,快递单号,扫一扫二维码
最近更新 2021年03月13日
资源编号 14183

我的快递,快递单号,扫一扫二维码

郑重承诺丨总裁主题提供安全交易、信息保真!
增值服务:
安装指导
环境配置
二次开发
网站建设
模板修改
源码安装
¥ 0 (终身VIP免费 升级终身VIP开通VIP尊享优惠特权
立即下载 升级会员 最新活动
详情介绍

我的快递,快递单号,扫一扫二维码

于有一个demo,使用扫一扫功能了,真机测试可用,推荐大家学习研究:
我的快递,快递单号,扫一扫二维码

我的快递,快递单号,扫一扫二维码

代码示例:

  1. let req = require( ‘../../requests/request.js’ );
  2. let util = require( ‘../../utils/util.js’ )
  3. Page({
  4.     data:{
  5.       radioValue: “”,
  6.       radioName: “”,
  7.       epxressLists: [],
  8.       saveExpressLists: [],
  9.       words: [“#”,”A”,”B”,”C”,”D”,”E”,”F”,”G”,”H”,”I”,”J”,”K”,”L”,”M”,”N”,”O”,”P”,”Q”,”R”,”S”,”T”,”U”,”V”,”W”,”X”,”Y”,”Z”],
  10.       selectedWord: “top”,
  11.       wWidth: 0,
  12.       wHeight: 0,
  13.       isShowModal: false,
  14.       currentTop: 0,
  15.       obj: {},
  16.       animationError: {},
  17.       errorShow: false,
  18.       scale: 1,
  19.       expressObj: [],
  20.       searchInput: ”
  21.     },
  22.     onLoad(obj){
  23.       const wSize =  util.getWindowSize();
  24.       this.setData({wWidth: wSize.wWidth, wHeight: wSize.wHeight, scale: wSize.scale, obj});
  25.       this.getExpressLsit();
  26.     },
  27.     showModal(e) {
  28.       this.setDefault(e)
  29.       this.setData({isShowModal: true})
  30.     },
  31.     changeModalText(e) {
  32.       this.setDefault(e)
  33.     },
  34.     hideModal() {
  35.       this.setData({isShowModal: false})
  36.     },
  37.     setDefault(e){
  38.       const wWidth =  parseFloat(this.data.wWidth)
  39.       const currentTop = parseFloat(e.touches[0].clientY);
  40.       const startTop = (wWidth / 750) * 200;
  41.       const eachLen = (wWidth / 750) * 25;
  42.       let len = currentTop – startTop;
  43.       let selectedWord = [];
  44.       len = len / eachLen
  45.       len = parseInt(len)
  46.       this.setData({selectedWord: this.data.words[len], currentTop})
  47.     },
  48.     radioChange(e) {
  49.       const index = e.currentTarget.dataset.index.split(“-“)
  50.       const lists = this.data.epxressLists[index[0]]
  51.       const arr = lists.list[index[1]];
  52.       const obj = this.data.obj
  53.       this.setData({radioValue: arr.code, radioName: arr.name})
  54.       obj.key = arr.code
  55.       obj.name = arr.name
  56.       this.setData({obj})
  57.       this.goToDetails()
  58.     },
  59.     goToDetails(){
  60.       const unixTime = new Date().getTime()
  61.       const num =  this.data.obj.num
  62.       const key = this.data.radioValue
  63.       const name = this.data.radioName
  64.       const params = {
  65.         data: {tid: unixTime, companyCode: key, logisticCode: num},
  66.         method: ‘GET’
  67.       }
  68.       util.showLoading(“加载中…”,”loading”, 10000)
  69.       req.getEpxressData(params, data => {
  70.         const status = parseInt(data.status)
  71.         const msg = data.msg || ‘数据查询异常,请稍后再试’
  72.         if(data.data === null) {
  73.           this.showError(msg)
  74.           return
  75.         }
  76.         const state = (data.data.state === null) ? data.data.state : parseInt(data.data.state)
  77.         const traces = data.data.traces
  78.         if(!data.data.success) {
  79.           this.showError(msg)
  80.           return
  81.         }
  82.         if(traces === null) {
  83.           this.showError(‘无该单号信息, 请确认单号’)
  84.           return
  85.         }
  86.         if(state === null || state < 0) {
  87.           this.showError(‘无该单号信息, 请确认单号’)
  88.           return
  89.         }
  90.         if(status !== 1){
  91.           this.showError(data.details)
  92.           return
  93.         }
  94.         if(status === 1 && !!data.data.success && !!traces && parseInt(state) > 0){
  95.           wx.redirectTo({url: ‘../details/details?num=’ + num + ‘&key=’ + key + “&name=” + name})
  96.         }
  97.       }, data => {
  98.       }, data => {
  99.         util.hideToast()
  100.       })
  101.     },
  102.     getExpressLsit() {
  103.       const params = {
  104.         data: {},
  105.         method: ‘GET’
  106.       }
  107.       req.getEpxressList(params, data => {
  108.         const lists = data
  109.         const arr = lists.data
  110.         let epxressLists = []
  111.         const expressObj = []
  112.         for(let i = 0; i < arr.length; i ++) {
  113.           for(let val in arr[i]) {
  114.             for(let j = 0; j < arr[i][val].length; j ++) {
  115.               expressObj.push(arr[i][val][j])
  116.             }
  117.           }
  118.         }
  119.         this.setData({expressObj})
  120.         for(let i = 0; i < arr.length; i ++) {
  121.           for(let val in arr[i]) {
  122.             epxressLists[i] = {key: val, list:arr[i][val]}
  123.           }
  124.         }
  125.         this.setData({epxressLists, saveExpressLists: epxressLists})
  126.       })
  127.     },
  128.     inputChange(e) {
  129.       let searchInput = e.detail.value;
  130.       this.setData({searchInput})
  131.     },
  132.     clearNum() {
  133.       this.setData({searchInput: ”})
  134.     },
  135.     inputConfirm(e) {
  136.       let words = [];
  137.       let firstWord = e.detail.value;
  138.       let searchList = this.data.searchList;
  139.       firstWord = firstWord.replace(/(^s*)|(s*$)/g, “”);
  140.       const expressObj = this.data.expressObj;
  141.       if(firstWord.length >= 2) {
  142.         firstWord = firstWord.substring(0,2);
  143.       }
  144.       for(let i = 0; i < expressObj.length; i ++) {
  145.         if(expressObj[i].name.indexOf(firstWord) > -1) {
  146.           this.setData({selectedWord: expressObj[i].code})
  147.           break;
  148.         }
  149.       }
  150.     },
  151.     selectWord(e) {
  152.       let firstWord = e.target.dataset.value
  153.       this.getOneList(firstWord)
  154.     },
  155.     getOneList(firstWord) {
  156.       if(!firstWord) return
  157.       firstWord = firstWord[0]
  158.       firstWord = firstWord.toUpperCase()
  159.       this.setData({selectedWord: firstWord})
  160.     },
  161.     showError(text) {
  162.       this.animateError(1)
  163.       this.setData({errorShow: true,errorText: text})
  164.       setTimeout(() => {
  165.         this.animateError(0)
  166.       }, 2000)
  167.       setTimeout(() => {
  168.         this.setData({errorShow: false})
  169.       }, 3000)
  170.     },
  171.     animateError(opacity) {
  172.       let animation = wx.createAnimation({
  173.           duration: 1000,
  174.           timingFunction: ‘ease’
  175.       })
  176.       animation.opacity(opacity).step()
  177.       this.setData({
  178.         animationError:animation.export()
  179.       })
  180.     }
  181. })

复制代码

 

免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。

资源下载此资源仅限注册用户下载,请先
客服QQ:3482249445
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

所有文章为演示数据,不提供下载地址,版权归原作者所有,仅提供演示效果!

小程序网 小程序 我的快递,快递单号,扫一扫二维码 https://www.10000ii.com/14183.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用
查看详情

相关文章

我的快递,快递单号,扫一扫二维码-海报

分享本文封面