🌱 留影叙佳期备份页 #98

This commit is contained in:
目棃
2024-03-08 00:34:55 +08:00
parent 44699308b7
commit c22a454551
15 changed files with 3841 additions and 24 deletions

View File

@@ -83,7 +83,7 @@
"vue-echarts": "^6.6.9",
"vue-json-viewer": "^3.0.4",
"vue-router": "^4.3.0",
"vuetify": "^3.5.5",
"vuetify": "^3.5.8",
"wcag-color": "^1.1.1"
},
"devDependencies": {

22
pnpm-lock.yaml generated
View File

@@ -60,8 +60,8 @@ dependencies:
specifier: ^4.3.0
version: 4.3.0(vue@3.4.19)
vuetify:
specifier: ^3.5.5
version: 3.5.5(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19)
specifier: ^3.5.8
version: 3.5.8(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19)
wcag-color:
specifier: ^1.1.1
version: 1.1.1
@@ -171,7 +171,7 @@ devDependencies:
version: 7.0.15(vite@5.1.4)(vue@3.4.19)
vite-plugin-vuetify:
specifier: ^2.0.1
version: 2.0.1(vite@5.1.4)(vue@3.4.19)(vuetify@3.5.5)
version: 2.0.1(vite@5.1.4)(vue@3.4.19)(vuetify@3.5.8)
yaml-eslint-parser:
specifier: ^1.2.2
version: 1.2.2
@@ -1579,7 +1579,7 @@ packages:
/@vue/shared@3.4.19:
resolution: {integrity: sha512-/KliRRHMF6LoiThEy+4c1Z4KB/gbPrGjWwJR+crg2otgrf/egKzRaCPvJ51S5oetgsgXLfc4Rm5ZgrKHZrtMSw==}
/@vuetify/loader-shared@2.0.1(vue@3.4.19)(vuetify@3.5.5):
/@vuetify/loader-shared@2.0.1(vue@3.4.19)(vuetify@3.5.8):
resolution: {integrity: sha512-zy5/ohEO7RcJaWYu2Xiy8TBEOkTb42XvWvSAJwXAtY8OlwqyGhzzBp9OvMVjLGIuFXumBpXKlsaVIkeN0OWWSw==}
peerDependencies:
vue: ^3.0.0
@@ -1587,7 +1587,7 @@ packages:
dependencies:
upath: 2.0.1
vue: 3.4.19(typescript@5.3.3)
vuetify: 3.5.5(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19)
vuetify: 3.5.8(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19)
/acorn-jsx@5.3.2(acorn@8.11.2):
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
@@ -4873,7 +4873,7 @@ packages:
- supports-color
dev: true
/vite-plugin-vuetify@2.0.1(vite@5.1.4)(vue@3.4.19)(vuetify@3.5.5):
/vite-plugin-vuetify@2.0.1(vite@5.1.4)(vue@3.4.19)(vuetify@3.5.8):
resolution: {integrity: sha512-GlRVAruohE8b0FqmeYYh1cYg3n8THGOv066uMA44qLv9uhUxSLw55CS7fi2yU0wH363TJ2vq36zUsPTjRFrjGQ==}
engines: {node: ^18.0.0 || >=20.0.0}
peerDependencies:
@@ -4881,12 +4881,12 @@ packages:
vue: ^3.0.0
vuetify: ^3.0.0
dependencies:
'@vuetify/loader-shared': 2.0.1(vue@3.4.19)(vuetify@3.5.5)
'@vuetify/loader-shared': 2.0.1(vue@3.4.19)(vuetify@3.5.8)
debug: 4.3.4
upath: 2.0.1
vite: 5.1.4(@types/node@20.11.20)
vue: 3.4.19(typescript@5.3.3)
vuetify: 3.5.5(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19)
vuetify: 3.5.8(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19)
transitivePeerDependencies:
- supports-color
@@ -5026,8 +5026,8 @@ packages:
'@vue/shared': 3.4.19
typescript: 5.3.3
/vuetify@3.5.5(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19):
resolution: {integrity: sha512-WENee4TkmWmwMEtmAHaljQZjR2AdmK1zetzH2rpEhlvkiTDEuIB0yKLGBv+vshH0XBRS84cf7uSjfceOvAhhSQ==}
/vuetify@3.5.8(typescript@5.3.3)(vite-plugin-vuetify@2.0.1)(vue@3.4.19):
resolution: {integrity: sha512-8nGS+lKejZkev55HFwIfsRt+9fOqbeDQNmXxfmLKAlnUT8FtynVwbjAwHMtX/OQAQ3ZwRaR1ptqQQmx3OgxzbQ==}
engines: {node: ^12.20 || >=14.13}
peerDependencies:
typescript: '>=4.7'
@@ -5046,7 +5046,7 @@ packages:
optional: true
dependencies:
typescript: 5.3.3
vite-plugin-vuetify: 2.0.1(vite@5.1.4)(vue@3.4.19)(vuetify@3.5.5)
vite-plugin-vuetify: 2.0.1(vite@5.1.4)(vue@3.4.19)(vuetify@3.5.8)
vue: 3.4.19(typescript@5.3.3)
/wcag-color@1.1.1:

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -15,7 +15,7 @@
</template>
</v-list-item>
<!-- 菜单项 -->
<v-list-item value="home" :link="true" href="/" :title.attr="'首页'">
<v-list-item :title.attr="'首页'" value="home" :link="true" href="/">
<template #title>首页</template>
<template #prepend>
<img src="/source/UI/paimon.webp" alt="homeIcon" class="side-icon paimon" />
@@ -163,6 +163,17 @@
</v-list-item>
</v-list>
</v-menu>
<v-list-item
:title.attr="'留影叙佳期'"
value="archive-birthday"
:link="true"
href="/archive/birthday"
>
<template #title>留影叙佳期</template>
<template #prepend>
<img src="/source/UI/act_birthday.png" alt="archive_birthday_icon" class="side-icon" />
</template>
</v-list-item>
<div class="bottom-menu">
<v-menu :open-on-click="true" location="end">
<template #activator="{ props }">
@@ -304,10 +315,6 @@ function login(): void {
});
}
async function codeScan(detectedCodes): Promise<void> {
console.log("codeScan", detectedCodes);
}
onUnmounted(() => {
themeListener();
});

