From 594927f5964ecc85dc942e32eb03a9bca551f865 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期三, 28 二月 2024 15:54:28 +0800 Subject: [PATCH] feat:安全隐患情况和交通宣传模块渲染 --- src/views/daoAnOffice/right/analysis/index.vue | 44 ++++ src/assets/img/icon/arrow_left.png | 0 src/assets/img/test_img/道安办 (1).png | 0 src/components/right-title/index.ts | 2 package-lock.json | 19 + src/assets/img/icon/arrow_right.png | 0 src/main.ts | 1 src/components/right-title/index.vue | 80 +++++++ src/views/daoAnOffice/right/publicize/index.vue | 153 +++++++++++++ package.json | 1 src/assets/img/test_img/道安办.png | 0 src/views/daoAnOffice/right/danger/index.vue | 151 +++++++++++++ src/views/daoAnOffice/index.vue | 125 +++++++---- src/assets/img/test_img/道安办 (2).png | 0 src/views/daoAnOffice/right/danger/imageSwiper.vue | 64 +++++ 15 files changed, 596 insertions(+), 44 deletions(-) diff --git a/package-lock.json b/package-lock.json index f4447b6..9fc45bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "element-plus": "^2.3.14", "mockjs": "^1.1.0", "pinia": "^2.1.6", + "swiper": "^11.0.7", "vue": "^3.3.4", "vue-echarts": "^6.6.1", "vue-router": "^4.2.5" @@ -3187,6 +3188,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swiper": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.0.7.tgz", + "integrity": "sha512-cDfglW1B6uSmB6eB6pNmzDTNLmZtu5bWWa1vak0RU7fOI9qHjMzl7gVBvYSl34b0RU2N11HxxETJqQ5LeqI1cA==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/tailwindcss": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", diff --git a/package.json b/package.json index eea03bd..dd736d4 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "element-plus": "^2.3.14", "mockjs": "^1.1.0", "pinia": "^2.1.6", + "swiper": "^11.0.7", "vue": "^3.3.4", "vue-echarts": "^6.6.1", "vue-router": "^4.2.5" diff --git a/src/assets/img/icon/arrow_left.png b/src/assets/img/icon/arrow_left.png new file mode 100644 index 0000000..7505ce9 --- /dev/null +++ b/src/assets/img/icon/arrow_left.png Binary files differ diff --git a/src/assets/img/icon/arrow_right.png b/src/assets/img/icon/arrow_right.png new file mode 100644 index 0000000..25edf0f --- /dev/null +++ b/src/assets/img/icon/arrow_right.png Binary files differ diff --git "a/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236 \0501\051.png" "b/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236 \0501\051.png" new file mode 100644 index 0000000..c7f70a4 --- /dev/null +++ "b/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236 \0501\051.png" Binary files differ diff --git "a/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236 \0502\051.png" "b/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236 \0502\051.png" new file mode 100644 index 0000000..c7f70a4 --- /dev/null +++ "b/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236 \0502\051.png" Binary files differ diff --git "a/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236.png" "b/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236.png" new file mode 100644 index 0000000..c7f70a4 --- /dev/null +++ "b/src/assets/img/test_img/\351\201\223\345\256\211\345\212\236.png" Binary files differ diff --git a/src/components/right-title/index.ts b/src/components/right-title/index.ts new file mode 100644 index 0000000..9d79131 --- /dev/null +++ b/src/components/right-title/index.ts @@ -0,0 +1,2 @@ +import RightTitle from "./index.vue" +export default RightTitle \ No newline at end of file diff --git a/src/components/right-title/index.vue b/src/components/right-title/index.vue new file mode 100644 index 0000000..8ae1a09 --- /dev/null +++ b/src/components/right-title/index.vue @@ -0,0 +1,80 @@ +<script setup lang="ts"> + +const props = withDefaults( + defineProps<{ + // 鏍囬 + title: number | string, + }>(), + { + title: "", + } +); +</script> + +<template> + <div class="flex justify-between item-center"> + <div class="item_title" v-if="title !== ''"> + <span class="title-inner"> {{ title }} </span> + </div> + <slot name="top"></slot> + </div> + + <div :class="title !== '' ? 'item_title_content' : 'item_title_content_def'"> + + <!-- 鍐呭鎻掓Ы --> + <slot name="content"></slot> + </div> +</template> + +<style scoped lang="scss"> +$item-title-height: 38px; +//$item_title_content-height: calc(100% - 38px); + +.item_title { + background-image: url("@/assets/img/candantop.png"); + background-size: 231px 100%; + background-repeat: no-repeat; + height: $item-title-height; + line-height: $item-title-height; + width: 100%; + color: #31abe3; + text-align: center; + // background: linear-gradient(to right, transparent, #0f0756, transparent); + position: relative; + display: flex; + align-items: center; + //justify-content: center; + + .title-inner { + margin-left: 15px; + color: #fff; + font-weight: 900; + letter-spacing: 2px; + font-style: italic; + font-size: 20px; + //background: linear-gradient( + // 92deg, + // #0072ff 0%, + // #00eaff 48.8525390625%, + // #01aaff 100% + //); + //-webkit-background-clip: text; + //-webkit-text-fill-color: transparent; + } +} + +:deep(.dv-border-box-content) { + box-sizing: border-box; + padding: 6px 16px 0px; +} + +.item_title_content { + //height: $item_title_content-height; + margin: 20px 0; +} + +.item_title_content_def { + width: 100%; + height: 100%; +} +</style> diff --git a/src/main.ts b/src/main.ts index 4472f45..ffc8509 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import * as ElementPlusIconsVue from '@element-plus/icons-vue' import '@/assets/css/main.scss' import '@/assets/css/tailwind.css' +import 'swiper/swiper-bundle.css'; import {registerEcharts} from "@/plugins/echarts" //涓嶄娇鐢╩ock 璇锋敞閲婃帀 diff --git a/src/views/daoAnOffice/index.vue b/src/views/daoAnOffice/index.vue index 9cdbb22..56e75c5 100644 --- a/src/views/daoAnOffice/index.vue +++ b/src/views/daoAnOffice/index.vue @@ -12,8 +12,14 @@ import RightBottom from "./right-bottom.vue"; import chart2 from "./chart2.vue"; import BorderBox13 from "@/components/datav/border-box-13"; + +// 鍙宠竟閮ㄥ垎 +import Analysis from './right/analysis/index.vue'; +import Danger from './right/danger/index.vue'; +import Publicize from './right/publicize/index.vue'; + const config = { - header: ['<span style="color:#42C3E8;font-size: 16px">鎺掑悕</span>', '<span style="color:#42C3E8;font-size: 16px">琛屾斂鍖哄垝</span>','<span style="color:#42C3E8;font-size: 16px">鏁板��</span>'], + header: ['<span style="color:#42C3E8;font-size: 16px">鎺掑悕</span>', '<span style="color:#42C3E8;font-size: 16px">琛屾斂鍖哄垝</span>', '<span style="color:#42C3E8;font-size: 16px">鏁板��</span>'], data: [ ['1', '澶╅┈闀�', '45'], ['5', '鐏屽彛琛楅亾', '21'], @@ -29,44 +35,44 @@ // index: true, // columnWidth: [50], align: ['center'], - headerBGC:"rgba(0,0,0,0.5)", + headerBGC: "rgba(0,0,0,0.5)", } -const config1 = [{ - title:'姣涘彂鎶芥鎶ラ亾鐜�', +const config1 = [{ + title: '姣涘彂鎶芥鎶ラ亾鐜�', length: 10, -},{ - title:'姣涘彂鎶芥闃虫�х巼', +}, { + title: '姣涘彂鎶芥闃虫�х巼', length: 90, -},{ - title:'鎴掓柇涓夊勾鏈鍚镐汉鍛樻煡澶�', +}, { + title: '鎴掓柇涓夊勾鏈鍚镐汉鍛樻煡澶�', length: 82, -},{ - title:'鍦ㄥ唽鍚告瘨浜哄憳婊嬩簨琛屼负', +}, { + title: '鍦ㄥ唽鍚告瘨浜哄憳婊嬩簨琛屼负', length: 130, -},{ - title:'鏄撳埗姣掑寲瀛﹀搧绠℃帶闂', +}, { + title: '鏄撳埗姣掑寲瀛﹀搧绠℃帶闂', length: 110, -},{ - title:'杈栧尯鍐呭嚭鐜拌仛闆嗘互鐢ㄧ獫鐐规暟', +}, { + title: '杈栧尯鍐呭嚭鐜拌仛闆嗘互鐢ㄧ獫鐐规暟', length: 9, }] -const config2 = [{ - title:'澶栨祦娑夋瘨浜哄憳鏁�', +const config2 = [{ + title: '澶栨祦娑夋瘨浜哄憳鏁�', length: 10, -},{ - title:'鏂板彂鐜板惛姣掍汉鍛樻暟', +}, { + title: '鏂板彂鐜板惛姣掍汉鍛樻暟', length: 90, -},{ - title:'姣掑搧涓浆闆嗘暎鏁伴噺', +}, { + title: '姣掑搧涓浆闆嗘暎鏁伴噺', length: 82, -},{ - title:'鏈垚骞存秹姣掍汉鍛樻暟', +}, { + title: '鏈垚骞存秹姣掍汉鍛樻暟', length: 130, -},{ - title:'鍒舵瘨绐濈偣鏁伴噺', +}, { + title: '鍒舵瘨绐濈偣鏁伴噺', length: 110, -},{ - title:'澶栧崗婧簮琚煡鑾锋暟', +}, { + title: '澶栧崗婧簮琚煡鑾锋暟', length: 9, }] </script> @@ -80,12 +86,12 @@ <div class="contetn_lr-item_contetn"> <div class="contetn_lr-item_left"> <ItemWrap class="contetn_left-top contetn_lr-item" title="浜鸿溅璺熀纭�淇℃伅"> - <left-center/> + <left-center /> </ItemWrap> </div> <div class="contetn_lr-item_right"> <ItemWrap class="contetn_left-top contetn_lr-item" title="閲嶇偣鏅尯杩愯鎯呭喌"> - <left-bottom/> + <left-bottom /> </ItemWrap> </div> @@ -96,8 +102,25 @@ <CenterMap class="contetn_center_top" title="璁惧鍒嗗竷鍥�" /> </div> - <div style="display:flex;"> + + <!-- 鍙宠竟鍖哄煙 --> + <div class="contetn_right flex flex-col"> <div> + <Analysis /> + </div> + <div class="flex justify-between"> + <div class="right_wrapper_content"> + <Danger /> + </div> + <div class="right_wrapper_content"> + <Publicize /> + </div> + </div> + </div> + + + <!-- 缂夋瘨鍘熺増 --> + <!-- <div> <div style="height: 50%;"> <div style="display: flex;justify-content: space-between"> @@ -175,6 +198,7 @@ </div > </div> + <div style="height: 50%"> <div style="display: flex;justify-content: space-between"> @@ -213,8 +237,8 @@ </div > </div> - </div> - </div> + </div> --> + <!-- 缂夋瘨鍘熺増 --> </div> </template> @@ -225,6 +249,7 @@ min-height: calc(100% - 64px); justify-content: space-between; } + //宸﹁竟 鍙宠竟 缁撴瀯涓�鏍� .contetn_left, .contetn_right { @@ -236,12 +261,14 @@ box-sizing: border-box; flex-shrink: 0; } + .contetn_center { flex: 1; margin: 0 54px; display: flex; flex-direction: column; justify-content: space-around; + .contetn_center-bottom { height: 315px; } @@ -250,16 +277,20 @@ .contetn_lr-item { height: 310px; } -.contetn_lr-item_right{ + +.contetn_lr-item_right { flex: auto; } -.contetn_lr-item_left{ + +.contetn_lr-item_left { flex: 1; } -.contetn_lr-item_contetn{ + +.contetn_lr-item_contetn { display: flex; } -.contetn_left-center_item_center{ + +.contetn_left-center_item_center { padding: 1rem 0.5rem; margin-top: 5px; @@ -268,9 +299,11 @@ height: 75px; background-color: #172451; } -.header{ + +.header { background-color: #121E44; } + $item-title-height: 38px; $item_title_content-height: calc(100% - 38px); @@ -296,21 +329,20 @@ .you { transform: rotate(180deg); } + .title-inner { font-weight: 900; letter-spacing: 2px; - background: linear-gradient( - 92deg, - #0072ff 0%, - #00eaff 48.8525390625%, - #01aaff 100% - ); + background: linear-gradient(92deg, + #0072ff 0%, + #00eaff 48.8525390625%, + #01aaff 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } } -:deep(.dv-border-box-content) { +:deep(.dv-border-box-content) { box-sizing: border-box; padding: 6px 16px 0px; } @@ -324,7 +356,8 @@ width: 100%; height: 100%; } -.right-right-zg{ + +.right-right-zg { background-color: #172451; width: 120px; display: flex; @@ -333,4 +366,8 @@ justify-content: center; padding: 20px 0; } + +.right_wrapper_content { + width: 617px; +} </style> diff --git a/src/views/daoAnOffice/right/analysis/index.vue b/src/views/daoAnOffice/right/analysis/index.vue new file mode 100644 index 0000000..394c160 --- /dev/null +++ b/src/views/daoAnOffice/right/analysis/index.vue @@ -0,0 +1,44 @@ +<!-- 浜ら�氬畨鍏ㄥ舰鍔跨爺鍒ゅ垎鏋� --> +<template> + <RightTitle title="浜ら�氬畨鍏ㄥ舰鍔跨爺鍒ゅ垎鏋�"> + <template #top> + <div class="select-container flex"> + <div class="item whitespace-no-wrap cursor-pointer" v-for="item in selectItems" :key="item.itemIndex"> + {{ item.name }} + </div> + </div> + </template> + <template #content> + <div id="analysisChart"></div> + </template> + </RightTitle> +</template> + +<script setup> +import RightTitle from "@/components/right-title"; +import { ref } from 'vue'; + +const selectItems = ref([ + { itemIndex: 1, name: '鏃堕棿缁熻', isActive: false }, + { itemIndex: 2, name: '琛楅亾缁熻', isActive: true }, +]); +</script> + +<style lang="scss" scoped> +.select-container { + flex-shrink: 0; +} + +.item { + margin: 0 8px; + padding: 10px 14px; + font-size: 12px; + background: rgba(67, 102, 155, 0.4); + border: 1px solid rgba(47, 91, 157, 0.8); + flex-shrink: 0; +} + +.item:last-child { + margin-right: 0; +} +</style> \ No newline at end of file diff --git a/src/views/daoAnOffice/right/danger/imageSwiper.vue b/src/views/daoAnOffice/right/danger/imageSwiper.vue new file mode 100644 index 0000000..29f9ec6 --- /dev/null +++ b/src/views/daoAnOffice/right/danger/imageSwiper.vue @@ -0,0 +1,64 @@ +<template> + <div class="swiper_button mr-1" @click="prevSwiper"> + <img :src="leftIcon" class=""> + </div> + <Swiper :slides-per-view="3" :space-between="18" class="image_swiper" @swiper="setSwiper"> + <SwiperSlide v-for="(slide, index) in imageList" :key="index" class="image_slide"> + <img :src="slide" class="item_img"> + </SwiperSlide> + </Swiper> + + <div class="swiper_button ml-1" @click="nextSwiper"> + <img :src="rightIcon"> + </div> +</template> + +<script setup> +import { Swiper, SwiperSlide } from 'swiper/vue'; +import leftIcon from '@/assets/img/icon/arrow_left.png'; +import rightIcon from '@/assets/img/icon/arrow_right.png'; + +import { defineProps,ref } from 'vue'; + +const swiperRef = ref(null); +const props = defineProps({ + imageList: { + type: Array, + required: true + } +}) +const setSwiper = (swiper) => { + swiperRef.value = swiper; +} + const prevSwiper = () => { + swiperRef.value.slidePrev(); + } + + const nextSwiper = () => { + swiperRef.value.slideNext(); + } + +</script> + +<style lang="scss" scoped> +.image_swiper { + width: 380px; +} + +.swiper-slide.image_slide { + width: 102px; + height: 124px; + overflow: hidden; +} + +.item_img { + display: block; + height: 100%; + object-fit: fill; +} + +.swiper_button { + cursor: pointer; +} + +</style> \ No newline at end of file diff --git a/src/views/daoAnOffice/right/danger/index.vue b/src/views/daoAnOffice/right/danger/index.vue new file mode 100644 index 0000000..0acfb49 --- /dev/null +++ b/src/views/daoAnOffice/right/danger/index.vue @@ -0,0 +1,151 @@ +<!-- 瀹夊叏闅愭偅鎯呭喌 --> + +<template> + <RightTitle title="瀹夊叏闅愭偅鎯呭喌"> + <template #top> + <div class="select-container flex"> + <div class="item whitespace-no-wrap cursor-pointer" v-for="item in selectItems" :key="item.itemIndex"> + {{ item.name }} + </div> + </div> + </template> + <template #content> + <div class="content-container flex flex-col justify-between"> + <div class="content-item" v-for="item in contentList" :key="item.itemIndex"> + <div class="content-wrapper flex justify-between"> + + <!-- 淇℃伅闈㈡澘 --> + <div class="info-content flex flex-col justify-between"> + <div class="info-item"> + <span class="info-label">閫氭嫨鏃堕棶锛�</span> + <span class="info-value">{{ item.time }}</span> + </div> + <div class="info-item"> + <span class="info-label">闅愭偅绫诲瀷锛�</span> + <span class="info-value">{{ item.type }}</span> + </div> + <div class="info-item"> + <span class="info-label">璐d换鍗曚綅锛�</span> + <span class="info-value">{{ item.unit }}</span> + </div> + <div class="info-item"> + <span class="info-label">閯傛敼鏃堕檺锛�</span> + <span class="info-value">{{ item.rectTime }}</span> + </div> + <div class="info-item"> + <span class="info-label">瀹屾垚鎯呭喌锛�</span> + <span class="info-value">{{ item.state }}</span> + </div> + </div> + + <!-- 鍥剧墖鍒楄〃 --> + <div class="image-content flex justify-between items-center"> + <ImageSwiper :imageList="item.images"></ImageSwiper> + </div> + </div> + </div> + </div> + </template> + </RightTitle> +</template> + +<script setup lang="ts"> +import testImage from '@/assets/img/test_img/閬撳畨鍔�.png'; + +import RightTitle from "@/components/right-title"; +import ImageSwiper from './imageSwiper.vue'; +import { ref } from 'vue'; + + +const selectItems = ref([ + { itemIndex: 1, name: '瀹夊叏闅愭偅', isActive: false }, + { itemIndex: 2, name: '鏁版嵁缁熻', isActive: true }, +]); + +const contentList = ref([ + { + itemIndex: 1, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + images: [ + testImage, + testImage, + testImage, + testImage, + testImage, + ] + }, + { + itemIndex: 2, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + images: [ + testImage, + testImage, + testImage, + testImage, + testImage, + ] + }, + { + itemIndex: 3, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + images: [ + testImage, + testImage, + testImage, + testImage, + testImage, + ] + } +]); + +</script> + +<style scoped lang="scss"> +.select-container { + flex-shrink: 0; +} + +.item { + margin: 0 8px; + padding: 10px 14px; + font-size: 12px; + background: rgba(67, 102, 155, 0.4); + border: 1px solid rgba(47, 91, 157, 0.8); + flex-shrink: 0; +} + +.item:last-child { + margin-right: 0; +} +.content-container { + height: 560px; +} +.content-item { + background-color: rgba(17, 34, 58, 0.6); + padding: 23px 7px 23px 23px; + border: 1px solid #29466A; +} +.content-item:last-child { + margin-bottom: 0px; +} + +.info-item { + font-size: 12px; + + .info-label { + color: rgba(91, 131, 189, 1); + } +} +</style> \ No newline at end of file diff --git a/src/views/daoAnOffice/right/publicize/index.vue b/src/views/daoAnOffice/right/publicize/index.vue new file mode 100644 index 0000000..b2c56b4 --- /dev/null +++ b/src/views/daoAnOffice/right/publicize/index.vue @@ -0,0 +1,153 @@ +<!-- 浜ら�氬浼� --> + + +<template> + <RightTitle title="浜ら�氬浼�"> + <template #top> + <div class="select-container flex"> + <div class="item whitespace-no-wrap cursor-pointer" v-for="item in selectItems" :key="item.itemIndex"> + {{ item.name }} + </div> + </div> + </template> + <template #content> + <div class="content-container flex flex-wrap justify-between content-between"> + <div class="content-item" v-for="item in contentList" :key="item.itemIndex"> + <div class="content-wrapper"> + <div class="content-video-info"> + <img :src="item.image" class="video-cover"> + <div class="video-icon"> + <el-icon> + <VideoPlay /> + </el-icon> + </div> + </div> + <div class="content-video-name"> + {{ item.unit }} + </div> + </div> + </div> + </div> + </template> + </RightTitle> +</template> + +<script setup lang="ts"> +import testImage from '@/assets/img/test_img/閬撳畨鍔�.png'; + +import RightTitle from "@/components/right-title"; +import { ref } from 'vue'; + + +const selectItems = ref([ + { itemIndex: 1, name: '浜ら�氬浼�', isActive: false }, + { itemIndex: 2, name: '浜ら�氫簨鏁�', isActive: true }, +]); + +const contentList = ref([ + { + itemIndex: 1, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + image: testImage + }, + { + itemIndex: 2, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + image: testImage + }, + { + itemIndex: 3, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + image: testImage + }, + { + itemIndex: 4, + time: '2023 12-12', + type: '閬撹矾闅愭偅', + unit: '閮芥睙鍫板競鍏畨灞�', + rectTime: '2023-13-23', + state: '鎶慨涓�', + image: testImage + }, +]); + +</script> + +<style scoped lang="scss"> +.select-container { + flex-shrink: 0; +} + +.item { + margin: 0 8px; + padding: 10px 14px; + font-size: 12px; + background: rgba(67, 102, 155, 0.4); + border: 1px solid rgba(47, 91, 157, 0.8); + flex-shrink: 0; +} + +.item:last-child { + margin-right: 0; +} + +.content-container { + width: 100%; + height: 560px; + overflow-y: hidden; + background-color: rgba(17, 34, 58, 0.6); + border: 1px solid rgba(47, 91, 157, 0.8); + padding: 22px 20px; + +} + +.content-item { + width: 279px; + flex-shrink: 0; + cursor: pointer; + // margin-bottom: 24px; +} +// .content-item:last-child { +// margin-bottom: 0px; +// } + +.content-video-info { + width: 100%; + height: 209px; + position: relative; +} + +.video-icon { + width: 45px; + height: 45px; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + font-size: 45px; + opacity: 0.7; +} +.video-cover { + width: 100%; + height: 100%; + object-fit: fill; +} +.content-video-name { + text-align: center; + margin-top: 16px; + font-size: 12px; + color: rgba(91, 131, 189, 1); +} +</style> \ No newline at end of file -- Gitblit v1.8.0