|
@@ -1,17 +1,59 @@
|
|
|
<template>
|
|
|
- <div class="painting-detail-list" />
|
|
|
+ <div class="painting-detail-list">
|
|
|
+ <div class="bg-left" />
|
|
|
+ <Swiper
|
|
|
+ class="painting-list"
|
|
|
+ :slides-per-view="1"
|
|
|
+ >
|
|
|
+ <SwiperSlide
|
|
|
+ v-for="item in paintingList"
|
|
|
+ :key="item['标题']"
|
|
|
+ class="swiper-slider"
|
|
|
+ >
|
|
|
+ <PaintingDetail
|
|
|
+ class="painting-item"
|
|
|
+ :thumb="`${$env.BASE_URL}configMultiMedia/paintings-small/${item['标题']}.jpg`"
|
|
|
+ :title="item['标题']"
|
|
|
+ :author="item['作者']"
|
|
|
+ :age="item['朝代']"
|
|
|
+ :subtitle="item['装裱\/材质\/笔类型']"
|
|
|
+ :location="item['馆藏']"
|
|
|
+ :painting-desc="item['简介']"
|
|
|
+ :author-desc="item['作者简介']"
|
|
|
+ :big-painting="`${$env.BASE_URL}configMultiMedia/paintings/${item['标题']}.jpg`"
|
|
|
+ :can-close="false"
|
|
|
+ >
|
|
|
+ {{ item }}
|
|
|
+ </PaintingDetail>
|
|
|
+ </SwiperSlide>
|
|
|
+ </Swiper>
|
|
|
+ <BtnBack
|
|
|
+ class="btn-back"
|
|
|
+ @click="router.go(-1)"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, computed, watch, onMounted, inject } from "vue"
|
|
|
import { useRoute, useRouter } from "vue-router"
|
|
|
import { useStore } from "vuex"
|
|
|
+import PaintingDetail from '@/views/PaintingDetail.vue'
|
|
|
+import useSizeAdapt from "@/useFunctions/useSizeAdapt"
|
|
|
|
|
|
const route = useRoute()
|
|
|
const router = useRouter()
|
|
|
const store = useStore()
|
|
|
|
|
|
const $env = inject('$env')
|
|
|
+
|
|
|
+const {
|
|
|
+ windowSizeInCssForRef,
|
|
|
+ windowSizeWhenDesignForRef,
|
|
|
+} = useSizeAdapt()
|
|
|
+
|
|
|
+const paintingList = configExcel['画作']
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
@@ -21,5 +63,31 @@ const $env = inject('$env')
|
|
|
top: 0;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
+ >.bg-left{
|
|
|
+ background: linear-gradient(90deg, #7b916b 0%, #94a586 100%);
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ height: 100%;
|
|
|
+ width: calc(57 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
+ background: -1;
|
|
|
+ }
|
|
|
+ >.painting-list{
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ top: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ backdrop-filter: blur(calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')));
|
|
|
+ background: linear-gradient(rgba(123,145,107,0.62) 0%, rgba(0,0,0,0.3) 100%);
|
|
|
+ .swiper-slide{
|
|
|
+ >.painting-item{
|
|
|
+ position: relative !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ >.btn-back{
|
|
|
+ z-index: 10;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|