View File

@@ -65,7 +65,6 @@
import { ref, onMounted, onUnmounted } from "vue";
import { useRouter } from "vue-router";
import { AppCharacterData } from "../../data";
import Mys from "../../plugins/Mys";
import { useHomeStore } from "../../store/modules/home";
import { createPost, createTGWindow } from "../../utils/TGWindow";

View File

@@ -17,7 +17,7 @@ const textColor = computed(() => {
if (!props.data || !props.data.days) return "var(--tgc-blue-2)";
const days = props.data.days;
const day = new Date().getDay();
if (day === 0 || days.includes(day.toString())) return "var(--tgc-pink-1)";
if (day === 0 || days.includes(day)) return "var(--tgc-pink-1)";
return "var(--tgc-blue-2)";
});
</script>

View File

@@ -0,0 +1,446 @@
{
"1": [
{
"role_id": 10000039,
"name": "迪奥娜",
"role_birthday": "1/18",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/05679c9962fd54a4de2666d3bef2a134_2427497782284089493.png",
"is_subscribe": true
},
{
"role_id": 10000045,
"name": "罗莎莉亚",
"role_birthday": "1/24",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/66042545a052ebf57a0c631e7d446090_4203031452652142260.png",
"is_subscribe": true
},
{
"role_id": 10000050,
"name": "托马",
"role_birthday": "1/9",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/2a96bca659bcb6951f81737e1a7a3a93_5782948101374592251.png",
"is_subscribe": true
},
{
"role_id": 10000075,
"name": "流浪者",
"role_birthday": "1/3",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/12/16/149d46e87b7805b916f24d8fa426dc4f_7980041467691988039.png",
"is_subscribe": true
}
],
"2": [
{
"role_id": 10000024,
"name": "北斗",
"role_birthday": "2/14",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/22204dda59512c8a5b35d20c017a5193_1871773170805398287.png",
"is_subscribe": true
},
{
"role_id": 10000032,
"name": "班尼特",
"role_birthday": "2/29",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/dd311c7d5598ea1b62f6a57e35597aa4_4480671453733501864.png",
"is_subscribe": true
},
{
"role_id": 10000054,
"name": "珊瑚宫心海",
"role_birthday": "2/22",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/1987e71779ee95abef18be97b79e0104_4521215417254992430.png",
"is_subscribe": true
}
],
"3": [
{
"role_id": 10000003,
"name": "琴",
"role_birthday": "3/14",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/03/14/f1b50706030675277cafd6bbf3f7823f_3094026770145526314.png",
"is_subscribe": true
},
{
"role_id": 10000034,
"name": "诺艾尔",
"role_birthday": "3/21",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/4ec7ddb18da3556c9c72b0ada7697ecf_4860846387056216251.png",
"is_subscribe": true
},
{
"role_id": 10000035,
"name": "七七",
"role_birthday": "3/3",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/04b61b747ddb7507c3c9aa6d1b41997d_6466358702657229529.png",
"is_subscribe": true
},
{
"role_id": 10000063,
"name": "申鹤",
"role_birthday": "3/10",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/11df1956c9afddc976871f5cd18f3e55_1882264082162153303.png",
"is_subscribe": true
},
{
"role_id": 10000066,
"name": "神里绫人",
"role_birthday": "3/26",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/03/30/0496e0c13ca5fa8f378fc55df1eea3fe_4076052981305794654.png",
"is_subscribe": true
}
],
"4": [
{
"role_id": 10000016,
"name": "迪卢克",
"role_birthday": "4/30",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/03/14/eea6ce40cb37799f89e97dbadf9157d4_1880203548262197077.png",
"is_subscribe": true
},
{
"role_id": 10000026,
"name": "魈",
"role_birthday": "4/17",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/1f921c6295f98f98c6dbcb8c72d0a32d_920080275698026207.png",
"is_subscribe": true
},
{
"role_id": 10000060,
"name": "夜兰",
"role_birthday": "4/20",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/09/13/ed74fcd862ff9bc4d73347724e8ba693_7444591801787948295.png",
"is_subscribe": true
}
],
"5": [
{
"role_id": 10000031,
"name": "菲谢尔",
"role_birthday": "5/27",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/f7b2718beeb8aa5b6573bd4e1d9463b9_3495984559760798145.png",
"is_subscribe": true
},
{
"role_id": 10000055,
"name": "五郎",
"role_birthday": "5/18",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/30bc73cc884f78655d0e9c729c865f43_2572415383439957784.png",
"is_subscribe": true
},
{
"role_id": 10000064,
"name": "云堇",
"role_birthday": "5/21",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/1f9b0724ab51b5181e3a5f7269e549d6_767077575275095470.png",
"is_subscribe": true
},
{
"role_id": 10000067,
"name": "柯莱",
"role_birthday": "5/8",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/09/13/83a9c296217893e9af675497f8aa6f85_7316921063422802893.png",
"is_subscribe": true
},
{
"role_id": 10000072,
"name": "坎蒂丝",
"role_birthday": "5/3",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/11/21/56151c2f9e79d9efb4489be04afb4639_2964652110904806138.png",
"is_subscribe": true
}
],
"6": [
{
"role_id": -1,
"name": "派蒙",
"role_birthday": "6/1",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/9b145c0c4d88bc2929ea99d0534b812f_5583948209845106042.png",
"is_subscribe": true
},
{
"role_id": 10000006,
"name": "丽莎",
"role_birthday": "6/9",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/03/14/0dd41810b5d35e54e54c9df256b95bde_8244826722190419121.png",
"is_subscribe": true
},
{
"role_id": 10000022,
"name": "温迪",
"role_birthday": "6/16",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/78ebb331495385322de259ee80f82492_7775816679283264612.png",
"is_subscribe": true
},
{
"role_id": 10000049,
"name": "宵宫",
"role_birthday": "6/21",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/f634af08084be0a075bf5b03776157ba_5538059042307006334.png",
"is_subscribe": true
},
{
"role_id": 10000052,
"name": "雷电将军",
"role_birthday": "6/26",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/c6f6c4d0beef79e456671bd54e22371c_7132785758367907766.png",
"is_subscribe": true
},
{
"role_id": 10000057,
"name": "荒泷一斗",
"role_birthday": "6/1",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/33594d138995e8dcd18ef6eca21e29e1_5833973899387063282.png",
"is_subscribe": true
},
{
"role_id": 10000058,
"name": "八重神子",
"role_birthday": "6/27",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/ad570995be64c8662c1ba95ab5af1d5c_4512120573239183654.png",
"is_subscribe": true
},
{
"role_id": 10000071,
"name": "赛诺",
"role_birthday": "6/23",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/11/21/dfb2cb828138c8b79390ba5e10f2ffd2_1575691290377981976.png",
"is_subscribe": true
}
],
"7": [
{
"role_id": 10000014,
"name": "芭芭拉",
"role_birthday": "7/5",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/40ac5e95d40ceb392e83582d7f2817a9_8078446689869362867.png",
"is_subscribe": true
},
{
"role_id": 10000029,
"name": "可莉",
"role_birthday": "7/27",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/14d919badc3ce82ea4396545f2dd6027_391183174961162855.png",
"is_subscribe": true
},
{
"role_id": 10000033,
"name": "达达利亚",
"role_birthday": "7/20",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/eaf5281d523d1c825f1b8b9625312601_2965241403901684959.png",
"is_subscribe": true
},
{
"role_id": 10000046,
"name": "胡桃",
"role_birthday": "7/15",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/6d12d1f75f8f30f576d371ef1f818885_1496180927996923875.png",
"is_subscribe": true
},
{
"role_id": 10000048,
"name": "烟绯",
"role_birthday": "7/28",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/587b34181effb00cbd25ef9938a623cd_6253710526162637141.png",
"is_subscribe": true
},
{
"role_id": 10000056,
"name": "九条裟罗",
"role_birthday": "7/14",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/4982f771fb4d62e719f93452a87283c6_8786878764960347655.png",
"is_subscribe": true
},
{
"role_id": 10000059,
"name": "鹿野院平藏",
"role_birthday": "7/24",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/07/13/79ea4b1fdf861accae277279186edb50_5159300215311263819.png",
"is_subscribe": true
},
{
"role_id": 10000065,
"name": "久岐忍",
"role_birthday": "7/27",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/06/20/d25065cdd0f2e16f6b5c3f28a343b492_7181900211254841503.png",
"is_subscribe": true
}
],
"8": [
{
"role_id": 10000021,
"name": "安柏",
"role_birthday": "8/10",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/676e4cba01b3bc79a24a8d034f784009_6702923680561346568.png",
"is_subscribe": true
},
{
"role_id": 10000027,
"name": "凝光",
"role_birthday": "8/26",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/2869460b1bd922a0c005e4f4f5076041_7221739942442261136.png",
"is_subscribe": true
},
{
"role_id": 10000041,
"name": "莫娜",
"role_birthday": "8/31",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/ef5259d534990bc0fa3784ad66dde03a_4978042498865211603.png",
"is_subscribe": true
},
{
"role_id": 10000076,
"name": "珐露珊",
"role_birthday": "8/20",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/12/16/e472a6c16e5af333cc49fef339dc71b5_5881966747313782097.png",
"is_subscribe": true
}
],
"9": [
{
"role_id": 10000002,
"name": "神里绫华",
"role_birthday": "9/28",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/b6f195649a0e9534186d1e45cd24f6a0_7073949618149706539.png",
"is_subscribe": true
},
{
"role_id": 10000020,
"name": "雷泽",
"role_birthday": "9/9",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/f82bc068ff8d1e5966b5c806b546505b_3138284627086354787.png",
"is_subscribe": true
},
{
"role_id": 10000036,
"name": "重云",
"role_birthday": "9/7",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/7a8da06f361ac182ea89311bf15211c9_2154078965934195499.png",
"is_subscribe": true
},
{
"role_id": 10000038,
"name": "阿贝多",
"role_birthday": "9/13",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/879e228684643d5c269ea46fb8f87a2d_8262390748306210857.png",
"is_subscribe": true
}
],
"10": [
{
"role_id": 10000025,
"name": "行秋",
"role_birthday": "10/9",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/e5a69c077a9d8b1bec78140fea4850ea_1138386718612757747.png",
"is_subscribe": true
},
{
"role_id": 10000044,
"name": "辛焱",
"role_birthday": "10/16",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/40a3d06a8bec53fbdf1e6097706a5fb1_8505167500900981828.png",
"is_subscribe": true
},
{
"role_id": 10000047,
"name": "枫原万叶",
"role_birthday": "10/29",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/f0ac5f716fad737e2413165ed10e39a7_2249057826858498337.png",
"is_subscribe": true
},
{
"role_id": 10000051,
"name": "优菈",
"role_birthday": "10/25",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/6e1c215000c28626b0334bffdacad9eb_7258101385567508094.png",
"is_subscribe": true
},
{
"role_id": 10000053,
"name": "早柚",
"role_birthday": "10/19",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/696cf2ea885d0f836cfa67e76355c955_5041797225394354184.png",
"is_subscribe": true
},
{
"role_id": 10000073,
"name": "纳西妲",
"role_birthday": "10/27",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/11/21/e8b642a3fda4c4aa67232a3dd120c490_6184638667025833225.png",
"is_subscribe": true
}
],
"11": [
{
"role_id": 10000015,
"name": "凯亚",
"role_birthday": "11/30",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/03/14/02ae95498a9f2fac96bf622d4867e00f_2003922267451938697.png",
"is_subscribe": true
},
{
"role_id": 10000023,
"name": "香菱",
"role_birthday": "11/2",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/0d27478a04d52bdf6dffd21b895e11b9_2474147698707133278.png",
"is_subscribe": true
},
{
"role_id": 10000042,
"name": "刻晴",
"role_birthday": "11/20",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/e058dbbd8aa485eee10511962bc0d49c_4150490636421778681.png",
"is_subscribe": true
},
{
"role_id": 10000043,
"name": "砂糖",
"role_birthday": "11/26",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/bba7cf971fd63b7a65312ce946da1755_362828863795999201.png",
"is_subscribe": true
}
],
"12": [
{
"role_id": 10000030,
"name": "钟离",
"role_birthday": "12/31",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/c1e535b5f11b1543cd9b8a1f47de740f_2109808831807282889.png",
"is_subscribe": true
},
{
"role_id": 10000037,
"name": "甘雨",
"role_birthday": "12/2",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/02/24/b8f6c053b3d4372de8da9cc00dac6b8d_1480530930974442487.png",
"is_subscribe": true
},
{
"role_id": 10000068,
"name": "多莉",
"role_birthday": "12/21",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/09/13/8eea93b99ecac47c45df3b87335c10c5_8049071345012609907.png",
"is_subscribe": true
},
{
"role_id": 10000069,
"name": "提纳里",
"role_birthday": "12/29",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/09/13/0b6d40e40804f19a43bd7376bf4591f0_5299390755932718720.png",
"is_subscribe": true
},
{
"role_id": 10000070,
"name": "妮露",
"role_birthday": "12/3",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/11/21/0218c45665769aa1e30698df46432518_1418696763840260481.png",
"is_subscribe": true
},
{
"role_id": 10000074,
"name": "莱依拉",
"role_birthday": "12/19",
"head_icon": "https://webstatic.mihoyo.com/upload/static-resource/2022/11/21/481ab7c8ec92170c3159017c3f2cfc36_8829963866565670667.png",
"is_subscribe": true
}
]
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,6 +4,7 @@
* @since Beta v0.4.4
*/
// 应用数据
import achievements from "./app/achievements.json";
import achievementSeries from "./app/achievementSeries.json";
import calendar from "./app/calendar.json";
@@ -12,6 +13,11 @@ import gacha from "./app/gacha.json";
import GCG from "./app/GCG.json";
import nameCards from "./app/namecard.json";
import weapon from "./app/weapon.json";
// 存档数据
import arcBirCalendar from "./archive/birth_calendar.json";
import arcBirDraw from "./archive/birth_draw.json";
import arcBirRole from "./archive/birth_role.json";
// Wiki 数据
import wikiCharacter from "./WIKI/character.json";
import wikiMaterial from "./WIKI/material.json";
import wikiWeapon from "./WIKI/weapon.json";
@@ -24,6 +30,9 @@ export const AppGachaData: TGApp.App.Gacha.PoolItem[] = gacha;
export const AppGCGData: TGApp.App.GCG.WikiBriefInfo[] = GCG;
export const AppNameCardsData: TGApp.App.NameCard.Item[] = nameCards;
export const AppWeaponData: TGApp.App.Weapon.WikiBriefInfo[] = weapon;
export const ArcBirCalendar: TGApp.Archive.Birth.CalendarData = arcBirCalendar;
export const ArcBirDraw: TGApp.Archive.Birth.DrawItem[] = arcBirDraw;
export const ArcBirRole: TGApp.Archive.Birth.RoleItem[] = arcBirRole;
export const WikiCharacterData: TGApp.App.Character.WikiItem[] = wikiCharacter;
export const WikiWeaponData: TGApp.App.Weapon.WikiItem[] = wikiWeapon;
export const WikiMaterialData: TGApp.App.Material.WikiItem[] = wikiMaterial;

View File

@@ -0,0 +1,60 @@
<template>
<div class="ab-container">
<div class="ab-draw-grid">
<div
v-for="item in selectedItem"
:key="`${item.birthday}_${item.role_id}`"
class="ab-draw-item"
>
<v-img :src="item.take_picture" :lazy-src="item.unread_picture" />
<span>{{ item.year }} {{ item.birthday }} {{ item.role_name }}</span>
</div>
</div>
<v-pagination v-model="page" :length="length" />
</div>
</template>
<script lang="ts" setup>
import { onMounted, ref, watch, watchEffect } from "vue";
import { ArcBirDraw } from "../../data";
const page = ref(1);
const length = ref(0);
const selectedItem = ref<TGApp.Archive.Birth.DrawItem[]>(ArcBirDraw);
watch(page, (val) => {
const start = (val - 1) * 12;
const end = start + 12;
selectedItem.value = ArcBirDraw.slice(start, end);
});
watchEffect(() => {
selectedItem.value = ArcBirDraw.slice(0, 12);
});
onMounted(() => {
length.value = Math.ceil(ArcBirDraw.length / 12);
});
</script>
<style lang="css" scoped>
.ab-container {
display: flex;
height: 100%;
flex-direction: column;
align-items: center;
padding: 20px;
}
.ab-draw-grid {
position: relative;
display: grid;
width: 100%;
height: 100%;
column-gap: 10px;
grid-template-columns: repeat(4, 1fr);
}
.ab-draw-item {
text-align: center;
}
</style>

View File

@@ -0,0 +1,15 @@
/**
* @file router/modules/archive.ts
* @description 存档路由模块
* @since Beta v0.4.4
*/
const archiveRoutes = [
{
path: "/archive/birthday",
name: "留影叙佳期",
component: async () => await import("../../pages/Archive/Birthday.vue"),
},
];
export default archiveRoutes;

View File

@@ -1,15 +1,16 @@
/**
* @file router routes.ts
* @description 路由配置
* @since Alpha v0.2.0
* @since Beta v0.4.4
*/
import archiveRoutes from "./modules/archive";
import mainRoutes from "./modules/main";
import subRoutes from "./modules/sub";
import userRoutes from "./modules/user";
import wikiRoutes from "./modules/wiki";
// 合并路由
const routes = [...mainRoutes, ...subRoutes, ...wikiRoutes, ...userRoutes];
const routes = [...mainRoutes, ...subRoutes, ...archiveRoutes, ...wikiRoutes, ...userRoutes];
export default routes;

View File

@@ -30,17 +30,17 @@ declare namespace TGApp.App.Material {
/**
* @description 材料来源
* @since Beta v0.4.2
* @since Beta v0.4.4
* @interface Source
* @property {string} name - 来源名称
* @property {string} type - 来源类型
* @property {string[]} days - 来源日
* @property {number[]} days - 来源日
* @return Source
*/
interface Source {
name: string;
type: string;
days?: string[];
days?: number[];
}
/**

120
src/types/Archive/Birth.d.ts vendored Normal file
View File

@@ -0,0 +1,120 @@
/**
* @file types/Archive/Birth.d.ts
* @description 存档-留影叙佳期-数据类型
* @since Beta v0.4.4
*/
/**
* @description 存档-留影叙佳期-命名空间
* @since Beta v0.4.4
* @namespace TGApp.Archive.Birth
* @memberof TGApp.Archive
*/
declare namespace TGApp.Archive.Birth {
/**
* @description 日历数据
* @since Beta v0.4.4
* @interface CalendarData
* @returns CalendarData
*/
type CalendarData = Record<string, CalendarItem[]>;
/**
* @description 日历数据-条目
* @since Beta v0.4.4
* @interface CalendarItem
* @property {number} role_id 角色ID
* @property {string} name 角色名
* @property {string} role_birthday 角色生日
* @property {string} head_icon 头像
* @property {boolean} is_subscribe 是否订阅
* @returns CalendarItem
*/
interface CalendarItem {
role_id: number;
name: string;
role_birthday: string;
head_icon: string;
is_subscribe: boolean;
}
/**
* @description 卡片数据条目
* @since Beta v0.4.4
* @interface DrawItem
* @property {string} draw_status - 画片状态
* @property {string} take_picture - 画片地址
* @property {string} unread_picture - 未读画片地址
* @property {string} word_text - 留言
* @property {number} year - 年份
* @property {string} birthday - 生日 m/d
* @property {boolean} is_new - 是否新画片
* @property {number} role_id - 角色 id
* @property {string} gal_xml - 画片 xml
* @property {string} gal_resource - 画片资源
* @property {boolean} is_collected - 是否收藏
* @property {number} op_id - 操作 id
* @property {boolean} is_compensate - 是否补偿
* @property {string} role_name - 角色名
* @returns DrawItem
*/
interface DrawItem {
draw_status: string;
take_picture: string;
unread_picture: string;
word_text: string;
year: number;
birthday: string;
is_new: boolean;
role_id: number;
gal_xml: string;
gal_resource: string;
is_collected: boolean;
op_id: number;
is_compensate: boolean;
role_name: string;
}
/**
* @description 角色数据条目
* @since Beta v0.4.4
* @interface RoleItem
* @property {number} role_id - 角色 id
* @property {string} name - 角色名
* @property {string} belong - 所属
* @property {string} divine_type - 神力类型
* @property {boolean} is_god - 是否是神
* @property {string} seat_life - 命座
* @property {string} element - 元素
* @property {string} text - 介绍
* @property {string} role_birthday - 生日 m/d
* @property {string} head_icon - 头像
* @property {string} head_image - 头像
* @property {string} introduce - 介绍
* @property {boolean} is_subscribe - 是否订阅
* @property {boolean} is_finish_task - 是否完成任务
* @property {number} current_compensate_num - 当前补偿数量
* @property {boolean} is_compensate_num - 是否补偿数量
* @property {number} year_compensate_num - 年份补偿数量
* @returns RoleItem
*/
interface RoleItem {
role_id: number;
name: string;
belong: string;
divine_type: string;
is_god: boolean;
seat_life: string;
element: string;
text: string;
role_birthday: string;
head_icon: string;
head_image: string;
introduce: string;
is_subscribe: boolean;
is_finish_task: boolean;
current_compensate_num: number;
is_compensate_num: boolean;
year_compensate_num: number;
}
}