You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by zi...@apache.org on 2023/10/13 03:07:39 UTC

[dolphinscheduler] branch dev updated: [improvement][Resources] Improve details page return to the previous list page (#14951) (#14954)

This is an automated email from the ASF dual-hosted git repository.

zihaoxiang 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 166ef69066 [improvement][Resources] Improve details page return to the previous list page (#14951) (#14954)
166ef69066 is described below

commit 166ef69066e682ee89d2b7e0ec45b0aecbdce864
Author: 朱通通 <zh...@163.com>
AuthorDate: Fri Oct 13 11:07:33 2023 +0800

    [improvement][Resources] Improve details page return to the previous list page (#14951) (#14954)
    
    * Update ResourcesServiceImpl.java
    
    * Update index.tsx
    
    feature-14951:Improvement details page
    
    * Update use-edit.ts
    
    * Update use-table.ts
    
    * Update index.tsx
    
    * [improvement] improve details page return to the previous list page (#14951)
    
    improve details page return to the previous list page
    
    * [improvement] improve details page return to the previous list page (#14951)
    
    improve details page return to the previous list page
    
    * [improvement] improve details page return to the previous list page (#14951)
    
    improve details page return to the previous list page
    
    * [improvement] improve details page return to the previous list page (#14951)
    
    improve details page return to the previous list page
    
    * [improvement] improve details page return to the previous list page (#14951)
    
    improve details page return to the previous list page
    
    * [improvement] improve details page return to the previous list page (#14951)
    
    improve details page return to the previous list page
    
    ---------
    
    Co-authored-by: xiangzihao <46...@qq.com>
---
 .../resource/components/resource/edit/index.tsx    |  8 ++-
 .../resource/components/resource/edit/use-edit.ts  | 27 ++++++++++
 .../views/resource/components/resource/index.tsx   | 29 +++++++++-
 .../components/resource/table/use-table.ts         | 63 +++++++++++++++++++++-
 4 files changed, 123 insertions(+), 4 deletions(-)

diff --git a/dolphinscheduler-ui/src/views/resource/components/resource/edit/index.tsx b/dolphinscheduler-ui/src/views/resource/components/resource/edit/index.tsx
index 0e2e6ea0c9..7170e7376a 100644
--- a/dolphinscheduler-ui/src/views/resource/components/resource/edit/index.tsx
+++ b/dolphinscheduler-ui/src/views/resource/components/resource/edit/index.tsx
@@ -20,7 +20,7 @@ import { defineComponent, toRefs, watch } from 'vue'
 import { NButton, NForm, NFormItem, NSpace, NSpin } from 'naive-ui'
 import { useI18n } from 'vue-i18n'
 import { useForm } from './use-form'
-import { useEdit } from './use-edit'
+import { useEdit, useIsDetailPageStore } from './use-edit'
 import Card from '@/components/card'
 import MonacoEditor from '@/components/monaco-editor'
 import styles from '../index.module.scss'
@@ -30,7 +30,9 @@ export default defineComponent({
   setup() {
     const route = useRoute()
     const router = useRouter()
-
+    const isDetailPageStore = useIsDetailPageStore()
+    isDetailPageStore.$reset()
+    
     const componentName = route.name
     // fullname is now the id of resources
     const fullName = String(router.currentRoute.value.query.prefix || '')
@@ -40,11 +42,13 @@ export default defineComponent({
     const { getResourceView, handleUpdateContent } = useEdit(state)
 
     const handleFileContent = () => {
+      isDetailPageStore.setIsDetailPage(true)
       state.fileForm.content = resourceViewRef.state.value.content
       handleUpdateContent(fullName, tenantCode)
     }
 
     const handleReturn = () => {
+      isDetailPageStore.setIsDetailPage(true)
       router.go(-1)
     }
 
diff --git a/dolphinscheduler-ui/src/views/resource/components/resource/edit/use-edit.ts b/dolphinscheduler-ui/src/views/resource/components/resource/edit/use-edit.ts
index 111b2e304e..dc9dd2c7fc 100644
--- a/dolphinscheduler-ui/src/views/resource/components/resource/edit/use-edit.ts
+++ b/dolphinscheduler-ui/src/views/resource/components/resource/edit/use-edit.ts
@@ -23,6 +23,7 @@ import {
   updateResourceContent,
   viewResource
 } from '@/service/modules/resources'
+import { defineStore } from 'pinia'
 
 export function useEdit(state: any) {
   const { t } = useI18n()
@@ -61,3 +62,29 @@ export function useEdit(state: any) {
     handleUpdateContent
   }
 }
+
+export const useIsDetailPageStore = defineStore("isDetailPage", {
+  state:() => {
+    return {
+      isDetailPage:false
+    }
+  },
+  getters: {
+    getIsDetailPage(): boolean {
+      return this.isDetailPage
+    }
+  },
+  actions: {
+    setIsDetailPage(isDetailPage: boolean) {
+      this.isDetailPage = isDetailPage
+    }
+  }
+})
+
+export const isEmpty = (string: any): boolean => {
+    if(string === '' || string === undefined || string === null){
+        return true
+    }else{
+        return false
+    }
+}
diff --git a/dolphinscheduler-ui/src/views/resource/components/resource/index.tsx b/dolphinscheduler-ui/src/views/resource/components/resource/index.tsx
index 0021f2aa59..96dcfb1ee0 100644
--- a/dolphinscheduler-ui/src/views/resource/components/resource/index.tsx
+++ b/dolphinscheduler-ui/src/views/resource/components/resource/index.tsx
@@ -19,6 +19,7 @@ import { useRouter } from 'vue-router'
 import {
   defineComponent,
   onMounted,
+  onUnmounted,
   ref,
   getCurrentInstance,
   PropType,
@@ -37,7 +38,8 @@ import {
 } from 'naive-ui'
 import { useI18n } from 'vue-i18n'
 import { SearchOutlined } from '@vicons/antd'
-import { useTable } from './table/use-table'
+import { useTable, useDetailPageStore } from './table/use-table'
+import { useIsDetailPageStore, isEmpty } from './edit/use-edit'
 import { useFileStore } from '@/store/file/file'
 import Card from '@/components/card'
 import ResourceFolderModal from './folder'
@@ -104,8 +106,33 @@ export default defineComponent({
     const handleRenameFile = () => {
       variables.renameShowRef = true
     }
+    const detailPageStore = useDetailPageStore()   
+    const isDetailPageStore = useIsDetailPageStore()
+    
+    const handleDetailBackList = () => {
+      if(isDetailPageStore.getIsDetailPage){
+        variables.resourceType = detailPageStore.getResourceType  
+        variables.fullName = detailPageStore.getFullName 
+        variables.tenantCode = detailPageStore.getTenantCode 
+        variables.searchRef = detailPageStore.getSearchValue 
+        variables.pagination.page = detailPageStore.getPage 
+        variables.pagination.pageSize = detailPageStore.getPageSize 
+        if(!isEmpty(variables.searchRef)){
+          handleConditions()
+        }
+	detailPageStore.$reset()
+	isDetailPageStore.$reset()
+      } else {
+	  detailPageStore.$reset()
+	  isDetailPageStore.$reset()
+      }
+    }
 
+    onUnmounted(() => {
+      isDetailPageStore.$reset()
+    })
     onMounted(() => {
+      handleDetailBackList()
       createColumns(variables)
       fileStore.setCurrentDir(variables.fullName)
       breadListRef.value = fileStore.getCurrentDir
diff --git a/dolphinscheduler-ui/src/views/resource/components/resource/table/use-table.ts b/dolphinscheduler-ui/src/views/resource/components/resource/table/use-table.ts
index 3785703a95..2160d4784f 100644
--- a/dolphinscheduler-ui/src/views/resource/components/resource/table/use-table.ts
+++ b/dolphinscheduler-ui/src/views/resource/components/resource/table/use-table.ts
@@ -30,6 +30,7 @@ import {
 } from '@/common/column-width-config'
 import type { Router } from 'vue-router'
 import { useFileState } from '@/views/resource/components/resource/use-file'
+import { defineStore } from 'pinia'
 
 const goSubFolder = (router: Router, item: any) => {
   if (item.directory) {
@@ -211,7 +212,8 @@ export function useTable() {
   }
 
   const { getResourceListState } = useFileState(setPagination)
-
+  const detailPageStore = useDetailPageStore()
+  
   const requestData = () => {
     variables.resourceList = getResourceListState(
       variables.resourceType!,
@@ -221,6 +223,12 @@ export function useTable() {
       variables.pagination.page,
       variables.pagination.pageSize
     )
+    detailPageStore.setResourceType(variables.resourceType!)
+    detailPageStore.setFullName(variables.fullName)
+    detailPageStore.setTenantCode(variables.tenantCode)
+    detailPageStore.setSearchValue(variables.searchRef)
+    detailPageStore.setPage(variables.pagination.page)
+    detailPageStore.setPageSize(variables.pagination.pageSize)
   }
 
   const updateList = () => {
@@ -237,3 +245,56 @@ export function useTable() {
     handleCreateFile: createFile
   }
 }
+export const useDetailPageStore = defineStore("detailPage", { 
+  state:() => {
+	var resourceTypeInitValue:ResourceType
+    return {
+      resourceType:resourceTypeInitValue!,
+	  fullName:'',
+	  tenantCode:'',
+	  searchValue:'',
+	  page:1,
+	  pageSize:10
+    }
+  },
+  getters: {
+    getResourceType(): ResourceType {
+      return this.resourceType
+    },
+	getFullName(): string {
+	  return this.fullName
+	},
+	getTenantCode(): string {
+	  return this.tenantCode
+	},
+	getSearchValue(): string {
+	  return this.searchValue
+	},
+	getPage(): number {
+	  return this.page
+	},
+	getPageSize(): number {
+	  return this.pageSize
+	}
+  },
+  actions: {
+    setResourceType(resourceTypeValue: ResourceType) {
+      this.resourceType = resourceTypeValue
+    },
+	setFullName(fullName: string) {
+	  this.fullName = fullName
+	},
+	setTenantCode(fullName: string) {
+	  this.fullName = fullName
+	},
+	setSearchValue(searchValue: string) {
+	  this.searchValue = searchValue
+	},
+	setPage(page: number) {
+	  this.page = page
+	},
+	setPageSize(pageSize: number) {
+	  this.pageSize = pageSize
+	}
+  }
+})