parent
82191217de
commit
b9b7408f13
@ -0,0 +1,6 @@ |
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project version="4"> |
||||
<component name="VcsDirectoryMappings"> |
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" /> |
||||
</component> |
||||
</project> |
@ -0,0 +1,353 @@ |
||||
// | ------------------------------------------------------------
|
||||
// | @版本: version 0.1
|
||||
// | @创建人: 【Nie-x7129】
|
||||
// | @E-mail: x71291@outlook.com
|
||||
// | @所在项目: graphResource2
|
||||
// | @文件描述: initData.js -
|
||||
// | @创建时间: 2023-12-02 15:02
|
||||
// | @更新时间: 2023-12-02 15:02
|
||||
// | @修改记录:
|
||||
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
||||
// | =
|
||||
// | ------------------------------------------------------------
|
||||
|
||||
// @ 运维资源类的类型字典
|
||||
const OMResourceType = [ |
||||
{ |
||||
baseDictId: 1, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '运维资源类型', |
||||
baseDictDescribe: '在运维系统上使用的资源类用途定义,资源类和备件类', |
||||
baseDictFather: 0, |
||||
}, |
||||
{ |
||||
baseDictId: 2, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '资源类型', |
||||
baseDictDescribe: '在广义上有ID区分自身的资源', |
||||
baseDictFather: 1, |
||||
}, |
||||
{ |
||||
baseDictId: 3, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '备件类行', |
||||
baseDictDescribe: '在广义上没有ID进行区分的资源', |
||||
baseDictFather: 1, |
||||
} |
||||
] |
||||
// @ 单位
|
||||
const UnitType = [ |
||||
{ |
||||
baseDictId: 11, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '数据单位', |
||||
baseDictDescribe: '对资源在物理上的统一衡量区分', |
||||
baseDictFather: 0, |
||||
}, |
||||
{ |
||||
baseDictId: 12, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '长度单位', |
||||
baseDictDescribe: '对资源在长度上的统一衡量区分', |
||||
baseDictFather: 11, |
||||
}, |
||||
{ |
||||
baseDictId: 13, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '米', |
||||
baseDictIdentify: 'm', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 14, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '厘米', |
||||
baseDictIdentify: 'cm', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 15, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '千米', |
||||
baseDictIdentify: 'km', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 16, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '毫米', |
||||
baseDictIdentify: 'mm', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 17, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '英寸', |
||||
baseDictIdentify: 'inch', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 18, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '英尺', |
||||
baseDictIdentify: 'ft', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 19, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '英里', |
||||
baseDictIdentify: 'mile', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 12, |
||||
}, |
||||
{ |
||||
baseDictId: 20, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '面积单位', |
||||
baseDictDescribe: '对资源在平面上的统一衡量区分', |
||||
baseDictFather: 11, |
||||
}, |
||||
{ |
||||
baseDictId: 21, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '平方米', |
||||
baseDictIdentify: 'm²', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 22, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '平方厘米', |
||||
baseDictIdentify: 'cm²', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 23, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '平方毫米', |
||||
baseDictIdentify: 'mm²', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 24, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '平方千米', |
||||
baseDictIdentify: 'km²', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 26, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '英亩', |
||||
baseDictIdentify: 'acre', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 27, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '公顷', |
||||
baseDictIdentify: 'ha', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 28, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '亩', |
||||
baseDictIdentify: 'are', |
||||
baseDictDescribe: '', |
||||
baseDictFather: 20, |
||||
}, |
||||
{ |
||||
baseDictId: 29, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '重量单位', |
||||
baseDictDescribe: '对资源在质量上的统一衡量区分', |
||||
baseDictFather: 11, |
||||
}, |
||||
{ |
||||
baseDictId: 30, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '千克', |
||||
baseDictIdentify: 'kg', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 31, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '毫克', |
||||
baseDictIdentify: 'mg', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 32, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '克', |
||||
baseDictIdentify: 'g', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 33, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '盎司', |
||||
baseDictIdentify: 'oz', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 34, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '磅', |
||||
baseDictIdentify: 'lb', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 35, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '斤', |
||||
baseDictIdentify: '', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 36, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '公斤', |
||||
baseDictIdentify: 'kg', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 29, |
||||
}, |
||||
{ |
||||
baseDictId: 37, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '时间单位', |
||||
baseDictDescribe: '在时间上的统一衡量', |
||||
baseDictFather: 11, |
||||
}, |
||||
{ |
||||
baseDictId: 38, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '秒', |
||||
baseDictIdentify: 's', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 39, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '分', |
||||
baseDictIdentify: 'min', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 40, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '时', |
||||
baseDictIdentify: 'h', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 41, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '天', |
||||
baseDictIdentify: 'd', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 42, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '周', |
||||
baseDictIdentify: 'week', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 43, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '月', |
||||
baseDictIdentify: 'month', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 44, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '年', |
||||
baseDictIdentify: 'year', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
{ |
||||
baseDictId: 45, |
||||
baseDictIsBase: 1, |
||||
baseDictOriginType: 0, |
||||
baseDictName: '毫秒', |
||||
baseDictIdentify: 'ms', |
||||
baseDictDescribe: ' ', |
||||
baseDictFather: 37, |
||||
}, |
||||
] |
||||
|
||||
|
||||
|
||||
export default function initData(sequelize){ |
||||
sequelize.models.BaseDict.bulkCreate(OMResourceType, { ignoreDuplicates: true }) |
||||
sequelize.models.BaseDict.bulkCreate(UnitType, { ignoreDuplicates: true }) |
||||
} |
||||
|
||||
|
@ -0,0 +1,87 @@ |
||||
// | ------------------------------------------------------------
|
||||
// | @版本: version 0.1
|
||||
// | @创建人: 【Nie-x7129】
|
||||
// | @E-mail: x71291@outlook.com
|
||||
// | @所在项目: graphResource2
|
||||
// | @文件描述: binarySearch.js - 二分法根据蓄力ID查找对象数组元素
|
||||
// | @创建时间: 2023-12-02 12:00
|
||||
// | @更新时间: 2023-12-02 12:00
|
||||
// | @修改记录:
|
||||
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
||||
// | =
|
||||
// | ------------------------------------------------------------
|
||||
|
||||
export default function binarySearch(arr, id, att) { |
||||
let bi = 0, ai = arr.length -1; |
||||
if(!Object.keys(arr[0]).includes(att)){ |
||||
throw new Error('不存在属性', att) |
||||
} |
||||
while (bi <= ai){ |
||||
const mi = Math.floor((bi + ai)/2); |
||||
const miId = arr[mi][att] |
||||
if(miId === id){ |
||||
return mi |
||||
}else if(miId < id){ |
||||
bi = mi + 1 |
||||
}else{ |
||||
ai = mi -1 |
||||
} |
||||
} |
||||
return -1 |
||||
} |
||||
|
||||
|
||||
function getIndexForWhile(list, id, att){ |
||||
let i = 0 |
||||
while (i < list.length){ |
||||
if (list[i][att] == id) { |
||||
return i |
||||
} |
||||
i++ |
||||
} |
||||
return -1 |
||||
} |
||||
|
||||
function getIndexForFor(list, id, att){ |
||||
for(let i =0; i< list.length;i++){ |
||||
if (list[i][att] == id) { |
||||
return i |
||||
} |
||||
} |
||||
return -1 |
||||
} |
||||
|
||||
|
||||
function getIndexForForIn(list, id, att){ |
||||
for(let i in list){ |
||||
if (list[i][att] == id) { |
||||
return i |
||||
} |
||||
} |
||||
return -1 |
||||
} |
||||
// const list = [];
|
||||
//
|
||||
// let i = 300;
|
||||
//
|
||||
// for (let j = 0; j < 200000; j++) {
|
||||
// list[j] = { id: j + i };
|
||||
// }
|
||||
// console.time('binarySearch');
|
||||
// let id = 200000;
|
||||
// const i1 = binarySearch(list, id, 'id');
|
||||
// console.timeEnd('binarySearch');
|
||||
//
|
||||
// console.time('getIndexForWhile');
|
||||
// const i2 = getIndexForWhile(list,id, 'id')
|
||||
// console.timeEnd('getIndexForWhile');
|
||||
//
|
||||
// console.time('getIndexForFor')
|
||||
// const i3 = getIndexForFor(list, id, 'id')
|
||||
// console.timeEnd('getIndexForFor')
|
||||
//
|
||||
// console.time('getIndexForForIn')
|
||||
// const i4 = getIndexForForIn(list, id, 'id')
|
||||
// console.timeEnd('getIndexForForIn')
|
||||
//
|
||||
// console.log(i1, i2, i3, i4)
|
@ -0,0 +1,30 @@ |
||||
// | ------------------------------------------------------------
|
||||
// | @版本: version 0.1
|
||||
// | @创建人: 【Nie-x7129】
|
||||
// | @E-mail: x71291@outlook.com
|
||||
// | @所在项目: graphResource2
|
||||
// | @文件描述: makeList.js -
|
||||
// | @创建时间: 2023-12-02 17:00
|
||||
// | @更新时间: 2023-12-02 17:00
|
||||
// | @修改记录:
|
||||
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
||||
// | =
|
||||
// | ------------------------------------------------------------
|
||||
|
||||
export default function makeList(tree, childrenField = 'children'){ |
||||
const arr = getChildren(list, childrenField) |
||||
const setObj = new Set(arr) |
||||
return Array.from(setObj) |
||||
} |
||||
|
||||
function getChildren(list, childrenField){ |
||||
let arr = [] |
||||
for(let i = 0; i < list.length; i++){ |
||||
if(list[i][childrenField] && list[i][childrenField].length > 0){ |
||||
arr = [...arr, ...getChildren(list[i][childrenField], childrenField)] |
||||
}else{ |
||||
arr.push(list[i]) |
||||
} |
||||
} |
||||
return arr |
||||
} |
@ -0,0 +1,23 @@ |
||||
// | ------------------------------------------------------------
|
||||
// | @版本: version 0.1
|
||||
// | @创建人: 【Nie-x7129】
|
||||
// | @E-mail: x71291@outlook.com
|
||||
// | @所在项目: graphResource2
|
||||
// | @文件描述: makeObject.js - 制造对象
|
||||
// | @创建时间: 2023-12-02 16:41
|
||||
// | @更新时间: 2023-12-02 16:41
|
||||
// | @修改记录:
|
||||
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
||||
// | =
|
||||
// | ------------------------------------------------------------
|
||||
|
||||
export default function makeObject(list, idField, hasChildren = false){ |
||||
const newObject = {}; |
||||
for(let i = 0; i < list.length; i++){ |
||||
if(hasChildren){ |
||||
list[i].children = []; |
||||
newObject[list[i][idField]] = list[i] |
||||
} |
||||
} |
||||
return newObject |
||||
} |
@ -0,0 +1,37 @@ |
||||
// | ------------------------------------------------------------
|
||||
// | @版本: version 0.1
|
||||
// | @创建人: 【Nie-x7129】
|
||||
// | @E-mail: x71291@outlook.com
|
||||
// | @所在项目: graphResource2
|
||||
// | @文件描述: makeTree.js - 生成树
|
||||
// | @创建时间: 2023-12-02 15:45
|
||||
// | @更新时间: 2023-12-02 15:45
|
||||
// | @修改记录:
|
||||
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
||||
// | =
|
||||
// | ------------------------------------------------------------
|
||||
|
||||
|
||||
export function makeTreeForList(list, object, referField, fatherField, hasDelete = true){ |
||||
if(!Object.keys(object).includes('0')){ |
||||
object['0'] = { |
||||
children: [] |
||||
} |
||||
} |
||||
for(let i = 0; i < list.length; i++){ |
||||
const fatherId = list[i][fatherField]; |
||||
if(list[i].isDelete && !hasDelete){ |
||||
continue |
||||
} |
||||
if(!fatherId){ |
||||
object['0'].children.push(list[i]) |
||||
continue |
||||
} |
||||
if(!object[fatherId].children){ |
||||
object[fatherId].children = [] |
||||
} |
||||
object[fatherId].children.push(list[i]) |
||||
} |
||||
return object['0'].children |
||||
} |
||||
|
Loading…
Reference in new issue