|
|
@@ -0,0 +1,222 @@
|
|
|
+<!-- -->
|
|
|
+<template>
|
|
|
+ <div class="home">
|
|
|
+ <div class="conten">
|
|
|
+ <!-- 顶部 -->
|
|
|
+ <div class="top">
|
|
|
+ <h3>场景详情</h3>
|
|
|
+ <!-- <img class="close" src="./assets/font/close.svg" alt="" /> -->
|
|
|
+ </div>
|
|
|
+ <!-- 内容 -->
|
|
|
+ <div class="main" v-if="imgBigSrc">
|
|
|
+ <!-- 左边大图 -->
|
|
|
+ <div class="main_left">
|
|
|
+ <img :src="require('@/assets/info/' + baseSrc + imgBigSrc)" alt="" />
|
|
|
+ </div>
|
|
|
+ <!-- 右边导览 -->
|
|
|
+ <div class="main_right">
|
|
|
+ <div class="arrow" @click="changeInd(-1)">
|
|
|
+ <img src="./assets/font/up.svg" alt="" />
|
|
|
+ </div>
|
|
|
+ <ul class="sm_img">
|
|
|
+ <li
|
|
|
+ v-for="(item, index) in data.imgNum"
|
|
|
+ :key="item.name"
|
|
|
+ @click="imgInd = index"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ :class="{ active: index === imgInd }"
|
|
|
+ :src="require('@/assets/info/' + baseSrc + item.name)"
|
|
|
+ alt=""
|
|
|
+ />
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
+ <div class="arrow" @click="changeInd(1)">
|
|
|
+ <img src="./assets/font/down.svg" alt="" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 底部 -->
|
|
|
+ <div class="floor">
|
|
|
+ <div class="floor_title">
|
|
|
+ <h3>{{ data.title }}</h3>
|
|
|
+ <span>{{ time }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="floor_tag">
|
|
|
+ <div v-for="(item, index) in data.tag" :key="index">{{ item }}</div>
|
|
|
+ </div>
|
|
|
+ <p>{{ data.txt }}</p>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import moment from "moment";
|
|
|
+import { infoData } from "./data.js";
|
|
|
+export default {
|
|
|
+ components: {},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ baseSrc: "",
|
|
|
+ data: [],
|
|
|
+ imgInd: 0,
|
|
|
+ imgBigSrc: "",
|
|
|
+ time: "",
|
|
|
+ timeId: null,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ imgInd(val) {
|
|
|
+ // 改变大图地址
|
|
|
+ this.imgBigSrc = this.data.imgNum[val].name;
|
|
|
+ // 改变滚动位置为居中
|
|
|
+ let dom = document.querySelector(".sm_img");
|
|
|
+ dom.scrollTo({ top: 135 * (val - 1), behavior: "smooth" });
|
|
|
+ },
|
|
|
+ },
|
|
|
+ computed: {},
|
|
|
+ methods: {
|
|
|
+ //点击上下箭头
|
|
|
+ changeInd(val) {
|
|
|
+ let temp = this.imgInd + val;
|
|
|
+ if (temp < 0) temp = this.data.imgNum.length - 1;
|
|
|
+ if (temp > this.data.imgNum.length - 1) temp = 0;
|
|
|
+ this.imgInd = temp;
|
|
|
+ },
|
|
|
+ // 获取例子栏参数方法
|
|
|
+ GetQueryString(name) {
|
|
|
+ let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
|
+ let r = window.location.search.substr(1).match(reg);
|
|
|
+ if (r != null) return unescape(r[2]);
|
|
|
+ return "one";
|
|
|
+ },
|
|
|
+ },
|
|
|
+ //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
+ created() {
|
|
|
+ // 获取地址栏参数
|
|
|
+ let temp = this.GetQueryString("m");
|
|
|
+ this.baseSrc = temp + "/";
|
|
|
+ this.data = infoData[temp];
|
|
|
+ this.imgBigSrc = this.data.imgNum[0].name;
|
|
|
+ // 获取当前时间
|
|
|
+ this.time = moment(new Date()).format("YYYY-MM-DD HH:mm");
|
|
|
+ // 实时更新时间
|
|
|
+ this.timeId = setInterval(() => {
|
|
|
+ this.time = moment(new Date()).format("YYYY-MM-DD HH:mm");
|
|
|
+ }, 30000);
|
|
|
+ },
|
|
|
+ //生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
+ mounted() {},
|
|
|
+ beforeCreate() {}, //生命周期 - 创建之前
|
|
|
+ beforeMount() {}, //生命周期 - 挂载之前
|
|
|
+ beforeUpdate() {}, //生命周期 - 更新之前
|
|
|
+ updated() {}, //生命周期 - 更新之后
|
|
|
+ beforeDestroy() {}, //生命周期 - 销毁之前
|
|
|
+ destroyed() {
|
|
|
+ clearInterval(this.timeId);
|
|
|
+ }, //生命周期 - 销毁完成
|
|
|
+ activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang='less' scoped>
|
|
|
+.home {
|
|
|
+ .conten {
|
|
|
+ margin: 0 auto;
|
|
|
+ background-color: #ffffff;
|
|
|
+ height: 750px;
|
|
|
+ padding: 30px;
|
|
|
+ padding-top: 0;
|
|
|
+ color: #323233;
|
|
|
+ width: 1150px;
|
|
|
+ border-radius: 5px;
|
|
|
+ .top {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+ height: 70px;
|
|
|
+ .close {
|
|
|
+ cursor: pointer;
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .main {
|
|
|
+ height: 500px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ .main_left {
|
|
|
+ width: 900px;
|
|
|
+ height: 100%;
|
|
|
+ & > img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .main_right {
|
|
|
+ width: 210px;
|
|
|
+ height: 100%;
|
|
|
+ .arrow {
|
|
|
+ cursor: pointer;
|
|
|
+ height: 40px;
|
|
|
+ border-radius: 5px;
|
|
|
+ background-color: #f5f7fa;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ & > img {
|
|
|
+ width: 16px;
|
|
|
+ height: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .sm_img {
|
|
|
+ overflow-y: auto;
|
|
|
+ margin: 18px 0;
|
|
|
+ height: 386px;
|
|
|
+ & > li {
|
|
|
+ cursor: pointer;
|
|
|
+ height: 115px;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ &:last-child {
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+ & > img {
|
|
|
+ display: block;
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 206px;
|
|
|
+ height: 115px;
|
|
|
+ }
|
|
|
+ .active {
|
|
|
+ border: 2px solid #15bec8;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .floor {
|
|
|
+ padding: 0 5px 0px 0;
|
|
|
+ height: 178px;
|
|
|
+ overflow-y: auto;
|
|
|
+ margin-top: 20px;
|
|
|
+ .floor_title {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ }
|
|
|
+ .floor_tag {
|
|
|
+ margin: 16px 0 26px;
|
|
|
+ display: flex;
|
|
|
+ & > div {
|
|
|
+ color: #666666;
|
|
|
+ border-radius: 3px;
|
|
|
+ background-color: #ebedf0;
|
|
|
+ height: 24px;
|
|
|
+ line-height: 24px;
|
|
|
+ margin-right: 12px;
|
|
|
+ padding: 0 5px;
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|