diff --git a/app/components/AppLoading.vue b/app/components/AppLoading.vue new file mode 100644 index 0000000..97d9d48 --- /dev/null +++ b/app/components/AppLoading.vue @@ -0,0 +1,64 @@ + + + + + + + + Đang tải dữ liệu + {{ ellipsis }} + + + + + + diff --git a/app/pages/index.vue b/app/pages/index.vue index 8bdce76..0c50c5f 100644 --- a/app/pages/index.vue +++ b/app/pages/index.vue @@ -1,5 +1,6 @@ - + + { +export default defineNuxtPlugin((nuxtApp) => { + const store = useStore(); const { $getapi, $readyapi } = nuxtApp; const connlist = $readyapi([ "common", @@ -18,5 +19,10 @@ export default defineNuxtPlugin(async (nuxtApp) => { "colorscheme", ]); const notReadyConns = connlist.filter((v) => !v.ready); - if (notReadyConns.length > 0) await $getapi(notReadyConns); + + async function getReady() { + await $getapi(notReadyConns); + store.ready = true; + } + if (notReadyConns.length > 0) getReady(); }); diff --git a/app/stores/index.js b/app/stores/index.js index d17bda7..7f96cd1 100644 --- a/app/stores/index.js +++ b/app/stores/index.js @@ -2,6 +2,7 @@ import { defineStore } from "pinia"; export const useStore = defineStore("maindev", { state: () => ({ + ready: false, viewport: undefined, login: undefined, token: undefined,
+ Đang tải dữ liệu + {{ ellipsis }} +