From 76f8f95ddd08db767523bf447625508733cb0cae Mon Sep 17 00:00:00 2001
From: dhb52 <dhb52@126.com>
Date: Tue, 4 Jun 2024 22:56:38 +0800
Subject: [PATCH] =?UTF-8?q?=20feat(sj=5F1.0.0=5Fbeta4):=20=E9=87=8D?=
 =?UTF-8?q?=E8=AF=95=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8=E6=90=9C=E7=B4=A2?=
 =?UTF-8?q?,=20=E9=BB=98=E8=AE=A4=E9=80=89=E4=B8=AD=E7=AC=AC=E4=B8=80?=
 =?UTF-8?q?=E4=B8=AA=E7=BB=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/retry/task/index.vue                | 11 ++++-
 .../retry/task/modules/retry-task-search.vue  | 46 ++-----------------
 2 files changed, 15 insertions(+), 42 deletions(-)

diff --git a/src/views/retry/task/index.vue b/src/views/retry/task/index.vue
index c47a046..b18653b 100644
--- a/src/views/retry/task/index.vue
+++ b/src/views/retry/task/index.vue
@@ -1,10 +1,11 @@
 <script setup lang="tsx">
 import { NButton, NPopconfirm, NTag } from 'naive-ui';
 import { useBoolean } from '@sa/hooks';
-import { ref } from 'vue';
+import { onMounted, ref } from 'vue';
 import {
   fetchBatchDeleteRetryTask,
   fetchExecuteRetryTask,
+  fetchGetAllGroupNameList,
   fetchGetRetryTaskById,
   fetchGetRetryTaskList,
   fetchUpdateRetryTaskStatus
@@ -297,6 +298,14 @@ async function updateRetryTaskStatus(id: number, groupName: string, retryStatus:
   window.$message?.success($t('common.updateSuccess'));
   getData();
 }
+
+onMounted(async () => {
+  const { error, data: groupList } = await fetchGetAllGroupNameList();
+  if (!error && groupList.length > 0) {
+    searchParams.groupName = groupList[0];
+    getData();
+  }
+});
 </script>
 
 <template>
diff --git a/src/views/retry/task/modules/retry-task-search.vue b/src/views/retry/task/modules/retry-task-search.vue
index 6c9ebf7..f0078a8 100644
--- a/src/views/retry/task/modules/retry-task-search.vue
+++ b/src/views/retry/task/modules/retry-task-search.vue
@@ -1,9 +1,9 @@
 <script setup lang="ts">
-import { onMounted, ref } from 'vue';
 import { $t } from '@/locales';
-import { translateOptions, translateOptions2 } from '@/utils/common';
+import { translateOptions } from '@/utils/common';
 import { retryTaskStatusTypeOptions } from '@/constants/business';
-import { fetchGetAllGroupNameList, fetchGetRetrySceneList } from '@/service/api';
+import SelectGroup from '@/components/common/select-group.vue';
+import SelectScene from '@/components/common/select-scene.vue';
 
 defineOptions({
   name: 'RetryTaskSearch'
@@ -18,11 +18,6 @@ const emit = defineEmits<Emits>();
 
 const model = defineModel<Api.RetryTask.RetryTaskSearchParams>('model', { required: true });
 
-/** 组列表 */
-const groupNameList = ref<string[]>([]);
-/** 场景列表 */
-const sceneNameList = ref<string[]>([]);
-
 function reset() {
   emit('reset');
 }
@@ -30,46 +25,15 @@ function reset() {
 function search() {
   emit('search');
 }
-
-async function getGroupNameList() {
-  const res = await fetchGetAllGroupNameList();
-  groupNameList.value = res.data as string[];
-}
-
-async function handleGroupNameUpdate(groupName: string) {
-  if (groupName) {
-    const res = await fetchGetRetrySceneList({ groupName });
-    sceneNameList.value = res.data!.map((scene: Api.RetryScene.Scene) => scene.sceneName);
-  } else {
-    model.value.sceneName = '';
-    sceneNameList.value = [];
-  }
-}
-
-onMounted(() => {
-  getGroupNameList();
-});
 </script>
 
 <template>
   <SearchForm :model="model" @search="search" @reset="reset">
     <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.groupName')" path="groupName" class="pr-24px">
-      <NSelect
-        v-model:value="model.groupName"
-        :placeholder="$t('page.retryTask.form.groupName')"
-        :options="translateOptions2(groupNameList)"
-        clearable
-        filterable
-        @update:value="handleGroupNameUpdate"
-      />
+      <SelectGroup v-model:value="model.groupName" />
     </NFormItemGi>
     <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.sceneName')" path="sceneName" class="pr-24px">
-      <NSelect
-        v-model:value="model.sceneName"
-        :placeholder="$t('page.retryTask.form.sceneName')"
-        :options="translateOptions2(sceneNameList)"
-        clearable
-      />
+      <SelectScene v-model:value="model.sceneName" :group-name="model.groupName as string" />
     </NFormItemGi>
     <NFormItemGi span="24 s:12 m:6" :label="$t('page.retryTask.uniqueId')" path="uniqueId" class="pr-24px">
       <NInput v-model:value="model.uniqueId" :placeholder="$t('page.retryTask.form.uniqueId')" />