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