|
|
|
@ -8,7 +8,7 @@
|
|
|
|
<div class="card-text">
|
|
|
|
<div class="card-text">
|
|
|
|
<p class="color-word">照护</p>
|
|
|
|
<p class="color-word">照护</p>
|
|
|
|
<p>
|
|
|
|
<p>
|
|
|
|
<span class="color-white fw-b" style="font-size: 42px;">10000</span>
|
|
|
|
<span class="color-white fw-b" style="font-size: 42px;">{{ total.zhaohu }}</span>
|
|
|
|
<span class="color-word" style="padding-left: 5px">人次/年</span>
|
|
|
|
<span class="color-word" style="padding-left: 5px">人次/年</span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@ -20,7 +20,7 @@
|
|
|
|
<div class="card-text">
|
|
|
|
<div class="card-text">
|
|
|
|
<p class="color-word">服务覆盖人数</p>
|
|
|
|
<p class="color-word">服务覆盖人数</p>
|
|
|
|
<p>
|
|
|
|
<p>
|
|
|
|
<span class="color-white fw-b" style="font-size: 42px;">658</span>
|
|
|
|
<span class="color-white fw-b" style="font-size: 42px;">{{ total.fuwufugairenshu }}</span>
|
|
|
|
<span class="color-word" style="padding-left: 5px">人</span>
|
|
|
|
<span class="color-word" style="padding-left: 5px">人</span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@ -32,20 +32,28 @@
|
|
|
|
<div class="card-text">
|
|
|
|
<div class="card-text">
|
|
|
|
<p class="color-word">总服务时长</p>
|
|
|
|
<p class="color-word">总服务时长</p>
|
|
|
|
<p>
|
|
|
|
<p>
|
|
|
|
<span class="color-white fw-b" style="font-size: 42px;">10000</span>
|
|
|
|
<span class="color-white fw-b" style="font-size: 42px;">{{ total.zongfuwushichang }}</span>
|
|
|
|
<span class="color-word" style="padding-left: 5px">小时</span>
|
|
|
|
<span class="color-word" style="padding-left: 5px">小时</span>
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="bottom" @mouseenter="isMouseHover = true" @mouseleave="isMouseHover = false" @click="playVideo">
|
|
|
|
<div class="bottom" @mouseenter="isMouseHover = true" @mouseleave="isMouseHover = false">
|
|
|
|
<video ref="video" loop>
|
|
|
|
<transition name="fade">
|
|
|
|
<source src="https://highlight-video.cdn.bcebos.com/video/6s/fa06ca8e-536b-11ef-8efc-7cd30ab516e3.mp4">
|
|
|
|
<video :src="videos[videoIndex] ? videos[videoIndex].file : ''" ref="video" loop v-show="type === 'video'" :style="isPaused ? 'filter: brightness(75%);' : ''" @click="playVideo">
|
|
|
|
</video>
|
|
|
|
</video>
|
|
|
|
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
<transition name="fade">
|
|
|
|
|
|
|
|
<el-carousel class="carousel-img" v-show="type === 'img'" indicator-position="none">
|
|
|
|
|
|
|
|
<el-carousel-item v-for="(item,index) in imgs" :key="index">
|
|
|
|
|
|
|
|
<img class="carousel-item-img" :src="item.file" alt="">
|
|
|
|
|
|
|
|
</el-carousel-item>
|
|
|
|
|
|
|
|
</el-carousel>
|
|
|
|
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
|
|
<transition name="fade">
|
|
|
|
<transition name="fade">
|
|
|
|
<div class="video-btn" v-show="isPaused || isMouseHover">
|
|
|
|
<div class="video-btn" v-show="(isPaused || isMouseHover) && type === 'video'" @click="playVideo">
|
|
|
|
<svg viewBox="0 0 100 100">
|
|
|
|
<svg viewBox="0 0 100 100">
|
|
|
|
<defs>
|
|
|
|
<defs>
|
|
|
|
<linearGradient id="yellow" x1="50%" x2="50%" y1="0%" y2="100%">
|
|
|
|
<linearGradient id="yellow" x1="50%" x2="50%" y1="0%" y2="100%">
|
|
|
|
@ -73,14 +81,23 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</transition>
|
|
|
|
</transition>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="type-change" @click.stop>
|
|
|
|
<div class="video-change" v-show="type === 'video' && (isPaused || isMouseHover)">
|
|
|
|
<div class="type-change-item">
|
|
|
|
<button type="button" class="el-carousel__arrow el-carousel__arrow--left" @click="isPaused = true,videoIndex = (videoIndex + 1) % videos.length">
|
|
|
|
|
|
|
|
<i class="el-icon-arrow-left custom-cursor-on-hover"></i>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
<button type="button" class="el-carousel__arrow el-carousel__arrow--right" @click="isPaused = true,videoIndex = (videoIndex - 1 + videos.length) % videos.length">
|
|
|
|
|
|
|
|
<i class="el-icon-arrow-right custom-cursor-on-hover"></i>
|
|
|
|
|
|
|
|
</button>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="type-change">
|
|
|
|
|
|
|
|
<div class="type-change-item" @click="type = 'img'">
|
|
|
|
<i class="el-icon-picture type-change-item__icon"></i>
|
|
|
|
<i class="el-icon-picture type-change-item__icon"></i>
|
|
|
|
<div class="type-change-item__num">2</div>
|
|
|
|
<div class="type-change-item__num">{{ imgs.length }}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="type-change-item">
|
|
|
|
<div class="type-change-item" @click="type = 'video'">
|
|
|
|
<i class="el-icon-video-camera-solid type-change-item__icon"></i>
|
|
|
|
<i class="el-icon-video-camera-solid type-change-item__icon"></i>
|
|
|
|
<div class="type-change-item__num">6</div>
|
|
|
|
<div class="type-change-item__num">{{ videos.length }}</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
@ -89,15 +106,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
<script>
|
|
|
|
import gsap from "gsap";
|
|
|
|
import gsap from "gsap";
|
|
|
|
|
|
|
|
import { getList } from "@/api/bigScreen"
|
|
|
|
export default {
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
|
|
|
|
total: {
|
|
|
|
|
|
|
|
"zhaohu": 0,
|
|
|
|
|
|
|
|
"fuwufugairenshu": 0,
|
|
|
|
|
|
|
|
"zongfuwushichang": 0
|
|
|
|
|
|
|
|
},
|
|
|
|
isPaused: true,
|
|
|
|
isPaused: true,
|
|
|
|
isMouseHover: false,
|
|
|
|
isMouseHover: false,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
type: 'video', //video img
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
videoIndex: 0,
|
|
|
|
|
|
|
|
videos: [],
|
|
|
|
|
|
|
|
imgs: []
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
methods: {
|
|
|
|
|
|
|
|
async getTotal () {
|
|
|
|
|
|
|
|
const res = (await getList({
|
|
|
|
|
|
|
|
type: 'total'
|
|
|
|
|
|
|
|
},false)).data
|
|
|
|
|
|
|
|
this.total.zhaohu = res.find(i => i.key === 'zhaohu')?.value
|
|
|
|
|
|
|
|
this.total.fuwufugairenshu = res.find(i => i.key === 'fuwufugairenshu')?.value
|
|
|
|
|
|
|
|
this.total.zongfuwushichang = res.find(i => i.key === 'zongfuwushichang')?.value
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
async getList () {
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
const res = (await getList({
|
|
|
|
|
|
|
|
type: 'media'
|
|
|
|
|
|
|
|
},false))?.data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.videos = JSON.parse(res.find(i => i.key === 'video')?.value)
|
|
|
|
|
|
|
|
this.imgs = JSON.parse(res.find(i => i.key === 'imgs')?.value)
|
|
|
|
|
|
|
|
} catch (err) {
|
|
|
|
|
|
|
|
console.error(err)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
playVideo () {
|
|
|
|
playVideo () {
|
|
|
|
|
|
|
|
if (this.type === 'img') return;
|
|
|
|
|
|
|
|
|
|
|
|
gsap.set(this.$refs['icon'],{
|
|
|
|
gsap.set(this.$refs['icon'],{
|
|
|
|
strokeDasharray: "6.148px, 442.31px",
|
|
|
|
strokeDasharray: "6.148px, 442.31px",
|
|
|
|
strokeDashoffset: "100.9137px"
|
|
|
|
strokeDashoffset: "100.9137px"
|
|
|
|
@ -114,9 +166,25 @@ export default {
|
|
|
|
this.isPaused = true;
|
|
|
|
this.isPaused = true;
|
|
|
|
this.$refs['video'].pause()
|
|
|
|
this.$refs['video'].pause()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
keywordRegister (e) {
|
|
|
|
|
|
|
|
if (e.code === 'Space') {
|
|
|
|
|
|
|
|
this.playVideo()
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
},
|
|
|
|
computed: {},
|
|
|
|
computed: {},
|
|
|
|
|
|
|
|
created() {
|
|
|
|
|
|
|
|
this.getList();
|
|
|
|
|
|
|
|
this.getTotal();
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
mounted() {
|
|
|
|
|
|
|
|
document.body.addEventListener('keypress', this.keywordRegister)
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
beforeDestroy() {
|
|
|
|
|
|
|
|
document.body.removeEventListener('keypress', this.keywordRegister)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
@ -165,16 +233,31 @@ export default {
|
|
|
|
background: conic-gradient(#5470ec, #506bec, #77cbf1, #3d58ca, #3b56ca, #6fbbf0, #6aa3f2);
|
|
|
|
background: conic-gradient(#5470ec, #506bec, #77cbf1, #3d58ca, #3b56ca, #6fbbf0, #6aa3f2);
|
|
|
|
position: relative;
|
|
|
|
position: relative;
|
|
|
|
|
|
|
|
|
|
|
|
video {
|
|
|
|
video,.carousel-img {
|
|
|
|
|
|
|
|
background: rgb(6, 23, 70);
|
|
|
|
object-fit: cover;
|
|
|
|
object-fit: cover;
|
|
|
|
position: absolute;
|
|
|
|
position: absolute;
|
|
|
|
|
|
|
|
transition: all .2s;
|
|
|
|
left: 6px;
|
|
|
|
left: 6px;
|
|
|
|
bottom: 6px;
|
|
|
|
bottom: 6px;
|
|
|
|
filter: brightness(65%);
|
|
|
|
|
|
|
|
height: calc(100% - 12px);
|
|
|
|
height: calc(100% - 12px);
|
|
|
|
width: calc(100% - 12px);
|
|
|
|
width: calc(100% - 12px);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//.video-btn {
|
|
|
|
.carousel-img > ::v-deep .el-carousel__container {
|
|
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
::v-deep .el-carousel__arrow {
|
|
|
|
|
|
|
|
width: 56px;
|
|
|
|
|
|
|
|
height: 56px;
|
|
|
|
|
|
|
|
font-size: 25px;
|
|
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
.carousel-item-img {
|
|
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
|
|
height: 100%;
|
|
|
|
|
|
|
|
object-fit: cover;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//.video-btn {
|
|
|
|
// cursor: pointer;
|
|
|
|
// cursor: pointer;
|
|
|
|
// width: 230px;
|
|
|
|
// width: 230px;
|
|
|
|
// height: 230px;
|
|
|
|
// height: 230px;
|
|
|
|
@ -223,6 +306,7 @@ export default {
|
|
|
|
background: #ffffff19;
|
|
|
|
background: #ffffff19;
|
|
|
|
padding: 9px 15px;
|
|
|
|
padding: 9px 15px;
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
z-index: 333;
|
|
|
|
align-items: center;
|
|
|
|
align-items: center;
|
|
|
|
position: absolute;
|
|
|
|
position: absolute;
|
|
|
|
bottom: 14px;
|
|
|
|
bottom: 14px;
|
|
|
|
|