wex5实战之管理收货地址(二)

接着上一张管理收货地址,这章主要讲解新增,编辑,选择省市区功能,主要有windowReceiver、windowDialog、tree组件的使用。

1、新增、编辑地址,页面。

在页面中放入windowReceiver、windowDialog组件

windowReceiver:用于接收地址参数,判断是否为新增或编辑。

windowDialog:用于打开选择省市区弹窗,返回选择数据。

Model.prototype.windowReceiver1Receive = function(event){

var addressData = this.comp("addressData");

addressData.clear();//清除数据

var me=this;

if(this.params.operator == "new"){//为新增

addressData.newData({//新增字段,清除原有数据

"defaultValues" : [ {

"id" : justep.UUID.createUUID(),

"fCreateTime" : new Date()

} ]

});

}else{//为编辑

var url = require.toUrl(url_window+"/uapp/getaddressByid.htm?jsoncallback=?");

$.ajaxSettings.async = false;

var id = me.params.id!=""?me.params.id:"";

var datas = {

id:id

}

$.getJSON(url,datas,function(data) {//通过传人id获取当前id数据返回data组件

addressData.loadData(data.areaItem);

addressData.first();//若数据加载不出,可加上此代码试试

});

}

};

//判断手机号码,失焦时判断手机号码正则

Model.prototype.mobileInputBlur = function(event){

var phone = this.comp(‘mobileInput‘).val();

var phoneReg = /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/;

if(!phoneReg.test(phone) || phone == ""){

util.hint("手机号码有误,请重新输入");

this.comp(‘mobileInput‘).val(‘‘);

}

};

2、选择省市区。

//选择省市

Model.prototype.chooseAddressClick = function(event){

this.comp(‘chooseAddInput‘).val(‘‘);

this.comp("windowDialog1").open();//点击input弹出省市区页面。

};

3、tree使用

使用tree组件的json数据必须是固定一种结构

json:

{"rows":[//fparentID父级id,
	{
		"fID":"1","Name":"北京市","fparentID":{},
		"rows":[
			{
				"fID":"1_2","Name":"市辖","fparentID":"1",
				"rows":[
				{
					"fID":"2_5","Name":"海淀区","fparentID":"1_2"
				},{
					"fID":"2_5","Name":"朝阳区","fparentID":"1_2"
				},{
					"fID":"2_6","Name":"中关村","fparentID":"1_2"
				}
				]
		    },{
				"fID":"1_3","Name":"地区","fparentID":"1"
			},{
				"fID":"1_4","Name":"地区2","fparentID":"1"
			}
		]
	},
	{
		"fID":"2","Name":"江苏省","fparentID":{},
		"rows":[
			{
				"fID":"2_5","Name":"南京市","fparentID":"2",
				"rows":[
				{
					"fID":"2_5","Name":"六合区","fparentID":"2_5"
				},{
					"fID":"2_5","Name":"白下区","fparentID":"2_5"
				},{
					"fID":"2_6","Name":"秦淮区","fparentID":"2_5"
				}
				]
			},{
				"fID":"2_7","Name":"泰州市","fparentID":"2",
				"rows":[
				{
					"fID":"2_5","Name":"泰兴市","fparentID":"2_7"
				},{
					"fID":"2_5","Name":"兴化市","fparentID":"2_7"
				},{
					"fID":"2_6","Name":"海陵区","fparentID":"2_7"
				}
				]
			},{
				"fID":"2_6","Name":"常州市","fparentID":"2"
			}
		]
	}

]}

设置选择最后一级时隐藏右侧箭头

当点击到最后一级时,将当前id,名称返回到新增地址页面

me.comp("windowReceiver1").windowEnsure({"city":city,"areaid":datas.id});//返回参数

使用windowEnsure返回参数并关闭页面

4、现在已经获得到省市区id,名称,返回到新增地址页面,

使用windowDialog1的参数接收事件接收返回参数并赋值到对应组件中

Model.prototype.windowDialog1Receive = function(event){

var city = event.data.city;

var areaid = event.data.areaid;

this.comp("chooseAddInput").val(city);

this.comp("areaidInput").val(areaid);

this.comp("areaInfoInput").val(‘‘);

};

5、点击保存按钮保存到数据库并返回管理地址页面

1)上面已使用正则判断手机号了,分别再判断每个input中对应数据是否为空或填写不正确,弹出提示框

if(name == ""){

util.hint("姓名不能为空,请重新输入");

return;

}else if(phone == ""){

util.hint("手机号不能为空,请重新输入");

return;

}else if(city_address == ""){

util.hint("请选择您的所在地");

return;

}else if(address == ""){

util.hint("请输入您的详细地址");

return;

}

以上步骤均无误后使用getJSON保存数据并跳转页面

$.getJSON(url,datas, function(data) {

if(data.returnFlag == 100){

util.hint("保存成功!");

var url = require.toUrl(‘./ManageAddress.w‘);

justep.Shell.showPage(url);

}

})

以上为管理收货地址,增删改查,重要知识点为:

1、windowReceiver、windowDialog:传参,接收参数跳转页面

2、tree、showPage、list:组件使用(注:若关联字段有问题的话input框会禁用)

3、使用this.comp(‘xx‘).val()有时获取不到值得话可换成$(‘[xid=xx]‘).val();

4、若事件中有相同代码可提取出单独定义函数,使用this.函数名();调用

5、colorData.find(["fStatus"],["1"],false,true,true);第三个值设为false则返回多条数据

6、util.hint("xxxx");wex5封装提示框,

页面中引入var util = require("$UI/system/lib/base/util");即可

