|
@@ -1,5 +1,14 @@
|
|
<template>
|
|
<template>
|
|
<div class="engine-template-wrapper is-long-page">
|
|
<div class="engine-template-wrapper is-long-page">
|
|
|
|
+ <van-nav-bar
|
|
|
|
+ v-if="isApp"
|
|
|
|
+ :title="pageTitle"
|
|
|
|
+ :class="{ 'use-white-head': isScroll }"
|
|
|
|
+ left-arrow
|
|
|
|
+ @click-left="onClickLeft"
|
|
|
|
+ >
|
|
|
|
+ </van-nav-bar>
|
|
|
|
+
|
|
<div class="relative" v-for="(page, i) in pageData.pages" :key="i"
|
|
<div class="relative" v-for="(page, i) in pageData.pages" :key="i"
|
|
:style="getCommonStyle(page.commonStyle)">
|
|
:style="getCommonStyle(page.commonStyle)">
|
|
<!--页面内容区域-->
|
|
<!--页面内容区域-->
|
|
@@ -22,10 +31,13 @@
|
|
import componentsTemplate from '../../components/components-template'
|
|
import componentsTemplate from '../../components/components-template'
|
|
import $config from '@client/config'
|
|
import $config from '@client/config'
|
|
import elementEvents from '@client/mixins/elementEvents'
|
|
import elementEvents from '@client/mixins/elementEvents'
|
|
- export default {
|
|
|
|
|
|
+ import { NavBar } from "vant";
|
|
|
|
+
|
|
|
|
+ export default {
|
|
name: 'engineH5Long',
|
|
name: 'engineH5Long',
|
|
components: {
|
|
components: {
|
|
- componentsTemplate
|
|
|
|
|
|
+ componentsTemplate,
|
|
|
|
+ [NavBar.name]: NavBar
|
|
},
|
|
},
|
|
mixins: [elementEvents],
|
|
mixins: [elementEvents],
|
|
data() {
|
|
data() {
|
|
@@ -35,19 +47,50 @@
|
|
pageData: {
|
|
pageData: {
|
|
pages: []
|
|
pages: []
|
|
},
|
|
},
|
|
- pageTop: 0
|
|
|
|
|
|
+ pageTop: 0,
|
|
|
|
+ isScroll: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ computed: {
|
|
|
|
+ pageTitle () {
|
|
|
|
+ return document.title
|
|
|
|
+ },
|
|
|
|
+ isApp () {
|
|
|
|
+ const ua = navigator.userAgent.toLowerCase()
|
|
|
|
+ let inNewApp = false
|
|
|
|
+
|
|
|
|
+ if (ua.includes('jianyuapp')) {
|
|
|
|
+ inNewApp = true
|
|
|
|
+ }
|
|
|
|
+ return inNewApp
|
|
|
|
+ }
|
|
|
|
+ },
|
|
created() {
|
|
created() {
|
|
this.pageData = window._pageData;
|
|
this.pageData = window._pageData;
|
|
this.computedPageStyle()
|
|
this.computedPageStyle()
|
|
|
|
|
|
window.addEventListener('resize', this.computedPageStyle)
|
|
window.addEventListener('resize', this.computedPageStyle)
|
|
|
|
+ if (this.isApp) {
|
|
|
|
+ window.addEventListener('scroll', this.toggleAppHeader)
|
|
|
|
+ }
|
|
},
|
|
},
|
|
destroyed() {
|
|
destroyed() {
|
|
window.removeEventListener('resize', this.computedPageStyle)
|
|
window.removeEventListener('resize', this.computedPageStyle)
|
|
|
|
+ if (this.isApp) {
|
|
|
|
+ window.removeEventListener('scroll', this.toggleAppHeader)
|
|
|
|
+ }
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ toggleAppHeader () {
|
|
|
|
+ if (window.scrollY > 23) {
|
|
|
|
+ this.isScroll = true
|
|
|
|
+ } else {
|
|
|
|
+ this.isScroll = false
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ onClickLeft () {
|
|
|
|
+ history.back()
|
|
|
|
+ },
|
|
computedPageStyle () {
|
|
computedPageStyle () {
|
|
let width = document.body.clientWidth
|
|
let width = document.body.clientWidth
|
|
if (width > 580) {
|
|
if (width > 580) {
|
|
@@ -72,7 +115,31 @@
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
+ .is-long-page {
|
|
|
|
+ ::v-deep {
|
|
|
|
+ .van-nav-bar::after {
|
|
|
|
+ content: unset;
|
|
|
|
+ }
|
|
|
|
+ .van-nav-bar {
|
|
|
|
+ position: fixed;
|
|
|
|
+ width: 100%;
|
|
|
|
+ top: 0;
|
|
|
|
+ left: 0;
|
|
|
|
+ background: transparent;
|
|
|
|
+ color: #fff;
|
|
|
|
+ padding-top: 12px;
|
|
|
|
+ &.use-white-head {
|
|
|
|
+ background: #fff;
|
|
|
|
+ color: #1d1d1d;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .van-nav-bar .van-icon,
|
|
|
|
+ .van-nav-bar__title {
|
|
|
|
+ color: inherit;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
.engine-template-wrapper {
|
|
.engine-template-wrapper {
|
|
position: relative;
|
|
position: relative;
|
|
width: 100%;
|
|
width: 100%;
|