|
@@ -1,71 +1,57 @@
|
|
|
<template>
|
|
|
- <div class="about-view">
|
|
|
- <menu
|
|
|
- class="tab-bar"
|
|
|
- >
|
|
|
- <button
|
|
|
- :class="{
|
|
|
- active: $route.meta.aboutTabIdx === 0
|
|
|
- }"
|
|
|
- @click="$router.push({
|
|
|
- name: 'InstitutionView'
|
|
|
- })"
|
|
|
- >
|
|
|
- 机构
|
|
|
- </button>
|
|
|
- <button
|
|
|
- :class="{
|
|
|
- active: $route.meta.aboutTabIdx === 1
|
|
|
- }"
|
|
|
- @click="$router.push({
|
|
|
- name: 'VisitView'
|
|
|
- })"
|
|
|
- >
|
|
|
- 参观
|
|
|
- </button>
|
|
|
- <button
|
|
|
- :class="{
|
|
|
- active: $route.meta.aboutTabIdx === 2
|
|
|
- }"
|
|
|
- @click="$router.push({
|
|
|
- name: 'ExhibitionView'
|
|
|
- })"
|
|
|
- >
|
|
|
- 展览
|
|
|
- </button>
|
|
|
- <button
|
|
|
- :class="{
|
|
|
- active: $route.meta.aboutTabIdx === 3
|
|
|
- }"
|
|
|
- @click="$router.push({
|
|
|
- name: 'ServiceView'
|
|
|
- })"
|
|
|
+ <div class="service-view">
|
|
|
+ <div class="wrapper">
|
|
|
+ <img
|
|
|
+ class="bg-cloud"
|
|
|
+ src="@/assets/images/about/img_cloud.png"
|
|
|
+ alt=""
|
|
|
+ draggable="false"
|
|
|
>
|
|
|
- 服务
|
|
|
- </button>
|
|
|
- <button
|
|
|
- :class="{
|
|
|
- active: $route.meta.aboutTabIdx === 4
|
|
|
- }"
|
|
|
- @click="$router.push({
|
|
|
- name: 'ConsultView'
|
|
|
- })"
|
|
|
+ <TableTitle
|
|
|
+ class="table-title"
|
|
|
+ text-cn="服务说明"
|
|
|
+ text-en="SERVICE DESCRIPTION"
|
|
|
+ />
|
|
|
+ <div class="card-list">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in serviceList"
|
|
|
+ :key="index"
|
|
|
+ class="card"
|
|
|
+ >
|
|
|
+ <h2 class="title">
|
|
|
+ {{ item.title }}
|
|
|
+ </h2>
|
|
|
+ <img
|
|
|
+ class="icon"
|
|
|
+ :src="require(`@/assets/images/about/${item.title}.png`)"
|
|
|
+ alt=""
|
|
|
+ draggable="false"
|
|
|
+ >
|
|
|
+ <div class="desc">
|
|
|
+ {{ serviceList[index].desc }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <button
|
|
|
+ ref="qrCodeRef"
|
|
|
+ class="qr-code"
|
|
|
+ @click="isShowQrCode = true"
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ class="icon"
|
|
|
+ src="@/assets/images/about/icon-qr-code.png"
|
|
|
+ alt=""
|
|
|
+ draggable="false"
|
|
|
>
|
|
|
- 咨询
|
|
|
- </button>
|
|
|
- <button
|
|
|
- :class="{
|
|
|
- active: $route.meta.aboutTabIdx === 5
|
|
|
- }"
|
|
|
- @click="$router.push({
|
|
|
- name: 'CollectionView'
|
|
|
- })"
|
|
|
+ <img
|
|
|
+ v-show="isShowQrCode"
|
|
|
+ class="qr-code"
|
|
|
+ src="@/assets/images/about/qr-code.png"
|
|
|
+ alt=""
|
|
|
+ draggable="false"
|
|
|
>
|
|
|
- 典藏
|
|
|
- </button>
|
|
|
- </menu>
|
|
|
-
|
|
|
- <router-view />
|
|
|
+ </button>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -73,20 +59,107 @@
|
|
|
import { ref, computed, watch, onMounted, onBeforeUnmount, inject } from "vue"
|
|
|
import { useRoute, useRouter } from "vue-router"
|
|
|
import { useStore } from "vuex"
|
|
|
+import { onClickOutside } from '@vueuse/core'
|
|
|
|
|
|
const route = useRoute()
|
|
|
const router = useRouter()
|
|
|
const store = useStore()
|
|
|
|
|
|
const $env = inject('$env')
|
|
|
+
|
|
|
+const serviceList = staticConfig.serviceList
|
|
|
+
|
|
|
+const qrCodeRef = ref(null)
|
|
|
+const isShowQrCode = ref(false)
|
|
|
+onClickOutside(qrCodeRef, event => {
|
|
|
+ isShowQrCode.value = false
|
|
|
+})
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-.about-view{
|
|
|
+.service-view{
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
+ background: linear-gradient( 180deg, rgba(88,148,152,0) 0%, rgba(88,148,152,0.3) 100%);
|
|
|
+ background-color: #fff;
|
|
|
+ z-index: 0;
|
|
|
+ >.wrapper{
|
|
|
+ position: relative;
|
|
|
+ height: 100%;
|
|
|
+ padding-top: 80px;
|
|
|
+ >img.bg-cloud{
|
|
|
+ position: absolute;
|
|
|
+ bottom: -72px;
|
|
|
+ left: 0;
|
|
|
+ width: 100%;
|
|
|
+ z-index: -1;
|
|
|
+ }
|
|
|
+ >.table-title{
|
|
|
+ margin-left: calc(220 / 1920 * 100vw);
|
|
|
+ }
|
|
|
+ >.card-list{
|
|
|
+ margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ >.card{
|
|
|
+ display: inline-block;
|
|
|
+ width: calc(387 / 1920 * 100vw);
|
|
|
+ height: calc(548 / 1920 * 100vw);
|
|
|
+ background-image: url(@/assets/images/about/service-card-bg.png);
|
|
|
+ background-size: cover;
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-position: center center;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ >.title{
|
|
|
+ font-family: Source Han Serif CN, Source Han Serif CN;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: calc(24 / 1920 * 100vw);
|
|
|
+ color: #FFE49D;
|
|
|
+ margin-top: calc(60 / 1920 * 100vw);
|
|
|
+ }
|
|
|
+ >img.icon{
|
|
|
+ width: calc(100 / 1920 * 100vw);
|
|
|
+ height: calc(100 / 1920 * 100vw);
|
|
|
+ margin-top: calc(76 / 1920 * 100vw);
|
|
|
+ }
|
|
|
+ >.desc{
|
|
|
+ width: calc(231 / 1920 * 100vw);;
|
|
|
+ margin-top: calc(122 / 1920 * 100vw);
|
|
|
+ transform: translateY(-50%);
|
|
|
+ font-family: Source Han Sans CN, Source Han Sans CN;
|
|
|
+ font-weight: 400;
|
|
|
+ font-size: calc(18 / 1920 * 100vw);
|
|
|
+ color: #474747;
|
|
|
+ line-height: calc(29 / 1920 * 100vw);
|
|
|
+ white-space: pre-line;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ >button.qr-code{
|
|
|
+ position: absolute;
|
|
|
+ right: 21px;
|
|
|
+ bottom: 139px;
|
|
|
+ width: 60px;
|
|
|
+ height: 60px;
|
|
|
+ background: #589498;
|
|
|
+ border-radius: 50%;
|
|
|
+ >img.icon{
|
|
|
+ width: 65%;
|
|
|
+ height: 65%;
|
|
|
+ }
|
|
|
+ >img.qr-code{
|
|
|
+ position: absolute;
|
|
|
+ right: 100%;
|
|
|
+ top: 0;
|
|
|
+ width: 160px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|