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
002ee9ef
Commit
002ee9ef
authored
Nov 18, 2024
by
liwei
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
8cc2ee09
82f66ddb
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1318 additions
and
23 deletions
+1318
-23
QualityTaskAlarmSetting.vue
...ws/dataQuality/dataSheet/task/QualityTaskAlarmSetting.vue
+1
-0
FileTree.vue
src/views/dataQuality/dataSheet/task/checkRange/FileTree.vue
+207
-0
account.data.ts
...ews/dataQuality/dataSheet/task/checkRange/account.data.ts
+302
-0
dataQualityMainBodyData.ts
...lity/dataSheet/task/checkRange/dataQualityMainBodyData.ts
+443
-0
index.vue
src/views/dataQuality/dataSheet/task/checkRange/index.vue
+208
-0
storageManageModal.vue
...aQuality/dataSheet/task/checkRange/storageManageModal.vue
+63
-0
index.vue
src/views/dataQuality/dataSheet/task/index.vue
+10
-0
runModal.vue
src/views/dataQuality/dataSheet/template/runModal.vue
+84
-23
No files found.
src/views/dataQuality/dataSheet/task/QualityTaskAlarmSetting.vue
View file @
002ee9ef
...
@@ -119,6 +119,7 @@
...
@@ -119,6 +119,7 @@
columns
:
storageManagementColumns
,
columns
:
storageManagementColumns
,
// useSearchForm: true,
// useSearchForm: true,
showTableSetting
:
false
,
showTableSetting
:
false
,
maxHeight
:
800
,
// 设置表格最大高度为 800px
formConfig
:
{
formConfig
:
{
labelWidth
:
120
,
labelWidth
:
120
,
schemas
:
storageManagementFormSchema
,
schemas
:
storageManagementFormSchema
,
...
...
src/views/dataQuality/dataSheet/task/checkRange/FileTree.vue
0 → 100644
View file @
002ee9ef
<
template
>
<div
class=
"m-4 mr-0 overflow-hidden bg-white"
>
<BasicTree
title=
"质量主体"
ref=
"treeRef"
toolbar
search
treeWrapperClassName=
"h-[calc(100%-35px)] overflow-auto"
:clickRowToExpand=
"false"
:defaultExpandAll=
"true"
:treeData=
"treeData"
:fieldNames=
"
{ key: 'businessId', title: 'fileName' }"
@select="handleSelect"
:beforeRightClick="getRightMenuList"
:actionList="actionList"
/>
</div>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
h
,
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicTree
,
ContextMenuItem
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
getDeptList
}
from
'@/api/system/dept/dept'
;
import
{
Nullable
}
from
'@vben/types'
;
import
{
TreeData
}
from
'@/views/dataQuality/agentClass/mainBody/dataQualityMainBodyData'
;
import
{
EventDataNode
}
from
'ant-design-vue/es/vc-tree/interface'
;
import
{
PlusOutlined
,
EllipsisOutlined
}
from
'@ant-design/icons-vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
Modal
}
from
'ant-design-vue'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
{
router
}
from
'@/router'
;
defineOptions
({
name
:
'DeptTree'
});
const
{
createMessage
}
=
useMessage
();
const
emit
=
defineEmits
([
'select'
]);
const
treeData
=
ref
<
TreeItem
[]
>
([]);
const
treeRef
=
ref
<
Nullable
<
TreeActionType
>>
(
null
);
function
getTree
()
{
const
tree
=
unref
(
treeRef
);
if
(
!
tree
)
{
throw
new
Error
(
'tree is null!'
);
}
return
tree
;
}
async
function
fetch
()
{
const
data
=
TreeData
;
treeData
.
value
=
handleTree
(
data
,
'businessId'
,
undefined
,
undefined
,
undefined
);
await
nextTick
(()
=>
{
getTree
().
expandAll
(
true
);
});
}
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
;
parentId
=
parentId
||
'parentId'
;
children
=
children
||
'children'
;
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
((
item
)
=>
{
return
item
[
parentId
];
}),
)
||
0
;
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
// 循环所有项
const
treeData
=
cloneData
.
filter
((
father
)
=>
{
const
branchArr
=
cloneData
.
filter
((
child
)
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
];
});
branchArr
.
length
>
0
?
(
father
.
children
=
branchArr
)
:
''
;
// 返回第一层
return
father
[
parentId
]
===
rootId
;
});
return
treeData
!==
''
?
treeData
:
data
;
}
function
handleSelect
(
keys
)
{
emit
(
'select'
,
keys
[
0
]);
}
onMounted
(()
=>
{
fetch
();
});
// 树的操作列表
const
actionList
=
[
{
//全部操作按钮
render
:
(
node
)
=>
{
return
h
(
EllipsisOutlined
,
{
class
:
'ml-2'
,
onClick
:
()
=>
{
getRightMenuList
(
node
);
},
});
},
},
];
function
getRightMenuList
(
node
:
EventDataNode
):
Promise
<
ContextMenuItem
[]
>
{
const
menu
=
[
{
label
:
'打开'
,
handler
:
()
=>
{
handleOpen
(
node
);
},
icon
:
'ant-design:eye-outlined'
,
},
{
label
:
'重命名'
,
handler
:
()
=>
{
handleResetName
(
node
);
},
icon
:
'ant-design:edit-outlined'
,
},
{
label
:
'复制'
,
handler
:
()
=>
{
copyButton
();
},
icon
:
'ant-design:snippets-outlined'
,
},
{
label
:
'粘贴'
,
handler
:
()
=>
{
stickButton
();
},
icon
:
'ant-design:snippets-twotone'
,
},
{
label
:
'删除'
,
handler
:
()
=>
{
deleteButton
();
},
icon
:
'ant-design:rest-outlined'
,
},
{
label
:
'移动'
,
handler
:
()
=>
{
handleMove
(
node
);
},
icon
:
'bx:bxs-folder-open'
,
},
];
return
new
Promise
((
resolve
)
=>
{
resolve
(
menu
);
});
}
/**打开*/
function
handleOpen
(
data
)
{
router
.
push
({
path
:
'/commonFile/fileDetail'
,
query
:
{
fileName
:
data
.
anotherName
,
},
});
}
/**复制按钮*/
function
copyButton
()
{
createMessage
.
success
(
'复制成功!'
);
}
/**粘贴按钮*/
function
stickButton
()
{
createMessage
.
success
(
'粘贴成功!'
);
}
/**删除按钮*/
function
deleteButton
()
{
Modal
.
confirm
({
title
:
'确认删除'
,
content
:
'确定要删除此节点吗?'
,
okText
:
'确认'
,
cancelText
:
'取消'
,
onOk
()
{
// 执行删除逻辑
createMessage
.
success
(
'删除成功!'
);
},
onCancel
()
{
console
.
log
(
'取消删除'
);
createMessage
.
info
(
'取消删除'
);
},
});
}
/** 重命名按钮*/
function
handleResetName
(
record
:
Recordable
)
{
record
.
fileName
=
record
.
anotherName
;
openResetNameModal
(
true
,
{
record
,
isReset
:
true
,
});
}
/** 成功回调*/
function
handleSuccess
()
{}
</
script
>
src/views/dataQuality/dataSheet/task/checkRange/account.data.ts
0 → 100644
View file @
002ee9ef
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'
;
// 引入开关组件
type
CheckedType
=
boolean
|
string
|
number
;
export
const
columns
:
BasicColumn
[]
=
[
{
title
:
'质量主体名称'
,
dataIndex
:
'fileName'
,
width
:
150
,
slots
:
{
customRender
:
'fileName'
},
},
{
title
:
'描述'
,
dataIndex
:
'descripe'
,
width
:
150
,
},
{
title
:
'创建者'
,
dataIndex
:
'holder'
,
width
:
150
,
},
{
title
:
'创建时间'
,
dataIndex
:
'createDate'
,
width
:
150
,
},
{
title
:
'更新时间'
,
dataIndex
:
'updateDate'
,
width
:
150
,
},
{
title
:
'原始主体'
,
dataIndex
:
'originalPrincipal'
,
slots
:
{
customRender
:
'originalPrincipal'
},
width
:
150
,
},
];
export
const
searchFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
label
:
'名称'
,
component
:
'Input'
,
componentProps
:
{
placeholder
:
'请输入名称'
,
},
colProps
:
{
span
:
7
},
},
];
export
const
accountFormSchema
:
any
[]
=
[
{
field
:
'fileName'
,
label
:
'文件名称'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
{
field
:
'location'
,
label
:
'保存位置'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
{
field
:
'createDate'
,
label
:
'创建时间'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
{
field
:
'updateDate'
,
label
:
'最近修改'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
disabled
:
true
,
},
},
];
/**移动*/
export
const
MoveFormSchema
:
any
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
];
/**存储管理*/
export
const
StorageSchema
:
FormSchema
[]
=
[
{
field
:
'isStorage'
,
label
:
'存储主体问题数据明细'
,
component
:
'Checkbox'
,
colProps
:
{
lg
:
12
,
md
:
24
},
componentProps
:
({
formModel
,
formActionType
})
=>
({
onChange
:
()
=>
{
formActionType
.
updateSchema
([{
field
:
'isStorageInHDFS'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'handle'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'isAutoClear'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'clear'
,
ifShow
:
formModel
.
isStorage
}]);
formActionType
.
updateSchema
([{
field
:
'divider'
,
ifShow
:
formModel
.
isStorage
}]);
},
}),
},
{
field
:
'isStorageInHDFS'
,
label
:
'存储到HDFS'
,
labelWidth
:
85
,
component
:
'Checkbox'
,
colProps
:
{
lg
:
12
,
md
:
24
},
ifShow
:
false
,
},
{
field
:
'handle'
,
label
:
'手动清理'
,
component
:
'BasicTitle'
,
ifShow
:
false
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'clear'
,
label
:
'清理'
,
component
:
'Input'
,
labelWidth
:
30
,
colProps
:
{
lg
:
24
,
md
:
24
},
ifShow
:
false
,
slot
:
'clear'
,
},
{
field
:
'divider'
,
component
:
'Divider'
,
ifShow
:
false
,
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'isAutoClear'
,
label
:
'自动清理'
,
labelWidth
:
70
,
component
:
'Checkbox'
,
colProps
:
{
lg
:
12
,
md
:
24
},
ifShow
:
false
,
componentProps
:
({
formModel
,
formActionType
})
=>
({
onChange
:
()
=>
{
formActionType
.
updateSchema
([{
field
:
'maxRetentionTime'
,
ifShow
:
formModel
.
isAutoClear
}]);
formActionType
.
updateSchema
([{
field
:
'inspectionCycle'
,
ifShow
:
formModel
.
isAutoClear
}]);
formActionType
.
updateSchema
([{
field
:
'inspectionTime'
,
ifShow
:
formModel
.
isAutoClear
}]);
},
}),
},
{
field
:
'maxRetentionTime'
,
label
:
'最长保留时间'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
addonAfter
:
'天'
,
},
ifShow
:
false
,
},
{
field
:
'inspectionCycle'
,
label
:
'检查周期'
,
component
:
'Select'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
options
:
[
{
label
:
'每天'
,
value
:
'每天'
},
{
label
:
'每周'
,
value
:
'每周'
},
{
label
:
'每月'
,
value
:
'每月'
},
{
label
:
'每年'
,
value
:
'每年'
},
],
},
ifShow
:
false
,
},
{
field
:
'inspectionTime'
,
label
:
'检查时间'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
ifShow
:
false
,
slot
:
'isStorageInHDFS'
,
},
];
export
const
resetNameFormSchema
:
FormSchema
[]
=
[
{
field
:
'fileName'
,
label
:
'文件名称'
,
component
:
'Input'
,
rules
:
[
{
required
:
true
,
message
:
'请输入文件名称'
,
},
],
componentProps
:
{
placeholder
:
'请输入文件名称'
,
},
colProps
:
{
span
:
8
},
},
];
export
const
createFileFormSchema
:
FormSchema
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
{
field
:
'fileName'
,
label
:
'文件名称'
,
component
:
'Input'
,
colProps
:
{
lg
:
24
,
md
:
24
},
rules
:
[
{
required
:
true
,
message
:
'请输入文件名称'
,
},
],
componentProps
:
{
placeholder
:
'请输入文件名称'
,
},
},
];
export
const
createTaskFormSchema
:
FormSchema
[]
=
[
{
field
:
'taskId'
,
label
:
'路径'
,
component
:
'TreeSelect'
,
colProps
:
{
lg
:
24
,
md
:
24
},
componentProps
:
{
fieldNames
:
{
label
:
'fileName'
,
value
:
'businessId'
,
},
getPopupContainer
:
()
=>
document
.
body
,
},
required
:
true
,
},
{
field
:
'name'
,
label
:
'质量主体名称'
,
component
:
'Input'
,
rules
:
[
{
required
:
true
,
message
:
'请输入质量主体名称'
,
},
],
componentProps
:
{
placeholder
:
'请输入质量主体名称'
,
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
{
field
:
'fileType'
,
label
:
'文件类型'
,
component
:
'Input'
,
defaultValue
:
'质量主体'
,
componentProps
:
{
readonly
:
true
,
style
:
{
border
:
'none'
,
backgroundColor
:
'transparent'
,
},
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
];
src/views/dataQuality/dataSheet/task/checkRange/dataQualityMainBodyData.ts
0 → 100644
View file @
002ee9ef
This diff is collapsed.
Click to expand it.
src/views/dataQuality/dataSheet/task/checkRange/index.vue
0 → 100644
View file @
002ee9ef
<
template
>
<BasicModal
width=
"80%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<PageWrapper
dense
contentFullHeight
fixedHeight
contentClass=
"flex"
>
<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
type=
"primary"
@
click=
"handleSaveManage"
>
存储管理
</a-button>
</
template
>
<
template
#
bodyCell=
"{ column, record }"
>
<template
v-if=
"column.key === 'action'"
>
<TableAction
:actions=
"[
{
// icon: 'clarity:note-edit-line',
label: '复制',
onClick: copyButton.bind(null, record),
},
{
label: '属性',
onClick: handleEdit.bind(null, record),
},
{
color: 'error',
label: '删除',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleDelete.bind(null, record),
},
},
]"
/>
</
template
>
</template>
<
template
#
fileName=
"{ text, record }"
>
<a
@
click=
"handleMainBodyEdit(record)"
>
{{
text
}}
</a>
</
template
>
<
template
#
originalPrincipal=
"{ text, record }"
>
<a
@
click=
"handleMainBodyEdit(record)"
>
{{
text
}}
</a>
</
template
>
</BasicTable>
<StorageManageModal
@
register=
"registerStorageManageModal"
/>
</PageWrapper>
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
BasicModal
,
useModalInner
,
useModal
}
from
'@/components/Modal'
;
import
{
reactive
,
unref
,
onDeactivated
,
onMounted
,
ref
,
computed
}
from
'vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
fileData
,
TreeData
}
from
'./dataQualityMainBodyData'
;
import
StorageManageModal
from
'./storageManageModal.vue'
;
import
DeptTree
from
'./FileTree.vue'
;
import
{
columns
,
searchFormSchema
}
from
'./account.data'
;
defineOptions
({
name
:
'KnowledgeModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
title
=
ref
();
const
isRunning
=
ref
(
false
);
const
[
registerStorageManageModal
,
{
openModal
:
openStorageManageModal
}]
=
useModal
();
// 存储管理弹窗
const
searchInfo
=
reactive
<
Recordable
>
({});
const
tableData
=
ref
([]);
const
getTitle
=
computed
(()
=>
(
!
unref
(
isRunning
)
?
'配置质量文件'
:
'配置质量文件'
));
//初始化表单
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNum
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
var
data
=
[];
data
=
tableData
.
value
;
return
{
...
response
,
data
:
data
};
},
pagination
:
false
,
columns
:
columns
,
useSearchForm
:
true
,
showTableSetting
:
false
,
formConfig
:
{
labelWidth
:
120
,
schemas
:
searchFormSchema
,
autoSubmitOnEnter
:
true
,
},
rowKey
:
'id'
,
// rowSelection: true,
bordered
:
true
,
showIndexColumn
:
false
,
// actionColumn: {
// width: 150,
// title: '操作',
// dataIndex: 'action',
// },
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
await
reload
();
setModalProps
({
confirmLoading
:
false
});
title
.
value
=
data
.
title
;
});
// const [
// registerTable,
// { reload, updateTableDataRecord, getSearchInfo, getForm, getRowSelection },
// ] = useTable({
// title: '',
// api: async (params) => {
// //过滤掉tableData.value中,businessId等于100的
// var data = [];
// if (params.taskId == undefined || params.taskId == '') {
// data = tableData.value.filter((item) => item.businessId >= 200);
// } else if (params.taskId >= 200) {
// data = tableData.value.filter((item) => item.businessId == params.taskId);
// } else {
// data = tableData.value.filter((item) => item.parentId == params.taskId);
// }
// const response = {
// pageNu: '1',
// pageSize: '10',
// pages: '1',
// total: data.length,
// code: '',
// message: '',
// data: [],
// };
// //过滤data中的数据,取出等于params.deptId的数据
// return { ...response, data: data };
// },
// rowKey: 'businessId',
// columns,
// rowSelection: true,
// formConfig: {
// labelWidth: 120,
// schemas: searchFormSchema,
// autoSubmitOnEnter: true,
// },
// useSearchForm: true,
// showTableSetting: false,
// showIndexColumn: false,
// bordered: true,
// handleSearchInfoFn(info) {
// return info;
// },
// actionColumn: {
// width: 280,
// title: '操作',
// dataIndex: 'action',
// },
// });
/**复制按钮*/
function
copyButton
()
{
createMessage
.
success
(
'复制成功!'
);
}
/**粘贴按钮*/
function
stickButton
()
{
createMessage
.
success
(
'粘贴成功!'
);
}
/**删除按钮*/
function
deleteButton
()
{
createConfirm
({
iconType
:
'warning'
,
title
:
'确认删除'
,
content
:
'确认批量删除选中数据吗?'
,
onOk
()
{
createMessage
.
success
(
'删除成功!'
);
reload
();
},
});
}
/** 部门树的select*/
function
handleSelect
(
taskId
=
''
)
{
searchInfo
.
taskId
=
taskId
;
reload
();
}
function
handleSaveManage
(
record
:
Recordable
)
{
openStorageManageModal
(
true
,
{
record
,
});
}
/**确定按钮*/
function
handleSubmit
()
{
closeModal
();
}
onMounted
(()
=>
{
tableData
.
value
=
TreeData
;
console
.
log
(
'tableData.value :'
,
tableData
.
value
);
});
</
script
>
src/views/dataQuality/dataSheet/task/checkRange/storageManageModal.vue
0 → 100644
View file @
002ee9ef
<
template
>
<BasicModal
v-bind=
"$attrs"
@
register=
"registerModal"
title=
"存储管理"
@
ok=
"handleSubmit"
minHeight=
"50"
>
<BasicForm
@
register=
"registerForm"
>
<template
#
clear=
"
{ model, field }">
<DatePicker
style=
"width: 55%"
/>
之前所有的执行记录
<a-button
v-model=
"model.clear"
@
click=
"handleClear"
style=
"margin-left: 5px"
type=
"error"
>
清理
</a-button
>
</
template
>
<
template
#
isStorageInHDFS=
"{ model, field }"
>
<a-input
style=
"width: 60px; margin-right: 5px"
/>
时
<a-input
style=
"width: 60px; margin-right: 5px"
/>
分
</
template
>
</BasicForm>
</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
{
StorageSchema
}
from
'./account.data'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
DatePicker
}
from
'ant-design-vue'
;
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
160
,
labelAlign
:
'left'
,
baseColProps
:
{
span
:
24
},
schemas
:
StorageSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
resetFields
();
setModalProps
({
confirmLoading
:
false
});
});
/**确定按钮*/
function
handleSubmit
()
{
createMessage
.
success
(
'保存成功!'
);
closeModal
();
}
/**确定按钮*/
function
handleClear
()
{
createMessage
.
success
(
'清理成功!'
);
closeModal
();
}
</
script
>
src/views/dataQuality/dataSheet/task/index.vue
View file @
002ee9ef
...
@@ -48,6 +48,8 @@
...
@@ -48,6 +48,8 @@
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
查看报告
</a-button
>
查看报告
</a-button
>
>
<a-button
type=
"primary"
@
click=
"handleAddCheckRangePlus"
>
添加检查范围-增量添加
</a-button>
<!--
<a-button
type=
"primary"
@
click=
"handleAddCheckRangeAll"
>
添加检查范围-全量添加
</a-button>
-->
<a-button
<a-button
type=
"primary"
type=
"primary"
@
click=
"handleQualityTaskOnline"
@
click=
"handleQualityTaskOnline"
...
@@ -113,6 +115,7 @@
...
@@ -113,6 +115,7 @@
<quality-setting-modal
@
register=
"registerSettingModal"
/>
<quality-setting-modal
@
register=
"registerSettingModal"
/>
<new-rule-modal
@
register=
"registerNewRule"
/>
<new-rule-modal
@
register=
"registerNewRule"
/>
<alarm-setting-modal
@
register=
"registerAlarmSettingModal"
/>
<alarm-setting-modal
@
register=
"registerAlarmSettingModal"
/>
<quality-check-range-plus-modal
@
register=
"registerCheckRangePlusModal"
/>
</PageWrapper>
</PageWrapper>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
...
@@ -138,6 +141,7 @@
...
@@ -138,6 +141,7 @@
import
QualitySettingModal
from
'./QualityTaskSetting.vue'
;
import
QualitySettingModal
from
'./QualityTaskSetting.vue'
;
import
NewRuleModal
from
'./QualityTaskNewRule.vue'
;
import
NewRuleModal
from
'./QualityTaskNewRule.vue'
;
import
AlarmSettingModal
from
'./QualityTaskAlarmSetting.vue'
;
import
AlarmSettingModal
from
'./QualityTaskAlarmSetting.vue'
;
import
QualityCheckRangePlusModal
from
'@/views/dataQuality/dataSheet/task/checkRange/index.vue'
;
import
{
Modal
}
from
'ant-design-vue'
;
import
{
Modal
}
from
'ant-design-vue'
;
defineOptions
({
name
:
'AccountManagement'
});
defineOptions
({
name
:
'AccountManagement'
});
...
@@ -147,6 +151,7 @@
...
@@ -147,6 +151,7 @@
const
go
=
useGo
();
const
go
=
useGo
();
const
isOnline
=
ref
(
true
);
const
isOnline
=
ref
(
true
);
const
isOffline
=
ref
(
false
);
const
isOffline
=
ref
(
false
);
// const isRunning = ref(false);
const
[
register
,
{
openModal
}]
=
useModal
();
const
[
register
,
{
openModal
}]
=
useModal
();
const
[
registerImport
,
{
openModal
:
openImportModal
}]
=
useModal
();
const
[
registerImport
,
{
openModal
:
openImportModal
}]
=
useModal
();
const
[
registerRemove
,
{
openModal
:
openRemoveModal
}]
=
useModal
();
const
[
registerRemove
,
{
openModal
:
openRemoveModal
}]
=
useModal
();
...
@@ -155,6 +160,7 @@
...
@@ -155,6 +160,7 @@
const
[
registerRunSetting
,
{
openModal
:
openRunSettingModal
}]
=
useModal
();
const
[
registerRunSetting
,
{
openModal
:
openRunSettingModal
}]
=
useModal
();
const
[
registerSettingModal
,
{
openModal
:
openSettingModal
}]
=
useModal
();
const
[
registerSettingModal
,
{
openModal
:
openSettingModal
}]
=
useModal
();
const
[
registerAlarmSettingModal
,
{
openModal
:
openAlarmSettingModal
}]
=
useModal
();
const
[
registerAlarmSettingModal
,
{
openModal
:
openAlarmSettingModal
}]
=
useModal
();
const
[
registerCheckRangePlusModal
,
{
openModal
:
openCheckRangePlusModal
}]
=
useModal
();
const
searchInfo
=
reactive
<
Recordable
>
({});
const
searchInfo
=
reactive
<
Recordable
>
({});
const
[
const
[
registerTable
,
registerTable
,
...
@@ -257,6 +263,10 @@
...
@@ -257,6 +263,10 @@
function
handleQualityTaskRunLog
()
{
function
handleQualityTaskRunLog
()
{
go
(
'/dataQuality/task'
);
go
(
'/dataQuality/task'
);
}
}
/** 添加检查范围*/
function
handleAddCheckRangePlus
()
{
openCheckRangePlusModal
(
true
,
{});
}
/** 上线 未完成 应为弹窗*/
/** 上线 未完成 应为弹窗*/
function
handleQualityTaskOnline
()
{
function
handleQualityTaskOnline
()
{
go
(
'/dataQuality/dataSheet/task'
);
go
(
'/dataQuality/dataSheet/task'
);
...
...
src/views/dataQuality/dataSheet/template/runModal.vue
View file @
002ee9ef
...
@@ -10,7 +10,6 @@
...
@@ -10,7 +10,6 @@
<!-- >-->
<!-- >-->
<a-cascader
<a-cascader
style=
"width: 100%"
style=
"width: 100%"
:value=
"text"
placeholder=
"Please select"
placeholder=
"Please select"
showSearch
showSearch
change-on-select
change-on-select
...
@@ -46,8 +45,8 @@
...
@@ -46,8 +45,8 @@
const
isRun
=
ref
(
false
);
const
isRun
=
ref
(
false
);
const
options
:
CascaderProps
[
'options'
]
=
[
const
options
:
CascaderProps
[
'options'
]
=
[
{
{
value
:
'数据
库
对象资源'
,
value
:
'数据
表
对象资源'
,
label
:
'数据
库
对象资源'
,
label
:
'数据
表
对象资源'
,
children
:
[
children
:
[
{
{
value
:
'数据中台工作区01'
,
value
:
'数据中台工作区01'
,
...
@@ -111,27 +110,9 @@
...
@@ -111,27 +110,9 @@
},
},
],
],
},
},
],
},
],
},
],
},
{
value
:
'公共资源'
,
label
:
'公共资源'
,
children
:
[
{
value
:
'公共代码'
,
label
:
'公共代码'
,
children
:
[
{
value
:
'范围a'
,
label
:
'范围a'
,
children
:
[
{
{
value
:
'dmtp0
1
'
,
value
:
'dmtp0
2
'
,
label
:
'dmtp0
1
'
,
label
:
'dmtp0
2
'
,
children
:
[
children
:
[
{
{
value
:
'eligible_graduates_list'
,
value
:
'eligible_graduates_list'
,
...
@@ -149,6 +130,38 @@
...
@@ -149,6 +130,38 @@
value
:
'landing_graduates_info'
,
value
:
'landing_graduates_info'
,
label
:
'landing_graduates_info'
,
label
:
'landing_graduates_info'
,
},
},
{
value
:
'landing_member_relationship_info'
,
label
:
'landing_member_relationship_info'
,
},
{
value
:
'lowincome_family_children_list'
,
label
:
'lowincome_family_children_list'
,
},
{
value
:
'lowincome_family_info'
,
label
:
'lowincome_family_info'
,
},
{
value
:
'lowincome_graduates_area_ratio'
,
label
:
'lowincome_graduates_area_ratio'
,
},
{
value
:
'lowincome_graduates_cnt'
,
label
:
'lowincome_graduates_cnt'
,
},
{
value
:
'lowincome_graduates_employment_cls'
,
label
:
'lowincome_graduates_employment_cls'
,
},
{
value
:
'lowincome_graduates_employment_rat'
,
label
:
'lowincome_graduates_employment_rat'
,
},
{
value
:
'test'
,
label
:
'test'
,
},
],
],
},
},
],
],
...
@@ -157,6 +170,54 @@
...
@@ -157,6 +170,54 @@
},
},
],
],
},
},
{
value
:
'数据库对象资源'
,
label
:
'数据库对象资源'
,
children
:
[
{
value
:
'数据中台工作区01'
,
label
:
'数据中台工作区01'
,
children
:
[
{
value
:
'ArgoDB_Dev01'
,
label
:
'ArgoDB_Dev01'
,
},
{
value
:
'ArgoDB_Dev02'
,
label
:
'ArgoDB_Dev02'
,
},
{
value
:
'GbaseDB_Dev01'
,
label
:
'GbaseDB_Dev01'
,
},
],
},
],
},
{
value
:
'公共资源'
,
label
:
'公共资源'
,
children
:
[
{
value
:
'公共代码'
,
label
:
'公共代码'
,
children
:
[
{
value
:
'范围a'
,
label
:
'范围a'
,
},
{
value
:
'年龄范围'
,
label
:
'年龄范围'
,
},
{
value
:
'及格分数'
,
label
:
'及格分数'
,
},
],
},
],
},
];
];
//初始化弹框
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
...
...
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