You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
2.9 KiB
132 lines
2.9 KiB
12 months ago
|
// | ------------------------------------------------------------
|
||
|
// | @版本: version 0.1
|
||
|
// | @创建人: 【Nie-x7129】
|
||
|
// | @E-mail: x71291@outlook.com
|
||
|
// | @所在项目: graphResource2
|
||
|
// | @文件描述: makeClass.js -
|
||
|
// | @创建时间: 2023-12-03 16:41
|
||
|
// | @更新时间: 2023-12-03 16:41
|
||
|
// | @修改记录:
|
||
|
// | -*-*-*- (时间--修改人--修改说明) -*-*-*-
|
||
|
// | =
|
||
|
// | ------------------------------------------------------------
|
||
|
|
||
|
|
||
|
const obj = {
|
||
|
id: 1,
|
||
|
name: '何希',
|
||
|
age: 25
|
||
|
}
|
||
|
|
||
|
const f1 = {
|
||
|
id: 2,
|
||
|
name: '何希的妈妈',
|
||
|
age: 45
|
||
|
}
|
||
|
|
||
|
const f2 = {
|
||
|
id: 3,
|
||
|
name: '何希的爸爸',
|
||
|
age: 45
|
||
|
}
|
||
|
|
||
|
class resourceClass{
|
||
|
baseInfo;
|
||
|
expandInfo;
|
||
|
fatherObject = {}
|
||
|
constructor(baseInfo, expandInfo = {}) {
|
||
|
this.baseInfo = baseInfo;
|
||
|
this.expandInfo = expandInfo
|
||
|
}
|
||
|
addFather(obj){
|
||
|
this.fatherObject[obj.id] = obj
|
||
|
}
|
||
|
delFather(obj){
|
||
|
delete this.fatherObject[obj.id]
|
||
|
}
|
||
|
get baseInfo(){
|
||
|
return this.baseInfo
|
||
|
}
|
||
|
get expandInfo(){
|
||
|
return this.expandInfo
|
||
|
}
|
||
|
get fatherId(){
|
||
|
return Object.keys(this.fatherObject)
|
||
|
}
|
||
|
get fatherObj(){
|
||
|
return this.fatherObj
|
||
|
}
|
||
|
get fatherList(){
|
||
|
return Object.keys(this.fatherObj).map(i => this.fatherObject[i])
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function makeClass(obj1, obj2 = {}){
|
||
|
return new resourceClass(obj1, obj2)
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
const R1 = makeClass(obj);
|
||
|
const R2 = makeClass(obj);
|
||
|
|
||
|
obj.age++
|
||
|
|
||
|
console.log(R1.baseInfo)
|
||
|
console.log(R1)
|
||
|
console.log(R2.baseInfo)
|
||
|
|
||
|
|
||
|
|
||
|
const resourceCache = {
|
||
|
// 基础数据库信息
|
||
|
baseData:{
|
||
|
// 基础资源类信息
|
||
|
resourceClassList: [],
|
||
|
resourceClassObject:{},
|
||
|
// 拓展资源类信息
|
||
|
resourceClassExpandFieldList: [],
|
||
|
resourceClassExpandFieldObject: {},
|
||
|
// 实体字段信息
|
||
|
resourceEntityStructList: [],
|
||
|
resourceEntityStructObject: {},
|
||
|
// 资源实体信息
|
||
|
resourceEntityList: [],
|
||
|
resourceEntityObject: {},
|
||
|
// 资源类关系信息
|
||
|
resourceClassRelationList: [],
|
||
|
resourceClassRelationObject: {}
|
||
|
},
|
||
|
// 合成资源信息,计算数据
|
||
|
computedData:{
|
||
|
// 资源类完整数据 - 继承于baseData-resourceClassObject
|
||
|
resourceClassObject: {
|
||
|
resourceClassId: {
|
||
|
// 基础资源类信息,查找字典值
|
||
|
baseClassData: {
|
||
|
|
||
|
},
|
||
|
// 拓展资源类信息,查找字典值
|
||
|
expandClassData:{
|
||
|
|
||
|
},
|
||
|
// 资源实体结构转化为对象格式
|
||
|
entityStructData:{
|
||
|
|
||
|
},
|
||
|
// 资源类的父节点,及其关联下的子节点
|
||
|
relationClass:{
|
||
|
fatherId:['childId']
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
// 资源关联信息
|
||
|
relationData:{}
|
||
|
}
|
||
|
|
||
|
// 第一步加载数据库数据
|
||
|
|
||
|
|
||
|
|