From 99a6f38c5ca025e5fa02395b7c402531635a7781 Mon Sep 17 00:00:00 2001 From: BTMuli Date: Tue, 27 Jun 2023 21:01:24 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Mys=20=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=8C=E4=BC=98=E5=8C=96=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/main/t-pool.vue | 83 ++-- src/components/main/t-position.vue | 43 +- src/components/overlay/to-calendar.vue | 7 +- src/pages/WIKI/Character.vue | 5 +- src/pages/WIKI/GCG.vue | 24 +- src/pages/WIKI/Weapon.vue | 7 +- src/plugins/Mys/api/index.ts | 20 + src/plugins/Mys/index.ts | 44 +- src/plugins/Mys/interface/base.ts | 82 ---- src/plugins/Mys/interface/gacha.ts | 97 ---- src/plugins/Mys/interface/lottery.ts | 121 ----- src/plugins/Mys/interface/news.ts | 135 ------ src/plugins/Mys/interface/position.ts | 97 ---- src/plugins/Mys/interface/post.ts | 376 --------------- src/plugins/Mys/interface/user.ts | 271 ----------- src/plugins/Mys/interface/utils.ts | 77 --- src/plugins/Mys/request/gacha.ts | 31 -- src/plugins/Mys/request/getGachaData.ts | 29 ++ src/plugins/Mys/request/getLotteryData.ts | 30 ++ src/plugins/Mys/request/getNewsList.ts | 33 ++ src/plugins/Mys/request/getPositionData.ts | 49 ++ src/plugins/Mys/request/getPostData.ts | 32 ++ src/plugins/Mys/request/lottery.ts | 32 -- src/plugins/Mys/request/news.ts | 90 ---- src/plugins/Mys/request/position.ts | 33 -- src/plugins/Mys/request/post.ts | 33 -- src/plugins/Mys/types/Base.d.ts | 30 ++ src/plugins/Mys/types/Gacha.d.ts | 103 ++++ src/plugins/Mys/types/Lottery.d.ts | 127 +++++ src/plugins/Mys/types/News.d.ts | 139 ++++++ src/plugins/Mys/types/Obc.d.ts | 52 +++ src/plugins/Mys/types/Position.d.ts | 104 +++++ src/plugins/Mys/types/Post.d.ts | 438 ++++++++++++++++++ src/plugins/Mys/types/User.d.ts | 277 +++++++++++ .../Mys/utils/{gacha.ts => getGachaCard.ts} | 40 +- src/plugins/Mys/utils/getLotteryCard.ts | 46 ++ .../Mys/utils/{news.ts => getNewsCard.ts} | 73 ++- src/plugins/Mys/utils/getPositionCard.ts | 41 ++ src/plugins/Mys/utils/lottery.ts | 47 -- .../Mys/utils/{parser.ts => parsePost.ts} | 115 ++--- src/plugins/Mys/utils/position.ts | 58 --- src/views/t-lottery.vue | 50 +- src/views/t-news.vue | 109 +++-- src/views/t-post-json.vue | 14 +- src/views/t-post.vue | 22 +- 45 files changed, 1864 insertions(+), 1902 deletions(-) create mode 100644 src/plugins/Mys/api/index.ts delete mode 100644 src/plugins/Mys/interface/base.ts delete mode 100644 src/plugins/Mys/interface/gacha.ts delete mode 100644 src/plugins/Mys/interface/lottery.ts delete mode 100644 src/plugins/Mys/interface/news.ts delete mode 100644 src/plugins/Mys/interface/position.ts delete mode 100644 src/plugins/Mys/interface/post.ts delete mode 100644 src/plugins/Mys/interface/user.ts delete mode 100644 src/plugins/Mys/interface/utils.ts delete mode 100644 src/plugins/Mys/request/gacha.ts create mode 100644 src/plugins/Mys/request/getGachaData.ts create mode 100644 src/plugins/Mys/request/getLotteryData.ts create mode 100644 src/plugins/Mys/request/getNewsList.ts create mode 100644 src/plugins/Mys/request/getPositionData.ts create mode 100644 src/plugins/Mys/request/getPostData.ts delete mode 100644 src/plugins/Mys/request/lottery.ts delete mode 100644 src/plugins/Mys/request/news.ts delete mode 100644 src/plugins/Mys/request/position.ts delete mode 100644 src/plugins/Mys/request/post.ts create mode 100644 src/plugins/Mys/types/Base.d.ts create mode 100644 src/plugins/Mys/types/Gacha.d.ts create mode 100644 src/plugins/Mys/types/Lottery.d.ts create mode 100644 src/plugins/Mys/types/News.d.ts create mode 100644 src/plugins/Mys/types/Obc.d.ts create mode 100644 src/plugins/Mys/types/Position.d.ts create mode 100644 src/plugins/Mys/types/Post.d.ts create mode 100644 src/plugins/Mys/types/User.d.ts rename src/plugins/Mys/utils/{gacha.ts => getGachaCard.ts} (58%) create mode 100644 src/plugins/Mys/utils/getLotteryCard.ts rename src/plugins/Mys/utils/{news.ts => getNewsCard.ts} (53%) create mode 100644 src/plugins/Mys/utils/getPositionCard.ts delete mode 100644 src/plugins/Mys/utils/lottery.ts rename src/plugins/Mys/utils/{parser.ts => parsePost.ts} (81%) delete mode 100644 src/plugins/Mys/utils/position.ts diff --git a/src/components/main/t-pool.vue b/src/components/main/t-pool.vue index 4efb3a8f..a5b325c1 100644 --- a/src/components/main/t-pool.vue +++ b/src/components/main/t-pool.vue @@ -5,7 +5,7 @@ 限时祈愿
- + @@ -33,12 +33,12 @@
- {{ poolTimeGet[pool.post_id] }} + {{ poolTimeGet[pool.postId] }}
@@ -64,9 +64,7 @@ import { useHomeStore } from "../../store/modules/home"; // utils import { createTGWindow } from "../../utils/TGWindow"; // plugins -import MysOper from "../../plugins/Mys"; -// interface -import { GachaCard, GachaData } from "../../plugins/Mys/interface/gacha"; +import Mys from "../../plugins/Mys"; // vue const router = useRouter(); @@ -75,18 +73,18 @@ const router = useRouter(); const homeStore = useHomeStore(); // loading -const loading = ref(true as boolean); +const loading = ref(true); // snackbar -const showBar = ref(false as boolean); -const barText = ref(""); -const barColor = ref("error" as string); +const showBar = ref(false); +const barText = ref(""); +const barColor = ref("error"); // data -const poolCards = ref([] as GachaCard[]); -const poolTimeGet = ref({} as Record); -const poolTimePass = ref({} as Record); -const poolColor = ref({} as Record); -const timer = ref({} as Record); +const poolCards = ref([]); +const poolTimeGet = ref>({}); +const poolTimePass = ref>({}); +const poolColor = ref>({}); +const timer = ref>({}); // expose defineExpose({ @@ -95,19 +93,19 @@ defineExpose({ }); function poolLastInterval(postId: number) { - const pool = poolCards.value.find((pool) => pool.post_id === postId); + const pool = poolCards.value.find((pool) => pool.postId === postId); if (!pool) return; if (poolTimeGet.value[postId] === "未开始") { - const isStart = pool.time.start_stamp - Date.now(); + const isStart = pool.time.startStamp - Date.now(); if (isStart > 0) return; - poolTimeGet.value[postId] = getLastPoolTime(pool.time.end_stamp - Date.now()); - poolTimePass.value[postId] = pool.time.end_stamp - Date.now(); + poolTimeGet.value[postId] = getLastPoolTime(pool.time.endStamp - Date.now()); + poolTimePass.value[postId] = pool.time.endStamp - Date.now(); poolColor.value[postId] = "#90caf9"; } else { - const isEnd = pool.time.end_stamp - Date.now(); + const isEnd = pool.time.endStamp - Date.now(); poolTimeGet.value[postId] = getLastPoolTime(isEnd); poolTimePass.value[postId] = - ((pool.time.end_stamp - Date.now()) / (pool.time.end_stamp - pool.time.start_stamp)) * 100; + ((pool.time.endStamp - Date.now()) / (pool.time.endStamp - pool.time.startStamp)) * 100; if (isEnd >= 0) return; clearInterval(timer.value[postId]); timer.value[postId] = null; @@ -119,38 +117,38 @@ function poolLastInterval(postId: number) { } onMounted(async () => { - const gachaData = await MysOper.Gacha.get(); + const gachaData = await Mys.Gacha.get(); if (!gachaData) { console.error("获取限时祈愿数据失败"); return; } if (!checkCover(gachaData)) { - poolCards.value = await MysOper.Gacha.card(gachaData); + poolCards.value = await Mys.Gacha.card(gachaData); const coverData: Record = {}; poolCards.value.map((pool) => { - coverData[pool.post_id] = pool.cover; + coverData[pool.postId] = pool.cover; return pool; }); homeStore.poolCover = coverData; } else { - poolCards.value = await MysOper.Gacha.card(gachaData, homeStore.poolCover); + poolCards.value = await Mys.Gacha.card(gachaData, homeStore.poolCover); } poolCards.value.map((pool) => { - poolTimeGet.value[pool.post_id] = getLastPoolTime(pool.time.end_stamp - Date.now()); - poolTimePass.value[pool.post_id] = pool.time.end_stamp - Date.now(); - if (poolTimePass.value[pool.post_id] <= 0) { - poolTimeGet.value[pool.post_id] = "已结束"; - poolTimePass.value[pool.post_id] = 100; - poolColor.value[pool.post_id] = "#f44336"; - } else if (pool.time.start_stamp - Date.now() > 0) { - poolTimeGet.value[pool.post_id] = "未开始"; - poolTimePass.value[pool.post_id] = 100; - poolColor.value[pool.post_id] = "#32A9CA"; + poolTimeGet.value[pool.postId] = getLastPoolTime(pool.time.endStamp - Date.now()); + poolTimePass.value[pool.postId] = pool.time.endStamp - Date.now(); + if (poolTimePass.value[pool.postId] <= 0) { + poolTimeGet.value[pool.postId] = "已结束"; + poolTimePass.value[pool.postId] = 100; + poolColor.value[pool.postId] = "#f44336"; + } else if (pool.time.startStamp - Date.now() > 0) { + poolTimeGet.value[pool.postId] = "未开始"; + poolTimePass.value[pool.postId] = 100; + poolColor.value[pool.postId] = "#32A9CA"; } else { - poolColor.value[pool.post_id] = "#90caf9"; + poolColor.value[pool.postId] = "#90caf9"; } - timer.value[pool.post_id] = setInterval(() => { - poolLastInterval(pool.post_id); + timer.value[pool.postId] = setInterval(() => { + poolLastInterval(pool.postId); }, 1000); return pool; }); @@ -158,7 +156,7 @@ onMounted(async () => { }); // 检测新卡池 -function checkCover(data: GachaData[]) { +function checkCover(data: TGApp.Plugins.Mys.Gacha.Data[]) { // 如果没有缓存 if (!homeStore.poolCover || Object.keys(homeStore.poolCover).length === 0) { return false; @@ -199,12 +197,11 @@ function getLastPoolTime(time: number) { return `${hour}:${minute.toFixed(0).padStart(2, "0")}:${second.toFixed(0).padStart(2, "0")}`; } -function toPost(pool: GachaCard) { +function toPost(pool: TGApp.Plugins.Mys.Gacha.RenderCard) { const path = router.resolve({ name: "帖子详情", params: { - // eslint-disable-next-line camelcase - post_id: pool.post_id.toString(), + post_id: pool.postId.toString(), }, }).href; createTGWindow(path, "限时祈愿", pool.title, 960, 720, false, false); diff --git a/src/components/main/t-position.vue b/src/components/main/t-position.vue index 86779dcc..ca0b68b6 100644 --- a/src/components/main/t-position.vue +++ b/src/components/main/t-position.vue @@ -5,7 +5,7 @@ 近期活动
- +