mirror of
https://github.com/BTMuli/TeyvatGuide.git
synced 2025-12-15 09:48:14 +08:00
fix(achievements): 修复 dev 报错
This commit is contained in:
@@ -73,7 +73,7 @@ const router = useRouter();
|
|||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const devStore = useDevStore();
|
const devStore = useDevStore();
|
||||||
|
|
||||||
const rail = ref(appStore.sidebar.expand);
|
const rail = ref(appStore.sidebar);
|
||||||
const showDev = ref(devStore.showDev);
|
const showDev = ref(devStore.showDev);
|
||||||
|
|
||||||
const back = () => {
|
const back = () => {
|
||||||
@@ -85,6 +85,7 @@ const back = () => {
|
|||||||
};
|
};
|
||||||
function collapse() {
|
function collapse() {
|
||||||
rail.value = !rail.value;
|
rail.value = !rail.value;
|
||||||
|
appStore.sidebar = rail.value;
|
||||||
}
|
}
|
||||||
function magicClick() {
|
function magicClick() {
|
||||||
if (!showDev.value) {
|
if (!showDev.value) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<v-app-bar app>
|
<v-app-bar app>
|
||||||
<template v-slot:prepend>
|
<template v-slot:prepend>
|
||||||
<!-- 标题 -->
|
<!-- 标题 -->
|
||||||
<v-card-text class="text-h5">{{ getTitle() }}</v-card-text>
|
<v-card-text class="text-h5">{{ title }}</v-card-text>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:append>
|
<template v-slot:append>
|
||||||
<!-- 导入按钮 -->
|
<!-- 导入按钮 -->
|
||||||
@@ -39,18 +39,11 @@ import { onMounted, ref } from "vue";
|
|||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const achievementsStore = useAchievementsStore();
|
const achievementsStore = useAchievementsStore();
|
||||||
|
|
||||||
// FileData
|
|
||||||
const mergeAchievementMap: TGMap<TGAchievementMap> = new TGMap<TGAchievementMap>(
|
|
||||||
JSON.parse(await fs.readTextFile(appStore.mergePath.achievements))
|
|
||||||
);
|
|
||||||
const mergeSeriesMap: TGMap<TGSeriesMap> = new TGMap<TGSeriesMap>(
|
|
||||||
JSON.parse(await fs.readTextFile(appStore.mergePath.achievementSeries))
|
|
||||||
);
|
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
let seriesList = ref(mergeSeriesMap.getMap() as Map<TGSeriesMap>);
|
const title = ref("");
|
||||||
let achievementsList = ref(mergeAchievementMap.getMap() as Map<TGAchievementMap>);
|
const seriesList = ref({} as Map<TGSeriesMap>);
|
||||||
let selectedSeries = ref(-1);
|
const achievementsList = ref({} as Map<TGAchievementMap>);
|
||||||
|
const selectedSeries = ref(-1);
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await loadData();
|
await loadData();
|
||||||
@@ -58,7 +51,16 @@ onMounted(async () => {
|
|||||||
|
|
||||||
// 加载数据,数据源:合并后的本地数据
|
// 加载数据,数据源:合并后的本地数据
|
||||||
async function loadData() {
|
async function loadData() {
|
||||||
await achievementsStore.flushData(mergeSeriesMap);
|
const mergeAchievementMap: TGMap<TGAchievementMap> = new TGMap<TGAchievementMap>(
|
||||||
|
JSON.parse(await fs.readTextFile(appStore.mergePath.achievements))
|
||||||
|
);
|
||||||
|
const mergeSeriesMap: TGMap<TGSeriesMap> = new TGMap<TGSeriesMap>(
|
||||||
|
JSON.parse(await fs.readTextFile(appStore.mergePath.achievementSeries))
|
||||||
|
);
|
||||||
|
seriesList.value = mergeSeriesMap.getMap();
|
||||||
|
achievementsList.value = mergeAchievementMap.getMap();
|
||||||
|
achievementsStore.flushData(mergeSeriesMap);
|
||||||
|
title.value = await getTitle();
|
||||||
}
|
}
|
||||||
// 获取标题
|
// 获取标题
|
||||||
async function getTitle() {
|
async function getTitle() {
|
||||||
@@ -71,6 +73,12 @@ async function getTitle() {
|
|||||||
}
|
}
|
||||||
// 导入 UIAF 数据,进行数据合并、刷新
|
// 导入 UIAF 数据,进行数据合并、刷新
|
||||||
async function importJson() {
|
async function importJson() {
|
||||||
|
const mergeAchievementMap: TGMap<TGAchievementMap> = new TGMap<TGAchievementMap>(
|
||||||
|
JSON.parse(await fs.readTextFile(appStore.mergePath.achievements))
|
||||||
|
);
|
||||||
|
const mergeSeriesMap: TGMap<TGSeriesMap> = new TGMap<TGSeriesMap>(
|
||||||
|
JSON.parse(await fs.readTextFile(appStore.mergePath.achievementSeries))
|
||||||
|
);
|
||||||
const localPath = appStore.userPath.achievements;
|
const localPath = appStore.userPath.achievements;
|
||||||
const selectedFile = await dialog.open({
|
const selectedFile = await dialog.open({
|
||||||
multiple: false,
|
multiple: false,
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
<h1>开发</h1>
|
<h1>开发</h1>
|
||||||
<v-card>
|
<v-card>
|
||||||
<v-list>
|
<v-list>
|
||||||
<v-list-item @click="devStore.init()" prepend-icon="mdi-refresh">
|
<v-list-item @click="devInit" prepend-icon="mdi-refresh">
|
||||||
<v-list-item-title>初始化开发</v-list-item-title>
|
<v-list-item-title>初始化开发</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
<v-list-item @click="parseAchievement()" prepend-icon="mdi-export">
|
<v-list-item @click="parseAchievement" prepend-icon="mdi-export">
|
||||||
<v-list-item-title>解析成就数据</v-list-item-title>
|
<v-list-item-title>解析成就数据</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
<v-list-item @click="mergeAchievement()" prepend-icon="mdi-export">
|
<v-list-item @click="mergeAchievement" prepend-icon="mdi-export">
|
||||||
<v-list-item-title>合并成就数据</v-list-item-title>
|
<v-list-item-title>合并成就数据</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
</v-list>
|
</v-list>
|
||||||
@@ -39,6 +39,10 @@ import { TGAppData } from "../data";
|
|||||||
const appStore = useAppStore();
|
const appStore = useAppStore();
|
||||||
const devStore = useDevStore();
|
const devStore = useDevStore();
|
||||||
|
|
||||||
|
async function devInit() {
|
||||||
|
await devStore.init();
|
||||||
|
}
|
||||||
|
|
||||||
async function parseAchievement() {
|
async function parseAchievement() {
|
||||||
const appDataDir = appStore.devPath.app;
|
const appDataDir = appStore.devPath.app;
|
||||||
// 读取原始数据
|
// 读取原始数据
|
||||||
|
|||||||
@@ -91,18 +91,14 @@ interface CardDataType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 数据
|
// 数据
|
||||||
const tab = ref("activity");
|
const tab = ref("");
|
||||||
let postData = {
|
const postData = ref({
|
||||||
activity: {} as CardDataType[],
|
activity: [] as CardDataType[],
|
||||||
news: {} as CardDataType[],
|
news: [] as CardDataType[],
|
||||||
notice: {} as CardDataType[],
|
notice: [] as CardDataType[],
|
||||||
};
|
|
||||||
|
|
||||||
onMounted(async () => {
|
|
||||||
await getPosts();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
async function getPosts() {
|
onMounted(async () => {
|
||||||
const activityRaw: ResponseNewsList = await http
|
const activityRaw: ResponseNewsList = await http
|
||||||
.fetch(MysNewsApi + EnumPostType.Activity)
|
.fetch(MysNewsApi + EnumPostType.Activity)
|
||||||
.then(res => res.data as Promise<ResponseNewsList>);
|
.then(res => res.data as Promise<ResponseNewsList>);
|
||||||
@@ -112,13 +108,15 @@ async function getPosts() {
|
|||||||
const noticeRaw: ResponseNewsList = await http
|
const noticeRaw: ResponseNewsList = await http
|
||||||
.fetch(MysNewsApi + EnumPostType.Notice)
|
.fetch(MysNewsApi + EnumPostType.Notice)
|
||||||
.then(res => res.data as Promise<ResponseNewsList>);
|
.then(res => res.data as Promise<ResponseNewsList>);
|
||||||
postData = {
|
postData.value = {
|
||||||
activity: transData(activityRaw),
|
activity: transData(activityRaw),
|
||||||
news: transData(newsRaw),
|
news: transData(newsRaw),
|
||||||
notice: transData(noticeRaw),
|
notice: transData(noticeRaw),
|
||||||
};
|
};
|
||||||
}
|
tab.value = "activity";
|
||||||
function transData(rawData: ResponseNewsList) {
|
});
|
||||||
|
|
||||||
|
function transData(rawData: ResponseNewsList): CardDataType[] {
|
||||||
let cardData: CardDataType[] = [];
|
let cardData: CardDataType[] = [];
|
||||||
rawData.data.list.map((item: ResponseNews) => {
|
rawData.data.list.map((item: ResponseNews) => {
|
||||||
const postData: MysPostType = item.post;
|
const postData: MysPostType = item.post;
|
||||||
|
|||||||
Reference in New Issue
Block a user