Commit 16c82cf2 authored by 吴春's avatar 吴春

Merge branch 'master' of http://gitlab.oytour.com/viitto/million

parents 9435ba7a f024996e
......@@ -19,6 +19,10 @@ export default {
font-family: 'FZDBSJW';
src: local('FZDaBiaoSong-B06S')
}
@font-face {
font-family: "Cormorant Garamond";
src: url("https://im.oytour.com/tripfont/44b867578f7c49ddaf62f490fcb30264.woff");
}
.text-shadow{
text-shadow: rgb(0 0 0 / 50%) 2px 2px 5px;
}
......@@ -83,7 +87,7 @@ body {
.BMap_cpyCtrl {
display: none;
}
.anchorBL {
display: none;
}
......@@ -108,7 +112,7 @@ body {
border-radius: unset;
}
body.desktop .q-tree__node .q-focusable:focus > .q-focus-helper,
body.desktop .q-tree__node .q-manual-focusable--focused > .q-focus-helper,
body.desktop .q-tree__node .q-manual-focusable--focused > .q-focus-helper,
body.desktop .q-tree__node .q-hoverable:hover > .q-focus-helper{
background: none !important;
opacity: 1 !important;
......
This diff is collapsed.
h1,h2,h3,h4,h5,h6,p,ul{
padding: 0;
margin: 0;
}
ul,li{
list-style: none;
}
.fontW100{
font-weight: 100;
}
.fontW200{
font-weight: 200;
}
.fontW300{
font-weight: 300;
}
.fontW400{
font-weight: 400;
}
.fontW500{
font-weight: 500;
}
.fontW600{
font-weight: 700;
}
.min-w-50px{
min-width: 50px;
}
.mlF5{
margin-left: -5px;
}
.mlF8{
margin-left: -8px;
}
.p-x40{
padding: 0 40px;
}
.flex{
flex: 1;
}
.remTetil{
font-size: 1.1rem;
}
.remText{
font-size: .8rem;
}
.remSubText{
font-size: 1rem;
}
.duration2{
--animation-duration: 2s;
}
.duration5{
--animation-duration: 5s;
}
.ContainerW1280{
width: 100%;
/* padding: 0 40px; */
margin-right: auto;
margin-left: auto;
}
.ContainerW{
padding: 0 20px;
margin-right: auto;
margin-left: auto;
}
.w100{
width: 100%
}
.h100{
height: 100%;
}
.right0{
right: 0;
}
.left0{
left: 0;
}
.top0{
top: 0;
}
.bottom0{
bottom: 0;
}
.text-color85{
color: rgb(85,85,85);
}
.cursor-default{
cursor: default;
}
.no-course{
cursor: none !important;
}
/* .indexSliderForm{
width: 100vw;
height: calc(9 / 28 * 100vw);
} */
.inSliSubDescribeToggle{
margin-top: 30px;
}
.container{
margin-left: auto;
margin-right: auto;
max-width: 100%;
padding-left: 20px;
padding-right: 20px;
position: relative;
width: 100%;
}
@media (min-width: 300px) {
.container{
max-width: 100%;
padding-left: 10px;
padding-right: 10px;
}
.containerRoll2{
padding-left: 10px;
padding-right: 10px;
}
.gap-1{
padding-bottom: 55px;
padding-top: 55px;
}
.isDisplay{
display: none;
}
.inSliSubNameBox p{
font-size: 1.3rem;
padding-right: 20px;
padding-bottom: 10px;
border-bottom-right-radius: 10px;
}
.insli-leftDescr{
padding: 40px 0 40px 0;
}
.indexSlider-right{
width: 95%
}
.inSliSubDescribeBox{
width: 70%;
margin: auto;
}
.inSliSubDescribeBox p{
height: 10rem;
margin-left: 0;
padding: 20px 0;
}
.inSliSubNameBox::after{
opacity: 0;
}
.swipercomSubEn{
left: 0;
top: -1.8rem;
font-size: 1.5rem;
}
.indexRoll1Hst{
font-size: 1rem;
}
.indexRoll1Htitle{
font-size: 1.8rem;
}
.indexRoll1Hd{
width: 95%;
}
.swipercomTitleL{
font-size: 1.3rem;
padding-top: 15px;
padding-bottom: 15px;
}
.swipercomTitleR{
padding-right: 0;
line-height: 1.7rem;
}
.swipercomR2{
padding: 0 0 0 20px;
}
.swipercomTvR2Bj{
top: 0;
bottom: 0;
opacity: 1;
}
.swipercomSubEnLenR2{
font-size: 1.5rem;
left: -1.2rem;
}
.swipercomTvR2{
top: 0;
bottom: 0;
opacity: 1;
}
.swipercomTitleLR2{
font-size: 1.2rem;
}
.swipercomMoR2,.swipercomDesR2{
font-size: .9rem;
}
.gap-1.gap-M{
padding-bottom: 0;
padding-top: 55px;
}
}
@media (min-width: 768px) {
.gap-1{
padding-bottom: 55px;
padding-top: 55px;
}
.container{
max-width: 100%;
padding-left: 20px;
padding-right: 20px;
}
.containerRoll2{
padding-left: 30px;
padding-right: 30px;
}
.isDisplay{
display: none;
}
.min-w-45{
min-width: 45px;
}
.insli-leftDescr{
width: 50%;
}
.inSliSubDescribeBox{
width: 50%;
right: 0;
bottom: 0;
border-top-left-radius: 10px;
}
.inSliSubDescribeBox p {
height: 100%;
margin-left: 20px;
}
.inSliSubNameBox::after{
opacity: 1;
}
.swipercomSubEn{
top: -.2rem;
left: -1rem;
font-size: 2rem;
}
.indexRoll1Hd{
width: 55%;
}
.swipercomSubEnLen{
padding: 4px 13px 4px 17px;
}
.swipercomTvR2Bj{
top: 100%;
bottom: 0;
opacity: 0;
}
.swipercomTvR2{
top: 100%;
bottom: 0;
opacity: 0;
}
}
@media (min-width: 992px) {
.swipercomR2{
padding: 0;
}
.gap-1{
padding-bottom: 65px;
padding-top: 65px;
}
.isDisplay{
display: none;
}
.w3{
width: 50%;
}
.inSliSubNameBox{
bottom: 0;
}
.h-66{
height: 66%;
}
.inSliSubNameBox p{
letter-spacing: .3rem;
font-size: 1.5rem;
margin-left: -7px;
}
.insli-leftDescr {
padding: 40px 0 0px 0;
}
.inSliSubDescribeBox{
width: 170px;
height: 66%;
right: 0;
bottom: 0;
border-top-left-radius: 10px;
}
.swipercomSubEn{
left: -1.2rem;
font-size: 2.6rem;
}
.swipercomTitleL{
font-size: 1.5rem;
}
.swipercomTitleR{
font-size: 1.1rem;
}
.indexRoll1Hd{
width: 41%;
}
.containerRoll2{
padding-left: 130px;
padding-right: 40px;
}
}
@media (min-width: 1280px) {
.container{
max-width: 1280px;
padding-left: 40px;
padding-right: 40px;
}
.containerRoll2{
padding-left: 130px;
padding-right: 40px;
}
.isDisplay{
display: none;
}
.w3{
width: 25%;
}
.insli-leftDescr{
width: 80%;
}
.swipercomTitleR{
font-size: 1.1rem;
}
.swipercomTitleL{
font-size: 1.5rem;
}
.indexRoll1Hd{
width: 40%;
}
}
@media (min-width: 1440px) {
.swipercomSubEnLenR2{
font-size: 1.8rem;
}
.swipercomTitleLR2{
font-size: 1.5rem;
}
.swipercomDesR2{
font-size: 1.1rem;
}
.swipercomMoR2{
font-size: 1rem;
}
.gap-1{
padding-bottom: 80px;
padding-top: 80px;
}
.isDisplay{
display: block;
}
.inSliSubNameBox{
height: 340px
}
.inSliSubNameList{
margin-top: 5px;
}
.w3{
width: 55%;
}
.swipercomTitle{
padding: 20px 15px;
}
.swipercomTitleA{
height: 100%;
padding: 0 25px;
.q-separator{
height: .5rem;
}
}
.swipercomTitleL div{
position: relative;
top: -1.2rem;
}
.swipercomTitleR{
font-size: 1.1rem;
}
.swipercomTitleL{
font-size: 1.3rem;
}
.indexRoll1Hd{
width: 40%;
}
.containerRoll2{
padding-left: 280px;
padding-right: 40px;
}
}
@media (min-width: 1800px) {
.swipercomSubEnLenR2{
font-size: 2rem;
}
.container{
max-width: 1440px;
padding-left: 40px;
padding-right: 40px;
}
.containerRoll2{
padding-left: 240px;
padding-right: 40px;
}
.w3{
width: 50%;
}
.insli-leftDescr{
width: 55%;
}
.swipercomTitle{
padding: 40px 0;
}
.swipercomTitleA{
height: 100%;
padding: 0 50px;
}
.swipercomTitleA .q-separator{
height: 1.5rem;
}
.swipercomTitleL{
font-size: 1.5rem;
}
.swipercomTitleL div{
position: relative;
top: -2rem;
}
.swipercomTitleR{
font-size: 1.2rem;
}
.indexRoll1Hd{
width: 35%;
}
}
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30"><path d="M0 9.801v-9.8h9.836A10.016 10.016 0 0 0 0 9.801Z" fill="#fff"/><path fill="none" d="M0 .001h30v30H0z"/></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="30" height="30"><path d="M0 9.801v-9.8h9.836A10.016 10.016 0 0 0 0 9.801Z" fill="#f5f5f5"/><path fill="none" d="M0 .001h30v30H0z"/></svg>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="25.352" height="7.787">
<path fill="none" stroke="#897658" stroke-linecap="round" d="M23.719 3.893H.5"></path>
<path d="m17.776 0 7.576 3.893-7.576 3.893 3.076-3.893Z" fill="#897658"></path>
</svg>
......@@ -9,6 +9,8 @@ import message from './message'
import product from './product'
import VueViewer from 'v-viewer'
// import VueCoreVideoPlayer from 'vue-core-video-player'
import ElementUI from "element-ui";
Vue.use(ElementUI);
Vue.prototype.$EventBus = new Vue()
Vue.use(VueCoreVideoPlayer)
Vue.use(VueViewer)
......@@ -19,14 +21,16 @@ Vue.prototype.$product = product
Vue.prototype.domainManager = function() {
let domainUrl = '';
domainUrl = "http://192.168.2.214:8082";
domainUrl = "http://127.0.0.1";
domainUrl = "http://192.168.5.46";
// domainUrl = "http://reborn.oytour.com";
let domainNameUrl = this.GetDomain();
domainNameUrl = "http://tmb2b.oytour.com/"
if (domainNameUrl.indexOf('testerp.oytour') !== -1) {
domainUrl = "http://testapi.oytour.com";
} else if (domainNameUrl.indexOf('oytour') !== -1) {
// domainUrl = "http://reborn.oytour.com";
domainUrl = 'http://192.168.10.226:8015' //'http://192.168.10.226:8015' ''http://192.168.10.9:8083' '
domainUrl = "http://reborn.oytour.com";
domainUrl = "http://192.168.5.46";
// domainUrl = 'http://192.168.10.68' //'http://192.168.10.226:8015' ''http://192.168.10.9:8083' '
}
var obj = {
//主地址
......@@ -130,7 +134,7 @@ Vue.prototype.apipost = function(cmd, msg, successCall, faildCall) {
return
}
successCall(res);
}, faildCall)
}
......@@ -323,4 +327,4 @@ Vue.prototype.GetHtml = function(str) {
.replace(/&amp;/g, '&').replace(/&quot;/g, '"').replace(/&apos;/g, "'");
}
return str;
}
\ No newline at end of file
}
<template>
<q-page class="relative gap-1 overflow-hidden" @mousemove="ClearData" @mouseleave="ClearData"
:style="{'background-color':plugData.BgColor?plugData.BgColor:'#fff'}" style="height: 100vh;">
<div class="absolute top0 right0 bottom0 left0 indexNavFormP row">
<div class="col column carousel1-left relative">
<div class="row justify-center">
<q-img class="carousel1-leftImg" width="8rem" :src="plugData.Logo"/>
</div>
<div class="p-x40 col row justify-center">
<ul class="row no-wrap MenuListBox row justify-center">
<template v-for="(item,index) in plugData.MenuList">
<li class="MenuListLi row justify-center cursor-pointer animate__animated"
:class="[CurrentIndex>=0&&CurrentIndex==index?'animate__bounceInUp active':'animate__bounceOutUp']"
v-on:mouseenter="handleMouseEnter($event,index)" @mouseleave="ClearData">
<div class="cursor-pointer flex flex-col items-center relative justify-end">
<div class="row min-w-50px">
<div class="font-serifEn writing-modes-vertical p text-gray-700">
<span class="inline-block tracking-6 fontW300 remTetil">
{{item.MenuName}}
</span>
</div>
<p class="font-serifEn writing-modes-vertical text-s text-secondary mlF5">
<span class="inline-block tracking-normal fontW100 remText">{{item.MenuSubName}}</span>
</p>
</div>
<div class="MenuListItem animate__animated"
:class="[CurrentIndex==index?'animate__bounceInUp':'animate__bounceOutUp']"></div>
</div>
<div class="row justify-center items-center SubMenuListBox q-py-lg"
:class="[CurrentIndex==index?'animate__bounceInUp':'animate__bounceOutUp']">
<div class="row justify-center">
<template v-for="(items,i) in item.SubMenuList">
<a class="SubMenuListText relative writing-modes-vertical text-white
remSubText font-serifEn tracking-2 q-px-xs cursor-pointer inline-block row items-center"
@click="OpenNewUrl(items.LinkUrl)">
<span>{{items.MenuName}}</span>
</a>
<div v-if="(item.SubMenuList.length-1)!=i" class="SubMenuListLin q-ma-xs row">&nbsp;</div>
</template>
</div>
</div>
</li>
</template>
</ul>
<ul class="BottomListBox absolute row justify-center">
<li class="q-py-sm q-px-lg relative cursor-pointer" v-for="(item,index) in plugData.BottomList"
@click="OpenNewUrl(item.LinkUrl)">
<a class="text-gray-700 transition-base md:hover:text-secondary">
<span class="text-xs font-serif tracking-1 pointer-events-none">{{item.LinkTitle}}</span>
</a>
</li>
</ul>
</div>
</div>
<div class="carousel1-right overflow-hidden relative"
:class="[windowWidth>1280?'col-7':'col-12']">
<template v-if="windowWidth>=768">
<q-img class="carousel1-rightImg animate__animated"
:class="[oldCoverImg!=coverImg?'active animate__bounceInUp':'animate__bounceOutUp']"
:src="coverImg" fill="contain"/>
</template>
<template v-else>
<q-carousel
animated
v-model="slide"
infinite
:autoplay="autoplay"
style="height: 100%;"
>
<template v-for="(item,index) in FileUrlList">
<q-carousel-slide :name="index+1" :img-src="item" />
</template>
</q-carousel>
<div class="MBgColorBox row justify-center items-center">
<q-img class="MBgColorImg" :src="plugData.MLogo" fill="contain"></q-img>
</div>
</template>
</div>
</div>
</q-page>
</template>
<script>
export default {
props: ['plugData','Current','windowWidth'],
data() {
return {
CurrentIndex: null,
coverImg: '',
oldCoverImg: '',
slide: 1,
autoplay: 5000,
FileUrlList: [],
}
},
watch: {
CurrentIndex: {
handler (val, oldval) {
}
}
},
created() {
},
mounted() {
this.coverImg = this.plugData.MenuList[0].FileUrl
this.plugData.MenuList.forEach(x=>{
if(x.FileUrl){
this.FileUrlList.push(x.FileUrl)
}
})
},
methods: {
handleMouseEnter($event,index){
this.oldCoverImg = JSON.parse(JSON.stringify(this.coverImg))
if(this.CurrentIndex==index) return
else if(index>=0) {
this.CurrentIndex = null
setTimeout(()=>{
this.CurrentIndex = index
if(this.plugData.MenuList[index].FileUrl) this.coverImg = this.plugData.MenuList[index].FileUrl
},300)
}
},
ClearData(){
this.CurrentIndex = null
}
}
}
</script>
<style lang="scss">
@media only screen and (max-width: 1280px) {
.carousel1-left{
display: none;
}
}
.indexNavForm{
width: 100vw;
height: 100vh;
}
.indexNavFormP{
width: 100%;
height: 100%;
}
.carousel1-left{
}
.carousel1-leftImg{
display: block;
margin-top: 6rem;
}
.MenuListBox{
padding: 0 40px;
min-height: 16rem;
}
.MenuListBox li{
width: 81px;
}
.MenuListLi{
height: 14rem;
margin-top: 2rem;
}
.MenuListItem{
position: absolute;
bottom: -4.5rem;
left: 20px;
opacity: 0;
transition: .4s;
z-index: 3;
}
.MenuListItem::after{
border-color: transparent transparent #052032;
border-style: solid;
border-width: 0 7.5px 9px;
content: "";
height: 0;
width: 0;
}
.SubMenuListBox{
width: 100%;
height: 16rem;
transition: .4s;
opacity: 0;
position: absolute;
left: 0;
right: 0;
bottom: 0;
background-color: $primary;
}
.MenuListLi.active .MenuListItem{
opacity: 1;
bottom: -1rem;
}
.MenuListLi.active .SubMenuListBox{
position: absolute;
z-index: 999;
height: 19.5rem;
opacity: 1;
}
.SubMenuListBox div:hover{
color: rgb(05,05,05);
}
.SubMenuListBoxActivve{
width: 100%;
height: 16rem;
background-color: $primary;
transition: .4s;
position: absolute;
left: 0;
right: 0;
bottom: 0;
z-index: 99999;
opacity: 0;
}
.SubMenuListBoxActivve.active{
height: 19.5rem;
opacity: 1;
}
.SubMenuListText{
width: 39px;
letter-spacing: normal;
line-height: 23px;
color: rgb(255,255,255);
}
.SubMenuListLin{
width: 1px;
background: linear-gradient(to bottom, $primary, #fff, $primary);
}
.BottomListBox{
left: 0;
right: 0;
bottom: 15px;
z-index: 0;
}
.BottomListBox li:hover{
color: rgb(05,05,05);
}
.BottomListBox li::after{
content: "";
display: block;
height: 1px;
position: absolute;
right: -3px;
top: calc(50% - 0.5px);
transform: rotate(-50deg) translateY(-50%);
width: 6px;
background: $primary;
}
.BottomListBox li:last-child::after{
background: none
}
.carousel1-rightImg{
width: 100%;
height: 100%;
transform: scale(1.1);
transition: all .4s;
}
.carousel1-rightImg.active{
transform: scale(1);
}
.MBgColorBox{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2;
}
.MBgColorImg{
width: 7.5rem;
}
</style>
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<template>
<div class="sliderRight absolute rounded-full
border border-solid border-stone flex items-center justify-center
backdrop-blur-sm no-course"
:style="{left:`${X}px`,top:`${Y}px`}"
:class="[isRight?'active':'']">
<div class="sliderRightC relative row justify-center items-center backdrop-blur" :class="[Current=='left'?'active':'']">
<img src="../../assets/svg/right.svg" alt="Logo">
</div>
</div>
</template>
<script>
export default {
props: ['X','Y','isRight','Current'],
data() {
return {
}
}
}
</script>
<style scoped>
.sliderRight{
z-index: 9;
opacity: 0;
margin: -2rem 0 0 -2rem;
}
.sliderRight.active{
opacity: 1;
}
.sliderRightC{
width: 4rem;
height: 4rem;
}
.sliderRightC.active img {
transform: rotate(-180deg);
}
</style>
<style lang="scss" scoped>
.newHor_BtmContent {
width: 100%;
background: $primary;
padding-top: 60px;
}
.newLogoText span:last-child{
font-size: 1.1rem;
top: -4px;
}
.tracking-0{
transition: all .3s;
}
.tracking-0:hover{
/* opacity: .5; */
}
.tracking-1{
color: #fff;
}
.tracking-1 a{
color: inherit;
cursor: pointer;
display: inline-block;
text-decoration: none;
transition: opacity .3s;
}
.tracking-1 a:hover{
/* opacity: .5; */
}
.tracking-1 span::after {
content: "";
display: block;
height: 1px;
position: absolute;
right: -3px;
top: calc(50% - 0.5px);
transform: rotate(-50deg) translateY(-50%);
background-color: #fff;
width: 6px;
}
.l-footer--list a,.newHorw a{
text-decoration: none;
}
.l-footer--list li::after{
background: linear-gradient(to bottom, $primary, #fff, $primary);
content: "";
height: 100%;
position: absolute;
right: 0;
top: 0;
width: 1px;
}
.l-footer--list li a p:first-child{
font-size: 1rem;
transition: all .3s;
}
.l-footer--list li a:hover p:first-child{
opacity: .5;
}
.l-footer--list li{
padding: 0 20px;
}
.l-footer--list li:last-child::after{
width: 0;
}
.newHorText{
padding: 60px 0;
}
.newHorText a{
text-decoration: none;
color: #fff;
position: relative;
padding: 0 20px;
}
.newHorText a span{
transition: all .3s;
}
.newHorText a:hover span{
opacity: .5;
}
.newHorText a::after{
content: "";
display: block;
height: 1px;
position: absolute;
right: -3px;
top: calc(50% - 0.5px);
transform: rotate(-50deg) translateY(-50%);
background-color: #fff;
width: 6px;
}
.newHorText a:last-child::after{
width: 0;
}
.newHorw{
opacity: .5;
padding: 12px 0;
}
.newHorw,.newHorw a{
color: #fff;
}
.newHor-right span{
position: relative;
}
.newHor-right span::after{
content: "";
display: block;
height: 1px;
position: absolute;
right: -3px;
top: calc(50% - 0.5px);
transform: rotate(-50deg) translateY(-50%);
background: #fff;
width: 6px;
}
</style>
<style scoped>
</style>
<template>
<div class="relative newHor_BtmContent" v-if="dataList&&dataList.Config">
<div class="container">
<div class="row justify-center " style="margin-bottom: 30px;">
<q-img :src="dataList.Config.Logo" style="width:40px;height:auto;"/>
</div>
<div class="row justify-between items-end">
<div class="column">
<div class="row newLogoText q-pb-lg">
<span class="text-logo">和平旅行社</span>
<span class="font-serifEn q-ml-lg relative">PEACE TOURS</span>
</div>
<p class="cursor-pointer tracking-0"><span>四川省成都市锦江区青和里南段55号1栋23楼2310、2311、2312号</span></p>
<ul class="tracking-1">
<li class="flex q-py-xs">
<span class="inline-block icon-slash icon-slash-white relative q-pr-md">服务热线</span>
<a href="" class="transition-base q-pl-md">{{ dataList.Config.Tel }}</a>
</li>
<li class="flex q-py-xs">
<span class="inline-block icon-slash icon-slash-white relative q-pr-md"> 服务时间</span>
<a href="" class="transition-base q-pl-md">08:00 至 21:00</a>
</li>
</ul>
</div>
<div :class="[windowWidth<1300?'hidden':'']">
<ul class="l-footer--list row">
<li class="l-footer--list__item relative cursor-pointer" v-for="(item,index) in plugData.MenuList">
<a @click="OpenNewUrl(item.LinkUrl)"
class="flex justify-center group">
<p class="font-serif writing-modes-vertical leading-28 tracking-5 text-white
transition-base pointer-events-none">{{item.MenuName}}</p>
<p class="font-serifEn writing-modes-vertical text-s
tracking-normal text-stone pointer-events-none">{{item.MenuSubName}}</p>
</a>
</li>
</ul>
</div>
<div :class="[$q.platform.is.desktop?'':'q-pt-lg']">
<ul class="text-xs font-light newHor-right">
<!-- <li class="flex -mx-4 my-2 tracking-1 sm:justify-end">
<span class="inline-block px-4 icon-slash icon-slash-white opacity-70">follow us</span>
<div class="px-5 -mx-1">
<a href="https://www.facebook.com/GoodayTravel" target="_blank"
class="px-1 opacity-70 md:hover:opacity-100 transition-base">
<i class="icon-facebook h5 pointer-events-none"></i>
</a>
<a href="https://line.me/R/ti/p/%40497wwbbn" target="_blank"
class="px-1 opacity-70 md:hover:opacity-100 transition-base">
<i class="icon-line h5 pointer-events-none"></i>
</a>
<a href="https://www.youtube.com/channel/UCpDO62H5e0dY-PcQc2aTfcQ/featured"
target="_blank" class="px-1 opacity-70 md:hover:opacity-100 transition-base">
<i class="icon-youtube h5 pointer-events-none"></i>
</a>
</div>
</li> -->
<li class="flex -mx-4 my-2 tracking-2 sm:justify-end opacity-70">
<span class="inline-block px-4 icon-slash icon-slash-white">代表人</span>
<p class="px-4">{{dataList.Config.Behalf}}</p>
<span class="inline-block px-4 icon-slash icon-slash-white">联络人</span>
<p class="px-4">{{dataList.Config.Behalf}}</p>
</li>
<li class="flex -mx-4 my-2 tracking-2 sm:justify-end opacity-70">
<p class="px-4">{{dataList.Config.Name}}</p>
</li>
<!-- <li class="flex -mx-4 my-2 tracking-2 sm:justify-end opacity-70">
<span class="inline-block px-4 icon-slash icon-slash-white">代理旅行社</span>
<p class="px-4">{{dataList.Config.TypeStr}}</p>
</li> -->
<li class="flex -mx-4 my-2 tracking-2 sm:justify-end opacity-70">
<p class="px-4">四川省成都市锦江区青和里南段</p>
</li>
<li class="flex -mx-4 my-2 tracking-2 sm:justify-end opacity-70">
<p class="px-4">55号1栋23楼2310、2311、2312号</p>
</li>
</ul>
</div>
</div>
<div class="row newHorText justify-center"
:class="[$q.platform.is.desktop?'':'hidden']">
<a @click="OpenNewUrl(item.LinkUrl)" v-for="(item,index) in plugData.BottomList"
target="_self" class="text-xs font-serif icon-slash icon-slash-white transition-base cursor-pointer">
<span>{{item.LinkTitle}}</span>
</a>
</div>
</div>
<div class="container newHorw">
<div class="flex items-center justify-center font-light text-xs">
<div class="hidden icon-slash icon-slash-white">
<a href=""></a>
</div>
<div class="text-center">
<a href="https://beian.miit.gov.cn/#/Integrated/index" target="_blank" class="text-grey-8" style="text-decoration: none;">蜀ICP备13000760号 ©</a> 2010-{{year}} {{ dataList.Config.Name }}. All Rights Reserved. 旅行社业务经营许可证 {{ dataList.Config.UnifyCode }}
</div>
</div>
</div>
</div>
</template>
<script>
export default {
props: ["dataList"],
data() {
return {
year: '',
windowWidth: window.innerWidth,
HomeData: [],
plugData: {}
};
},
destroyed() {
window.removeEventListener('resize', this.handleResize);
},
created() {
window.addEventListener('resize', this.handleResize);
},
mounted() {
//获取当前年
var myDate = new Date();
this.year = myDate.getFullYear();
var jObj = JSON.parse(window.localStorage.getItem('HomeData'));
this.HomeData = jObj.filter(x=>{ return x.Id == 'index_nav' })
if(this.HomeData.length>0) this.plugData = this.HomeData[0].plugData
},
computed: {
handleResize() {
this.windowWidth = window.innerWidth;
},
getAdLeftList() {
var tempArray = [];
var showId = this.getShowId();
if (this.dataList && this.dataList.AdLeftList) {
this.dataList.AdLeftList.forEach(item => {
if (item.ShowPage.indexOf(showId) > -1) {
tempArray.push(item);
}
});
}
return tempArray;
},
getAdRightList() {
var tempArray = [];
var showId = this.getShowId();
if (this.dataList && this.dataList.AdRightList) {
this.dataList.AdRightList.forEach(item => {
if (item.ShowPage.indexOf(showId) > -1) {
tempArray.push(item);
}
});
}
return tempArray;
}
},
methods: {
navigateTo(urlInfo) {
if(urlInfo.IsNewOpen === 1) {
window.open(urlInfo.NavUrl)
} else {
window.location.href = urlINfo.NavUrl
}
},
getShowId() {
let locationName = this.GetDomain();
var routeStr = this.$route.path.toLowerCase();
var showId = 0;
switch (routeStr) {
case "/index":
showId = 1;
break;
case '/search':
showId = 2;
break;
case '/trip':
showId = 3;
break;
case '/self':
showId = 4;
break;
}
return showId;
}
},
};
</script>
......@@ -10,11 +10,11 @@
// Tip: Use the "Theme Builder" on Quasar's documentation website.
// $primary : #1976D2;
//$primary : #31C3E0;
$primary: #1976D2;
$secondary: #26A69A;
$primary: rgb(5,32,50);//#1976D2
$secondary: rgb(137, 118, 88);
$accent: #9C27B0;
$dark: #1D1D1D;
$positive: #21BA45;
$negative: #C10015;
$info: #31CCEC;
$warning: #F2C037;
\ No newline at end of file
$warning: #F2C037;
......@@ -21,13 +21,14 @@
}
.showGoback {
opacity: 100;
opacity: .7;
border: 1px solid #fff;
}
</style>
<template>
<q-layout view="hHh lpr fFf">
<hor-big-one :base-data="baseinfo" :dataList="dataList" ref="webhead"></hor-big-one>
<!-- <hor-big-one :base-data="baseinfo" :dataList="dataList" ref="webhead"></hor-big-one> -->
<!-- <hor-big-two v-if="headType==2" :base-data="baseinfo" ref="webhead"></hor-big-two> -->
<q-page-container>
<div class="flex justify-between" v-if="showUserInfo" :style="$q.platform.is.desktop ? 'width: 1200px; margin: 0 auto' : ''">
......@@ -40,8 +41,9 @@
<i class="iconfont iconarrow-top"></i>
</div>
<q-footer elevated class="bg-grey-8 text-white" style="position: unset;">
<subscriber></subscriber>
<horBtm :dataList="dataList"></horBtm>
<!-- <subscriber></subscriber> -->
<!-- <horBtm :dataList="dataList"></horBtm> -->
<newHorBtm :dataList="dataList"></newHorBtm>
</q-footer>
</q-layout>
</template>
......@@ -50,6 +52,7 @@
import horBigOne from "../components/navs/hor-big-one";
import horBigTwo from "../components/navs/hor-big-tow";
import horBtm from "../components/navs/hor-btm";
import newHorBtm from "../components/navs/newHor-btm";
import subscriber from "../components/navs/subscriber";
import Navs from 'src/pages/usercenter/components/navs.vue';
export default {
......@@ -58,7 +61,8 @@ import Navs from 'src/pages/usercenter/components/navs.vue';
horBigTwo,
horBtm,
subscriber,
Navs
Navs,
newHorBtm
},
data() {
return {
......
<template>
<q-page>
</q-page>
</template>
<script>
export default {
props: [],
data() {
return {}
},
watch: {
days: {
handler: function (val, oldval) {}
}
},
created() {
},
mounted() {
},
methods: {
}
}
</script>
<template>
<q-page>
<el-scrollbar ref="scrollRef"
@scroll="onChange" name="scrollRef" style="width: 100%;height: 100%;overflow: hidden;">
<div>
<template v-for="(item, index) in HomeData">
<indexNav :key="index" v-if="item.Id == 'index_nav'" class="homeRefs"
:plugData="item.plugData" :windowWidth="windowWidth"></indexNav>
<indexSlider :key="index" v-if="item.Id == 'index_slider1'" class="homeRefs"
:plugData="item.plugData" :windowWidth="windowWidth"></indexSlider>
<indexRoll1 :key="index" v-if="item.Id == 'index_roll1'" class="homeRefs"
:plugData="item.plugData" :windowWidth="windowWidth"></indexRoll1>
<indexRoll2 :key="index" v-if="item.Id == 'index_roll2'" class="homeRefs"
:plugData="item.plugData" :windowWidth="windowWidth"></indexRoll2>
</template>
</div>
</el-scrollbar>
</q-page>
</template>
<script>
import indexNav from "../../components/home/indexNav";
import indexSlider from "../../components/home/indexSlider";
import indexRoll1 from "../../components/home/indexRoll1";
import indexRoll2 from "../../components/home/indexRoll2";
export default {
name: "PageIndex",
components:{
indexNav,
indexSlider,
indexRoll1,
indexRoll2
},
data() {
return {
RB_Group_Id: 0,
HomeData: {},
carHeight:0,
isPic:false,
windowWidth: window.innerWidth,
scrollArea:{
pagesTopN: 0,
pagesTopO: 0,
isDictionDown: ''
},
lastScrollTop: 0,
isScrolling: false,
top: 0,
activeMenu: 0,
}
},
watch: {
days: {
handler: function (val, oldval) {}
}
},
destroyed() {
window.removeEventListener('resize', this.handleResize);
},
created() {
window.addEventListener('resize', this.handleResize);
},
mounted() {
this.init()
this.timer = setInterval(() => {
this.init()
}, 100)
},
methods: {
onChange(e){
console.log(e.scrollTop,'----')
const isDictionDown = e.scrollTop-this.lastScrollTop>0
this.scrollArea.isDictionDown = isDictionDown
this.scrollArea.pagesTopO = e.scrollTop
this.lastScrollTop = e.scrollTop
if(this.isScrolling) return
const nodes = document.querySelectorAll(".homeRefs")
if(isDictionDown){
this.isScrolling=true
if(nodes && nodes.length>0){
for (let i = 0; i < nodes.length; i++) {
const x = nodes[i]
if(x.offsetTop>e.scrollTop){
top= x.offsetTop
if(i<5){
this.$ref.scrollRef.setScrollTop(top)
}
else this.isScrolling=false
break;
}
}
}
setTimeout(()=>{
this.isScrolling=false
},300)
}else{
this. top = e.scrollTop
if(nodes && nodes.length>0){
for (let i = 0; i < nodes.length; i++) {
const x = nodes[i]
const y = nodes[i-1]
if(x.offsetTop>e.scrollTop&&y.offsetTop<e.scrollTop){
this.activeMenu = i
}
}
}
}
},
handleResize() {
this.windowWidth = window.innerWidth;
},
init() {
this.$q.loading.show();
var jObj = JSON.parse(localStorage.getItem("groupinfo"));
if(jObj) {
this.RB_Group_Id = jObj.GroupId;
this.getHomeData();
if(this.timer) {
clearInterval(this.timer)
}
}
},
getHomeData() {
let locationName = this.GetDomain();
var msg = {
RB_Group_Id: this.RB_Group_Id,
B2BDomain: locationName,
};
this.apipost(
"ws_get_GetHomePage",
msg,
(res) => {
if (res.data.resultCode == 1) {
if (res.data.data) {
this.HomeData = res.data.data;
var jsonData = JSON.stringify(res.data.data);
window.localStorage.setItem("HomeData", jsonData);
setTimeout(()=>{
this.$q.loading.hide()
},500)
}
}
this.$nextTick(()=>{
this.isPic = document.URL.indexOf("localhost")!=-1||document.URL.indexOf("www.oytour.com")!=-1
});
},
(err) => {}
);
},
}
}
</script>
<style>
@import url("../../assets/css/home.css");
@import url("../../assets/css/app.css");
</style>
......@@ -6,19 +6,19 @@ const routes = [{
path: '',
meta: { title: '首页' },
component: () =>
import ('pages/index.vue')
import ('pages/home/index.vue')
},
{
path: '/index',
meta: { title: '首页' },
component: () =>
import ('pages/index.vue')
import ('pages/home/index.vue')
},
{
path: '/about', //关于我们
meta: { title: '关于我们' },
component: () =>
import ('pages/about.vue')
import ('pages/About.vue')
}, {
path: '/contract', //契约管理
meta: { title: '契约管理' },
......@@ -271,4 +271,4 @@ if (process.env.MODE !== 'ssr') {
})
}
export default routes
\ No newline at end of file
export default routes
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment