updated 不在内部提供模式包,对外暴露模式设置接口
This commit is contained in:
parent
e7315578b9
commit
542a03577b
2632
dist/relationship.js
vendored
2632
dist/relationship.js
vendored
File diff suppressed because it is too large
Load Diff
6
dist/relationship.min.js
vendored
6
dist/relationship.min.js
vendored
File diff suppressed because one or more lines are too long
@ -5,8 +5,8 @@ const rename = require("gulp-rename");
|
||||
|
||||
gulp.task('mini', () => (
|
||||
gulp.src('script/relationship.js')
|
||||
.pipe(gulp.dest('dist/'))
|
||||
.pipe(uglify()) //uglify
|
||||
.pipe(uglify())
|
||||
.pipe(rename("relationship.min.js"))
|
||||
.pipe(gulp.dest('dist/'))
|
||||
|
||||
));
|
@ -32,12 +32,12 @@
|
||||
"glob-parent": ">=5.1.2"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "node tests/test.js",
|
||||
"test": "node test/index.js",
|
||||
"build": "gulp mini && npm run test"
|
||||
},
|
||||
"dependencies": {},
|
||||
"homepage": "https://github.com/mumuy/relationship#readme",
|
||||
"directories": {
|
||||
"test": "tests"
|
||||
"test": "test"
|
||||
}
|
||||
}
|
||||
|
43
readme.md
43
readme.md
@ -31,25 +31,50 @@ var relationship = require("relationship.js");
|
||||
|
||||
## 二、使用
|
||||
|
||||
使用很简单,只有一个 API 方法 `relationship(options)`.
|
||||
1. 内部属性:获取当前数据量 `relationship.dataCount`.
|
||||
|
||||
2. 内部方法:用户自定义模式 `relationship.setMode(sign,data)`.
|
||||
|
||||
代码示例:
|
||||
|
||||
```js
|
||||
var options = {text:'儿子的爸爸的妈妈',sex:1};
|
||||
relationship(options);
|
||||
relationship.setMode('northern',{
|
||||
'm,f':['姥爷'],
|
||||
'm,m':['姥姥']
|
||||
});
|
||||
```
|
||||
|
||||
另外,参数`options`结构为:
|
||||
3. 通用方法: 唯一的计算方法 `relationship(options)`.
|
||||
|
||||
参数`options`结构为:
|
||||
|
||||
```js
|
||||
var options = {
|
||||
text:'', //输入的文本
|
||||
target:'', //针对对象:空表示自己
|
||||
sex:-1, //自己的性别:0女性,1男性
|
||||
text:'', //输入文本(称谓的汉字表达,称谓间用‘的’字分割)
|
||||
target:'', //针对对象:空表示自己
|
||||
sex:-1, //自己的性别:0女性,1男性
|
||||
type:'default', //转换类型:'default'算称谓,'chain'算关系
|
||||
reverse:false //称呼方式:true对方称呼我,false我称呼对方
|
||||
mode:'default' //模式选择,可由用户自定义
|
||||
};
|
||||
```
|
||||
|
||||
代码示例:
|
||||
|
||||
```js
|
||||
// 如:我应该叫外婆的哥哥什么?
|
||||
relationship({text:'妈妈的妈妈的哥哥'});
|
||||
|
||||
// 如:七舅姥爷应该叫我什么?
|
||||
relationship({text:'七舅姥爷','reverse':true,'sex':1});
|
||||
|
||||
// 如:舅公和我是什么关系?
|
||||
relationship({text:'舅公',sex:0,type:'chain'});
|
||||
|
||||
// 如:舅妈如何称呼外婆?
|
||||
relationship({text:'外婆',target:'舅妈',sex:1});
|
||||
```
|
||||
|
||||
|
||||
## 三、开发 & 贡献
|
||||
|
||||
@ -69,11 +94,13 @@ npm test
|
||||
|
||||
## 四、关于分歧
|
||||
|
||||
一些称呼存在南北方或地区差异,容易引起歧义,并不保证和你所处地区的称谓习惯一致。本程序主要以现代生活常见的理解为主。
|
||||
一些称呼存在南北方或地区差异,容易引起歧义,并不保证和你所处地区的称谓习惯一致。本程序默认以现代生活常见的理解为主。例如:
|
||||
* 媳妇:在古代或者当今北方地区指儿子的妻子,这里指自己的妻子。
|
||||
* 大爷:北方指父亲的哥哥,这里指爷爷的哥哥
|
||||
* 太太:一些地方指年长的妇人,这里指自己的妻子
|
||||
|
||||
针对不同地区的使用,你可以通过上述所说的自定义模式实现。
|
||||
|
||||
## 五、其他
|
||||
|
||||
他们都在用:
|
||||
|
264
script/index.js
Normal file
264
script/index.js
Normal file
@ -0,0 +1,264 @@
|
||||
// 获取数量
|
||||
document.getElementById('count').innerText = relationship.dataCount;
|
||||
|
||||
// 自定义模式
|
||||
relationship.setMode('cantonese',{
|
||||
'f':['阿爸'],
|
||||
'f,f':['阿爷'],
|
||||
'f,f,f':['太公'],
|
||||
'f,f,m':['太婆'],
|
||||
'f,m':['阿嫲'],
|
||||
'f,m,f':['太外公'],
|
||||
'f,m,m':['太外婆'],
|
||||
'f,ob':['大伯'],
|
||||
'f,ob,w':['伯娘'],
|
||||
'f,lb':['阿叔'],
|
||||
'f,lb,w':['阿婶'],
|
||||
'0,f,xb,d,s':['堂姨甥'],
|
||||
'1,f,xb,d,s':['堂外甥'],
|
||||
'0,f,xb,d,d':['堂姨甥女'],
|
||||
'1,f,xb,d,d':['堂外甥女'],
|
||||
'f,os':['姑妈'],
|
||||
'f,ls':['姑姐'],
|
||||
'f,xs,h':['姑丈'],
|
||||
'0,f,xs,d,s':['姑表姨甥'],
|
||||
'1,f,xs,d,s':['姑表外甥'],
|
||||
'0,f,xs,d,d':['姑表姨甥女'],
|
||||
'1,f,xs,d,d':['姑表外甥女'],
|
||||
'm':['阿妈','老母'],
|
||||
'm,f':['阿公'],
|
||||
'm,f,f':['外太公'],
|
||||
'm,f,m':['外太婆'],
|
||||
'm,m':['阿婆'],
|
||||
'm,m,f':['外太外公'],
|
||||
'm,m,m':['外太外婆'],
|
||||
'm,ob':['舅父'],
|
||||
'm,lb':['舅仔'],
|
||||
'm,xb,w':['舅母'],
|
||||
'0,m,xb,d,s':['舅表姨甥'],
|
||||
'1,m,xb,d,s':['舅表外甥'],
|
||||
'0,m,xb,d,d':['舅表姨甥女'],
|
||||
'1,m,xb,d,d':['舅表外甥女'],
|
||||
'm,os':['姨妈'],
|
||||
'm,ls':['姨仔'],
|
||||
'm,xs,h':['姨丈'],
|
||||
'0,m,xb,d,s':['姨姨甥'],
|
||||
'1,m,xb,d,s':['姨外甥'],
|
||||
'0,m,xb,d,d':['姨姨甥女'],
|
||||
'1,m,xb,d,d':['姨外甥女'],
|
||||
'ob':['阿哥'],
|
||||
'ob,w':['阿嫂'],
|
||||
'lb':['阿弟','细佬'],
|
||||
'lb,w':['弟妇'],
|
||||
'xb,s':['侄'],
|
||||
'xb,d':['侄女'],
|
||||
'os':['阿姐'],
|
||||
'os,w':['姐夫'],
|
||||
'ls':['阿妹'],
|
||||
'ls,w':['妹夫'],
|
||||
'0,xs,s':['姨甥'],
|
||||
'1,xs,s':['外甥'],
|
||||
'0,xs,d':['姨甥女'],
|
||||
'1,xs,d':['外甥女'],
|
||||
's':['仔'],
|
||||
's,w':['新妇'],
|
||||
's,s':['孙'],
|
||||
's,s,w':['孙新妇'],
|
||||
's,s,s':['息仔'],
|
||||
's,s,d':['息女'],
|
||||
's,d':['孙女'],
|
||||
's,d,h':['孙女婿'],
|
||||
's,d,s':['外息仔'],
|
||||
's,d,d':['外息女'],
|
||||
'd':['女'],
|
||||
'd,s':['外孙'],
|
||||
'd,s,w':['外孙新妇'],
|
||||
'd,s,s':['外息仔'],
|
||||
'd,s,d':['外息女'],
|
||||
'd,d':['外孙女'],
|
||||
'd,d,h':['外孙女婿'],
|
||||
'd,d,s':['外息仔'],
|
||||
'd,d,d':['外息女'],
|
||||
});
|
||||
|
||||
// 标签页
|
||||
(function(){
|
||||
var $module = document.querySelector('.mod-panel');
|
||||
var $items = $module.querySelectorAll('li');
|
||||
var $panels = $module.querySelectorAll('.c-panel');
|
||||
for(var i=0;i<$items.length;i++){
|
||||
(function(i){
|
||||
$items[i].addEventListener('click',function(){
|
||||
for(var j=0;j<$panels.length;j++){
|
||||
$items[j].className = i==j?'active':'';
|
||||
$panels[j].style.display = i==j?'block':'none';
|
||||
}
|
||||
});
|
||||
})(i);
|
||||
}
|
||||
})();
|
||||
|
||||
// 通过关系找称呼
|
||||
(function(){
|
||||
var $module = document.querySelector('.mod-panel');
|
||||
var $panel = $module.querySelector('.c-panel:nth-child(1)');
|
||||
var $radio = $panel.querySelectorAll('input[type="radio"]');
|
||||
var $mode = $panel.querySelectorAll('input[name="mode"]');
|
||||
var $sex = $panel.querySelectorAll('input[name="sex"]');
|
||||
var $reverse = $panel.querySelectorAll('input[name="reverse"]');
|
||||
var $small_btns = $panel.querySelectorAll('.btn-small');
|
||||
var $input = $panel.querySelector('textarea[name="input"]');
|
||||
var $result = $panel.querySelector('textarea[name="result"]');
|
||||
var toggleSex = function(sex){
|
||||
if(sex){ //男女判断
|
||||
$small_btns[2].disabled=true;
|
||||
$small_btns[3].disabled=false;
|
||||
}else{
|
||||
$small_btns[2].disabled=false;
|
||||
$small_btns[3].disabled=true;
|
||||
}
|
||||
}
|
||||
var count = function(){
|
||||
var value = $input.value.trim();
|
||||
if(value){
|
||||
var sex = $sex[0].checked?1:0;
|
||||
var mode = $mode[0].checked?$mode[0].value:$mode[1].value;
|
||||
var reverse = !$reverse[0].checked;
|
||||
var result = relationship({text:value,sex:sex,reverse:reverse,mode:mode});
|
||||
$result.value = '';
|
||||
if(result.length){
|
||||
$result.value = result.join('\n');
|
||||
}else{
|
||||
$result.value = '貌似他/她跟你不是很熟哦!';
|
||||
}
|
||||
}else{
|
||||
$result.value = '';
|
||||
}
|
||||
};
|
||||
var bindChange = function(){
|
||||
var value = $input.value.trim();
|
||||
var result = relationship({text:value,type:'chain'});
|
||||
if(result.length){
|
||||
var name = result[0].split('的').pop();
|
||||
if(!name){
|
||||
toggleSex($sex[0].checked);
|
||||
}else{
|
||||
toggleSex('爸爸,老公,儿子,哥哥,弟弟,兄弟'.indexOf(name)>-1);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
for(var i=0;i<$small_btns.length;i++){
|
||||
$small_btns[i].onclick = function(){
|
||||
var value = $input.value.trim();
|
||||
var name = this.getAttribute('data-value');
|
||||
if(value){
|
||||
$input.value= value+'的'+name;
|
||||
}else{
|
||||
$input.value= name;
|
||||
}
|
||||
toggleSex('爸爸,老公,儿子,哥哥,弟弟,兄弟'.indexOf(name)>-1);
|
||||
}
|
||||
}
|
||||
for(var i=0;i<$radio.length;i++){
|
||||
$radio[i].onchange=function(){
|
||||
toggleSex($sex[0].checked);
|
||||
if($result.value){
|
||||
count();
|
||||
}
|
||||
}
|
||||
}
|
||||
var hander = null;
|
||||
$input.addEventListener('paste',function(){
|
||||
hander&&clearTimeout(bindChange,250);
|
||||
hander = setTimeout(bindChange,250);
|
||||
});
|
||||
$input.addEventListener('input',function(){
|
||||
hander&&clearTimeout(bindChange,250);
|
||||
hander = setTimeout(bindChange,250);
|
||||
});
|
||||
$panel.querySelector('.btn-orange').addEventListener('click',function(){
|
||||
var value = $input.value.trim();
|
||||
var index = value.lastIndexOf('的');
|
||||
index = Math.max(0,index);
|
||||
var search = value.substr(0,index);
|
||||
$input.value = search;
|
||||
$result.value = '';
|
||||
var name = search.split('的').pop();
|
||||
if(!name){
|
||||
toggleSex($sex[0].checked);
|
||||
}else{
|
||||
toggleSex('爸爸,老公,儿子,哥哥,弟弟'.indexOf(name)>-1);
|
||||
}
|
||||
});
|
||||
$panel.querySelector('.btn-red').addEventListener('click',function(){
|
||||
$result.value = $input.value = '';
|
||||
toggleSex($sex[0].checked);
|
||||
});
|
||||
$panel.querySelector('.btn-green').addEventListener('click',count);
|
||||
|
||||
toggleSex($sex[0].checked);
|
||||
})();
|
||||
|
||||
// 通过称呼找关系
|
||||
(function(){
|
||||
var $module = document.querySelector('.mod-panel');
|
||||
var $panel = $module.querySelector('.c-panel:nth-child(2)');
|
||||
var $radio = $panel.querySelectorAll('input[type="radio"]');
|
||||
var $input = $panel.querySelector('input[name="input"]');
|
||||
var $result = $panel.querySelector('textarea[name="result"]');
|
||||
var count = function(){
|
||||
var value = $input.value.trim();
|
||||
if(value){
|
||||
var result = relationship({text:value,type:'chain'});
|
||||
if(result.length){
|
||||
$result.value = result.join('\n');
|
||||
}else{
|
||||
$result.value = '貌似他/她跟你不是很熟哦!';
|
||||
}
|
||||
}else{
|
||||
$result.value = '';
|
||||
}
|
||||
};
|
||||
$panel.querySelector('.btn-red').onclick = function(){
|
||||
$result.value = $input.value = '';
|
||||
};
|
||||
$panel.querySelector('.btn-green').onclick = count;
|
||||
})();
|
||||
|
||||
// 任意两者间称呼
|
||||
(function(){
|
||||
var $module = document.querySelector('.mod-panel');
|
||||
var $panel = $module.querySelector('.c-panel:nth-child(3)');
|
||||
var $radio = $panel.querySelectorAll('input[type="radio"]');
|
||||
var $reverse = $panel.querySelectorAll('input[name="reverse2"]');
|
||||
var $person = $panel.querySelector('input[name="person"]');
|
||||
var $target = $panel.querySelector('input[name="target"]');
|
||||
var $result = $panel.querySelector('textarea[name="result"]');
|
||||
var count = function(){
|
||||
var person = $person.value.trim();
|
||||
var target = $target.value.trim();
|
||||
if(person){
|
||||
var reverse = !$reverse[1].checked;
|
||||
var result = relationship({text:person,reverse:reverse,target:target});
|
||||
if(result.length){
|
||||
$result.value = result.join('\n');
|
||||
}else{
|
||||
$result.value = '他们貌似不是很熟哦!';
|
||||
}
|
||||
}else{
|
||||
$result.value = '';
|
||||
}
|
||||
};
|
||||
for(var i=0;i<$radio.length;i++){
|
||||
$radio[i].onchange=function(){
|
||||
if($result.value){
|
||||
count();
|
||||
}
|
||||
}
|
||||
}
|
||||
$panel.querySelector('.btn-red').onclick = function(){
|
||||
$result.value = $person.value = $target.value = '';
|
||||
};
|
||||
$panel.querySelector('.btn-green').onclick = count;
|
||||
})();
|
@ -187,7 +187,7 @@
|
||||
//语法说明:
|
||||
//【关系】f:父,m:母,h:夫,w:妻,s:子,d:女,xb:兄弟,ob:兄,lb:弟,xs:姐妹,os:姐,ls:妹
|
||||
//【修饰符】 1:男性,0:女性,&o:年长,&l:年幼,#:隔断,[a|b]:并列
|
||||
var _data = {
|
||||
var _map = {
|
||||
'':['自己','我','本人','在下'],
|
||||
//并称
|
||||
'[f,f|f,m|m,f|m,m]':['祖辈','祖父母'],
|
||||
@ -202,10 +202,10 @@
|
||||
'[s|d]':['子女','儿女','小孩','孩子','孩儿','宝宝','娃'],
|
||||
'[s,s|s,d|d,s|d,d]':['孙辈'],
|
||||
// 本家
|
||||
'f':['爸爸','父亲','老爸','爸','父','爹','爹爹','爹地','爹啲','老爹','大大','老爷子'],
|
||||
'f':['爸爸','父亲','老爸','阿爸','老窦','爸','父','爹','爹爹','爹地','爹啲','老爹','大大','老爷子'],
|
||||
// 爷爷
|
||||
'f,f':['爷爷','祖父','奶爷','阿公','老爷'],
|
||||
'f,f,f':['曾祖父','曾祖','太爷','太爷爷','祖公','祖奶爷','太老爷'],
|
||||
'f,f':['爷爷','祖父','奶爷','阿爷','阿公','吖爷','老爷'],
|
||||
'f,f,f':['曾祖父','曾祖','太公','太爷','太爷爷','祖公','祖奶爷','太老爷'],
|
||||
'f,f,f,f':['高祖父','老太奶爷','老太爷','祖太爷','祖太爷爷','祖太公','高王父'],
|
||||
'f,f,f,f,f':['天祖父','高祖'],
|
||||
'f,f,f,f,f,f':['烈祖父','烈祖'],
|
||||
@ -380,7 +380,7 @@
|
||||
'f,f,f,xs,d,s&l,w':['姑表姑表叔母'],
|
||||
'f,f,f,xs,d,d':['姑表姑表姑母'],
|
||||
'f,f,f,xs,d,d,h':['姑表姑表姑父'],
|
||||
'f,f,m':['曾祖母','太奶奶','祖婆','祖奶奶'],
|
||||
'f,f,m':['曾祖母','太奶奶','太婆','祖婆','祖奶奶'],
|
||||
'f,f,m,f':['高外祖父','老太姥爷','祖太姥爷','祖太公','高王父'],
|
||||
'f,f,m,m':['高外祖母','老太姥姥','祖太姥姥','祖太姥娘','祖太婆','高王母'],
|
||||
// 舅表*
|
||||
@ -528,8 +528,8 @@
|
||||
'f,f,xs,d,d,d':['堂姑表表甥女','姑表姑表甥女'],
|
||||
'f,f,xs,d,d,d,h':['堂姑表表甥婿','姑表姑表甥婿'],
|
||||
// 奶奶
|
||||
'f,m':['奶奶','祖母','嫲嫲'],
|
||||
'f,m,f':['曾外祖父','太姥爷'],
|
||||
'f,m':['奶奶','祖母','阿嫲','阿嬷','嫲嫲','吖麻'],
|
||||
'f,m,f':['曾外祖父','太外公','太姥爷'],
|
||||
'f,m,f,f':['曾外曾祖父','祖太爷','祖太爷爷','祖太公','高王父'],
|
||||
'f,m,f,m':['曾外曾祖母','祖太太','祖太奶奶','祖太婆','高王母'],
|
||||
// 从父*
|
||||
@ -576,7 +576,7 @@
|
||||
'f,m,f,xs,d,s&l,w':['姑表姨表叔母'],
|
||||
'f,m,f,xs,d,d':['姑表姨表姑母'],
|
||||
'f,m,f,xs,d,d,h':['姑表姨表姑父'],
|
||||
'f,m,m':['曾外祖母','太姥姥'],
|
||||
'f,m,m':['曾外祖母','太外婆','太姥姥'],
|
||||
'f,m,m,f':['曾外曾外祖父','祖太姥爷','祖太公','高王父'],
|
||||
'f,m,m,m':['曾外曾外祖母','祖太姥姥','祖太姥娘','祖太婆','高王母'],
|
||||
// 舅表*
|
||||
@ -708,10 +708,10 @@
|
||||
'f,m,xs,d,d,d':['从母姑表甥女'],
|
||||
'f,m,xs,d,d,d,h':['从母姑表甥婿'],
|
||||
// 从父
|
||||
'f,ob':['伯父','伯伯','阿伯','大爹','大爸','x伯'],
|
||||
'f,ob,w':['伯母','伯妈','大娘','大妈','x妈'],
|
||||
'f,lb':['叔叔','叔父','叔爸','叔爹','仲父','小叔','小爹','小爸','幺爸','x叔','叔'],
|
||||
'f,lb,w':['婶婶','婶母','婶娘','婶爹','婶妈','小婶','小婶娘','婶子','婶儿','家婶','叔母','叔妈','叔娘','季母','小娘','小妈','幺婶','x婶','婶'],
|
||||
'f,ob':['伯父','伯伯','阿伯','大伯','大爹','大爸','x伯'],
|
||||
'f,ob,w':['伯母','伯妈','伯娘','大娘','大妈','x妈'],
|
||||
'f,lb':['叔叔','叔父','叔爸','叔爹','阿叔','仲父','小叔','小爹','小爸','幺爸','x叔','叔'],
|
||||
'f,lb,w':['婶婶','婶母','婶娘','婶爹','阿婶','婶妈','小婶','小婶娘','婶子','婶儿','家婶','叔母','叔妈','叔娘','季母','小娘','小妈','幺婶','x婶','婶'],
|
||||
'f,xb,w,f':['叔眷外祖父','叔眷王父','叔眷毑父','叔眷姥爷','眷姥爷'],
|
||||
'f,xb,w,m':['叔眷外祖女','叔眷王母','叔眷毑母','叔眷姥姥','眷姥姥'],
|
||||
'f,xb,w,xb':['叔眷舅父','眷舅父'],
|
||||
@ -796,7 +796,7 @@
|
||||
'f,xb,d,d,d,h':['堂甥外孙婿','从父甥外孙婿'],
|
||||
// 姑表
|
||||
'f,os':['姑母','大姑妈'],
|
||||
'f,ls':['姑姐','小姑妈'],
|
||||
'f,ls':['姑姐','小姑妈','姑仔'],
|
||||
'f,xs':['姑妈','姑姑','姑娘','姑','x姑妈'],
|
||||
'f,xs,h':['姑丈','姑父','姑爸','姑夫','x姑丈','x姑父'],
|
||||
'f,xs,h,f':['姑姻祖父','姑姻王父','姑姻爷爷','姻爷爷'],
|
||||
@ -864,9 +864,9 @@
|
||||
'f,xs,d,d,d':['姑表甥外孙女','表甥外孙女','姑表甥外孙','表甥外孙'],
|
||||
'f,xs,d,d,d,h':['姑表甥外孙婿','表甥外孙婿'],
|
||||
// 外家
|
||||
'm':['妈妈','母亲','老妈','老妈子','妈','母','娘','娘亲','妈咪'],
|
||||
'm':['妈妈','母亲','阿妈','老母','老妈','老妈子','妈','母','娘','娘亲','妈咪'],
|
||||
// 外公
|
||||
'm,f':['外公','外祖父','外王父','客公','外爷','毑父'],
|
||||
'm,f':['外公','外祖父','外王父','姥爷','阿公','客公','外爷','毑父'],
|
||||
'm,f,f':['外曾祖父','曾外祖父','外太祖父','外曾王父','外太公','外太爷爷','太外祖父'],
|
||||
'm,f,f,f':['外高祖父','高外祖父','祖太爷','祖太爷爷','祖太公','高王父'],
|
||||
'm,f,f,m':['外高祖母','高外祖母','祖太太','祖太奶奶','祖太婆','高王母'],
|
||||
@ -1038,8 +1038,8 @@
|
||||
'm,f,xs,d,d,d':['姑表姨表甥女'],
|
||||
'm,f,xs,d,d,d,h':['姑表姨表甥婿'],
|
||||
// 外婆
|
||||
'm,m':['外婆','外祖母','外王母','客婆','毑母'],
|
||||
'm,m,f':['外曾外祖父','外太姥爷'],
|
||||
'm,m':['外婆','外祖母','外王母','阿婆','姥姥','客婆','毑母'],
|
||||
'm,m,f':['外曾外祖父','外太外公','外太姥爷'],
|
||||
'm,m,f,f':['外曾外曾祖父','祖太爷','祖太爷爷','祖太公','高王父'],
|
||||
'm,m,f,m':['外曾外曾祖母','祖太太','祖太奶奶','祖太婆','高王母'],
|
||||
// 从父*
|
||||
@ -1078,7 +1078,7 @@
|
||||
'm,m,f,xs,d,s,w':['姑表姨表舅母'],
|
||||
'm,m,f,xs,d,d':['姑表姨表姨母'],
|
||||
'm,m,f,xs,d,d,h':['姑表姨表姨父'],
|
||||
'm,m,m':['外曾外祖母','外太姥姥'],
|
||||
'm,m,m':['外曾外祖母','外太外婆','外太姥姥'],
|
||||
'm,m,m,f':['外曾外曾外祖父','祖太姥爷','祖太公','高王父'],
|
||||
'm,m,m,m':['外曾外曾外祖母','祖太姥姥','祖太姥娘','祖太婆','高王母'],
|
||||
// 舅表*
|
||||
@ -1270,14 +1270,14 @@
|
||||
'm,xb,d,d,s,w':['舅表甥外孙妇','表甥外孙妇'],
|
||||
'm,xb,d,d,d':['舅表甥外孙女','表甥外孙女','舅表甥外孙','表甥外孙'],
|
||||
'm,xb,d,d,d,h':['舅表甥外孙婿','表甥外孙婿'],
|
||||
'm,ob':['大舅'],
|
||||
'm,ob':['大舅','舅父'],
|
||||
'm,ob,w':['大舅妈'],
|
||||
'm,lb':['小舅','舅父仔'],
|
||||
'm,lb':['小舅','舅仔','舅父仔'],
|
||||
'm,lb,w':['小舅妈'],
|
||||
// 从母
|
||||
'm,os':['大姨','大姨妈'],
|
||||
'm,os':['大姨','大姨妈','姨妈'],
|
||||
'm,os,h':['大姨父','大姨丈'],
|
||||
'm,ls':['小姨','小姨妈'],
|
||||
'm,ls':['小姨','小姨妈','姨仔'],
|
||||
'm,ls,h':['小姨父','小姨丈'],
|
||||
'm,xs':['姨妈','姨母','姨姨','姨娘','阿姨','姨','x姨','x姨妈'],
|
||||
'm,xs,h':['姨丈','姨父','姨爸','姨爹','姨婿','姨郎','x姨丈','x姨父'],
|
||||
@ -1637,9 +1637,9 @@
|
||||
'w,xs,d,d':['内甥外孙女','姨甥外孙女'],
|
||||
'w,xs,d,d,h':['内甥外孙婿','姨甥外孙婿'],
|
||||
// 兄弟
|
||||
'ob':['哥哥','哥','兄','老哥','兄长','胞哥','大哥','x哥'],
|
||||
'ob,w':['嫂子','嫂','嫂嫂','兄嫂','大嫂','x嫂'],
|
||||
'lb':['弟弟','弟','胞弟','老弟','x弟'],
|
||||
'ob':['哥哥','哥','兄','老哥','兄长','阿哥','大佬','吖哥','胞哥','大哥','x哥'],
|
||||
'ob,w':['嫂子','嫂','嫂嫂','兄嫂','大嫂','阿嫂','x嫂'],
|
||||
'lb':['弟弟','弟','胞弟','老弟','阿弟','细佬','x弟'],
|
||||
'lb,w':['弟妹','弟媳','弟媳妇','弟妇','x弟妹'],
|
||||
'xb':['兄弟'],
|
||||
'xb,w,f':['兄弟眷父'],
|
||||
@ -1734,7 +1734,7 @@
|
||||
'1,xb,w,xs,s':['叔眷姨男'],
|
||||
'0,xb,w,xs,d':['舅眷姨女'],
|
||||
'1,xb,w,xs,d':['叔眷姨女'],
|
||||
'xb,s':['侄子','侄男','侄男儿','侄儿','阿侄'],
|
||||
'xb,s':['侄子','侄男','侄男儿','侄儿','阿侄','侄'],
|
||||
'xb,s,w':['侄媳妇','侄妇'],
|
||||
'xb,s,w,f&o':['侄眷兄'],
|
||||
'xb,s,w,f&l':['侄眷弟'],
|
||||
@ -1795,9 +1795,9 @@
|
||||
'xb,d,d,d,s':['侄外曾外曾外孙'],
|
||||
'xb,d,d,d,d':['侄外曾外曾外孙女'],
|
||||
// 姐妹
|
||||
'os':['姐姐','姐','阿姊','胞姐','大姐','x姐'],
|
||||
'os':['姐姐','姐','阿姊','胞姐','大姐','阿姐','家姐','吖姐','x姐'],
|
||||
'os,h':['姐夫','姊夫','姊丈','姊婿','大姐夫','x姐夫'],
|
||||
'ls':['妹妹','妹','胞妹','老妹','x妹'],
|
||||
'ls':['妹妹','妹','胞妹','老妹','阿妹','细妹','吖妹','x妹'],
|
||||
'ls,h':['妹夫','妹丈','妹婿','x妹夫'],
|
||||
'xs':['姐妹'],
|
||||
'xs,h,f':['姊妹姻父'],
|
||||
@ -1953,17 +1953,17 @@
|
||||
'xs,d,d,d,s':['甥外曾外曾外孙'],
|
||||
'xs,d,d,d,d':['甥外曾外曾外孙女'],
|
||||
//自家
|
||||
's':['儿子','男儿','儿','x儿子'],
|
||||
's':['儿子','男儿','儿','仔','阿仔','仔仔','x儿子'],
|
||||
's,w':['儿媳','儿媳妇','新妇'],
|
||||
's,s':['孙子','孙男','孙儿','x孙子'],
|
||||
's,s,w':['孙媳妇','孙媳','孙妇'],
|
||||
's,s,w':['孙媳妇','孙媳','孙妇','孙新妇'],
|
||||
's,s,w,f':['孙眷男'],
|
||||
's,s,w,m':['孙眷女'],
|
||||
's,s,w,xb':['孙眷孙男','姻家再侄男','姻家再侄'],
|
||||
's,s,w,xb,w':['孙眷孙妇'],
|
||||
's,s,w,xs':['孙眷孙女','姻家再侄女','姻家再侄'],
|
||||
's,s,w,xs,h':['孙眷孙婿'],
|
||||
's,s,s':['曾孙','曾孙男','重孙'],
|
||||
's,s,s':['曾孙','曾孙男','重孙','息仔'],
|
||||
's,s,s,w':['曾孙妇'],
|
||||
's,s,s,s':['玄孙','元孙','膀孙'],
|
||||
's,s,s,s,w':['玄孙媳妇'],
|
||||
@ -2008,7 +2008,7 @@
|
||||
's,s,s,d,s,w':['来外孙媳妇'],
|
||||
's,s,s,d,d':['来外孙女'],
|
||||
's,s,s,d,d,h':['来外孙女婿'],
|
||||
's,s,d':['曾孙女'],
|
||||
's,s,d':['曾孙女','息女'],
|
||||
's,s,d,h':['曾孙女婿'],
|
||||
's,s,d,s':['玄外孙'],
|
||||
's,s,d,s,w':['玄外孙媳妇'],
|
||||
@ -2034,10 +2034,10 @@
|
||||
's,d,d,s,w':['曾外曾外孙媳妇'],
|
||||
's,d,d,d':['曾外曾外孙女'],
|
||||
's,d,d,d,h':['曾外曾外孙女婿'],
|
||||
'd':['女儿','千金','闺女','掌上明珠','乖囡','囡囡','姑娘','x女儿'],
|
||||
'd':['女儿','千金','闺女','掌上明珠','乖囡','囡囡','姑娘','女','阿女','女女','x女儿'],
|
||||
'd,h':['女婿','姑爷','女婿子','女婿儿','儿婿'],
|
||||
'd,s':['外孙'],
|
||||
'd,s,w':['外孙媳妇','外孙妇'],
|
||||
'd,s,w':['外孙媳妇','外孙妇','外孙新妇'],
|
||||
'd,s,s':['外曾孙','重外孙'],
|
||||
'd,s,s,w':['外曾孙媳妇','外曾孙妇'],
|
||||
'd,s,s,s':['外玄孙'],
|
||||
@ -2193,89 +2193,9 @@
|
||||
'd,h,xs,d,h':['女姻外孙婿','息姻外孙婿'],
|
||||
};
|
||||
|
||||
var _language = {};
|
||||
_language['cantonese'] = {
|
||||
'f':['阿爸','老窦'],
|
||||
'f,f':['阿爷','吖爷'],
|
||||
'f,f,f':['太公'],
|
||||
'f,f,m':['太婆'],
|
||||
'f,m':['阿嫲','阿嬷','吖麻'],
|
||||
'f,m,f':['太外公'],
|
||||
'f,m,m':['太外婆'],
|
||||
'f,ob':['大伯'],
|
||||
'f,ob,w':['伯娘'],
|
||||
'f,lb':['阿叔'],
|
||||
'f,lb,w':['阿婶'],
|
||||
'0,f,xb,d,s':['堂姨甥'],
|
||||
'1,f,xb,d,s':['堂外甥'],
|
||||
'0,f,xb,d,d':['堂姨甥女'],
|
||||
'1,f,xb,d,d':['堂外甥女'],
|
||||
'f,os':['姑妈'],
|
||||
'f,ls':['姑姐','姑仔'],
|
||||
'f,xs,h':['姑丈'],
|
||||
'0,f,xs,d,s':['姑表姨甥'],
|
||||
'1,f,xs,d,s':['姑表外甥'],
|
||||
'0,f,xs,d,d':['姑表姨甥女'],
|
||||
'1,f,xs,d,d':['姑表外甥女'],
|
||||
'm':['阿妈','老母'],
|
||||
'm,f':['阿公'],
|
||||
'm,f,f':['外太公'],
|
||||
'm,f,m':['外太婆'],
|
||||
'm,m':['阿婆'],
|
||||
'm,m,f':['外太外公'],
|
||||
'm,m,m':['外太外婆'],
|
||||
'm,ob':['舅父'],
|
||||
'm,lb':['舅仔'],
|
||||
'm,xb,w':['舅母'],
|
||||
'0,m,xb,d,s':['舅表姨甥'],
|
||||
'1,m,xb,d,s':['舅表外甥'],
|
||||
'0,m,xb,d,d':['舅表姨甥女'],
|
||||
'1,m,xb,d,d':['舅表外甥女'],
|
||||
'm,os':['姨妈'],
|
||||
'm,ls':['姨仔'],
|
||||
'm,xs,h':['姨丈'],
|
||||
'0,m,xb,d,s':['姨姨甥'],
|
||||
'1,m,xb,d,s':['姨外甥'],
|
||||
'0,m,xb,d,d':['姨姨甥女'],
|
||||
'1,m,xb,d,d':['姨外甥女'],
|
||||
'ob':['阿哥','大佬','吖哥'],
|
||||
'ob,w':['阿嫂'],
|
||||
'lb':['阿弟','细佬'],
|
||||
'lb,w':['弟妇'],
|
||||
'xb,s':['侄'],
|
||||
'xb,d':['侄女'],
|
||||
'os':['阿姐','家姐','吖姐'],
|
||||
'os,w':['姐夫'],
|
||||
'ls':['阿妹','细妹','吖妹'],
|
||||
'ls,w':['妹夫'],
|
||||
'0,xs,s':['姨甥'],
|
||||
'1,xs,s':['外甥'],
|
||||
'0,xs,d':['姨甥女'],
|
||||
'1,xs,d':['外甥女'],
|
||||
's':['仔','阿仔','仔仔'],
|
||||
's,w':['新妇'],
|
||||
's,s':['孙'],
|
||||
's,s,w':['孙新妇'],
|
||||
's,s,s':['息仔'],
|
||||
's,s,d':['息女'],
|
||||
's,d':['孙女'],
|
||||
's,d,h':['孙女婿'],
|
||||
's,d,s':['外息仔'],
|
||||
's,d,d':['外息女'],
|
||||
'd':['女','阿女','女女'],
|
||||
'd,s':['外孙'],
|
||||
'd,s,w':['外孙新妇'],
|
||||
'd,s,s':['外息仔'],
|
||||
'd,s,d':['外息女'],
|
||||
'd,d':['外孙女'],
|
||||
'd,d,h':['外孙女婿'],
|
||||
'd,d,s':['外息仔'],
|
||||
'd,d,d':['外息女'],
|
||||
};
|
||||
_language['northern'] = {
|
||||
'm,f':['姥爷'],
|
||||
'm,m':['姥姥'],
|
||||
};
|
||||
// 模式
|
||||
var _data = Object.assign({},_map);
|
||||
var _mode = {};
|
||||
|
||||
// 数组去重
|
||||
var unique = function(arr) {
|
||||
@ -2563,18 +2483,18 @@
|
||||
sex:-1,
|
||||
type:'default', // 'chain'表示关系链
|
||||
reverse:false, // true表示反向
|
||||
language:'default', // 'cantonese'表示粤语地区
|
||||
mode:'default', // 'cantonese'表示粤语地区
|
||||
},parameter);
|
||||
var sex = options.sex;
|
||||
for(var lang in _language){
|
||||
if(options.language==lang){
|
||||
for(var key in _language[lang]){
|
||||
_data[key] = _language[lang][key].concat(_data[key]||[]);
|
||||
for(var lang in _mode){
|
||||
if(options.mode==lang){
|
||||
for(var key in _mode[lang]){
|
||||
_data[key] = _mode[lang][key].concat(_map[key]||[]);
|
||||
}
|
||||
}else{
|
||||
for(var key in _language[lang]){
|
||||
if(_data[key]){
|
||||
_data[key] = _data[key].concat(_language[lang][key]);
|
||||
for(var key in _mode[lang]){
|
||||
if(_map[key]){
|
||||
_data[key] = _map[key].concat(_mode[lang][key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2628,5 +2548,12 @@
|
||||
for(var i in _data){
|
||||
relationship.dataCount++;
|
||||
}
|
||||
// 设置语言模式
|
||||
relationship.setMode = function(sign,data){
|
||||
if(typeof _mode[sign]=='undefined'){
|
||||
_mode[sign] = {};
|
||||
}
|
||||
_mode[sign] = Object.assign(_mode[sign],data);
|
||||
};
|
||||
return relationship;
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user