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
a803e2ee
Commit
a803e2ee
authored
Nov 14, 2024
by
罗林杰
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
f4c12bc8
ddc7b8eb
Changes
28
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
1219 additions
and
219 deletions
+1219
-219
createLog.png
src/assets/images/createLog.png
+0
-0
createTable.png
src/assets/images/createTable.png
+0
-0
debug.png
src/assets/images/debug.png
+0
-0
addNewVersion.vue
src/views/dataQuality/dataSheet/rule/addNewVersion.vue
+59
-0
index.vue
src/views/dataQuality/dataSheet/rule/index.vue
+20
-6
rule.data.ts
src/views/dataQuality/dataSheet/rule/rule.data.ts
+103
-1
ruleData.ts
src/views/dataQuality/dataSheet/rule/ruleData.ts
+14
-0
ruleEditModel.vue
src/views/dataQuality/dataSheet/rule/ruleEditModel.vue
+25
-12
versionManage.vue
src/views/dataQuality/dataSheet/rule/versionManage.vue
+74
-0
indicatorStandardsData.ts
...ataStandards/IndicatorStandards/indicatorStandardsData.ts
+278
-114
relatedBasicStandardModal.vue
...tandards/IndicatorStandards/relatedBasicStandardModal.vue
+2
-2
basicStandardsData.ts
src/views/dataStandards/basicStandards/basicStandardsData.ts
+1
-1
index.vue
src/views/dataWarehousePlanning/physicalModel/index.vue
+33
-12
model.data.ts
src/views/dataWarehousePlanning/physicalModel/model.data.ts
+9
-0
modelData.ts
src/views/dataWarehousePlanning/physicalModel/modelData.ts
+9
-0
detailInfo.vue
...arehousePlanning/physicalModel/modelDetail/detailInfo.vue
+1
-1
index.vue
...dataWarehousePlanning/physicalModel/modelDetail/index.vue
+29
-12
logicalModel.vue
...ehousePlanning/physicalModel/modelDetail/logicalModel.vue
+2
-2
model.data.ts
...WarehousePlanning/physicalModel/modelDetail/model.data.ts
+57
-1
modelCreateLog.vue
...ousePlanning/physicalModel/modelDetail/modelCreateLog.vue
+62
-0
modelCreateTable.vue
...sePlanning/physicalModel/modelDetail/modelCreateTable.vue
+81
-0
modelDDL.vue
...aWarehousePlanning/physicalModel/modelDetail/modelDDL.vue
+87
-0
modelData.ts
...aWarehousePlanning/physicalModel/modelDetail/modelData.ts
+27
-2
modelDebug.vue
...arehousePlanning/physicalModel/modelDetail/modelDebug.vue
+4
-2
modelMoreCreate.vue
...usePlanning/physicalModel/modelDetail/modelMoreCreate.vue
+77
-0
sourceData.vue
...arehousePlanning/physicalModel/modelDetail/sourceData.vue
+11
-26
sqlDevelop.vue
...arehousePlanning/physicalModel/modelDetail/sqlDevelop.vue
+10
-25
versionModel.vue
...ehousePlanning/physicalModel/modelDetail/versionModel.vue
+144
-0
No files found.
src/assets/images/createLog.png
0 → 100644
View file @
a803e2ee
194 KB
src/assets/images/createTable.png
0 → 100644
View file @
a803e2ee
109 KB
src/assets/images/debug.png
View replaced file @
f4c12bc8
View file @
a803e2ee
174 KB
|
W:
|
H:
170 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/views/dataQuality/dataSheet/rule/addNewVersion.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
addNewVersionFormSchema
,
}
from
'@/views/dataQuality/dataSheet/rule/rule.data'
;
import
BasicForm
from
'@/components/Form/src/BasicForm.vue'
;
import
{
useForm
}
from
'@/components/Form'
;
const
emit
=
defineEmits
([
'handle-submit-new-version'
]);
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
// const getTitle = computed(() => (isUpdate.value ? '质量规则详情' : '新建规则'));
const
getTitle
=
'提交新版本'
;
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
await
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
// 塞值
await
setFieldsValue
({
...
data
.
record
,
});
}
});
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
getFieldsValue
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
addNewVersionFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
// 确认按钮配置
submitButtonOptions
:
{
text
:
'提交新版本'
,
},
});
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
closeModal
();
emit
(
'handle-submit-new-version'
,
getFieldsValue
().
describe
);
}
</
script
>
src/views/dataQuality/dataSheet/rule/index.vue
View file @
a803e2ee
...
...
@@ -54,6 +54,7 @@
},
{
icon: 'ion:chevron-down-circle-outline',
onClick: handleVersion.bind(null, record),
},
{
// 删除
...
...
@@ -70,11 +71,12 @@
</
template
>
</template>
</BasicTable>
<Rule
Model
@
register=
"rule
Modal"
/>
<Rule
EditModel
:is-add=
"isAdd"
@
register=
"ruleEdit
Modal"
/>
<RuleMoreUpdate
@
register=
"ruleMoreUpdateModel"
/>
<RuleGroupAddModel
@
register=
"ruleGroupAddModel"
/>
<RuleGroupEditModel
@
register=
"ruleGroupEditModel"
/>
<MoveInGroupModel
@
register=
"moveInGroupModel"
/>
<VersionManage
@
register=
"versionManage"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
...
...
@@ -84,7 +86,7 @@
import
{
ruleFormSchema
,
ruleTable
}
from
'@/views/dataQuality/dataSheet/rule/rule.data'
;
import
{
Tabs
}
from
'ant-design-vue'
;
import
{
ruleData
,
treeData
,
treeData1
,
treeData2
}
from
'./ruleData'
;
import
Rule
Model
from
'./rule
Model.vue'
;
import
Rule
EditModel
from
'./ruleEdit
Model.vue'
;
import
RuleMoreUpdate
from
'./ruleMoreUpdateModel.vue'
;
import
RuleGroupAddModel
from
'./ruleGroupAddModel.vue'
;
import
RuleGroupEditModel
from
'./ruleGroupEditModel.vue'
;
...
...
@@ -92,16 +94,18 @@
import
{
useModal
}
from
'@/components/Modal'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
h
}
from
'vue'
;
import
{
h
,
ref
}
from
'vue'
;
import
{
FolderAddOutlined
,
SettingOutlined
}
from
'@ant-design/icons-vue'
;
// 模态框
const
isAdd
=
ref
(
true
);
const
{
push
}
=
useRouter
();
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
[
rule
Modal
,
{
openModal
:
openRule
Model
}]
=
useModal
();
const
[
rule
EditModal
,
{
openModal
:
openRuleEdit
Model
}]
=
useModal
();
const
[
ruleMoreUpdateModel
,
{
openModal
:
openRuleMoreUpdateModel
}]
=
useModal
();
const
[
ruleGroupAddModel
,
{
openModal
:
openRuleGroupAddModel
}]
=
useModal
();
const
[
ruleGroupEditModel
,
{
openModal
:
openRuleGroupEditModel
}]
=
useModal
();
const
[
moveInGroupModel
,
{
openModal
:
openMoveInGroupModel
}]
=
useModal
();
const
[
versionManage
,
{
openModal
:
openVersionManage
}]
=
useModal
();
const
actionList
:
TreeActionItem
[]
=
[
{
render
:
(
node
)
=>
{
...
...
@@ -132,7 +136,8 @@
];
// 新增
function
handleAdd
()
{
openRuleModel
(
true
,
{
isAdd
.
value
=
true
openRuleEditModel
(
true
,
{
isUpdate
:
false
,
});
}
...
...
@@ -166,12 +171,21 @@
* 列表编辑
*/
function
handleEdit
(
record
)
{
openRuleModel
(
true
,
{
isAdd
.
value
=
false
openRuleEditModel
(
true
,
{
record
,
isUpdate
:
true
,
});
}
/**
* 历史版本
*/
function
handleVersion
()
{
openVersionManage
(
true
,
{
isUpdate
:
false
,
});
}
/**
* 批量编辑
*/
...
...
src/views/dataQuality/dataSheet/rule/rule.data.ts
View file @
a803e2ee
import
{
BasicColumn
}
from
'@/components/Table'
;
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
export
const
ruleFormSchema
=
[
{
...
...
@@ -164,6 +164,79 @@ export const ruleModelFormSchema: any[] = [
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
export
const
ruleEditModelFormSchema
:
any
[]
=
[
{
field
:
'rule'
,
label
:
'规则名称'
,
required
:
true
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'distinct'
,
label
:
'规则描述'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'group'
,
label
:
'所属规则组'
,
slot
:
'group'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'dataSource'
,
label
:
'检查数据源'
,
required
:
true
,
slot
:
'dataSource'
,
component
:
'Select'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'dataSource'
,
label
:
'数据源'
,
slot
:
'dataSourceTxt'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'model'
,
label
:
'关键模板'
,
required
:
true
,
component
:
'Select'
,
componentProps
:
{
options
:
[{
label
:
'公民身份号码'
,
value
:
'公民身份号码'
}],
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'config'
,
label
:
'参数配置'
,
slot
:
'config'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'whiteList'
,
label
:
'质量白名单'
,
component
:
'Select'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'preview'
,
label
:
'SQL预览'
,
component
:
'InputTextArea'
,
componentProps
:
{
placeholder
:
'请输入描述'
,
rows
:
4
,
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'task'
,
label
:
'关联质量任务'
,
slot
:
'task'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
export
const
configColumn
:
BasicColumn
[]
=
[
{
title
:
'参数'
,
...
...
@@ -354,3 +427,32 @@ export const moveInGroupFormSchema = [
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
export
const
addNewVersionFormSchema
=
[
{
field
:
'describe'
,
label
:
'版本说明'
,
component
:
'InputTextArea'
,
componentProps
:
{
placeholder
:
'请输入内容'
,
autoSize
:
{
minRows
:
2
,
maxRows
:
6
},
maxlength
:
255
,
showCount
:
true
,
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
export
const
versionFormSchema
:
FormSchema
[]
=
[
{
field
:
'field1'
,
component
:
'InputSearch'
,
colProps
:
{
span
:
12
,
},
componentProps
:
{
placeholder
:
'输入关键字搜索'
,
onChange
:
(
e
:
any
)
=>
{
console
.
log
(
e
);
},
},
},
];
src/views/dataQuality/dataSheet/rule/ruleData.ts
View file @
a803e2ee
...
...
@@ -260,3 +260,17 @@ export const ruleGroupEditData = [
group
:
''
,
},
];
export
const
versionModelList
=
[
{
version
:
'V2'
,
time
:
'2022/10/27 18:53:43'
,
created
:
'admin'
,
describe
:
'batch create version'
,
},
{
version
:
'V1'
,
time
:
'2022/10/27 18:17:37'
,
created
:
'admin'
,
describe
:
'batch create version'
,
},
];
src/views/dataQuality/dataSheet/rule/ruleModel.vue
→
src/views/dataQuality/dataSheet/rule/rule
Edit
Model.vue
View file @
a803e2ee
...
...
@@ -95,23 +95,29 @@
</
template
>
</BasicForm>
<RuleGroupAddModel
@
register=
"ruleGroupAddModel"
/>
<AddNewVersion
@
register=
"addNewVersion"
@
handle-submit-new-version=
"handleSubmitNewVersion"
/>
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
onMounted
}
from
'vue'
;
import
{
ref
,
computed
,
unref
,
defineProps
}
from
'vue'
;
import
{
Select
}
from
'ant-design-vue'
;
import
{
BasicModal
,
useModalInner
,
useModal
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
configColumn
,
ruleModelFormSchema
,
taskColumn
,
}
from
'@/views/dataQuality/dataSheet/rule/rule.data'
;
import
{
configColumn
,
ruleEditModelFormSchema
,
ruleModelFormSchema
,
taskColumn
,
}
from
'@/views/dataQuality/dataSheet/rule/rule.data'
;
import
BasicTable
from
'@/components/Table/src/BasicTable.vue'
;
import
RuleGroupAddModel
from
'./ruleGroupAddModel.vue'
;
import
AddNewVersion
from
'./addNewVersion.vue'
;
import
{
useTable
}
from
'@/components/Table'
;
import
{
configData
,
taskData
}
from
'@/views/dataQuality/dataSheet/rule/ruleData'
;
const
props
=
defineProps
({
disabled
:
{
type
:
Boolean
,
default
:
false
},
isAdd
:
{
type
:
Boolean
,
default
:
false
},
});
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
const
getTitle
=
computed
(()
=>
(
isUpdate
.
value
?
'质量规则详情'
:
'新建规则'
));
...
...
@@ -122,24 +128,25 @@
}
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
const
[
ruleGroupAddModel
,
{
openModal
:
openRuleGroupAddModel
}]
=
useModal
();
const
[
addNewVersion
,
{
openModal
:
openAddNewVersion
}]
=
useModal
();
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
rule
ModelFormSchema
,
schemas
:
props
.
isAdd
?
ruleModelFormSchema
:
ruleEdit
ModelFormSchema
,
showActionButtonGroup
:
false
,
disabled
:
props
.
disabled
,
actionColOptions
:
{
span
:
23
,
},
// 确认按钮配置
submitButtonOptions
:
{
text
:
'提交新版本'
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
await
resetFields
();
setModalProps
({
confirmLoading
:
false
});
setModalProps
({
confirmLoading
:
false
,
okText
:
props
.
disabled
?
'回滚'
:
props
.
isAdd
?
'确定'
:
'提交新版本'
,
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
...
...
@@ -204,6 +211,12 @@
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
openAddNewVersion
(
true
,
{
isUpdate
:
false
,
});
}
/**确定按钮*/
async
function
handleSubmitNewVersion
(
describe
)
{
closeModal
();
}
</
script
>
src/views/dataQuality/dataSheet/rule/versionManage.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
:labelWidth=
"100"
:schemas=
"versionFormSchema"
:showActionButtonGroup=
"false"
/>
<List>
<template
v-for=
"item in versionModelList"
:key=
"item.id"
>
<List
.
Item
>
<List
.
Item
.
Meta
>
<template
#
title
>
<div
style=
"display: flex"
>
<div
style=
"flex: 1"
>
<span>
{{
item
.
version
}}
</span>
<span
style=
"margin-left: 20px"
>
{{
item
.
time
}}
</span>
</div>
<div>
<a-button
@
click=
"handleRollback(item)"
><RollbackOutlined
/></a-button>
</div>
</div>
</
template
>
<
template
#
description
>
<div>
{{
item
.
created
}}
</div>
<div>
{{
item
.
describe
}}
</div>
</
template
>
</List
.Item.Meta
>
</List
.Item
>
</template>
</List>
<RuleEditModel
:disabled=
"true"
@
register=
"ruleEditModel"
/>
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
unref
}
from
'vue'
;
import
{
BasicForm
}
from
'@/components/Form'
;
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
List
}
from
'ant-design-vue'
;
import
{
RollbackOutlined
}
from
'@ant-design/icons-vue'
;
import
{
versionFormSchema
}
from
'./rule.data'
;
import
{
versionModelList
}
from
'./ruleData'
;
import
RuleEditModel
from
'./ruleEditModel.vue'
;
const
[
ruleEditModel
,
{
openModal
:
openRuleEditModel
}]
=
useModal
();
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
// const getTitle = computed(() => (isUpdate.value ? '质量规则详情' : '新建规则'));
const
getTitle
=
'版本管理'
;
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
}
});
function
handleRollback
(
record
)
{
openRuleEditModel
(
true
,
{
record
,
isUpdate
:
true
,
});
}
/**确定按钮*/
async
function
handleSubmit
()
{
closeModal
();
}
</
script
>
src/views/dataStandards/IndicatorStandards/indicatorStandardsData.ts
View file @
a803e2ee
This diff is collapsed.
Click to expand it.
src/views/dataStandards/IndicatorStandards/relatedBasicStandardModal.vue
View file @
a803e2ee
...
...
@@ -9,7 +9,7 @@
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
relatedBasicStandardsSchema
}
from
'./indicatorStandards.data'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
qualityTreeData
,
TreeData
}
from
"./indicatorStandardsData"
;
import
{
basicStandardsTreeData
,
qualityTreeData
,
TreeData
}
from
"./indicatorStandardsData"
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
defineOptions
({
name
:
'AccountModal'
});
...
...
@@ -35,7 +35,7 @@
setFieldsValue
({
...
data
.
record
,
})
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
const
treeList
=
handleTree
(
basicStandards
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
updateSchema
([
{
field
:
'basicStandardsTree'
,
...
...
src/views/dataStandards/basicStandards/basicStandardsData.ts
View file @
a803e2ee
...
...
@@ -730,7 +730,7 @@ export const relatedRelationshipsData5 = [
businessId
:
'1'
,
standardName
:
'当前就读学校'
,
standardNumber
:
'BIDQ000000001'
,
path
:
'/
基础
标准/DMP_admin-个人工作区/...'
,
path
:
'/
指标
标准/DMP_admin-个人工作区/...'
,
associationRelation
:
'无'
,
associationDescription
:
'无'
,
associationTime
:
'2024-01-01 10:00:00'
,
...
...
src/views/dataWarehousePlanning/physicalModel/index.vue
View file @
a803e2ee
...
...
@@ -9,20 +9,31 @@
>
<template
#
toolbar
>
<a-button
type=
"primary"
>
建表记录
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
批量建表
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleWaitUpload"
>
设为待发布
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
发布
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleMoreCreate"
>
批量建表
</a-button
>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleWaitUpload"
>
设为待发布
</a-button
>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
发布
</a-button>
<a-button
type=
"primary"
@
click=
"handleBaseImport"
>
从元数据导入
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
导出
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
导出
</a-button>
<a-button
type=
"primary"
@
click=
"handleImport"
>
导入
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateFolder"
>
新建文件夹
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateFile"
>
新建文件
</a-button>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleDelete(record)"
>
删除
</a-button>
<RadioButtonGroup
@
change=
"changeTable"
:options=
"labelName"
v-model:value=
"state"
/>
<a-button
type=
"primary"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleDelete(record)"
>
删除
</a-button
>
<RadioButtonGroup
@
change=
"changeTable"
:options=
"labelName"
v-model:value=
"state"
/>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
...
...
@@ -54,7 +65,8 @@
<ModelModal
@
register=
"registerModal"
@
success=
"handleSuccess"
/>
<ImportModal
@
register=
"registerImport"
/>
<ModelAdd
@
register=
"registerModalAdd"
/>
<BaseImport
@
register=
"registerBaseImport"
/>
<BaseImport
@
register=
"registerBaseImport"
/>
<ModelMoreCreate
@
register=
"registerMoreCreate"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
...
...
@@ -75,6 +87,7 @@
import
{
TreeData
,
TreeSystem
}
from
'@/views/dataWarehousePlanning/physicalModel/modelData'
;
import
ModelTree
from
'@/views/dataWarehousePlanning/physicalModel/ModelTree.vue'
;
import
RadioButtonGroup
from
'@/components/Form/src/components/RadioButtonGroup.vue'
;
import
ModelMoreCreate
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelMoreCreate.vue'
;
const
{
push
}
=
useRouter
();
let
baseImport
=
ref
(
false
);
...
...
@@ -91,6 +104,7 @@
const
[
registerModalAdd
,
{
openModal
:
openModalAdd
}]
=
useModal
();
const
[
registerMoveUser
,
{
openModal
:
openMoveUserModal
}]
=
useModal
();
const
[
registerBaseImport
,
{
openModal
:
openBaseImportUserModal
}]
=
useModal
();
const
[
registerMoreCreate
,
{
openModal
:
openMoreCreate
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
[
...
...
@@ -122,7 +136,7 @@
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var
data
=
[];
data
=
TreeSystem
.
filter
((
item
)
=>
item
.
businessId
!==
100
);
return
{
...
response
,
data
:
data
};
return
{
...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
columns
:
columnsSystem
,
...
...
@@ -173,6 +187,13 @@
});
}
/** 批量建表*/
function
handleMoreCreate
()
{
openMoreCreate
(
true
,
{
isUpdate
:
false
,
});
}
/** 新建文件夹*/
function
handleCreateFolder
()
{
openModalAdd
(
true
,
{
...
...
src/views/dataWarehousePlanning/physicalModel/model.data.ts
View file @
a803e2ee
...
...
@@ -80,6 +80,15 @@ export const columnsData: BasicColumn[] = [
},
];
export
const
columnsMoreCreate
=
[
{
title
:
'物理模型名称'
,
dataIndex
:
'physicalName'
,
width
:
150
,
// onEditRow:true
},
]
export
const
columnsDetail
:
BasicColumn
[]
=
[
{
title
:
'列名'
,
...
...
src/views/dataWarehousePlanning/physicalModel/modelData.ts
View file @
a803e2ee
...
...
@@ -154,6 +154,15 @@ export const TreeData: any[] = [
},
];
export
const
moreCreateData
=
[
{
physicalName
:
'dw_prd_contract_quot_h_s'
,
},
{
physicalName
:
'dw_prd_contract_quot_h_s'
,
},
];
export
const
editTableData
:
any
[]
=
[
{
businessId
:
1
,
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/detailInfo.vue
View file @
a803e2ee
...
...
@@ -64,7 +64,7 @@
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var
data
=
[];
data
=
tableData
.
value
.
filter
((
item
)
=>
item
.
businessId
!==
100
);
return
{
...
response
,
data
:
data
};
return
{
...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
columns
,
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/index.vue
View file @
a803e2ee
<
template
>
<PageWrapper
:title=
"modelName"
contentBackground
headerSticky
>
<template
#
extra
>
<a-button
type=
"primary"
v-if=
"!editFlag"
>
自动建表
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
>
版本管理
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
@
click=
"handleCreateTable"
>
自动建表
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
@
click=
"handleVersion"
>
版本管理
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
@
click=
"handleExport"
>
导出
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
@
click=
"handleEdit"
>
编辑
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
>
删除
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
>
编辑记录
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
>
设为待发布
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
>
发布
</a-button>
<a-button
type=
"primary"
disabled=
"editFlag"
v-if=
"editFlag"
>
发布
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
@
click=
"handleDebug"
>
建表调试
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
@
click=
"handleSave"
>
保存
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
@
click=
"handleCancel"
>
取消
</a-button>
...
...
@@ -150,15 +150,18 @@
</BasicForm>
</div>
</Tabs
.TabPane
>
<Tabs
.
TabPane
key=
"3"
tab=
"模型关联"
>
<Tabs
.
TabPane
key=
"3"
v-if=
"!editFlag"
tab=
"模型关系"
/>
<Tabs
.
TabPane
key=
"4"
v-if=
"!editFlag"
tab=
"模型关联"
>
<SourceData
style=
"margin-top: 20px"
/>
<LogicalModel
style=
"margin-top: 20px"
/>
<SqlDevelop
style=
"margin-top: 40px"
/>
</Tabs
.TabPane
>
</Tabs>
</template>
<ModelDebug
@
register=
"registerDebugModal"
/>
<ModelCreateTable
@
register=
"registerCreateModal"
/>
<VersionModel
@
register=
"registerVersionModal"
/>
</PageWrapper>
<ModelDebug
@
register=
"registerDebugModal"
/>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
,
nextTick
,
computed
,
unref
}
from
'vue'
;
...
...
@@ -189,9 +192,13 @@
import
{
columnsDetail
}
from
'@/views/dataWarehousePlanning/physicalModel/model.data'
;
import
CrossTable
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/crossTable.vue'
;
import
SqlDevelop
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/sqlDevelop.vue'
;
import
ModelCreateTable
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelCreateTable.vue'
;
import
VersionModel
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/versionModel.vue'
;
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerDebugModal
,
{
openModal
:
openDebugModal
}]
=
useModal
();
const
[
registerCreateModal
,
{
openModal
:
openCreateModal
}]
=
useModal
();
const
[
registerVersionModal
,
{
openModal
:
openVersionModal
}]
=
useModal
();
defineOptions
({
name
:
'AccountManagement'
});
const
tableRefresh
=
ref
(
true
);
const
filterStore
=
useFilterStore
();
...
...
@@ -213,11 +220,7 @@
span
:
23
,
},
});
const
[
registerForm1
,
{
},
]
=
useForm
({
const
[
registerForm1
,
{}]
=
useForm
({
labelWidth
:
108
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
ConnectionModelFormSchema
,
...
...
@@ -231,7 +234,7 @@
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
''
,
scroll
:
{
y
:
200
},
scroll
:
{
y
:
200
},
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
...
...
@@ -243,7 +246,7 @@
message
:
''
,
data
:
[],
};
return
{
...
response
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
columns
:
columnsDetail
,
...
...
@@ -277,6 +280,20 @@
});
}
/** 调试*/
function
handleCreateTable
()
{
openCreateModal
(
true
,
{
isUpdate
:
false
,
});
}
/** 调试*/
function
handleVersion
()
{
openVersionModal
(
true
,
{
isUpdate
:
false
,
});
}
/**
* 编辑
*/
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/logicalModel.vue
View file @
a803e2ee
...
...
@@ -59,7 +59,7 @@
]
=
useTable
({
title
:
'逻辑模型'
,
// 定高
scroll
:
{
y
:
150
},
scroll
:
{
y
:
150
},
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
...
...
@@ -72,7 +72,7 @@
message
:
''
,
data
:
PhysicalData
,
};
return
{
...
response
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
// 列
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/model.data.ts
View file @
a803e2ee
...
...
@@ -14,7 +14,7 @@ export const entityColumns: BasicColumn[] = [
// onEditRow: true,
},
{
title
:
'
实体名称
'
,
title
:
'
数据源
'
,
dataIndex
:
'dataBase'
,
width
:
150
,
// onEditRow: true,
...
...
@@ -291,6 +291,34 @@ export const MoveFormSchema: any[] = [
required
:
true
,
},
];
export
const
CreateFormSchema
:
any
[]
=
[
{
field
:
'tableVersion'
,
label
:
'建表版本'
,
component
:
'Select'
,
componentProps
:
{
itemIcon
:
'settings-outline'
,
options
:
[
{
label
:
'版本V1.0'
,
value
:
'版本V1.0'
},
{
label
:
'版本V1.1'
,
value
:
'版本V1.1'
},
],
},
colProps
:
{
lg
:
24
,
md
:
24
},
required
:
true
,
renderComponentContent
:
()
=>
{
return
{
prefix
:
()
=>
'pSlot'
,
suffix
:
()
=>
'sSlot'
,
};
},
},
{
field
:
'fileMethods'
,
slot
:
'fileMethods'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
// entityModel
export
const
EntityModelFormSchema
:
any
[]
=
[
{
...
...
@@ -379,3 +407,31 @@ export const ConnectionModelFormSchema: any[] = [
colProps
:
{
lg
:
12
,
md
:
12
},
},
];
export
const
versionModelFormSchema
:
any
[]
=
[
{
field
:
'key'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'输入关联关系名称搜索'
,
},
colProps
:
{
lg
:
12
,
md
:
12
},
},
{
field
:
'operator'
,
component
:
'Select'
,
componentProps
:
{
placeholder
:
'发布人'
,
},
colProps
:
{
lg
:
12
,
md
:
12
},
},
{
field
:
'timeRange'
,
component
:
'RangePicker'
,
componentProps
:
{
format
:
'YYYY-MM-DD HH:mm:ss'
,
placeholder
:
[
'开始时间'
,
'结束时间'
],
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
src/views/dataWarehousePlanning/physicalModel/modelDetail/modelCreateLog.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
min-height=
"150"
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerCreateLogModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<Alert
type=
"success"
message=
"建表成功"
show-icon
/>
<div
style=
"margin: 20px 0"
>
日志如下
</div>
<div
style=
"margin-top: 10px; width: 100%; height: 100%"
>
<img
src=
"../../../../assets/images/createLog.png"
/>
</div>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
,
defineEmits
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
CreateFormSchema
}
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/model.data'
;
import
{
Alert
}
from
'ant-design-vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
defineOptions
({
name
:
'DebugModal'
});
const
emit
=
defineEmits
();
const
isUpdate
=
ref
(
true
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
CreateFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerCreateLogModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
height
:
420
,
showCancelBtn
:
false
,
okText
:
'关闭'
,
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
});
async
function
handleSubmit
()
{
emit
(
'setVersionFlag'
,
true
);
closeModal
();
}
const
getTitle
=
computed
(()
=>
'自动建表'
);
</
script
>
<
style
lang=
"scss"
scoped
>
.erchart-img
{
height
:
100px
;
}
</
style
>
src/views/dataWarehousePlanning/physicalModel/modelDetail/modelCreateTable.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
min-height=
"100"
width=
"30%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<Alert
message=
"当前物理模型未关联元数据,可进行新建创建,"
show-icon
/>
<BasicForm
style=
"margin-top: 20px"
@
register=
"registerForm"
>
<template
#
fileMethods=
"
{ model, field }">
<div
style=
"display: flex"
>
<div
style=
"width: 200px; margin-top: -6px; margin-left: 100px; font-weight: 100"
>
版本描述:1
<br
/>
创建时间:2023-0615 11:09:12
</div
>
</div>
</
template
>
</BasicForm>
<ModelDDL
@
register=
"registerDDLModal"
@
set-create-flag=
"setCreateFlag"
/>
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
,
defineEmits
}
from
'vue'
;
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
CreateFormSchema
}
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/model.data'
;
import
{
Alert
}
from
'ant-design-vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
ModelDDL
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelDDL.vue'
;
defineOptions
({
name
:
'DebugModal'
});
const
[
registerDDLModal
,
{
openModal
:
openDDLModal
}]
=
useModal
();
const
getTitle
=
computed
(()
=>
'自动建表'
);
const
emit
=
defineEmits
();
const
isUpdate
=
ref
(
true
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
CreateFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
height
:
420
,
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
});
async
function
handleSubmit
()
{
openDDLModal
(
true
,
{
isUpdate
:
false
,
});
}
function
setCreateFlag
()
{
closeModal
();
// try {
// const values = await validate();
// setModalProps({ confirmLoading: true });
// // TODO custom api
// closeModal();
// let rowId;
// emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
// } finally {
// setModalProps({ confirmLoading: false });
// }
}
</
script
>
<
style
lang=
"scss"
scoped
>
.erchart-img
{
height
:
100px
;
}
</
style
>
src/views/dataWarehousePlanning/physicalModel/modelDetail/modelDDL.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
min-height=
"200"
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerDDLModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
ww
>
<div
style=
"margin-bottom: 20px"
>
本次建表DDL详情如下,是否确认建表?
</div>
<div
style=
"display: flex; justify-content: space-between"
>
<div>
DDL详情
</div>
<div>
<a-button><Icon
icon=
"ion:create-outline"
/></a-button>
<a-button><Icon
icon=
"ion:documents-outline"
/></a-button>
</div>
</div>
<div
style=
"margin-top: 10px; width: 100%; height: 100%"
>
<img
src=
"../../../../assets/images/createTable.png"
/>
</div>
<ModelCreateLog
@
register=
"registerCreateLogModal"
@
set-version-flag=
"setVersionFlag"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
,
defineEmits
}
from
'vue'
;
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
CreateFormSchema
}
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/model.data'
;
import
{
Alert
}
from
'ant-design-vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
ModelCreateLog
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelCreateLog.vue'
;
const
[
registerCreateLogModal
,
{
openModal
:
openCreateLogModal
}]
=
useModal
();
const
emit
=
defineEmits
();
defineOptions
({
name
:
'DebugModal'
});
const
isUpdate
=
ref
(
true
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
// //初始化表单
// const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
// labelWidth: 100,
// baseColProps: { lg: 12, md: 24 },
// schemas: CreateFormSchema,
// showActionButtonGroup: false,
// actionColOptions: {
// span: 23,
// },
// });
function
setVersionFlag
()
{
emit
(
'setCreateFlag'
);
closeModal
();
}
//初始化弹框
const
[
registerDDLModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
,
height
:
420
,
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
});
async
function
handleSubmit
()
{
openCreateLogModal
(
true
,
{
isUpdate
:
false
,
});
// try {
// const values = await validate();
// setModalProps({ confirmLoading: true });
// // TODO custom api
// closeModal();
// let rowId;
// emit('success', { isUpdate: unref(isUpdate), values: { ...values, id: rowId.value } });
// } finally {
// setModalProps({ confirmLoading: false });
// }
}
const
getTitle
=
computed
(()
=>
'DDL详情'
);
</
script
>
<
style
lang=
"scss"
scoped
>
.erchart-img
{
height
:
100px
;
}
</
style
>
src/views/dataWarehousePlanning/physicalModel/modelDetail/modelData.ts
View file @
a803e2ee
...
...
@@ -29,11 +29,10 @@ export const searchFormSchema: FormSchema[] = [
{
field
:
'nameOrExplain'
,
label
:
''
,
component
:
'Input'
,
component
:
'Input
Search
'
,
componentProps
:
{
placeholder
:
'输入字段名称或字段注释搜索'
,
},
colProps
:
{
span
:
12
},
},
];
export
const
entityData
:
any
[]
=
[
...
...
@@ -75,3 +74,29 @@ export const sqlDevelopData: any[] = [
operateName
:
'admin'
,
},
];
export
const
versionTreeData
:
any
[]
=
[
{
version
:
'V1.x'
,
time
:
'2023/06/15 15:34:40'
,
remark
:
''
,
created
:
''
,
key
:
'0-0'
,
children
:
[
{
version
:
'V1.1'
,
time
:
'2023/06/15 15:43:08'
,
remark
:
'v2'
,
created
:
'admin'
,
key
:
'0-0-0'
,
},
{
version
:
'V1.0'
,
time
:
'2023/06/15 15:34:40'
,
remark
:
'1'
,
created
:
''
,
key
:
'0-0-1'
,
},
],
},
];
src/views/dataWarehousePlanning/physicalModel/modelDetail/modelDebug.vue
View file @
a803e2ee
<
template
>
<BasicModal
min-height=
"200"
width=
"3
2
%"
width=
"3
0
%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
>
<div
style=
"width: 100%; height: 100%"
>
<Alert
type=
"success"
message=
"调试成功"
show-icon
/>
<div
style=
"margin-top: 10px; width: 100%; height: 100%"
>
<img
src=
"../../../../assets/images/debug.png"
/>
</div>
</BasicModal>
...
...
@@ -14,6 +15,7 @@
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
Alert
}
from
"ant-design-vue"
;
defineOptions
({
name
:
'DebugModal'
});
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/modelMoreCreate.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerVersionModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<div
style=
"margin: 0 0 20px 7px"
>
可建表物理模型列表如下:
</div>
<BasicTable
@
register=
"registerTable"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
unref
}
from
'vue'
;
import
BasicTable
from
'@/components/Table/src/BasicTable.vue'
;
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
useTable
}
from
'@/components/Table'
;
import
{
moreCreateData
,
TreeSystem
,
}
from
'@/views/dataWarehousePlanning/physicalModel/modelData'
;
import
{
columnsMoreCreate
,
columnsSystem
,
searchFormSchema
,
}
from
'@/views/dataWarehousePlanning/physicalModel/model.data'
;
const
getTitle
=
ref
(
'确认批量建表?'
);
const
isUpdate
=
ref
(
false
);
const
isMove
=
ref
(
false
);
const
[
registerTable
]
=
useTable
({
title
:
''
,
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
moreCreateData
.
length
,
code
:
''
,
message
:
''
,
data
:
moreCreateData
,
};
},
columns
:
columnsMoreCreate
,
showIndexColumn
:
false
,
rowSelection
:
false
,
striped
:
false
,
useSearchForm
:
false
,
showTableSetting
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
});
//初始化弹框
const
[
registerVersionModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
isMove
.
value
=
!!
data
?.
isMove
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
// 塞值
await
setFieldsValue
({
...
data
.
record
,
});
}
});
async
function
handleSubmit
()
{
closeModal
();
}
</
script
>
<
style
scoped
></
style
>
src/views/dataWarehousePlanning/physicalModel/modelDetail/sourceData.vue
View file @
a803e2ee
...
...
@@ -2,28 +2,19 @@
<div>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
type=
"text"
@
click=
"handleCrossModel"
style=
"color: #0960
BD
"
><Icon
icon=
"
ion:link-outline"
style=
"transform: rotate(-45deg)
"
/>
关联元数据
</a-button
<a-button
type=
"text"
@
click=
"handleCrossModel"
style=
"color: #0960
bd
"
><Icon
icon=
"
ant-design:link-outlined
"
/>
关联元数据
</a-button
>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"
editFlag
? [
{
icon: 'clarity:contract-line',
onClick: handleEntityEditModel.bind(null, record),
},
]
: [
{
icon: 'clarity:contract-line',
onClick: handleEntityEditModel.bind(null, record),
},
]
"
:actions=
"[
{
icon: 'ant-design:link-outlined',
onClick: handleEntityEditModel.bind(null, record),
},
]"
/>
</
template
>
</template>
...
...
@@ -57,13 +48,7 @@
});
}
// 实体编辑
function
handleEntityEditModel
(
record
:
Recordable
)
{
// 跳转到详情
push
({
path
:
'/dataWarehousePlanning/logicalModel/entity-detail'
,
query
:
record
,
});
}
function
handleEntityEditModel
(
record
:
Recordable
)
{}
function
entitySuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
...
...
@@ -85,7 +70,7 @@
]
=
useTable
({
title
:
'关联元数据'
,
// 定高
scroll
:
{
y
:
150
},
scroll
:
{
y
:
150
},
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
...
...
@@ -98,7 +83,7 @@
message
:
''
,
data
:
entityData
,
};
return
{
...
response
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
// 列
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/sqlDevelop.vue
View file @
a803e2ee
...
...
@@ -5,27 +5,18 @@
<a-button
style=
"color: #0960bd"
type=
"text"
><PlusOutlined
/>
新建Sql文件
</a-button>
<a-button
style=
"color: #0960bd"
type=
"text"
>
批量解绑
</a-button>
<a-button
style=
"color: #0960bd"
type=
"text"
@
click=
"handleCrossModel"
><Icon
icon=
"
ion:link-outline"
style=
"transform: rotate(-45deg)
"
/>
关联Sql文件
</a-button
><Icon
icon=
"
ant-design:link-outlined
"
/>
关联Sql文件
</a-button
>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"
editFlag
? [
{
icon: 'clarity:contract-line',
onClick: handleEntityEditModel.bind(null, record),
},
]
: [
{
icon: 'clarity:contract-line',
onClick: handleEntityEditModel.bind(null, record),
},
]
"
:actions=
"[
{
icon: 'ant-design:link-outlined',
onClick: handleEntityEditModel.bind(null, record),
},
]"
/>
</
template
>
</template>
...
...
@@ -62,13 +53,7 @@
});
}
// 实体编辑
function
handleEntityEditModel
(
record
:
Recordable
)
{
// 跳转到详情
push
({
path
:
'/dataWarehousePlanning/physicalModel/entity-detail'
,
query
:
record
,
});
}
function
handleEntityEditModel
(
record
:
Recordable
)
{}
function
entitySuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
...
...
@@ -90,7 +75,7 @@
]
=
useTable
({
title
:
'Sql开发'
,
// 定高
scroll
:
{
y
:
150
},
scroll
:
{
y
:
150
},
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
...
...
@@ -103,7 +88,7 @@
message
:
''
,
data
:
sqlDevelopData
,
};
return
{
...
response
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
// 列
...
...
src/views/dataWarehousePlanning/physicalModel/modelDetail/versionModel.vue
0 → 100644
View file @
a803e2ee
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerVersionModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
<BasicTree
:treeData=
"versionTreeData"
>
<template
#
title=
"item"
>
<div
style=
"flex: 1"
>
<div
style=
"display: flex"
>
<div
style=
"flex: 1"
>
<span
style=
"font-size: 18px"
>
{{
item
.
version
}}
</span>
<span
style=
"margin-left: 10px"
>
{{
item
.
time
}}
</span>
<span
style=
"margin-left: 30px"
>
{{
item
.
created
}}
</span>
</div>
</div>
<div>
<span>
{{
item
.
remark
}}
</span>
</div>
</div>
</
template
>
</BasicTree>
<div
style=
"display: flex"
>
<Alert
style=
"width: 100px; background-color: #ffffff; border-color: #ffffff"
type=
"success"
message=
"已建表"
show-icon
/>
<a-button
style=
"margin-top: 4px"
type=
"text"
@
click=
"handleDDL"
>
查看DDL详情
<Icon
icon=
"ant-design:ellipsis-outlined"
/></a-button>
</div>
<ModelDDL
@
register=
"registerDDLModal"
/>
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
unref
,
defineEmits
}
from
'vue'
;
import
{
Tabs
,
Descriptions
,
Alert
,
Modal
,
message
}
from
'ant-design-vue'
;
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicTree
}
from
'@/components/Tree'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
versionModelFormSchema
}
from
'./model.data'
;
import
{
versionTreeData
}
from
'./modelData'
;
import
{
FileSearchOutlined
,
VerticalAlignMiddleOutlined
,
RollbackOutlined
,
DeleteOutlined
,
}
from
'@ant-design/icons-vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
ModelDDL
from
'@/views/dataWarehousePlanning/physicalModel/modelDetail/modelDDL.vue'
;
const
{
createMessage
}
=
useMessage
();
const
{
push
}
=
useRouter
();
const
[
registerDDLModal
,
{
openModal
:
openDDLModal
}]
=
useModal
();
defineOptions
({
name
:
'ModelModal'
});
const
emit
=
defineEmits
();
const
isUpdate
=
ref
(
false
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
getFieldsValue
,
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
versionModelFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerVersionModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
await
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
isMove
.
value
=
!!
data
?.
isMove
;
if
(
unref
(
isUpdate
))
{
// 获取行数据的id
rowId
.
value
=
data
.
record
.
businessId
;
// 塞值
await
setFieldsValue
({
...
data
.
record
,
});
}
});
function
handleDetail
()
{
emit
(
'setVersionFlag'
,
true
);
closeModal
();
}
function
handleComparison
()
{
push
({
path
:
'/dataWarehousePlanning/logicalModel/version-comparison'
,
});
}
function
handleRollBack
(
item
)
{
Modal
.
confirm
({
title
:
'回滚版本'
,
content
:
'确定要滚动至'
+
item
.
version
+
'版本吗?'
,
onOk
:
()
=>
{
createMessage
.
success
(
'回滚成功!'
);
},
});
}
function
handleDDL
()
{
openDDLModal
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDelete
(
item
)
{
Modal
.
confirm
({
title
:
'删除版本'
,
content
:
'确定要删除'
+
item
.
version
+
'版本吗?'
,
onOk
:
()
=>
{
createMessage
.
success
(
'删除成功!'
);
},
});
}
// const getTitle = computed(() => (isUpdate.value ? '编辑实体' : '新建实体'));
const
getTitle
=
'版本管理'
;
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
closeModal
();
}
</
script
>
<
style
scoped
>
.my-icon
{
font-size
:
18px
;
margin-right
:
10px
;
}
</
style
>
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