mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2026-03-25 05:29:45 +08:00
✨ 检测数据
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
<!-- 应用侧边栏 TODO:样式适配 -->
|
||||
<template>
|
||||
<v-navigation-drawer :permanent="true" :rail="rail" class="tsb-box">
|
||||
<v-list :nav="true" class="side-list" density="compact">
|
||||
@@ -763,11 +764,13 @@ async function tryLaunchGame(): Promise<void> {
|
||||
</script>
|
||||
<style lang="css" scoped>
|
||||
.tsb-box {
|
||||
position: relative;
|
||||
background: var(--app-side-bg);
|
||||
color: var(--app-side-content);
|
||||
}
|
||||
|
||||
.side-list {
|
||||
position: relative;
|
||||
height: 100%;
|
||||
font-family: var(--font-title);
|
||||
}
|
||||
|
||||
@@ -699,7 +699,10 @@ async function deleteGacha(): Promise<void> {
|
||||
async function checkData(): Promise<void> {
|
||||
let cnt = 0;
|
||||
let fail = 0;
|
||||
await showLoading.start("正在检测数据", `UID:${uidCur.value},共${gachaListCur.value.length}条`);
|
||||
await showLoading.start(
|
||||
"正在检测数据",
|
||||
`UID:${uidCur.value},共${gachaListCur.value.length}条祈愿数据`,
|
||||
);
|
||||
for (const data of gachaListCur.value) {
|
||||
if (data.itemId === "") {
|
||||
// TODO: 如果有名字重复的需要注意
|
||||
|
||||
@@ -105,6 +105,8 @@ import { storeToRefs } from "pinia";
|
||||
import { onMounted, ref, shallowRef, watch } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
import { AppGachaBData } from "@/data/index.js";
|
||||
|
||||
const router = useRouter();
|
||||
const { isLogin } = storeToRefs(useAppStore());
|
||||
const { account, cookie } = storeToRefs(useUserStore());
|
||||
@@ -345,8 +347,33 @@ async function exportUigf(): Promise<void> {
|
||||
}
|
||||
|
||||
async function checkData(): Promise<void> {
|
||||
// TODO
|
||||
showSnackbar.warn("暂未支持");
|
||||
let cnt = 0;
|
||||
let fail = 0;
|
||||
await showLoading.start(
|
||||
"正在检测数据",
|
||||
`UID:${uidCur.value},共${gachaListCur.value.length}条颂愿数据`,
|
||||
);
|
||||
for (const data of gachaListCur.value) {
|
||||
const find = AppGachaBData.find((i) => i.id === data.itemId);
|
||||
if (!find) {
|
||||
await showLoading.update(`未找到 ${data.itemId} 对应元数据,跳过`);
|
||||
fail++;
|
||||
continue;
|
||||
}
|
||||
if (data.name !== find.name) {
|
||||
await showLoading.update(`${data.name}->${find.name}`);
|
||||
await TSUserGachaB.updateNt(data, find);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
await showLoading.end();
|
||||
if (cnt > 0 || fail > 0) {
|
||||
showSnackbar.success(`成功补充遗漏数据${cnt}条,失败${fail}条,即将刷新`);
|
||||
await new Promise<void>((resolve) => setTimeout(resolve, 1500));
|
||||
window.location.reload();
|
||||
} else {
|
||||
showSnackbar.success(`成功检测${gachaListCur.value.length}条数据,无需更新`);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -192,6 +192,25 @@ async function deleteRecords(uid: string): Promise<void> {
|
||||
await db.execute("DELETE FROM GachaBRecords WHERE uid = ?;", [uid]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新单条数据名称&类型
|
||||
* @since Beta v0.9.5
|
||||
* @param raw - 原始数据
|
||||
* @param data - 对应数据
|
||||
* @returns 无返回值
|
||||
*/
|
||||
async function updateNt(
|
||||
raw: TGApp.Sqlite.Gacha.GachaB,
|
||||
data: TGApp.App.Gacha.GachaBMeta,
|
||||
): Promise<void> {
|
||||
const db = await TGSqlite.getDB();
|
||||
await db.execute("UPDATE GachaBRecords SET name = $1,type = $2 WHERE id = $3;", [
|
||||
data.name,
|
||||
data.type,
|
||||
raw.id,
|
||||
]);
|
||||
}
|
||||
|
||||
const TSUserGachaB = {
|
||||
getUidList,
|
||||
getGachaCheck,
|
||||
@@ -199,6 +218,7 @@ const TSUserGachaB = {
|
||||
insertGachaList,
|
||||
deleteRecords,
|
||||
mergeUIGF4,
|
||||
updateNt,
|
||||
};
|
||||
|
||||
export default TSUserGachaB;
|
||||
|
||||
Reference in New Issue
Block a user