|
@@ -7,17 +7,17 @@
|
|
//定义UnlimitedLevelContact的构造函数
|
|
//定义UnlimitedLevelContact的构造函数
|
|
var UnlimitedLevelContact = function(ele,opt) {
|
|
var UnlimitedLevelContact = function(ele,opt) {
|
|
this.$element = ele,
|
|
this.$element = ele,
|
|
- this.ulcInfo = {
|
|
|
|
- urlPrefix : "",
|
|
|
|
- ulcLevel : [],
|
|
|
|
- /*配置删除的字符,用于设置name的时候,需要删除某些字符更好确认选项*/
|
|
|
|
- judgeNameShield : [],
|
|
|
|
- /*选中的数据,按照集合的形式存放 -- 用于回调出去*/
|
|
|
|
- dataList : [],
|
|
|
|
- data : [],
|
|
|
|
- allCallback:function (array) {}
|
|
|
|
- },
|
|
|
|
- this.options = $.extend({}, this.ulcInfo, opt) //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
|
|
|
|
|
|
+ this.ulcInfo = {
|
|
|
|
+ urlPrefix : "",
|
|
|
|
+ ulcLevel : [],
|
|
|
|
+ /*配置删除的字符,用于设置name的时候,需要删除某些字符更好确认选项*/
|
|
|
|
+ judgeNameShield : [],
|
|
|
|
+ /*选中的数据,按照集合的形式存放 -- 用于回调出去*/
|
|
|
|
+ dataList : [],
|
|
|
|
+ data : [],
|
|
|
|
+ allCallback:function (array) {}
|
|
|
|
+ },
|
|
|
|
+ this.options = $.extend({}, this.ulcInfo, opt) //opt并入ulcInfo集合组成新的集合,然后赋值给 options ,所以一切调用options
|
|
};
|
|
};
|
|
//定义UnlimitedLevelContact的方法
|
|
//定义UnlimitedLevelContact的方法
|
|
UnlimitedLevelContact.prototype = {
|
|
UnlimitedLevelContact.prototype = {
|
|
@@ -89,92 +89,103 @@
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(falg){
|
|
if(falg){
|
|
- $.get(ulc.ulcCufte(ulc.options.urlPrefix) + node.ulcURL + id, function(result){
|
|
|
|
- var res = node.repData(result);
|
|
|
|
- if (res.code == res.isFlag) {
|
|
|
|
- //数据返回
|
|
|
|
- if(res.data.length < 1 && !node.isFristSelect){
|
|
|
|
- $(node.ulcNode).append("<option value=''></option>");
|
|
|
|
- node.isSelected = 2;
|
|
|
|
- }
|
|
|
|
- node.isContainId = false;
|
|
|
|
- $(res.data).each(function (){
|
|
|
|
- var data = node.parseData(this);
|
|
|
|
- $(node.ulcNode).append("<option value='"+ data.id +"' msg='"+ ulc.ulcCufte(data.msg) +"'>"+ data.val +"</option>");
|
|
|
|
-
|
|
|
|
- if(node.ulcId == data.id){
|
|
|
|
- node.isContainId = true;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- var nodeUlcId,isGetNameCor=true;
|
|
|
|
- if(node.isContainId && node.dataType == 1){
|
|
|
|
- nodeUlcId = node.ulcId;
|
|
|
|
- isGetNameCor = true;
|
|
|
|
- }else if(ulc.ulcIsEmpty(node.ulcName) && node.dataType == 2){
|
|
|
|
- nodeUlcId = ulc.getUlcIdByName(node);
|
|
|
|
- if(!ulc.ulcIsEmpty(nodeUlcId)){
|
|
|
|
- isGetNameCor = false;
|
|
|
|
- }else{
|
|
|
|
- isGetNameCor = true;
|
|
|
|
- }
|
|
|
|
- if(!ulc.ulcIsEmpty(nodeUlcId) && node.isSelected != 2){
|
|
|
|
- nodeUlcId = node.parseData(res.data[0]).id;
|
|
|
|
- }
|
|
|
|
- }else if(res.data.length > 0 && node.isSelected != 2){
|
|
|
|
- nodeUlcId = node.parseData(res.data[0]).id;
|
|
|
|
- isGetNameCor=false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if(!node.isGetNameCorrect)
|
|
|
|
- node.isGetNameCorrect = isGetNameCor; //标记未获取到正确的select选项
|
|
|
|
|
|
+ if(ulc.ulcIsEmpty(node.ulcURL)){
|
|
|
|
+ $.get(ulc.ulcCufte(ulc.options.urlPrefix) + node.ulcURL + id, function(result){
|
|
|
|
+ ulc.setVal(level,result);
|
|
|
|
+ }).fail(function () { //要求jq 1.6以上
|
|
|
|
+ console.log("Query failed ...");
|
|
|
|
+ });
|
|
|
|
+ }else if(ulc.ulcIsEmpty(node.ulcReturnList)){
|
|
|
|
+ ulc.setVal(level,node.ulcReturnList);
|
|
|
|
+ }else{
|
|
|
|
+ console.log("No data source ...");
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ setVal:function(level,result){
|
|
|
|
+ var ulc = this;
|
|
|
|
+ var node = ulc.options.ulcLevel[level];
|
|
|
|
+ var res = node.repData(result);
|
|
|
|
+ if (res.code == res.isFlag) {
|
|
|
|
+ //数据返回
|
|
|
|
+ if(res.data.length < 1 && !node.isFristSelect){
|
|
|
|
+ $(node.ulcNode).append("<option value=''></option>");
|
|
|
|
+ node.isSelected = 2;
|
|
|
|
+ }
|
|
|
|
+ node.isContainId = false;
|
|
|
|
+ $(res.data).each(function (){
|
|
|
|
+ var data = node.parseData(this);
|
|
|
|
+ $(node.ulcNode).append("<option value='"+ data.id +"' msg='"+ ulc.ulcCufte(data.msg) +"'>"+ data.val +"</option>");
|
|
|
|
+ if(node.ulcId == data.id){
|
|
|
|
+ node.isContainId = true;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ var nodeUlcId,isGetNameCor=true;
|
|
|
|
+ if(node.isContainId && node.dataType == 1){
|
|
|
|
+ nodeUlcId = node.ulcId;
|
|
|
|
+ isGetNameCor = true;
|
|
|
|
+ }else if(ulc.ulcIsEmpty(node.ulcName) && node.dataType == 2){
|
|
|
|
+ nodeUlcId = ulc.getUlcIdByName(node);
|
|
|
|
+ if(!ulc.ulcIsEmpty(nodeUlcId)){
|
|
|
|
+ isGetNameCor = false;
|
|
|
|
+ }else{
|
|
|
|
+ isGetNameCor = true;
|
|
|
|
+ }
|
|
|
|
+ if(!ulc.ulcIsEmpty(nodeUlcId) && node.isSelected != 2){
|
|
|
|
+ nodeUlcId = node.parseData(res.data[0]).id;
|
|
|
|
+ }
|
|
|
|
+ }else if(res.data.length > 0 && node.isSelected != 2){
|
|
|
|
+ nodeUlcId = node.parseData(res.data[0]).id;
|
|
|
|
+ isGetNameCor=false;
|
|
|
|
+ }
|
|
|
|
|
|
- node.ulcId = nodeUlcId;
|
|
|
|
- $(node.ulcNode).val(nodeUlcId);
|
|
|
|
|
|
+ if(!node.isGetNameCorrect)
|
|
|
|
+ node.isGetNameCorrect = isGetNameCor; //标记未获取到正确的select选项
|
|
|
|
|
|
- //标志已经加载
|
|
|
|
- node.isLoad = true;
|
|
|
|
- // $(node.ulcNode).unbind("change"); //移除change
|
|
|
|
|
|
+ node.ulcId = nodeUlcId;
|
|
|
|
+ $(node.ulcNode).val(nodeUlcId);
|
|
|
|
|
|
- /* 将每次选中的数据加入到dataList */
|
|
|
|
- ulc.options.dataList[level] = res.data;
|
|
|
|
|
|
+ //标志已经加载
|
|
|
|
+ node.isLoad = true;
|
|
|
|
+ // $(node.ulcNode).unbind("change"); //移除change
|
|
|
|
|
|
- /* 绑定事件 */
|
|
|
|
- if(ulc.options.ulcLevel.length-1 >= level){
|
|
|
|
- if(!node.isLoadChangeEvent){
|
|
|
|
- $(node.ulcNode).change(function (){
|
|
|
|
- if(ulc.options.ulcLevel.length-1 > level){
|
|
|
|
- //点击事件
|
|
|
|
- ulc.initUlcHtml(level+1,$(node.ulcNode).val());
|
|
|
|
- }else if(ulc.options.ulcLevel.length-1 == level){
|
|
|
|
- //点击触发回调datalist函数
|
|
|
|
- ulc.allBackData();
|
|
|
|
- }
|
|
|
|
- //点击事件-触发回调函数
|
|
|
|
- ulc.backData(level);
|
|
|
|
|
|
+ /* 将每次选中的数据加入到dataList */
|
|
|
|
+ ulc.options.dataList[level] = res.data;
|
|
|
|
|
|
- /*重置后面所有的isGetNameCorrect=true */
|
|
|
|
- for(var k=level;k < ulc.options.ulcLevel.length;k++){
|
|
|
|
- ulc.options.ulcLevel[k].isGetNameCorrect = true;
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- //只需要绑定一次事件
|
|
|
|
- node.isLoadChangeEvent = true;
|
|
|
|
- }
|
|
|
|
- if(ulc.options.ulcLevel.length-1 == level){
|
|
|
|
- // 当前就回调datalist函数
|
|
|
|
|
|
+ /* 绑定事件 */
|
|
|
|
+ if(ulc.options.ulcLevel.length-1 >= level){
|
|
|
|
+ if(!node.isLoadChangeEvent){
|
|
|
|
+ $(node.ulcNode).change(function (){
|
|
|
|
+ if(ulc.options.ulcLevel.length-1 > level){
|
|
|
|
+ //点击事件
|
|
|
|
+ ulc.initUlcHtml(level+1,$(node.ulcNode).val());
|
|
|
|
+ }else if(ulc.options.ulcLevel.length-1 == level){
|
|
|
|
+ //点击触发回调datalist函数
|
|
ulc.allBackData();
|
|
ulc.allBackData();
|
|
}
|
|
}
|
|
- }
|
|
|
|
- // 递归查询下一级
|
|
|
|
- if(ulc.options.ulcLevel.length-1 > level ){
|
|
|
|
- ulc.initUlcHtml(level+1,node.ulcId);
|
|
|
|
- }
|
|
|
|
- }else{
|
|
|
|
- console.log(res.msg);
|
|
|
|
|
|
+ //点击事件-触发回调函数
|
|
|
|
+ ulc.backData(level);
|
|
|
|
+
|
|
|
|
+ /*重置后面所有的isGetNameCorrect=true */
|
|
|
|
+ for(var k=level;k < ulc.options.ulcLevel.length;k++){
|
|
|
|
+ ulc.options.ulcLevel[k].isGetNameCorrect = true;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ //只需要绑定一次事件
|
|
|
|
+ node.isLoadChangeEvent = true;
|
|
}
|
|
}
|
|
- }).fail(function () { //要求jq 1.6以上
|
|
|
|
- console.log("查询失败!");
|
|
|
|
- });
|
|
|
|
|
|
+ if(ulc.options.ulcLevel.length-1 == level){
|
|
|
|
+ // 当前就回调datalist函数
|
|
|
|
+ ulc.allBackData();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 递归查询下一级
|
|
|
|
+ if(ulc.options.ulcLevel.length-1 > level ){
|
|
|
|
+ ulc.initUlcHtml(level+1,node.ulcId);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ console.log(res.msg);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
setUlcById: function(){
|
|
setUlcById: function(){
|
|
@@ -363,6 +374,16 @@
|
|
setUlcAllCallback:function (fun) {
|
|
setUlcAllCallback:function (fun) {
|
|
this.options.allCallback = fun;
|
|
this.options.allCallback = fun;
|
|
},
|
|
},
|
|
|
|
+ setUlcReturnList:function (level,returnList) {
|
|
|
|
+ //在无URL情况下,可以直接传入list集合,集合结构与其他节点一样
|
|
|
|
+ this.options.ulcLevel[level].ulcReturnList = returnList;
|
|
|
|
+ ulc.reloadLevel(level);
|
|
|
|
+ },
|
|
|
|
+ reloadLevel:function (level) {
|
|
|
|
+ //重新加载本节点
|
|
|
|
+ if(level != 0) level--;
|
|
|
|
+ ulc.initUlcHtml(level,this.options.ulcLevel[level].ulcId);
|
|
|
|
+ },
|
|
getIsNameCorrect:function (level) {
|
|
getIsNameCorrect:function (level) {
|
|
var ulc = this;
|
|
var ulc = this;
|
|
if(ulc.ulcIsEmpty(level)){
|
|
if(ulc.ulcIsEmpty(level)){
|
|
@@ -398,14 +419,15 @@
|
|
$.fn.initUlcByHtml = function(options) {
|
|
$.fn.initUlcByHtml = function(options) {
|
|
var ulcLevel = new Array();
|
|
var ulcLevel = new Array();
|
|
var $selectUlc = $(this);
|
|
var $selectUlc = $(this);
|
|
- $(this).find("select").each(function () {
|
|
|
|
|
|
+ $(this).find(".ulc_select").each(function () {
|
|
var $ulc = $(this);
|
|
var $ulc = $(this);
|
|
var obj = new Object();
|
|
var obj = new Object();
|
|
obj.ulcNode = $ulc; //节点
|
|
obj.ulcNode = $ulc; //节点
|
|
obj.ulcURL = $ulc.attr("ulcURL"); //url
|
|
obj.ulcURL = $ulc.attr("ulcURL"); //url
|
|
|
|
+ obj.ulcReturnList =null; //数据
|
|
obj.ulcId = $ulc.attr("ulcId"); //节点option的value
|
|
obj.ulcId = $ulc.attr("ulcId"); //节点option的value
|
|
obj.ulcName = $ulc.attr("ulcName");
|
|
obj.ulcName = $ulc.attr("ulcName");
|
|
- obj.isFristSelect = $ulc.attr("ulcIsFristSelect"); //是否有“请选择项” false:无
|
|
|
|
|
|
+ obj.isFristSelect = $ulc.attr("ulcIsFristSelect")==1?true:false; //是否有“请选择项” false:无
|
|
obj.fristSelectMsg = $ulc.attr("ulcFristSelectMsg");
|
|
obj.fristSelectMsg = $ulc.attr("ulcFristSelectMsg");
|
|
obj.repData = function(res){ //res 即为原始返回的数据
|
|
obj.repData = function(res){ //res 即为原始返回的数据
|
|
return {
|
|
return {
|
|
@@ -417,9 +439,9 @@
|
|
};
|
|
};
|
|
obj.parseData = function(data){ //res 即为原始返回的数据
|
|
obj.parseData = function(data){ //res 即为原始返回的数据
|
|
return {
|
|
return {
|
|
- "id": data[$ulc.attr("ulcValId")], //
|
|
|
|
- "val": data[$ulc.attr("ulcValName")], //
|
|
|
|
- "msg": data[$ulc.attr("ulcMsg")] //解析数据长度
|
|
|
|
|
|
+ "id": data[$ulc.attr("ulcValId")], //id
|
|
|
|
+ "val": data[$ulc.attr("ulcValName")], //text
|
|
|
|
+ "msg": data[$ulc.attr("ulcMsg")] //其他
|
|
};
|
|
};
|
|
};
|
|
};
|
|
ulcLevel.push(obj);
|
|
ulcLevel.push(obj);
|
|
@@ -509,13 +531,13 @@ function init_ulc(node){
|
|
* b:使用html的属性来携带参数,直接初始化
|
|
* b:使用html的属性来携带参数,直接初始化
|
|
* html :
|
|
* html :
|
|
<div class="init_ulc" code="xxxcode" msg="xxxMsg" data="xxxList">
|
|
<div class="init_ulc" code="xxxcode" msg="xxxMsg" data="xxxList">
|
|
- <select class="select" ulcId="" ulcName=""
|
|
|
|
|
|
+ <select class="select ulc_select" ulcId="" ulcName=""
|
|
ulcURL="/getselect1" ulcList="data1List" ulcValName="xxxName" ulcValId="xxxId" ulcMsg=""
|
|
ulcURL="/getselect1" ulcList="data1List" ulcValName="xxxName" ulcValId="xxxId" ulcMsg=""
|
|
- ulcIsFristSelect="true" ulcFristSelectMsg="请选择XXX">
|
|
|
|
|
|
+ ulcIsFristSelect="1" ulcFristSelectMsg="请选择XXX">
|
|
</select>
|
|
</select>
|
|
- <select class="select" ulcId="" ulcName=""
|
|
|
|
|
|
+ <select class="select ulc_select" ulcId="" ulcName=""
|
|
ulcURL="/getselect2" ulcList="data2List" ulcValName="xxxName" ulcValId="xxxId" ulcMsg=""
|
|
ulcURL="/getselect2" ulcList="data2List" ulcValName="xxxName" ulcValId="xxxId" ulcMsg=""
|
|
- ulcIsFristSelect="true" ulcFristSelectMsg="请选择XXX">
|
|
|
|
|
|
+ ulcIsFristSelect="1" ulcFristSelectMsg="请选择XXX">
|
|
</select>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
|