微信小程序选择省市地址代码分享
来源:互联网 发布:淘宝充值可以赚信誉吗 编辑:程序博客网 时间:2024/05/16 16:10
var address_id;Page({isDefault: false,formSubmit: function(e) {// user var mobile = this.data.mobile;// detailvar zipcode = this.data.zipcode;// realnamevar consignee = this.data.consignee;// mobilevar address = this.data.address;var is_default = 1;var user_id = getApp().globalData.userInfo.user_idvar country = 1;var twon = 0; var province;var city;var district; if(this.data.regionObjects.length == 0){province = this.data.provincevcity = this.data.cityvaluedistrict = this.data.district}else{ province = this.data.provinceObjects[this.data.provinceIndex].id; city = this.data.cityObjects[this.data.cityIndex].id; district = this.data.regionObjects[this.data.regionIndex].id;}var that = this; server.postJSON('/User/editAddress/user_id/' + user_id + "/address_id/" + address_id,{user_id:user_id,mobile:mobile,zipcode:zipcode,consignee:consignee,address:address,is_default:is_default,country:country,twon:twon,province:province,city:city,district:district,address_id:address_id},function(res){if(res.data.status == 1){wx.showToast({title: '保存成功',duration: 1000});if(that.data.returnTo == 1) setTimeout(function () {wx.navigateTo({url: '../../order/ordersubmit/index'});}, 1000); else{wx.navigateBack();}} }); },nameChange: function(e) {var value = e.detail.value;this.setData({consignee: value});},addressChange: function(e) {var value = e.detail.value;this.setData({address: value});},phoneChange: function(e) {var value = e.detail.value;this.setData({mobile: value});},yzChange: function(e) {var value = e.detail.value;this.setData({zipcode: value});},data: {current: 0,province: [],city: [],region: [],town: [],provinceObjects: [],cityObjects: [],regionObjects: [],townObjects: [],areaSelectedStr: '请选择省市区',maskVisual: 'hidden',provinceName: '请选择'},getArea: function (pid, cb) {var that = this;server.getJSON('/User/getArea/parent_id/' + pid,function(res){cb(res.data.result);}); },onLoad: function (options) {var returnTo = options.returnTo;this.setData({returnTo:returnTo});var that = this;// load provincethis.getArea(0, function (area) {var array = [];for (var i = 0; i < area.length; i++) {array[i] = area[i].name;}that.setData({province: array,provinceObjects: area});});// if isDefault, address is emptythis.setDefault();// this.cascadePopup();this.loadAddress(options);// TODO:load default city...},loadAddress: function (options) {var that = this;var user_id = getApp().globalData.userInfo.user_idif (options.objectId != undefined) {address_id = options.objectId; server.getJSON('/User/get_address/user_id/' + user_id + "/id/" + options.objectId,function(res){var address = res.data.result;that.setData({areaSelectedStr:address.city,mobile:address.mobile,zipcode:address.zipcode,address:address.address,consignee:address.consignee,district:address.district,cityvalue:address.cityvalue,provincev:address.province});});}},setDefault: function () {var that = this;var user = AV.User.current();// if user has no address, set the address for defaultvar query = new AV.Query('Address');query.equalTo('user', user);query.count().then(function (count) {if (count <= 0) {that.isDefault = true;}});},cascadePopup: function() {var animation = wx.createAnimation({duration: 500,timingFunction: 'ease-in-out',});this.animation = animation;animation.translateY(-285).step();this.setData({animationData: this.animation.export(),maskVisual: 'show'});},cascadeDismiss: function () {this.animation.translateY(285).step();this.setData({animationData: this.animation.export(),maskVisual: 'hidden'});},provinceTapped: function(e) { // 标识当前点击省份,记录其名称与主键id都依赖它 var index = e.currentTarget.dataset.index; // current为1,使得页面向左滑动一页至市级列表 // provinceIndex是市区数据的标识 this.setData({ provinceName: this.data.province[index], regionName: '', townName: '', provinceIndex: index, cityIndex: -1, regionIndex: -1, townIndex: -1, region: [], town: [] }); var that = this; //provinceObjects是一个LeanCloud对象,通过遍历得到纯字符串数组 // getArea方法是访问网络请求数据,网络访问正常则一个回调function(area){} this.getArea(this.data.provinceObjects[index].id, function (area) { var array = []; for (var i = 0; i < area.length; i++) { array[i] = area[i].name; }// city就是wxml中渲染要用到的城市数据,cityObjects是LeanCloud对象,用于县级标识取值that.setData({cityName: '请选择',city: array,cityObjects: area});// 确保生成了数组数据再移动swiperthat.setData({current: 1});}); }, cityTapped: function(e) { // 标识当前点击县级,记录其名称与主键id都依赖它 var index = e.currentTarget.dataset.index; // current为1,使得页面向左滑动一页至市级列表 // cityIndex是市区数据的标识 this.setData({ cityIndex: index, regionIndex: -1, townIndex: -1, cityName: this.data.city[index], regionName: '', townName: '', town: [] }); var that = this; //cityObjects是一个LeanCloud对象,通过遍历得到纯字符串数组 // getArea方法是访问网络请求数据,网络访问正常则一个回调function(area){} this.getArea(this.data.cityObjects[index].id, function (area) { var array = []; for (var i = 0; i < area.length; i++) { array[i] = area[i].name; }// region就是wxml中渲染要用到的城市数据,regionObjects是LeanCloud对象,用于县级标识取值that.setData({regionName: '请选择',region: array,regionObjects: area});// 确保生成了数组数据再移动swiperthat.setData({current: 2});}); }, regionTapped: function(e) { // 标识当前点击镇级,记录其名称与主键id都依赖它 var index = e.currentTarget.dataset.index; // current为1,使得页面向左滑动一页至市级列表 // regionIndex是县级数据的标识 this.setData({ regionIndex: index, townIndex: -1, regionName: this.data.region[index], townName: '' }); var that = this; //townObjects是一个LeanCloud对象,通过遍历得到纯字符串数组 // getArea方法是访问网络请求数据,网络访问正常则一个回调function(area){} this.getArea(this.data.regionObjects[index].id, function (area) {// 假如没有镇一级了,关闭悬浮框,并显示地址if (area.length == 0) {var areaSelectedStr = that.data.provinceName + that.data.cityName + that.data.regionName;that.setData({areaSelectedStr: areaSelectedStr});that.cascadeDismiss();return;}var array = [];for (var i = 0; i < area.length; i++) {array[i] = area[i].name;}// region就是wxml中渲染要用到的县级数据,regionObjects是LeanCloud对象,用于县级标识取值that.setData({townName: '请选择',town: array,townObjects: area});// 确保生成了数组数据再移动swiperthat.setData({current: 3});}); }, townTapped: function (e) { // 标识当前点击镇级,记录其名称与主键id都依赖它 var index = e.currentTarget.dataset.index; // townIndex是镇级数据的标识 this.setData({ townIndex: index, townName: this.data.town[index] }); var areaSelectedStr = this.data.provinceName + this.data.cityName + this.data.regionName + this.data.townName; this.setData({ areaSelectedStr: areaSelectedStr }); this.cascadeDismiss(); }, currentChanged: function (e) { // swiper滚动使得current值被动变化,用于高亮标记 var current = e.detail.current; this.setData({ current: current }); }, changeCurrent: function (e) { // 记录点击的标题所在的区级级别 var current = e.currentTarget.dataset.current; this.setData({ current: current }); }})
不明白可加入Q群交流219995046
阅读全文
0 0
- 微信小程序选择省市地址代码分享
- (分享)(经典)ADO.NET省市选择代码
- ExtJs 省市级联选择代码
- 分享一个js省市县联动代码
- ListBox与数据库 省市选择程序
- 省市选择
- 微信小程序二级联动省市
- 用JQuery实现省市选择2级联 代码
- 微信小程序的选择收货地址、新增地址、地址管理等模块的总结(1)
- 简单代码实现复杂的省市联动程序-js
- 中国省市选择列表
- 省市选择_js封装
- 省市选择源码
- js简单省市选择
- jS省市选择
- UIPickerView选择省市
- jQuery--1省市选择
- 省市联动选择
- 码农进化之Oracle学习篇
- rongqi基本排序问题
- python里使用reload函数
- 设计模式之简单工厂模式
- 几个自定义的函数,不知道什么时候就可能用到了。。。。
- 微信小程序选择省市地址代码分享
- VMware12中CentOS 7安装和网络设置
- android 枚举类型 替换之道
- 清除已运行过Rancher和K8S的主机上的环境数据
- 前端网页在手机上显示的适配问题
- centos6.5挂载ISO文件
- 用新唐的NANO130 M0实现modbus的0306 功能码
- 带你简单理解Binder
- Python学习笔记(十一)-- Python函数(二)