updated 添加找关系功能

This commit is contained in:
mumuy 2016-07-27 14:01:51 +08:00
parent 777dcb41e5
commit a55648316f
2 changed files with 51 additions and 33 deletions

View File

@ -18,11 +18,14 @@
<label for="male"><input id="male" type="radio" name="sex" value="1" checked></label> <label for="male"><input id="male" type="radio" name="sex" value="1" checked></label>
<label for="female"><input id="female" type="radio" name="sex" value="0"></label> <label for="female"><input id="female" type="radio" name="sex" value="0"></label>
</p> </p>
<p>计算类型:
<label for="default"><input id="default" type="radio" name="type" value="default" checked>找称呼</label>
<label for="chain"><input id="chain" type="radio" name="type" value="chain">找关系</label>
</p>
<p>称呼方式: <p>称呼方式:
<label for="call"><input id="call" type="radio" name="reverse" value="0" checked>我称呼对方</label> <label for="call"><input id="call" type="radio" name="reverse" value="0" checked>我称呼对方</label>
<label for="called"><input id="called" type="radio" name="reverse" value="1">对方称呼我</label> <label for="called"><input id="called" type="radio" name="reverse" value="1">对方称呼我</label>
</p> </p>
<p>家庭关系:</p>
<p> <p>
<textarea id="input" placeholder="人物间用'的'字分开…"></textarea> <textarea id="input" placeholder="人物间用'的'字分开…"></textarea>
</p> </p>
@ -74,7 +77,9 @@
<script> <script>
(function(){ (function(){
var $sex = document.getElementsByName('sex'); var $sex = document.getElementsByName('sex');
var $type = document.getElementsByName('type');
var $reverse = document.getElementsByName('reverse'); var $reverse = document.getElementsByName('reverse');
var $radio = document.getElementsByTagName('INPUT');
var $textarea = document.getElementsByTagName('TEXTAREA'); var $textarea = document.getElementsByTagName('TEXTAREA');
var $btns = DOMUtil.getElementsByClassName('btn'); var $btns = DOMUtil.getElementsByClassName('btn');
var $buttons = DOMUtil.getElementsByClassName('input-button'); var $buttons = DOMUtil.getElementsByClassName('input-button');
@ -91,8 +96,9 @@
var value = $textarea[0].value.trim(); var value = $textarea[0].value.trim();
if(value){ if(value){
var sex = $sex[0].checked?1:0; var sex = $sex[0].checked?1:0;
var type = $type[0].checked?'default':'chain';
var reverse = !$reverse[0].checked; var reverse = !$reverse[0].checked;
var result = relationship({text:value,sex:sex,reverse:reverse}); var result = relationship({text:value,sex:sex,reverse:reverse,type:type});
$textarea[1].value = ''; $textarea[1].value = '';
if(result.length){ if(result.length){
$textarea[1].value = result.join('\n'); $textarea[1].value = result.join('\n');
@ -116,21 +122,14 @@
toggle('爸爸,老公,儿子,哥哥,弟弟'.indexOf(name)>-1); toggle('爸爸,老公,儿子,哥哥,弟弟'.indexOf(name)>-1);
} }
} }
for(var i=0;i<$sex.length;i++){ for(var i=0;i<$radio.length;i++){
$sex[i].onchange=function(){ $radio[i].onchange=function(){
toggle($sex[0].checked); toggle($sex[0].checked);
if($textarea[1].value){ if($textarea[1].value){
count(); count();
} }
} }
} }
for(var i=0;i<$reverse.length;i++){
$reverse[i].onchange = function(){
if($textarea[1].value){
count();
}
};
}
$buttons[0].onclick = function(){ $buttons[0].onclick = function(){
var value = $textarea[0].value.trim(); var value = $textarea[0].value.trim();
var index = value.lastIndexOf('的'); var index = value.lastIndexOf('的');

View File

@ -289,7 +289,7 @@
'm,m':['外婆','姥姥','阿婆'], 'm,m':['外婆','姥姥','阿婆'],
'm,m,f':['外曾外祖父','外太外公','太姥爷'], 'm,m,f':['外曾外祖父','外太外公','太姥爷'],
'm,m,m':['外曾外祖母','外太外婆','太姥姥'], 'm,m,m':['外曾外祖母','外太外婆','太姥姥'],
'm,m,xb':['外舅公','外舅祖父','舅姥爷','舅外祖父','舅外公'], 'm,m,xb':['外舅公','外舅祖父','舅姥爷','舅外祖父','舅外公','舅公'],
'm,m,xb,w':['外舅婆','外舅祖母','舅姥姥'], 'm,m,xb,w':['外舅婆','外舅祖母','舅姥姥'],
'm,m,xb,s':['表舅','表舅父'], 'm,m,xb,s':['表舅','表舅父'],
'm,m,xb,s,w':['表舅妈','表舅母'], 'm,m,xb,s,w':['表舅妈','表舅母'],
@ -686,10 +686,22 @@
return ''; return '';
} }
//简化选择器
function getChainById(id){
var arr = id.split(',');
var items = [];
for(var i = 0;i<arr.length;i++){
var key = arr[i].replace(/&[ol]/,'');
items.push(_data[key][0]);
}
return items.join('的');
}
function relationship(parameter){ function relationship(parameter){
var options = { var options = {
text:'', text:'',
sex:-1, sex:-1,
type:'default', //为'chain'时,reverse无效
reverse:false reverse:false
}; };
for (var p in parameter) { for (var p in parameter) {
@ -703,6 +715,12 @@
// console.log('ids#',ids); // console.log('ids#',ids);
for(var j=0;j<ids.length;j++){ for(var j=0;j<ids.length;j++){
var id = ids[j]; var id = ids[j];
if(options.type=='chain'){
var data = getChainById(id);
if(data){
result.push(data);
}
}else{
if(options.reverse){ if(options.reverse){
id = reverseId(id,options.sex); id = reverseId(id,options.sex);
} }
@ -730,6 +748,7 @@
} }
} }
} }
}
return unique(result); return unique(result);
} }