officialWebsite/src/views/companyprofildetail/size768/index.vue

518 lines
15 KiB
Vue
Raw Normal View History

2025-02-21 02:09:59 +00:00
<template>
<div class="page-container">
2025-02-22 11:07:59 +00:00
<n-divider class="divider1" vertical />
<n-divider class="divider5" vertical />
2025-02-21 02:09:59 +00:00
<header className="header flex items-center justify-between">
<div class="logo">
<img src="@/assets/image/logo.png" alt="logo" />
</div>
<div class="tabs">
<div
class="tab-item"
:class="{ active: currentTab === 'home' }"
@click="handleTabClick('home')"
>
2025-02-26 09:15:36 +00:00
{{ t("home.nav.home") }}
2025-02-21 02:09:59 +00:00
</div>
<div
class="tab-item"
2025-02-22 09:37:27 +00:00
:class="{ active: currentTab === 'companyprofil' }"
@click="handleTabClick('companyprofil')"
2025-02-21 02:09:59 +00:00
>
2025-02-26 09:15:36 +00:00
{{ t("home.nav.company") }}
2025-02-21 02:09:59 +00:00
</div>
<div
class="tab-item"
2025-02-22 09:37:27 +00:00
:class="{ active: currentTab === 'businessintroduction' }"
@click="handleTabClick('businessintroduction')"
2025-02-21 02:09:59 +00:00
>
2025-02-26 09:15:36 +00:00
{{ t("home.nav.businessintroduction") }}
</div>
<div class="tab-item" @click="handleLanguageChange">
{{ currentLanguageLabel }}
<img
src="@/assets/image/home/768/icon-language.png"
alt="language"
class="w-[18px] ml-[13px]"
/>
2025-02-21 02:09:59 +00:00
</div>
</div>
</header>
2025-02-26 09:15:36 +00:00
<!-- 语言选择模态框 - 使用纯div实现 -->
<div
v-if="showLanguageModal"
class="language-modal"
@touchmove.prevent.stop
>
<div class="language-modal-backdrop" @click="closeLanguageModal"></div>
<div class="language-modal-content">
<div class="modal-header font-semibold flex items-center">
{{ t("home.nav.please_select") }}
<img
src="@/assets/image/home/375/icon-close.png"
alt="close"
class="close-btn w-[51px]"
@click="closeLanguageModal"
/>
</div>
<div class="language-modal-body" @wheel.stop @touchmove.stop>
<div
v-for="option in languageOptions"
:key="option.value"
class="language-option"
:class="{ active: selectedLanguage === option.value }"
@click="selectedLanguage = option.value"
>
{{ option.label }}
</div>
</div>
<div class="language-modal-footer">
<button class="confirm-btn" @click="confirmLanguageChange">
{{ t("home.nav.confirm_select") }}
</button>
</div>
</div>
</div>
2025-02-21 03:12:53 +00:00
<main>
<section
className="section-first"
2025-02-22 09:37:27 +00:00
v-if="state.pageTitleNo === '1'"
2025-02-21 03:12:53 +00:00
style="background: #fff"
>
<div class="flex flex-wrap justify-center">
<div class="w-full title mt-[298px] px-[180px] text-center">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article1.title") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="w-full text-center mt-[28px] text-[#455363] text-[40px]">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article1.date") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="mt-[63px] overflow-hidden">
2025-02-21 02:09:59 +00:00
<img
2025-02-21 03:12:53 +00:00
class="w-[1625px] h-[1003px]"
src="@/assets/image/companyprofil/768/carouselShow-1.png"
2025-02-21 02:09:59 +00:00
/>
</div>
<div
2025-02-21 03:12:53 +00:00
class="w-full px-[188px] text-[#455363] text-[40px] div-indent mt-[118px] mb-[275px]"
2025-02-21 02:09:59 +00:00
>
2025-02-22 14:03:20 +00:00
<div>{{ $t("companyprofildetail.article1.content[0]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[1]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[2]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[3]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[4]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[5]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[6]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[7]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[8]") }}</div>
<div>{{ $t("companyprofildetail.article1.content[9]") }}</div>
2025-02-21 02:09:59 +00:00
</div>
</div>
</section>
2025-02-21 03:12:53 +00:00
<section
className="section-sec"
2025-02-22 09:37:27 +00:00
v-if="state.pageTitleNo === '2'"
2025-02-21 03:12:53 +00:00
style="background: #fff"
>
2025-02-21 02:09:59 +00:00
<div class="flex flex-wrap justify-center">
<div class="w-full title mt-[298px] px-[180px] text-center">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article2.title") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="w-full text-center mt-[28px] text-[#455363] text-[40px]">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article2.date") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="mt-[63px] overflow-hidden">
2025-02-21 02:09:59 +00:00
<img
2025-02-21 03:12:53 +00:00
class="w-[1625px] h-[1003px]"
src="@/assets/image/companyprofil/768/carouselShow-2.png"
2025-02-21 02:09:59 +00:00
/>
</div>
2025-02-21 03:12:53 +00:00
<div
class="w-full px-[188px] text-[#455363] text-[40px] div-indent mt-[118px] mb-[275px]"
>
2025-02-22 14:03:20 +00:00
<div>{{ $t("companyprofildetail.article2.content[0]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[1]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[2]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[3]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[4]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[5]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[6]") }}</div>
<div>{{ $t("companyprofildetail.article2.content[7]") }}</div>
2025-02-21 02:09:59 +00:00
</div>
</div>
</section>
2025-02-21 03:12:53 +00:00
<section
className="section-third"
2025-02-22 09:37:27 +00:00
v-if="state.pageTitleNo === '3'"
2025-02-21 03:12:53 +00:00
style="background: #fff"
>
2025-02-21 02:09:59 +00:00
<div class="flex flex-wrap justify-center">
<div class="w-full title mt-[298px] px-[180px] text-center">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article3.title") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="w-full text-center mt-[28px] text-[#455363] text-[40px]">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article3.date") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="mt-[63px] overflow-hidden">
2025-02-21 03:12:53 +00:00
<img
class="w-[1625px] h-[1003px]"
src="@/assets/image/companyprofil/768/carouselShow-3.png"
2025-02-21 03:12:53 +00:00
/>
2025-02-21 02:09:59 +00:00
</div>
<div
2025-02-21 03:12:53 +00:00
class="w-full px-[188px] text-[#455363] text-[40px] div-indent mt-[118px] mb-[275px]"
2025-02-21 02:09:59 +00:00
>
2025-02-22 14:03:20 +00:00
<div>{{ $t("companyprofildetail.article3.content[0]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[1]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[2]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[3]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[4]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[5]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[6]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[7]") }}</div>
<div>{{ $t("companyprofildetail.article3.content[8]") }}</div>
2025-02-21 02:09:59 +00:00
</div>
2025-02-21 03:12:53 +00:00
</div>
</section>
<section
className="section-four"
2025-02-22 09:37:27 +00:00
v-if="state.pageTitleNo === '4'"
2025-02-21 03:12:53 +00:00
style="background: #fff"
>
<div class="flex flex-wrap justify-center">
<div class="w-full title mt-[298px] px-[180px] text-center">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article4.title") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="w-full text-center mt-[28px] text-[#455363] text-[40px]">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article4.date") }}
2025-02-21 03:12:53 +00:00
</div>
<div class="mt-[63px] overflow-hidden">
2025-02-21 02:09:59 +00:00
<img
2025-02-21 03:12:53 +00:00
class="w-[1625px] h-[1003px]"
src="@/assets/image/companyprofil/768/carouselShow-4.png"
2025-02-21 02:09:59 +00:00
/>
</div>
<div
2025-02-21 03:12:53 +00:00
class="w-full px-[188px] text-[#455363] text-[40px] div-indent mt-[118px] mb-[275px]"
2025-02-21 02:09:59 +00:00
>
2025-02-22 14:03:20 +00:00
<div>{{ $t("companyprofildetail.article4.content[0]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[1]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[2]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[3]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[4]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[5]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[6]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[7]") }}</div>
<div>{{ $t("companyprofildetail.article4.content[8]") }}</div>
2025-02-21 02:09:59 +00:00
</div>
</div>
</section>
2025-02-21 03:12:53 +00:00
<section
className="section-five"
2025-02-22 09:37:27 +00:00
v-if="state.pageTitleNo === '5'"
2025-02-21 03:12:53 +00:00
style="background: #fff"
>
2025-02-21 02:09:59 +00:00
<div class="flex flex-wrap justify-center">
<div class="w-full title mt-[298px] px-[180px] text-center">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article5.title") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="w-full text-center mt-[28px] text-[#455363] text-[40px]">
2025-02-22 14:03:20 +00:00
{{ $t("companyprofildetail.article5.date") }}
2025-02-21 02:09:59 +00:00
</div>
<div class="mt-[63px] overflow-hidden">
2025-02-21 03:12:53 +00:00
<img
class="w-[1625px] h-[1003px]"
src="@/assets/image/companyprofil/768/carouselShow-5.png"
2025-02-21 03:12:53 +00:00
/>
2025-02-21 02:09:59 +00:00
</div>
<div
2025-02-21 03:12:53 +00:00
class="w-full px-[188px] text-[#455363] text-[40px] div-indent mt-[118px] mb-[275px]"
2025-02-21 02:09:59 +00:00
>
2025-02-22 14:03:20 +00:00
<div>{{ $t("companyprofildetail.article5.content[0]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[1]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[2]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[3]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[4]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[5]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[6]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[7]") }}</div>
<div>{{ $t("companyprofildetail.article5.content[8]") }}</div>
2025-02-21 02:09:59 +00:00
</div>
</div>
</section>
<section
style="background: #fff"
className="flex flex-wrap justify-center"
>
<img
class="w-[580px] h-[55px] my-[85px]"
src="@/assets/image/image-footer.png"
alt="logo"
/>
</section>
</main>
</div>
</template>
<script setup>
2025-02-22 11:07:59 +00:00
import { NDivider } from "naive-ui";
2025-02-21 03:12:53 +00:00
import {
onUnmounted,
ref,
onMounted,
reactive,
nextTick,
2025-02-26 09:15:36 +00:00
watch,
2025-02-21 03:12:53 +00:00
onBeforeMount,
} from "vue";
2025-02-21 02:09:59 +00:00
import { useHome } from "@/store/home/index.js";
const state = reactive({
2025-02-22 09:37:27 +00:00
pageTitleNo: "",
2025-02-21 02:09:59 +00:00
});
2025-02-22 10:30:42 +00:00
import { useRoute, useRouter } from "vue-router";
2025-02-26 09:15:36 +00:00
import { useI18n } from "vue-i18n";
const { t } = useI18n();
2025-02-22 10:30:42 +00:00
const router = useRouter();
2025-02-21 03:12:53 +00:00
const route = useRoute();
2025-02-22 10:30:42 +00:00
const { currentTab } = useHome();
2025-02-26 09:15:36 +00:00
import { useLanguage } from "@/utils/changeLanguage.js";
const {
languageOptions,
currentLanguageLabel,
changeLanguage,
initLanguage,
currentLang,
} = useLanguage();
2025-02-21 03:12:53 +00:00
onBeforeMount(() => {
2025-02-22 09:37:27 +00:00
state.pageTitleNo = route.query.titleNo;
2025-02-21 02:09:59 +00:00
});
2025-02-21 03:12:53 +00:00
onMounted(() => {});
onUnmounted(() => {});
2025-02-22 10:30:42 +00:00
const handleTabClick = (tab) => {
currentTab.value = tab;
router.push("/" + tab);
};
2025-02-26 09:15:36 +00:00
// 语言选择模态框相关变量
const showLanguageModal = ref(false);
// 默认选中的语言从localStorage获取如果没有则默认为简体中文
const selectedLanguage = ref(localStorage.getItem("language") || "zh");
// 打开语言选择模态框
const handleLanguageChange = () => {
showLanguageModal.value = true;
// 打开时设置当前选中的语言
selectedLanguage.value = localStorage.getItem("language") || "zh";
// 禁止背景滚动
document.body.style.overflow = "hidden";
};
const currentLanguage = ref(localStorage.getItem("language") || "zh");
// 添加语言变化的监听
watch(
() => localStorage.getItem("language"),
(newLang) => {
if (newLang) {
currentLanguage.value = newLang;
}
},
{ immediate: true }
);
// 确认语言选择
const confirmLanguageChange = () => {
changeLanguage(selectedLanguage.value);
// 更新轮播图
currentLanguage.value = selectedLanguage.value;
// 关闭模态框
showLanguageModal.value = false;
// 恢复背景滚动
document.body.style.overflow = "";
};
// 关闭语言选择模态框
const closeLanguageModal = () => {
showLanguageModal.value = false;
// 恢复背景滚动
document.body.style.overflow = "";
};
2025-02-21 02:09:59 +00:00
</script>
<style scoped lang="scss">
.page-container {
width: 100%;
overflow-x: hidden;
position: relative;
}
.header {
width: 100%;
height: 155px;
position: fixed;
z-index: 10;
top: 0;
left: 0;
right: 0;
2025-02-22 14:03:20 +00:00
padding: 0 200px 0 188px;
2025-02-24 01:10:16 +00:00
background-color: #fff;
2025-02-21 02:09:59 +00:00
}
.logo {
img {
width: 270px;
height: 83px;
}
}
.tabs {
display: flex;
gap: 32px;
margin-right: 32px;
}
.tab-item {
font-size: 30px;
color: #000000;
cursor: pointer;
transition: color 0.3s ease;
padding: 4px 8px;
&.active {
color: #8b59fa;
}
&:hover {
color: #8b59fa;
}
}
.title {
font-size: 85px;
font-weight: 600;
}
2025-02-21 03:12:53 +00:00
.div-indent {
2025-02-22 14:03:20 +00:00
text-indent: 2em;
2025-02-21 03:12:53 +00:00
line-height: 75px;
2025-02-21 02:09:59 +00:00
}
.title {
2025-02-21 03:12:53 +00:00
line-height: 110px;
color: #10253e;
2025-02-21 02:09:59 +00:00
}
2025-02-22 11:07:59 +00:00
.divider1 {
position: absolute;
z-index: 3;
2025-02-22 12:42:33 +00:00
background-color: rgba(230, 234, 238, 0.5) !important;
2025-02-22 11:07:59 +00:00
left: 116px;
width: 1px;
height: 100%;
}
.divider5 {
position: absolute;
z-index: 3;
2025-02-22 12:42:33 +00:00
background-color: rgba(230, 234, 238, 0.5) !important;
2025-02-22 11:07:59 +00:00
right: 116px;
width: 1px;
height: 100%;
}
2025-02-26 09:15:36 +00:00
/* 语言选择模态框样式 */
.language-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 1000;
touch-action: none; /* 防止触摸事件影响背景 */
}
.language-modal-backdrop {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1001;
}
.language-modal-content {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
max-height: 90vh; /* 最大高度为视口高度的90% */
background-color: #fff;
z-index: 1002;
box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
display: flex;
flex-direction: column;
overflow: hidden; /* 内容溢出隐藏 */
}
.modal-header {
padding: 33px 38px 55px 38px;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 40px;
color: #000000;
position: relative;
flex-shrink: 0; /* 不允许头部收缩 */
}
.close-btn {
cursor: pointer;
}
.language-modal-body {
padding: 10px 0;
overflow-y: auto; /* 只有内容区域可滚动 */
-webkit-overflow-scrolling: touch; /* 为iOS设备提供平滑滚动 */
flex: 1; /* 内容区域填充剩余空间 */
overscroll-behavior: contain; /* 阻止滚动穿透 */
}
.language-option {
padding: 30px 0;
font-size: 40px;
color: #333;
cursor: pointer;
transition: background-color 0.3s;
text-align: center;
}
.language-option:hover,
.language-option.active {
background-color: #f5f5f5;
color: #8b59f7;
}
.language-modal-footer {
padding: 40px 38px;
display: flex;
justify-content: center;
flex-shrink: 0; /* 不允许底部收缩 */
}
.confirm-btn {
background-color: #8b59f7;
color: white;
border: none;
border-radius: 10px;
padding: 23px 0;
width: 100%;
font-size: 40px;
cursor: pointer;
}
.confirm-btn:hover {
background-color: #7a48e6;
}
2025-02-21 02:09:59 +00:00
</style>