图片列表调用缩略图
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
.flex.flex-row.items-center.justify-center.gap-1
|
.flex.flex-row.items-center.justify-center.gap-1
|
||||||
label.text-gray-500.text-sm.font-bold.px-2.py-1.bg-gray-200.rounded-md.cursor-pointer(
|
label.text-gray-500.text-sm.font-bold.px-2.py-1.bg-gray-200.rounded-md.cursor-pointer(
|
||||||
for="file"
|
for="file"
|
||||||
) 上传图片
|
) 上传图片 {{ status }}
|
||||||
input#file.hidden(type="file", accept="image/*", multiple="multiple", @change="upload")
|
input#file.hidden(type="file", accept="image/*", multiple="multiple", @change="upload")
|
||||||
.flex-1.flex.flex-col.justify-center.items-center.text-center
|
.flex-1.flex.flex-col.justify-center.items-center.text-center
|
||||||
.text-gray-500.text-sm.font-bold.px-2.py-1.bg-gray-200.rounded-md.cursor-pointer(
|
.text-gray-500.text-sm.font-bold.px-2.py-1.bg-gray-200.rounded-md.cursor-pointer(
|
||||||
@@ -16,18 +16,17 @@
|
|||||||
) 刷新
|
) 刷新
|
||||||
.relative.mt-24.transition-opacity.duration-700.ease-in-out(
|
.relative.mt-24.transition-opacity.duration-700.ease-in-out(
|
||||||
ref="PUB",
|
ref="PUB",
|
||||||
v-if="!pending",
|
v-if="status === 'success'",
|
||||||
:class="{ 'opacity-100': !pending, 'opacity-10': pending }"
|
:class="{ 'opacity-100': status === 'success', 'opacity-10': status !== 'success' }"
|
||||||
)
|
)
|
||||||
.absolute.transition-all.duration-700.ease-in-out.left-0.top-2000.bg-gray-100(
|
.absolute.transition-all.duration-700.ease-in-out.left-0.top-2000.bg-gray-100(
|
||||||
v-for="item in data.list" :key="item.image",
|
v-for="item in data" :key="item.image",
|
||||||
:data-w="item.width",
|
:data-w="item.width",
|
||||||
:data-h="item.height",
|
:data-h="item.height",
|
||||||
class="hover:bg-gray-200"
|
class="hover:bg-gray-200"
|
||||||
)
|
)
|
||||||
NuxtLink(:to="`/gallery/${item.id}`")
|
NuxtLink(:to="`/gallery/${item.id}`")
|
||||||
//img.w-full(:src="`${item.image}?w=${WIDTH}`" loading="lazy")
|
img.w-full(:src="`/api/gallery/${item.id}@w480.webp`" loading="lazy")
|
||||||
img.w-full(:src="item.image+'@w480.webp'" loading="lazy")
|
|
||||||
.absolute.top-0.left-0.right-0.text-white.overflow-hidden.break-words.pb-4(
|
.absolute.top-0.left-0.right-0.text-white.overflow-hidden.break-words.pb-4(
|
||||||
style="background: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.25))"
|
style="background: linear-gradient(to top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.25))"
|
||||||
)
|
)
|
||||||
@@ -42,7 +41,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
const { data, pending, refresh } = useFetch("/api/gallery?page=1&pageSize=40")
|
const { data, status, refresh } = useFetch("/api/gallery?page=1&pagesize=40")
|
||||||
const PUB = ref(null)
|
const PUB = ref(null)
|
||||||
const WIDTH = ref(320)
|
const WIDTH = ref(320)
|
||||||
const account = useState('account')
|
const account = useState('account')
|
||||||
|
|||||||
@@ -15,7 +15,8 @@ if (!fs.existsSync(dirPath)) {
|
|||||||
export default defineEventHandler(async event => {
|
export default defineEventHandler(async event => {
|
||||||
// 处理 GET 请求(读取image中的图片文件列表)
|
// 处理 GET 请求(读取image中的图片文件列表)
|
||||||
if (event.node.req.method === 'GET') {
|
if (event.node.req.method === 'GET') {
|
||||||
return event.context.db.Gallery.findAll({ where: event.context.query })
|
const { page, pagesize, ...query } = event.context.query
|
||||||
|
return event.context.db.Gallery.findAll({ where: query, offset: (page - 1) * pagesize, limit: pagesize })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理 POST 请求(FromData上传图片)
|
// 处理 POST 请求(FromData上传图片)
|
||||||
|
|||||||
Reference in New Issue
Block a user