+import { NButton, NPopconfirm } from 'naive-ui';
+import { fetchGetRetryScenePageList } from '@/service/api';
+import { $t } from '@/locales';
+import { useAppStore } from '@/store/modules/app';
+import { useTable, useTableOperate } from '@/hooks/common/table';
+import SceneOperateDrawer from './modules/scene-operate-drawer.vue';
+import SceneSearch from './modules/scene-search.vue';
+
+const appStore = useAppStore();
+
+const { columns, columnChecks, data, getData, loading, mobilePagination, searchParams, resetSearchParams } = useTable({
+ apiFn: fetchGetRetryScenePageList,
+ apiParams: {
+ page: 1,
+ size: 10,
+ // if you want to use the searchParams in Form, you need to define the following properties, and the value is null
+ // the value can not be undefined, otherwise the property in Form will not be reactive
+ groupName: null,
+ sceneName: null,
+ sceneStatus: null
+ },
+ columns: () => [
+ {
+ type: 'selection',
+ align: 'center',
+ width: 48
+ },
+ {
+ key: 'index',
+ title: $t('common.index'),
+ align: 'center',
+ width: 64
+ },
+ {
+ key: 'groupName',
+ title: $t('page.retryScene.groupName'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'sceneName',
+ title: $t('page.retryScene.sceneName'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'sceneStatus',
+ title: $t('page.retryScene.sceneStatus'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'backOff',
+ title: $t('page.retryScene.backOff'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'maxRetryCount',
+ title: $t('page.retryScene.maxRetryCount'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'triggerInterval',
+ title: $t('page.retryScene.triggerInterval'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'deadlineRequest',
+ title: $t('page.retryScene.deadlineRequest'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'executorTimeout',
+ title: $t('page.retryScene.executorTimeout'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'createDt',
+ title: $t('page.retryScene.createDt'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'updateDt',
+ title: $t('page.retryScene.updateDt'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'description',
+ title: $t('page.retryScene.description'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'routeKey',
+ title: $t('page.retryScene.routeKey'),
+ align: 'left',
+ minWidth: 120
+ },
+ {
+ key: 'operate',
+ title: $t('common.operate'),
+ align: 'center',
+ width: 130,
+ render: row => (
+
+ edit(row.id!)}>
+ {$t('common.edit')}
+
+ handleDelete(row.id!)}>
+ {{
+ default: () => $t('common.confirmDelete'),
+ trigger: () => (
+
+ {$t('common.delete')}
+
+ )
+ }}
+
+
+ )
+ }
+ ]
+});
+
+const {
+ drawerVisible,
+ operateType,
+ editingData,
+ handleAdd,
+ handleEdit,
+ checkedRowKeys,
+ onBatchDeleted,
+ onDeleted
+ // closeDrawer
+} = useTableOperate(data, getData);
+
+async function handleBatchDelete() {
+ // request
+ console.log(checkedRowKeys.value);
+
+ onBatchDeleted();
+}
+
+function handleDelete(id: string) {
+ // request
+ console.log(id);
+
+ onDeleted();
+}
+
+function edit(id: string) {
+ handleEdit(id);
+}
+
+
+
+
+
+
+
diff --git a/src/views/retry/scene/modules/scene-operate-drawer.vue b/src/views/retry/scene/modules/scene-operate-drawer.vue
new file mode 100644
index 0000000..3b8f4e4
--- /dev/null
+++ b/src/views/retry/scene/modules/scene-operate-drawer.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('common.cancel') }}
+ {{ $t('common.save') }}
+
+
+
+
+
+
diff --git a/src/views/retry/scene/modules/scene-search.vue b/src/views/retry/scene/modules/scene-search.vue
new file mode 100644
index 0000000..3d31674
--- /dev/null
+++ b/src/views/retry/scene/modules/scene-search.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+