Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bigDataSystem
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张伯涛
bigDataSystem
Commits
0245164b
Commit
0245164b
authored
Dec 10, 2024
by
曹泽华
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
数据治理-物理模型
parent
ba790566
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
301 additions
and
29 deletions
+301
-29
asset.data.ts
...ing/physicalModel/modelDetail/assetRelation/asset.data.ts
+27
-0
assetData.ts
...ning/physicalModel/modelDetail/assetRelation/assetData.ts
+38
-0
assetER.vue
...nning/physicalModel/modelDetail/assetRelation/assetER.vue
+153
-3
editHistory.vue
...g/physicalModel/modelDetail/assetRelation/editHistory.vue
+16
-2
index.vue
...lanning/physicalModel/modelDetail/assetRelation/index.vue
+62
-20
uploadData.ts
.../dataWarehousePlanning/physicalModel/upload/uploadData.ts
+5
-4
No files found.
src/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/asset.data.ts
View file @
0245164b
...
@@ -87,3 +87,30 @@ export const entityFormSchema: FormSchema[] = [
...
@@ -87,3 +87,30 @@ export const entityFormSchema: FormSchema[] = [
renderComponentContent
:
'仅显示我的导入'
,
renderComponentContent
:
'仅显示我的导入'
,
},
},
];
];
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'工作表名'
,
dataIndex
:
'name'
,
width
:
120
,
},
{
title
:
'编号'
,
dataIndex
:
'code'
,
width
:
120
,
},
{
title
:
'错误类型'
,
dataIndex
:
'type'
,
width
:
120
,
},
];
export
const
formSchema
:
FormSchema
[]
=
[
{
field
:
'file'
,
label
:
'血缘编辑文件'
,
slot
:
'file'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
src/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/assetData.ts
View file @
0245164b
...
@@ -7,3 +7,41 @@ export const entityData: any[] = [
...
@@ -7,3 +7,41 @@ export const entityData: any[] = [
importStatus
:
'失败(0/13)'
,
importStatus
:
'失败(0/13)'
,
},
},
];
];
export
const
editData
:
any
[]
=
[
{
name
:
'Sheet0'
,
code
:
'C2'
,
type
:
'数据源不存在'
,
},
{
name
:
'Sheet1'
,
code
:
'C3'
,
type
:
'数据源不存在'
,
},
{
name
:
'Sheet2'
,
code
:
'C4'
,
type
:
'数据源不存在'
,
},
{
name
:
'Sheet3'
,
code
:
'C5'
,
type
:
'数据源不存在'
,
},
{
name
:
'Sheet4'
,
code
:
'C6'
,
type
:
'数据源不存在'
,
},
{
name
:
'Sheet5'
,
code
:
'C7'
,
type
:
'数据源不存在'
,
},
{
name
:
'Sheet6'
,
code
:
'C8'
,
type
:
'数据源不存在'
,
},
];
src/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/assetER.vue
View file @
0245164b
...
@@ -6,7 +6,65 @@
...
@@ -6,7 +6,65 @@
<a-button
type=
"primary"
>
全屏
</a-button>
<a-button
type=
"primary"
>
全屏
</a-button>
<a-button
type=
"primary"
@
click=
"handleQuit"
>
退出
</a-button>
<a-button
type=
"primary"
@
click=
"handleQuit"
>
退出
</a-button>
</
template
>
</
template
>
<img
src=
"../../../../../assets/images/assetER.png"
style=
"width: 100%"
/>
<div
:class=
"divHeight > 57 ? 'imgclass1' : 'imgclass2'"
>
<img
@
click=
"handleDetail"
src=
"../../../../../assets/images/assetER.png"
style=
"width: 100%; object-fit: cover"
/>
</div>
<div
v-show=
"isDetail"
ref=
"info"
>
<CollapseContainer
maxHeight=
"340px"
title=
"基础收缩示例"
>
<Tabs
v-model:activeKey=
"tabsKey"
>
<Tabs
.
TabPane
key=
"1"
tab=
"基本信息"
>
<div
class=
"comparsion-title"
>
表信息
</div>
<Description
size=
"middle"
:bordered=
"false"
:column=
"2"
:data=
"infoData"
:schema=
"checkFormSchema"
/>
<Divider
style=
"width: 48%"
/>
<div
class=
"comparsion-title"
>
管理元数据
</div>
<Description
size=
"middle"
:bordered=
"false"
:column=
"2"
:data=
"partitioncheckinfoData"
:schema=
"partitioncheckFormSchema"
/>
</Tabs
.TabPane
>
<Tabs
.
TabPane
key=
"2"
tab=
"详细信息"
>
<div
class=
"comparsion-title"
>
分区信息
</div>
<Description
size=
"middle"
:bordered=
"false"
:column=
"1"
:data=
"areaInfoData"
:schema=
"areaFormSchema"
/>
<Divider
style=
"width: 50%"
/>
<div
class=
"comparsion-title"
>
分桶信息
</div>
<Description
size=
"middle"
:bordered=
"false"
:column=
"1"
:data=
"bucketInfoData"
:schema=
"bucketFormSchema"
/>
<Divider
style=
"width: 50%"
/>
<div
class=
"comparsion-title"
>
列信息
</div>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
/>
</Tabs
.TabPane
>
<Tabs
.
TabPane
key=
"3"
tab=
"模型关联"
>
<SourceData
style=
"margin-top: 20px"
/>
<LogicalModel
style=
"margin-top: 20px"
/>
<SqlDevelop
style=
"margin-top: 40px"
/>
</Tabs
.TabPane
>
</Tabs>
</CollapseContainer>
</div>
</PageWrapper>
</PageWrapper>
</template>
</template>
...
@@ -17,13 +75,61 @@
...
@@ -17,13 +75,61 @@
import
{
chartTreeData
}
from
'./relate.data'
;
import
{
chartTreeData
}
from
'./relate.data'
;
import
CrossModel
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelRelationship/crossModel.vue'
;
import
CrossModel
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelRelationship/crossModel.vue'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
{
ref
}
from
'vue'
;
import
{
onBeforeUnmount
,
onMounted
,
ref
}
from
'vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
areaFormSchema
,
areaInfoData
,
bucketFormSchema
,
bucketInfoData
,
checkFormSchema
,
infoData
,
partitioncheckFormSchema
,
partitioncheckinfoData
,
}
from
'@/views/dataWarehousePlanning/physicalModel/upload/uploadData'
;
import
{
Divider
,
Tabs
}
from
'ant-design-vue'
;
import
{
CollapseContainer
}
from
'@/components/Container'
;
import
{
Description
}
from
'@/components/Description'
;
import
{
BasicTable
,
useTable
}
from
'@/components/Table'
;
import
SqlDevelop
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/sqlDevelop.vue'
;
import
LogicalModel
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/logicalModel.vue'
;
import
SourceData
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/sourceData.vue'
;
import
{
checkinfoData
}
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelData'
;
import
{
checkcolumnsDetail
}
from
'@/views/dataWarehousePlanning/physicalModel/model.data'
;
// 模态框
// 模态框
const
[
crossModal
,
{
openModal
}]
=
useModal
();
const
[
crossModal
,
{
openModal
}]
=
useModal
();
const
tabsKey
=
ref
(
'1'
);
const
isDetail
=
ref
(
false
);
let
modelLevel
=
ref
(
'1'
);
let
modelLevel
=
ref
(
'1'
);
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
scroll
:
{
y
:
200
},
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
checkinfoData
.
length
,
code
:
''
,
message
:
''
,
data
:
checkinfoData
,
};
return
{
...
response
};
},
columns
:
checkcolumnsDetail
,
showIndexColumn
:
false
,
rowSelection
:
false
,
pagination
:
true
,
useSearchForm
:
false
,
showTableSetting
:
false
,
bordered
:
true
,
});
function
handleSelect
(
key
)
{
function
handleSelect
(
key
)
{
if
(
key
[
0
]
!==
null
&&
key
[
0
]
!==
undefined
)
{
if
(
key
[
0
]
!==
null
&&
key
[
0
]
!==
undefined
)
{
modelLevel
.
value
=
key
[
0
];
modelLevel
.
value
=
key
[
0
];
...
@@ -39,6 +145,10 @@
...
@@ -39,6 +145,10 @@
function
handleQuit
()
{
function
handleQuit
()
{
router
.
go
(
-
1
);
router
.
go
(
-
1
);
}
}
function
handleDetail
()
{
isDetail
.
value
=
true
;
}
function
handleAdd
()
{
function
handleAdd
()
{
openModal
(
true
);
openModal
(
true
);
}
}
...
@@ -52,10 +162,50 @@
...
@@ -52,10 +162,50 @@
// value: '当前模型实体',
// value: '当前模型实体',
// },
// },
// ];
// ];
const
divHeight
=
ref
(
0
);
// Store the height of the div
const
info
=
ref
(
null
);
// Reference to the info div
// Function to update divHeight based on the element's height
const
updateHeight
=
()
=>
{
if
(
info
.
value
)
{
divHeight
.
value
=
info
.
value
.
offsetHeight
;
}
};
onMounted
(()
=>
{
// Set the initial height on mount
if
(
info
.
value
)
{
updateHeight
();
// Set up ResizeObserver to monitor the size changes of the div
const
resizeObserver
=
new
ResizeObserver
(
updateHeight
);
resizeObserver
.
observe
(
info
.
value
);
// Cleanup observer when the component is unmounted
onBeforeUnmount
(()
=>
{
resizeObserver
.
disconnect
();
});
}
});
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
lang=
"scss"
>
.erchart-img
{
.erchart-img
{
height
:
calc
(
100vh
-
200px
);
height
:
calc
(
100vh
-
200px
);
}
}
.info
{
width
:
100%
;
padding
:
10px
;
background-color
:
lightblue
;
resize
:
both
;
overflow
:
auto
;
}
.imgclass1
{
height
:
300px
;
overflow-y
:
hidden
;
}
.imgclass2
{
height
:
700px
;
overflow-y
:
hidden
;
}
</
style
>
</
style
>
src/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/editHistory.vue
View file @
0245164b
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
},
},
{
{
icon: 'ant-design:download-outlined',
icon: 'ant-design:download-outlined',
onClick: handle
EntityEdit
Model.bind(null, record),
onClick: handle
DownLoad
Model.bind(null, record),
},
},
{
{
icon: 'ant-design:exception-outlined',
icon: 'ant-design:exception-outlined',
...
@@ -62,7 +62,19 @@
...
@@ -62,7 +62,19 @@
});
});
}
}
// 实体编辑
// 实体编辑
function
handleEntityEditModel
(
record
:
Recordable
)
{}
function
handleDownLoadModel
(
record
:
Recordable
)
{
// 创建一个空的 Blob 对象,表示空文件内容
const
emptyBlob
=
new
Blob
([],
{
type
:
'excel/plain'
});
// 使用 URL.createObjectURL 创建一个可下载的链接
const
downloadLink
=
document
.
createElement
(
'a'
);
downloadLink
.
href
=
URL
.
createObjectURL
(
emptyBlob
);
// 设置下载文件的名称
downloadLink
.
download
=
'emptyFile.xlsx'
;
// 自动触发点击事件,开始下载
downloadLink
.
click
();
// 释放对象URL,避免内存泄漏
URL
.
revokeObjectURL
(
downloadLink
.
href
);
}
function
entitySuccess
({
isUpdate
,
values
})
{
function
entitySuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
...
@@ -130,7 +142,9 @@
...
@@ -130,7 +142,9 @@
});
});
}
}
function
handleEntityEditModel
(
record
:
Recordable
)
{
}
onMounted
(()
=>
{
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
tableData
.
value
=
TreeData
;
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/index.vue
View file @
0245164b
...
@@ -3,35 +3,77 @@
...
@@ -3,35 +3,77 @@
<template
#
footer
>
<template
#
footer
>
<Tabs>
<Tabs>
<Tabs
.
TabPane
key=
"1"
tab=
"编辑"
>
<Tabs
.
TabPane
key=
"1"
tab=
"编辑"
>
<BasicForm
@
register=
"registerForm"
>
<template
#
file
>
<div
style=
"display: flex"
>
<div>
<a-button>
下载文件模板
</a-button>
<a-button
type=
"primary"
style=
"margin-left: 5px"
>
选择文件
</a-button>
</div>
</div>
</
template
>
</BasicForm>
<div
style=
"padding-left: 100px"
>
<a-button
type=
"primary"
@
click=
"handleSubmit"
>
提交
</a-button>
</div>
<BasicTable
@
register=
"registerTable"
/>
</Tabs
.TabPane
>
</Tabs
.TabPane
>
<Tabs
.
TabPane
key=
"2"
tab=
"编辑历史"
>
<Tabs
.
TabPane
key=
"2"
tab=
"编辑历史"
>
<EditHistory/>
<EditHistory
/>
</Tabs
.TabPane
>
</Tabs
.TabPane
>
</Tabs>
</Tabs>
</template>
</template>
</PageWrapper>
</PageWrapper>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
PageConfigModal
from
"@/views/dataSourceManage/dataSource/pageConfigModal.vue"
;
import
PageConfigModal
from
'@/views/dataSourceManage/dataSource/pageConfigModal.vue'
;
import
{
PageWrapper
}
from
"@/components/Page/index.js"
;
import
{
PageWrapper
}
from
'@/components/Page/index.js'
;
import
{
BasicTable
}
from
"@/components/Table"
;
import
{
BasicTable
,
useTable
}
from
'@/components/Table'
;
import
SqlDevelop
from
"@/views/dataWarehousePlanning/physicalModel/modelDetail/sqlDevelop.vue"
;
import
SqlDevelop
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/sqlDevelop.vue'
;
import
SourceData
from
"@/views/dataWarehousePlanning/physicalModel/modelDetail/sourceData.vue"
;
import
SourceData
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/sourceData.vue'
;
import
{
Select
,
Tabs
}
from
"ant-design-vue"
;
import
{
Select
,
Tabs
}
from
'ant-design-vue'
;
import
BasicForm
from
"@/components/Form/src/BasicForm.vue"
;
import
BasicForm
from
'@/components/Form/src/BasicForm.vue'
;
import
LogicalModel
from
"@/views/dataWarehousePlanning/physicalModel/modelDetail/logicalModel.vue"
;
import
LogicalModel
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/logicalModel.vue'
;
import
DetailInfo
from
"@/views/dataWarehousePlanning/physicalModel/modelDetail/detailInfo.vue"
;
import
DetailInfo
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/detailInfo.vue'
;
import
ModelRelationship
import
ModelRelationship
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelRelationship/modelRelationship.vue'
;
from
"@/views/dataWarehousePlanning/physicalModel/modelDetail/modelRelationship/modelRelationship.vue"
;
import
EditHistory
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/editHistory.vue'
;
import
EditHistory
import
{
columns
}
from
'@/views/kinship/kinshipEdit/data'
;
from
"@/views/dataWarehousePlanning/physicalModel/modelDetail/assetRelation/editHistory.vue"
;
</
script
>
const
[
registerForm
,
{
resetFields
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
formSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
<
style
scoped
>
const
[
registerTable
,
{
reload
}]
=
useTable
({
title
:
'错误列表'
,
api
:
async
()
=>
{
const
response
=
{
pageNum
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
var
data
=
[];
data
=
tableData
.
value
;
return
{
...
response
,
data
:
data
};
},
pagination
:
false
,
columns
,
useSearchForm
:
false
,
showTableSetting
:
false
,
bordered
:
true
,
showIndexColumn
:
false
,
});
</
script
>
</
style
>
<
style
scoped
><
/
style
>
src/views/dataWarehousePlanning/physicalModel/upload/uploadData.ts
View file @
0245164b
...
@@ -147,11 +147,12 @@ export const bucketFormSchema: any[] = [
...
@@ -147,11 +147,12 @@ export const bucketFormSchema: any[] = [
export
const
areaInfoData
=
{
export
const
areaInfoData
=
{
physicalName
:
'dw_prd_contract_f
'
,
areaType
:
'-
'
,
modelId
:
'/admin-个人工作区/SDM数仓/argodb_test/dw_data/dw_prd_contract_f
'
,
areaField
:
'-
'
,
};
};
export
const
bucketInfoData
=
{
export
const
bucketInfoData
=
{
physicalName
:
'dw_prd_contract_f'
,
bucketNum
:
'3'
,
modelId
:
'/admin-个人工作区/SDM数仓/argodb_test/dw_data/dw_prd_contract_f'
,
bucketField
:
'-'
,
sortField
:
'-'
,
};
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment