|
@@ -296,13 +296,13 @@ function listDistrict(cityId,districtName){
|
|
{
|
|
{
|
|
ulcNode: ele.find(".ulcNode"), //节点
|
|
ulcNode: ele.find(".ulcNode"), //节点
|
|
ulcURL: "", //url
|
|
ulcURL: "", //url
|
|
- ulcId : ele.find(".ulcId"), //节点id
|
|
|
|
|
|
+ ulcId : ele.find(".ulcId"), //节点option的value
|
|
ulcName: ele.find(".ulcNode").attr("ulcName"),
|
|
ulcName: ele.find(".ulcNode").attr("ulcName"),
|
|
isFristSelect : false, //是否有“请选择项”,
|
|
isFristSelect : false, //是否有“请选择项”,
|
|
repData: function(res){ //res 即为原始返回的数据
|
|
repData: function(res){ //res 即为原始返回的数据
|
|
return {
|
|
return {
|
|
"code": res.returnCode, //解析接口状态
|
|
"code": res.returnCode, //解析接口状态
|
|
- "msg": res.message, //解析提示文本
|
|
|
|
|
|
+ "msg": res.resultMsg, //解析提示文本
|
|
"count": res.total, //解析数据长度
|
|
"count": res.total, //解析数据长度
|
|
"data": res.returnMsg //解析数据列表
|
|
"data": res.returnMsg //解析数据列表
|
|
};
|
|
};
|
|
@@ -355,69 +355,199 @@ function listDistrict(cityId,districtName){
|
|
// countryName : ele.find(".init_country").attr("countryName"),
|
|
// countryName : ele.find(".init_country").attr("countryName"),
|
|
initLock : false
|
|
initLock : false
|
|
},
|
|
},
|
|
-
|
|
|
|
-
|
|
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
-/*
|
|
|
|
|
|
+
|
|
;(function($,window,document,undefined){
|
|
;(function($,window,document,undefined){
|
|
//定义UnlimitedLevelContact的构造函数
|
|
//定义UnlimitedLevelContact的构造函数
|
|
var UnlimitedLevelContact = function(ele,opt) {
|
|
var UnlimitedLevelContact = function(ele,opt) {
|
|
this.$element = ele,
|
|
this.$element = ele,
|
|
this.ulcInfo = {
|
|
this.ulcInfo = {
|
|
urlPrefix : "",
|
|
urlPrefix : "",
|
|
- ulcLevel : []
|
|
|
|
|
|
+ ulcLevel : [],
|
|
|
|
+ execution:{
|
|
|
|
+ // executionType : {
|
|
|
|
+ // A:initUlcLevel
|
|
|
|
+ // } ,
|
|
|
|
+ executionFun : []
|
|
|
|
+ }
|
|
},
|
|
},
|
|
this.options = $.extend({}, this.ulcInfo, opt) //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
|
|
this.options = $.extend({}, this.ulcInfo, opt) //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
|
|
}
|
|
}
|
|
//定义Address的方法
|
|
//定义Address的方法
|
|
UnlimitedLevelContact.prototype = {
|
|
UnlimitedLevelContact.prototype = {
|
|
init: function() {
|
|
init: function() {
|
|
|
|
+ this.initUlcLevel();
|
|
if(this.options.ulcLevel.length > 0){
|
|
if(this.options.ulcLevel.length > 0){
|
|
- this.initUlc(0,null);
|
|
|
|
|
|
+ this.initUlc(0,"",null);
|
|
}
|
|
}
|
|
return this;
|
|
return this;
|
|
},
|
|
},
|
|
- initUlc : function(level,id){
|
|
|
|
- var ulc = this;
|
|
|
|
- var ulcLevel = this.options.ulcLevel[level];
|
|
|
|
|
|
+ initUlcLevel : function(){
|
|
|
|
+ $(this.options.ulcLevel).each(function (index){
|
|
|
|
+ //是否选中数据 1:选中 2:未选中
|
|
|
|
+ this.isSelected = 1;
|
|
|
|
|
|
- $.get(ulc.options.urlPrefix + ulcLevel.ulcURL, function(result){
|
|
|
|
- var node = ulcLevel;
|
|
|
|
|
|
+ /*初始化层次结构*/
|
|
|
|
+ $(this.ulcNode).attr("ulclevel",index);
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ initUlc : function(level,id,thisId){
|
|
|
|
+ //初始化联动
|
|
|
|
+ var ulc = this;
|
|
|
|
+ var node = ulc.options.ulcLevel[level];
|
|
|
|
+ $.get(ulc.options.urlPrefix + node.ulcURL + id, function(result){
|
|
|
|
+ $(node.ulcNode).empty(); //清空下拉框
|
|
|
|
+ if(node.isFristSelect){
|
|
|
|
+ $(node.ulcNode).append("<option value=''>"+ node.fristSelectMsg +"</option>");
|
|
|
|
+ node.isSelected = 2;
|
|
|
|
+ }
|
|
var res = node.repData(result);
|
|
var res = node.repData(result);
|
|
- if (res.code == 200) {
|
|
|
|
- node.ulcNode.empty(); //清空下拉框
|
|
|
|
|
|
+ if (res.code == res.isFlag) {
|
|
|
|
+ //数据返回
|
|
|
|
+ if(res.data.length < 1 && !node.isFristSelect){
|
|
|
|
+ $(node.ulcNode).append("<option value=''></option>");
|
|
|
|
+ node.isSelected = 2;
|
|
|
|
+ }
|
|
$(res.data).each(function (){
|
|
$(res.data).each(function (){
|
|
var data = node.parseData(this);
|
|
var data = node.parseData(this);
|
|
- $provinceNode.append("<option value='"+ data.id +"'>"+ this.val +"</option>");
|
|
|
|
|
|
+ $(node.ulcNode).append("<option value='"+ data.id +"'>"+ data.val +"</option>");
|
|
})
|
|
})
|
|
- if(isEmpty(address.options.provinceId)){
|
|
|
|
- address.options.provinceId = result.returnMsg.provinceList[0].provinceId;
|
|
|
|
- }else if(isEmpty(address.options.provinceName)){
|
|
|
|
- address.options.provinceId = address.getAttrIdByName($provinceNode,address.options.provinceName);
|
|
|
|
- }else{
|
|
|
|
- address.options.provinceId = result.returnMsg.provinceList[0].provinceId;
|
|
|
|
|
|
+ if(thisId != null){
|
|
|
|
+ //赋值本下拉框的id
|
|
|
|
+ $(node.ulcNode).val(thisId);
|
|
|
|
+ }
|
|
|
|
+ if(res.data.length > 0){
|
|
|
|
+ node.ulcId = node.parseData(res.data[0]).id;
|
|
|
|
+ if(ulc.options.ulcLevel.length-1 > level && node.isSelected == 1){
|
|
|
|
+ $(node.ulcNode).change(function (){
|
|
|
|
+ ulc.initUlc(level+1,$(node.ulcNode).val());
|
|
|
|
+ })
|
|
|
|
+ ulc.initUlc(level+1,node.ulcId);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- address.setProvince();
|
|
|
|
}else{
|
|
}else{
|
|
- console.log("省份查询失败");
|
|
|
|
|
|
+ console.log(res.msg);
|
|
}
|
|
}
|
|
});
|
|
});
|
|
},
|
|
},
|
|
-
|
|
|
|
- cufte:function(val) {
|
|
|
|
- if (undefined == val || null == val||typeof val == undefined || typeof val == 'undefined'|| 'undefined' == val) {
|
|
|
|
- val = "";
|
|
|
|
|
|
+ setUlcById: function(){
|
|
|
|
+ /**
|
|
|
|
+ * 形参 1:level(级别)或者节点
|
|
|
|
+ * 形参 2:id 传入id的值
|
|
|
|
+ */
|
|
|
|
+ var ulc = this,level=-1;
|
|
|
|
+ if (arguments.length == 0) return this;
|
|
|
|
+ if(arguments[0].constructor == Number){
|
|
|
|
+ level = arguments[0];
|
|
|
|
+ }else{
|
|
|
|
+ //节点,传入节点,将进行取值ulclevel
|
|
|
|
+ level = $("#addressProvince").prop("ulclevel");
|
|
|
|
+ //https://www.cnblogs.com/zhuchenglin/p/7651990.html 异步取不到值
|
|
|
|
+ //https://blog.csdn.net/u013063153/article/details/52457307 异步取不到值
|
|
}
|
|
}
|
|
- return val;
|
|
|
|
|
|
+ if(level = -1){
|
|
|
|
+ console.log("setUlcId error!!!");
|
|
|
|
+ return ulc;
|
|
|
|
+ }
|
|
|
|
+ var upperLevelId='';
|
|
|
|
+ if(level != 0){
|
|
|
|
+ upperLevelId = ulc.options.ulcLevel[level-1].ulcId;
|
|
|
|
+ }
|
|
|
|
+ ulc.initUlc(level,upperLevelId,arguments[1]);
|
|
|
|
+ return this;
|
|
|
|
+ },
|
|
|
|
+ execute:function(){
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// initAddress 调用
|
|
// initAddress 调用
|
|
- $.fn.initAddress = function(options) {
|
|
|
|
- var address = new Address(this, options);
|
|
|
|
- address.init();
|
|
|
|
- return address;
|
|
|
|
|
|
+ $.fn.initUlc = function(options) {
|
|
|
|
+ var ulc = new UnlimitedLevelContact(this, options);
|
|
|
|
+ ulc.init();
|
|
|
|
+ return ulc;
|
|
}
|
|
}
|
|
})(jQuery,window,document);
|
|
})(jQuery,window,document);
|
|
-*/
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+function initAddress(addressNode){
|
|
|
|
+ var $provice = $(".address_info").find(".init_province");
|
|
|
|
+ var $city = $(".address_info").find(".init_city");
|
|
|
|
+ var $country = $(".address_info").find(".init_country");
|
|
|
|
+ var ulc = $(".address_info").initUlc({
|
|
|
|
+ urlPrefix: root_path,
|
|
|
|
+ ulcLevel : [
|
|
|
|
+ {
|
|
|
|
+ ulcNode: $provice, //节点
|
|
|
|
+ ulcURL: "/address/list_province", //url
|
|
|
|
+ ulcId : $provice.attr("ulcId"), //节点option的value
|
|
|
|
+ ulcName: $provice.attr("ulcName"),
|
|
|
|
+ isFristSelect : false, //是否有“请选择项” false:无
|
|
|
|
+ fristSelectMsg : "请选择",
|
|
|
|
+ repData: function(res){ //res 即为原始返回的数据
|
|
|
|
+ return {
|
|
|
|
+ "isFlag": 200, //code判断
|
|
|
|
+ "code": res.returnCode, //解析接口状态
|
|
|
|
+ "msg": res.resultMsg, //解析提示文本
|
|
|
|
+ "data": res.returnMsg.provinceList //解析数据列表
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ parseData:function(data){ //res 即为原始返回的数据
|
|
|
|
+ return {
|
|
|
|
+ "id": data.provinceId, //解析接口状态
|
|
|
|
+ "val": data.province, //解析提示文本
|
|
|
|
+ "msg": data.msg, //解析数据长度
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ ulcNode: $city, //节点
|
|
|
|
+ ulcURL: "/address/list_city?provinceId=", //url
|
|
|
|
+ ulcId : $city.attr("ulcId"), //节点option的value
|
|
|
|
+ ulcName: $city.attr("ulcName"),
|
|
|
|
+ isFristSelect : false, //是否有“请选择项”,
|
|
|
|
+ fristSelectMsg : "请选择",
|
|
|
|
+ repData: function(res){ //res 即为原始返回的数据
|
|
|
|
+ return {
|
|
|
|
+ "isFlag": 200, //code判断
|
|
|
|
+ "code": res.returnCode, //解析接口状态
|
|
|
|
+ "msg": res.resultMsg, //解析提示文本
|
|
|
|
+ "data": res.returnMsg.cityList //解析数据列表
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ parseData:function(data){ //res 即为原始返回的数据
|
|
|
|
+ return {
|
|
|
|
+ "id": data.cityId, //解析接口状态
|
|
|
|
+ "val": data.city, //解析提示文本
|
|
|
|
+ "msg": data.msg, //解析数据长度
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ ulcNode: $country, //节点
|
|
|
|
+ ulcURL: "/address/list_district?cityId=", //url
|
|
|
|
+ ulcId : $country.attr("ulcId"), //节点option的value
|
|
|
|
+ ulcName: $country.attr("ulcName"),
|
|
|
|
+ isFristSelect : false, //是否有“请选择项”,
|
|
|
|
+ fristSelectMsg : "请选择",
|
|
|
|
+ repData: function(res){ //res 即为原始返回的数据
|
|
|
|
+ return {
|
|
|
|
+ "isFlag": 200, //code判断
|
|
|
|
+ "code": res.returnCode, //解析接口状态
|
|
|
|
+ "msg": res.resultMsg, //解析提示文本
|
|
|
|
+ "data": res.returnMsg.districtList //解析数据列表
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ parseData:function(data){ //res 即为原始返回的数据
|
|
|
|
+ return {
|
|
|
|
+ "id": data.districtId, //解析接口状态
|
|
|
|
+ "val": data.district, //解析提示文本
|
|
|
|
+ "msg": data.msg, //解析数据长度
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ ]
|
|
|
|
+ });
|
|
|
|
+ return ulc;
|
|
|
|
+}
|