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
42013e8a
Commit
42013e8a
authored
Nov 08, 2024
by
罗林杰
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
80dffd56
d32c110e
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1516 additions
and
853 deletions
+1516
-853
index.ts
src/router/routes/index.ts
+3
-3
index.vue
src/views/dataWarehousePlanning/logicalModel/index.vue
+174
-168
model.data.ts
src/views/dataWarehousePlanning/logicalModel/model.data.ts
+14
-5
ModelTree.vue
...aWarehousePlanning/logicalModel/modelDetail/ModelTree.vue
+1
-1
connectionModel.vue
...ousePlanning/logicalModel/modelDetail/connectionModel.vue
+57
-0
connectionTable.vue
...ousePlanning/logicalModel/modelDetail/connectionTable.vue
+144
-0
crossModel.vue
...WarehousePlanning/logicalModel/modelDetail/crossModel.vue
+59
-0
crossTable.vue
...WarehousePlanning/logicalModel/modelDetail/crossTable.vue
+140
-0
entityModel.vue
...arehousePlanning/logicalModel/modelDetail/entityModel.vue
+57
-0
entityTable.vue
...arehousePlanning/logicalModel/modelDetail/entityTable.vue
+137
-0
index.vue
.../dataWarehousePlanning/logicalModel/modelDetail/index.vue
+235
-0
model.data.ts
...aWarehousePlanning/logicalModel/modelDetail/model.data.ts
+401
-0
modelData.ts
...taWarehousePlanning/logicalModel/modelDetail/modelData.ts
+87
-0
modelEdit.vue
...aWarehousePlanning/logicalModel/modelDetail/modelEdit.vue
+5
-7
modelModal.vue
...WarehousePlanning/logicalModel/modelDetail/modelModal.vue
+1
-1
index.vue
...ws/dataWarehousePlanning/logicalModel/modelEdit/index.vue
+0
-238
modelData.ts
...dataWarehousePlanning/logicalModel/modelEdit/modelData.ts
+0
-429
modelModal.vue
src/views/dataWarehousePlanning/logicalModel/modelModal.vue
+1
-1
No files found.
src/router/routes/index.ts
View file @
42013e8a
...
...
@@ -118,11 +118,11 @@ export const DataWarehousePlanningRoute: AppRouteRecordRaw = {
},
children
:
[
{
path
:
'logicalModel/
edit
'
,
path
:
'logicalModel/
detail
'
,
name
:
'logicalModel'
,
component
:
()
=>
import
(
'@/views/dataWarehousePlanning/logicalModel/model
Edit
/index.vue'
),
component
:
()
=>
import
(
'@/views/dataWarehousePlanning/logicalModel/model
Detail
/index.vue'
),
meta
:
{
title
:
'
编辑逻辑模型
'
,
title
:
'
逻辑模型详情
'
,
icon
:
''
,
},
},
...
...
src/views/dataWarehousePlanning/logicalModel/index.vue
View file @
42013e8a
...
...
@@ -3,8 +3,15 @@
<ModelTree
class=
"w-1/4 xl:w-1/5"
@
select=
"handleSelect"
/>
<BasicTable
@
register=
"registerTable"
class=
"w-3/4 xl:w-4/5"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
type=
"primary"
>
转换记录
</a-button>
<a-button
type=
"primary"
>
转物理模型
</a-button>
<a-button
type=
"primary"
>
设为待发布
</a-button>
<a-button
type=
"primary"
>
发布
</a-button>
<a-button
type=
"primary"
@
click=
"handleImport"
>
导入
</a-button>
<a-button
type=
"primary"
@
click=
"handleExport"
>
导出
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateFile"
>
新建文件夹
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateModel"
>
新建元模型
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateModel"
>
新建文件
</a-button>
<a-button
type=
"primary"
>
删除
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
...
...
@@ -41,37 +48,37 @@
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
ModelTree
from
'./ModelTree.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
ModelModal
from
'./modelModal.vue'
;
import
ModelEdit
from
'./modelEdit.vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
columns
,
searchFormSchema
}
from
'./model.data'
;
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
import
{
reactive
,
onMounted
,
ref
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
ModelTree
from
'./ModelTree.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
ModelModal
from
'./modelModal.vue'
;
import
ModelEdit
from
'./modelEdit.vue'
;
import
{
useRouter
,
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
columns
,
searchFormSchema
}
from
'./model.data'
;
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
defineOptions
({
name
:
'AccountManagement'
});
const
{
createMessage
}
=
useMessage
();
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
go
=
useGo
();
const
{
push
}
=
useRouter
();
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerModelEdit
,
{
openModal
:
openEditUserModal
}]
=
useModal
();
const
[
registerAddUserModal
,
{
openModal
:
addUserModal
}]
=
useModal
();
const
[
registerMoveUser
,
{
openModal
:
openMoveUserModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
[
defineOptions
({
name
:
'AccountManagement'
});
const
{
createMessage
}
=
useMessage
();
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
go
=
useGo
();
const
{
push
}
=
useRouter
();
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerModelEdit
,
{
openModal
:
openEditUserModal
}]
=
useModal
();
const
[
registerAddUserModal
,
{
openModal
:
addUserModal
}]
=
useModal
();
const
[
registerMoveUser
,
{
openModal
:
openMoveUserModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},]
=
useTable
({
title
:
''
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
'逻辑模型'
,
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
...
...
@@ -84,9 +91,8 @@ const [
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
var
data
=
[];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var
data
=
[];
let
data
=
[];
data
=
tableData
.
value
.
filter
((
item
)
=>
item
.
businessId
!==
100
);
return
{
...
response
,
data
:
data
};
},
...
...
@@ -112,50 +118,50 @@ const [
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
});
/** 新增元模型*/
function
handleCreateModel
()
{
/** 新增元模型*/
function
handleCreateModel
()
{
openModal
(
true
,
{
isUpdate
:
false
,
});
}
}
/** 新增文件夹*/
function
handleCreateFile
()
{
open
Modal
(
true
,
{
/** 新增文件夹*/
function
handleCreateFile
()
{
openEditUser
Modal
(
true
,
{
isUpdate
:
false
,
});
}
}
/** 移动按钮*/
function
handleMove
(
record
:
Recordable
)
{
/** 移动按钮*/
function
handleMove
(
record
:
Recordable
)
{
openMoveUserModal
(
true
,
{
record
,
isMove
:
true
,
});
}
}
/** 编辑按钮*/
function
handleEdit
(
record
:
Recordable
)
{
/** 编辑按钮*/
function
handleEdit
(
record
:
Recordable
)
{
openEditUserModal
(
true
,
{
record
,
isUpdate
:
true
,
});
}
}
/** 删除按钮*/
function
handleDelete
(
record
:
Recordable
)
{
/** 删除按钮*/
function
handleDelete
(
record
:
Recordable
)
{
tableData
.
value
.
splice
(
tableData
.
value
.
findIndex
((
item
)
=>
item
.
businessId
===
record
.
businessId
),
1
,
);
createMessage
.
success
(
'删除成功!'
);
reload
();
}
}
/** 新增/编辑成功*/
function
handleSuccess
({
isUpdate
,
values
})
{
/** 新增/编辑成功*/
function
handleSuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
//修改表单的值
...
...
@@ -165,18 +171,18 @@ function handleSuccess({ isUpdate, values }) {
tableData
.
value
.
push
(
values
);
reload
();
}
}
}
/** 进入编辑逻辑模型 */
function
goEdit
(
record
)
{
console
.
log
(
'record:'
,
record
)
/** 进入编辑逻辑模型 */
function
goEdit
(
record
)
{
console
.
log
(
'record:'
,
record
);
push
({
path
:
'/dataWarehousePlanning/logicalModel/edit
'
,
path
:
'/dataWarehousePlanning/logicalModel/detail
'
,
query
:
record
,
});
}
/** 移动*/
function
handleMoveSuccess
({
isMove
,
values
})
{
}
/** 移动*/
function
handleMoveSuccess
({
isMove
,
values
})
{
const
rowSelection
=
getRowSelection
().
selectedRowKeys
;
if
(
rowSelection
.
length
>
0
)
{
//批量移动
...
...
@@ -188,19 +194,19 @@ function handleMoveSuccess({ isMove, values }) {
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
}
reload
();
}
}
/** 部门树的select*/
function
handleSelect
(
modelId
=
''
)
{
/** 部门树的select*/
function
handleSelect
(
modelId
=
''
)
{
searchInfo
.
modelId
=
modelId
;
reload
();
}
}
function
handleView
(
record
:
Recordable
)
{
function
handleView
(
record
:
Recordable
)
{
go
(
'/system/account_detail/'
+
record
.
id
);
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
...
...
@@ -215,8 +221,8 @@ onMounted(() => {
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
const
params
=
Object
.
assign
({},
getSearchInfo
(),
getForm
().
getFieldsValue
());
filterStore
.
setSearchParams
({
path
:
from
.
path
,
...
...
@@ -225,5 +231,5 @@ onBeforeRouteLeave((to, from, next) => {
},
});
next
();
// 允许导航
});
});
</
script
>
src/views/dataWarehousePlanning/logicalModel/model.data.ts
View file @
42013e8a
...
...
@@ -52,12 +52,11 @@ export const columns: BasicColumn[] = [
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
label
:
'名称'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'
搜索主题域名称、英文名
'
,
placeholder
:
'
输入关键字搜索
'
,
},
colProps
:
{
span
:
7
},
colProps
:
{
span
:
4
},
},
];
export
const
searchFormTwoSchema
:
FormSchema
[]
=
[
...
...
@@ -84,11 +83,10 @@ export const modelFormSchema: any[] = [
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
{
field
:
'name'
,
label
:
'
元模型
名称'
,
label
:
'
文件
名称'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
rules
:
[
...
...
@@ -98,6 +96,17 @@ export const modelFormSchema: any[] = [
},
],
},
{
field
:
'type'
,
label
:
'文件类型'
,
component
:
'Input'
,
componentProps
:
{
defaultValue
:
'逻辑模型'
,
disabled
:
true
,
readOnly
:
true
,
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
export
const
editFormSchema
:
any
[]
=
[
{
...
...
src/views/dataWarehousePlanning/logicalModel/model
Edit
/ModelTree.vue
→
src/views/dataWarehousePlanning/logicalModel/model
Detail
/ModelTree.vue
View file @
42013e8a
...
...
@@ -15,7 +15,7 @@
import
{
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicTree
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
Nullable
}
from
'@vben/types'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/model
Edit
/modelData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/model
Detail
/modelData'
;
defineOptions
({
name
:
'DeptTree'
});
...
...
src/views/dataWarehousePlanning/logicalModel/modelDetail/connectionModel.vue
0 → 100644
View file @
42013e8a
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
ConnectionModelFormSchema
}
from
'./model.data'
;
defineOptions
({
name
:
'ModelModal'
});
const
isUpdate
=
ref
(
false
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
ConnectionModelFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
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
,
});
}
});
const
getTitle
=
computed
(()
=>
(
isUpdate
.
value
?
'编辑关联'
:
'新建关联'
));
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
closeModal
();
}
</
script
>
src/views/dataWarehousePlanning/logicalModel/modelDetail/connectionTable.vue
0 → 100644
View file @
42013e8a
<
template
>
<div>
<span
class=
"table-title"
style=
"font-size: 18px; margin: 12px 10px 0"
>
实体关联关系
</span>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
type=
"primary"
v-if=
"editFlag"
>
批量删除
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
@
click=
"handleConnectionModel"
>
新建关联
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
// 编辑
icon: 'clarity:note-edit-line',
onClick: handleConnectionEditModel.bind(null, record),
},
{
// 删除
icon: 'ant-design:delete-outlined',
color: 'error',
},
]"
/>
</
template
>
</template>
</BasicTable>
<ConnectionModel
@
register=
"connectionModal"
@
success=
"connectionSuccess"
/>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
,
defineProps
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
connectionFormSchema
,
connectionTable
}
from
'./model.data'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
import
{
connectionData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
ConnectionModel
from
'./connectionModel.vue'
;
defineOptions
({
name
:
'AccountManagement'
});
const
props
=
defineProps
({
editFlag
:
Boolean
})
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
// 模态框
const
[
connectionModal
,
{
openModal
}]
=
useModal
();
// 实体新增
function
handleConnectionModel
()
{
openModal
(
true
,
{
isUpdate
:
false
,
});
}
// 实体编辑
function
handleConnectionEditModel
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
});
}
function
connectionSuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
//修改表单的值
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
reload
();
}
else
{
tableData
.
value
.
push
(
values
);
reload
();
}
}
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
''
,
// 定高
scroll
:
{
y
:
150
},
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
connectionData
.
length
,
code
:
''
,
message
:
''
,
data
:
connectionData
,
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
// 列
columns
:
connectionTable
,
rowSelection
:
true
,
// 搜索
formConfig
:
{
labelWidth
:
120
,
schemas
:
connectionFormSchema
,
autoSubmitOnEnter
:
true
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
actionColumn
:
{
width
:
150
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]);
getForm
().
setFieldsValue
({
page
:
params
.
page
,
pageSize
:
params
.
pageSize
,
username
:
params
.
username
,
flag
:
params
.
flag
,
});
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
next
();
// 允许导航
});
</
script
>
<
style
scoped
lang=
"scss"
>
.vben-basic-table-form-container
{
padding
:
0
;
}
</
style
>
src/views/dataWarehousePlanning/logicalModel/modelDetail/crossModel.vue
0 → 100644
View file @
42013e8a
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
ConnectionModelFormSchema
}
from
'./model.data'
;
defineOptions
({
name
:
'ModelModal'
});
const
isUpdate
=
ref
(
false
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
ConnectionModelFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
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
,
});
}
});
const
getTitle
=
computed
(()
=>
isUpdate
.
value
?
'编辑跨模型实体关联关系'
:
'新建跨模型实体关联关系'
,
);
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
closeModal
();
}
</
script
>
src/views/dataWarehousePlanning/logicalModel/modelDetail/crossTable.vue
0 → 100644
View file @
42013e8a
<
template
>
<div>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
type=
"primary"
><DeleteTwoTone
/>
批量删除
</a-button>
<a-button
type=
"primary"
@
click=
"handleCrossModel"
><PlusCircleTwoTone
/>
新增关联关系
</a-button
>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
icon: 'clarity:note-edit-line',
onClick: handleCrossEditModel.bind(null, record),
},
{
icon: 'ant-design:delete-outlined',
color: 'error',
},
]"
/>
</
template
>
</template>
</BasicTable>
<CrossModel
@
register=
"crossModal"
@
success=
"crossSuccess"
/>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
crossFormSchema
,
crossTable
}
from
'./model.data'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
import
{
crossData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'
;
import
{
DeleteTwoTone
,
PlusCircleTwoTone
}
from
'@ant-design/icons-vue'
;
import
CrossModel
from
'./crossModel.vue'
;
import
{
useModal
}
from
'@/components/Modal'
;
defineOptions
({
name
:
'AccountManagement'
});
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
// 模态框
const
[
crossModal
,
{
openModal
}]
=
useModal
();
// 实体新增
function
handleCrossModel
()
{
openModal
(
true
,
{
isUpdate
:
false
,
});
}
// 实体编辑
function
handleCrossEditModel
(
record
:
Recordable
)
{
openModal
(
true
,
{
record
,
isUpdate
:
true
,
});
}
// 模态框保存
function
crossSuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
//修改表单的值
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
reload
();
}
else
{
tableData
.
value
.
push
(
values
);
reload
();
}
}
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
'跨模型实体关联关系'
,
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
crossData
.
length
,
code
:
''
,
message
:
''
,
data
:
crossData
,
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
// 列
columns
:
crossTable
,
rowSelection
:
true
,
// 搜索
formConfig
:
{
labelWidth
:
120
,
schemas
:
crossFormSchema
,
autoSubmitOnEnter
:
true
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
actionColumn
:
{
width
:
150
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]);
getForm
().
setFieldsValue
({
page
:
params
.
page
,
pageSize
:
params
.
pageSize
,
username
:
params
.
username
,
flag
:
params
.
flag
,
});
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
next
();
// 允许导航
});
</
script
>
<
style
scoped
lang=
"scss"
>
.vben-basic-table-form-container
{
padding
:
0
;
}
</
style
>
src/views/dataWarehousePlanning/logicalModel/modelDetail/entityModel.vue
0 → 100644
View file @
42013e8a
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
EntityModelFormSchema
}
from
'./model.data'
;
defineOptions
({
name
:
'ModelModal'
});
const
isUpdate
=
ref
(
false
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
24
},
schemas
:
EntityModelFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
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
,
});
}
});
const
getTitle
=
computed
(()
=>
(
isUpdate
.
value
?
'编辑实体'
:
'新建实体'
));
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
closeModal
();
}
</
script
>
src/views/dataWarehousePlanning/logicalModel/modelDetail/entityTable.vue
0 → 100644
View file @
42013e8a
<
template
>
<div>
<span
class=
"table-title"
style=
"font-size: 18px; margin: 12px 10px 0"
>
实体信息
</span>
<BasicTable
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
type=
"primary"
v-if=
"editFlag"
>
编辑ER图
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
>
批量删除
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
@
click=
"handleEntityModel"
>
新建实体
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
icon: 'clarity:contract-line',
onClick: handleEntityEditModel.bind(null, record),
},
]"
/>
</
template
>
</template>
</BasicTable>
<EntityModel
@
register=
"entityModal"
@
success=
"entitySuccess"
/>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
,
defineProps
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
entityColumns
,
entityFormSchema
}
from
'./model.data'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
import
{
entityData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'
;
import
EntityModel
from
'./entityModel.vue'
;
import
{
useModal
}
from
'@/components/Modal'
;
defineOptions
({
name
:
'AccountManagement'
});
const
props
=
defineProps
({
editFlag
:
Boolean
})
// 模态框
const
[
entityModal
,
{
openModal
}]
=
useModal
();
// 实体新增
function
handleEntityModel
()
{
openModal
(
true
,
{
isUpdate
:
false
,
});
}
// 实体编辑
function
handleEntityEditModel
(
record
:
Recordable
)
{
// 跳转到详情
}
function
entitySuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
//修改表单的值
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
reload
();
}
else
{
tableData
.
value
.
push
(
values
);
reload
();
}
}
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
''
,
// 定高
scroll
:
{
y
:
150
},
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
entityData
.
length
,
code
:
''
,
message
:
''
,
data
:
entityData
,
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
// 列
columns
:
entityColumns
,
rowSelection
:
true
,
// 搜索
formConfig
:
{
labelWidth
:
120
,
schemas
:
entityFormSchema
,
autoSubmitOnEnter
:
true
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
actionColumn
:
{
width
:
150
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]);
getForm
().
setFieldsValue
({
page
:
params
.
page
,
pageSize
:
params
.
pageSize
,
username
:
params
.
username
,
flag
:
params
.
flag
,
});
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
next
();
// 允许导航
});
</
script
>
<
style
scoped
lang=
"scss"
>
.vben-basic-table-form-container
{
padding
:
0
;
}
</
style
>
src/views/dataWarehousePlanning/logicalModel/modelDetail/index.vue
0 → 100644
View file @
42013e8a
<
template
>
<PageWrapper
:title=
"modelName"
contentBackground
headerSticky
>
<template
#
extra
>
<a-button
type=
"primary"
v-if=
"!editFlag"
:disabled=
"!info"
>
转物理模型
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
>
版本管理
</a-button>
<a-button
type=
"primary"
v-if=
"!editFlag"
:disabled=
"!info"
>
ER图
</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"
@
click=
"handleSave"
>
保存
</a-button>
<a-button
type=
"primary"
v-if=
"editFlag"
@
click=
"handleCancel"
>
取消
</a-button>
</
template
>
<
template
#
footer
>
<Tabs
v-model:activeKey=
"tabsKey"
>
<Tabs
.
TabPane
key=
"1"
tab=
"基本信息"
>
<Descriptions
v-if=
"info"
title=
"基本信息"
style=
"margin: 10px 12px"
:column=
"2"
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
模型描述:
</span
><a-input
v-if=
"editFlag"
v-model:value=
"info.txt"
/><span
v-else
>
{{
info
.
txt
}}
</span>
</Descriptions
.Item
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
实体数量:
</span>
<a-input
v-if=
"editFlag"
disabled
v-model:value=
"info.num"
/><span
v-else
>
{{
info
.
num
}}
</span>
</Descriptions
.Item
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
创建时间:
</span>
<a-input
v-if=
"editFlag"
disabled
v-model:value=
"info.createTime"
/><span
v-else
>
{{
info
.
createTime
}}
</span>
</Descriptions
.Item
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
更新时间:
</span>
<a-input
v-if=
"editFlag"
disabled
v-model:value=
"info.updateTime"
/><span
v-else
>
{{
info
.
updateTime
}}
</span>
</Descriptions
.Item
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
发布时间:
</span>
<a-input
v-if=
"editFlag"
disabled
v-model:value=
"info.uploadTime"
/><span
v-else
>
{{
info
.
uploadTime
}}
</span>
</Descriptions
.Item
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
创建者:
</span>
<a-input
v-if=
"editFlag"
disabled
v-model:value=
"info.createBy"
/><span
v-else
>
{{
info
.
createBy
}}
</span>
</Descriptions
.Item
>
<Descriptions
.
Item
style=
"padding-left: 40px"
><span
class=
"span-label"
>
发布者:
</span>
<a-input
v-if=
"editFlag"
disabled
v-model:value=
"info.uploadBy"
/><span
v-else
>
{{
info
.
uploadBy
}}
</span>
</Descriptions
.Item
>
</Descriptions>
<div
v-if=
"!info"
style=
"width: 100%; height: 200px; text-align: center; padding-top: 80px"
>
<span>
该逻辑模型未发布版本暂无内容
</span>
</div>
<!--
<BasicForm-->
<!-- autoFocusFirstItem-->
<!-- :labelWidth="100"-->
<!-- :schemas="schemas"-->
<!-- :actionColOptions="
{-->
<!-- span: 24,-->
<!-- }"-->
<!-- />-->
</Tabs
.TabPane
>
<Tabs
.
TabPane
key=
"2"
tab=
"实体"
style=
"overflow-y: hidden"
>
<EntityTable
:editFlag=
"editFlag"
/>
<ConnectionTable
:editFlag=
"editFlag"
/>
</Tabs
.TabPane
>
<Tabs
.
TabPane
key=
"3"
v-if=
"!editFlag"
tab=
"跨模型实体关联关系"
>
<CrossTable
/>
</Tabs
.TabPane
>
</Tabs>
</
template
>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
,
nextTick
}
from
'vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
Descriptions
,
Tabs
}
from
'ant-design-vue'
;
import
EntityTable
from
'./entityTable.vue'
;
import
ConnectionTable
from
'./connectionTable.vue'
;
import
CrossTable
from
'./crossTable.vue'
;
import
{
infoData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'
;
import
{
FormSchema
}
from
'@/components/Form'
;
import
{
useModal
}
from
'@/components/Modal'
;
const
[
registerModal
,
{
openModal
}]
=
useModal
();
defineOptions
({
name
:
'AccountManagement'
});
const
tableRefresh
=
ref
(
true
);
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
modelName
=
route
.
query
.
modelName
;
/**
* 属性定义
*/
const
tabsKey
=
ref
(
'1'
);
const
info
=
reactive
({
...
infoData
});
let
editFlag
=
ref
(
false
);
const
schemas
:
FormSchema
[]
=
[
{
field
:
'txt'
,
component
:
'Input'
,
defaultValue
:
info
.
txt
,
label
:
'模型描述:'
,
colProps
:
{
span
:
12
,
},
},
{
field
:
'num'
,
component
:
'Input'
,
defaultValue
:
info
.
num
,
label
:
'实体数量:'
,
colProps
:
{
span
:
12
,
},
},
{
field
:
'createTime'
,
component
:
'Input'
,
defaultValue
:
info
.
createTime
,
label
:
'创建时间:'
,
colProps
:
{
span
:
12
,
},
},
{
field
:
'updateTime'
,
component
:
'Input'
,
defaultValue
:
info
.
updateTime
,
label
:
'更新时间:'
,
colProps
:
{
span
:
12
,
},
},
{
field
:
'uploadTime'
,
component
:
'Input'
,
defaultValue
:
info
.
uploadTime
,
label
:
'发布时间:'
,
colProps
:
{
span
:
12
,
},
},
{
field
:
'createBy'
,
component
:
'Input'
,
defaultValue
:
info
.
createBy
,
label
:
'创建者:'
,
colProps
:
{
span
:
12
,
},
},
{
field
:
'uploadBy'
,
component
:
'Input'
,
defaultValue
:
info
.
uploadBy
,
label
:
'发布者:'
,
colProps
:
{
span
:
12
,
},
},
];
/**
* 导出
*/
function
handleExport
()
{
console
.
log
(
'导出'
);
}
/**
* 编辑
*/
function
handleEdit
()
{
editFlag
.
value
=
true
;
tabsKey
.
value
=
'1'
;
tableRefresh
.
value
=
false
;
nextTick
(()
=>
{
tableRefresh
.
value
=
true
;
});
console
.
log
(
'被调用'
,
editFlag
);
}
/**
* 保存
*/
function
handleSave
()
{
editFlag
.
value
=
false
;
tabsKey
.
value
=
'1'
;
}
/**
* 取消
*/
function
handleCancel
()
{
editFlag
.
value
=
false
;
tabsKey
.
value
=
'1'
;
}
onMounted
(()
=>
{
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
String
(
filterStore
.
getSearchParams
[
path
]
!==
{})))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]);
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
next
();
// 允许导航
});
</
script
>
<
style
scoped
>
.span-label
{
display
:
inline-block
;
margin-right
:
10px
;
width
:
70px
;
text-align
:
right
;
}
</
style
>
src/views/dataWarehousePlanning/logicalModel/model
Edit
/model.data.ts
→
src/views/dataWarehousePlanning/logicalModel/model
Detail
/model.data.ts
View file @
42013e8a
...
...
@@ -59,15 +59,158 @@ export const searchFormSchema: FormSchema[] = [
colProps
:
{
span
:
7
},
},
];
export
const
searchFormTwoSchema
:
FormSchema
[]
=
[
export
const
entityColumns
:
BasicColumn
[]
=
[
{
title
:
'实体名称'
,
dataIndex
:
'name'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'实体描述'
,
dataIndex
:
'txt'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'实体英文名'
,
dataIndex
:
'engName'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'资产责任人'
,
dataIndex
:
'person'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'所属部门'
,
dataIndex
:
'deptName'
,
width
:
150
,
},
];
export
const
entityFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'输入实体名称搜索'
,
},
colProps
:
{
span
:
4
},
},
];
export
const
connectionTable
:
BasicColumn
[]
=
[
{
title
:
'名称'
,
dataIndex
:
'name'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父实体名称'
,
dataIndex
:
'fatherName'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父实体属性PK'
,
dataIndex
:
'fatherPK'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父端基数'
,
dataIndex
:
'fatherNum'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'子实体名称'
,
dataIndex
:
'sonName'
,
width
:
150
,
},
{
title
:
'子实体属性PK'
,
dataIndex
:
'sonPK'
,
width
:
150
,
},
{
title
:
'子端基数'
,
dataIndex
:
'sonNum'
,
width
:
150
,
},
];
export
const
connectionFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'输入关联关系名称搜索'
,
},
colProps
:
{
span
:
4
},
},
];
export
const
crossTable
:
BasicColumn
[]
=
[
{
title
:
'名称'
,
dataIndex
:
'name'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父逻辑模型名称'
,
dataIndex
:
'fatherModelName'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父实体名称'
,
dataIndex
:
'fatherName'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父实体属性PK'
,
dataIndex
:
'fatherPK'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'父端基数'
,
dataIndex
:
'fatherNum'
,
width
:
150
,
// onEditRow: true,
},
{
title
:
'子逻辑模型名称'
,
dataIndex
:
'sonModelName'
,
width
:
150
,
},
{
title
:
'子实体名称'
,
dataIndex
:
'sonName'
,
width
:
150
,
},
{
title
:
'子实体属性PK'
,
dataIndex
:
'sonPK'
,
width
:
150
,
},
{
title
:
'子端基数'
,
dataIndex
:
'sonNum'
,
width
:
150
,
},
];
export
const
crossFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
label
:
'名称'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'输入关
键字搜索主题域名称、英文名
'
,
placeholder
:
'输入关
联关系名称搜索
'
,
},
colProps
:
{
span
:
10
},
colProps
:
{
span
:
4
},
},
];
export
const
modelFormSchema
:
any
[]
=
[
...
...
@@ -152,7 +295,7 @@ export const editFormSchema: any[] = [
component
:
'Input'
,
colProps
:
{
lg
:
12
,
md
:
12
},
},
]
]
;
/**移动*/
export
const
MoveFormSchema
:
any
[]
=
[
{
...
...
@@ -170,3 +313,89 @@ export const MoveFormSchema: any[] = [
required
:
true
,
},
];
// entityModel
export
const
EntityModelFormSchema
:
any
[]
=
[
{
field
:
'name'
,
label
:
'实体名称'
,
component
:
'Input'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'txt'
,
label
:
'实体描述'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'engName'
,
label
:
'英文实体名'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'person'
,
label
:
'资产责任人'
,
component
:
'Select'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'deptName'
,
label
:
'所属部门'
,
component
:
'Select'
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
// connectionModel
export
const
ConnectionModelFormSchema
:
any
[]
=
[
{
field
:
'name'
,
label
:
'名称'
,
component
:
'Input'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'fatherName'
,
label
:
'父实体名称'
,
component
:
'Select'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'fatherPK'
,
label
:
'父实体属性PK'
,
component
:
'Select'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'fatherNum'
,
label
:
'父端基数'
,
component
:
'Select'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'sonName'
,
label
:
'子实体名称'
,
component
:
'Select'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'sonPK'
,
label
:
'子实体属性PK'
,
component
:
'Select'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'sonNum'
,
label
:
'子端基数'
,
component
:
'Select'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
src/views/dataWarehousePlanning/logicalModel/modelDetail/modelData.ts
0 → 100644
View file @
42013e8a
export
const
infoData
=
{
txt
:
'DW层的数仓模型'
,
num
:
'2'
,
createTime
:
'2023-06-15 15:11:56'
,
updateTime
:
'2023-06-15 15:11:56'
,
uploadTime
:
'2023-06-15 15:43:09'
,
createBy
:
'admin'
,
uploadBy
:
'admin'
,
};
export
const
entityData
:
any
[]
=
[
{
businessId
:
'1'
,
name
:
'dw_产品合约行情历史'
,
txt
:
'dw_产品合约行情历史'
,
engName
:
'dw_prd_contract_quot_h_s'
,
person
:
'admin'
,
deptName
:
'机构管理/数据平台治理部'
,
},
{
businessId
:
'2'
,
name
:
'dw_合约'
,
txt
:
'dw_合约'
,
engName
:
'dw_prd_contract_f'
,
person
:
'admin'
,
deptName
:
'机构管理/数据平台治理部'
,
},
];
export
const
connectionData
:
any
[]
=
[
{
name
:
'合约_行情'
,
fatherName
:
'dw_合约'
,
fatherPK
:
'合约号'
,
fatherNum
:
'1'
,
sonName
:
'dw_产品合约行情历史'
,
sonPK
:
'合约号'
,
sonNum
:
'1'
,
},
{
name
:
'合约_行情'
,
fatherName
:
'dw_合约'
,
fatherPK
:
'合约号'
,
fatherNum
:
'1'
,
sonName
:
'dw_产品合约行情历史'
,
sonPK
:
'合约号'
,
sonNum
:
'1'
,
},
{
name
:
'合约_行情'
,
fatherName
:
'dw_合约'
,
fatherPK
:
'合约号'
,
fatherNum
:
'1'
,
sonName
:
'dw_产品合约行情历史'
,
sonPK
:
'合约号'
,
sonNum
:
'1'
,
},
{
name
:
'合约_行情'
,
fatherName
:
'dw_合约'
,
fatherPK
:
'合约号'
,
fatherNum
:
'1'
,
sonName
:
'dw_产品合约行情历史'
,
sonPK
:
'合约号'
,
sonNum
:
'1'
,
},
{
name
:
'合约_行情'
,
fatherName
:
'dw_合约'
,
fatherPK
:
'合约号'
,
fatherNum
:
'1'
,
sonName
:
'dw_产品合约行情历史'
,
sonPK
:
'合约号'
,
sonNum
:
'1'
,
},
];
export
const
crossData
:
any
[]
=
[
{
name
:
'合约_行情'
,
fatherModelName
:
'SDM_DM数仓模型'
,
fatherName
:
'dm_会员客户合约盈亏每日深汇'
,
fatherPK
:
'合约号'
,
fatherNum
:
'1'
,
sonModelName
:
'SDM_DM数仓模型'
,
sonName
:
'dw_合约'
,
sonPK
:
'合约号'
,
sonNum
:
'1'
,
},
];
src/views/dataWarehousePlanning/logicalModel/model
Edit
/modelEdit.vue
→
src/views/dataWarehousePlanning/logicalModel/model
Detail
/modelEdit.vue
View file @
42013e8a
...
...
@@ -7,8 +7,8 @@
@
ok=
"handleSubmit"
>
<Tabs
v-model:activeKey=
"planType"
size=
"large"
@
change=
"clickTab"
>
<a-tab-pane
key=
"基本信息"
tab=
"基本信息"
></a-tab-pane
>
<a-tab-pane
key=
"实体"
tab=
"实体"
></a-tab-pane
>
<a-tab-pane
key=
"基本信息"
tab=
"基本信息"
/
>
<a-tab-pane
key=
"实体"
tab=
"实体"
/
>
</Tabs>
<BasicForm
@
register=
"registerForm"
/>
</BasicModal>
...
...
@@ -18,7 +18,7 @@
import
{
Tabs
}
from
'ant-design-vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
editFormSchema
,
modelFormSchema
}
from
'./model.data'
;
import
{
editFormSchema
,
modelFormSchema
}
from
'./model.data'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
}
from
'@/views/metaModel/knowledgeModel/modelData'
;
import
{
router
}
from
'@/router'
;
...
...
@@ -30,7 +30,7 @@
const
isUpdate
=
ref
(
true
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
const
planType
=
ref
(
'基本信息'
)
const
planType
=
ref
(
'基本信息'
)
;
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
...
...
@@ -57,8 +57,7 @@
});
}
});
async
function
clickTab
(
value
){
}
async
function
clickTab
(
value
)
{}
const
getTitle
=
computed
(()
=>
'编辑文件夹'
);
/**确定按钮*/
...
...
@@ -72,4 +71,3 @@
closeModal
();
}
</
script
>
src/views/dataWarehousePlanning/logicalModel/model
Edit
/modelModal.vue
→
src/views/dataWarehousePlanning/logicalModel/model
Detail
/modelModal.vue
View file @
42013e8a
...
...
@@ -15,7 +15,7 @@
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
modelFormSchema
}
from
'./model.data'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/model
Edit
/modelData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/model
Detail
/modelData'
;
import
{
router
}
from
'@/router'
;
defineOptions
({
name
:
'ModelModal'
});
...
...
src/views/dataWarehousePlanning/logicalModel/modelEdit/index.vue
deleted
100644 → 0
View file @
80dffd56
<
template
>
<PageWrapper
dense
contentFullHeight
fixedHeight
contentClass=
"flex"
>
<ModelTree
class=
"w-1/4 xl:w-1/5"
@
select=
"handleSelect"
/>
<BasicTable
@
register=
"registerTable"
class=
"w-3/4 xl:w-4/5"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
type=
"primary"
@
click=
"handleImport"
>
导入
</a-button>
<a-button
type=
"primary"
@
click=
"handleExport"
>
导出
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateFile"
>
新建文件夹
</a-button>
<a-button
type=
"primary"
@
click=
"handleCreateModel"
>
新建文件
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
// icon: 'clarity:note-edit-line',
label: '编辑',
onClick: handleEdit.bind(null, record),
},
{
color: 'error',
label: '删除',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null, record),
},
},
{
label: '移动',
onClick: handleMove.bind(null, record),
},
]"
/>
</
template
>
</template>
</BasicTable>
<ModelModal
@
register=
"registerModal"
:modelData=
"modelData"
@
success=
"handleSuccess"
/>
<ModelEdit
@
register=
"registerModelEdit"
@
success=
"handleSuccess"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
onMounted
,
ref
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
ModelTree
from
'./ModelTree.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
ModelModal
from
'./modelModal.vue'
;
import
ModelEdit
from
'./ModelEdit.vue'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
columns
,
searchFormSchema
,
searchFormTwoSchema
}
from
'./model.data'
;
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
TreeData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelEdit/modelData'
;
defineOptions
({
name
:
'AccountManagement'
});
const
modelData
=
ref
({
titel
:
''
});
const
{
createMessage
}
=
useMessage
();
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
go
=
useGo
();
const
{
push
}
=
useRouter
();
const
[
registerModal
,
{
openModal
}]
=
useModal
();
const
[
registerModelEdit
,
{
openModal
:
openEditUserModal
}]
=
useModal
();
const
[
registerAddUserModal
,
{
openModal
:
addUserModal
}]
=
useModal
();
const
[
registerMoveUser
,
{
openModal
:
openMoveUserModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},]
=
useTable
({
title
:
''
,
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
var
data
=
[];
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
var
data
=
[];
data
=
tableData
.
value
.
filter
((
item
)
=>
item
.
businessId
!==
100
);
return
{
...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
columns
,
rowSelection
:
true
,
formConfig
:
{
labelWidth
:
120
,
schemas
:
searchFormTwoSchema
,
autoSubmitOnEnter
:
true
,
resetFunc
:
()
=>
{
searchInfo
.
modelId
=
''
;
},
},
useSearchForm
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
actionColumn
:
{
width
:
150
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
function
handleImport
(){
console
.
log
(
"导入"
)
}
function
handleExport
(){
console
.
log
(
"导出"
)
}
/** 新增文件*/
function
handleCreateModel
()
{
modelData
.
value
.
titel
=
"新增文件"
openModal
(
true
,
{
titel
:
"新增文件"
,
isUpdate
:
false
,
});
}
/** 新增文件夹*/
function
handleCreateFile
()
{
modelData
.
value
.
titel
=
"新增文件夹"
openModal
(
true
,
{
titel
:
"新增文件夹"
,
isUpdate
:
false
,
});
}
/** 移动按钮*/
function
handleMove
(
record
:
Recordable
)
{
openMoveUserModal
(
true
,
{
record
,
isMove
:
true
,
});
}
/** 编辑按钮*/
function
handleEdit
(
record
:
Recordable
)
{
openEditUserModal
(
true
,
{
record
,
isUpdate
:
true
,
});
}
/** 删除按钮*/
function
handleDelete
(
record
:
Recordable
)
{
tableData
.
value
.
splice
(
tableData
.
value
.
findIndex
((
item
)
=>
item
.
businessId
===
record
.
businessId
),
1
,
);
createMessage
.
success
(
'删除成功!'
);
reload
();
}
/** 新增/编辑成功*/
function
handleSuccess
({
isUpdate
,
values
})
{
if
(
isUpdate
)
{
// 注意:updateTableDataRecord要求表格的rowKey属性为string并且存在于每一行的record的keys中
//修改表单的值
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
reload
();
}
else
{
tableData
.
value
.
push
(
values
);
reload
();
}
}
/** 进入二级主题域 */
function
showDetails
(
record
)
{
push
({
path
:
'/monthlyPlan/monthlyPlanEdit'
,
query
:
record
.
modelName
,
});
}
/** 移动*/
function
handleMoveSuccess
({
isMove
,
values
})
{
const
rowSelection
=
getRowSelection
().
selectedRowKeys
;
if
(
rowSelection
.
length
>
0
)
{
//批量移动
for
(
let
i
=
0
;
i
<
rowSelection
.
length
;
i
++
)
{
const
result
=
updateTableDataRecord
(
values
[
i
].
institutionId
,
values
[
i
]);
}
}
else
{
//单个移动
const
result
=
updateTableDataRecord
(
values
.
businessId
,
values
);
}
reload
();
}
/** 部门树的select*/
function
handleSelect
(
modelId
=
''
)
{
searchInfo
.
modelId
=
modelId
;
reload
();
}
function
handleView
(
record
:
Recordable
)
{
go
(
'/system/account_detail/'
+
record
.
id
);
}
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]);
getForm
().
setFieldsValue
({
page
:
params
.
page
,
pageSize
:
params
.
pageSize
,
username
:
params
.
username
,
flag
:
params
.
flag
,
});
searchInfo
.
institutionId
=
params
.
institutionId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
const
params
=
Object
.
assign
({},
getSearchInfo
(),
getForm
().
getFieldsValue
());
filterStore
.
setSearchParams
({
path
:
from
.
path
,
param
:
{
...
params
,
},
});
next
();
// 允许导航
});
</
script
>
src/views/dataWarehousePlanning/logicalModel/modelEdit/modelData.ts
deleted
100644 → 0
View file @
80dffd56
import
{
getAllRoleList
}
from
'@/api/system/role/role'
;
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
import
{
h
}
from
'vue'
;
import
{
Tag
,
Switch
}
from
'ant-design-vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
changeFlagApi
}
from
'@/api/system/user/user'
;
// 引入开关组件
type
CheckedType
=
boolean
|
string
|
number
;
export
const
TreeData
:
any
[]
=
[
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
100
,
modelName
:
'知识库模型'
,
parentId
:
0
,
'code:'
:
'001'
,
ancestors
:
'0'
,
orderNum
:
0
,
holder
:
'admin'
,
createDate
:
'2024-10-24 10:04:04'
,
updateDate
:
'2024-10-24 10:04:04'
,
// "children" : [ ],
selectType
:
null
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
101
,
modelName
:
'知识库模型1'
,
EngName
:
'modelOne'
,
describe
:
'知识库模型1,数据多'
,
workArea
:
'默认工作组'
,
parentId
:
100
,
'code:'
:
'002'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
// "children" : [ ],
selectType
:
null
,
holder
:
'admin'
,
createDate
:
'2024-10-24 10:04:04'
,
updateDate
:
'2024-10-24 10:04:04'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
102
,
modelName
:
'知识库模型2'
,
EngName
:
'modelTwo'
,
describe
:
'知识库模型2,数据少'
,
workArea
:
'默认工作组'
,
parentId
:
100
,
'code:'
:
'002'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
// "children" : [ ],
selectType
:
null
,
holder
:
'admin'
,
createDate
:
'2024-10-24 10:04:04'
,
updateDate
:
'2024-10-24 10:04:04'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
103
,
modelName
:
'知识库模型3'
,
EngName
:
'modelThree'
,
describe
:
'知识库模型3,数据很多'
,
workArea
:
'默认工作组'
,
parentId
:
100
,
'code:'
:
'002'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
// "children" : [ ],
selectType
:
null
,
holder
:
'admin'
,
createDate
:
'2024-10-24 10:04:04'
,
updateDate
:
'2024-10-24 10:04:04'
,
},
];
export
const
modelData
:
any
[]
=
[
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
309
,
username
:
'yonghu1'
,
nickName
:
'测试用户1'
,
userType
:
'1'
,
name
:
'测试用户1'
,
createDate
:
'2024-10-24 10:04:04'
,
institutionId
:
105
,
institutionName
:
'财务部门'
,
code
:
'123f'
,
identity
:
'1'
,
roleIds
:
null
,
roleNames
:
'三级用户'
,
roleList
:
null
,
menuList
:
[],
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
310
,
username
:
'yonghu2'
,
nickName
:
'测试用户2'
,
userType
:
'1'
,
name
:
'测试用户2'
,
createDate
:
'2024-10-25 10:05:05'
,
sex
:
'0'
,
institutionId
:
105
,
institutionName
:
'财务部门'
,
code
:
'123a'
,
identity
:
'1'
,
roleIds
:
null
,
roleNames
:
null
,
roleList
:
null
,
menuList
:
[],
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
317
,
username
:
'yonghu3'
,
nickName
:
'测试用户3'
,
userType
:
'1'
,
name
:
'测试用户3'
,
createDate
:
'2024-10-26 10:06:06'
,
sex
:
'1'
,
institutionId
:
102
,
institutionName
:
'研发部门'
,
code
:
'123c'
,
identity
:
'1'
,
roleIds
:
null
,
roleNames
:
'超级管理员'
,
roleList
:
null
,
menuList
:
[],
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
318
,
username
:
'yonghu4'
,
nickName
:
'测试用户4'
,
userType
:
'1'
,
name
:
'测试用户4'
,
createDate
:
'2024-10-26 10:06:06'
,
sex
:
'1'
,
institutionId
:
102
,
institutionName
:
'研发部门'
,
code
:
'123b'
,
identity
:
'1'
,
roleIds
:
null
,
roleNames
:
'超级管理员'
,
roleList
:
null
,
menuList
:
[],
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
319
,
username
:
'yonghu5'
,
nickName
:
'测试用户5'
,
userType
:
'1'
,
name
:
'测试用户5'
,
createDate
:
'2024-10-26 10:06:06'
,
sex
:
'1'
,
institutionId
:
102
,
institutionName
:
'研发部门'
,
code
:
'123x'
,
identity
:
'1'
,
roleIds
:
null
,
roleNames
:
'超级管理员'
,
roleList
:
null
,
menuList
:
[],
},
];
export
const
editTableData
:
any
[]
=
[
{
businessId
:
1
,
name
:
'数据源'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'库名'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'表名'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'资产类型'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'表类型'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'表注释'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'存储类型'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'是否为事务表'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'创建时间'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'创建者'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'发布时间'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'发布者'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
];
export
const
editColumnData
:
any
[]
=
[
{
businessId
:
1
,
name
:
'列名'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'字段类型'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'字段类型参数'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'长度'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'精度'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'是否可为空'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'字段注释'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
];
export
const
editBucketData
:
any
[]
=
[
{
businessId
:
1
,
name
:
'分桶数'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'分桶字段'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'排序字段'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'排序方式'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
];
export
const
editAreaData
:
any
[]
=
[
{
businessId
:
1
,
name
:
'分区类型'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'分区字段'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'分区名'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
{
businessId
:
1
,
name
:
'分区值'
,
description
:
''
,
englishName
:
''
,
isWrite
:
0
,
isShow
:
0
,
type
:
''
,
},
];
src/views/dataWarehousePlanning/logicalModel/modelModal.vue
View file @
42013e8a
...
...
@@ -63,7 +63,7 @@
]);
});
const
getTitle
=
computed
(()
=>
'新建
元模型
'
);
const
getTitle
=
computed
(()
=>
'新建
文件
'
);
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
;
...
...
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