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
dad997a7
Commit
dad997a7
authored
Dec 06, 2024
by
LiXuyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
任务流-复制
parent
0450f040
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
473 additions
and
395 deletions
+473
-395
copyModal.vue
src/views/taskScheduling/taskFlowDesign/copyModal.vue
+63
-0
deleteModel.vue
src/views/taskScheduling/taskFlowDesign/deleteModel.vue
+4
-2
design.data.ts
src/views/taskScheduling/taskFlowDesign/design.data.ts
+41
-32
index.vue
src/views/taskScheduling/taskFlowDesign/index.vue
+365
-361
No files found.
src/views/taskScheduling/taskFlowDesign/copyModal.vue
0 → 100644
View file @
dad997a7
<
template
>
<BasicModal
width=
"40%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"getTitle"
@
ok=
"handleSubmit"
>
<BasicForm
@
register=
"registerForm"
>
<template
#
path=
"
{ field, model }">
<InputSearch
v-model:value=
"model[field]"
enter-button=
"选择"
@
search=
"handleSearch"
/>
</
template
>
</BasicForm>
</BasicModal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
,
unref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
copyFormSchema
}
from
'@/views/taskScheduling/taskFlowDesign/design.data'
;
import
{
BaseFormatProps
}
from
'vue-i18n'
;
import
{
InputSearch
}
from
'ant-design-vue'
;
const
isUpdate
=
ref
(
false
);
const
isMove
=
ref
(
false
);
const
rowId
=
ref
(
''
);
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const
[
registerForm
,
{
setFieldsValue
,
resetFields
,
validate
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
24
,
md
:
24
},
schemas
:
copyFormSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
}
as
BaseFormatProps
);
//初始化弹框
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
=
'复制到'
;
function
handleSearch
()
{}
/**确定按钮*/
async
function
handleSubmit
()
{
await
validate
();
closeModal
();
}
</
script
>
src/views/taskScheduling/taskFlowDesign/deleteModel.vue
View file @
dad997a7
...
...
@@ -41,7 +41,7 @@
<BasicTable
@
register=
"rightTable"
:searchInfo=
"searchInfo"
>
<
template
#
headerCell=
"{ column }"
>
<template
v-if=
"column.key === 'task'"
>
<span>
被引
入
(
{{
getRightList
().
length
}}
)
</span>
<span>
被引
用
(
{{
getRightList
().
length
}}
)
</span>
</
template
>
</template>
</BasicTable>
...
...
@@ -51,7 +51,7 @@
</template>
<
script
lang=
"ts"
setup
>
import
{
useTable
,
TableAction
,
BasicTableProps
}
from
'@/components/Table'
;
import
{
ref
,
computed
,
unref
,
reactive
}
from
'vue'
;
import
{
ref
,
computed
,
unref
,
reactive
,
defineEmits
}
from
'vue'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
{
Select
,
Alert
,
List
,
Row
,
Col
}
from
'ant-design-vue'
;
import
{
BranchesOutlined
}
from
'@ant-design/icons-vue'
;
...
...
@@ -72,6 +72,7 @@
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
delList1
,
delList2
,
delList3
}
from
'./designData.ts'
;
const
emit
=
defineEmits
([
'success'
]);
const
getTitle
=
'任务流依赖/引用提醒'
;
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
...
...
@@ -127,5 +128,6 @@
}
as
BasicTableProps
);
async
function
handleSubmit
()
{
closeModal
();
emit
(
'success'
);
}
</
script
>
src/views/taskScheduling/taskFlowDesign/design.data.ts
View file @
dad997a7
import
{
FormSchema
}
from
'@/components/Form'
;
import
{
BasicColumn
}
from
'@/components/Table'
;
import
{
InputProps
,
TableColumn
}
from
'ant-design-vue'
;
import
{
InputProps
,
TableColumn
}
from
'ant-design-vue'
;
import
{
TreeItem
}
from
'@/components/Tree'
;
export
const
designFormSchema
:
FormSchema
[]
=
[
...
...
@@ -900,8 +900,8 @@ export const taskOverallConfig: FormSchema[] = [
{
label
:
'调度时间'
,
field
:
'scheduleTime'
,
fields
:[
'scheduleTime'
],
slot
:
'scheduleTime'
,
fields
:
[
'scheduleTime'
],
slot
:
'scheduleTime'
,
colProps
:
{
lg
:
24
,
md
:
24
},
show
:
({
model
})
=>
{
return
model
.
cycle
===
'每天一次'
;
...
...
@@ -910,7 +910,7 @@ export const taskOverallConfig: FormSchema[] = [
{
label
:
'事件触发器'
,
field
:
'eventTrigger'
,
slot
:
'eventTrigger'
,
slot
:
'eventTrigger'
,
colProps
:
{
lg
:
24
,
md
:
24
},
show
:
({
model
})
=>
{
return
model
.
cycle
===
'事件触发器'
;
...
...
@@ -1096,7 +1096,6 @@ export const delTableColumn1: BasicColumn[] = [
},
];
export
const
defineEvent
:
FormSchema
[]
=
[
{
label
:
'检查频率'
,
...
...
@@ -1107,8 +1106,8 @@ export const defineEvent: FormSchema[] = [
colProps
:
{
span
:
20
,
},
helpMessage
:
[
'正整数,默认60'
,
'单位:秒、分钟、小时'
],
slot
:
'checkFrequency'
,
helpMessage
:
[
'正整数,默认60'
,
'单位:秒、分钟、小时'
],
slot
:
'checkFrequency'
,
required
:
true
,
},
{
...
...
@@ -1119,7 +1118,7 @@ export const defineEvent: FormSchema[] = [
colProps
:
{
span
:
20
,
},
slot
:
'triggerType'
,
slot
:
'triggerType'
,
},
{
label
:
'文件系统源'
,
...
...
@@ -1127,7 +1126,7 @@ export const defineEvent: FormSchema[] = [
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'文件到达'
;
},
slot
:
'fileSystemSource'
,
slot
:
'fileSystemSource'
,
colProps
:
{
span
:
20
,
},
...
...
@@ -1136,7 +1135,7 @@ export const defineEvent: FormSchema[] = [
{
label
:
'文件路径'
,
field
:
'filePath'
,
slot
:
'filePath'
,
slot
:
'filePath'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'文件到达'
;
},
...
...
@@ -1150,8 +1149,8 @@ export const defineEvent: FormSchema[] = [
field
:
'targetObject'
,
defaultValue
:
'资源名称'
,
fields
:
[
'targetObjects'
],
slot
:
'targetObject'
,
helpMessage
:
[
'输入文件或文件名称'
,
'支持通配符和参数'
],
slot
:
'targetObject'
,
helpMessage
:
[
'输入文件或文件名称'
,
'支持通配符和参数'
],
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'文件到达'
;
},
...
...
@@ -1182,13 +1181,13 @@ export const defineEvent: FormSchema[] = [
{
label
:
'保存结果'
,
field
:
'saveResults'
,
fields
:
[
'saveResultName'
,
'saveResultObject'
],
fields
:
[
'saveResultName'
,
'saveResultObject'
],
helpMessage
:
[
'下拉搜索框根据参数类型过滤可选择的参数名'
],
defaultValueObj
:
{
saveResultName
:
'全局参数'
},
colProps
:
{
span
:
20
,
},
slot
:
'saveResults'
,
slot
:
'saveResults'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'文件到达'
;
},
...
...
@@ -1202,7 +1201,7 @@ export const defineEvent: FormSchema[] = [
span
:
20
,
},
/*component:'TimePicker',*/
slot
:
'startTime'
,
slot
:
'startTime'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'SQL结果检查'
;
},
...
...
@@ -1216,7 +1215,7 @@ export const defineEvent: FormSchema[] = [
colProps
:
{
span
:
20
,
},
slot
:
'rollingTimeWindow'
,
slot
:
'rollingTimeWindow'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'SQL结果检查'
;
},
...
...
@@ -1244,16 +1243,16 @@ export const defineEvent: FormSchema[] = [
{
label
:
'连接'
,
field
:
'connection'
,
component
:
'Select'
,
defaultValue
:
'1'
,
component
:
'Select'
,
defaultValue
:
'1'
,
colProps
:
{
span
:
20
,
},
componentProps
:
{
options
:
[
{
value
:
'1'
,
label
:
'192.168.11.3'
},
{
value
:
'2'
,
label
:
'192.168.96.3'
},
{
value
:
'3'
,
label
:
'192.168.1.32'
},
{
value
:
'1'
,
label
:
'192.168.11.3'
},
{
value
:
'2'
,
label
:
'192.168.96.3'
},
{
value
:
'3'
,
label
:
'192.168.1.32'
},
],
},
show
:
({
model
})
=>
{
...
...
@@ -1266,7 +1265,7 @@ export const defineEvent: FormSchema[] = [
field
:
'sql'
,
component
:
'InputTextArea'
,
componentProps
:
{
placeholder
:
'事件满足取决于当前sql返回结果是否为空,'
+
placeholder
:
'事件满足取决于当前sql返回结果是否为空,'
+
'若无返回结果则判断事件条件未达成:
\
n'
+
'此处支持引用任务流参数、工作区参数、全局参数'
,
rows
:
8
,
...
...
@@ -1282,11 +1281,11 @@ export const defineEvent: FormSchema[] = [
{
label
:
'保存结果'
,
field
:
'saveResultsT'
,
fields
:
[
'saveResultName'
,
'saveResultObject'
],
fields
:
[
'saveResultName'
,
'saveResultObject'
],
colProps
:
{
span
:
20
,
},
slot
:
'saveResults'
,
slot
:
'saveResults'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'SQL结果检查'
;
},
...
...
@@ -1299,7 +1298,7 @@ export const defineEvent: FormSchema[] = [
span
:
20
,
},
/*component:'TimePicker',*/
slot
:
'startTimeT'
,
slot
:
'startTimeT'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'脚本自定义'
;
},
...
...
@@ -1312,7 +1311,7 @@ export const defineEvent: FormSchema[] = [
colProps
:
{
span
:
20
,
},
slot
:
'rollingTimeWindowT'
,
slot
:
'rollingTimeWindowT'
,
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'脚本自定义'
;
},
...
...
@@ -1342,7 +1341,8 @@ export const defineEvent: FormSchema[] = [
field
:
'scriptContent'
,
component
:
'InputTextArea'
,
componentProps
:
{
placeholder
:
'脚本运行成功,即满足,因此判断逻辑由用户确定例如
\
n'
+
placeholder
:
'脚本运行成功,即满足,因此判断逻辑由用户确定例如
\
n'
+
'675/1346
\
n'
+
'set +e
\
n'
+
'a=2
\
n'
+
...
...
@@ -1352,14 +1352,23 @@ export const defineEvent: FormSchema[] = [
'TRANSWARP
\
n'
+
'else exit 1
\
n'
+
'set-e'
,
rows
:
12
,
rows
:
12
,
}
as
InputProps
,
colProps
:
{
span
:
20
,
},
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'脚本自定义'
;
colProps
:
{
span
:
20
,
},
show
:
({
model
})
=>
{
return
model
.
triggerType
===
'脚本自定义'
;
},
},
required
:
true
,
},
];
export
const
copyFormSchema
:
FormSchema
[]
=
[
{
label
:
'路径'
,
field
:
'path'
,
slot
:
'path'
,
},
];
src/views/taskScheduling/taskFlowDesign/index.vue
View file @
dad997a7
...
...
@@ -10,18 +10,17 @@
:options=
"versionOptions"
/>
<a-button
v-if=
"versionFlag"
type=
"primary"
>
<RollbackOutlined/>
<RollbackOutlined
/>
回滚
</a-button>
<a-button
v-if=
"versionFlag"
type=
"primary"
danger
@
click=
"handleExit"
>
<CloseOutlined/>
<a-button
v-if=
"versionFlag"
type=
"primary"
danger
@
click=
"handleExit"
>
<CloseOutlined
/>
退出
</a-button
</a-button>
<a-button
v-if=
"!versionFlag"
style=
"border-color: transparent"
>
<Icon
icon=
"ant-design:dashboard-outlined"
style=
"color: blue"
size=
"24"
/>
<p>
跳转运维
</p></a-button
>
<a-button
v-if=
"!versionFlag"
style=
"border-color:transparent"
>
<Icon
icon=
"ant-design:dashboard-outlined"
style=
"color: blue"
size=
"24"
/>
<p>
跳转运维
</p></a-button>
<a-button
v-if=
"!versionFlag"
:disabled=
"debugFlag"
type=
"primary"
>
<!--
<Icon
icon=
"ant-design:caret-right-outlined"
style=
"color: blue"
size=
"24"
/>
<p>
运行
</p>
-->
...
...
@@ -32,31 +31,29 @@
调试
</a-button>
<a-button
v-if=
"!versionFlag && debugFlag"
type=
"primary"
>
调试全部任务
</a-button>
<a-button
v-if=
"!versionFlag && debugFlag"
type=
"primary"
@
click=
"handelOutDebug"
>
退出调试
<a-button
v-if=
"!versionFlag && debugFlag"
type=
"primary"
@
click=
"handelOutDebug"
>
退出调试
</a-button>
<a-button
v-if=
"!versionFlag"
:disabled=
"debugFlag"
type=
"primary"
@
click=
"handleSave"
>
保存
</a-button
>
>
保存
</a-button>
<a-button
v-if=
"!versionFlag && !uploadFlag"
:disabled=
"debugFlag"
type=
"primary"
@
click=
"handleUpload"
>
发布
</a-button
>
>
发布
</a-button>
<a-button
v-if=
"!versionFlag && uploadFlag"
type=
"primary"
@
click=
"handleOffline"
>
下线
</a-button
>
>
下线
</a-button>
<div
style=
"display: flex; flex-direction: column; text-align: center"
>
<RadioGroup
v-model:value=
"showType"
button-style=
"solid"
size=
"small"
>
<RadioButton
value=
"table"
>
<UnorderedListOutlined/>
<UnorderedListOutlined
/>
</RadioButton>
<RadioButton
value=
"chart"
>
<AppstoreOutlined/>
<AppstoreOutlined
/>
</RadioButton>
</RadioGroup>
<div>
展示切换
</div>
...
...
@@ -68,29 +65,29 @@
<a-button
type=
"primary"
@
click=
"handleVersion"
>
版本管理
</a-button>
</
template
>
<
template
#
footer
>
<div
style=
"display: flex;"
>
<ModelTree
class=
"w-1/4"
@
select=
"handleSelect"
/>
<BasicTable
class=
"w-3/4"
style=
"height: 1000px;"
v-if=
"showType === 'table'"
@
register=
"registerTable"
:searchInfo=
"searchInfo"
<div
style=
"display: flex"
>
<ModelTree
class=
"w-1/4"
@
select=
"handleSelect"
/>
<BasicTable
class=
"w-3/4"
style=
"height: 1000px"
v-if=
"showType === 'table'"
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
@
click=
"handleOrderType"
>
<SwapRightOutlined
:rotate=
"rotate"
/>
<a-button
@
click=
"handleOrderType"
>
<SwapRightOutlined
:rotate=
"rotate"
/>
按执行计划排序
</a-button
</a-button>
<a-button
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleCopy"
>
复制
</a-button
>
<a-button
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
>
复制
</a-button>
<a-button
:disabled=
"getRowSelection().selectedRowKeys
<
=
0
"
@
click=
"handleDeleteMore"
>
删除
</a-button
>
>
删除
</a-button>
<Dropdown
:trigger=
"['click']"
>
<a-button
type=
"primary"
@
click
.
prevent
>
<PlusOutlined/>
<PlusOutlined
/>
新建任务
</a-button>
<template
#
overlay
>
...
...
@@ -158,150 +155,153 @@
</
template
>
</template>
<
template
#
task=
"{ text, record }"
>
<a-button
v-if=
"text"
>
{{
text
}}
<CheckCircleFilled
style=
"color: #44c498"
/>
<a-button
v-if=
"text"
>
{{
text
}}
<CheckCircleFilled
style=
"color: #44c498"
/>
</a-button>
<a-button
@
click=
"handleSetting"
>
<SettingOutlined/>
<SettingOutlined
/>
</a-button>
</
template
>
</BasicTable>
<div
v-if=
"showType === 'chart'"
class=
"w-3/4"
style=
"height: 1000px;margin-left: 30px"
>
<div
v-if=
"showType === 'chart'"
class=
"w-3/4"
style=
"height: 1000px;
margin-left: 30px"
>
<!-- <img src="/src/assets/images/taskFlushChart.jpg" style="width: 100%" alt="" />-->
<!-- <FlowChart :data="demoData" :flowOptions="flowOptions" :patternItems="patternItems" v-if="showType === 'chart'"/>-->
<FlowChart
:data=
"demoData"
:patternItems=
"patternItems"
v-if=
"showType === 'chart'"
/>
<FlowChart
:data=
"demoData"
:patternItems=
"patternItems"
v-if=
"showType === 'chart'"
/>
</div>
</div>
</template>
<TaskModel
@
register=
"taskModel"
/>
<UpstreamModel
@
register=
"upstreamTaskModel"
/>
<DependModel
@
register=
"dependModel"
/>
<TaskConfigModel
@
register=
"taskConfigModel"
/>
<UploadModel
@
register=
"uploadModel"
@
set-upload-flag=
"setUploadFlag"
/>
<VersionModel
@
register=
"versionModel"
@
set-version=
"setVersion"
@
show-dag=
"showDag"
/>
<DeleteModel
@
register=
"deleteModel"
/>
<OfflineModel
@
register=
"offlineModel"
@
set-upload-flag=
"setUploadFlag"
/>
<TaskFlowConfig
@
register=
"taskFlowConfig"
/>
<TaskModel
@
register=
"taskModel"
/>
<UpstreamModel
@
register=
"upstreamTaskModel"
/>
<DependModel
@
register=
"dependModel"
/>
<TaskConfigModel
@
register=
"taskConfigModel"
/>
<UploadModel
@
register=
"uploadModel"
@
set-upload-flag=
"setUploadFlag"
/>
<VersionModel
@
register=
"versionModel"
@
set-version=
"setVersion"
@
show-dag=
"showDag"
/>
<DeleteModel
@
register=
"deleteModel"
@
success=
"handleDelelte"
/>
<OfflineModel
@
register=
"offlineModel"
@
set-upload-flag=
"setUploadFlag"
/>
<TaskFlowConfig
@
register=
"taskFlowConfig"
/>
<CopyModal
@
register=
"copyModal"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
TaskModel
from
'./taskModel.vue'
;
import
{
reactive
,
onMounted
,
ref
,
nextTick
,
computed
}
from
'vue'
;
import
{
SettingOutlined
,
UnorderedListOutlined
,
AppstoreOutlined
,
CheckCircleFilled
,
SwapRightOutlined
,
PlusOutlined
,
RollbackOutlined
,
CloseOutlined
,
}
from
'@ant-design/icons-vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
TableAction
,
useTable
}
from
'@/components/Table'
;
import
{
useRoute
,
onBeforeRouteLeave
,
useRouter
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
Descriptions
,
Tabs
,
Select
,
RadioGroup
,
RadioButton
,
Dropdown
,
Menu
,
MenuItem
,
}
from
'ant-design-vue'
;
import
EntityTable
from
'./entityTable.vue'
;
import
ConnectionTable
from
'./connectionTable.vue'
;
import
CrossTable
from
'./crossTable.vue'
;
import
{
entityData
,
infoData
,
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'
;
import
{
FormSchema
}
from
'@/components/Form'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
TurnPhysicalModel
from
'./turnPhysicalModel.vue'
;
import
VersionDetailModel
from
'./versionModel.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
BasicTable
from
'@/components/Table/src/BasicTable.vue'
;
import
{
entityColumns
,
entityFormSchema
,
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/model.data'
;
import
{
designColumn
,
designFormSchema
,
}
from
'@/views/taskScheduling/taskFlowDesign/design.data'
;
import
{
designData
}
from
'@/views/taskScheduling/taskFlowDesign/designData'
;
import
{
router
}
from
'@/router'
;
import
UpstreamModel
from
'./upstreamTaskModel.vue'
;
import
DependModel
from
'./dependModel.vue'
;
import
TaskConfigModel
from
'./taskConfigModel.vue'
;
import
UploadModel
from
'./uploadModel.vue'
;
import
VersionModel
from
'./versionModel.vue'
;
import
DeleteModel
from
'./deleteModel.vue'
;
import
OfflineModel
from
'./offlineModel.vue'
;
import
TaskFlowConfig
from
'./taskFlowConfig.vue'
;
import
ModelTree
from
'./ModelTree.vue'
;
import
{
logicalData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
import
Icon
from
"@/components/Icon/Icon.vue"
;
import
demoData
from
"./dataTurbo.json"
;
import
{
FlowChart
}
from
"@/components/FlowChart"
;
import
TaskModel
from
'./taskModel.vue'
;
import
{
reactive
,
onMounted
,
ref
,
nextTick
,
computed
}
from
'vue'
;
import
{
SettingOutlined
,
UnorderedListOutlined
,
AppstoreOutlined
,
CheckCircleFilled
,
SwapRightOutlined
,
PlusOutlined
,
RollbackOutlined
,
CloseOutlined
,
}
from
'@ant-design/icons-vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
TableAction
,
useTable
}
from
'@/components/Table'
;
import
{
useRoute
,
onBeforeRouteLeave
,
useRouter
}
from
'vue-router'
;
import
{
useFilterStore
}
from
'@/store/modules/filterData'
;
import
{
Descriptions
,
Tabs
,
Select
,
RadioGroup
,
RadioButton
,
Dropdown
,
Menu
,
MenuItem
,
}
from
'ant-design-vue'
;
import
EntityTable
from
'./entityTable.vue'
;
import
ConnectionTable
from
'./connectionTable.vue'
;
import
CrossTable
from
'./crossTable.vue'
;
import
{
entityData
,
infoData
,
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/modelData'
;
import
{
FormSchema
}
from
'@/components/Form'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
TurnPhysicalModel
from
'./turnPhysicalModel.vue'
;
import
VersionDetailModel
from
'./versionModel.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
BasicTable
from
'@/components/Table/src/BasicTable.vue'
;
import
{
entityColumns
,
entityFormSchema
,
}
from
'@/views/dataWarehousePlanning/logicalModel/modelDetail/model.data'
;
import
{
designColumn
,
designFormSchema
,
}
from
'@/views/taskScheduling/taskFlowDesign/design.data'
;
import
{
designData
}
from
'@/views/taskScheduling/taskFlowDesign/designData'
;
import
{
router
}
from
'@/router'
;
import
UpstreamModel
from
'./upstreamTaskModel.vue'
;
import
DependModel
from
'./dependModel.vue'
;
import
TaskConfigModel
from
'./taskConfigModel.vue'
;
import
UploadModel
from
'./uploadModel.vue'
;
import
VersionModel
from
'./versionModel.vue'
;
import
DeleteModel
from
'./deleteModel.vue'
;
import
OfflineModel
from
'./offlineModel.vue'
;
import
TaskFlowConfig
from
'./taskFlowConfig.vue'
;
import
ModelTree
from
'./ModelTree.vue'
;
import
{
logicalData
}
from
'@/views/dataWarehousePlanning/logicalModel/modelData'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
demoData
from
'./dataTurbo.json'
;
import
{
FlowChart
}
from
'@/components/FlowChart'
;
import
CopyModal
from
'./copyModal.vue'
;
const
[
taskModel
,
{
openModal
:
openTaskModel
}]
=
useModal
();
const
filterStore
=
useFilterStore
();
const
[
upstreamTaskModel
,
{
openModal
:
openUpstreamModel
}]
=
useModal
();
const
[
dependModel
,
{
openModal
:
openDependModel
}]
=
useModal
();
const
[
taskConfigModel
,
{
openModal
:
openTaskConfigModel
}]
=
useModal
();
const
[
uploadModel
,
{
openModal
:
openUploadModel
}]
=
useModal
();
const
[
versionModel
,
{
openModal
:
openVersionModel
}]
=
useModal
();
const
[
deleteModel
,
{
openModal
:
openDeleteModel
}]
=
useModal
();
const
[
offlineModel
,
{
openModal
:
openOfflineModel
}]
=
useModal
();
const
[
taskFlowConfig
,
{
openModal
:
openTaskFlowConfig
}]
=
useModal
();
const
rotate
=
ref
(
90
);
const
showType
=
ref
(
'table'
);
const
searchInfo
=
reactive
<
Recordable
>
({});
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
versionFlag
=
ref
(
false
);
const
debugFlag
=
ref
(
false
);
const
version
=
ref
();
const
versionOptions
=
[
{
label
:
'V20 2023/07/07 14:24:25'
,
value
:
'V20 2023/07/07 14:24:25'
,
},
{
label
:
'V19 2023/07/07 14:11:05'
,
value
:
'V19 2023/07/07 14:11:05'
,
},
{
label
:
'V18 2023/07/06 14:39:59'
,
value
:
'V18 2023/07/06 14:39:59'
,
},
{
label
:
'V17 2023/07/06 10:54:14'
,
value
:
'V17 2023/07/06 10:54:14'
,
},
{
label
:
'V16 2023/07/04 19:26:29'
,
value
:
'V16 2023/07/04 19:26:29'
,
},
{
label
:
'V15 2023/07/04 18:56:54'
,
value
:
'V15 2023/07/04 18:56:54'
,
},
{
label
:
'V14 2023/07/04 17:06:19'
,
value
:
'V14 2023/07/04 17:06:19'
,
},
{
label
:
'V13 2023/07/03 11:02:10'
,
value
:
'V13 2023/07/03 11:02:10'
,
},
];
/* // 配置 FlowChart 的参数
const
[
taskModel
,
{
openModal
:
openTaskModel
}]
=
useModal
();
const
filterStore
=
useFilterStore
();
const
[
upstreamTaskModel
,
{
openModal
:
openUpstreamModel
}]
=
useModal
();
const
[
dependModel
,
{
openModal
:
openDependModel
}]
=
useModal
();
const
[
taskConfigModel
,
{
openModal
:
openTaskConfigModel
}]
=
useModal
();
const
[
uploadModel
,
{
openModal
:
openUploadModel
}]
=
useModal
();
const
[
versionModel
,
{
openModal
:
openVersionModel
}]
=
useModal
();
const
[
deleteModel
,
{
openModal
:
openDeleteModel
}]
=
useModal
();
const
[
offlineModel
,
{
openModal
:
openOfflineModel
}]
=
useModal
();
const
[
taskFlowConfig
,
{
openModal
:
openTaskFlowConfig
}]
=
useModal
();
const
[
copyModal
,
{
openModal
:
openCopyModal
}]
=
useModal
();
const
rotate
=
ref
(
90
);
const
showType
=
ref
(
'table'
);
const
searchInfo
=
reactive
<
Recordable
>
({});
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
versionFlag
=
ref
(
false
);
const
debugFlag
=
ref
(
false
);
const
version
=
ref
();
const
versionOptions
=
[
{
label
:
'V20 2023/07/07 14:24:25'
,
value
:
'V20 2023/07/07 14:24:25'
,
},
{
label
:
'V19 2023/07/07 14:11:05'
,
value
:
'V19 2023/07/07 14:11:05'
,
},
{
label
:
'V18 2023/07/06 14:39:59'
,
value
:
'V18 2023/07/06 14:39:59'
,
},
{
label
:
'V17 2023/07/06 10:54:14'
,
value
:
'V17 2023/07/06 10:54:14'
,
},
{
label
:
'V16 2023/07/04 19:26:29'
,
value
:
'V16 2023/07/04 19:26:29'
,
},
{
label
:
'V15 2023/07/04 18:56:54'
,
value
:
'V15 2023/07/04 18:56:54'
,
},
{
label
:
'V14 2023/07/04 17:06:19'
,
value
:
'V14 2023/07/04 17:06:19'
,
},
{
label
:
'V13 2023/07/03 11:02:10'
,
value
:
'V13 2023/07/03 11:02:10'
,
},
];
/* // 配置 FlowChart 的参数
const flowOptions = {
// 定义流程图的配置信息,例如节点、线条的样式等
nodeWidth: 120,
...
...
@@ -311,232 +311,236 @@ const versionOptions = [
// 可以进一步设置其他的选项
};*/
// 左侧拖拽区域的元素
const
patternItems
=
[
{
type
:
'rect'
,
text
:
'</> new task'
,
label
:
'脚本'
,
icon
:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg=='
,
},
{
type
:
'rect'
,
text
:
'</> new task'
,
label
:
'Java'
,
icon
:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg=='
,
},
{
type
:
'rect'
,
text
:
'</> new task'
,
label
:
'Python'
,
icon
:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg=='
,
},
];
// 左侧拖拽区域的元素
const
patternItems
=
[
{
type
:
'rect'
,
text
:
'</> new task'
,
label
:
'脚本'
,
icon
:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg=='
,
},
{
type
:
'rect'
,
text
:
'</> new task'
,
label
:
'Java'
,
icon
:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg=='
,
},
{
type
:
'rect'
,
text
:
'</> new task'
,
label
:
'Python'
,
icon
:
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAEFVwZaAAAABGdBTUEAALGPC/xhBQAAAqlJREFUOBF9VM9rE0EUfrMJNUKLihGbpLGtaCOIR8VjQMGDePCgCCIiCNqzCAp2MyYUCXhUtF5E0D+g1t48qAd7CCLqQUQKEWkStcEfVGlLdp/fm3aW2QQdyLzf33zz5m2IsAZ9XhDpyaaIZkTS4ASzK41TFao88GuJ3hsr2pAbipHxuSYyKRugagICGANkfFnNh3HeE2N0b3nN2cgnpcictw5veJIzxmDamSlxxQZicq/mflxhbaH8BLRbuRwNtZp0JAhoplVRUdzmCe/vO27wFuuA3S5qXruGdboy5/PRGFsbFGKo/haRtQHIrM83bVeTrOgNhZReWaYGnE4aUQgTJNvijJFF4jQ8BxJE5xfKatZWmZcTQ+BVgh7s8SgPlCkcec4mGTmieTP4xd7PcpIEg1TX6gdeLW8rTVMVLVvb7ctXoH0Cydl2QOPJBG21STE5OsnbweVYzAnD3A7PVILuY0yiiyDwSm2g441r6rMSgp6iK42yqroI2QoXeJVeA+YeZSa47gZdXaZWQKTrG93rukk/l2Al6Kzh5AZEl7dDQy+JjgFahQjRopSxPbrbvK7GRe9ePWBo1wcU7sYrFZtavXALwGw/7Dnc50urrHJuTPSoO2IMV3gUQGNg87IbSOIY9BpiT9HV7FCZ94nPXb3MSnwHn/FFFE1vG6DTby+r31KAkUktB3Qf6ikUPWxW1BkXSPQeMHHiW0+HAd2GelJsZz1OJegCxqzl+CLVHa/IibuHeJ1HAKzhuDR+ymNaRFM+4jU6UWKXorRmbyqkq/D76FffevwdCp+jN3UAN/C9JRVTDuOxC/oh+EdMnqIOrlYteKSfadVRGLJFJPSB/ti/6K8f0CNymg/iH2gO/f0DwE0yjAFO6l8JaR5j0VPwPwfaYHqOqrCI319WzwhwzNW/aQAAAABJRU5ErkJggg=='
,
},
];
function
setVersion
(
item
)
{
versionFlag
.
value
=
true
;
console
.
log
(
'node'
,
item
);
version
.
value
=
item
.
version
+
' '
+
item
.
time
;
console
.
log
(
'version'
,
version
.
value
);
}
function
setVersion
(
item
)
{
versionFlag
.
value
=
true
;
console
.
log
(
'node'
,
item
);
version
.
value
=
item
.
version
+
' '
+
item
.
time
;
console
.
log
(
'version'
,
version
.
value
);
}
function
showDag
(
item
)
{
console
.
log
(
'item'
,
item
);
showType
.
value
=
'chart'
;
}
function
showDag
(
item
)
{
console
.
log
(
'item'
,
item
);
showType
.
value
=
'chart'
;
}
function
handleDelelte
()
{
createMessage
.
success
(
'删除成功!'
);
}
function
handleRemove
(
record
)
{
if
(
record
.
task
)
{
openDeleteModel
(
true
,
{
isUpdate
:
false
,
});
}
else
{
createConfirm
({
iconType
:
'warning'
,
title
:
'确认删除'
,
content
:
'确认删除这条数据吗?'
,
onOk
()
{
createMessage
.
success
(
'删除成功!'
);
},
});
}
}
function
handleRemove
(
record
)
{
if
(
record
.
task
)
{
function
handleDeleteMore
()
{
openDeleteModel
(
true
,
{
isUpdate
:
false
,
});
}
else
{
createConfirm
({
iconType
:
'warning'
,
title
:
'确认删除'
,
content
:
'确认删除这条数据吗?'
,
onOk
()
{
createMessage
.
success
(
'删除成功!'
);
},
});
}
}
function
handleDeleteMore
()
{
openDeleteModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleOrderType
()
{
rotate
.
value
=
rotate
.
value
===
90
?
-
90
:
90
;
}
function
handleOrderType
()
{
rotate
.
value
=
rotate
.
value
===
90
?
-
90
:
90
;
}
function
handleCopy
(
record
)
{
openCopyModal
(
true
,
{
isUpdate
:
false
,
});
}
function
handleCopy
(
record
)
{
}
function
handleTaskModel
(
type
)
{
openTaskModel
(
true
,
{
isUpdate
:
false
,
type
:
type
,
});
}
function
handleTaskModel
(
type
)
{
openTaskModel
(
true
,
{
isUpdate
:
false
,
type
:
type
,
});
}
function
handleSetting
()
{
openUpstreamModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleSetting
()
{
openUpstream
Model
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDepend
()
{
openDepend
Model
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDepend
()
{
openDepend
Model
(
true
,
{
isUpdate
:
false
,
});
}
function
handleConfig
()
{
openTaskConfig
Model
(
true
,
{
isUpdate
:
false
,
});
}
function
handle
Config
()
{
openTaskConfigModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleSet
Config
()
{
openTaskFlowConfig
(
true
,
{
isUpdate
:
false
,
});
}
function
handleSetConfig
()
{
openTaskFlowConfig
(
true
,
{
isUpdate
:
false
,
});
}
function
handleVersion
()
{
openVersionModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleVersion
()
{
openVersionModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDelete
()
{}
function
handleDelete
()
{
}
function
handleSave
()
{
createMessage
.
success
(
'保存成功!'
);
// createMessage.warning('当前任务流出现多个名为***的同名任务,请检查');
// createMessage.warning('当前任务流中名称为***的任务的独立周期配置不是当前任务流调度周期的子集,请检查');
// createMessage.warning('任务流【uuid***,名称:***】和任务流[uuid***,名称:**]存在环形依赖关系,请处理');
}
function
handleSave
()
{
// createMessage.warning('当前任务流出现多个名为***的同名任务,请检查');
// createMessage.warning('当前任务流中名称为***的任务的独立周期配置不是当前任务流调度周期的子集,请检查');
// createMessage.warning('任务流【uuid***,名称:***】和任务流[uuid***,名称:**]存在环形依赖关系,请处理'
);
}
function
handleUpload
()
{
openUploadModel
(
true
,
{
isUpdate
:
false
,
}
);
}
function
handleUpload
()
{
openUploadModel
(
true
,
{
isUpdate
:
false
,
});
}
const
uploadFlag
=
ref
(
false
);
const
uploadFlag
=
ref
(
false
);
function
setUploadFlag
(
flag
)
{
uploadFlag
.
value
=
flag
;
}
function
setUploadFlag
(
flag
)
{
uploadFlag
.
value
=
flag
;
}
function
handleOffline
()
{
openOfflineModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleOffline
()
{
openOfflineModel
(
true
,
{
isUpdate
:
false
,
onMounted
(()
=>
{
tableData
.
value
=
designData
;
});
}
onMounted
(()
=>
{
tableData
.
value
=
designData
;
});
/** 部门树的select*/
function
handleSelect
(
key
)
{
console
.
log
(
'asd'
);
if
(
key
!==
null
&&
key
!==
undefined
)
{
modelLevel
.
value
=
key
.
split
(
'-'
).
length
-
1
;
}
else
{
modelLevel
.
value
=
0
;
/** 部门树的select*/
function
handleSelect
(
key
)
{
console
.
log
(
'asd'
);
if
(
key
!==
null
&&
key
!==
undefined
)
{
modelLevel
.
value
=
key
.
split
(
'-'
).
length
-
1
;
}
else
{
modelLevel
.
value
=
0
;
}
if
(
modelLevel
.
value
===
2
)
{
const
regex
=
new
RegExp
(
key
,
'i'
);
const
data
=
tableData
.
value
.
filter
(
(
item
)
=>
item
.
type
===
'model'
&&
regex
.
test
(
item
.
themeId
),
);
setTableData
(
data
);
}
if
(
modelLevel
.
value
===
1
)
{
const
regex
=
new
RegExp
(
key
,
'i'
);
const
data
=
tableData
.
value
.
filter
(
(
item
)
=>
item
.
type
===
'twoLevel'
&&
regex
.
test
(
item
.
themeId
),
);
setTableData
(
data
);
}
if
(
modelLevel
.
value
===
0
)
{
const
regex
=
new
RegExp
(
key
,
'i'
);
const
data
=
tableData
.
value
.
filter
(
(
item
)
=>
item
.
type
===
'theme'
&&
regex
.
test
(
item
.
themeId
),
);
setTableData
(
data
);
}
}
if
(
modelLevel
.
value
===
2
)
{
const
regex
=
new
RegExp
(
key
,
'i'
);
const
data
=
tableData
.
value
.
filter
(
(
item
)
=>
item
.
type
===
'model'
&&
regex
.
test
(
item
.
themeId
),
);
setTableData
(
data
);
}
if
(
modelLevel
.
value
===
1
)
{
const
regex
=
new
RegExp
(
key
,
'i'
);
const
data
=
tableData
.
value
.
filter
(
(
item
)
=>
item
.
type
===
'twoLevel'
&&
regex
.
test
(
item
.
themeId
),
);
setTableData
(
data
);
}
if
(
modelLevel
.
value
===
0
)
{
const
regex
=
new
RegExp
(
key
,
'i'
);
const
data
=
tableData
.
value
.
filter
(
(
item
)
=>
item
.
type
===
'theme'
&&
regex
.
test
(
item
.
themeId
),
);
setTableData
(
data
);
}
}
function
handleExit
()
{
versionFlag
.
value
=
false
;
}
function
handleExit
()
{
versionFlag
.
value
=
false
;
}
/**返回上一级*/
function
goBack
()
{
router
.
back
();
}
/**返回上一级*/
function
goBack
()
{
router
.
back
();
}
function
handleDebug
()
{
debugFlag
.
value
=
true
;
showType
.
value
=
'chart'
;
}
function
handleDebug
()
{
debugFlag
.
value
=
true
;
showType
.
value
=
'chart'
;
}
function
handelOutDebug
()
{
debugFlag
.
value
=
false
;
showType
.
value
=
'table'
;
}
function
handelOutDebug
()
{
debugFlag
.
value
=
false
;
showType
.
value
=
'table'
;
}
let
modelLevel
=
ref
(
1
);
const
tableData
=
ref
([]);
const
[
registerTable
,
{
getRowSelection
,
setTableData
}]
=
useTable
({
title
:
''
,
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
let
data
=
[];
data
=
tableData
.
value
.
filter
((
item
)
=>
item
.
type
===
'theme'
);
return
{...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
// 列
columns
:
designColumn
,
rowSelection
:
true
,
striped
:
false
,
// 搜索
formConfig
:
{
labelWidth
:
120
,
schemas
:
designFormSchema
,
autoSubmitOnEnter
:
true
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
bordered
:
false
,
actionColumn
:
{
width
:
150
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
onMounted
(()
=>
{
});
let
modelLevel
=
ref
(
1
);
const
tableData
=
ref
([]);
const
[
registerTable
,
{
getRowSelection
,
setTableData
}]
=
useTable
({
title
:
''
,
// 数据
api
:
async
(
params
)
=>
{
console
.
log
(
'params:'
,
params
);
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
tableData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//按照部门筛选 如果有进行过滤相应部门的 没有就赋值全部
let
data
=
[];
data
=
tableData
.
value
.
filter
((
item
)
=>
item
.
type
===
'theme'
);
return
{
...
response
,
data
:
data
};
},
rowKey
:
'businessId'
,
// 列
columns
:
designColumn
,
rowSelection
:
true
,
striped
:
false
,
// 搜索
formConfig
:
{
labelWidth
:
120
,
schemas
:
designFormSchema
,
autoSubmitOnEnter
:
true
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
bordered
:
false
,
actionColumn
:
{
width
:
150
,
title
:
'操作'
,
dataIndex
:
'action'
,
},
});
onMounted
(()
=>
{});
</
script
>
<
style
scoped
></
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment