updated 模块引用命名统一化

This commit is contained in:
PASSER-BY
2023-03-16 22:44:07 +08:00
parent 6306a953d5
commit be8eec8973
8 changed files with 37 additions and 38 deletions

View File

@@ -1,19 +1,20 @@
/*
* 缓存数据
*/
import inputData from './data/input';
import _input from './data/input';
import {modeData} from './mode';
let _data = Object.assign({},modeData,inputData);
let _hash = Object.assign({},modeData,_input);
let cacheData = {};
let _cache = {};
for(let key in _data){
_data[key].forEach(function(name){
if(typeof _cache[name]=='undefined'){
_cache[name] = [];
for(let key in _hash){
_hash[key].forEach(function(name){
if(typeof cacheData[name]=='undefined'){
cacheData[name] = [];
}
_cache[name].push(key);
cacheData[name].push(key);
});
}
export default _cache;
export {cacheData};

View File

@@ -5,7 +5,7 @@ import _pair from './data/pair';
import {number2zh} from './unit';
import {selector2id} from './selector';
import {modeData as _data} from './mode';
import {modeData} from './mode';
// 逆转ID
export function reverseId(id,sex){
@@ -87,17 +87,17 @@ export function getItemsById(id){
let items = [];
let getData = function(key){
let ids = [];
if(_data[key]){
if(modeData[key]){
let k1 = key.replace(/(,[sd])(,[wh])?$/,'$1&o$2');
let k2 = key.replace(/(,[sd])(,[wh])?$/,'$1&l$2');
if(_data[k1]&&_data[k2]){
if(modeData[k1]&&modeData[k2]){
ids = [k1,k2];
}else{
ids = [key];
}
}
return filterId(ids).map(function(id){
return _data[id][0];
return modeData[id][0];
});
};
// 对排序进行处理
@@ -105,20 +105,20 @@ export function getItemsById(id){
let num = id.match(/&([\d]+)(,[hw])?$/)[1];
let zh = number2zh(num);
id = id.replace(/&\d+/g,'');
if(_data[id]){
if(modeData[id]){
let item = '';
let gen = getGenById(id);
if(gen<3&&!id.match(/[hw],/)){
_data[id].forEach(function(name){
modeData[id].forEach(function(name){
if(!item&&name.includes('几')){
item = name.replace('几',zh);
}
});
if(!item){
item = _data[id][0].match(/^[大小]/)?_data[id][0].replace(/^[大小]/,zh):zh+_data[id][0];
item = modeData[id][0].match(/^[大小]/)?modeData[id][0].replace(/^[大小]/,zh):zh+modeData[id][0];
}
}else{
item = _data[id][0]
item = modeData[id][0]
}
items.push(item);
}
@@ -149,7 +149,7 @@ export function getItemsById(id){
};
// 通过ID获取关系链
let data = Object.assign({},_data,{
let data = Object.assign({},modeData,{
'xb':['兄弟'],
'xs':['姐妹']
});

View File

@@ -6,9 +6,7 @@ import _branch from './data/branch';
import _main from './data/main';
import _multipie from './data/multiple';
import {
expandSelector
} from './selector';
import {expandSelector} from './selector';
let _map = Object.assign({},_multipie);
let getMap = function(prefixMap,branch){

View File

@@ -4,7 +4,7 @@
import _map from './map';
let _mode = {}; // 模式缓存
let _data = Object.assign({},_map); // 最终数据
let modeData = Object.assign({},_map); // 最终数据
// 设置模式数据
export function setModeData(sign,data){
@@ -13,13 +13,13 @@ export function setModeData(sign,data){
// 获取模式数据
export function getModeData(sign){
_data = Object.assign({},_map);
modeData = Object.assign({},_map);
if(sign&&_mode[sign]){
for(let key in _mode[sign]){
_data[key] = [].concat(_mode[sign][key],_map[key]||[]);
modeData[key] = [].concat(_mode[sign][key],_map[key]||[]);
}
}
return _data;
return modeData;
};
export {_data as modeData};
export {modeData};

View File

@@ -7,7 +7,7 @@ import _similar from './rule/similar';
import {zh2number} from './unit';
import {reverseId,filterId,getGenById} from './id';
import _cache from './cache';
import {cacheData} from './cache';
// 获得最简
let getOptimal = function(options){
@@ -128,7 +128,7 @@ export function getSelectors(str){
let r_name = name.replace(match[0],'');
let num = zh2number(match[0]);
[x_name,r_name,name].forEach(function(name,index){
let ids = _cache[name];
let ids = cacheData[name];
if(ids&&ids.length){
ids.forEach(function(i){
let id = i.replace(/(,[hw])$/,'&'+num+'$1').replace(/([^hw]+)$/,'$1&'+num);
@@ -139,7 +139,7 @@ export function getSelectors(str){
}
});
}
items = items.concat(_cache[name]||[]);
items = items.concat(cacheData[name]||[]);
});
// console.log('[keywords]',keywords);
// 如找不到结果,再是否存在称呼的排行问题(不直接判断,因存在"大舅""三从父兄""三世祖"这样特俗含义的情况)

View File

@@ -3,8 +3,6 @@ import {getSelectors,mergeSelector,selector2id} from './module/selector';
import {reverseId,getItemsById,getChainById,getPairsById} from './module/id';
import {setModeData,getModeData,modeData} from './module/mode';
let _data = modeData;
// 对外方法
let relationship = function (parameter){
if(typeof parameter =='string'){
@@ -19,7 +17,9 @@ let relationship = function (parameter){
mode:'default', // 模式选择使用setMode方法定制不同地区模式在此选择自定义模式
optimal:false // 最短关系:计算两者之间的最短关系
},parameter);
_data = getModeData(options.mode);
// 切换模式
getModeData(options.mode);
let from_selectors = getSelectors(options.text);
let to_selectors = getSelectors(options.target);
if(!to_selectors.length){
@@ -80,9 +80,9 @@ let relationship = function (parameter){
};
// 获取数据表
relationship.data = _data;
relationship.data = modeData;
// 获取数据量
relationship.dataCount = Object.keys(_data).length;
relationship.dataCount = Object.keys(modeData).length;
// 设置语言模式
relationship.setMode = setModeData;