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 832826ea52 done (#15724)
832826ea52 is described below

commit 832826ea52119a9e514a059fa8ed62156837d9cf
Author: calvin <[email protected]>
AuthorDate: Sat Mar 16 13:59:08 2024 +0800

    done (#15724)
---
 .../workflow/definition/components/start-modal.tsx | 75 +++++++++++++++++++++-
 1 file changed, 73 insertions(+), 2 deletions(-)

diff --git 
a/dolphinscheduler-ui/src/views/projects/workflow/definition/components/start-modal.tsx
 
b/dolphinscheduler-ui/src/views/projects/workflow/definition/components/start-modal.tsx
index 83443a00c1..7e7a774658 100644
--- 
a/dolphinscheduler-ui/src/views/projects/workflow/definition/components/start-modal.tsx
+++ 
b/dolphinscheduler-ui/src/views/projects/workflow/definition/components/start-modal.tsx
@@ -54,6 +54,7 @@ import {
 } from '@vicons/antd'
 import { IDefinitionData } from '../types'
 import styles from '../index.module.scss'
+import { queryProjectPreferenceByProjectCode } from 
'@/service/modules/projects-preference'
 
 const props = {
   row: {
@@ -172,6 +173,75 @@ export default defineComponent({
       ]
     }
 
+    const projectPreferences = ref({} as any)
+
+    const initProjectPreferences = async (projectCode: number) => {
+      if (projectCode) {
+        await queryProjectPreferenceByProjectCode(projectCode).then(
+          (result: any) => {
+            if (result?.preferences && result.state === 1) {
+              projectPreferences.value = JSON.parse(result.preferences)
+            }
+          }
+        )
+      }
+    }
+
+    const containValueInOptions = (
+      options: Array<any>,
+      findingValue: string
+    ): boolean => {
+      for (let { value } of options) {
+        if (findingValue === value) {
+          return true
+        }
+      }
+      return false
+    }
+
+    const restructureForm = async (form: any) => {
+      await initProjectPreferences(props.row.projectCode)
+      if (projectPreferences.value?.taskPriority) {
+        form.processInstancePriority = projectPreferences.value.taskPriority
+      }
+      if (projectPreferences.value?.warningType) {
+        form.warningType = projectPreferences.value.warningType
+      }
+      if (projectPreferences.value?.workerGroup) {
+        if (
+          containValueInOptions(
+            variables.workerGroups,
+            projectPreferences.value.workerGroup
+          )
+        ) {
+          form.workerGroup = projectPreferences.value.workerGroup
+        }
+      }
+      if (projectPreferences.value?.tenant) {
+        if (
+          containValueInOptions(
+            variables.tenantList,
+            projectPreferences.value.tenant
+          )
+        ) {
+          form.tenantCode = projectPreferences.value.tenant
+        }
+      }
+      if (
+        projectPreferences.value?.environmentCode &&
+        variables?.environmentList
+      ) {
+        if (
+          containValueInOptions(
+            variables.environmentList,
+            projectPreferences.value.environmentCode
+          )
+        ) {
+          form.environmentCode = projectPreferences.value.environmentCode
+        }
+      }
+    }
+
     const updateWorkerGroup = () => {
       startState.startForm.environmentCode = null
     }
@@ -206,6 +276,7 @@ export default defineComponent({
       () => {
         if (props.show) {
           getStartParamsList(props.row.code)
+          restructureForm(startState.startForm)
           if (props.taskCode)
             startState.startForm.startNodeList = props.taskCode
         }
@@ -438,8 +509,8 @@ export default defineComponent({
                   </NFormItem>
                 )}
                 <NFormItem
-                    label={t('project.workflow.order_of_execution')}
-                    path='executionOrder'
+                  label={t('project.workflow.order_of_execution')}
+                  path='executionOrder'
                 >
                   <NRadioGroup v-model:value={this.startForm.executionOrder}>
                     <NSpace>

Reply via email to