166 lines
3.6 KiB
Vue
166 lines
3.6 KiB
Vue
<template>
|
|
<header></header>
|
|
<main class="p-[35px] max-w-[1200px] mx-auto">
|
|
<div class="title mb-[20px]">
|
|
{{ t("financialinformation.quarterlyresults.title") }}
|
|
</div>
|
|
<div class="search-container">
|
|
<input
|
|
type="text"
|
|
:placeholder="
|
|
t('financialinformation.quarterlyresults.search.placeholder')
|
|
"
|
|
v-model="searchQuery"
|
|
class="search-input"
|
|
/>
|
|
<button class="search-button" @click="handleSearch">
|
|
{{ t("financialinformation.quarterlyresults.search.button") }}
|
|
</button>
|
|
</div>
|
|
|
|
<div class="results-list">
|
|
<div
|
|
v-for="(item, index) in filteredList"
|
|
:key="index"
|
|
class="result-item"
|
|
>
|
|
<div class="content">
|
|
<a :href="item.url" class="result-title subtitle">{{ item.title }}</a>
|
|
<p class="result-description content-text">{{ item.description }}</p>
|
|
</div>
|
|
<div class="pdf-icon">
|
|
<a :href="item.url" target="_blank">
|
|
<img src="@/assets/image/pdf.png" alt="PDF" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
<footer></footer>
|
|
</template>
|
|
<script setup>
|
|
import { ref, watch, onMounted, computed, reactive } from "vue";
|
|
import { useI18n } from "vue-i18n";
|
|
import quarterlyPdf2025Q1 from "@/assets/file/2025 Q1 Quarterly Results.pdf";
|
|
import quarterlyPdf2023Q1 from "@/assets/file/2023 Q1 Quarterly Results.pdf";
|
|
import quarterlyPdf2023Q2 from "@/assets/file/2023 Q2 Quarterly Results.pdf";
|
|
const { t } = useI18n();
|
|
const searchQuery = ref("");
|
|
|
|
const state = reactive({
|
|
list: [
|
|
{
|
|
title: "2025 Q1 Quarterly Results",
|
|
description:
|
|
"Unaudited First Quarter and Full Year 2025 Financial Results",
|
|
url: quarterlyPdf2025Q1,
|
|
},
|
|
{
|
|
title: "2023 Q1 Quarterly Results",
|
|
description: "First Quarter and Full Year 2023 Financial Results",
|
|
url: quarterlyPdf2023Q1,
|
|
},
|
|
{
|
|
title: "2023 Q2 Quarterly Results",
|
|
description: "Second Quarter and Full Year 2023 Financial Results",
|
|
url: quarterlyPdf2023Q2,
|
|
},
|
|
],
|
|
});
|
|
|
|
onMounted(async () => {});
|
|
const filteredList = computed(() => {
|
|
if (!searchQuery.value) return state.list;
|
|
const query = searchQuery.value.toLowerCase();
|
|
return state.list.filter(
|
|
(item) =>
|
|
item.title.toLowerCase().includes(query) ||
|
|
item.description.toLowerCase().includes(query)
|
|
);
|
|
});
|
|
|
|
const handleSearch = () => {
|
|
// 搜索处理逻辑
|
|
console.log("搜索:", searchQuery.value);
|
|
};
|
|
</script>
|
|
<style scoped lang="scss">
|
|
.title {
|
|
font-size: 40px;
|
|
color: #333;
|
|
}
|
|
.subtitle {
|
|
font-size: 18px;
|
|
font-weight: 600;
|
|
color: #333;
|
|
}
|
|
.content-text {
|
|
font-size: 16px;
|
|
}
|
|
.search-container {
|
|
margin-bottom: 20px;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.search-input {
|
|
padding: 8px 12px;
|
|
border: 1px solid #ccc;
|
|
border-radius: 4px;
|
|
width: 240px;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
.search-button {
|
|
padding: 8px 16px;
|
|
background-color: #f0f0f0;
|
|
border: 1px solid #ccc;
|
|
border-radius: 4px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.results-list {
|
|
padding-right: 20px;
|
|
margin-top: 20px;
|
|
max-height: 1200px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.result-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
padding: 15px 0;
|
|
border-bottom: 1px solid #eee;
|
|
}
|
|
|
|
.content {
|
|
flex: 1;
|
|
}
|
|
|
|
.result-title {
|
|
color: #0078d7;
|
|
text-decoration: none;
|
|
display: block;
|
|
margin-bottom: 5px;
|
|
|
|
&:hover {
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
|
|
.result-description {
|
|
color: #666;
|
|
margin: 0;
|
|
}
|
|
|
|
.pdf-icon {
|
|
margin-left: 15px;
|
|
|
|
img {
|
|
width: 24px;
|
|
height: 24px;
|
|
}
|
|
}
|
|
</style>
|