过滤数组某元素
//过滤集合元素
/* list要过滤的数组
* key1监控的对象
* value监控对象匹配的值
* key2返回的对象,无则返回全部数组
*/
function setfilter(list, key1, value, key2) {
var data = list.filter(function (item) {
return item[key1] == value;
})
var list = [];
if (!!key2) {
// data.forEach(e => {
// list.push(e[key2]);
// })
data.forEach(function (e) {
list.push(e[key2]);
});
return list;
} else {
return data;
}
}
向一个对象数组里面添加新的属性
var arry= [{a:11,b:22,c:33,d:44},{a:11,b:0,c:0,d:44},{a:11,b:22,c:99,d:99}];
var arry2=[];
arry.map(((item, index)=> {
arry2.push(Object.assign({},item,{mess1:item.c,mess2:item.d}))
}))
console.log(arry2);
/**判断文本字符串长度是否超出length,超出则截取返回
* @param text 文本内容
* @param length 预设长度
*/
Vue.prototype.doTextMore = function (text, length) {
var ss = [];
if (text.length > length) {
ss.push(text.substring(0, length));
ss.push(true);
} else {
ss.push(text);
ss.push(false);
}
return ss;
}
/**
* 根据路由获取查询视图的名称
*/
Vue.prototype.getQueryDbByRoute = function (route) {
if (route.query && route.query.dbCode) {
return route.query.dbCode;
} else {
var path = route.path;
if (path.indexOf('/paper') > -1) {
return 'CLKT';
} else if (path.indexOf('/case') > -1) {
return 'CLKCTOTAL';
} else if (path.indexOf('/law') > -1) {
return 'CLKLK';
} else {
return 'CLKDTOTAL';
}
}
},
/* @param 去除字符串中的“;”与“,”与“、”并转换为数组形式
* @param text 文本内容
*/
Vue.prototype.doOutSymbol = function (text) {
var ss = [];
text = text.replace(/:/g, ";");
text = text.replace(/;;/g, ";");
text = text.replace(/,/g, ";");
text = text.replace(/、/g, ";");
ss = text.split(';');
return ss;
}
/* @param 去除数组重复项
* @param arr 数组
*/
Vue.prototype.removeDuplication = function (arr) {
var hash=[];
for(var i=0;i<arr.length;i++){
if(hash.indexOf(arr[i]==-1)){
hash.push(arr[i]);
}
}
return hash
}
/**
* 根据数组内元素的长度分组,并将长度作为新数组返回
* @ arry 输入的数组
* @ arry1 新建的数组
*/
Vue.prototype.getTreeNumLong = function(arry){
var arry1=[];
for(var j=0;j<arry.length;j++){
arry1.push(arry[j].length);
}
arry1=[...new Set(arry1)];
return arry1;
}
/**
* 深克隆方法
* @ obj 输入的对象
* @ newobj 新建的对象
*/
Vue.prototype.deepClone = function(obj){
if(obj === null) return null;
if(obj.constructor !== 'object') return obj;
if(obj.constructor === Date) return new Date(obj);
if(obj.constructor === RegExp) return new RegExp(obj);
var newObj = new obj.constructor(); //保持继承的原型
for(var key in obj){
if(obj.hasOwnProperty(key)){
var val = obj[key];
newObj[key] = typeof val === 'object' ? arguments.callee(val):val;
}
}
return newObj;
}
import { API } from '@/api/kwebApi.js'
var api = API.getApi('clkd', 'gb');
import { QueryModel } from "@/common/js/QueryModel";
const staticdata= {
base:{
baseInfo : [
{ name: "中国法律知识资源总库论文库_期刊", tablename: "CLKJTOTAL" },
{ name: "中国法律知识资源总库论文库_博士论文", tablename: "CLKBTOTAL" },
{ name: "中国法律知识资源总库论文库_硕士论文", tablename: "CLKMTOTAL" },
{ name: "中国法律知识资源总库论文库_报纸", tablename: "CLKNTOTAL" },
{ name: "中国法律知识资源总库论文库_会议", tablename: "CLKPTOTAL" },
{ name: "中国法律知识资源总库案例库", tablename: "CLKCTOTAL" },
{ name: "中国法律知识资源总库大陆法规库(篇)", tablename: "CLKLKLAST" }
],
infoSearchBox1:[
{searchOptions: [
{ name: "主题", value: "subject" },
{ name: "关键词", value: "keyword" },
{ name: "摘要", value: "abstarct" },
{ name: "作者", value: "author" },
{ name: "单位", value: "org" },
{ name: "全文", value: "content" },
],},
],
//关联项查询的字段名称
queryField :{
key:['keyWordQKGL','keyWordQKGL','keyWordQKGL','keyWordQKGL','keyWordQKGL','keyWordQK','keyWordQK'],
org:['searchOrg','searchOrgSchool','searchOrgSchool','searchOrg','searchOrgAuthor','searchOrgSLFY','searchOrgPub'],
judge:['author','author','author','','','FG',''],
zcwer:['author','author','author','','','ZCY',''],
lawer:['author','author','author','','','LS',''],
laworg:['','','','','','SWS',''],
dsr:['','','','','','DSR',''],
author:['authorQK','authorQK','authorQK','authorQK','authorQK','',''],
}
},
//查询语句的数据集
/***
* 根据下面的集合和方法生成queryModel,再返回到vue组件中使用,再此修改时只需要在对象中配置修改的参数即可
*/
searchData:{
demo:{//法律依据查询
table:'CLKLKLAST',
page:{pagIndex:1,pageSize:3},//有分页——没有分组
group:null,//有分组——没有分页group:{name:'',max:'0',topcount:'0'}分组条件,最大显示数,查询条数限制
order:{name:'pubDate',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'entryCode',value:['la201709150041Y023','la201709150041Y052','la201709150041Y065','la201709150041Y067','la201709150041Y347']}
},
{ groupRelation:"and",
groupValue:{name:'TMF',value:['Y']}
},
]
},
// 相关案例(论文库)
dataXGAL_J:{
table:'CLKCTOTAL',
page:{pagIndex:1,pageSize:10},//有分页——没有分组
order:{name:'PTString',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'keyWordQK',value:[1]}
},
]
},
// 相关法规(论文库)
dataXGFGgroup_J:{
table:'CLKL',
group:{name:'effcetGrade',max:'0',topcount:'0'},
order:{name:'PTString',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'cnKeyWord',value:[1]}
},
]
},
//案例库的法律依据(案例库)
dataFLYJ_C:{
table:'CLKLKLAST',
page:{pagIndex:1,pageSize:5},//有分页——没有分组
order:{name:'pubDate',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'entryCode',value:[1]}
},
{ groupRelation:"and",
groupValue:{name:'TMF',value:[1]}
},
]
},
// 同法律法规的案例
dataFLYJAL_C:{
table:'CLKCTOTAL',
page:{pagIndex:1,pageSize:5},//有分页——没有分组
order:{name:'PTString',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'citationLaws',value:[1]}
},
{ groupRelation:"and",
groupValue:{name:'caseCode',value:[1]}
},
{ groupRelation:"not",
groupValue:{name:'citationLaws',value:[1]}
},
{ groupRelation:"not",
groupValue:{name:'FileName',value:[1]}
},
]
},
//相关案件
dataXGAJ_C:{
table:'CLKCTOTAL',
page:{pagIndex:1,pageSize:5},//有分页——没有分组
order:{name:'PTString',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'otherKeyword',value:[1]}
},
{ groupRelation:"not",
groupValue:{name:'caseCode',value:[1]}
},
]
},
//本案文书
dataBAWS_C:{
table:'CLKCTOTAL',
page:{pagIndex:1,pageSize:5},//有分页——没有分组
order:{name:'PTString',relation:'desc'},
selectList:[
{ groupRelation:"and",
groupValue:{name:'codeNumber',value:[1]}
},
]
},
}
}
/**
* @param sql查询:IndexSearch
* @param table 表名
* @param selectList 查询条件数组:
* groupValue:{name:''查询的字段
* value:''查询匹配的值
* relation:''查询的关系:and,or,not
* }
* groupRelation:{关系}
* @param order 查询排序
* {name:''查询的字段
* relation:''查询的关系:asc/desc
* }
* table,pagIndex1,pageSize1,order,selectList
*/
const buildQueryModel= function (DATA){
var query =new QueryModel();
query.tableRank(DATA.table);
for(var i=0;i<DATA.selectList.length;i++){
query.newSrchGroup(DATA.selectList[i].groupRelation);
for(var j=0; j<DATA.selectList[i].groupValue.value.length; j++){
query.newSrchItem(DATA.selectList[i].groupValue.name,DATA.selectList[i].groupValue.value[j],'or');
}
}
if(DATA.order!=null){
query.orderField(DATA.order.name,DATA.order.relation);
}
if(DATA.group!=null){
query.groupField(DATA.group.name,DATA.group.max,DATA.group.topcount);
}
if(DATA.page!=null){
var queryModel = {
query: query.toJson(),
pageIndex: DATA.page.pagIndex,
pageSize: DATA.page.pageSize,
};
}
else{
var queryModel = {
query: query.toJson(),
};
}
return queryModel;
}
const kbaseANDSql = function (list) {
var arr=list;
var str="";
for (var j=0;j<arr.length-1;j++){
var ss="";
if(j==0){
var ss="\'"+arr[j]+"\'"
}
else{
var ss="\*\'"+arr[j]+"\'"
}
str+=ss;
}
return str;
}
const kbaseNOTSql = function (list) {
var arr=list;
var str="";
for (var j=0;j<arr.length-1;j++){
var ss="";
if(j==0){
var ss=arr[j]+"\'"
}
else if(j==arr.length-1){
var ss="\+\'"+arr[j]
}
else{
var ss="\+\'"+arr[j]+"\'"
}
str+=ss;
alert(str)
}
return str;
}
/**
* @param 截取文献导航子代码,并返回数组
* @param str 要截取的字符串,若为‘521’时返回:“[5,52,521]”
*/
const getSonOfDH =function(str){
var le=str.length;
var str2="";
var arr1=[];
for (var j=0;j<le;j++){
str2=str.substring(0,j+1);
arr1.push(str2);
}
return arr1;
}
/**
* @param 截取文献导航子代码,并返回数组
* @param str 要截取的字符串,若为‘521’时返回:“[5,52,521]”
*/
const getNum =function(str){
var le=str.length;
var str2="";
var arr1=[];
for (var j=0;j<le;j++){
str2=str.substring(0,j+1);
arr1.push(str2);
}
return arr1;
}
/**
* @param 获取专题字段数据
* @param v 文本内容:queryModel查询的数组数据
* @param i 判断数据类型,0-6:期刊;博士;硕士;报纸;会议;案例;法规(篇)
* @param count 显示多少条数据
*/
const reGetData = function (v,i) {
var arryData=[];
function arryChange(param,i){
var obj={};
if(i==0){
obj.type ='[J]';
obj.month = param.month;
obj.year = param.year+'年';
obj.author = param.author;
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==1){
obj.type ='[D]';
obj.year = param.year+'年';
obj.author = param.author;
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==2){
obj.type ='[M]';
obj.year = param.year+'年';
obj.author = param.author;
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==3){
obj.type ='[N]';
obj.author = param.author;
obj.month = param.month;
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==4){
obj.type ='[P]';
obj.author = param.author;
obj.year = param.year+'年';
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==5){
obj.type ='[C]';
obj.author = param.org;
obj.year = param.refereeDate;
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==6){
obj.type ='[L]';
obj.author = param.org;
obj.year = param.publishDate;
obj.title = param.title;
obj.org = param.org;
obj.source =param.source;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
if(i==7){
obj.type ='[Z]';
obj.author = param.org;
obj.title = param.title;
obj.year = param.publishDate;
obj.fileName = param.fileName;
obj.sourceDB = param.sourceDB;
}
return obj;
}
for(var prop in v) {
arryData.push(arryChange(v[prop],i));
}
return arryData;
}
/**分页数据缓存设计
* 到达功能:
* 刷新页面,调用分页的数据,当页面执行过,则调用缓存内的数据并显示,当页面没有执行过,则生成json,并调用api,查询数据,并将数据放入缓存区保存。
* 注意问题:
* 因为调用共有组件,需要对具体哪个值设key,在执行时需要做判断,
* 缓存设置,需要对缓存空间,缓存条数进行判断,更新变动(放到本地内),
* 缓存数据针对当前用户,当前电脑,可看到的数据所以需要设置(放到本地内),
*
* 现分页的缓存设计(把缓存的数据搁置在本页面内的内存内,调用共有方法,存储其中,刷新后数据置空)
*
*/
const pageShow= function (PAGE,DATA){
var cache =DATA[PAGE];
if(!cache){
return 'false';
}
else {
return cache;
}
}
const pageShowGroup= function (PAGE,DATA,NAME){
var cache={};
// cache[NAME]=PAGE[DATA];
// alert(JSON.stringify(cache[NAME]))
if(!cache[NAME]){
return 'false';
}
else {
return cache;
}
}
//构建嵌套集合
const buildPageCache = function (NAME,DATA,PAGE){
var goodlistArr = [];
var item = new Object();
item[NAME] = {};
item[NAME].page=PAGE;
item[NAME].data=DATA;
goodlistArr.push(item);
return item;
}
const putNewElement =function (DATA,TYPE,VALUE){
}
export {
staticdata,
test,
reGetData,
madeQueryModel,
madeQueryModelGroup,
kbaseNOTSql,
kbaseANDSql,
buildQueryModel,
getSonOfDH,
getNum,
pageShow,
pageShowGroup,
buildPageCache
}
/**
* 页面是否缓存判断,放在调用查询方法前面
* thisDATA:缓存数据总集合
* PAGE:分页组件返回的当前页值
* NAME:定义的使用分页组件的该模块ID
* 判断缓存thisDATA中是否含有名为NAME的PAGE当前页缓存
* 存在则返回缓存区的数据
* 不存在则返回空*/
const pageCacheShow= function (thisDATA,PAGE,NAME){
var cache={};
if(thisDATA[NAME]){
cache=thisDATA[NAME];
if(cache[PAGE]){
return cache[PAGE];
}
else{
return 'false';
}
}
else {
return 'false';
}
}
/** 构建嵌套集合
* DATA:api获取到的数据
* PAGE:当前页值
* NAME:定义的使用分页组件的该模块ID
* 放入查询出的数据后,把数据缓存,返回缓存集合
* thisDATA:缓存已有的数据
*/
const buildPageCache = function (DATA,PAGE,NAME,thisDATA){
var item = new Object(),map =new Object();
if(thisDATA[NAME]){
item[PAGE]=DATA;
Object.assign(item,thisDATA[NAME]); //将两组集合对象融合在一起
}
else{
item[PAGE]=DATA;
}
map[NAME]=item;
Object.assign(thisDATA,map);
return thisDATA;
}
//往数组内加入新的元素
/***
*
*/
const putNewElement = function (DATA,ELEMENTVNAME,ELEMENTVALUE){
var thisitem1 = new Object();
thisitem1[ELEMENTVNAME]=ELEMENTVALUE;
var thisarry=[];
DATA.map(((items)=> {
thisarry.push(Object.assign({},items,thisitem1))
}))
return thisarry;
}
网友评论