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
b98fa22d
Commit
b98fa22d
authored
Dec 04, 2024
by
冷玲鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调度执行:修改页面bug
parent
0cea01d3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
396 additions
and
313 deletions
+396
-313
index.vue
src/views/taskScheduling/taskFlow/index.vue
+1
-1
index.vue
src/views/taskScheduling/taskFlowDesign/index.vue
+395
-312
No files found.
src/views/taskScheduling/taskFlow/index.vue
View file @
b98fa22d
...
...
@@ -99,7 +99,7 @@
tooltip:'运行',
onClick: RUN.bind(null, record),
ifShow: () => {
return record.releaseStatus
!== '父级'; // 这里只是实现树文件夹按钮
return record.releaseStatus
=== '已发布';
},
},
{
...
...
src/views/taskScheduling/taskFlowDesign/index.vue
View file @
b98fa22d
<
template
>
<PageWrapper
title=
"任务流设计"
contentBackground
headerSticky
@
back=
"goBack"
>
<PageWrapper
title=
"任务流设计"
contentBackground
headerSticky
@
back=
"goBack"
>
<template
#
extra
>
<!--历史版本-->
<span
v-if=
"versionFlag"
>
版本:
</span>
...
...
@@ -9,40 +9,55 @@
v-model:value=
"version"
:options=
"versionOptions"
/>
<a-button
v-if=
"versionFlag"
type=
"primary"
><RollbackOutlined
/>
回滚
</a-button>
<a-button
v-if=
"versionFlag"
type=
"primary"
>
<RollbackOutlined/>
回滚
</a-button>
<a-button
v-if=
"versionFlag"
type=
"primary"
danger
@
click=
"handleExit"
><CloseOutlined
/>
退出
</a-button
>
<CloseOutlined/>
退出
</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>
-->
<!--
<Icon
icon=
"ant-design:caret-right-outlined"
style=
"color: blue"
size=
"24"
/>
<p>
运行
</p>
-->
运行
</a-button>
<a-button
v-if=
"!versionFlag"
:disabled=
"debugFlag"
type=
"primary"
>
运行当前及下游
</a-button>
<a-button
v-if=
"!versionFlag && !debugFlag"
type=
"primary"
@
click=
"handleDebug"
>
调试
</a-button>
调试
</a-button>
<a-button
v-if=
"!versionFlag && debugFlag"
type=
"primary"
>
调试全部任务
</a-button>
<a-button
v-if=
"!versionFlag && debugFlag"
type=
"primary"
@
click=
"handelOutDebug"
>
退出调试
</a-button>
<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
/></RadioButton>
<RadioButton
value=
"chart"
><AppstoreOutlined
/></RadioButton>
<RadioButton
value=
"table"
>
<UnorderedListOutlined/>
</RadioButton>
<RadioButton
value=
"chart"
>
<AppstoreOutlined/>
</RadioButton>
</RadioGroup>
<div>
展示切换
</div>
</div>
...
...
@@ -56,21 +71,28 @@
<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"
style=
"height: 1000px;"
v-if=
"showType === 'table'"
@
register=
"registerTable"
:searchInfo=
"searchInfo"
>
<template
#
toolbar
>
<a-button
@
click=
"handleOrderType"
><SwapRightOutlined
:rotate=
"rotate"
/>
按执行计划排序
</a-button
>
<SwapRightOutlined
:rotate=
"rotate"
/>
按执行计划排序
</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
/>
新建任务
</a-button>
<a-button
type=
"primary"
@
click
.
prevent
>
<PlusOutlined/>
新建任务
</a-button>
<template
#
overlay
>
<Menu>
<MenuItem
@
click=
"handleTaskModel('1')"
>
...
...
@@ -133,324 +155,385 @@
</
template
>
</template>
<
template
#
task=
"{ text, record }"
>
<a-button
v-if=
"text"
>
{{
text
}}
<CheckCircleFilled
style=
"color: #44c498"
/></a-button>
<a-button
@
click=
"handleSetting"
><SettingOutlined
/></a-button>
<a-button
v-if=
"text"
>
{{
text
}}
<CheckCircleFilled
style=
"color: #44c498"
/>
</a-button>
<a-button
@
click=
"handleSetting"
>
<SettingOutlined/>
</a-button>
</
template
>
</BasicTable>
<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"
v-if=
"showType === 'chart'"
/>
<!-- <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'"
/>
</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"
/>
<OfflineModel
@
register=
"offlineModel"
@
set-upload-flag=
"setUploadFlag"
/>
<TaskFlowConfig
@
register=
"taskFlowConfig"
/>
</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"
;
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'
,
},
];
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
handleRemove
(
record
)
{
if
(
record
.
task
)
{
openDeleteModel
(
true
,
{
isUpdate
:
false
,
});
}
else
{
createConfirm
({
iconType
:
'warning'
,
title
:
'确认删除'
,
content
:
'确认删除这条数据吗?'
,
onOk
()
{
createMessage
.
success
(
'删除成功!'
);
},
});
}
}
function
handleDeleteMore
()
{
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 flowOptions = {
// 定义流程图的配置信息,例如节点、线条的样式等
nodeWidth: 120,
nodeHeight: 80,
lineWidth: 2,
lineColor: '#000000',
// 可以进一步设置其他的选项
};*/
// 左侧拖拽区域的元素
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
showDag
(
item
)
{
console
.
log
(
'item'
,
item
);
showType
.
value
=
'chart'
;
}
function
handleRemove
(
record
)
{
if
(
record
.
task
)
{
openDeleteModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleOrderType
()
{
rotate
.
value
=
rotate
.
value
===
90
?
-
90
:
90
;
}
function
handleCopy
(
record
)
{}
function
handleTaskModel
(
type
)
{
openTaskModel
(
true
,
{
isUpdate
:
false
,
type
:
type
,
});
}
function
handleSetting
()
{
openUpstreamModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDepend
()
{
openDependModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleConfig
()
{
openTaskConfigModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleSetConfig
()
{
openTaskFlowConfig
(
true
,
{
isUpdate
:
false
,
});
}
function
handleVersion
()
{
openVersionModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDelete
()
{}
function
handleSave
()
{
// createMessage.warning('当前任务流出现多个名为***的同名任务,请检查');
// createMessage.warning('当前任务流中名称为***的任务的独立周期配置不是当前任务流调度周期的子集,请检查');
// createMessage.warning('任务流【uuid***,名称:***】和任务流[uuid***,名称:**]存在环形依赖关系,请处理');
}
function
handleUpload
()
{
openUploadModel
(
true
,
{
isUpdate
:
false
,
});
}
const
uploadFlag
=
ref
(
false
);
function
setUploadFlag
(
flag
)
{
uploadFlag
.
value
=
flag
;
}
function
handleOffline
()
{
openOfflineModel
(
true
,
{
isUpdate
:
false
,
}
else
{
createConfirm
({
iconType
:
'warning'
,
title
:
'确认删除'
,
content
:
'确认删除这条数据吗?'
,
onOk
()
{
createMessage
.
success
(
'删除成功!'
);
},
});
}
}
onMounted
(()
=>
{
tableData
.
value
=
designData
;
function
handleDeleteMore
()
{
openDeleteModel
(
true
,
{
isUpdate
:
false
,
});
}
/** 部门树的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
);
}
}
function
handleExit
()
{
versionFlag
.
value
=
false
;
function
handleOrderType
()
{
rotate
.
value
=
rotate
.
value
===
90
?
-
90
:
90
;
}
function
handleCopy
(
record
)
{
}
function
handleTaskModel
(
type
)
{
openTaskModel
(
true
,
{
isUpdate
:
false
,
type
:
type
,
});
}
function
handleSetting
()
{
openUpstreamModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDepend
()
{
openDependModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleConfig
()
{
openTaskConfigModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleSetConfig
()
{
openTaskFlowConfig
(
true
,
{
isUpdate
:
false
,
});
}
function
handleVersion
()
{
openVersionModel
(
true
,
{
isUpdate
:
false
,
});
}
function
handleDelete
()
{
}
function
handleSave
()
{
// createMessage.warning('当前任务流出现多个名为***的同名任务,请检查');
// createMessage.warning('当前任务流中名称为***的任务的独立周期配置不是当前任务流调度周期的子集,请检查');
// createMessage.warning('任务流【uuid***,名称:***】和任务流[uuid***,名称:**]存在环形依赖关系,请处理');
}
function
handleUpload
()
{
openUploadModel
(
true
,
{
isUpdate
:
false
,
});
}
const
uploadFlag
=
ref
(
false
);
function
setUploadFlag
(
flag
)
{
uploadFlag
.
value
=
flag
;
}
function
handleOffline
()
{
openOfflineModel
(
true
,
{
isUpdate
:
false
,
});
}
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
;
}
/**返回上一级*/
function
goBack
()
{
router
.
back
();
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
);
}
function
handleDebug
()
{
debugFlag
.
value
=
true
;
showType
.
value
=
'chart'
;
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
);
}
function
handelOutDebug
()
{
debugFlag
.
value
=
false
;
showType
.
value
=
'table'
;
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
);
}
}
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
(()
=>
{});
function
handleExit
()
{
versionFlag
.
value
=
false
;
}
/**返回上一级*/
function
goBack
()
{
router
.
back
();
}
function
handleDebug
()
{
debugFlag
.
value
=
true
;
showType
.
value
=
'chart'
;
}
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
(()
=>
{
});
</
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