From b8c8f0cc80b91935c8a0e9ef3ef72067c388b86c Mon Sep 17 00:00:00 2001 From: mumuy Date: Wed, 28 Sep 2016 22:02:31 +0800 Subject: [PATCH] =?UTF-8?q?updated=20=E5=8F=AB=E4=B8=8D=E5=87=BA=E7=A7=B0?= =?UTF-8?q?=E5=91=BC=E7=9A=84=E5=8F=AF=E4=BB=A5=E9=9A=8F=E7=88=B1=E4=BA=BA?= =?UTF-8?q?=E5=8F=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dist/relationship.js | 77 ++++++++++++++++++++++------------------ dist/relationship.min.js | 2 +- script/relationship.js | 77 ++++++++++++++++++++++------------------ 3 files changed, 87 insertions(+), 69 deletions(-) diff --git a/dist/relationship.js b/dist/relationship.js index 5487c23..c48c17c 100644 --- a/dist/relationship.js +++ b/dist/relationship.js @@ -167,6 +167,7 @@ } ]; + //关系数据 var _data = { '':['自己','我'], //本家 @@ -864,14 +865,37 @@ //获取数据 function getDataById(id){ - var result = []; - var filter = /&[olx]/g; //忽略属性查找数据 - for(var i in _data){ - if(i.replace(filter,'')==id){ - result.push(_data[i]); + var items = []; + var filter = /&[olx]/g; //忽略属性 + var getData = function(d){ + var res = []; + for(var i in _data){ + if(i.replace(filter,'')==d){ + res.push(_data[i][0]); + } + } + return res; + }; + if(_data[id]){ //直接匹配称呼 + items.push(_data[id][0]); + }else{ + items = getData(id); + if(!items.length){ //忽略年龄条件查找 + id = id.replace(/&[ol]/g,''); + items = getData(id); + } + if(!items.length){ //忽略年龄条件查找 + id = id.replace(/[ol]/g,'x'); + result = getData(id); + } + if(!items.length){ //缩小访问查找 + var l = id.replace(/x/g,'l'); + items = getData(l); + var o = id.replace(/x/g,'o'); + items = result.concat(getData(o)); } } - return result; + return items; } //逆转ID @@ -912,7 +936,7 @@ return ''; } - //简化选择器 + //获取关系链条 function getChainById(id){ var arr = id.split(','); var items = []; @@ -923,7 +947,7 @@ return items.join('的'); } - function relationship(parameter){ + return (function (parameter){ var options = { text:'', sex:-1, @@ -942,41 +966,26 @@ for(var j=0;j-1&&(!l&&f.length||d.push(l),w=!0)}if(w||(m=!1),x.length){for(var e=[],l=0;l-1&&(s=","+f+s);var b=function(s){var f="";if(!m[s]){m[s]=!0;var d=!0;do{f=s;for(var h in w){var l=w[h];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var o=s.split("#"),h=0;h-1?m="&l":s.indexOf("&l")>-1&&(m="&o"),s){s=s.replace(/&[ol]/g,""),f=f?1:0;var b=(","+f+","+s).replace(/,[fhs]|,[olx]b/g,",1").replace(/,[mwd]|,[olx]s/g,",0");b=b.substring(0,b.lastIndexOf(","));for(var d=s.split(",").reverse(),w=b.split(",").reverse(),h=[],l=0;l-1&&(!l&&f.length||d.push(l),h=!0)}if(h||(m=!1),x.length){for(var e=[],l=0;l-1&&(s=","+f+s);var b=function(s){var f="";if(!m[s]){m[s]=!0;var w=!0;do{f=s;for(var h in d){var l=d[h];if(s=s.replace(l.exp,l.str),s.indexOf("#")>-1){for(var o=s.split("#"),h=0;h-1?m="&l":s.indexOf("&l")>-1&&(m="&o"),s){s=s.replace(/&[ol]/g,""),f=f?1:0;var b=(","+f+","+s).replace(/,[fhs]|,[olx]b/g,",1").replace(/,[mwd]|,[olx]s/g,",0");b=b.substring(0,b.lastIndexOf(","));for(var d=s.split(",").reverse(),w=b.split(",").reverse(),h=[],l=0;l