forked from verdnatura/salix-front
fix(url): redirect
This commit is contained in:
parent
128904970b
commit
ed07b4d620
|
@ -1,5 +1,5 @@
|
|||
<script setup>
|
||||
import { onBeforeMount, computed, watchEffect } from 'vue';
|
||||
import { computed } from 'vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import { useArrayData } from 'src/composables/useArrayData';
|
||||
import { useStateStore } from 'stores/useStateStore';
|
||||
|
@ -29,20 +29,10 @@ const url = computed(() => {
|
|||
return props.customUrl;
|
||||
});
|
||||
|
||||
const arrayData = useArrayData(props.dataKey, {
|
||||
useArrayData(props.dataKey, {
|
||||
url: url.value,
|
||||
filter: props.filter,
|
||||
});
|
||||
|
||||
onBeforeMount(async () => {
|
||||
if (!props.baseUrl) arrayData.store.filter.where = { id: route.params.id };
|
||||
await arrayData.fetch({ append: false });
|
||||
});
|
||||
|
||||
watchEffect(() => {
|
||||
if (Array.isArray(arrayData.store.data))
|
||||
arrayData.store.data = arrayData.store.data[0];
|
||||
});
|
||||
</script>
|
||||
<template>
|
||||
<template v-if="stateStore.isHeaderMounted()">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { onMounted, ref, computed } from 'vue';
|
||||
import { onMounted, ref, computed, onUnmounted } from 'vue';
|
||||
import { useRouter, useRoute } from 'vue-router';
|
||||
import axios from 'axios';
|
||||
import { useArrayDataStore } from 'stores/useArrayDataStore';
|
||||
|
@ -18,6 +18,10 @@ export function useArrayData(key, userOptions) {
|
|||
|
||||
const page = ref(1);
|
||||
|
||||
onUnmounted(() => {
|
||||
destroy();
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
setOptions();
|
||||
store.skip = 0;
|
||||
|
@ -30,6 +34,7 @@ export function useArrayData(key, userOptions) {
|
|||
delete params.filter;
|
||||
store.userParams = { ...params, ...store.userParams };
|
||||
store.userFilter = { ...JSON.parse(filter), ...store.userFilter };
|
||||
console.log('store.userParams', store.userParams, store.userFilter);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -121,6 +126,7 @@ export function useArrayData(key, userOptions) {
|
|||
}
|
||||
|
||||
function destroy() {
|
||||
console.log('DESTROY', key);
|
||||
if (arrayDataStore.get(key)) {
|
||||
arrayDataStore.clear(key);
|
||||
}
|
||||
|
@ -217,10 +223,14 @@ export function useArrayData(key, userOptions) {
|
|||
? path.replace(/\/(list|:id)|-list/, `/${store.data[0].id}`)
|
||||
: path.replace(/:id.*/, '');
|
||||
|
||||
console.log('to: ', to, store.userParams, store.userFilter, route.query);
|
||||
if (route.path != to) {
|
||||
store.userParams = {};
|
||||
store.userFilter = {};
|
||||
return router.push({ path: to });
|
||||
destroy();
|
||||
const pushUrl = { path: to };
|
||||
if (to.endsWith('/list') || to.endsWith('/'))
|
||||
pushUrl.query = newUrl.query;
|
||||
console.log('pushUrl: ', to, pushUrl.query);
|
||||
return router.push(pushUrl);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue