You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ke...@apache.org on 2022/12/22 09:17:31 UTC
[dolphinscheduler] branch dev updated: [Fix-13248][UI] Ironed out the issue with failing to query task instances by some state of task. (#13251)
This is an automated email from the ASF dual-hosted git repository.
kerwin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 4e09bacb17 [Fix-13248][UI] Ironed out the issue with failing to query task instances by some state of task. (#13251)
4e09bacb17 is described below
commit 4e09bacb17c5a5d554815be03916960f354d45a1
Author: calvin <ji...@163.com>
AuthorDate: Thu Dec 22 17:17:23 2022 +0800
[Fix-13248][UI] Ironed out the issue with failing to query task instances by some state of task. (#13251)
---
dolphinscheduler-ui/src/common/common.ts | 60 +---------------------
dolphinscheduler-ui/src/common/types.ts | 7 ---
.../src/service/modules/process-instances/types.ts | 4 +-
dolphinscheduler-ui/src/store/project/types.ts | 6 ++-
.../task/components/node/fields/use-dependent.ts | 2 +-
.../views/projects/workflow/instance/use-table.ts | 34 ++++++++++--
6 files changed, 38 insertions(+), 75 deletions(-)
diff --git a/dolphinscheduler-ui/src/common/common.ts b/dolphinscheduler-ui/src/common/common.ts
index 5928658023..aa98186c5d 100644
--- a/dolphinscheduler-ui/src/common/common.ts
+++ b/dolphinscheduler-ui/src/common/common.ts
@@ -26,10 +26,8 @@ import {
CheckCircleFilled,
Loading3QuartersOutlined,
PauseCircleFilled,
- ClockCircleOutlined,
StopFilled,
StopOutlined,
- GlobalOutlined,
IssuesCloseOutlined,
SendOutlined,
HistoryOutlined
@@ -210,14 +208,6 @@ export const tasksState = (t: any): ITaskStateConfig => ({
isSpin: true,
classNames: 'running_execution'
},
- READY_PAUSE: {
- id: 2,
- desc: `${t('project.workflow.ready_to_pause')}`,
- color: '#07b1a3',
- icon: SettingOutlined,
- isSpin: false,
- classNames: 'ready_pause'
- },
PAUSE: {
id: 3,
desc: `${t('project.workflow.pause')}`,
@@ -226,22 +216,6 @@ export const tasksState = (t: any): ITaskStateConfig => ({
isSpin: false,
classNames: 'pause'
},
- READY_STOP: {
- id: 4,
- desc: `${t('project.workflow.ready_to_stop')}`,
- color: '#FE0402',
- icon: StopFilled,
- isSpin: false,
- classNames: 'ready_stop'
- },
- STOP: {
- id: 5,
- desc: `${t('project.workflow.stop')}`,
- color: '#e90101',
- icon: StopOutlined,
- isSpin: false,
- classNames: 'stop'
- },
FAILURE: {
id: 6,
desc: `${t('project.workflow.failed')}`,
@@ -274,22 +248,6 @@ export const tasksState = (t: any): ITaskStateConfig => ({
isSpin: false,
classNames: 'kill'
},
- WAITING_THREAD: {
- id: 10,
- desc: `${t('project.workflow.waiting_for_thread')}`,
- color: '#912eed',
- icon: ClockCircleOutlined,
- isSpin: false,
- classNames: 'waiting_thread'
- },
- WAITING_DEPEND: {
- id: 11,
- desc: `${t('project.workflow.waiting_for_dependence')}`,
- color: '#5101be',
- icon: GlobalOutlined,
- isSpin: false,
- classNames: 'waiting_depend'
- },
DELAY_EXECUTION: {
id: 12,
desc: `${t('project.workflow.delay_execution')}`,
@@ -306,30 +264,14 @@ export const tasksState = (t: any): ITaskStateConfig => ({
isSpin: false,
classNames: 'forced_success'
},
- SERIAL_WAIT: {
- id: 14,
- desc: `${t('project.workflow.serial_wait')}`,
- color: '#5102ce',
- icon: Loading3QuartersOutlined,
- isSpin: true,
- classNames: 'serial_wait'
- },
DISPATCH: {
- id: 15,
+ id: 17,
desc: `${t('project.workflow.dispatch')}`,
color: '#5101be',
icon: SendOutlined,
isSpin: false,
classNames: 'dispatch'
},
- PENDING: {
- id: 18,
- desc: `${t('project.workflow.pending')}`,
- color: '#5101be',
- icon: HistoryOutlined,
- isSpin: false,
- classNames: 'pending'
- }
})
/**
diff --git a/dolphinscheduler-ui/src/common/types.ts b/dolphinscheduler-ui/src/common/types.ts
index 5f6688e618..a07a13c005 100644
--- a/dolphinscheduler-ui/src/common/types.ts
+++ b/dolphinscheduler-ui/src/common/types.ts
@@ -19,21 +19,14 @@ import { Component } from 'vue'
export type ITaskState =
| 'SUBMITTED_SUCCESS'
| 'RUNNING_EXECUTION'
- | 'READY_PAUSE'
| 'PAUSE'
- | 'READY_STOP'
- | 'STOP'
| 'FAILURE'
| 'SUCCESS'
| 'NEED_FAULT_TOLERANCE'
| 'KILL'
- | 'WAITING_THREAD'
- | 'WAITING_DEPEND'
| 'DELAY_EXECUTION'
| 'FORCED_SUCCESS'
- | 'SERIAL_WAIT'
| 'DISPATCH'
- | 'PENDING'
export type IWorkflowExecutionState =
| 'SUBMITTED_SUCCESS'
diff --git a/dolphinscheduler-ui/src/service/modules/process-instances/types.ts b/dolphinscheduler-ui/src/service/modules/process-instances/types.ts
index 6cadb0d4fd..ca6f79ce1a 100644
--- a/dolphinscheduler-ui/src/service/modules/process-instances/types.ts
+++ b/dolphinscheduler-ui/src/service/modules/process-instances/types.ts
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-import type { ITaskState } from '@/common/types'
+import type { IWorkflowExecutionState } from '@/common/types'
interface CodeReq {
projectCode: number
@@ -86,7 +86,7 @@ interface ProcessInstanceReq {
interface IWorkflowInstance {
id: number
name: string
- state: ITaskState
+ state: IWorkflowExecutionState
commandType: string
scheduleTime?: string
processDefinitionCode?: number
diff --git a/dolphinscheduler-ui/src/store/project/types.ts b/dolphinscheduler-ui/src/store/project/types.ts
index 050190cf40..e801f4a1eb 100644
--- a/dolphinscheduler-ui/src/store/project/types.ts
+++ b/dolphinscheduler-ui/src/store/project/types.ts
@@ -58,11 +58,13 @@ type TaskType =
| 'LINKIS'
type ProgramType = 'JAVA' | 'SCALA' | 'PYTHON'
+
type DependentResultType = {
- [key: string]: 'SUCCESS' | 'WAITING_THREAD' | 'FAILURE'
+ [key: string]: 'SUCCESS' | 'FAILURE'
}
+
type BDependentResultType = {
- [key: string]: 'SUCCESS' | 'WAITING_THREAD' | 'FAILED'
+ [key: string]: 'SUCCESS' | 'FAILED'
}
interface IResource {
diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts
index 77149418c1..fdf757f95a 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/fields/use-dependent.ts
@@ -226,7 +226,7 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
if (!item || router.currentRoute.value.name !== 'workflow-instance-detail')
return null
const key = `${item.definitionCode}-${item.depTaskCode}-${item.cycle}-${item.dateValue}`
- const state: ITaskState = dependentResult[key] || 'WAITING_THREAD'
+ const state: ITaskState = dependentResult[key]
return h(NIcon, { size: 24, color: TasksStateConfig[state].color }, () =>
h(TasksStateConfig[state].icon)
)
diff --git a/dolphinscheduler-ui/src/views/projects/workflow/instance/use-table.ts b/dolphinscheduler-ui/src/views/projects/workflow/instance/use-table.ts
index e51f21857e..68e487e239 100644
--- a/dolphinscheduler-ui/src/views/projects/workflow/instance/use-table.ts
+++ b/dolphinscheduler-ui/src/views/projects/workflow/instance/use-table.ts
@@ -21,7 +21,7 @@ import { useI18n } from 'vue-i18n'
import { useRouter } from 'vue-router'
import ButtonLink from '@/components/button-link'
import { RowKey } from 'naive-ui/lib/data-table/src/interface'
-import { NEllipsis} from 'naive-ui'
+import {NEllipsis, NIcon, NSpin, NTooltip} from 'naive-ui'
import {
queryProcessInstanceListPaging,
deleteProcessInstanceById,
@@ -31,9 +31,8 @@ import { execute } from '@/service/modules/executors'
import TableAction from './components/table-action'
import {
renderTableTime,
- runningType
+ runningType, workflowExecutionState
} from '@/common/common'
-import { renderStateCell } from '../../task/instance/use-table'
import {
COLUMN_WIDTH_CONFIG,
calculateTableWidth,
@@ -44,6 +43,7 @@ import type { IWorkflowInstance } from '@/service/modules/process-instances/type
import type { ICountDownParam } from './types'
import type { ExecuteReq } from '@/service/modules/executors/types'
import {renderEnvironmentalDistinctionCell} from "@/utils/environmental-distinction";
+import { IWorkflowExecutionState } from "@/common/types";
export function useTable() {
const { t } = useI18n()
@@ -117,7 +117,7 @@ export function useTable() {
key: 'state',
...COLUMN_WIDTH_CONFIG['state'],
className: 'workflow-status',
- render: (_row: IWorkflowInstance) => renderStateCell(_row.state, t)
+ render: (_row: IWorkflowInstance) => renderWorkflowStateCell(_row.state, t)
},
{
title: t('project.workflow.operating_environment'),
@@ -359,3 +359,29 @@ export function useTable() {
batchDeleteInstance
}
}
+
+export function renderWorkflowStateCell(state: IWorkflowExecutionState, t: Function) {
+ if (!state) return ''
+
+ const stateOption = workflowExecutionState(t)[state]
+
+ const Icon = h(
+ NIcon,
+ {
+ color: stateOption.color,
+ class: stateOption.classNames,
+ style: {
+ display: 'flex'
+ },
+ size: 20
+ },
+ () => h(stateOption.icon)
+ )
+ return h(NTooltip, null, {
+ trigger: () => {
+ if (!stateOption.isSpin) return Icon
+ return h(NSpin, { size: 20 }, { icon: () => Icon })
+ },
+ default: () => stateOption.desc
+ })
+}