Skip to content

Commit 166ef69

Browse files
[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 <[email protected]>
1 parent d983e36 commit 166ef69

File tree

4 files changed

+123
-4
lines changed

4 files changed

+123
-4
lines changed

dolphinscheduler-ui/src/views/resource/components/resource/edit/index.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { defineComponent, toRefs, watch } from 'vue'
2020
import { NButton, NForm, NFormItem, NSpace, NSpin } from 'naive-ui'
2121
import { useI18n } from 'vue-i18n'
2222
import { useForm } from './use-form'
23-
import { useEdit } from './use-edit'
23+
import { useEdit, useIsDetailPageStore } from './use-edit'
2424
import Card from '@/components/card'
2525
import MonacoEditor from '@/components/monaco-editor'
2626
import styles from '../index.module.scss'
@@ -30,7 +30,9 @@ export default defineComponent({
3030
setup() {
3131
const route = useRoute()
3232
const router = useRouter()
33-
33+
const isDetailPageStore = useIsDetailPageStore()
34+
isDetailPageStore.$reset()
35+
3436
const componentName = route.name
3537
// fullname is now the id of resources
3638
const fullName = String(router.currentRoute.value.query.prefix || '')
@@ -40,11 +42,13 @@ export default defineComponent({
4042
const { getResourceView, handleUpdateContent } = useEdit(state)
4143

4244
const handleFileContent = () => {
45+
isDetailPageStore.setIsDetailPage(true)
4346
state.fileForm.content = resourceViewRef.state.value.content
4447
handleUpdateContent(fullName, tenantCode)
4548
}
4649

4750
const handleReturn = () => {
51+
isDetailPageStore.setIsDetailPage(true)
4852
router.go(-1)
4953
}
5054

dolphinscheduler-ui/src/views/resource/components/resource/edit/use-edit.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
updateResourceContent,
2424
viewResource
2525
} from '@/service/modules/resources'
26+
import { defineStore } from 'pinia'
2627

2728
export function useEdit(state: any) {
2829
const { t } = useI18n()
@@ -61,3 +62,29 @@ export function useEdit(state: any) {
6162
handleUpdateContent
6263
}
6364
}
65+
66+
export const useIsDetailPageStore = defineStore("isDetailPage", {
67+
state:() => {
68+
return {
69+
isDetailPage:false
70+
}
71+
},
72+
getters: {
73+
getIsDetailPage(): boolean {
74+
return this.isDetailPage
75+
}
76+
},
77+
actions: {
78+
setIsDetailPage(isDetailPage: boolean) {
79+
this.isDetailPage = isDetailPage
80+
}
81+
}
82+
})
83+
84+
export const isEmpty = (string: any): boolean => {
85+
if(string === '' || string === undefined || string === null){
86+
return true
87+
}else{
88+
return false
89+
}
90+
}

dolphinscheduler-ui/src/views/resource/components/resource/index.tsx

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { useRouter } from 'vue-router'
1919
import {
2020
defineComponent,
2121
onMounted,
22+
onUnmounted,
2223
ref,
2324
getCurrentInstance,
2425
PropType,
@@ -37,7 +38,8 @@ import {
3738
} from 'naive-ui'
3839
import { useI18n } from 'vue-i18n'
3940
import { SearchOutlined } from '@vicons/antd'
40-
import { useTable } from './table/use-table'
41+
import { useTable, useDetailPageStore } from './table/use-table'
42+
import { useIsDetailPageStore, isEmpty } from './edit/use-edit'
4143
import { useFileStore } from '@/store/file/file'
4244
import Card from '@/components/card'
4345
import ResourceFolderModal from './folder'
@@ -104,8 +106,33 @@ export default defineComponent({
104106
const handleRenameFile = () => {
105107
variables.renameShowRef = true
106108
}
109+
const detailPageStore = useDetailPageStore()
110+
const isDetailPageStore = useIsDetailPageStore()
111+
112+
const handleDetailBackList = () => {
113+
if(isDetailPageStore.getIsDetailPage){
114+
variables.resourceType = detailPageStore.getResourceType
115+
variables.fullName = detailPageStore.getFullName
116+
variables.tenantCode = detailPageStore.getTenantCode
117+
variables.searchRef = detailPageStore.getSearchValue
118+
variables.pagination.page = detailPageStore.getPage
119+
variables.pagination.pageSize = detailPageStore.getPageSize
120+
if(!isEmpty(variables.searchRef)){
121+
handleConditions()
122+
}
123+
detailPageStore.$reset()
124+
isDetailPageStore.$reset()
125+
} else {
126+
detailPageStore.$reset()
127+
isDetailPageStore.$reset()
128+
}
129+
}
107130

131+
onUnmounted(() => {
132+
isDetailPageStore.$reset()
133+
})
108134
onMounted(() => {
135+
handleDetailBackList()
109136
createColumns(variables)
110137
fileStore.setCurrentDir(variables.fullName)
111138
breadListRef.value = fileStore.getCurrentDir

dolphinscheduler-ui/src/views/resource/components/resource/table/use-table.ts

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
} from '@/common/column-width-config'
3131
import type { Router } from 'vue-router'
3232
import { useFileState } from '@/views/resource/components/resource/use-file'
33+
import { defineStore } from 'pinia'
3334

3435
const goSubFolder = (router: Router, item: any) => {
3536
if (item.directory) {
@@ -211,7 +212,8 @@ export function useTable() {
211212
}
212213

213214
const { getResourceListState } = useFileState(setPagination)
214-
215+
const detailPageStore = useDetailPageStore()
216+
215217
const requestData = () => {
216218
variables.resourceList = getResourceListState(
217219
variables.resourceType!,
@@ -221,6 +223,12 @@ export function useTable() {
221223
variables.pagination.page,
222224
variables.pagination.pageSize
223225
)
226+
detailPageStore.setResourceType(variables.resourceType!)
227+
detailPageStore.setFullName(variables.fullName)
228+
detailPageStore.setTenantCode(variables.tenantCode)
229+
detailPageStore.setSearchValue(variables.searchRef)
230+
detailPageStore.setPage(variables.pagination.page)
231+
detailPageStore.setPageSize(variables.pagination.pageSize)
224232
}
225233

226234
const updateList = () => {
@@ -237,3 +245,56 @@ export function useTable() {
237245
handleCreateFile: createFile
238246
}
239247
}
248+
export const useDetailPageStore = defineStore("detailPage", {
249+
state:() => {
250+
var resourceTypeInitValue:ResourceType
251+
return {
252+
resourceType:resourceTypeInitValue!,
253+
fullName:'',
254+
tenantCode:'',
255+
searchValue:'',
256+
page:1,
257+
pageSize:10
258+
}
259+
},
260+
getters: {
261+
getResourceType(): ResourceType {
262+
return this.resourceType
263+
},
264+
getFullName(): string {
265+
return this.fullName
266+
},
267+
getTenantCode(): string {
268+
return this.tenantCode
269+
},
270+
getSearchValue(): string {
271+
return this.searchValue
272+
},
273+
getPage(): number {
274+
return this.page
275+
},
276+
getPageSize(): number {
277+
return this.pageSize
278+
}
279+
},
280+
actions: {
281+
setResourceType(resourceTypeValue: ResourceType) {
282+
this.resourceType = resourceTypeValue
283+
},
284+
setFullName(fullName: string) {
285+
this.fullName = fullName
286+
},
287+
setTenantCode(fullName: string) {
288+
this.fullName = fullName
289+
},
290+
setSearchValue(searchValue: string) {
291+
this.searchValue = searchValue
292+
},
293+
setPage(page: number) {
294+
this.page = page
295+
},
296+
setPageSize(pageSize: number) {
297+
this.pageSize = pageSize
298+
}
299+
}
300+
})

0 commit comments

Comments
 (0)