时间: 2024-08-07 16:40:18

wex5实战之管理收货地址(二)的相关文章

wex5实战之管理收货地址(一)

今天要与大家分享的是实战项目之管理收货地址,现在各种电商app管理收货地址样式越来越多,效果也越来越好.本次项目步骤有这么几个: 1.list迭代json数据,初始化默认收货地址. 2.list数据增.删.改.查. 首先展示效果图,如下: 图一为管理地址页 图二为新增收货地址页 图三为选择城市地区 下面进行详细代码讲解: 1.初始化list数据 Model.prototype.addressDataCustomRefresh = function(event){ var addressData

设置警告框样式为带有两个文本输入的警告框,用于收集用户收货地址和联系电话。并选择合适的代理方法,当警告框上的两输入框有一个为空时限制“购买”按钮点击。

收集购物信息  iOS项目 倒计时:588 步骤 /.panel-heading 项目需求 设置警告框样式为带有两个文本输入的警告框,用于收集用户收货地址和联系电话.并选择合适的代理方法,当警告框上的两输入框有一个为空时限制“购买”按钮点击. #import "TableViewController.h" @interface TableViewController ()<UIAlertViewDelegate> @property (nonatomic, strong)

微信支付开发(7) 收货地址共享接口V2

在这篇微信公众平台开发教程中,我们将介绍如何在网页中实现获取收货地址的功能. 收货地址共享接口 在2016年4月13日 进行过升级,2016年5月20日之后只能使用新接口,本教程为新版接口的教程! 本文分为以下二个部分: 生成JS-SDK权限验证签名 实现获取共享收货地址 一.微信JS-SDK 1. 获得Access Token access token的获得方法在前面有介绍,详情见 微信公众平台开发(26) ACCESS TOKEN 2. 获取jsapi_ticket 生成签名之前必须先了解一

微信支付v3开发(6) 收货地址共享接口

请看新版教程  微信支付开发(7) 收货地址共享接口V2 本文介绍微信支付下的收货地址共享接口的开发过程. 一. 简单介绍 微信收货地址共享,是指用户在微信浏览器内打开网页,填写过地址后,兴许能够免填写支持高速选择.也可添加和编辑. 此地址为用户属性.可在各商户的网页中共享使用.支持原生控件填写地址.地址数据会传递到商户. 地址共享是基于微信JavaScript API 实现.仅仅能在微信内置浏览器中使用,其它浏览器调用无效. 同一时候,须要微信5.0 版本号才干支持,建议通过user agen

微信支付开发(6) 收货地址共享接口

关键字:微信支付 收货地址共享作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/weixin-editAddress.html 本文介绍微信支付下的收货地址共享接口的开发过程. 一. 简介 微信收货地址共享,是指用户在微信浏览器内打开网页,填写过地址后,后续可以免填写支持快速选择,也可增加和编辑.此地址为用户属性,可在各商户的网页中共享使用.支持原生控件填写地址,地址数据会传递到商户. 地址共享是基于微信JavaScript API 实现,只能在微信内置浏

微信支付开发(6) 收货地址共享接口 【转发收藏】

作者:方倍工作室原文: http://www.cnblogs.com/txw1958/p/weixin-editAddress.html 本文介绍微信支付下的收货地址共享接口的开发过程. 一. 简介 微信收货地址共享,是指用户在微信浏览器内打开网页,填写过地址后,后续可以免填写支持快速选择,也可增加和编辑.此地址为用户属性,可在各商户的网页中共享使用.支持原生控件填写地址,地址数据会传递到商户. 地址共享是基于微信JavaScript API 实现,只能在微信内置浏览器中使用,其他浏览器调用无效

微信收货地址开发分享

微信支付做了有一定时间了,现在就来做一些知识的总结,总体来说微信支付的文档不是非常的完美,其中存在一些问题.虽然坑很多,但是还是把问题解决了. 微信支付的收货地址共享功能,主要是统一的管理微信用户个人的收货地址,其收货地址可以被应用于所有可以调用的开发者.用户的收货地址包含了很多个人信息,因此该接口必须要通过申请,申请的方式可以在mp平台上查看到. 申请开通 包含微信支付功能时,则需要配置微信的支付目录(支付目录为绝对路径,例如支付接口为wxpay.php,而该文件在wxpay目录下,那么支付目

谈一谈用户的默认收货地址

如题,今天要谈一谈用户的默认收货地址 为什么要谈这个问题,感觉这是一个非常成熟的设计和解决方案了,为什么还要谈.谈这个的导火索是产品妹妹过来跟我说咱们的用户地址是不是用问题,为什么我的地址不是上一次的收货地址了.然后我balabalabala说了一堆,我想我们是想要做一好的产品,还是要做一个产品,是为了解决问题,还是为了更好的解决问题,现成的京东淘宝当当可以参考的模式,我们为什么不学习一下.然后我balabalabal说了一堆之后,让产品妹妹看了设计,看了数据库,让她再次看了自己的收货地址,然后

(转)微信收货地址开发分享

微信支付做了有一定时间了,现在就来做一些知识的总结,总体来说微信支付的文档不是非常的完美,其中存在一些问题.虽然坑很多,但是还是把问题解决了. 微信支付的收货地址共享功能,主要是统一的管理微信用户个人的收货地址,其收货地址可以被应用于所有可以调用的开发者.用户的收货地址包含了很多个人信息,因此该接口必须要通过申请,申请的方式可以在mp平台上查看到. 申请开通 包含微信支付功能时,则需要配置微信的支付目录(支付目录为绝对路径,例如支付接口为wxpay.php,而该文件在wxpay目录下,那么支付目