-
-
{{ node.loop > 99 ? '99+' : node.loop }}
+
+
+
diff --git a/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/TaskNode.vue b/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/TaskNode.vue
index a7b95a1e8d..18c6493fb1 100755
--- a/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/TaskNode.vue
+++ b/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/TaskNode.vue
@@ -41,10 +41,28 @@
@change="onNodeCheckClick">
-
AS
-
MS
-
MR
-
AR
+
+
+
+ {{ node.loop > 99 ? '99+' : node.loop }}
+
+
+
+
+ MR
+ 1
+
+
+ AR
+ 2
+
+
+
+ AS
+ MS
+ MR
+ AR
+
diff --git a/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/index.vue b/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/index.vue
index 9c3fa894f8..97dc2770f7 100755
--- a/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/index.vue
+++ b/frontend/desktop/src/components/common/TemplateCanvas/NodeTemplate/index.vue
@@ -366,6 +366,14 @@
@include nodeClick ($blueDark);
}
}
+ &.pending_processing,
+ &.pending_approval,
+ &.pending_confirmation {
+ @include taskNodeStyle (#ffb848);
+ &.actived {
+ @include nodeClick (#ffb848);
+ }
+ }
&.running {
.node-name {
border-color: $blueDark;
@@ -447,7 +455,6 @@
position: absolute;
top: -20px;
left: 0;
- overflow: hidden;
.bk-form-checkbox,
.dark-circle {
float: left;
@@ -456,17 +463,29 @@
color: #979ba5;
}
.error-handle-icon {
- float: left;
- margin-right: 2px;
- padding: 0 3px;
+ display: flex;
+ align-items: center;
+ margin: 4px 0 -4px;
line-height: 12px;
- color: #ffffff;
- background: #979ba5;
- border-radius: 2px;
+ font-size: 12px;
+ transform: scale(0.75);
.text {
- display: inline-block;
- font-size: 12px;
- transform: scale(0.8);
+ padding: 2px 3px;
+ color: #ffffff;
+ background: #979ba5;
+ border-radius: 1px 0 0 1px;
+ }
+ .count {
+ padding: 2px 3px;
+ color: #636568;
+ background: #dcdee5;
+ border-radius: 0px 1px 1px 0;
+ }
+ &:last-child {
+ margin-left: -5px;
+ }
+ &:first-child {
+ margin-left: -4px;
}
}
}
@@ -541,6 +560,12 @@
.common-icon-clock {
display: inline-block;
}
+ .common-icon-clock,
+ .common-icon-pending-approval,
+ .common-icon-pending-confirm {
+ font-size: 12px;
+ color: #fff;
+ }
.common-icon-loading {
display: inline-block;
animation: loading 1.4s infinite linear;
@@ -551,19 +576,27 @@
.retry-times {
font-size: 12px;
}
+ &.node-pending {
+ height: 20px;
+ width: 20px;
+ box-shadow: none;
+ }
&.task-node-loop {
position: relative;
+ top: 2px;
height: 16px;
width: 16px;
+ margin-left: 0;
color: #3a84ff;
background: #fff !important;
> i {
position: absolute;
- font-size: 14px;
+ font-size: 16px;
}
> span {
position: relative;
top: -0.5px;
+ left: -0.5px;
font-weight: 700;
font-size: 18px;
transform: scale(.5);
diff --git a/frontend/desktop/src/config/i18n/cn.js b/frontend/desktop/src/config/i18n/cn.js
index fff8ebb805..4ea6904f83 100644
--- a/frontend/desktop/src/config/i18n/cn.js
+++ b/frontend/desktop/src/config/i18n/cn.js
@@ -1788,7 +1788,15 @@ const cn = {
'清除所有IP': '清除所有IP',
'清除异常IP': '清除异常IP',
'节点输入型变量仅支持从节点"取消使用变量"来删除': '节点输入型变量仅支持从节点"取消使用变量"来删除',
- '节点输出型变量仅支持从节点"取消接收输出"来删除': '节点输出型变量仅支持从节点"取消接收输出"来删除 '
+ '节点输出型变量仅支持从节点"取消接收输出"来删除': '节点输出型变量仅支持从节点"取消接收输出"来删除',
+ '等待处理': '等待处理',
+ '等待审批': '等待处理',
+ '等待确认': '等待处理',
+ '再次执行': '再次执行',
+ '暂停执行': '暂停执行',
+ '终止执行': '终止执行',
+ '状态明细': '状态明细',
+ '已自动重试 m 次 (最多 10 次),手动重试 n 次': '已自动重试 {m} 次 (最多 10 次),手动重试 {n} 次'
}
export default cn
diff --git a/frontend/desktop/src/config/i18n/en.js b/frontend/desktop/src/config/i18n/en.js
index ecff355d91..2d20bb33cb 100644
--- a/frontend/desktop/src/config/i18n/en.js
+++ b/frontend/desktop/src/config/i18n/en.js
@@ -1822,7 +1822,15 @@ const en = {
'清除所有IP': 'Clear all IPs',
'清除异常IP': 'Clear abnormal IP',
'节点输入型变量仅支持从节点"取消使用变量"来删除': 'Node input variables can only be deleted by the node "Cancel Using variable"',
- '节点输出型变量仅支持从节点"取消接收输出"来删除': 'Node output variables can only be deleted by the node "Cancel Receiving Output"'
+ '节点输出型变量仅支持从节点"取消接收输出"来删除': 'Node output variables can only be deleted by the node "Cancel Receiving Output"',
+ '等待处理': 'Pending Processing',
+ '等待审批': 'Pending Approval',
+ '等待确认': 'Pending Confirmation',
+ '再次执行': 'Redo',
+ '暂停执行': 'Pause',
+ '终止执行': 'Terminate',
+ '状态明细': 'Detail',
+ '已自动重试 m 次 (最多 10 次),手动重试 n 次': ''
}
export default en
diff --git a/frontend/desktop/src/constants/index.js b/frontend/desktop/src/constants/index.js
index e8e8a2f9ff..af9bd416cc 100644
--- a/frontend/desktop/src/constants/index.js
+++ b/frontend/desktop/src/constants/index.js
@@ -17,6 +17,9 @@ const TASK_STATE_DICT = {
'READY': i18n.t('排队中'),
'SUSPENDED': i18n.t('已暂停'),
'NODE_SUSPENDED': i18n.t('节点暂停'),
+ 'PENDING_PROCESSING': i18n.t('等待处理'),
+ 'PENDING_APPROVAL': i18n.t('等待审批'),
+ 'PENDING_CONFIRMATION': i18n.t('等待确认'),
'FAILED': i18n.t('失败'),
'FINISHED': i18n.t('完成'),
'REVOKED': i18n.t('终止')
diff --git a/frontend/desktop/src/mixins/task.js b/frontend/desktop/src/mixins/task.js
index 0978f7d054..d002ad9f8c 100644
--- a/frontend/desktop/src/mixins/task.js
+++ b/frontend/desktop/src/mixins/task.js
@@ -69,6 +69,10 @@ const task = {
status.cls = 'failed common-icon-dark-circle-close'
status.text = i18n.t('失败')
break
+ case 'PENDING_PROCESSING':
+ status.cls = 'running common-icon-dark-circle-ellipsis'
+ status.text = i18n.t('等待处理')
+ break
default:
status.text = i18n.t('未知')
}
diff --git a/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue b/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue
index d654c1de1a..b86a8bfdc4 100644
--- a/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue
+++ b/frontend/desktop/src/pages/task/TaskExecute/ExecuteInfo.vue
@@ -118,6 +118,9 @@
{{$t('次执行')}}
+ {{ $t('已自动重试 m 次 (最多 10 次),手动重试 n 次', { m: 1, n: 2 }) }}
+