diff --git a/src/components/func/loading.vue b/src/components/func/loading.vue index b89478da..f90eb969 100644 --- a/src/components/func/loading.vue +++ b/src/components/func/loading.vue @@ -18,7 +18,7 @@
empty - loading + loading
@@ -37,13 +37,16 @@ const defaultIcon = "/UI/app/loading.webp"; const props = defineProps(); +type EmojiItem = Array & { length: 2 }; + const showBox = ref(false); const showOuter = ref(false); const showInner = ref(false); const iconUrl = ref(defaultIcon); +const iconKey = ref(); const data = shallowRef(props); -const localEmojis = shallowRef>([]); +const localEmojis = shallowRef>([]); const loadingEl = useTemplateRef("LoadingRef"); watch( @@ -71,8 +74,11 @@ onUnmounted(() => loadingEl.value?.removeEventListener("contextmenu", (e) => e.p async function getRandomEmoji(): Promise { if (localEmojis.value.length === 0) { const emojisRead = localStorage.getItem("emojis"); - if (emojisRead) localEmojis.value = Object.values(JSON.parse(emojisRead)); - else { + if (emojisRead) { + let tmpArr: Array = []; + for (const [k, v] of Object.entries(JSON.parse(emojisRead))) tmpArr.push([`${k}`, `${v}`]); + localEmojis.value = tmpArr; + } else { const resp = await bbsReq.emojis(); if ("retcode" in resp) { console.error(resp); @@ -80,11 +86,16 @@ async function getRandomEmoji(): Promise { iconUrl.value = defaultIcon; return; } - localEmojis.value = Object.values(resp); localStorage.setItem("emojis", JSON.stringify(resp)); + let tmpArr: Array = []; + for (const [k, v] of Object.entries(resp)) { + tmpArr.push([k, v]); + localEmojis.value = tmpArr; + } } } - iconUrl.value = localEmojis.value[Math.floor(Math.random() * localEmojis.value.length)]; + [iconKey.value, iconUrl.value] = + localEmojis.value[Math.floor(Math.random() * localEmojis.value.length)]; } async function displayBox(params: LoadingParams): Promise {