Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
DolphinScheduler
提交
a22220e8
DolphinScheduler
项目概览
apache
/
DolphinScheduler
上一次同步 1 年多
通知
705
Star
9572
Fork
3514
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
a22220e8
编写于
2月 21, 2022
作者:
大数据猿人
提交者:
GitHub
2月 21, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
The form of procedure task is done (#8473)
上级
dd3e2905
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
257 addition
and
2 deletion
+257
-2
dolphinscheduler-ui-next/src/locales/modules/en_US.ts
dolphinscheduler-ui-next/src/locales/modules/en_US.ts
+3
-1
dolphinscheduler-ui-next/src/locales/modules/zh_CN.ts
dolphinscheduler-ui-next/src/locales/modules/zh_CN.ts
+3
-1
dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/index.ts
...t/src/views/projects/task/components/node/fields/index.ts
+1
-0
dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-procedure.ts
...ews/projects/task/components/node/fields/use-procedure.ts
+141
-0
dolphinscheduler-ui-next/src/views/projects/task/components/node/format-data.ts
...xt/src/views/projects/task/components/node/format-data.ts
+11
-0
dolphinscheduler-ui-next/src/views/projects/task/components/node/tasks/use-procedure.ts
...iews/projects/task/components/node/tasks/use-procedure.ts
+87
-0
dolphinscheduler-ui-next/src/views/projects/task/components/node/types.ts
...-ui-next/src/views/projects/task/components/node/types.ts
+2
-0
dolphinscheduler-ui-next/src/views/projects/task/components/node/use-task.ts
...-next/src/views/projects/task/components/node/use-task.ts
+9
-0
未找到文件。
dolphinscheduler-ui-next/src/locales/modules/en_US.ts
浏览文件 @
a22220e8
...
...
@@ -682,7 +682,9 @@ const project = {
pre_sql_statement
:
'
Pre SQL Statement
'
,
post_sql_statement
:
'
Post SQL Statement
'
,
sql_input_placeholder
:
'
Please enter non-query sql.
'
,
sql_empty_tips
:
'
The sql can not be empty.
'
sql_empty_tips
:
'
The sql can not be empty.
'
,
procedure_method
:
'
SQL Statement
'
,
procedure_method_tips
:
'
Please enter the procedure script
'
}
}
...
...
dolphinscheduler-ui-next/src/locales/modules/zh_CN.ts
浏览文件 @
a22220e8
...
...
@@ -674,7 +674,9 @@ const project = {
pre_sql_statement
:
'
前置SQL语句
'
,
post_sql_statement
:
'
后置SQL语句
'
,
sql_input_placeholder
:
'
请输入非查询SQL语句
'
,
sql_empty_tips
:
'
语句不能为空
'
sql_empty_tips
:
'
语句不能为空
'
,
procedure_method
:
'
SQL语句
'
,
procedure_method_tips
:
'
请输入存储脚本
'
}
}
...
...
dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/index.ts
浏览文件 @
a22220e8
...
...
@@ -33,6 +33,7 @@ export { useTargetTaskName } from './use-target-task-name'
export
{
useDatasourceType
}
from
'
./use-datasource-type
'
export
{
useDatasource
}
from
'
./use-datasource
'
export
{
useSqlType
}
from
'
./use-sql-type
'
export
{
useProcedure
}
from
'
./use-procedure
'
export
{
useShell
}
from
'
./use-shell
'
export
{
useSpark
}
from
'
./use-spark
'
...
...
dolphinscheduler-ui-next/src/views/projects/task/components/node/fields/use-procedure.ts
0 → 100644
浏览文件 @
a22220e8
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import
{
useI18n
}
from
'
vue-i18n
'
import
type
{
IJsonItem
}
from
'
../types
'
export
function
useProcedure
(
model
:
{
[
field
:
string
]:
any
}):
IJsonItem
[]
{
const
{
t
}
=
useI18n
()
return
[
{
type
:
'
editor
'
,
field
:
'
method
'
,
name
:
t
(
'
project.node.procedure_method
'
),
validate
:
{
trigger
:
[
'
input
'
,
'
trigger
'
],
required
:
true
,
message
:
t
(
'
project.node.procedure_method_tips
'
)
}
},
{
type
:
'
custom-parameters
'
,
field
:
'
localParams
'
,
name
:
t
(
'
project.node.custom_parameters
'
),
children
:
[
{
type
:
'
input
'
,
field
:
'
prop
'
,
span
:
6
,
props
:
{
placeholder
:
t
(
'
project.node.prop_tips
'
),
maxLength
:
256
},
validate
:
{
trigger
:
[
'
input
'
,
'
blur
'
],
required
:
true
,
validator
(
validate
:
any
,
value
:
string
)
{
if
(
!
value
)
{
return
new
Error
(
t
(
'
project.node.prop_tips
'
))
}
const
sameItems
=
model
.
localParams
.
filter
(
(
item
:
{
prop
:
string
})
=>
item
.
prop
===
value
)
if
(
sameItems
.
length
>
1
)
{
return
new
Error
(
t
(
'
project.node.prop_repeat
'
))
}
}
}
},
{
type
:
'
select
'
,
field
:
'
direct
'
,
span
:
4
,
options
:
DIRECT_LIST
,
value
:
'
IN
'
},
{
type
:
'
select
'
,
field
:
'
type
'
,
span
:
6
,
options
:
TYPE_LIST
,
value
:
'
VARCHAR
'
},
{
type
:
'
input
'
,
field
:
'
value
'
,
span
:
6
,
props
:
{
placeholder
:
t
(
'
project.node.value_tips
'
),
maxLength
:
256
}
}
]
}
]
}
export
const
TYPE_LIST
=
[
{
value
:
'
VARCHAR
'
,
label
:
'
VARCHAR
'
},
{
value
:
'
INTEGER
'
,
label
:
'
INTEGER
'
},
{
value
:
'
LONG
'
,
label
:
'
LONG
'
},
{
value
:
'
FLOAT
'
,
label
:
'
FLOAT
'
},
{
value
:
'
DOUBLE
'
,
label
:
'
DOUBLE
'
},
{
value
:
'
DATE
'
,
label
:
'
DATE
'
},
{
value
:
'
TIME
'
,
label
:
'
TIME
'
},
{
value
:
'
TIMESTAMP
'
,
label
:
'
TIMESTAMP
'
},
{
value
:
'
BOOLEAN
'
,
label
:
'
BOOLEAN
'
}
]
export
const
DIRECT_LIST
=
[
{
value
:
'
IN
'
,
label
:
'
IN
'
},
{
value
:
'
OUT
'
,
label
:
'
OUT
'
}
]
dolphinscheduler-ui-next/src/views/projects/task/components/node/format-data.ts
浏览文件 @
a22220e8
...
...
@@ -76,6 +76,12 @@ export function formatParams(data: INodeData): {
taskParams
.
postStatements
=
data
.
postStatements
}
if
(
data
.
taskType
===
'
PROCEDURE
'
)
{
taskParams
.
type
=
data
.
type
taskParams
.
datasource
=
data
.
datasource
taskParams
.
method
=
data
.
method
}
const
params
=
{
processDefinitionCode
:
data
.
processName
?
String
(
data
.
processName
)
:
''
,
upstreamCodes
:
data
?.
preTasks
?.
join
(
'
,
'
),
...
...
@@ -152,5 +158,10 @@ export function formatModel(data: ITaskData) {
if
(
data
.
taskParams
?.
mainJar
)
{
params
.
mainJar
=
data
.
taskParams
?.
mainJar
.
id
}
if
(
data
.
taskParams
?.
method
)
{
params
.
method
=
data
.
taskParams
?.
method
}
return
params
}
dolphinscheduler-ui-next/src/views/projects/task/components/node/tasks/use-procedure.ts
0 → 100644
浏览文件 @
a22220e8
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import
{
reactive
}
from
'
vue
'
import
*
as
Fields
from
'
../fields/index
'
import
type
{
IJsonItem
,
INodeData
}
from
'
../types
'
import
{
ITaskData
}
from
'
../types
'
export
function
useProcedure
({
projectCode
,
from
=
0
,
readonly
,
data
}:
{
projectCode
:
number
from
?:
number
readonly
?:
boolean
data
?:
ITaskData
})
{
const
model
=
reactive
({
name
:
''
,
taskType
:
'
PROCEDURE
'
,
flag
:
'
YES
'
,
description
:
''
,
timeoutFlag
:
false
,
localParams
:
[],
environmentCode
:
null
,
failRetryInterval
:
1
,
failRetryTimes
:
0
,
workerGroup
:
'
default
'
,
delayTime
:
0
,
timeout
:
30
,
type
:
data
?.
taskParams
?.
type
?
data
?.
taskParams
?.
type
:
'
MYSQL
'
,
datasource
:
data
?.
taskParams
?.
datasource
,
method
:
data
?.
taskParams
?.
method
}
as
INodeData
)
let
extra
:
IJsonItem
[]
=
[]
if
(
from
===
1
)
{
extra
=
[
Fields
.
useTaskType
(
model
,
readonly
),
Fields
.
useProcessName
({
model
,
projectCode
,
isCreate
:
!
data
?.
id
,
from
,
processName
:
data
?.
processName
,
code
:
data
?.
code
})
]
}
return
{
json
:
[
Fields
.
useName
(),
...
extra
,
Fields
.
useRunFlag
(),
Fields
.
useDescription
(),
Fields
.
useTaskPriority
(),
Fields
.
useWorkerGroup
(),
Fields
.
useEnvironmentName
(
model
,
!
model
.
id
),
...
Fields
.
useTaskGroup
(
model
,
projectCode
),
...
Fields
.
useFailed
(),
Fields
.
useDelayTime
(
model
),
...
Fields
.
useTimeoutAlarm
(
model
),
Fields
.
useDatasourceType
(
model
),
Fields
.
useDatasource
(
model
),
...
Fields
.
useProcedure
(
model
),
Fields
.
usePreTasks
(
model
)
]
as
IJsonItem
[],
model
}
}
dolphinscheduler-ui-next/src/views/projects/task/components/node/types.ts
浏览文件 @
a22220e8
...
...
@@ -76,6 +76,7 @@ interface ITaskParams {
sqlType
?:
string
preStatements
?:
string
[]
postStatements
?:
string
[]
method
?:
string
}
type
ITaskType
=
TaskType
...
...
@@ -111,6 +112,7 @@ interface INodeData extends Omit<ITaskParams, 'resourceList' | 'mainJar'> {
sqlType
?:
string
preStatements
?:
string
[]
postStatements
?:
string
[]
method
?:
string
}
interface
ITaskData
...
...
dolphinscheduler-ui-next/src/views/projects/task/components/node/use-task.ts
浏览文件 @
a22220e8
...
...
@@ -24,6 +24,7 @@ import { useSpark } from './tasks/use-spark'
import
{
useMr
}
from
'
./tasks/use-mr
'
import
{
useHttp
}
from
'
./tasks/use-http
'
import
{
useSql
}
from
'
./tasks/use-sql
'
import
{
useProcedure
}
from
'
./tasks/use-procedure
'
import
{
IJsonItem
,
INodeData
,
ITaskData
}
from
'
./types
'
export
function
useTask
({
...
...
@@ -111,5 +112,13 @@ export function useTask({
data
})
}
if
(
taskType
===
'
PROCEDURE
'
)
{
node
=
useProcedure
({
projectCode
,
from
,
readonly
,
data
})
}
return
node
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录