💄 调整容器高度,支持单楼层分享

This commit is contained in:
BTMuli
2026-01-17 00:12:41 +08:00
parent 422f6231c8
commit d966fb2f82
2 changed files with 55 additions and 8 deletions

View File

@@ -1,17 +1,20 @@
<!-- 楼层组件 -->
<template>
<div class="tuad-box">
<div ref="floorEl" class="tuad-box">
<div class="tuad-title">
<div class="title">{{ props.floor.id }}</div>
<div class="title" @click="shareFloor()">{{ props.floor.id }}</div>
<div class="append">
<span>{{ props.floor.winStar }}</span>
<span>/{{ props.floor.maxStar }}</span>
<img alt="Abyss" src="/icon/star/Abyss.webp" />
</div>
</div>
<div v-if="props.floor.buff && props.floor.buff.length > 0" class="tuad-buff">
<span>地脉异常:</span>
<span v-for="(b, i) in props.floor.buff" :key="i">{{ b }}</span>
<div class="tuad-mid">
<div v-if="show" class="tuad-share">UID {{ props.uid }} | {{ props.id }}</div>
<div v-if="props.floor.buff && props.floor.buff.length > 0" class="tuad-buff">
<span>地脉异常:</span>
<span v-for="(b, i) in props.floor.buff" :key="i">{{ b }}</span>
</div>
</div>
<div class="tuad-index-box">
<TuaDetailLevel v-for="level in props.floor.levels" :key="level.id" :level />
@@ -19,11 +22,29 @@
</div>
</template>
<script lang="ts" setup>
import showSnackbar from "@comp/func/snackbar.js";
import { generateShareImg } from "@utils/TGShare.js";
import { nextTick, ref, useTemplateRef } from "vue";
import TuaDetailLevel from "./tua-detail-level.vue";
type TuaDetailProps = { floor: TGApp.Sqlite.Abyss.Floor };
type TuaDetailProps = { floor: TGApp.Sqlite.Abyss.Floor; uid: number; id: number };
const props = defineProps<TuaDetailProps>();
const show = ref<boolean>(false);
const floorRef = useTemplateRef<HTMLDivElement>("floorEl");
async function shareFloor(): Promise<void> {
if (!floorRef.value) {
showSnackbar.warn("未捕获到Floor Dom");
return;
}
show.value = true;
await nextTick();
const fileName = `深境螺旋_第${props.id}期_${props.uid}_${props.floor.id}`;
await generateShareImg(fileName, floorRef.value);
show.value = false;
}
</script>
<style lang="css" scoped>
.tuad-box {
@@ -50,6 +71,10 @@ const props = defineProps<TuaDetailProps>();
font-size: 20px;
line-height: 24px;
.title {
cursor: pointer;
}
.append {
position: relative;
display: flex;
@@ -72,6 +97,22 @@ const props = defineProps<TuaDetailProps>();
}
}
.tuad-mid {
position: relative;
display: flex;
width: 100%;
align-items: center;
justify-content: space-between;
}
.tuad-share {
position: relative;
z-index: -1;
color: var(--box-text-1);
font-size: 14px;
opacity: 0.8;
}
.tuad-buff {
position: relative;
margin-left: auto;