Browse Source

[Fix][UI Next][V1.0.0-Beta] Fix the startup parameter display error. (#9692)

* [Fix][UI Next][V1.0.0-Beta] Fix the startup parameter display error.

* [Fix][UI Next][V1.0.0-Beta] Change the key of the startup parameter item.
Amy0104 3 years ago
parent
commit
3e851940e8

+ 7 - 3
dolphinscheduler-ui-next/src/views/projects/workflow/definition/components/start-modal.tsx

@@ -186,8 +186,12 @@ export default defineComponent({
     })
 
     watch(
-      () => props.row,
-      () => getStartParamsList(props.row.code)
+      () => props.show,
+      () => {
+        if (props.show) {
+          getStartParamsList(props.row.code)
+        }
+      }
     )
 
     return {
@@ -381,7 +385,7 @@ export default defineComponent({
             ) : (
               <NSpace vertical>
                 {this.startParamsList.map((item, index) => (
-                  <NSpace class={styles.startup} key={index}>
+                  <NSpace class={styles.startup} key={Date.now() + index}>
                     <NInput
                       pair
                       separator=':'

+ 10 - 1
dolphinscheduler-ui-next/src/views/projects/workflow/definition/components/use-modal.ts

@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-import _ from 'lodash'
+import _, { cloneDeep } from 'lodash'
 import { reactive, SetupContext } from 'vue'
 import { useI18n } from 'vue-i18n'
 import { useRoute, useRouter } from 'vue-router'
@@ -56,6 +56,10 @@ export function useModal(
     schedulePreviewList: []
   })
 
+  const cachedStartParams = {} as {
+    [key: string]: { prop: string; value: string }[]
+  }
+
   const resetImportForm = () => {
     state.importForm.name = ''
     state.importForm.file = ''
@@ -237,9 +241,14 @@ export function useModal(
   }
 
   const getStartParamsList = (code: number) => {
+    if (cachedStartParams[code]) {
+      variables.startParamsList = cloneDeep(cachedStartParams[code])
+      return
+    }
     queryProcessDefinitionByCode(code, variables.projectCode).then(
       (res: any) => {
         variables.startParamsList = res.processDefinition.globalParamList
+        cachedStartParams[code] = cloneDeep(variables.startParamsList)
       }
     )
   }