🎈 perf(eslint): 第二次 eslint

剩下的全给过了,明天起来跑 devtool 改 bug

Signed-off-by: BTMuli <BT-Muli@outlook.com>
(cherry picked from commit 59baf08cf897d31cabce4741910ea83c1a3a52d9)
This commit is contained in:
BTMuli
2023-04-06 03:08:40 +08:00
parent 6ec12bf664
commit 3c3df24f7d
24 changed files with 1968 additions and 2090 deletions

View File

@@ -1,52 +1,47 @@
<template>
<v-list class="position-card">
<v-list-item>
<v-list-item-title style="color: #fec90b; margin-left: 10px; font-family: Genshin, serif">
<img src="../assets/icons/board.svg" alt="act" class="position-act-icon" />
近期活动
</v-list-item-title>
<div v-if="!loading" class="position-grid">
<v-card
v-for="card in positionCards"
style="background: #faf7e8; color: #546d8b; border-radius: 10px"
>
<v-list style="background: #faf7e8; color: #546d8b">
<v-list-item :title="card.title" :subtitle="card.abstract">
<template v-slot:prepend>
<v-avatar rounded="0" @click="toPost(card)" style="cursor: pointer">
<v-img :src="card.icon" style="border-radius: 10px" />
</v-avatar>
</template>
</v-list-item>
</v-list>
<v-divider class="border-opacity-75"></v-divider>
<v-card-text>
<span style="width: 60%">
<v-icon>mdi-calendar-clock</v-icon>
{{ card.time.start }}~{{ card.time.end }}
</span>
</v-card-text>
<v-card-actions>
<span style="width: 80%; margin-left: 10px">
<v-icon>mdi-clock-outline</v-icon>
剩余时间
<span style="color: #90caf9" v-if="positionTimeGet[card.post_id] !== '已结束'">{{
positionTimeGet[card.post_id]
}}</span>
<span style="color: #ff6d6d" v-if="positionTimeGet[card.post_id] === '已结束'"
>已结束</span
>
</span>
<v-btn @click="toPost(card)" class="card-btn">
<template v-slot:prepend>
<img src="../assets/icons/circle-check.svg" alt="check" />查看
</template>
</v-btn>
</v-card-actions>
</v-card>
</div>
</v-list-item>
</v-list>
<v-list class="position-card">
<v-list-item>
<v-list-item-title style="color: #fec90b; margin-left: 10px; font-family: Genshin, serif">
<img src="../assets/icons/board.svg" alt="act" class="position-act-icon">
近期活动
</v-list-item-title>
<div v-if="!loading" class="position-grid">
<v-card v-for="card in positionCards" :key="card.post_id" style="background: #faf7e8; color: #546d8b; border-radius: 10px">
<v-list style="background: #faf7e8; color: #546d8b">
<v-list-item :title="card.title" :subtitle="card.abstract">
<template #prepend>
<v-avatar rounded="0" style="cursor: pointer" @click="toPost(card)">
<v-img :src="card.icon" style="border-radius: 10px" />
</v-avatar>
</template>
</v-list-item>
</v-list>
<v-divider class="border-opacity-75" />
<v-card-text>
<span style="width: 60%">
<v-icon>mdi-calendar-clock</v-icon>
{{ card.time.start }}~{{ card.time.end }}
</span>
</v-card-text>
<v-card-actions>
<span style="width: 80%; margin-left: 10px">
<v-icon>mdi-clock-outline</v-icon>
剩余时间
<span v-if="positionTimeGet[card.post_id] !== '已结束'" style="color: #90caf9">{{
positionTimeGet[card.post_id]
}}</span>
<span v-if="positionTimeGet[card.post_id] === '已结束'" style="color: #ff6d6d">已结束</span>
</span>
<v-btn class="card-btn" @click="toPost(card)">
<template #prepend>
<img src="../assets/icons/circle-check.svg" alt="check">查看
</template>
</v-btn>
</v-card-actions>
</v-card>
</div>
</v-list-item>
</v-list>
</template>
<script lang="ts" setup>
// vue
@@ -71,55 +66,55 @@ const router = useRouter();
// expose
defineExpose({
name: "近期活动",
loading,
name: "近期活动",
loading,
});
onMounted(async () => {
const positionData = await MysOper.Position.get();
if (!positionData) {
console.error("获取近期活动失败");
return;
}
positionCards.value = MysOper.Position.card(positionData);
positionCards.value.forEach(card => {
positionTimeGet.value[card.post_id] = getLastPositionTime(card.time.end_stamp - Date.now());
positionTimeEnd.value[card.post_id] = card.time.end_stamp;
});
await setInterval(() => {
positionCards.value.forEach(card => {
const time = card.time.end_stamp - Date.now();
if (time <= 0) {
positionTimeGet.value[card.post_id] = "已结束";
return;
}
positionTimeGet.value[card.post_id] = getLastPositionTime(time);
});
}, 1000);
loading.value = false;
const positionData = await MysOper.Position.get();
if (!positionData) {
console.error("获取近期活动失败");
return;
}
positionCards.value = MysOper.Position.card(positionData);
positionCards.value.forEach((card) => {
positionTimeGet.value[card.post_id] = getLastPositionTime(card.time.end_stamp - Date.now());
positionTimeEnd.value[card.post_id] = card.time.end_stamp;
});
await setInterval(() => {
positionCards.value.forEach((card) => {
const time = card.time.end_stamp - Date.now();
if (time <= 0) {
positionTimeGet.value[card.post_id] = "已结束";
return;
}
positionTimeGet.value[card.post_id] = getLastPositionTime(time);
});
}, 1000);
loading.value = false;
});
function getLastPositionTime(time: number) {
const day = Math.floor(time / (24 * 3600 * 1000));
const hour = Math.floor((time % (24 * 3600 * 1000)) / (3600 * 1000));
const minute = Math.floor((time % (3600 * 1000)) / (60 * 1000));
const second = Math.floor((time % (60 * 1000)) / 1000);
return `${day}${hour.toFixed(0).padStart(2, "0")}:${minute
.toFixed(0)
.padStart(2, "0")}:${second.toFixed(0).padStart(2, "0")}`;
function getLastPositionTime (time: number) {
const day = Math.floor(time / (24 * 3600 * 1000));
const hour = Math.floor((time % (24 * 3600 * 1000)) / (3600 * 1000));
const minute = Math.floor((time % (3600 * 1000)) / (60 * 1000));
const second = Math.floor((time % (60 * 1000)) / 1000);
return `${day}${hour.toFixed(0).padStart(2, "0")}:${minute.toFixed(0).padStart(2, "0")}:${second
.toFixed(0)
.padStart(2, "0")}`;
}
async function toPost(card: PositionCard) {
const post_id = card.post_id;
// 获取路由路径
const path = router.resolve({
name: "帖子详情",
params: {
post_id: post_id,
},
}).href;
// 打开新窗口
createTGWindow(path, "近期活动", card.title, 960, 720, false);
async function toPost (card: PositionCard) {
const post_id = card.post_id;
// 获取路由路径
const path = router.resolve({
name: "帖子详情",
params: {
post_id,
},
}).href;
// 打开新窗口
createTGWindow(path, "近期活动", card.title, 960, 720, false);
}
</script>
@@ -132,7 +127,7 @@ async function toPost(card: PositionCard) {
.position-card {
margin-top: 10px;
font-family: "Genshin", serif;
font-family: Genshin, serif;
background: #546d8b;
border-radius: 10px;
}