️ 修正逻辑,优化竖图表现

This commit is contained in:
目棃
2024-02-29 20:43:23 +08:00
parent 4a41a00243
commit 16b3a9d1a7
2 changed files with 35 additions and 3 deletions

View File

@@ -1,7 +1,9 @@
<template> <template>
<TOverlay v-model="visible" hide :to-click="onCancel" blur-val="10px"> <TOverlay v-model="visible" hide :to-click="onCancel" blur-val="10px">
<div class="tpoi-box"> <div class="tpoi-box">
<img :src="props.image.insert.image" alt="图片" /> <div :class="isOriSize ? 'tpoi-top ori-size' : 'tpoi-top'">
<img :src="props.image.insert.image" alt="图片" @click="resizeImg" />
</div>
<div class="tpoi-bottom"> <div class="tpoi-bottom">
<div class="tpoi-info" v-if="props.image.attributes"> <div class="tpoi-info" v-if="props.image.attributes">
<p v-if="props.image.attributes.size"> <p v-if="props.image.attributes.size">
@@ -42,6 +44,7 @@ const props = defineProps<TpoImageProps>();
const emits = defineEmits<TpoImageEmits>(); const emits = defineEmits<TpoImageEmits>();
const buffer = ref<Uint8Array | null>(null); const buffer = ref<Uint8Array | null>(null);
const bgMode = ref(0); // 0: transparent, 1: black, 2: white const bgMode = ref(0); // 0: transparent, 1: black, 2: white
const isOriSize = ref(false);
const visible = computed({ const visible = computed({
get: () => props.modelValue, get: () => props.modelValue,
@@ -66,6 +69,10 @@ function onCancel() {
visible.value = false; visible.value = false;
} }
function resizeImg() {
isOriSize.value = !isOriSize.value;
}
function setBlackBg() { function setBlackBg() {
bgMode.value = (bgMode.value + 1) % 3; bgMode.value = (bgMode.value + 1) % 3;
const bgLabelList = ["透明", "黑色", "白色"]; const bgLabelList = ["透明", "黑色", "白色"];
@@ -118,12 +125,36 @@ onUnmounted(() => {
align-items: center; align-items: center;
justify-content: flex-start; justify-content: flex-start;
row-gap: 20px; row-gap: 20px;
transition: all 0.5s;
} }
.tpoi-box img { .tpoi-top {
display: flex;
overflow: hidden;
width: 100%;
max-height: 70vh;
align-items: flex-start;
justify-content: center;
border-radius: 10px;
background-color: var(--common-shadow-2);
}
.tpoi-top.ori-size {
overflow-y: auto;
}
.tpoi-top img {
max-width: 90vw; max-width: 90vw;
max-height: 70vh; max-height: 70vh;
background-color: v-bind(bg); background-color: v-bind(bg);
cursor: zoom-in;
object-fit: contain;
}
.tpoi-top.ori-size img {
max-width: 100%;
max-height: none;
cursor: zoom-out;
object-fit: contain; object-fit: contain;
} }

View File

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