fix(achievements): 修复 dev 报错

This commit is contained in:
BTMuli
2023-03-09 16:25:55 +08:00
parent 9aab38e405
commit d6da722074
4 changed files with 41 additions and 30 deletions

View File

@@ -73,7 +73,7 @@ const router = useRouter();
const appStore = useAppStore();
const devStore = useDevStore();
const rail = ref(appStore.sidebar.expand);
const rail = ref(appStore.sidebar);
const showDev = ref(devStore.showDev);
const back = () => {
@@ -85,6 +85,7 @@ const back = () => {
};
function collapse() {
rail.value = !rail.value;
appStore.sidebar = rail.value;
}
function magicClick() {
if (!showDev.value) {

View File

@@ -3,7 +3,7 @@
<v-app-bar app>
<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 v-slot:append>
<!-- 导入按钮 -->
@@ -39,18 +39,11 @@ import { onMounted, ref } from "vue";
const appStore = useAppStore();
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
let seriesList = ref(mergeSeriesMap.getMap() as Map<TGSeriesMap>);
let achievementsList = ref(mergeAchievementMap.getMap() as Map<TGAchievementMap>);
let selectedSeries = ref(-1);
const title = ref("");
const seriesList = ref({} as Map<TGSeriesMap>);
const achievementsList = ref({} as Map<TGAchievementMap>);
const selectedSeries = ref(-1);
onMounted(async () => {
await loadData();
@@ -58,7 +51,16 @@ onMounted(async () => {
// 加载数据,数据源:合并后的本地数据
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() {
@@ -71,6 +73,12 @@ async function getTitle() {
}
// 导入 UIAF 数据,进行数据合并、刷新
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 selectedFile = await dialog.open({
multiple: false,

View File

@@ -2,13 +2,13 @@
<h1>开发</h1>
<v-card>
<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>
<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>
<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>
</v-list>
@@ -39,6 +39,10 @@ import { TGAppData } from "../data";
const appStore = useAppStore();
const devStore = useDevStore();
async function devInit() {
await devStore.init();
}
async function parseAchievement() {
const appDataDir = appStore.devPath.app;
// 读取原始数据

View File

@@ -91,18 +91,14 @@ interface CardDataType {
}
// 数据
const tab = ref("activity");
let postData = {
activity: {} as CardDataType[],
news: {} as CardDataType[],
notice: {} as CardDataType[],
};
onMounted(async () => {
await getPosts();
const tab = ref("");
const postData = ref({
activity: [] as CardDataType[],
news: [] as CardDataType[],
notice: [] as CardDataType[],
});
async function getPosts() {
onMounted(async () => {
const activityRaw: ResponseNewsList = await http
.fetch(MysNewsApi + EnumPostType.Activity)
.then(res => res.data as Promise<ResponseNewsList>);
@@ -112,13 +108,15 @@ async function getPosts() {
const noticeRaw: ResponseNewsList = await http
.fetch(MysNewsApi + EnumPostType.Notice)
.then(res => res.data as Promise<ResponseNewsList>);
postData = {
postData.value = {
activity: transData(activityRaw),
news: transData(newsRaw),
notice: transData(noticeRaw),
};
}
function transData(rawData: ResponseNewsList) {
tab.value = "activity";
});
function transData(rawData: ResponseNewsList): CardDataType[] {
let cardData: CardDataType[] = [];
rawData.data.list.map((item: ResponseNews) => {
const postData: MysPostType = item.post;