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 @@
@@ -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 {