|
|
@@ -1,51 +1,73 @@
|
|
|
<template>
|
|
|
<div class="list">
|
|
|
- <div class="l-con" :class="showList?'active':''" v-if="!(showInfo.catalogRoot.length == 1 && scenes.length == 1 && showInfo.catalogs.length == 1)">
|
|
|
+ <div class="l-con" :class="showList ? 'active' : ''" v-if="!(showInfo.catalogRoot.length == 1 && scenes.length == 1 && showInfo.catalogs.length == 1)">
|
|
|
<div class="pic-con">
|
|
|
-
|
|
|
- <div class="clip-scroller" ref="sw" v-swiper:mySwiper="swiperOptions" v-if="scenes.length>0">
|
|
|
+ <div class="clip-scroller" ref="sw" v-swiper:mySwiper="swiperOptions" v-if="scenes.length > 0">
|
|
|
<ul class="pic-list swiper-wrapper">
|
|
|
- <li class="swiper-slide" @click="handleVR(item,i)" v-for="(item,i) in scenes" :key="i">
|
|
|
- <div :class="{active:selected.sceneCode==item.sceneCode}">
|
|
|
- <img :src="item.icon+`?${Math.random()}`" alt="" />
|
|
|
- <i class="iconfont" :class="item.type!='4dkk'?'icon-edit_type_panorama':'icon-edit_type_3d'"></i>
|
|
|
- <rollName :offset="20" :active="selected.sceneCode==item.sceneCode" class="pic-name" :myref="'subw'+item.id" :name="item.sceneTitle"/>
|
|
|
+ <li class="swiper-slide" @click="handleVR(item, i)" v-for="(item, i) in scenes" :key="i">
|
|
|
+ <div :class="{ active: selected.sceneCode == item.sceneCode }">
|
|
|
+ <img :src="item.icon + `?${Math.random()}`" alt="" />
|
|
|
+ <i class="iconfont" :class="item.type != '4dkk' ? 'icon-edit_type_panorama' : 'icon-edit_type_3d'"></i>
|
|
|
+ <rollName :offset="20" :active="selected.sceneCode == item.sceneCode" class="pic-name" :myref="'subw' + item.id" :name="item.sceneTitle" />
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
<div ref="sw1" class="clip-scroller" v-swiper:mySwipera="swiperOptions" v-if="childTab.length > 1">
|
|
|
-
|
|
|
- <ul class="tap pp-tap swiper-wrapper" >
|
|
|
- <li class="swiper-slide" @click="handleTabtow(item,i)" v-for="(item,i) in childTab" :key="i">
|
|
|
- <rollName :offset="30" :mgin="20" :active="item.id == tabtowActive.id" class="btn pic-rect" :class="{active:item.id == tabtowActive.id}" :myref="'ww'+item.id" :name="item.name"/>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <ul class="tap pp-tap swiper-wrapper">
|
|
|
+ <li class="swiper-slide" @click="handleTabtow(item, i)" v-for="(item, i) in childTab" :key="i">
|
|
|
+ <rollName
|
|
|
+ :offset="30"
|
|
|
+ :mgin="20"
|
|
|
+ :active="item.id == tabtowActive.id"
|
|
|
+ class="btn pic-rect"
|
|
|
+ :class="{ active: item.id == tabtowActive.id }"
|
|
|
+ :myref="'ww' + item.id"
|
|
|
+ :name="item.name"
|
|
|
+ />
|
|
|
+ </li>
|
|
|
+ </ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="clip-scroller" ref="sw2" v-swiper:mySwiperb="swiperOptions" v-if="showInfo.catalogRoot.length > 0 && showInfo.catalogs.length > 1">
|
|
|
- <ul class="tap swiper-wrapper" v-if="showInfo.catalogRoot.length > 1">
|
|
|
- <li class="swiper-slide" @click="handleTabone(item,i)" :class="{ active: item.id == taboneActive.id }" v-for="(item,i) in showInfo.catalogRoot" :key="i">
|
|
|
- <rollName :offset="30" :mgin="20" :active="item.id == taboneActive.id" class="btn rect" :class="{active:item.id == taboneActive.id}" :myref="'zw'+item.id" :name="item.name"/>
|
|
|
+
|
|
|
+ <div class="clip-scroller" ref="sw2" v-swiper:mySwiperb="swiperOptions" v-if="showInfo.catalogRoot.length > 0 && showInfo.catalogs.length > 1">
|
|
|
+ <ul class="tap swiper-wrapper" v-if="showInfo.catalogRoot.length > 1">
|
|
|
+ <li
|
|
|
+ class="swiper-slide"
|
|
|
+ @click="handleTabone(item, i)"
|
|
|
+ :class="{ active: item.id == taboneActive.id }"
|
|
|
+ v-for="(item, i) in showInfo.catalogRoot"
|
|
|
+ :key="i"
|
|
|
+ >
|
|
|
+ <rollName
|
|
|
+ :offset="30"
|
|
|
+ :mgin="20"
|
|
|
+ :active="item.id == taboneActive.id"
|
|
|
+ class="btn rect"
|
|
|
+ :class="{ active: item.id == taboneActive.id }"
|
|
|
+ :myref="'zw' + item.id"
|
|
|
+ :name="item.name"
|
|
|
+ />
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
-
|
|
|
- <div v-if="selected.type=='4dkk' && isShowDL" class="menu">
|
|
|
- <div @click="handleDL" v-if="isShowDL">
|
|
|
- <i class="iconfont" :class="isDaolan?'icon-show_suspension':'icon-show_playback'"></i>
|
|
|
- </div>
|
|
|
+ <div v-if="selected.type == '4dkk' && isShowDL" class="menu">
|
|
|
+ <div @click="handleDL" v-if="isShowDL">
|
|
|
+ <i class="iconfont" :class="isDaolan ? 'icon-show_suspension' : 'icon-show_playback'"></i>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="btn dl" :class="{deepbg:showList}" v-if="!(showInfo.catalogRoot.length == 1 && scenes.length == 1 && showInfo.catalogs.length == 1)" @click="showList = !showList">
|
|
|
- <i class="iconfont " :class="showList?'icon-nav_scene_down':'icon-nav_scene_up'"></i>场景导航
|
|
|
+ <div
|
|
|
+ class="btn dl"
|
|
|
+ :class="{ deepbg: showList }"
|
|
|
+ v-if="!(showInfo.catalogRoot.length == 1 && scenes.length == 1 && showInfo.catalogs.length == 1)"
|
|
|
+ @click="handleShowList"
|
|
|
+ >
|
|
|
+ <i class="iconfont " :class="showList ? 'icon-nav_scene_down' : 'icon-nav_scene_up'"></i>场景导航
|
|
|
</div>
|
|
|
-
|
|
|
-
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -58,214 +80,237 @@ import { directive } from "vue-awesome-swiper";
|
|
|
import "swiper/css/swiper.css";
|
|
|
|
|
|
export default {
|
|
|
- props:['select','mapvisit'],
|
|
|
- components:{rollName},
|
|
|
+ props: ["select", "mapvisit"],
|
|
|
+ components: { rollName },
|
|
|
directives: {
|
|
|
swiper: directive,
|
|
|
},
|
|
|
- data(){
|
|
|
- let menu = [{
|
|
|
- id:'pano',
|
|
|
- name:'漫游',
|
|
|
- icon:'icon-show_roaming_normal',
|
|
|
- active:'icon-show_roaming_selected',
|
|
|
- params:'pano'
|
|
|
- },{
|
|
|
- id:'2d',
|
|
|
- name:'平面',
|
|
|
- icon:'icon-show_plane_normal',
|
|
|
- active:'icon-show_plane_selected',
|
|
|
- params:'2d'
|
|
|
- },{
|
|
|
- id:'3d',
|
|
|
- name:'三维',
|
|
|
- icon:'icon-show_3d_normal',
|
|
|
- active:'icon-show_3d_selected',
|
|
|
- params:'3d'
|
|
|
- }]
|
|
|
- return{
|
|
|
- isDaolan:false,
|
|
|
- isShowDL:'',
|
|
|
- currentActive:'pano',
|
|
|
- taboneActive:{children:[]},
|
|
|
- tabtowActive:'',
|
|
|
- childTab:[],
|
|
|
+ data() {
|
|
|
+ let menu = [
|
|
|
+ {
|
|
|
+ id: "pano",
|
|
|
+ name: "漫游",
|
|
|
+ icon: "icon-show_roaming_normal",
|
|
|
+ active: "icon-show_roaming_selected",
|
|
|
+ params: "pano",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "2d",
|
|
|
+ name: "平面",
|
|
|
+ icon: "icon-show_plane_normal",
|
|
|
+ active: "icon-show_plane_selected",
|
|
|
+ params: "2d",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: "3d",
|
|
|
+ name: "三维",
|
|
|
+ icon: "icon-show_3d_normal",
|
|
|
+ active: "icon-show_3d_selected",
|
|
|
+ params: "3d",
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ return {
|
|
|
+ isDaolan: false,
|
|
|
+ isShowDL: "",
|
|
|
+ currentActive: "pano",
|
|
|
+ taboneActive: { children: [] },
|
|
|
+ tabtowActive: "",
|
|
|
+ childTab: [],
|
|
|
sceneNum: config.sceneNum,
|
|
|
- scenes:[],
|
|
|
+ scenes: [],
|
|
|
menu,
|
|
|
- showList:true,
|
|
|
+ showList: true,
|
|
|
loadFirst: true,
|
|
|
- shouqi:false,
|
|
|
- canClick:true
|
|
|
- }
|
|
|
+ shouqi: false,
|
|
|
+ canClick: true,
|
|
|
+ };
|
|
|
},
|
|
|
computed: {
|
|
|
- ...mapGetters({
|
|
|
- showInfo: "showInfo"
|
|
|
- }),
|
|
|
- swiperOptions() {
|
|
|
- return {
|
|
|
- slidesPerView: "auto",
|
|
|
- // observer:true,
|
|
|
- // observeParents: true,
|
|
|
- centeredSlides : true,
|
|
|
- centerInsufficientSlides: true,
|
|
|
- centeredSlidesBounds: true,
|
|
|
- freeMode:true
|
|
|
- };
|
|
|
- },
|
|
|
- selected(){
|
|
|
- return {...this.select}
|
|
|
- }
|
|
|
+ ...mapGetters({
|
|
|
+ showInfo: "showInfo",
|
|
|
+ }),
|
|
|
+ swiperOptions() {
|
|
|
+ return {
|
|
|
+ slidesPerView: "auto",
|
|
|
+ // observer:true,
|
|
|
+ // observeParents: true,
|
|
|
+ centeredSlides: true,
|
|
|
+ centerInsufficientSlides: true,
|
|
|
+ centeredSlidesBounds: true,
|
|
|
+ freeMode: true,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ selected() {
|
|
|
+ return { ...this.select };
|
|
|
+ },
|
|
|
},
|
|
|
|
|
|
- mounted(){
|
|
|
- this.$bus.on('guideRoomsData',data=>{
|
|
|
- if (data.length>0) {
|
|
|
- this.isShowDL = true
|
|
|
- }
|
|
|
- })
|
|
|
+ mounted() {
|
|
|
+ this.$bus.on("guideRoomsData", (data) => {
|
|
|
+ if (data.length > 0) {
|
|
|
+ this.isShowDL = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- this.$bus.on('currentMode',data=>{
|
|
|
- this.delHandle()
|
|
|
- this.currentActive = data.data.mode || 'pano'
|
|
|
- // this.menu.findItem(item=>item.params == data.data.mode)
|
|
|
- })
|
|
|
-
|
|
|
+ this.$bus.on("toggleShowList", (data) => {
|
|
|
+ this.showList = data;
|
|
|
+ });
|
|
|
+
|
|
|
+ this.$bus.on("currentMode", (data) => {
|
|
|
+ this.delHandle();
|
|
|
+ this.currentActive = data.data.mode || "pano";
|
|
|
+ // this.menu.findItem(item=>item.params == data.data.mode)
|
|
|
+ });
|
|
|
},
|
|
|
- methods:{
|
|
|
- handleDL(){
|
|
|
- this.isDaolan = !this.isDaolan
|
|
|
- let ele = document.getElementById('showifr');
|
|
|
- ele.contentWindow.postMessage({
|
|
|
+ methods: {
|
|
|
+ handleShowList() {
|
|
|
+ this.showList = !this.showList;
|
|
|
+ let ele = document.getElementById("showifr");
|
|
|
+ ele.contentWindow.postMessage(
|
|
|
+ {
|
|
|
+ source: "qjkankan",
|
|
|
+ event: "showList",
|
|
|
+ data: this.showList,
|
|
|
+ },
|
|
|
+ "*"
|
|
|
+ );
|
|
|
+ },
|
|
|
+ handleDL() {
|
|
|
+ this.isDaolan = !this.isDaolan;
|
|
|
+ let ele = document.getElementById("showifr");
|
|
|
+ ele.contentWindow.postMessage(
|
|
|
+ {
|
|
|
source: "mingyuan",
|
|
|
- event: this.isDaolan?'guide-start':'guide-pause',
|
|
|
- },"*")
|
|
|
+ event: this.isDaolan ? "guide-start" : "guide-pause",
|
|
|
+ },
|
|
|
+ "*"
|
|
|
+ );
|
|
|
},
|
|
|
- delHandle(){
|
|
|
- this.canClick = false
|
|
|
+ delHandle() {
|
|
|
+ this.canClick = false;
|
|
|
setTimeout(() => {
|
|
|
- this.canClick = true
|
|
|
+ this.canClick = true;
|
|
|
}, 1800);
|
|
|
},
|
|
|
- handleMenu(data){
|
|
|
+ handleMenu(data) {
|
|
|
if (this.canClick) {
|
|
|
- this.currentActive = data.id
|
|
|
- let ele = document.getElementById('showifr');
|
|
|
- ele.contentWindow.postMessage({
|
|
|
+ this.currentActive = data.id;
|
|
|
+ let ele = document.getElementById("showifr");
|
|
|
+ ele.contentWindow.postMessage(
|
|
|
+ {
|
|
|
source: "mingyuan",
|
|
|
- event: 'mode',
|
|
|
+ event: "mode",
|
|
|
params: data.params,
|
|
|
- },"*")
|
|
|
- this.delHandle()
|
|
|
+ },
|
|
|
+ "*"
|
|
|
+ );
|
|
|
+ this.delHandle();
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- fixPosit(ref,i,prenum,nexnum){
|
|
|
- if (i!==null) {
|
|
|
- let acidx = this.$refs[ref].swiper.activeIndex
|
|
|
- if (i - acidx > nexnum ) {
|
|
|
- this.$refs[ref].swiper.slideNext()
|
|
|
+ fixPosit(ref, i, prenum, nexnum) {
|
|
|
+ if (i !== null) {
|
|
|
+ let acidx = this.$refs[ref].swiper.activeIndex;
|
|
|
+ if (i - acidx > nexnum) {
|
|
|
+ this.$refs[ref].swiper.slideNext();
|
|
|
}
|
|
|
|
|
|
- if (acidx - i > prenum ) {
|
|
|
- this.$refs[ref].swiper.slidePrev()
|
|
|
+ if (acidx - i > prenum) {
|
|
|
+ this.$refs[ref].swiper.slidePrev();
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- handleTabtow(item,i=null){
|
|
|
- this.tabtowActive = item
|
|
|
- this.fixPosit('sw1',i,1,1)
|
|
|
+ handleTabtow(item, i = null) {
|
|
|
+ this.tabtowActive = item;
|
|
|
+ this.fixPosit("sw1", i, 1, 1);
|
|
|
},
|
|
|
|
|
|
- handleTabone(item,i=null){
|
|
|
- this.taboneActive = item
|
|
|
- this.fixPosit('sw2',i,1,1)
|
|
|
+ handleTabone(item, i = null) {
|
|
|
+ this.taboneActive = item;
|
|
|
+ this.fixPosit("sw2", i, 1, 1);
|
|
|
},
|
|
|
|
|
|
- handleVR(item,i=null){
|
|
|
+ handleVR(item, i = null) {
|
|
|
history.replaceState(null, null, "".concat(window.location.pathname, "?").concat(`id=${this.showInfo.id}&vr=${item.sceneCode}`));
|
|
|
- this.sceneNum = item.sceneCode
|
|
|
+ this.sceneNum = item.sceneCode;
|
|
|
|
|
|
- this.fixPosit('sw',i,1,1)
|
|
|
-
|
|
|
- }
|
|
|
+ this.fixPosit("sw", i, 1, 1);
|
|
|
+ },
|
|
|
},
|
|
|
- watch:{
|
|
|
+ watch: {
|
|
|
taboneActive: {
|
|
|
- handler: function (newVal) {
|
|
|
- let temp = []
|
|
|
- newVal.children && newVal.children.forEach(item=>{
|
|
|
- this.showInfo.catalogs.forEach(sub=>{
|
|
|
- if (item==sub.id) {
|
|
|
- temp.push(sub)
|
|
|
- }
|
|
|
- })
|
|
|
- })
|
|
|
- this.childTab = temp
|
|
|
+ handler: function(newVal) {
|
|
|
+ let temp = [];
|
|
|
+ newVal.children &&
|
|
|
+ newVal.children.forEach((item) => {
|
|
|
+ this.showInfo.catalogs.forEach((sub) => {
|
|
|
+ if (item == sub.id) {
|
|
|
+ temp.push(sub);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ this.childTab = temp;
|
|
|
if (!this.loadFirst) {
|
|
|
- this.tabtowActive = ''
|
|
|
+ this.tabtowActive = "";
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
tabtowActive: {
|
|
|
- handler: function (newVal) {
|
|
|
+ handler: function(newVal) {
|
|
|
if (!newVal) {
|
|
|
- this.tabtowActive = this.childTab[0]
|
|
|
- } else{
|
|
|
- let arr = this.showInfo.scenes.filter(item=>{
|
|
|
- return newVal.id == item.category
|
|
|
- })
|
|
|
- this.scenes = arr.sort((a,b)=>a.weight-b.weight)
|
|
|
+ this.tabtowActive = this.childTab[0];
|
|
|
+ } else {
|
|
|
+ let arr = this.showInfo.scenes.filter((item) => {
|
|
|
+ return newVal.id == item.category;
|
|
|
+ });
|
|
|
+ this.scenes = arr.sort((a, b) => a.weight - b.weight);
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
|
|
|
- sceneNum:{
|
|
|
- deep:true,
|
|
|
- immediate:true,
|
|
|
- handler:function (newVal) {
|
|
|
- if (!newVal) {
|
|
|
- let tmp = this.showInfo.firstScene||this.showInfo.scenes[0]
|
|
|
- this.handleVR(tmp)
|
|
|
- return
|
|
|
- }
|
|
|
- let val = this.showInfo.scenes.find(item=>item.sceneCode==newVal)
|
|
|
- let tmp = this.showInfo.catalogs.find(item=>item.id==val.category)
|
|
|
- let rootTmp = this.showInfo.catalogRoot.find(item => {
|
|
|
- return item.children.indexOf(tmp.id)>-1
|
|
|
- });
|
|
|
- this.taboneActive = rootTmp
|
|
|
- this.tabtowActive = tmp
|
|
|
+ sceneNum: {
|
|
|
+ deep: true,
|
|
|
+ immediate: true,
|
|
|
+ handler: function(newVal) {
|
|
|
+ if (!newVal) {
|
|
|
+ let tmp = this.showInfo.firstScene || this.showInfo.scenes[0];
|
|
|
+ this.handleVR(tmp);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let val = this.showInfo.scenes.find((item) => item.sceneCode == newVal);
|
|
|
+ let tmp = this.showInfo.catalogs.find((item) => item.id == val.category);
|
|
|
+ let rootTmp = this.showInfo.catalogRoot.find((item) => {
|
|
|
+ return item.children.indexOf(tmp.id) > -1;
|
|
|
+ });
|
|
|
+ this.taboneActive = rootTmp;
|
|
|
+ this.tabtowActive = tmp;
|
|
|
|
|
|
setTimeout(() => {
|
|
|
- this.$emit('select',val)
|
|
|
- this.loadFirst = false
|
|
|
+ this.$emit("select", val);
|
|
|
+ this.loadFirst = false;
|
|
|
});
|
|
|
- }
|
|
|
+ },
|
|
|
},
|
|
|
|
|
|
-
|
|
|
- selected:{
|
|
|
- handler:function (newVal) {
|
|
|
- this.handleVR(newVal)
|
|
|
- if (newVal.type == '4dkk') {
|
|
|
- this.showList = true
|
|
|
+ selected: {
|
|
|
+ handler: function(newVal) {
|
|
|
+ this.handleVR(newVal);
|
|
|
+ if (newVal.type == "4dkk") {
|
|
|
+ this.showList = true;
|
|
|
setTimeout(() => {
|
|
|
- this.showList = false
|
|
|
+ this.showList = false;
|
|
|
}, 800);
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-
|
|
|
-.btn{
|
|
|
- display: inline-block;
|
|
|
+.btn {
|
|
|
+ display: inline-block;
|
|
|
margin: 0 auto;
|
|
|
padding: 0 20px;
|
|
|
height: 26px;
|
|
|
@@ -279,6 +324,7 @@ export default {
|
|
|
text-overflow: ellipsis;
|
|
|
overflow: hidden;
|
|
|
white-space: nowrap;
|
|
|
+ pointer-events: auto;
|
|
|
&.active {
|
|
|
border: 1px solid rgba(255, 255, 255, 1);
|
|
|
color: rgba(255, 255, 255, 1);
|
|
|
@@ -312,25 +358,25 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-.line{
|
|
|
- background:#0076F6;
|
|
|
+.line {
|
|
|
+ background: #0076f6;
|
|
|
width: 100%;
|
|
|
height: 0.1px;
|
|
|
opacity: 0.5;
|
|
|
}
|
|
|
|
|
|
-.list{
|
|
|
+.list {
|
|
|
position: fixed;
|
|
|
bottom: 44px;
|
|
|
left: 0;
|
|
|
text-align: right;
|
|
|
width: 100%;
|
|
|
-
|
|
|
- .clip-scroller{
|
|
|
+ pointer-events: none;
|
|
|
+ .clip-scroller {
|
|
|
padding: 0 15px;
|
|
|
}
|
|
|
|
|
|
- .dl{
|
|
|
+ .dl {
|
|
|
background: rgba(0, 0, 0, 0.3);
|
|
|
border-radius: 18px;
|
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
|
@@ -345,66 +391,67 @@ export default {
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
width: 120px;
|
|
|
- >i{
|
|
|
+ > i {
|
|
|
margin-right: 8px;
|
|
|
vertical-align: bottom;
|
|
|
font-size: 18px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .deepbg{
|
|
|
+ .deepbg {
|
|
|
background: rgba(0, 0, 0, 0.5);
|
|
|
}
|
|
|
- .menu{
|
|
|
- position: fixed;
|
|
|
- left: 15px;
|
|
|
- bottom: 40px;
|
|
|
- >div{
|
|
|
- width: 36px;
|
|
|
- height: 36px;
|
|
|
- display: inline-block;
|
|
|
- background: rgba(0, 0, 0, 0.5);
|
|
|
- border: 1px solid rgba(255, 255, 255, 0.2);
|
|
|
- opacity: 1;
|
|
|
- border-radius: 18px;
|
|
|
- position: relative;
|
|
|
- cursor: pointer;
|
|
|
- >i{
|
|
|
- position: absolute;
|
|
|
- top: 50%;
|
|
|
- left: 50%;
|
|
|
- transform: translate(-50%, -50%);
|
|
|
- }
|
|
|
+ .menu {
|
|
|
+ position: fixed;
|
|
|
+ left: 15px;
|
|
|
+ bottom: 40px;
|
|
|
+ pointer-events: auto;
|
|
|
+ > div {
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
+ display: inline-block;
|
|
|
+ background: rgba(0, 0, 0, 0.5);
|
|
|
+ border: 1px solid rgba(255, 255, 255, 0.2);
|
|
|
+ opacity: 1;
|
|
|
+ border-radius: 18px;
|
|
|
+ position: relative;
|
|
|
+ cursor: pointer;
|
|
|
+ > i {
|
|
|
+ position: absolute;
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
- .l-con{
|
|
|
+ .l-con {
|
|
|
width: 100%;
|
|
|
transition: all ease 0.3s;
|
|
|
max-height: 0px;
|
|
|
+ pointer-events: auto;
|
|
|
overflow: hidden;
|
|
|
- .pic-con{
|
|
|
+ .pic-con {
|
|
|
background: rgba(0, 0, 0, 0.5);
|
|
|
}
|
|
|
- ul{
|
|
|
+ ul {
|
|
|
align-items: center;
|
|
|
display: flex;
|
|
|
- li{
|
|
|
+ li {
|
|
|
margin: 0 5px;
|
|
|
text-align: center;
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
- .tap{
|
|
|
+ .tap {
|
|
|
padding: 12px 0 0;
|
|
|
- &::-webkit-scrollbar{
|
|
|
+ &::-webkit-scrollbar {
|
|
|
display: none;
|
|
|
}
|
|
|
- > li {
|
|
|
- font-size: 0;
|
|
|
+ > li {
|
|
|
+ font-size: 0;
|
|
|
position: relative;
|
|
|
width: 104px;
|
|
|
|
|
|
- .btn{
|
|
|
+ .btn {
|
|
|
font-size: 14px;
|
|
|
width: 100%;
|
|
|
padding: 0;
|
|
|
@@ -428,56 +475,56 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .pp-tap{
|
|
|
+ .pp-tap {
|
|
|
padding: 8px 0 18px;
|
|
|
- > li {
|
|
|
- width: 88px;
|
|
|
+ > li {
|
|
|
+ width: 88px;
|
|
|
}
|
|
|
}
|
|
|
- .pic-list{
|
|
|
+ .pic-list {
|
|
|
padding: 10px 0;
|
|
|
&::-webkit-scrollbar {
|
|
|
display: none;
|
|
|
}
|
|
|
- >li{
|
|
|
+ > li {
|
|
|
cursor: pointer;
|
|
|
width: 70px;
|
|
|
height: 70px;
|
|
|
- >div{
|
|
|
+ > div {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
- border: 2px solid #FFFFFF;
|
|
|
+ border: 2px solid #ffffff;
|
|
|
opacity: 1;
|
|
|
border-radius: 4px;
|
|
|
overflow: hidden;
|
|
|
position: relative;
|
|
|
cursor: pointer;
|
|
|
- >img{
|
|
|
+ > img {
|
|
|
position: absolute;
|
|
|
top: 50%;
|
|
|
left: 50%;
|
|
|
- transform: translate(-50%,-50%);
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
}
|
|
|
- .iconfont{
|
|
|
+ .iconfont {
|
|
|
position: absolute;
|
|
|
left: 4px;
|
|
|
top: 4px;
|
|
|
z-index: 99;
|
|
|
- &::after{
|
|
|
+ &::after {
|
|
|
background: rgba(0, 0, 0, 0.3);
|
|
|
- content: '';
|
|
|
+ content: "";
|
|
|
width: 14px;
|
|
|
height: 14px;
|
|
|
display: inline-block;
|
|
|
position: absolute;
|
|
|
top: 50%;
|
|
|
left: 50%;
|
|
|
- transform: translate(-50%,-50%);
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
z-index: -1;
|
|
|
filter: blur(4px);
|
|
|
}
|
|
|
}
|
|
|
- >span{
|
|
|
+ > span {
|
|
|
display: inline-block;
|
|
|
background: rgba(0, 0, 0, 0.3);
|
|
|
position: absolute;
|
|
|
@@ -488,83 +535,83 @@ export default {
|
|
|
bottom: 0;
|
|
|
width: 100%;
|
|
|
}
|
|
|
- &.active{
|
|
|
- border: 2px solid #0076F6;
|
|
|
+ &.active {
|
|
|
+ border: 2px solid #0076f6;
|
|
|
}
|
|
|
}
|
|
|
- .pic-name{
|
|
|
+ .pic-name {
|
|
|
background: rgba(0, 0, 0, 0.3);
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
bottom: 0;
|
|
|
font-size: 0;
|
|
|
- /deep/ span{
|
|
|
+ /deep/ span {
|
|
|
font-size: 12px;
|
|
|
word-break: keep-all;
|
|
|
- white-space:nowrap;
|
|
|
+ white-space: nowrap;
|
|
|
padding: 3px 0;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- &.active{
|
|
|
+ &.active {
|
|
|
max-height: 200px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@media screen and (max-width: 350px) {
|
|
|
- .list{
|
|
|
- .menu{
|
|
|
- .menucon{
|
|
|
- padding-right: 10px;
|
|
|
- >ul{
|
|
|
- >li{
|
|
|
+ .list {
|
|
|
+ .menu {
|
|
|
+ .menucon {
|
|
|
+ padding-right: 10px;
|
|
|
+ > ul {
|
|
|
+ > li {
|
|
|
color: #fff;
|
|
|
margin: 0;
|
|
|
height: 36px;
|
|
|
line-height: 36px;
|
|
|
padding: 0 4px;
|
|
|
background: none;
|
|
|
- >span{
|
|
|
+ > span {
|
|
|
display: inline-block;
|
|
|
margin-left: 6px;
|
|
|
}
|
|
|
- &:last-of-type{
|
|
|
+ &:last-of-type {
|
|
|
padding-right: 14px;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- >i{
|
|
|
+ }
|
|
|
+ > i {
|
|
|
font-size: 12px;
|
|
|
right: 8px;
|
|
|
top: 50%;
|
|
|
transform: translateY(-50%);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- .shouqi{
|
|
|
- padding-right: 30px;
|
|
|
- >ul{
|
|
|
- max-width: 0;
|
|
|
- width: 0;
|
|
|
}
|
|
|
- >i{
|
|
|
- transform: translateY(-50%) rotate(180deg);
|
|
|
+
|
|
|
+ .shouqi {
|
|
|
+ padding-right: 30px;
|
|
|
+ > ul {
|
|
|
+ max-width: 0;
|
|
|
+ width: 0;
|
|
|
+ }
|
|
|
+ > i {
|
|
|
+ transform: translateY(-50%) rotate(180deg);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- .scenedl{
|
|
|
- width: 36px;
|
|
|
- height: 36px;
|
|
|
- >i{
|
|
|
- top: 50%;
|
|
|
- left: 50%;
|
|
|
- position: absolute;
|
|
|
- transform: translate(-50%,-50%);
|
|
|
- font-size: 14px;
|
|
|
+ .scenedl {
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
+ > i {
|
|
|
+ top: 50%;
|
|
|
+ left: 50%;
|
|
|
+ position: absolute;
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
+ font-size: 14px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
-</style>
|
|
|
+</style>
|