perf: #7136 update composables
This commit is contained in:
parent
a23eb0a5ad
commit
693e689f5e
|
@ -82,7 +82,7 @@ const selectValue = computed({
|
||||||
return $props.modelValue;
|
return $props.modelValue;
|
||||||
},
|
},
|
||||||
set(value) {
|
set(value) {
|
||||||
arrayData.store.page.value = 0;
|
arrayData.store.page = 0;
|
||||||
emit('update:modelValue', value);
|
emit('update:modelValue', value);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -156,7 +156,7 @@ async function fetchFilter(val) {
|
||||||
async function filterHandler(val, update) {
|
async function filterHandler(val, update) {
|
||||||
if (!$props.defaultFilter) return update();
|
if (!$props.defaultFilter) return update();
|
||||||
let newOptions = [];
|
let newOptions = [];
|
||||||
if (myOptions.value.length > 0) {
|
if (myOptions.value.length > 0 && !useURL.value) {
|
||||||
newOptions = filter(val, myOptions.value);
|
newOptions = filter(val, myOptions.value);
|
||||||
myOptions.value = [];
|
myOptions.value = [];
|
||||||
} else newOptions = filter(val, myOptionsOriginal.value);
|
} else newOptions = filter(val, myOptionsOriginal.value);
|
||||||
|
|
|
@ -15,8 +15,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
let canceller = null;
|
let canceller = null;
|
||||||
|
|
||||||
const page = ref(1);
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
setOptions();
|
setOptions();
|
||||||
store.skip = 0;
|
store.skip = 0;
|
||||||
|
@ -143,7 +141,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
|
||||||
store.userParams = userParams;
|
store.userParams = userParams;
|
||||||
store.skip = 0;
|
store.skip = 0;
|
||||||
store.filter.skip = 0;
|
store.filter.skip = 0;
|
||||||
page.value = 1;
|
store.page = 1;
|
||||||
|
|
||||||
await fetch({ append: false });
|
await fetch({ append: false });
|
||||||
return { filter, params };
|
return { filter, params };
|
||||||
|
@ -171,8 +169,8 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
|
||||||
async function loadMore() {
|
async function loadMore() {
|
||||||
if (!store.hasMoreData) return;
|
if (!store.hasMoreData) return;
|
||||||
|
|
||||||
store.skip = store.limit * page.value;
|
store.skip = store.limit * store.page;
|
||||||
page.value += 1;
|
store.page += 1;
|
||||||
|
|
||||||
await fetch({ append: true });
|
await fetch({ append: true });
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,31 @@
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
export function useAxios() {
|
export function useAxios(props, url) {
|
||||||
const fetch = async (url, filter, params) => {
|
if (!url) url = props.url;
|
||||||
axios.get(url, { params: { ...params, ...filter } });
|
const handleFilter = (filter) => {
|
||||||
|
filter = Object.assign(filter, props.filter);
|
||||||
|
if (props.where && !filter.where) filter.where = props.where;
|
||||||
|
if (props.sortBy) filter.order = props.sortBy;
|
||||||
|
if (props.limit) filter.limit = props.limit;
|
||||||
|
return JSON.stringify(filter);
|
||||||
};
|
};
|
||||||
|
const fetch = async (filter) =>
|
||||||
|
(
|
||||||
|
await axios.get(url, {
|
||||||
|
params: { filter: handleFilter(filter), ...props.params },
|
||||||
|
})
|
||||||
|
).data;
|
||||||
|
|
||||||
const push = async (url, method = 'PUT', filter, params) => {
|
const push = async (method = 'PUT', filter, data) =>
|
||||||
axios({ url, method, params: { ...params, ...filter } });
|
axios({
|
||||||
};
|
url,
|
||||||
|
method,
|
||||||
|
data,
|
||||||
|
params: { filter: handleFilter(filter), ...props.params },
|
||||||
|
});
|
||||||
|
|
||||||
const pop = async (url, filter, params) => {
|
const pop = async (filter) =>
|
||||||
axios.delete(url, { params: { ...params, ...filter } });
|
axios.delete(url, { params: { filter: handleFilter(filter), ...props.params } });
|
||||||
};
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fetch,
|
fetch,
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
import { ref } from 'vue';
|
// import { ref } from 'vue';
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
|
|
||||||
export function useFetchData(props) {
|
export function useFetchData(props) {
|
||||||
const data = ref(null);
|
// const data = ref(null);
|
||||||
|
|
||||||
async function fetch(fetchFilter = {}) {
|
async function fetch(fetchFilter = {}) {
|
||||||
try {
|
try {
|
||||||
|
@ -15,7 +15,7 @@ export function useFetchData(props) {
|
||||||
params: { filter: JSON.stringify(filter), ...props.params },
|
params: { filter: JSON.stringify(filter), ...props.params },
|
||||||
});
|
});
|
||||||
|
|
||||||
data.value = response.data;
|
// data.value = response.data;
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// Manejo de errores
|
// Manejo de errores
|
||||||
|
@ -24,7 +24,7 @@ export function useFetchData(props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
data,
|
// data,
|
||||||
fetch,
|
fetch,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ export const useArrayDataStore = defineStore('arrayDataStore', () => {
|
||||||
skip: 0,
|
skip: 0,
|
||||||
order: '',
|
order: '',
|
||||||
data: ref(),
|
data: ref(),
|
||||||
|
page: ref(1),
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
userParamsChanged: false,
|
userParamsChanged: false,
|
||||||
exprBuilder: null,
|
exprBuilder: null,
|
||||||
|
|
Loading…
Reference in New Issue