存档新建&删除

This commit is contained in:
目棃
2024-09-21 10:52:24 +08:00
parent 900a125d7f
commit 6d06bb7a21
3 changed files with 34 additions and 9 deletions

View File

@@ -47,7 +47,6 @@ watch(
async function refreshOverview(): Promise<void> {
overview.value = await TSUserAchi.getOverview(props.uid, props.series);
console.log(overview.value);
}
async function listenAchi(): Promise<UnlistenFn> {

View File

@@ -31,8 +31,7 @@
</template>
</v-app-bar>
<div class="wrap">
<!-- 左侧菜单 -->
<div class="left-wrap" v-if="uidCur">
<div class="left-wrap">
<TuaSeries
v-for="(series, index) in seriesList"
:key="index"
@@ -43,7 +42,6 @@
/>
</div>
<TuaAchiList
v-if="uidCur"
:uid="uidCur"
:hideFin="hideFin"
v-model:series="selectedSeries"
@@ -271,14 +269,43 @@ async function handleImportOuter(app: string): Promise<void> {
}
async function createUid(): Promise<void> {
// todo
const uidInput = await showConfirm({
mode: "input",
title: "请输入新存档UID",
text: "UID:",
});
if (uidInput === undefined || uidInput === false) {
showSnackbar({ text: "已取消", color: "cancel" });
return;
}
if (isNaN(Number(uidInput))) {
showSnackbar({ text: "请输入合法数字", color: "warn" });
return;
}
if (uidList.value.includes(Number(uidInput))) {
showSnackbar({ text: "该存档已存在!", color: "warn" });
return;
}
uidList.value.push(Number(uidInput));
uidCur.value = Number(uidInput);
showSnackbar({ text: `切换到新存档 ${Number(uidInput)}`, color: "success" });
}
async function deleteUid(): Promise<void> {
// todo
const uidInput = await showConfirm({
title: "确定删除该存档?",
text: `确认则清空存档-${uidCur.value}对应数据`,
});
if (uidInput === undefined || !uidInput) {
showSnackbar({ text: "已取消删除存档", color: "cancel" });
return;
}
await TSUserAchi.delUid(uidCur.value);
uidList.value = uidList.value.filter((e) => e !== uidCur.value);
if (uidList.value.length === 0) uidList.value = [0];
uidCur.value = uidList.value[0];
}
</script>
<!-- 顶部栏跟 wrap 大概布局 -->
<style lang="css" scoped>
.achi-search {
position: relative;
@@ -318,14 +345,12 @@ async function deleteUid(): Promise<void> {
gap: 10px;
}
/* 内容区域 */
.wrap {
display: flex;
height: calc(100vh - 150px);
column-gap: 10px;
}
/* 左侧系列 */
.left-wrap {
display: flex;
width: 400px;

View File

@@ -310,6 +310,7 @@ async function restoreUiaf(dir: string): Promise<boolean> {
// 正则匹配 UIAF_xx.json
for (const file of files) {
try {
// todo 完善正则判断
const reg = new RegExp(/(.*)UIAF_d{9}.json/);
if (!file.name.match(reg)) return false;
const uid: number = Number(file.name.match(reg)![0]);