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
2230dbf5
Commit
2230dbf5
authored
Nov 13, 2024
by
baiyinhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改质量任务
parent
3bfc9e79
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
708 additions
and
332 deletions
+708
-332
DeptTree.vue
src/views/dataQuality/task/DeptTree.vue
+17
-18
addFolder.vue
src/views/dataQuality/task/addFolder.vue
+100
-52
importModal.vue
src/views/dataQuality/task/importModal.vue
+46
-39
index.vue
src/views/dataQuality/task/index.vue
+106
-64
mainBody.data.ts
src/views/dataQuality/task/mainBody.data.ts
+73
-49
mainBodyModal.vue
src/views/dataQuality/task/mainBodyModal.vue
+81
-78
mock.ts
src/views/dataQuality/task/mock.ts
+49
-32
tempalte.data.ts
src/views/dataQuality/task/tempalte.data.ts
+236
-0
No files found.
src/views/dataQuality/task/DeptTree.vue
View file @
2230dbf5
<
template
>
<div
class=
"m-4 mr-0 overflow-hidden bg-white"
>
<BasicTree
title=
"
主体
"
title=
"
质量任务树
"
ref=
"treeRef"
toolbar
search
...
...
@@ -15,11 +15,12 @@
</div>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicTree
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicTree
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
getDeptList
}
from
'@/api/system/dept/dept'
;
import
{
Nullable
}
from
"@vben/types"
;
import
{
treeDataList
}
from
"./mock"
;
import
{
Nullable
}
from
'@vben/types'
;
import
{
treeDataList
}
from
'./mock'
;
defineOptions
({
name
:
'DeptTree'
});
const
emit
=
defineEmits
([
'select'
]);
...
...
@@ -27,21 +28,19 @@ import {nextTick, onMounted, ref, unref} from 'vue';
const
treeData
=
ref
<
TreeItem
[]
>
([]);
const
treeRef
=
ref
<
Nullable
<
TreeActionType
>>
(
null
);
async
function
fetch
()
{
treeData
.
value
=
treeDataList
await
nextTick
(()
=>
{
getTree
().
expandAll
(
true
)
})
async
function
fetch
()
{
treeData
.
value
=
treeDataList
;
await
nextTick
(()
=>
{
getTree
().
expandAll
(
true
);
});
}
function
getTree
()
{
const
tree
=
unref
(
treeRef
);
if
(
!
tree
)
{
throw
new
Error
(
'tree is null!'
);
function
getTree
()
{
const
tree
=
unref
(
treeRef
);
if
(
!
tree
)
{
throw
new
Error
(
'tree is null!'
);
}
return
tree
;
}
return
tree
;
}
function
handleSelect
(
keys
)
{
emit
(
'select'
,
keys
[
0
]);
...
...
src/views/dataQuality/task/addFolder.vue
View file @
2230dbf5
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
<div
class=
"modalRow"
>
<div>
可见范围
</div>
<div
class=
"right"
>
<div
class=
"clearAll"
>
清空
</div>
<div>
<a-button
type=
"primary"
>
添加工作组
</a-button>
</div>
</div>
</div>
<div
class=
"addDialogBG"
>
<div
style=
"float: right"
>
<Icon
icon=
"ant-design:delete-outlined"
:size=
"25"
:color=
"'#ED6F6F'"
/>
</div>
<TreeTwo
class=
"w-1/4 xl:w-1/5"
@
select=
"handleSelect"
/>
</div>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
formSchema
}
from
'./mainBody.data'
;
import
{
treeDataList
}
from
'./mock'
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
getMenuList
}
from
"@/api/system/menu/menu"
;
defineOptions
({
name
:
'AccountModal'
});
import
{
ref
,
computed
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
formSchemaNewFolder
}
from
'./tempalte.data'
;
import
TreeTwo
from
'./treeTwo.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
treeDataList
}
from
'@/views/dataQuality/template/mock'
;
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
24
,
md
:
24
},
schemas
:
formSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
console
.
log
(
'1111111111111111111111111111111'
)
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
defineOptions
({
name
:
'AccountModal'
});
// 通过id获取行详情信息
// 塞值
setFieldsValue
({
...
data
.
record
,
});
}
updateSchema
({
field
:
'path'
,
componentProps
:
{
treeData
:
treeDataList
},
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
24
,
md
:
24
},
schemas
:
formSchemaNewFolder
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
// 通过id获取行详情信息
// 塞值
setFieldsValue
({
...
data
.
record
,
});
}
const
getTitle
=
computed
(()
=>
(
'新建文件夹'
));
updateSchema
({
field
:
'path'
,
componentProps
:
{
treeData
:
treeDataList
},
});
});
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新建主体'
:
'编辑主体'
));
async
function
handleSubmit
()
{
try
{
const
values
=
await
validate
();
setModalProps
({
confirmLoading
:
true
});
// TODO custom api
closeModal
();
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
values
,
id
:
rowId
.
value
}
});
}
finally
{
setModalProps
({
confirmLoading
:
false
});
async
function
handleSubmit
()
{
try
{
const
values
=
await
validate
();
setModalProps
({
confirmLoading
:
true
});
// TODO custom api
closeModal
();
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
values
,
id
:
rowId
.
value
}
});
}
finally
{
setModalProps
({
confirmLoading
:
false
});
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.modalRow
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
0
20px
;
.clearAll
{
padding-right
:
10px
;
font-size
:
16px
;
}
.right
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
}
.addDialogBG
{
width
:
98%
;
height
:
400px
;
margin
:
10px
;
padding
:
20px
;
border-radius
:
10px
;
background-color
:
#e8ecf7
;
}
</
style
>
src/views/dataQuality/task/importModal.vue
View file @
2230dbf5
<
template
>
<BasicModal
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
minHeight=
"150"
>
<div
style=
"display:flex;align-items: center"
>
<div
type=
"info"
style=
"font-size:12px;cursor: pointer"
@
click=
"importTemplate"
>
下载模板
</div>
<BasicModal
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
minHeight=
"150"
>
<div
style=
"display: flex; align-items: center"
>
<div
type=
"info"
style=
"font-size: 12px; cursor: pointer"
@
click=
"importTemplate"
>
下载模板
</div
>
</div>
<div
slot=
"tip"
class=
"el-upload__tip"
style=
"color:red"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
<template
#
tip
>
<div
class=
"el-upload__tip"
style=
"color: red"
>
提示:仅允许导入“xls”或“xlsx”格式文件!
</div>
</
template
>
<BasicUpload
:maxSize=
"20"
:maxNumber=
"1"
...
...
@@ -15,48 +25,45 @@
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicUpload
}
from
'@/components/Upload'
;
import
{
downloadByData
}
from
'@/utils/file/download'
;
import
{
Tag
,
Row
,
Col
,
Upload
,
Button
,
Checkbox
}
from
'ant-design-vue'
;
import
{
downImportTemplate
,
userImport
}
from
'@/api/system/user/user'
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicUpload
}
from
'@/components/Upload'
;
import
{
downloadByData
}
from
'@/utils/file/download'
;
import
{
Tag
,
Row
,
Col
,
Upload
,
Button
,
Checkbox
}
from
'ant-design-vue'
;
import
{
downImportTemplate
,
userImport
}
from
'@/api/system/user/user'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
defineOptions
({
name
:
'AccountModal'
});
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
});
});
const
getTitle
=
computed
(()
=>
(
'主体导入'
));
/** 下载模板*/
function
importTemplate
()
{
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
confirmLoading
:
false
});
});
}
const
getTitle
=
computed
(()
=>
'质量任务导入'
);
function
handleChange
(
list
:
string
[])
{
console
.
log
(
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
,
list
)
createMessage
.
success
(
`文件上传成功`
);
}
/** 下载模板*/
function
importTemplate
()
{}
async
function
handleSubmit
()
{
try
{
// const values = await validate();
setModalProps
({
confirmLoading
:
true
});
// TODO custom api
closeModal
();
emit
(
'success'
);
function
handleChange
(
list
:
string
[])
{
console
.
log
(
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
,
list
);
createMessage
.
success
(
`文件上传成功`
);
}
}
finally
{
setModalProps
({
confirmLoading
:
false
});
async
function
handleSubmit
()
{
try
{
// const values = await validate();
setModalProps
({
confirmLoading
:
true
});
// TODO custom api
closeModal
();
emit
(
'success'
);
}
finally
{
setModalProps
({
confirmLoading
:
false
});
}
}
}
</
script
>
src/views/dataQuality/task/index.vue
View file @
2230dbf5
...
...
@@ -3,11 +3,27 @@
<DeptTree
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
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
type=
"primary"
@
click=
"handleDeleteIds"
>
删除
</a-button>
<a-button
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
type=
"primary"
>
导出
</a-button>
<a-button
type=
"primary"
@
click=
"handleImport"
>
导入
</a-button>
<a-button
type=
"primary"
@
click=
"handleAdd"
>
新增文件夹
</a-button>
<a-button
type=
"primary"
@
click=
"handleAddMainBody"
>
新增主体
</a-button>
<a-scrollbar>
<a-button
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
type=
"primary"
@
click=
"handleDeleteIds"
>
删除
</a-button
>
<a-button
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
type=
"primary"
>
导出
</a-button
>
<a-button
type=
"primary"
@
click=
"handleImport"
>
导入
</a-button>
<a-button
type=
"primary"
@
click=
"handleAdd"
>
新增文件夹
</a-button>
<a-button
type=
"primary"
@
click=
"handleAddMainBody"
>
新增质量任务文件
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskSetting"
>
配置质量任务文件
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskRunSetting"
>
配置运行
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskRun"
>
运行
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskRunLog"
>
查看报告
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskOnline"
v-if=
"true"
>
上线
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskOffline"
v-if=
"false"
>
下线
</a-button>
<a-button
type=
"primary"
@
click=
"handleQualityTaskService"
>
跳转运维
</a-button>
</a-scrollbar>
</
template
>
<
template
#
name=
"{ text, record }"
>
<a
@
click=
"showDetails(record)"
>
{{
text
}}
</a>
...
...
@@ -18,9 +34,9 @@
:actions=
"[
{
label: '编辑',
onClick: handleEdit.bind(null, record),
onClick: handleEdit.bind(null, record),
},
{
{
label: '移动',
onClick: handleRemove.bind(null, record),
},
...
...
@@ -39,56 +55,59 @@
</template>
</BasicTable>
<importModal
@
register=
"registerImport"
@
success=
"handleImportSuccess"
/>
<
addFolder
@
register=
"register"
/>
<remove-modal
@
register=
"registerRemove"
/>
<main-body-modal
@
register=
"registerMain"
/>
<
AddFolder
@
register=
"register"
/>
<remove-modal
@
register=
"registerRemove"
/>
<main-body-modal
@
register=
"registerMain"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
reactive
,
unref
,
onDeactivated
,
onMounted
}
from
'vue'
;
import
{
reactive
,
unref
,
onDeactivated
,
onMounted
}
from
'vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
addFolder
from
"@/views/mainBody/addFolder.vue"
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
DeptTree
from
'./DeptTree.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
ImportModal
from
'./importModal.vue'
;
import
{
tableList
}
from
"./mock"
;
import
{
tableList
}
from
'./mock'
;
import
{
columns
,
searchFormSchema
}
from
'./mainBody.data'
;
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
downloadByData
}
from
'@/utils/file/download'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
useUserStore
}
from
"@/store/modules/user"
;
import
{
router
}
from
"@/router"
;
import
AddFolder
from
"@/views/mainBody/addFolder.vue"
;
import
RemoveModal
from
"@/views/mainBody/removeModal.vue"
;
import
MainBodyModal
from
"@/views/mainBody/mainBodyModal.vue"
;
import
{
useUserStore
}
from
'@/store/modules/user'
;
import
{
router
}
from
'@/router'
;
import
AddFolder
from
'@/views/dataQuality/task/addFolder.vue'
;
import
RemoveModal
from
'@/views/dataQuality/task/removeModal.vue'
;
import
MainBodyModal
from
'@/views/dataQuality/task/mainBodyModal.vue'
;
defineOptions
({
name
:
'AccountManagement'
});
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
filterStore
=
useFilterStore
();
const
route
=
useRoute
();
const
go
=
useGo
();
const
[
register
,
{
openModal
}]
=
useModal
();
const
[
registerImport
,
{
openModal
:
openImportModal
}]
=
useModal
();
const
[
registerRemove
,
{
openModal
:
openRemoveModal
}]
=
useModal
();
const
[
registerMain
,
{
openModal
:
openMainModal
}]
=
useModal
();
const
[
registerRemove
,
{
openModal
:
openRemoveModal
}]
=
useModal
();
const
[
registerMain
,
{
openModal
:
openMainModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
}]
=
useTable
({
title
:
'主体管理列表'
,
const
[
registerTable
,
{
reload
,
updateTableDataRecord
,
getSearchInfo
,
getForm
,
getRowSelection
},
]
=
useTable
({
title
:
'质量任务列表'
,
api
:
async
(
params
)
=>
{
console
.
log
(
'tableList'
,
tableList
)
console
.
log
(
'tableList'
,
tableList
);
const
response
=
{
pageNu
:
"1"
,
pageSize
:
"10"
,
pages
:
"1"
,
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableList
.
length
,
code
:
''
,
message
:
''
,
code
:
''
,
message
:
''
,
data
:
tableList
,
};
return
{
...
response
};
return
{
...
response
};
},
rowKey
:
'businessId'
,
rowSelection
:
true
,
...
...
@@ -98,7 +117,7 @@
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
resetFunc
:
()
=>
{
searchInfo
.
deptId
=
''
searchInfo
.
deptId
=
''
;
},
},
useSearchForm
:
true
,
...
...
@@ -116,7 +135,6 @@
},
});
function
showDetails
(
record
)
{
router
.
push
({
path
:
'/mainBody/details'
,
...
...
@@ -124,28 +142,56 @@
}
/** 导入按钮*/
function
handleImport
()
{
openImportModal
(
true
,{
})
openImportModal
(
true
,
{});
}
/** 新建文件夹*/
function
handleAdd
()
{
openModal
(
true
,{
});
openModal
(
true
,
{});
}
function
handleRemove
()
{
openRemoveModal
(
true
,
{})
openRemoveModal
(
true
,
{});
}
/** 新建质量任务文件*/
function
handleAddMainBody
()
{
openMainModal
(
true
,{
openMainModal
(
true
,
{
isUpdate
:
false
,
})
});
}
/** 配置质量任务 未完成 应为弹窗 */
function
handleQualityTaskSetting
()
{
go
(
'/dataQuality/task'
);
}
/** 配置运行 未完成 应为弹窗*/
function
handleQualityTaskRunSetting
()
{
go
(
'/dataQuality/task'
);
}
/** 任务运行 未完成 应为弹窗*/
function
handleQualityTaskRun
()
{
go
(
'/dataQuality/task'
);
}
/** 查看报告 未完成 应为弹窗*/
function
handleQualityTaskRunLog
()
{
go
(
'/dataQuality/task'
);
}
/** 上线 未完成 应为弹窗*/
function
handleQualityTaskOnline
()
{
go
(
'/dataQuality/task'
);
}
/** 下线 未完成 应为弹窗*/
function
handleQualityTaskOffline
()
{
go
(
'/dataQuality/task'
);
}
/** 跳转运维 未完成 应为弹窗*/
function
handleQualityTaskService
()
{
go
(
'/dataQuality/task'
);
}
/** 编辑按钮*/
function
handleEdit
(
record
:
Recordable
)
{
openMainModal
(
true
,{
openMainModal
(
true
,
{
record
,
isUpdate
:
true
,
})
})
;
}
function
handleDeleteIds
()
{
createConfirm
({
...
...
@@ -164,9 +210,7 @@
reload
();
}
/** 导出按钮*/
async
function
handleExport
()
{
}
async
function
handleExport
()
{}
/** 导入成功*/
function
handleImportSuccess
()
{
reload
();
...
...
@@ -193,33 +237,31 @@
go
(
'/system/account_detail/'
+
record
.
id
);
}
onMounted
(()
=>
{
const
path
=
route
.
path
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
])
console
.
log
(
'11111111111111111111111111111'
,
params
)
const
path
=
route
.
path
;
if
(
filterStore
.
getSearchParams
[
path
])
{
if
(
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
]
!==
{}))
{
const
params
=
JSON
.
parse
(
filterStore
.
getSearchParams
[
path
])
;
console
.
log
(
'11111111111111111111111111111'
,
params
);
getForm
().
setFieldsValue
({
page
:
params
.
page
,
pageSize
:
params
.
pageSize
,
username
:
params
.
username
,
flag
:
params
.
flag
,
})
searchInfo
.
deptId
=
params
.
deptId
})
;
searchInfo
.
deptId
=
params
.
deptId
;
}
}
});
onBeforeRouteLeave
((
to
,
from
,
next
)
=>
{
const
params
=
Object
.
assign
({},
getSearchInfo
(),
getForm
().
getFieldsValue
());
console
.
log
(
'path'
,
from
.
path
)
console
.
log
(
'params'
,
params
)
filterStore
.
setSearchParams
(
{
path
:
from
.
path
,
param
:
{
...
params
}
}
)
const
params
=
Object
.
assign
({},
getSearchInfo
(),
getForm
().
getFieldsValue
());
console
.
log
(
'path'
,
from
.
path
);
console
.
log
(
'params'
,
params
);
filterStore
.
setSearchParams
({
path
:
from
.
path
,
param
:
{
...
params
,
},
});
next
();
// 允许导航
});
</
script
>
src/views/dataQuality/task/mainBody.data.ts
View file @
2230dbf5
import
{
getAllRoleList
}
from
'@/api/system/role/role'
;
import
{
getAllRoleList
}
from
'@/api/system/role/role'
;
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
import
{
h
}
from
"vue"
;
import
{
Tag
}
from
"ant-design-vue"
;
import
{
Switch
}
from
'ant-design-vue'
;
import
{
useMessage
}
from
"@/hooks/web/useMessage"
;
import
{
changeFlagApi
}
from
"@/api/system/user/user"
;
// 引入开关组件
import
{
h
}
from
'vue'
;
import
{
Tag
,
Switch
}
from
'ant-design-vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
changeFlagApi
}
from
'@/api/system/user/user'
;
import
{
s
}
from
'node_modules/vite/dist/node/types.d-aGj9QkWt'
;
// 引入开关组件
type
CheckedType
=
boolean
|
string
|
number
;
/**
* transform mock data
...
...
@@ -29,36 +30,66 @@ export const deptMap = (() => {
})();
export
const
columns
:
BasicColumn
[]
=
[
// {
// title: '质量规则',
// dataIndex: 'name',
// width: 120,
// slots: { customRender: 'name' },
// },
{
title
:
'
主体名称
'
,
dataIndex
:
'
nam
e'
,
title
:
'
质量规则
'
,
dataIndex
:
'
qualityRul
e'
,
width
:
120
,
slots
:
{
customRender
:
'name'
},
},
{
title
:
'
描述
'
,
dataIndex
:
'd
es
'
,
title
:
'
数据源
'
,
dataIndex
:
'd
ataSource
'
,
width
:
120
,
sorter
:
true
,
},
{
title
:
'
来源
'
,
dataIndex
:
'
from
'
,
title
:
'
目录
'
,
dataIndex
:
'
catalog
'
,
width
:
120
,
sorter
:
true
,
},
{
title
:
'
创建者
'
,
dataIndex
:
'
creator
'
,
title
:
'
数据库
'
,
dataIndex
:
'
database
'
,
width
:
120
,
sorter
:
true
,
},
{
title
:
'创建时间'
,
dataIndex
:
'createDate'
,
width
:
200
,
title
:
'数据表'
,
dataIndex
:
'dataTable'
,
width
:
120
,
sorter
:
true
,
},
{
title
:
'字段'
,
dataIndex
:
'fields'
,
width
:
120
,
sorter
:
true
,
},
{
title
:
'质量模板'
,
dataIndex
:
'qualityTemplate'
,
width
:
150
,
},
{
title
:
'更新时间'
,
dataIndex
:
'updateDate'
,
width
:
200
,
title
:
'规则组'
,
dataIndex
:
'ruleGroup'
,
width
:
150
,
},
{
title
:
'质量通过率'
,
dataIndex
:
'qualityPassRate'
,
width
:
120
,
edit
:
true
,
editable
:
true
,
editComponentProps
:
{
suffix
:
'%'
,
},
},
];
...
...
@@ -81,7 +112,7 @@ export const formSchemaRemove: any = [
getPopupContainer
:
()
=>
document
.
body
,
},
},
]
]
;
export
const
formSchemaMain
:
any
=
[
{
field
:
'path'
,
...
...
@@ -127,7 +158,7 @@ export const formSchemaMain: any = [
defaultValue
:
'主体管理'
,
colProps
:
{
span
:
8
},
componentProps
:
{
readOnly
:
true
,
readOnly
:
true
,
disabled
:
true
,
placeholder
:
'输入描述'
,
},
...
...
@@ -139,7 +170,7 @@ export const formSchemaMain: any = [
defaultValue
:
'资源自定义'
,
colProps
:
{
span
:
8
},
componentProps
:
{
readOnly
:
true
,
readOnly
:
true
,
disabled
:
true
,
placeholder
:
'输入描述'
,
},
...
...
@@ -152,12 +183,10 @@ export const formSchemaMain: any = [
colProps
:
{
span
:
8
},
componentProps
:
{
placeholder
:
'输入描述'
,
options
:
[
{
label
:
'默认工作组'
,
value
:
'默认工作组'
},
],
options
:
[{
label
:
'默认工作组'
,
value
:
'默认工作组'
}],
},
},
]
]
;
export
const
formSchema
:
any
=
[
{
field
:
'name'
,
...
...
@@ -186,7 +215,7 @@ export const formSchema: any = [
getPopupContainer
:
()
=>
document
.
body
,
},
},
]
]
;
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
...
...
@@ -204,9 +233,7 @@ export const searchFormSchema: FormSchema[] = [
component
:
'Select'
,
componentProps
:
{
placeholder
:
'按来源过滤'
,
options
:
[
{
label
:
'指标汇总表'
,
value
:
'1'
},
],
options
:
[{
label
:
'指标汇总表'
,
value
:
'1'
}],
},
colProps
:
{
span
:
8
},
},
...
...
@@ -222,14 +249,14 @@ export const resetPasswordFormSchema: any[] = [
required
:
true
,
// ifShow: false,
},
]
]
;
const
passwordCheck
=
(
rule
,
value
,
callback
)
=>
{
const
pattern
=
/^
(?![
0-9
]
+$
)(?![
a-zA-Z
]
+$
)[
0-9A-Za-z
]{8,16}
$/
const
pattern
=
/^
(?![
0-9
]
+$
)(?![
a-zA-Z
]
+$
)[
0-9A-Za-z
]{8,16}
$/
;
if
(
!
pattern
.
test
(
value
))
{
callback
(
new
Error
(
'新密码必须为数字与字母的组合'
))
callback
(
new
Error
(
'新密码必须为数字与字母的组合'
))
;
}
callback
()
}
callback
()
;
}
;
export
const
accountFormSchema
:
any
[]
=
[
{
field
:
'username'
,
...
...
@@ -255,21 +282,19 @@ export const accountFormSchema: any[] = [
{
min
:
8
,
max
:
16
,
message
:
'长度在 8 到 16 个字符'
,
trigger
:
'blur'
},
{
validator
:
passwordCheck
,
trigger
:
'blur'
}
trigger
:
'blur'
,
}
,
],
},
{
field
:
'name'
,
label
:
'姓名'
,
component
:
'Input'
,
},
{
field
:
'nickName'
,
label
:
'昵称'
,
component
:
'Input'
,
},
{
field
:
'sex'
,
...
...
@@ -291,8 +316,8 @@ export const accountFormSchema: any[] = [
{
pattern
:
/^1
[
3|4|5|6|7|8|9
][
0-9
]\d{8}
$/
,
message
:
'请输入正确的手机号码'
,
trigger
:
'blur'
}
trigger
:
'blur'
,
}
,
],
},
{
...
...
@@ -303,9 +328,9 @@ export const accountFormSchema: any[] = [
{
required
:
false
,
message
:
'请输入身份证号'
,
trigger
:
'blur'
trigger
:
'blur'
,
},
{
min
:
18
,
max
:
18
,
message
:
'长度18字符'
,
trigger
:
'blur'
}
{
min
:
18
,
max
:
18
,
message
:
'长度18字符'
,
trigger
:
'blur'
}
,
],
},
{
...
...
@@ -317,8 +342,8 @@ export const accountFormSchema: any[] = [
{
type
:
'email'
,
message
:
'请输入正确的邮箱地址'
,
trigger
:
[
'blur'
,
'change'
]
}
trigger
:
[
'blur'
,
'change'
]
,
}
,
],
},
{
...
...
@@ -359,12 +384,11 @@ export const accountFormSchema: any[] = [
api
:
getAllRoleList
,
labelField
:
'roleName'
,
valueField
:
'businessId'
,
resultField
:
'data'
,
resultField
:
'data'
,
},
required
:
true
,
},
{
label
:
'备注'
,
field
:
'remarks'
,
...
...
src/views/dataQuality/task/mainBodyModal.vue
View file @
2230dbf5
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
/>
<div
class=
"modalRow"
>
<div>
可见范围
</div>
<div
class=
"right"
>
<div
class=
"clearAll"
>
清空
</div>
<div
class=
"clearAll"
>
清空
</div>
<div>
<a-button
type=
"primary"
>
添加工作组
</a-button>
</div>
...
...
@@ -14,98 +18,97 @@
</div>
<div
class=
"addDialogBG"
>
<div
style=
"float: right"
>
<Icon
icon=
"ant-design:delete-outlined"
:size=
"25"
:color=
"'#ED6F6F'"
/>
<Icon
icon=
"ant-design:delete-outlined"
:size=
"25"
:color=
"'#ED6F6F'"
/>
</div>
<TreeTwo
class=
"w-1/4 xl:w-1/5"
@
select=
"handleSelect"
/>
</div>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
formSchemaMain
}
from
'./mainBody.data'
;
import
TreeTwo
from
'./treeTwo.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
getMenuList
}
from
"@/api/system/menu/menu"
;
import
{
treeDataList
}
from
"@/views/mainBody/mock"
;
defineOptions
({
name
:
'AccountModal'
});
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
formSchemaMain
}
from
'./mainBody.data'
;
import
TreeTwo
from
'./treeTwo.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
getMenuList
}
from
'@/api/system/menu/menu'
;
import
{
treeDataList
}
from
'@/views/dataQuality/task/mock'
;
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
24
,
md
:
24
},
schemas
:
formSchemaMain
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
defineOptions
({
name
:
'AccountModal'
});
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
isUpdate
=
ref
(
true
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
24
,
md
:
24
},
schemas
:
formSchemaMain
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
isUpdate
.
value
=
!!
data
?.
isUpdate
;
if
(
unref
(
isUpdate
))
{
// 通过id获取行详情信息
// 塞值
setFieldsValue
({
...
data
.
record
,
});
}
// 通过id获取行详情信息
// 塞值
setFieldsValue
({
...
data
.
record
,
updateSchema
({
field
:
'path'
,
componentProps
:
{
treeData
:
treeDataList
},
});
}
updateSchema
({
field
:
'path'
,
componentProps
:
{
treeData
:
treeDataList
},
});
});
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新建主体'
:
'编辑主体'
));
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新建质量任务'
:
'编辑质量任务'
));
async
function
handleSubmit
()
{
try
{
const
values
=
await
validate
(
);
setModalProps
({
confirmLoading
:
true
});
// TODO custom api
closeModal
(
);
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
values
,
id
:
rowId
.
value
}
});
}
finally
{
setModalProps
({
confirmLoading
:
false
});
async
function
handleSubmit
()
{
try
{
const
values
=
await
validate
();
setModalProps
({
confirmLoading
:
true
}
);
// TODO custom api
closeModal
();
emit
(
'success'
,
{
isUpdate
:
unref
(
isUpdate
),
values
:
{
...
values
,
id
:
rowId
.
value
}
}
);
}
finally
{
setModalProps
({
confirmLoading
:
false
});
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.modalRow
{
padding
:
0
20px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
.clearAll
{
padding-right
:
10px
;
font-size
:
16px
;
}
.right
{
.modalRow
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
padding
:
0
20px
;
.clearAll
{
padding-right
:
10px
;
font-size
:
16px
;
}
.right
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
}
.addDialogBG
{
width
:
98%
;
height
:
400px
;
margin
:
10px
;
padding
:
20px
;
border-radius
:
10px
;
background-color
:
#e8ecf7
;
}
}
.addDialogBG
{
margin
:
10px
;
border-radius
:
10px
;
padding
:
20px
;
background-color
:
#E8ECF7
;
width
:
98%
;
height
:
400px
;
}
</
style
>
src/views/dataQuality/task/mock.ts
View file @
2230dbf5
import
{
data
}
from
'@/views/demo/excel/data'
;
export
const
tableList
:
any
[]
=
[
{
businessId
:
1
,
...
...
@@ -7,6 +9,15 @@ export const tableList: any[] = [
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
qualityRule
:
'grantee_type_1'
,
dataSource
:
'mysql_1'
,
catalog
:
'-'
,
database
:
'employees'
,
dataTable
:
'departments'
,
fields
:
'department_name'
,
qualityTemplate
:
'非空检查'
,
ruleGroup
:
'bingtest'
,
qualityPassRate
:
'100'
,
},
{
businessId
:
2
,
...
...
@@ -16,6 +27,15 @@ export const tableList: any[] = [
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
qualityRule
:
'grantee_type_2'
,
dataSource
:
'Trino-test'
,
catalog
:
'jmx'
,
database
:
'information_data'
,
dataTable
:
'applicable_roles_table'
,
fields
:
'grantee_type'
,
qualityTemplate
:
'主键唯一'
,
ruleGroup
:
'bingtest'
,
qualityPassRate
:
'100'
,
},
{
businessId
:
3
,
...
...
@@ -25,6 +45,15 @@ export const tableList: any[] = [
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
qualityRule
:
'grantee_type_2'
,
dataSource
:
'Trino-test'
,
catalog
:
'jmx'
,
database
:
'information_data'
,
dataTable
:
'applicable_roles_table'
,
fields
:
'grantee_type'
,
qualityTemplate
:
'主键唯一'
,
ruleGroup
:
'Trinotest'
,
qualityPassRate
:
'100'
,
},
{
businessId
:
4
,
...
...
@@ -34,49 +63,37 @@ export const tableList: any[] = [
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
qualityRule
:
'grantee_type_2'
,
dataSource
:
'Trino-test'
,
catalog
:
'jmx'
,
database
:
'information_data'
,
dataTable
:
'applicable_roles_table'
,
fields
:
'grantee_type'
,
qualityTemplate
:
'主键唯一'
,
ruleGroup
:
'Trinotest'
,
qualityPassRate
:
'100'
,
},
{
businessId
:
5
,
name
:
'指标导入'
,
des
:
'--------'
,
from
:
'指标汇总表'
,
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
},
{
businessId
:
6
,
name
:
'指标导入'
,
des
:
'--------'
,
from
:
'指标汇总表'
,
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
},
{
businessId
:
7
,
name
:
'指标导入'
,
des
:
'--------'
,
from
:
'指标汇总表'
,
creator
:
'admin'
,
createDate
:
'2024-10-25 10:04:05'
,
updateDate
:
'2024-10-25 10:04:05'
,
},
]
];
export
const
treeDataList
=
[
{
label
:
'主体管理'
,
businessId
:
1
,
children
:
[
{
label
:
'admin_个人工作区'
,
businessId
:
2
},
{
label
:
'admin_个人工作区'
,
businessId
:
2
,
children
:
[
{
label
:
'个人工作区1'
,
businessId
:
6
},
{
label
:
'个人工作区2'
,
businessId
:
7
},
],
},
{
label
:
'共享工作区'
,
businessId
:
3
},
{
label
:
'商城工作区'
,
businessId
:
4
},
{
label
:
'指标工作区'
,
businessId
:
5
},
],
},
]
]
;
export
const
treeDataListTwo
=
[
{
label
:
'默认工作组'
,
...
...
@@ -88,4 +105,4 @@ export const treeDataListTwo = [
{
label
:
'默认工作组04'
,
businessId
:
5
},
],
},
]
]
;
src/views/dataQuality/task/tempalte.data.ts
0 → 100644
View file @
2230dbf5
import
{
getAllRoleList
}
from
'@/api/system/role/role'
;
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'名称'
,
dataIndex
:
'name'
,
width
:
120
,
slots
:
{
customRender
:
'name'
},
},
{
title
:
'数据源'
,
dataIndex
:
'dataSource'
,
slots
:
{
customRender
:
'dataSource'
},
width
:
150
,
},
{
title
:
'模板编号'
,
dataIndex
:
'templateNumber'
,
width
:
120
,
},
{
title
:
'创建时间'
,
dataIndex
:
'createTime'
,
width
:
150
,
},
{
title
:
'更新时间'
,
dataIndex
:
'updateTime'
,
width
:
150
,
},
{
title
:
'拥有者'
,
dataIndex
:
'owner'
,
width
:
100
,
},
{
title
:
'权属工作组'
,
dataIndex
:
'workgroup'
,
width
:
120
,
},
];
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
label
:
' '
,
component
:
'Input'
,
colProps
:
{
span
:
8
},
componentProps
:
{
placeholder
:
'输入关键字搜索'
,
},
},
];
/**移动*/
export
const
MoveFormSchema
:
any
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
// border: 'none',
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
];
export
const
formSchemaNewFolder
:
any
=
[
{
field
:
'path'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
rules
:
[
{
required
:
true
,
message
:
'请选择上级菜单'
,
},
],
componentProps
:
{
fieldNames
:
{
label
:
'label'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
},
{
field
:
'name'
,
label
:
'文件夹名称'
,
component
:
'Input'
,
colProps
:
{
span
:
8
},
componentProps
:
{
placeholder
:
'输入文件夹名称'
,
},
},
{
field
:
'fileType'
,
label
:
'权限模式'
,
component
:
'RadioGroup'
,
defaultValue
:
'本级定义'
,
colProps
:
{
span
:
8
},
componentProps
:
{
options
:
[
{
label
:
'本级定义'
,
value
:
'本级定义'
},
{
label
:
'资源自定义'
,
value
:
'资源自定义'
},
],
placeholder
:
'输入描述'
,
},
},
{
field
:
'group'
,
label
:
'权属工作组'
,
component
:
'Select'
,
defaultValue
:
'默认工作组'
,
colProps
:
{
span
:
8
},
componentProps
:
{
placeholder
:
'输入描述'
,
options
:
[{
label
:
'默认工作组'
,
value
:
'默认工作组'
}],
},
},
];
export
const
formSchemaTemplate
:
any
=
[
{
field
:
'path'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
rules
:
[
{
required
:
true
,
message
:
'请选择上级菜单'
,
},
],
componentProps
:
{
fieldNames
:
{
label
:
'label'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
},
{
field
:
'name'
,
label
:
'文件名称'
,
component
:
'Input'
,
colProps
:
{
span
:
8
},
componentProps
:
{
placeholder
:
'输入文件夹名称'
,
},
required
:
true
,
},
{
field
:
'fileType'
,
label
:
'文件类型'
,
component
:
'Input'
,
defaultValue
:
'质量模板'
,
colProps
:
{
span
:
8
},
componentProps
:
{
readonly
:
true
,
style
:
{
border
:
'none'
,
backgroundColor
:
'transparent'
,
},
},
},
{
field
:
'dataSource'
,
label
:
'支持数据源'
,
component
:
'Select'
,
colProps
:
{
span
:
8
},
componentProps
:
{
options
:
[
{
label
:
'INCEPTOR'
,
value
:
'INCEPTOR'
},
{
label
:
'IMPALA'
,
value
:
'IMPALA'
},
{
label
:
'MYSQL'
,
value
:
'MYSQL'
},
],
},
required
:
true
,
},
{
field
:
'model'
,
label
:
'目录权属模式'
,
component
:
'RadioGroup'
,
defaultValue
:
'本级定义'
,
colProps
:
{
span
:
8
},
componentProps
:
{
options
:
[
{
label
:
'本级定义'
,
value
:
'本级定义'
},
{
label
:
'资源自定义'
,
value
:
'资源自定义'
},
],
},
},
{
field
:
'group'
,
label
:
'权属工作组'
,
component
:
'Select'
,
defaultValue
:
'默认工作组'
,
colProps
:
{
span
:
8
},
componentProps
:
{
placeholder
:
'输入描述'
,
options
:
[{
label
:
'默认工作组'
,
value
:
'默认工作组'
}],
},
},
];
export
const
importFormSchema
:
any
[]
=
[
{
field
:
'fileMethods'
,
label
:
'导入文件选择'
,
slot
:
'fileMethods'
,
colProps
:
{
lg
:
24
,
md
:
24
,
offset
:
3
},
},
{
field
:
'fileRename'
,
label
:
'文件重名'
,
component
:
'RadioGroup'
,
required
:
true
,
colProps
:
{
lg
:
24
,
md
:
24
,
offset
:
3
},
componentProps
:
{
options
:
[
{
label
:
'全部放弃'
,
value
:
'1'
},
{
label
:
'全部替换'
,
value
:
'2'
},
{
label
:
'自动重命名'
,
value
:
'3'
},
],
},
},
];
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