From f065760fa7df1f88747395ab4b55349ce8b2faf0 Mon Sep 17 00:00:00 2001 From: Tomas <tomasysh@gmail.com> Date: 星期一, 25 十二月 2023 13:35:43 +0800 Subject: [PATCH] Update#178944: 移除 lodash 套件 --- PAMapp/layouts/default.vue | 144 ++++++++++++++++++++++++++++++------------------ 1 files changed, 90 insertions(+), 54 deletions(-) diff --git a/PAMapp/layouts/default.vue b/PAMapp/layouts/default.vue index faa3fe4..e7d36c1 100644 --- a/PAMapp/layouts/default.vue +++ b/PAMapp/layouts/default.vue @@ -1,18 +1,22 @@ <template> <div class="pam-background"> <UiGoToTop></UiGoToTop> + <NavBar></NavBar> <BackActionBar></BackActionBar> <div class="pam-banner" :class="bannerClassName"> <div class="pam-banner__text text--dark-blue"> <div class="mt-5" - v-for="(item,index) in getBannerTextList" + v-for="(bannerText, index) in bannerTextList" :key="index"> - {{item}} + {{ bannerText }} </div> </div> </div> - <div class="pam-container" :class="containClassName"> + <div + class="pam-container" + :class="[containClassName, {'mt-navBar': bannerClassName === 'pam-no-banner'} ]" + > <Nuxt class="pam-page-container"></Nuxt> </div> <Footer></Footer> @@ -21,55 +25,61 @@ <script lang="ts"> import { Vue, Component } from 'vue-property-decorator'; - import * as _ from 'lodash'; - @Component export default class DefaultLayout extends Vue { - private bannerTextDto:BannerDto= { - [RouterPage.RECOMMEND_CONSULTANT]: ['頛詨������', '靘雿��瘙���憿批��'], - [RouterPage.QUICK_FILTER]: ['暺銝����', '撠雿�EST Match'], - [RouterPage.MY_CONSULTANT_LIST]:[], - [RouterPage.QUESTIONNAIRE]:[], - } - get getBannerTextList(): string[] { - return this.bannerTextDto[this.route] ? this.bannerTextDto[this.route] : []; - }; get route(): string{ const routeName = this.$route.name; - return routeName ? routeName:''; + return routeName ? routeName : ''; }; - get bannerClassName() { - return this.routeFormatBannerClass(this.route); - }; - - // format to {page}-banner or pam-no-banner tag - private routeFormatBannerClass(route: string): string { - const needBannerTags = ['recommendConsultant', 'quickFilter', 'myConsultantList-consultantList','myAppointmentList-appointmentList']; - return _.includes(needBannerTags, route) ? route + '-banner' : 'pam-no-banner'; + get bannerTextList(): string[] { + return this.bannerText[this.route]; }; get containClassName(): string { return this.routeFormatContainClass(this.route); }; + get bannerClassName() { + return this.routeFormatBannerClass(this.route); + }; + + ////////////////////////////////////////////////////////////////////// + // format to {page}-container tag private routeFormatContainClass(route: string): string { - const needContainBgTags = ['recommendConsultant', 'questionnaire']; - return _.includes(needContainBgTags, route) ? route + '-container' : ''; + const needContainBgRoutes = ['recommendConsultant', 'questionnaire-agentNo']; + return needContainBgRoutes.includes(route) ? route + '-container' : ''; }; + + // format to {page}-banner or pam-no-banner tag + private routeFormatBannerClass(route: string): string { + const needBannerRoutes = ['recommendConsultant', 'quickFilter', 'myConsultantList-consultantList', 'myConsultantList-contactedList', 'myAppointmentList-appointmentList', 'myAppointmentList-contactedList', 'login', 'notification']; + return needBannerRoutes.includes(route) ? route + '-banner' : 'pam-no-banner'; + }; + + private bannerText: FeatureBannerTitle= { + [FeaturePage.RECOMMEND_CONSULTANT]: ['頛詨�犖��瘙��末', '���敺�澈��銋�憿批��'], + [FeaturePage.QUICK_FILTER] : ['靘�犖��末敹恍����', '��雿��雿喲“���'], + [FeaturePage.MY_CONSULTANT_LIST] : [], + [FeaturePage.QUESTIONNAIRE] : [], + } + } - enum RouterPage { + + enum FeaturePage { RECOMMEND_CONSULTANT = 'recommendConsultant', - QUICK_FILTER = "quickFilter", - MY_CONSULTANT_LIST = "myConsultantList", - QUESTIONNAIRE = 'questionnaire', + QUICK_FILTER = "quickFilter", + MY_CONSULTANT_LIST = "myConsultantList", + QUESTIONNAIRE = 'questionnaire', } - type BannerDto={ - [x:string]:string[]; + + interface FeatureBannerTitle { + [x:string]: string[]; }; + </script> <style lang="scss" @@ -88,18 +98,6 @@ margin: 30px 20px; } - @include desktop { - .pam-page-container { - width: 700px; - margin: 30px auto 0px auto; - } - .pam-banner__text{ - width: 700px; - position: static !important; - margin: 30px auto 0px auto; - } - } - .pam-banner { width: 100%; height: 120px; @@ -107,6 +105,29 @@ background-repeat: no-repeat; background-position: center; position: relative; + @extend .mt-navBar; + } + + .mt-navBar { + margin-top: calc($MOB_NAV_BAR * 2); + } + + @include desktop { + .pam-banner { + height: 150px; + } + .mt-navBar { + margin-top: calc($DESKTOP_NAV_BAR + $MOB_NAV_BAR); + } + .pam-page-container { + width: 700px; + margin: 30px auto; + } + .pam-banner__text{ + width: 700px; + position: static !important; + margin: 30px auto 0px auto; + } } .pam-banner__text { @@ -130,8 +151,8 @@ background-image: url('~/assets/images/quickFilter/banner_mob.svg'); } - @media (min-width: 768px) { - &-banner { + @include desktop { + &-banner { background-image: url('~/assets/images/quickFilter/banner_web.svg'); } } @@ -148,7 +169,7 @@ background-size: contain; } - @media (min-width: 768px) { + @include desktop { &-banner { background-image: url('~/assets/images/recommendConsultant/banner_web.svg'); background-size: cover; @@ -159,42 +180,57 @@ background-size: cover; } } + } - .myConsultantList-consultantList { + .myConsultantList-consultantList,.myConsultantList-contactedList { &-banner { background-image: url('~/assets/images/myConsultantList/banner_mob.svg'); } - @media (min-width: 768px) { + @include desktop { &-banner { background-image: url('~/assets/images/myConsultantList/banner_web.svg'); } } } - .questionnaire { + .questionnaire-agentNo { &-container { background-image: url('~/assets/images/recommendConsultant/bg_flower_mob.svg'); background-size: contain; } - @media (min-width: 768px) { + @include desktop { &-container { background-image: url('~/assets/images/recommendConsultant/bg_flower_web.svg'); background-size: cover; } } } - .myAppointmentList-appointmentList{ + + .login { &-banner { - background-image: url('~/assets/images/myAppointmentList/agent_banner_mob.svg'); + background-image: url('~/assets/images/login/login_mob.svg'); } - @media (min-width: 768px) { + @include desktop { &-banner { - background-image: url('~/assets/images/myAppointmentList/agent_banner_web.svg'); + background-image: url('~/assets/images/login/login_web.svg'); } } } + + .notification { + &-banner { + background-image: url('~/assets/images/notification/banner_mob.svg'); + } + + @include desktop { + &-banner { + background-image: url('~/assets/images/notification/banner_web.svg'); + } + } + } + </style> -- Gitblit v1.8.0