微信小程序学习用:我的快递,快递单号,扫一扫二维码
终于有一个demo,使用扫一扫功能了,真机测试可用,推荐大家学习研究:
[AppleScript]
let req = require( '../../requests/request.js' ); let util = require( '../../utils/util.js' ) Page({ data:{ radioValue: "", radioName: "", epxressLists: [], saveExpressLists: [], 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"], selectedWord: "top", wWidth: 0, wHeight: 0, isShowModal: false, currentTop: 0, obj: {}, animationError: {}, errorShow: false, scale: 1, expressObj: [], searchInput: '' }, onLoad(obj){ const wSize = util.getWindowSize(); this.setData({wWidth: wSize.wWidth, wHeight: wSize.wHeight, scale: wSize.scale, obj}); this.getExpressLsit(); }, showModal(e) { this.setDefault(e) this.setData({isShowModal: true}) }, changeModalText(e) { this.setDefault(e) }, hideModal() { this.setData({isShowModal: false}) }, setDefault(e){ const wWidth = parseFloat(this.data.wWidth) const currentTop = parseFloat(e.touches[0].clientY); const startTop = (wWidth / 750) * 200; const eachLen = (wWidth / 750) * 25; let len = currentTop - startTop; let selectedWord = []; len = len / eachLen len = parseInt(len) this.setData({selectedWord: this.data.words[len], currentTop}) }, radioChange(e) { const index = e.currentTarget.dataset.index.split("-") const lists = this.data.epxressLists[index[0]] const arr = lists.list[index[1]]; const obj = this.data.obj this.setData({radioValue: arr.code, radioName: arr.name}) obj.key = arr.code obj.name = arr.name this.setData({obj}) this.goToDetails() }, goToDetails(){ const unixTime = new Date().getTime() const num = this.data.obj.num const key = this.data.radioValue const name = this.data.radioName const params = { data: {tid: unixTime, companyCode: key, logisticCode: num}, method: 'GET' } util.showLoading("加载中...","loading", 10000) req.getEpxressData(params, data => { const status = parseInt(data.status) const msg = data.msg || '数据查询异常,请稍后再试' if(data.data === null) { this.showError(msg) return } const state = (data.data.state === null) ? data.data.state : parseInt(data.data.state) const traces = data.data.traces if(!data.data.success) { this.showError(msg) return } if(traces === null) { this.showError('无该单号信息, 请确认单号') return } if(state === null || state < 0) { this.showError('无该单号信息, 请确认单号') return } if(status !== 1){ this.showError(data.details) return } if(status === 1 && !!data.data.success && !!traces && parseInt(state) > 0){ wx.redirectTo({url: '../details/details?num=' + num + '&key=' + key + "&name=" + name}) } }, data => { }, data => { util.hideToast() }) }, getExpressLsit() { const params = { data: {}, method: 'GET' } req.getEpxressList(params, data => { const lists = data const arr = lists.data let epxressLists = [] const expressObj = [] for(let i = 0; i < arr.length; i ++) { for(let val in arr[i]) { for(let j = 0; j < arr[i][val].length; j ++) { expressObj.push(arr[i][val][j]) } } } this.setData({expressObj}) for(let i = 0; i < arr.length; i ++) { for(let val in arr[i]) { epxressLists[i] = {key: val, list:arr[i][val]} } } this.setData({epxressLists, saveExpressLists: epxressLists}) }) }, inputChange(e) { let searchInput = e.detail.value; this.setData({searchInput}) }, clearNum() { this.setData({searchInput: ''}) }, inputConfirm(e) { let words = []; let firstWord = e.detail.value; let searchList = this.data.searchList; firstWord = firstWord.replace(/(^s*)|(s*$)/g, ""); const expressObj = this.data.expressObj; if(firstWord.length >= 2) { firstWord = firstWord.substring(0,2); } for(let i = 0; i < expressObj.length; i ++) { if(expressObj[i].name.indexOf(firstWord) > -1) { this.setData({selectedWord: expressObj[i].code}) break; } } }, selectWord(e) { let firstWord = e.target.dataset.value this.getOneList(firstWord) }, getOneList(firstWord) { if(!firstWord) return firstWord = firstWord[0] firstWord = firstWord.toUpperCase() this.setData({selectedWord: firstWord}) }, showError(text) { this.animateError(1) this.setData({errorShow: true,errorText: text}) setTimeout(() => { this.animateError(0) }, 2000) setTimeout(() => { this.setData({errorShow: false}) }, 3000) }, animateError(opacity) { let animation = wx.createAnimation({ duration: 1000, timingFunction: 'ease' }) animation.opacity(opacity).step() this.setData({ animationError:animation.export() }) } }) 项目地址及下载: |
小鱼源码网www.vipsrc.vip
开心一下:
电视台一女主持婚后几年不育,着急忧愁,去找医生诉苦说:“说我不行嘛,未婚时就怀孕过三次;说老公不行嘛,难道我们几个台领导都不行?
1.本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除!
2.本站站内提供的所有可下载资源(软件等等)本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发);但本网站不能保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug;同时本站用户必须明白,小鱼源码对提供下载的软件等不拥有任何权利(本站原创和特约原创作者除外),其版权归该资源的合法拥有者所有。
3.请您认真阅读上述内容,购买即以为着您同意上述内容。
小鱼源码下载网 » 微信小程序学习用:我的快递,快递单号,扫一扫二维码
小鱼源码下载网 » 微信小程序学习用:我的快递,快递单号,扫一扫二维码