【已停止维护】微信小程序-功能强大的地址选择

微信小程序-级联菜单,地址选择器

【已停止维护】

功能强大可配置的级联菜单,支持一到四级菜单的选择

功能: 左右滑动切换层级 支持选择部分地址(不选完) 灵活的地址数据源,可以从开发者服务器数据获取数据,也可以读取内置地址数据 返回每一级地址的ID及名称 使用方法: 复制view下的areaSelector目录到你的项目 复制utils下的service.js到你的项目 在需要的页面引入areaSelector

js文件

import { AreaPicker } from "../../view/areaSelector/selector.js" //使用Object.assign方法使地址选择器合并到你写的对象 Page(Object.assign({}, AreaPicker, { data{ ... } //添加用户选择地区完成的回调 onAreaCommit(locationList) { } })) //别忘了这里多一个括号

wxml布局文件

<!--引入选择器布局--> <include src="../../view/areaSelector/selector.wxml" /> <!--加上点击事件--> <view bindtap="showAreaSelector">选择地址</view>

wxss样式文件

/* 引入地址选择器样式 */ @import "/view/areaSelector/selector.wxss"; 配置方法:

找到areaSelector下的selector.js文件,找到_area_init()方法

//选择器初始化 _area_init() { this.setData({ _area_level: 4,//总共有几级地址 _area_selectAllArea: true,//是否要求用户选到最后一级 ... }) },

_area_level控制地址的层级,_area_selectAllArea为false时,用户可以提前结束地址选择。

修改地址数据源:

看,我们把获取地址的逻辑抽离了出来

_area_loadArea(level, areaId) { let _area_areaList = this.data._area_areaList; wx.showLoading({ title: '加载中' }); service.getNextAreaList(areaId).then(data => { //确保返回的数据一定有id和name这两个字段 _area_areaList[level] = data; this.setData({ _area_areaList: _area_areaList }); ... wx.hideLoading(); }).catch(e => { wx.showToast({ title: `获取地区失败,${JSON.stringify(e)}`, image: '/image/warn.png' }) }); },

找到utils下的service.js文件,这里配置你的地址数据

/** * 获取服务器返回的地址数据 * @areaId 地址ID * 返回Promise对象 */ export function getNextAreaList(areaId) { return new Promise((resolve) => { setTimeout(() => { let nextAreaList = [ { id: 1, name: '地区A' }, { id: 2, name: '地区B' }, { id: 3, name: '地区C' }, { id: 4, name: '地区D' }, { id: 5, name: '地区E' }, ]; resolve(nextAreaList) }, 300); }) }

DEMO中使用了虚拟数据,现在我们替换为自己的数据源:

export function getNextAreaList(areaId) { return new Promise((resolve,reject) => { wx.request({ url:'xxx'//你的接口地址 param:{...}//参数 success(res){ let list=[] for(let item of res.data){ list.push({ id:item.id,//id对应地区ID name:item.name//name对应地区名称 }) } //成功回调 要确保数组中的对象有id和name字段 resolve(list); }, fail(err){ //失败回调 reject(err) } }) }) }

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。