|
@@ -1,511 +0,0 @@
|
|
|
-<template>
|
|
|
- <div class="antique" :class="{ full: smBtn }">
|
|
|
- <!-- 毛玻璃 -->
|
|
|
- <div class="meanPageMBL"></div>
|
|
|
-
|
|
|
- <div class="main">
|
|
|
- <div class="top">
|
|
|
- <div class="row">类型:</div>
|
|
|
- <div
|
|
|
- class="row"
|
|
|
- v-for="item in topData"
|
|
|
- @click="cutType(item.type)"
|
|
|
- :key="item.name"
|
|
|
- :class="{ active: item.type === formData.type }"
|
|
|
- >
|
|
|
- {{ item.name }}
|
|
|
- </div>
|
|
|
- <div class="search" @keyup.enter="mySearch">
|
|
|
- <el-input
|
|
|
- prefix-icon="el-icon-search"
|
|
|
- type="text"
|
|
|
- placeholder="搜索"
|
|
|
- v-model="formData.searchKey"
|
|
|
- maxlength="10"
|
|
|
- />
|
|
|
- <span class="btnn" @click="mySearch"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 没有数据的时候 -->
|
|
|
- <div class="hint" v-if="myArr.length === 0">
|
|
|
- <img src="@/assets/img/serachNull.png" alt="" />
|
|
|
- <p>暂时没有数据</p>
|
|
|
- <p>请试一下其他关键字</p>
|
|
|
- </div>
|
|
|
- <!-- 渲染的内容 -->
|
|
|
- <div class="infoBox" v-else>
|
|
|
- <div
|
|
|
- @click="lookInfo(item)"
|
|
|
- class="infoRow"
|
|
|
- :title="item.name"
|
|
|
- v-for="item in myArr"
|
|
|
- :key="item.id"
|
|
|
- >
|
|
|
- <img :src="baseURL + item.thumb" alt="" />
|
|
|
- <p>{{ item.name }}</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 分页 -->
|
|
|
- <div class="paging" v-show="myArr.length !== 0">
|
|
|
- <el-pagination
|
|
|
- layout="prev,pager,next,jumper"
|
|
|
- :total="total"
|
|
|
- :current-page="formData.pageNum"
|
|
|
- @current-change="currentChange"
|
|
|
- @size-change="sizeChange"
|
|
|
- >
|
|
|
- </el-pagination>
|
|
|
- </div>
|
|
|
- <!-- 关闭按钮 -->
|
|
|
- <div class="close el-icon-close" @click="$emit('close')"></div>
|
|
|
- </div>
|
|
|
- <!-- 模型和图片 -->
|
|
|
- <div class="model" v-if="modelShow">
|
|
|
- <div class="ifrCon" ref="ifrCon">
|
|
|
- <img
|
|
|
- :src="baseURL + txtInfo.thumb"
|
|
|
- alt=""
|
|
|
- v-if="txtInfo.type === 'img'"
|
|
|
- />
|
|
|
- <div class="iframeBox" v-else>
|
|
|
- <!-- 全屏的底部名字和右上角logo -->
|
|
|
- <div class="fullLogo" v-if="fullscreen"></div>
|
|
|
- <div class="fullName" v-if="fullscreen">{{txtInfo.name}}</div>
|
|
|
- <iframe :src="mySrc" frameborder="0"></iframe>
|
|
|
- </div>
|
|
|
- <!-- 全屏按钮 -->
|
|
|
- <div class="full" @click="screen">
|
|
|
- <img src="@/assets/img/tab3FullX.png" alt="" v-if="fullscreen" />
|
|
|
- <img src="@/assets/img/tab3Full.png" alt="" v-else />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="rightTxt">
|
|
|
- <h3>{{ txtInfo.name }}</h3>
|
|
|
- <p class="ppov" v-html="txtInfo.description"></p>
|
|
|
- </div>
|
|
|
- <!-- 返回按钮 -->
|
|
|
- <div class="close el-icon-arrow-left" @click="modelShow = false"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-</template>
|
|
|
-
|
|
|
-<script>
|
|
|
-import axios from "@/utils/request";
|
|
|
-import { goodList } from "@/utils/api";
|
|
|
-export default {
|
|
|
- name: "antique",
|
|
|
- props: {
|
|
|
- smBtn: {
|
|
|
- type: Boolean,
|
|
|
- default: false,
|
|
|
- },
|
|
|
- },
|
|
|
- components: {},
|
|
|
- data() {
|
|
|
- //这里存放数据
|
|
|
- return {
|
|
|
- total: 0,
|
|
|
- baseURL: "",
|
|
|
- topData: [
|
|
|
- { name: "全部", type: "" },
|
|
|
- { name: "精品图片", type: "img" },
|
|
|
- { name: "三维模型", type: "model" },
|
|
|
- ],
|
|
|
- formData: {
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10,
|
|
|
- searchKey: "",
|
|
|
- type: "",
|
|
|
- },
|
|
|
- myArr: [],
|
|
|
- // 有关三维模型的数据
|
|
|
- mySrc: "",
|
|
|
- modelShow: false,
|
|
|
- fullscreen: false,
|
|
|
- txtInfo: {},
|
|
|
- };
|
|
|
- },
|
|
|
- //监听属性 类似于data概念
|
|
|
- computed: {},
|
|
|
- //监控data中的数据变化
|
|
|
- watch: {},
|
|
|
- //方法集合
|
|
|
- methods: {
|
|
|
- // 点击模型全屏
|
|
|
- screen() {
|
|
|
- const element = this.$refs.ifrCon; // 获取容器
|
|
|
- if (this.fullscreen) {
|
|
|
- // 如果已经全屏了就退出全屏
|
|
|
-
|
|
|
- if (document.exitFullscreen) {
|
|
|
- document.exitFullscreen();
|
|
|
- } else if (document.webkitCancelFullScreen) {
|
|
|
- document.webkitCancelFullScreen();
|
|
|
- } else if (document.mozCancelFullScreen) {
|
|
|
- document.mozCancelFullScreen();
|
|
|
- } else if (document.msExitFullscreen) {
|
|
|
- document.msExitFullscreen();
|
|
|
- }
|
|
|
- } else {
|
|
|
- // 如果不是全屏就变成全屏
|
|
|
- if (element.requestFullscreen) {
|
|
|
- element.requestFullscreen();
|
|
|
- } else if (element.webkitRequestFullScreen) {
|
|
|
- element.webkitRequestFullScreen();
|
|
|
- } else if (element.mozRequestFullScreen) {
|
|
|
- element.mozRequestFullScreen();
|
|
|
- } else if (element.msRequestFullscreen) {
|
|
|
- // IE11
|
|
|
- element.msRequestFullscreen();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- this.fullscreen = !this.fullscreen;
|
|
|
- },
|
|
|
- lookInfo(item) {
|
|
|
- this.txtInfo = item;
|
|
|
- // 三维模型
|
|
|
- this.mySrc = "4dage/Model.html?m=" + item.filePath;
|
|
|
- this.modelShow = true;
|
|
|
- },
|
|
|
- mySearch() {
|
|
|
- this.formData.pageNum = 1;
|
|
|
- this.goodList(this.formData);
|
|
|
- },
|
|
|
- cutType(type) {
|
|
|
- this.formData.type = type;
|
|
|
- this.formData.pageNum = 1;
|
|
|
- this.goodList(this.formData);
|
|
|
- },
|
|
|
- // 分页器方法
|
|
|
- currentChange(val) {
|
|
|
- // console.log('当前页改变了', val)
|
|
|
- this.formData.pageNum = val;
|
|
|
- this.goodList(this.formData);
|
|
|
- },
|
|
|
- sizeChange(val) {
|
|
|
- // console.log('条数改变了', val)
|
|
|
- this.formData.pageNum = 1;
|
|
|
- this.formData.pageSize = val;
|
|
|
- this.goodList(this.formData);
|
|
|
- },
|
|
|
- // 封装获取列表函数
|
|
|
- async goodList(data) {
|
|
|
- const res = await goodList(data);
|
|
|
- this.total = res.data.total;
|
|
|
- this.myArr = res.data.records;
|
|
|
- },
|
|
|
- },
|
|
|
- //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
- created() {
|
|
|
- // 获取服务器前缀地址
|
|
|
- this.baseURL = axios.defaults.baseURL;
|
|
|
- this.goodList(this.formData);
|
|
|
- // 设置一个全局变量控制空格建的监听
|
|
|
- window.myKeyBlank = true;
|
|
|
- },
|
|
|
- //生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
- mounted() {
|
|
|
- // 监听esc事件
|
|
|
- document.addEventListener("webkitfullscreenchange", (e) => {
|
|
|
- if (!e.currentTarget.webkitIsFullScreen) {
|
|
|
- // console.log('退出啊webkitIsFullScreen11111111111')
|
|
|
- setTimeout(() => {
|
|
|
- this.fullscreen = false;
|
|
|
- }, 100);
|
|
|
- } else {
|
|
|
- // console.log('进入webkitIsFullScreen')
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- document.addEventListener("fullscreenchange", () => {
|
|
|
- if (!document.fullscreenElement) {
|
|
|
- // console.log('退出啊fullscreenchange1111111111')
|
|
|
- setTimeout(() => {
|
|
|
- this.fullscreen = false;
|
|
|
- }, 100);
|
|
|
- } else {
|
|
|
- // console.log('进入fullscreenchange')
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- document.addEventListener("MSFullscreenChange", () => {
|
|
|
- if (!document.msFullscreenElement) {
|
|
|
- // console.log('IE退出111111')
|
|
|
- setTimeout(() => {
|
|
|
- this.fullscreen = false;
|
|
|
- }, 100);
|
|
|
- } else {
|
|
|
- // console.log('IE进')
|
|
|
- }
|
|
|
- });
|
|
|
- document.addEventListener("mozfullscreenchange", () => {
|
|
|
- if (!document.mozFullScreenElement) {
|
|
|
- // console.log('火狐退出1111111111111')
|
|
|
- this.$nextTick(() => {
|
|
|
- setTimeout(() => {
|
|
|
- this.fullscreen = false;
|
|
|
- }, 100);
|
|
|
- });
|
|
|
- } else {
|
|
|
- // console.log('火狐进')
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- beforeCreate() {}, //生命周期 - 创建之前
|
|
|
- beforeMount() {}, //生命周期 - 挂载之前
|
|
|
- beforeUpdate() {}, //生命周期 - 更新之前
|
|
|
- updated() {}, //生命周期 - 更新之后
|
|
|
- beforeDestroy() {
|
|
|
- window.myKeyBlank = false;
|
|
|
- }, //生命周期 - 销毁之前
|
|
|
- destroyed() {}, //生命周期 - 销毁完成
|
|
|
- activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发
|
|
|
-};
|
|
|
-</script>
|
|
|
-<style lang='less' scoped>
|
|
|
-.antique {
|
|
|
- transition: width 0.3s;
|
|
|
- color: #fff6d2;
|
|
|
- position: fixed;
|
|
|
- top: 0;
|
|
|
- left: 0;
|
|
|
- z-index: 998;
|
|
|
- width: calc(100% - 200px);
|
|
|
- height: 100%;
|
|
|
- // m毛玻璃
|
|
|
- .meanPageMBL {
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- background: rgba(161, 101, 59, 0.8);
|
|
|
- backdrop-filter: blur(4px);
|
|
|
- z-index: -1;
|
|
|
- }
|
|
|
- .close {
|
|
|
- color: #cc946d;
|
|
|
- font-size: 34px;
|
|
|
- cursor: pointer;
|
|
|
- position: absolute;
|
|
|
- right: 40px;
|
|
|
- top: 55px;
|
|
|
- }
|
|
|
- .main {
|
|
|
- color: #774926;
|
|
|
- padding: 55px 26px 0;
|
|
|
- position: absolute;
|
|
|
- top: 50%;
|
|
|
- left: 50%;
|
|
|
- transform: translate(-50%, -50%);
|
|
|
- width: 1200px;
|
|
|
- height: 700px;
|
|
|
- background: url("../../../assets/img/goodBg.png");
|
|
|
- background-size: 100% 100%;
|
|
|
- .top {
|
|
|
- height: 36px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- font-size: 16px;
|
|
|
- .row {
|
|
|
- cursor: pointer;
|
|
|
- height: 36px;
|
|
|
- line-height: 36px;
|
|
|
- padding: 0 20px;
|
|
|
- border-radius: 18px;
|
|
|
- margin-right: 15px;
|
|
|
- &:nth-of-type(1) {
|
|
|
- pointer-events: none;
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
- }
|
|
|
- .active {
|
|
|
- background-color: #cc946d;
|
|
|
- color: #fff6d2;
|
|
|
- }
|
|
|
- .search {
|
|
|
- position: relative;
|
|
|
- /deep/.el-icon-search {
|
|
|
- color: #774926;
|
|
|
- font-size: 20px;
|
|
|
- margin-top: -1px;
|
|
|
- }
|
|
|
- .btnn {
|
|
|
- z-index: 10;
|
|
|
- cursor: pointer;
|
|
|
- position: absolute;
|
|
|
- left: 0;
|
|
|
- top: 0;
|
|
|
- height: 36px;
|
|
|
- width: 36px;
|
|
|
- border-radius: 50%;
|
|
|
- background-color: transparent;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .hint {
|
|
|
- text-align: center;
|
|
|
- margin-top: 100px;
|
|
|
- width: 100%;
|
|
|
- height: 380px;
|
|
|
- & > p {
|
|
|
- color: #cc946d;
|
|
|
- font-size: 20px;
|
|
|
- margin-top: 20px;
|
|
|
- }
|
|
|
- }
|
|
|
- .infoBox {
|
|
|
- display: flex;
|
|
|
- flex-wrap: wrap;
|
|
|
- margin-top: 55px;
|
|
|
- width: 100%;
|
|
|
- height: 410px;
|
|
|
- .infoRow {
|
|
|
- margin-right: 12px;
|
|
|
- margin-bottom: 26px;
|
|
|
- cursor: pointer;
|
|
|
- overflow: hidden;
|
|
|
- width: 220px;
|
|
|
- height: 192px;
|
|
|
- border-radius: 6px;
|
|
|
- background-color: #fff;
|
|
|
- & > img {
|
|
|
- width: 100%;
|
|
|
- height: 154px;
|
|
|
- object-fit: cover;
|
|
|
- }
|
|
|
- & > p {
|
|
|
- padding: 0 10px;
|
|
|
- width: 100%;
|
|
|
- height: 38px;
|
|
|
- line-height: 38px;
|
|
|
- font-size: 14px;
|
|
|
- text-align: center;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- white-space: nowrap;
|
|
|
- }
|
|
|
- &:nth-of-type(5n) {
|
|
|
- margin-right: 0;
|
|
|
- }
|
|
|
- &:hover {
|
|
|
- & > p {
|
|
|
- color: #cc946d;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .paging {
|
|
|
- position: absolute;
|
|
|
- bottom: 70px;
|
|
|
- left: 0;
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- }
|
|
|
- }
|
|
|
- // 模型
|
|
|
- .model {
|
|
|
- color: #774926;
|
|
|
- padding: 110px 26px 0;
|
|
|
- position: absolute;
|
|
|
- top: 50%;
|
|
|
- left: 50%;
|
|
|
- transform: translate(-50%, -50%);
|
|
|
- width: 1200px;
|
|
|
- height: 700px;
|
|
|
- background: url("../../../assets/img/goodBg.png");
|
|
|
- background-size: 100% 100%;
|
|
|
- display: flex;
|
|
|
- .ifrCon {
|
|
|
- background-color: #fff6d2;
|
|
|
- position: relative;
|
|
|
- width: 558px;
|
|
|
- height: 478px;
|
|
|
- .iframeBox{
|
|
|
- position: relative;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- .fullLogo{
|
|
|
- position: absolute;
|
|
|
- z-index: 10;
|
|
|
- right: 10px;
|
|
|
- top: 10px;
|
|
|
- width: 166px;
|
|
|
- height: 43px;
|
|
|
- background: url('../../../assets/img/logo.png');
|
|
|
- background-size: 100% 100%;
|
|
|
- }
|
|
|
- .fullName{
|
|
|
- position: absolute;
|
|
|
- left: 50%;
|
|
|
- bottom: 20px;
|
|
|
- transform: translateX(-50%);
|
|
|
- color: #774926;
|
|
|
- font-size: 24px;
|
|
|
- }
|
|
|
- iframe {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- }
|
|
|
- }
|
|
|
- & > img {
|
|
|
- max-width: 100%;
|
|
|
- max-height: 100%;
|
|
|
- position: absolute;
|
|
|
- left: 50%;
|
|
|
- top: 50%;
|
|
|
- transform: translate(-50%, -50%);
|
|
|
- }
|
|
|
- .full {
|
|
|
- width: 30px;
|
|
|
- height: 30px;
|
|
|
- cursor: pointer;
|
|
|
- position: absolute;
|
|
|
- right: 10px;
|
|
|
- bottom: 10px;
|
|
|
- color: #fff;
|
|
|
- & > img {
|
|
|
- width: 30px;
|
|
|
- height: 30px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .rightTxt {
|
|
|
- padding-right: 20px;
|
|
|
- height: 478px;
|
|
|
- flex: 1;
|
|
|
- margin-left: 110px;
|
|
|
- display: flex;
|
|
|
- flex-direction: column;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- & > h3 {
|
|
|
- width: 100%;
|
|
|
- word-break: break-all;
|
|
|
- font-size: 30px;
|
|
|
- margin-bottom: 20px;
|
|
|
- }
|
|
|
- & > P {
|
|
|
- padding-right: 15px;
|
|
|
- max-height: calc(100% - 60px);
|
|
|
- overflow-y: auto;
|
|
|
- line-height: 24px;
|
|
|
- width: 100%;
|
|
|
- word-break: break-all;
|
|
|
- color: #cc946d;
|
|
|
- font-size: 16px;
|
|
|
- }
|
|
|
-
|
|
|
- .ppov::-webkit-scrollbar-thumb {
|
|
|
- outline: 2px solid #cc946d;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.full {
|
|
|
- width: 100%;
|
|
|
-}
|
|
|
-</style>
|