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 2023/04/13 01:07:22 UTC
[dolphinscheduler] 03/03: Fix item, workflow, and task parameters in dependent task nodes can be searched (#13918)
This is an automated email from the ASF dual-hosted git repository.
kerwin pushed a commit to branch 3.1.6-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
commit dc40cd76bcd0ce79c8939cdaf21ddba563e17a79
Author: Kerwin <37...@users.noreply.github.com>
AuthorDate: Thu Apr 13 08:56:38 2023 +0800
Fix item, workflow, and task parameters in dependent task nodes can be searched (#13918)
---
.../task/components/node/fields/use-dependent.ts | 33 +++++++++++++++++-----
.../views/projects/task/components/node/types.ts | 5 ++++
2 files changed, 31 insertions(+), 7 deletions(-)
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 fdf757f95a..50d228cc99 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
@@ -36,6 +36,7 @@ import type {
ITaskState,
IDateType
} from '../types'
+import {IRenderOption} from "../types";
export function useDependent(model: { [field: string]: any }): IJsonItem[] {
const { t } = useI18n()
@@ -44,12 +45,12 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
const dependentResult = nodeStore.getDependentResult
const TasksStateConfig = tasksState(t)
- const projectList = ref([] as { label: string; value: number }[])
+ const projectList = ref([] as IRenderOption[])
const processCache = {} as {
- [key: number]: { label: string; value: number }[]
+ [key: number]: IRenderOption[]
}
const taskCache = {} as {
- [key: number]: { label: string; value: number }[]
+ [key: number]: IRenderOption[]
}
const selectOptions = ref([] as IDependTaskOptions[])
@@ -182,7 +183,8 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
const result = await queryAllProjectListForDependent()
projectList.value = result.map((item: { code: number; name: string }) => ({
value: item.code,
- label: () => h(NEllipsis, null, item.name)
+ label: () => h(NEllipsis, null, item.name),
+ filterLabel: item.name
}))
return projectList
}
@@ -193,7 +195,8 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
const result = await queryProcessDefinitionList(code)
const processList = result.map((item: { code: number; name: string }) => ({
value: item.code,
- label: () => h(NEllipsis, null, item.name)
+ label: () => h(NEllipsis, null, item.name),
+ filterLabel: item.name
}))
processCache[code] = processList
@@ -207,7 +210,8 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
const result = await getTasksByDefinitionList(code, processCode)
const taskList = result.map((item: { code: number; name: string }) => ({
value: item.code,
- label: () => h(NEllipsis, null, item.name)
+ label: () => h(NEllipsis, null, item.name),
+ filterLabel: item.name
}))
taskList.unshift({
value: 0,
@@ -283,6 +287,11 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
span: 24,
props: {
filterable: true,
+ filter: (query: string, option: IRenderOption) => {
+ return option.filterLabel
+ .toLowerCase()
+ .includes(query.toLowerCase())
+ },
onUpdateValue: async (projectCode: number) => {
const item = model.dependTaskList[i].dependItemList[j]
const options = selectOptions?.value[i] || {}
@@ -315,6 +324,11 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
name: t('project.node.process_name'),
props: {
filterable: true,
+ filter: (query: string, option: IRenderOption) => {
+ return option.filterLabel
+ .toLowerCase()
+ .includes(query.toLowerCase())
+ },
onUpdateValue: async (processCode: number) => {
const item = model.dependTaskList[i].dependItemList[j]
selectOptions.value[i].dependItemList[j].depTaskCodeOptions = await getTaskList(
@@ -343,7 +357,12 @@ export function useDependent(model: { [field: string]: any }): IJsonItem[] {
span: 24,
name: t('project.node.task_name'),
props: {
- filterable: true
+ filterable: true,
+ filter: (query: string, option: IRenderOption) => {
+ return option.filterLabel
+ .toLowerCase()
+ .includes(query.toLowerCase())
+ }
},
options:
selectOptions.value[i]?.dependItemList[j]?.depTaskCodeOptions ||
diff --git a/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts b/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
index 40a90b6f1e..df9c14955b 100644
--- a/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
+++ b/dolphinscheduler-ui/src/views/projects/task/components/node/types.ts
@@ -48,6 +48,10 @@ interface IOption {
value: string | number
}
+interface IRenderOption extends IOption {
+ filterLabel: string
+}
+
interface ITaskPriorityOption extends SelectOption {
icon: VNode
color: string
@@ -461,6 +465,7 @@ export {
INodeData,
ITaskParams,
IOption,
+ IRenderOption,
IDataBase,
ModelType,
SourceType,