Merge branch 'dev' of github.com:dikstub-rssa/simrs-fe into feat/laporan-tindakan-185
This commit is contained in:
@@ -1,6 +1,58 @@
|
||||
import { computed } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
|
||||
export function useQueryCRUD(modeKey: string = 'mode', recordIdKey: string = 'record-id') {
|
||||
type params = {
|
||||
mode: string
|
||||
recordId: any
|
||||
}
|
||||
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
|
||||
const crudQueryParams = computed<params>({
|
||||
get: () => {
|
||||
return {
|
||||
mode: route.query[modeKey] && route.query[modeKey] === 'entry' ? 'entry' : 'list',
|
||||
recordId: route.query[recordIdKey],
|
||||
}
|
||||
},
|
||||
set: (val) => {
|
||||
router.push({
|
||||
path: route.path,
|
||||
query: {
|
||||
...route.query,
|
||||
[modeKey]: val.mode,
|
||||
[recordIdKey]: val.recordId,
|
||||
},
|
||||
})
|
||||
},
|
||||
})
|
||||
|
||||
const goToEntry = (myRecord_id?: any) => {
|
||||
if (myRecord_id) {
|
||||
crudQueryParams.value.mode = 'entry'
|
||||
crudQueryParams.value.recordId = myRecord_id
|
||||
} else {
|
||||
crudQueryParams.value.mode = 'entry'
|
||||
crudQueryParams.value.recordId = undefined
|
||||
}
|
||||
}
|
||||
|
||||
const backToList = () => {
|
||||
delete route.query[recordIdKey]
|
||||
router.push({
|
||||
path: route.path,
|
||||
query: {
|
||||
...route.query,
|
||||
mode: 'list',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
return { crudQueryParams, goToEntry, backToList }
|
||||
}
|
||||
|
||||
export function useQueryCRUDMode(key: string = 'mode') {
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
@@ -25,7 +77,6 @@ export function useQueryCRUDMode(key: string = 'mode') {
|
||||
},
|
||||
})
|
||||
|
||||
// Cek apakah form diakses dari view/detail
|
||||
const fromView = computed(() => route.query['from'] === 'view')
|
||||
|
||||
const goToEntry = (options?: { fromView?: boolean }) => {
|
||||
@@ -39,7 +90,12 @@ export function useQueryCRUDMode(key: string = 'mode') {
|
||||
})
|
||||
}
|
||||
|
||||
const goToView = () => (mode.value = 'view')
|
||||
const goToView = (myRecord_id?: any) => {
|
||||
mode.value = 'view'
|
||||
if (myRecord_id) {
|
||||
myRecord_id.value = myRecord_id
|
||||
}
|
||||
}
|
||||
|
||||
const backToList = () => {
|
||||
router.push({
|
||||
@@ -47,8 +103,7 @@ export function useQueryCRUDMode(key: string = 'mode') {
|
||||
query: {
|
||||
...route.query,
|
||||
mode: 'list',
|
||||
// HAPUS record-id dan from
|
||||
'record-id': undefined,
|
||||
recordIdKey: undefined,
|
||||
from: undefined,
|
||||
},
|
||||
})
|
||||
@@ -60,13 +115,11 @@ export function useQueryCRUDMode(key: string = 'mode') {
|
||||
query: {
|
||||
...route.query,
|
||||
mode: 'view',
|
||||
// HAPUS from
|
||||
from: undefined,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// Fungsi back yang otomatis menentukan kemana harus kembali
|
||||
const goBack = () => {
|
||||
if (fromView.value) {
|
||||
backToView()
|
||||
|
||||
Reference in New Issue
Block a user