Compare commits
No commits in common. "d6412aade0c42f47d2b9fbcedcfec68873a1ce0b" and "95fa3d3e5ea29f575a01b0c0e7448fa65fca4039" have entirely different histories.
d6412aade0
...
95fa3d3e5e
12
README.md
12
README.md
@ -44,14 +44,6 @@ pnpm run prod
|
||||
pnpm run build-prod
|
||||
```
|
||||
|
||||
# 发版
|
||||
### 部署项目
|
||||
|
||||
## 正式
|
||||
|
||||
<https://www.fiee.com/myhome>
|
||||
Jenkins front-fiee-website
|
||||
|
||||
## 测试
|
||||
|
||||
Jenkins front-fiee-website
|
||||
<http://fiee-web.test.fontree.cn:8081/product-introduction>
|
||||
```bash
|
||||
|
||||
1
env/.env.prod
vendored
1
env/.env.prod
vendored
@ -9,4 +9,3 @@ VITE_BASEURL = '//erpapi.test.fontree.cn:8081'
|
||||
|
||||
# 文档查看
|
||||
VITE_PAGE_URL="https://www.fiee.com"
|
||||
VITE_API_BASE_URL="https://erpapi.fiee.com/api"
|
||||
3
env/.env.test
vendored
3
env/.env.test
vendored
@ -9,5 +9,4 @@ VITE_BASEURL = '//erpapi.test.fontree.cn:8081'
|
||||
# 文档查看
|
||||
# VITE_PAGE_URL="http://172.16.100.22:8045"
|
||||
# VITE_PAGE_URL="http://192.168.88.50:5878"
|
||||
VITE_PAGE_URL="https://www.fiee.com"
|
||||
VITE_API_BASE_URL="http://erpapi.test.fontree.cn:8081/api"
|
||||
VITE_PAGE_URL="https://www.fiee.com"
|
||||
@ -97,8 +97,8 @@ const selectedLanguage = ref(
|
||||
);
|
||||
|
||||
const languageOptions = computed(() => [
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.ja"), value: "ja", key: "ja" },
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.zh"), value: "zh", key: "zh" },
|
||||
{ label: t("language.zhTW"), value: "zh-TW", key: "zh-TW" },
|
||||
]);
|
||||
|
||||
@ -94,8 +94,8 @@ const selectedLanguage = ref(
|
||||
);
|
||||
|
||||
const languageOptions = computed(() => [
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.ja"), value: "ja", key: "ja" },
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.zh"), value: "zh", key: "zh" },
|
||||
{ label: t("language.zhTW"), value: "zh-TW", key: "zh-TW" },
|
||||
]);
|
||||
|
||||
@ -107,8 +107,8 @@ const selectedLanguage = ref(
|
||||
localStorage.getItem("language") || locale.value || "en"
|
||||
);
|
||||
const languageOptions = computed(() => [
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.ja"), value: "ja", key: "ja" },
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.zh"), value: "zh", key: "zh" },
|
||||
{ label: t("language.zhTW"), value: "zh-TW", key: "zh-TW" },
|
||||
]);
|
||||
|
||||
@ -103,8 +103,8 @@ const selectedLanguage = ref(
|
||||
localStorage.getItem("language") || locale.value || "en"
|
||||
);
|
||||
const languageOptions = computed(() => [
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.ja"), value: "ja", key: "ja" },
|
||||
{ label: t("language.en"), value: "en", key: "en" },
|
||||
{ label: t("language.zh"), value: "zh", key: "zh" },
|
||||
{ label: t("language.zhTW"), value: "zh-TW", key: "zh-TW" },
|
||||
]);
|
||||
|
||||
@ -49,25 +49,16 @@
|
||||
<script setup lang="jsx">
|
||||
import { NDataTable } from "naive-ui";
|
||||
import { committeeManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const committeeData = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await committeeManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await committeeManagement({});
|
||||
committeeData.value = res.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
||||
@ -49,25 +49,16 @@
|
||||
<script setup lang="jsx">
|
||||
import { NDataTable } from "naive-ui";
|
||||
import { committeeManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const committeeData = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await committeeManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await committeeManagement({});
|
||||
committeeData.value = res.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
||||
@ -49,25 +49,16 @@
|
||||
<script setup lang="jsx">
|
||||
import { NDataTable } from "naive-ui";
|
||||
import { committeeManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const committeeData = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await committeeManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await committeeManagement({});
|
||||
committeeData.value = res.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
||||
@ -49,25 +49,16 @@
|
||||
<script setup lang="jsx">
|
||||
import { NDataTable } from "naive-ui";
|
||||
import { committeeManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const committeeData = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await committeeManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await committeeManagement({});
|
||||
committeeData.value = res.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const columns = [
|
||||
{
|
||||
|
||||
@ -34,25 +34,16 @@
|
||||
|
||||
<script setup>
|
||||
import { boardManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await boardManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await boardManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const otherDirectors = [
|
||||
{
|
||||
|
||||
@ -34,25 +34,16 @@
|
||||
|
||||
<script setup>
|
||||
import { boardManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await boardManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await boardManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const otherDirectors = [
|
||||
{
|
||||
|
||||
@ -34,25 +34,16 @@
|
||||
|
||||
<script setup>
|
||||
import { boardManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await boardManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await boardManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
const otherDirectors = [
|
||||
{
|
||||
name: "Hu Bin",
|
||||
|
||||
@ -34,25 +34,16 @@
|
||||
|
||||
<script setup>
|
||||
import { boardManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
import { ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await boardManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await boardManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
const otherDirectors = [
|
||||
{
|
||||
name: "Hu Bin",
|
||||
|
||||
@ -27,7 +27,7 @@ async function handleSubmit(e) {
|
||||
message.warning(t("email_alerts.validation.field_length"));
|
||||
return;
|
||||
}
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/emailalerts/submit`;
|
||||
let url = "http://erpapi.test.fontree.cn:8081/api/fiee/emailalerts/submit";
|
||||
// let url = 'https://erpapi-out.szjixun.cn/api/fiee/emailalerts/submit'
|
||||
const res = await axios.post(url, form.value);
|
||||
if (res.data.status === 0) {
|
||||
|
||||
@ -27,7 +27,7 @@ async function handleSubmit(e) {
|
||||
message.warning(t("email_alerts.validation.field_length"));
|
||||
return;
|
||||
}
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/emailalerts/submit`;
|
||||
let url = "http://erpapi.test.fontree.cn:8081/api/fiee/emailalerts/submit";
|
||||
// let url = 'https://erpapi-out.szjixun.cn/api/fiee/emailalerts/submit'
|
||||
const res = await axios.post(url, form.value);
|
||||
if (res.data.status === 0) {
|
||||
|
||||
@ -27,7 +27,7 @@ async function handleSubmit(e) {
|
||||
message.warning(t("email_alerts.validation.field_length"));
|
||||
return;
|
||||
}
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/emailalerts/submit`;
|
||||
let url = "http://erpapi.test.fontree.cn:8081/api/fiee/emailalerts/submit";
|
||||
// let url = 'https://erpapi-out.szjixun.cn/api/fiee/emailalerts/submit'
|
||||
const res = await axios.post(url, form.value);
|
||||
if (res.data.status === 0) {
|
||||
|
||||
@ -27,7 +27,7 @@ async function handleSubmit(e) {
|
||||
message.warning(t("email_alerts.validation.field_length"));
|
||||
return;
|
||||
}
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/emailalerts/submit`;
|
||||
let url = "http://erpapi.test.fontree.cn:8081/api/fiee/emailalerts/submit";
|
||||
// let url = 'https://erpapi-out.szjixun.cn/api/fiee/emailalerts/submit'
|
||||
const res = await axios.post(url, form.value);
|
||||
if (res.data.status === 0) {
|
||||
|
||||
@ -125,20 +125,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { NSelect, NDataTable, NPagination, NButton, NIcon } from "naive-ui";
|
||||
import fileLink from "@/assets/image/content/icon-link.png";
|
||||
import { annualReport } from "@/api/auth";
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const state = reactive({
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
@ -162,15 +155,11 @@ const getListData = async () => {
|
||||
const res = await annualReport({
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
});
|
||||
state.total = res.data.total;
|
||||
annualReportsData.value = res?.data?.Item || [];
|
||||
};
|
||||
getListData();
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
const columns = [
|
||||
{
|
||||
// title: "File Name",
|
||||
@ -220,6 +209,7 @@ const columns = [
|
||||
},
|
||||
];
|
||||
|
||||
const { t } = useI18n();
|
||||
// 年度报告数据
|
||||
const annualReports = ref([
|
||||
{
|
||||
|
||||
@ -125,20 +125,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { NSelect, NDataTable, NPagination, NButton, NIcon } from "naive-ui";
|
||||
import fileLink from "@/assets/image/content/icon-link.png";
|
||||
import { annualReport } from "@/api/auth";
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const state = reactive({
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
@ -162,16 +155,11 @@ const getListData = async () => {
|
||||
const res = await annualReport({
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
});
|
||||
state.total = res.data.total;
|
||||
annualReportsData.value = res?.data?.Item || [];
|
||||
};
|
||||
getListData();
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
const columns = [
|
||||
{
|
||||
// title: "File Name",
|
||||
@ -221,6 +209,7 @@ const columns = [
|
||||
},
|
||||
];
|
||||
|
||||
const { t } = useI18n();
|
||||
// 年度报告数据
|
||||
const annualReports = ref([
|
||||
{
|
||||
|
||||
@ -127,20 +127,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { NSelect, NDataTable, NPagination, NButton, NIcon } from "naive-ui";
|
||||
import fileLink from "@/assets/image/content/icon-link.png";
|
||||
import { annualReport } from "@/api/auth";
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const state = reactive({
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
@ -163,16 +156,11 @@ const getListData = async () => {
|
||||
const res = await annualReport({
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
});
|
||||
state.total = res.data.total;
|
||||
annualReportsData.value = res?.data?.Item || [];
|
||||
};
|
||||
getListData();
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
const columns = [
|
||||
{
|
||||
// title: "File Name",
|
||||
@ -225,6 +213,7 @@ const columns = [
|
||||
},
|
||||
];
|
||||
|
||||
const { t } = useI18n();
|
||||
// 年度报告数据
|
||||
const annualReports = ref([
|
||||
{
|
||||
|
||||
@ -125,20 +125,13 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="jsx">
|
||||
import { reactive, ref, watch } from "vue";
|
||||
import { reactive, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { NSelect, NDataTable, NPagination, NButton, NIcon } from "naive-ui";
|
||||
import fileLink from "@/assets/image/content/icon-link.png";
|
||||
import { annualReport } from "@/api/auth";
|
||||
import dayjs from 'dayjs'
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const state = reactive({
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
@ -162,16 +155,11 @@ const getListData = async () => {
|
||||
const res = await annualReport({
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
});
|
||||
state.total = res.data.total;
|
||||
annualReportsData.value = res?.data?.Item || [];
|
||||
};
|
||||
getListData();
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
const columns = [
|
||||
{
|
||||
// title: "File Name",
|
||||
@ -221,6 +209,7 @@ const columns = [
|
||||
},
|
||||
];
|
||||
|
||||
const { t } = useI18n();
|
||||
// 年度报告数据
|
||||
const annualReports = ref([
|
||||
{
|
||||
|
||||
@ -162,13 +162,7 @@ import { useI18n } from "vue-i18n";
|
||||
// import quarterlyPdf2025Q2 from "@/assets/file/quarterly/10Q 2025-Q2.pdf";
|
||||
// import quarterlyPdf2025Q3N from "@/assets/file/quarterly/10Q 2025-Q1-No1.pdf";
|
||||
import axios from "axios";
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const { t } = useI18n();
|
||||
const searchQuery = ref("");
|
||||
|
||||
const state = reactive({
|
||||
@ -177,7 +171,7 @@ const state = reactive({
|
||||
total: 0,
|
||||
gotoPage: 1,
|
||||
listConfig: {
|
||||
url: `${import.meta.env.VITE_API_BASE_URL}/api/fiee/reports/quarterly/display`,
|
||||
url: "http://erpapi.test.fontree.cn:8081/api/fiee/reports/quarterly/display",
|
||||
// url: "https://erpapi.fiee.com/api/fiee/reports/quarterly/display",
|
||||
params: {
|
||||
filtrate: {
|
||||
@ -221,7 +215,6 @@ const getListData = async () => {
|
||||
...state.listConfig.params,
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
const res = await axios.post(state.listConfig.url, params);
|
||||
console.log(res);
|
||||
@ -237,9 +230,6 @@ const getListData = async () => {
|
||||
state.total = res.data.data.total || 0;
|
||||
}
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
// 总页数
|
||||
const totalPages = computed(() => {
|
||||
|
||||
@ -162,13 +162,7 @@ import { useI18n } from "vue-i18n";
|
||||
// import quarterlyPdf2025Q2 from "@/assets/file/quarterly/10Q 2025-Q2.pdf";
|
||||
// import quarterlyPdf2025Q3N from "@/assets/file/quarterly/10Q 2025-Q1-No1.pdf";
|
||||
import axios from "axios";
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const { t } = useI18n();
|
||||
const searchQuery = ref("");
|
||||
|
||||
const state = reactive({
|
||||
@ -177,7 +171,7 @@ const state = reactive({
|
||||
total: 0,
|
||||
gotoPage: 1,
|
||||
listConfig: {
|
||||
url: `${import.meta.env.VITE_API_BASE_URL}/api/fiee/reports/quarterly/display`,
|
||||
url: "http://erpapi.test.fontree.cn:8081/api/fiee/reports/quarterly/display",
|
||||
// url: "https://erpapi.fiee.com/api/fiee/reports/quarterly/display",
|
||||
params: {
|
||||
filtrate: {
|
||||
@ -221,7 +215,6 @@ const getListData = async () => {
|
||||
...state.listConfig.params,
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
const res = await axios.post(state.listConfig.url, params);
|
||||
console.log(res);
|
||||
@ -237,9 +230,6 @@ const getListData = async () => {
|
||||
state.total = res.data.data.total || 0;
|
||||
}
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
// 总页数
|
||||
const totalPages = computed(() => {
|
||||
|
||||
@ -146,13 +146,7 @@ import { useI18n } from "vue-i18n";
|
||||
// import quarterlyPdf2025Q2 from "@/assets/file/quarterly/10Q 2025-Q2.pdf";
|
||||
// import quarterlyPdf2025Q3N from "@/assets/file/quarterly/10Q 2025-Q1-No1.pdf";
|
||||
import axios from "axios";
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const { t } = useI18n();
|
||||
const searchQuery = ref("");
|
||||
|
||||
const state = reactive({
|
||||
@ -161,7 +155,7 @@ const state = reactive({
|
||||
total: 0,
|
||||
gotoPage: 1,
|
||||
listConfig: {
|
||||
url: `${import.meta.env.VITE_API_BASE_URL}/api/fiee/reports/quarterly/display`,
|
||||
url: "http://erpapi.test.fontree.cn:8081/api/fiee/reports/quarterly/display",
|
||||
// url: "https://erpapi.fiee.com/api/fiee/reports/quarterly/display",
|
||||
params: {
|
||||
filtrate: {
|
||||
@ -205,7 +199,6 @@ const getListData = async () => {
|
||||
...state.listConfig.params,
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
const res = await axios.post(state.listConfig.url, params);
|
||||
console.log(res);
|
||||
@ -221,9 +214,6 @@ const getListData = async () => {
|
||||
state.total = res.data.data.total || 0;
|
||||
}
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
// 总页数
|
||||
const totalPages = computed(() => {
|
||||
|
||||
@ -160,13 +160,7 @@ import { useI18n } from "vue-i18n";
|
||||
// import quarterlyPdf2025Q2 from "@/assets/file/quarterly/10Q 2025-Q2.pdf";
|
||||
// import quarterlyPdf2025Q3N from "@/assets/file/quarterly/10Q 2025-Q1-No1.pdf";
|
||||
import axios from "axios";
|
||||
const { t, locale } = useI18n();
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const { t } = useI18n();
|
||||
const searchQuery = ref("");
|
||||
|
||||
const state = reactive({
|
||||
@ -175,7 +169,7 @@ const state = reactive({
|
||||
total: 0,
|
||||
gotoPage: 1,
|
||||
listConfig: {
|
||||
url: `${import.meta.env.VITE_API_BASE_URL}/api/fiee/reports/quarterly/display`,
|
||||
url: "http://erpapi.test.fontree.cn:8081/api/fiee/reports/quarterly/display",
|
||||
// url: "https://erpapi.fiee.com/api/fiee/reports/quarterly/display",
|
||||
params: {
|
||||
filtrate: {
|
||||
@ -219,7 +213,6 @@ const getListData = async () => {
|
||||
...state.listConfig.params,
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
const res = await axios.post(state.listConfig.url, params);
|
||||
console.log(res);
|
||||
@ -235,9 +228,6 @@ const getListData = async () => {
|
||||
state.total = res.data.data.total || 0;
|
||||
}
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getListData();
|
||||
});
|
||||
|
||||
// 总页数
|
||||
const totalPages = computed(() => {
|
||||
|
||||
@ -15,16 +15,12 @@
|
||||
</div>
|
||||
<div class="sec-filings-container relative z-10 !w-[900PX] !p-0 !pb-[60PX]">
|
||||
<!-- 标题 -->
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">
|
||||
{{ $t("SECFILINGS.TITLE") }}
|
||||
</div>
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">{{ $t("SECFILINGS.TITLE") }}</div>
|
||||
|
||||
<!-- 筛选器 -->
|
||||
<div class="filters flex px-[30PX]">
|
||||
<div class="filter-group flex-1 flex">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL1")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL1") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.selectedYear"
|
||||
:options="state.yearOptions"
|
||||
@ -36,9 +32,7 @@
|
||||
</div>
|
||||
|
||||
<div class="filter-group flex-1 flex">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL2")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL2") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.pageSize"
|
||||
:options="state.pageSizeOptions"
|
||||
@ -89,25 +83,14 @@
|
||||
show-quick-jumper
|
||||
:item-count="state.total"
|
||||
:page-sizes="[
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 10 }),
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 25 }),
|
||||
value: 25,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 50 }),
|
||||
value: 50,
|
||||
},
|
||||
]"
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 10 }), value: 10 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 25 }), value: 25 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 50 }), value: 50 },
|
||||
]"
|
||||
@update:page="handlePageChange"
|
||||
@update:page-size="handlePageSizeChange"
|
||||
>
|
||||
<template #goto>{{
|
||||
t("financialinformation.quarterlyreports.pagination.goto")
|
||||
}}</template>
|
||||
<template #goto>{{ t("financialinformation.quarterlyreports.pagination.goto") }}</template>
|
||||
<!-- <template #prev>
|
||||
<span>‹ Previous</span>
|
||||
</template>
|
||||
@ -243,7 +226,7 @@ onMounted(() => {
|
||||
import axios from "axios";
|
||||
const getListData = async () => {
|
||||
state.tableData = [];
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/list`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/list";
|
||||
let params = {
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
@ -295,8 +278,8 @@ const handleSort = (sortData) => {
|
||||
const columns = [
|
||||
{
|
||||
// title: "Filing Date",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>
|
||||
},
|
||||
key: "filing_date",
|
||||
sorter: "default",
|
||||
@ -307,8 +290,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Form",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>
|
||||
},
|
||||
key: "form",
|
||||
width: 150,
|
||||
@ -346,8 +329,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Description",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>
|
||||
},
|
||||
key: "description",
|
||||
// ellipsis: {
|
||||
@ -359,8 +342,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "View",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>
|
||||
},
|
||||
key: "fileLink",
|
||||
width: 150,
|
||||
@ -635,7 +618,7 @@ tr {
|
||||
}
|
||||
|
||||
.filter-label {
|
||||
font-size: 14px;
|
||||
font-size: 14PX;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
margin-right: 10px;
|
||||
|
||||
@ -15,16 +15,12 @@
|
||||
</div>
|
||||
<div class="sec-filings-container relative z-10 !w-[900PX] !p-0 !pb-[60PX]">
|
||||
<!-- 标题 -->
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">
|
||||
{{ $t("SECFILINGS.TITLE") }}
|
||||
</div>
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">{{ $t("SECFILINGS.TITLE") }}</div>
|
||||
|
||||
<!-- 筛选器 -->
|
||||
<div class="filters flex px-[30PX]">
|
||||
<div class="filter-group flex-1 flex">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL1")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL1") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.selectedYear"
|
||||
:options="state.yearOptions"
|
||||
@ -36,9 +32,7 @@
|
||||
</div>
|
||||
|
||||
<div class="filter-group flex-1 flex">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL2")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL2") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.pageSize"
|
||||
:options="state.pageSizeOptions"
|
||||
@ -89,25 +83,14 @@
|
||||
show-quick-jumper
|
||||
:item-count="state.total"
|
||||
:page-sizes="[
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 10 }),
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 25 }),
|
||||
value: 25,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 50 }),
|
||||
value: 50,
|
||||
},
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 10 }), value: 10 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 25 }), value: 25 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 50 }), value: 50 },
|
||||
]"
|
||||
@update:page="handlePageChange"
|
||||
@update:page-size="handlePageSizeChange"
|
||||
>
|
||||
<template #goto>{{
|
||||
t("financialinformation.quarterlyreports.pagination.goto")
|
||||
}}</template>
|
||||
<template #goto>{{ t("financialinformation.quarterlyreports.pagination.goto") }}</template>
|
||||
<!-- <template #prev>
|
||||
<span>‹ Previous</span>
|
||||
</template>
|
||||
@ -243,7 +226,7 @@ onMounted(() => {
|
||||
import axios from "axios";
|
||||
const getListData = async () => {
|
||||
state.tableData = [];
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/list`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/list";
|
||||
let params = {
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
@ -295,8 +278,8 @@ const handleSort = (sortData) => {
|
||||
const columns = [
|
||||
{
|
||||
// title: "Filing Date",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>
|
||||
},
|
||||
key: "filing_date",
|
||||
sorter: "default",
|
||||
@ -307,8 +290,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Form",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>
|
||||
},
|
||||
key: "form",
|
||||
width: 150,
|
||||
@ -346,8 +329,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Description",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>
|
||||
},
|
||||
key: "description",
|
||||
// ellipsis: {
|
||||
@ -359,8 +342,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "View",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>
|
||||
},
|
||||
key: "fileLink",
|
||||
width: 150,
|
||||
@ -635,7 +618,7 @@ tr {
|
||||
}
|
||||
|
||||
.filter-label {
|
||||
font-size: 14px;
|
||||
font-size: 14PX;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
margin-right: 10px;
|
||||
|
||||
@ -15,34 +15,28 @@
|
||||
</div>
|
||||
<div class="sec-filings-container relative z-10 !w-[343PX] !p-0 !pb-[60PX]">
|
||||
<!-- 标题 -->
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">
|
||||
{{ $t("SECFILINGS.TITLE") }}
|
||||
</div>
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">{{ $t("SECFILINGS.TITLE") }}</div>
|
||||
|
||||
<!-- 筛选器 -->
|
||||
<div class="filters flex px-[30PX] flex-col">
|
||||
<div class="filter-group flex-1 flex justify-between">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL1")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL1") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.selectedYear"
|
||||
:options="state.yearOptions"
|
||||
placeholder="- Any -"
|
||||
style="flex: 1; max-width: 250px"
|
||||
style="flex: 1;max-width: 250px;"
|
||||
clearable
|
||||
@update:value="handleYearChange"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="filter-group flex-1 flex justify-between">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL2")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL2") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.pageSize"
|
||||
:options="state.pageSizeOptions"
|
||||
style="flex: 1; max-width: 250px"
|
||||
style="flex: 1;max-width: 250px;"
|
||||
@update:value="handlePageSizeChange"
|
||||
/>
|
||||
</div>
|
||||
@ -66,7 +60,7 @@
|
||||
:size="'medium'"
|
||||
:row-key="(row) => row.idx"
|
||||
:scrollbar-props="{
|
||||
trigger: 'none',
|
||||
trigger: 'none'
|
||||
}"
|
||||
@update:sorter="handleSort"
|
||||
/>
|
||||
@ -77,24 +71,15 @@
|
||||
class="w-[343PX] pagination-container flex flex-col items-end justify-center mt-[15PX]"
|
||||
>
|
||||
<n-pagination
|
||||
style="transform: scale(0.95)"
|
||||
style="transform: scale(0.95);"
|
||||
v-model:page="state.currentPage"
|
||||
v-model:page-size="state.pageSize"
|
||||
show-size-picker
|
||||
:item-count="state.total"
|
||||
:page-sizes="[
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 10 }),
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 25 }),
|
||||
value: 25,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 50 }),
|
||||
value: 50,
|
||||
},
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 10 }), value: 10 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 25 }), value: 25 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 50 }), value: 50 },
|
||||
]"
|
||||
:page-slot="5"
|
||||
@update:page="handlePageChange"
|
||||
@ -244,7 +229,7 @@ onMounted(() => {
|
||||
import axios from "axios";
|
||||
const getListData = async () => {
|
||||
state.tableData = [];
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/list`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/list";
|
||||
let params = {
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
@ -296,8 +281,8 @@ const handleSort = (sortData) => {
|
||||
const columns = [
|
||||
{
|
||||
// title: "Filing Date",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>
|
||||
},
|
||||
key: "filing_date",
|
||||
sorter: "default",
|
||||
@ -308,8 +293,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Form",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>
|
||||
},
|
||||
key: "form",
|
||||
width: 150,
|
||||
@ -347,8 +332,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Description",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>
|
||||
},
|
||||
key: "description",
|
||||
minWidth: 200,
|
||||
@ -361,8 +346,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "View",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>
|
||||
},
|
||||
key: "fileLink",
|
||||
width: 150,
|
||||
@ -606,7 +591,7 @@ tr {
|
||||
}
|
||||
|
||||
.page-title {
|
||||
font-size: 24px;
|
||||
font-size: 24PX;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-bottom: 40px;
|
||||
@ -614,9 +599,9 @@ tr {
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 60px;
|
||||
top: -10px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
top: -10PX;
|
||||
height: 4PX;
|
||||
background-color: #ff7bac;
|
||||
left: 0;
|
||||
}
|
||||
@ -637,7 +622,7 @@ tr {
|
||||
}
|
||||
|
||||
.filter-label {
|
||||
font-size: 14px;
|
||||
font-size: 14PX;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
margin-right: 10px;
|
||||
|
||||
@ -15,34 +15,28 @@
|
||||
</div>
|
||||
<div class="sec-filings-container relative z-10 !w-[618PX] !p-0 !pb-[60PX]">
|
||||
<!-- 标题 -->
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">
|
||||
{{ $t("SECFILINGS.TITLE") }}
|
||||
</div>
|
||||
<div class="page-title ml-[30PX] mt-[50PX]">{{ $t("SECFILINGS.TITLE") }}</div>
|
||||
|
||||
<!-- 筛选器 -->
|
||||
<div class="filters flex px-[30PX] flex-col">
|
||||
<div class="filter-group flex-1 flex justify-between">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL1")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL1") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.selectedYear"
|
||||
:options="state.yearOptions"
|
||||
placeholder="- Any -"
|
||||
style="flex: 1; max-width: 250px"
|
||||
style="flex: 1;max-width: 250px;"
|
||||
clearable
|
||||
@update:value="handleYearChange"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="filter-group flex-1 flex justify-between">
|
||||
<label class="filter-label">{{
|
||||
$t("SECFILINGS.FILTERlABEL2")
|
||||
}}</label>
|
||||
<label class="filter-label">{{ $t("SECFILINGS.FILTERlABEL2") }}</label>
|
||||
<n-select
|
||||
v-model:value="state.pageSize"
|
||||
:options="state.pageSizeOptions"
|
||||
style="flex: 1; max-width: 250px"
|
||||
style="flex: 1;max-width: 250px;"
|
||||
@update:value="handlePageSizeChange"
|
||||
/>
|
||||
</div>
|
||||
@ -80,25 +74,14 @@
|
||||
show-quick-jumper
|
||||
:item-count="state.total"
|
||||
:page-sizes="[
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 10 }),
|
||||
value: 10,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 25 }),
|
||||
value: 25,
|
||||
},
|
||||
{
|
||||
label: t('historic_stock.pagination.perPage', { size: 50 }),
|
||||
value: 50,
|
||||
},
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 10 }), value: 10 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 25 }), value: 25 },
|
||||
{ label: t('historic_stock.pagination.perPage', { size: 50 }), value: 50 },
|
||||
]"
|
||||
@update:page="handlePageChange"
|
||||
@update:page-size="handlePageSizeChange"
|
||||
>
|
||||
<template #goto>{{
|
||||
t("financialinformation.quarterlyreports.pagination.goto")
|
||||
}}</template>
|
||||
<template #goto>{{ t("financialinformation.quarterlyreports.pagination.goto") }}</template>
|
||||
<!-- <template #prev>
|
||||
<span>‹ Previous</span>
|
||||
</template>
|
||||
@ -243,7 +226,7 @@ onMounted(() => {
|
||||
import axios from "axios";
|
||||
const getListData = async () => {
|
||||
state.tableData = [];
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/list`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/list";
|
||||
let params = {
|
||||
page: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
@ -295,8 +278,8 @@ const handleSort = (sortData) => {
|
||||
const columns = [
|
||||
{
|
||||
// title: "Filing Date",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FILING_DATE")}</div>
|
||||
},
|
||||
key: "filing_date",
|
||||
sorter: "default",
|
||||
@ -307,8 +290,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Form",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.FORM")}</div>
|
||||
},
|
||||
key: "form",
|
||||
width: 150,
|
||||
@ -346,8 +329,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "Description",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.DESCRIPTION")}</div>
|
||||
},
|
||||
key: "description",
|
||||
// ellipsis: {
|
||||
@ -359,8 +342,8 @@ const columns = [
|
||||
},
|
||||
{
|
||||
// title: "View",
|
||||
title() {
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>;
|
||||
title(){
|
||||
return <div class="font-bold">{t("TABLE_TITLE.VIEW")}</div>
|
||||
},
|
||||
key: "fileLink",
|
||||
width: 150,
|
||||
@ -612,9 +595,9 @@ tr {
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 60px;
|
||||
top: -10px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
top: -10PX;
|
||||
height: 4PX;
|
||||
background-color: #ff7bac;
|
||||
left: 0;
|
||||
}
|
||||
@ -635,7 +618,7 @@ tr {
|
||||
}
|
||||
|
||||
.filter-label {
|
||||
font-size: 14px;
|
||||
font-size: 14PX;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
margin-right: 10px;
|
||||
|
||||
@ -129,7 +129,7 @@ onMounted(() => {
|
||||
});
|
||||
import axios from "axios";
|
||||
const getPageData = async (filingKey) => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/detail`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/detail";
|
||||
let params = {
|
||||
filingKey,
|
||||
};
|
||||
|
||||
@ -129,7 +129,7 @@ onMounted(() => {
|
||||
});
|
||||
import axios from "axios";
|
||||
const getPageData = async (filingKey) => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/detail`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/detail";
|
||||
let params = {
|
||||
filingKey,
|
||||
};
|
||||
|
||||
@ -129,7 +129,7 @@ onMounted(() => {
|
||||
});
|
||||
import axios from "axios";
|
||||
const getPageData = async (filingKey) => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/detail`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/detail";
|
||||
let params = {
|
||||
filingKey,
|
||||
};
|
||||
|
||||
@ -129,7 +129,7 @@ onMounted(() => {
|
||||
});
|
||||
import axios from "axios";
|
||||
const getPageData = async (filingKey) => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/sec-filing/web/detail`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/sec-filing/web/detail";
|
||||
let params = {
|
||||
filingKey,
|
||||
};
|
||||
|
||||
@ -20,9 +20,7 @@
|
||||
</div>
|
||||
<div class="w-[900PX] mx-auto relative z-11">
|
||||
<div class="title mb-[50px] text-center text-left">
|
||||
<h1 style="font-size: 40px; margin-top: 60px">
|
||||
{{ $t("header_menu.corporate_information.governance") }}
|
||||
</h1>
|
||||
<h1 style="font-size: 40px; margin-top: 60px">{{ $t("header_menu.corporate_information.governance") }}</h1>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in state.list"
|
||||
@ -32,7 +30,9 @@
|
||||
<div
|
||||
class="flex justify-between items-center hover:bg-[#FFF8FB] min-h-[1px] h-[48PX]"
|
||||
>
|
||||
<div class="border-content text-[16PX] pl-[10PX] font-[500]">
|
||||
<div
|
||||
class="border-content text-[16PX] pl-[10PX] font-[500]"
|
||||
>
|
||||
<n-tooltip
|
||||
trigger="hover"
|
||||
:disabled="!item.showTooltip"
|
||||
@ -169,7 +169,8 @@ watch(
|
||||
|
||||
//获取官网展示文档
|
||||
const getGovernanceDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/governance/display`;
|
||||
// let url = 'https://erpapi.fiee.com/api/fiee/fiee/governance/display'
|
||||
let url = "https://erpapi.fiee.com/api/fiee/governance/display";
|
||||
let params = {};
|
||||
axios
|
||||
.get(url, { params })
|
||||
@ -199,7 +200,7 @@ const handleViewDocument = (item) => {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.border-content {
|
||||
.border-content{
|
||||
position: relative;
|
||||
&::before {
|
||||
content: "";
|
||||
@ -207,23 +208,23 @@ const handleViewDocument = (item) => {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #ff7bac;
|
||||
width: 1PX;
|
||||
height: 20PX;
|
||||
background: #FF7BAC;
|
||||
}
|
||||
}
|
||||
|
||||
/* 标题样式 */
|
||||
.title h1 {
|
||||
position: relative;
|
||||
margin-left: 15px;
|
||||
margin-left: 15PX;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 5px;
|
||||
width: 60PX;
|
||||
height: 5PX;
|
||||
background: #ff7bac;
|
||||
}
|
||||
|
||||
@ -255,7 +256,7 @@ const handleViewDocument = (item) => {
|
||||
rgba(255, 123, 172, 0.1) 0%,
|
||||
rgba(0, 0, 0, 0) 50%
|
||||
);
|
||||
opacity: 0;
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s ease;
|
||||
}
|
||||
|
||||
|
||||
@ -20,9 +20,7 @@
|
||||
</div>
|
||||
<div class="w-[900PX] mx-auto relative z-11">
|
||||
<div class="title mb-[50px] text-center text-left">
|
||||
<h1 style="font-size: 40px; margin-top: 60px">
|
||||
{{ $t("header_menu.corporate_information.governance") }}
|
||||
</h1>
|
||||
<h1 style="font-size: 40px; margin-top: 60px">{{ $t("header_menu.corporate_information.governance") }}</h1>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in state.list"
|
||||
@ -32,7 +30,9 @@
|
||||
<div
|
||||
class="flex justify-between items-center hover:bg-[#FFF8FB] min-h-[1px] h-[48PX]"
|
||||
>
|
||||
<div class="border-content text-[16PX] pl-[10PX] font-[500]">
|
||||
<div
|
||||
class="border-content text-[16PX] pl-[10PX] font-[500]"
|
||||
>
|
||||
<n-tooltip
|
||||
trigger="hover"
|
||||
:disabled="!item.showTooltip"
|
||||
@ -65,9 +65,7 @@
|
||||
class="flex items-center pr-[10PX] cursor-pointer"
|
||||
@click="handleViewDocument(item)"
|
||||
>
|
||||
<view class="text-[16PX] text-[#FF7BAC]">{{
|
||||
$t("operation.view_document")
|
||||
}}</view>
|
||||
<view class="text-[16PX] text-[#FF7BAC]">{{ $t("operation.view_document") }}</view>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="ml-3 -mr-1 h-5 w-5"
|
||||
@ -171,7 +169,8 @@ watch(
|
||||
|
||||
//获取官网展示文档
|
||||
const getGovernanceDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/governance/display`;
|
||||
// let url = 'https://erpapi.fiee.com/api/fiee/fiee/governance/display'
|
||||
let url = "https://erpapi.fiee.com/api/fiee/governance/display";
|
||||
let params = {};
|
||||
axios
|
||||
.get(url, { params })
|
||||
@ -201,7 +200,7 @@ const handleViewDocument = (item) => {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.border-content {
|
||||
.border-content{
|
||||
position: relative;
|
||||
&::before {
|
||||
content: "";
|
||||
@ -209,23 +208,23 @@ const handleViewDocument = (item) => {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #ff7bac;
|
||||
width: 1PX;
|
||||
height: 20PX;
|
||||
background: #FF7BAC;
|
||||
}
|
||||
}
|
||||
|
||||
/* 标题样式 */
|
||||
.title h1 {
|
||||
position: relative;
|
||||
margin-left: 15px;
|
||||
margin-left: 15PX;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 5px;
|
||||
width: 60PX;
|
||||
height: 5PX;
|
||||
background: #ff7bac;
|
||||
}
|
||||
|
||||
|
||||
@ -20,9 +20,7 @@
|
||||
</div>
|
||||
<div class="w-[327PX] mx-auto relative z-11">
|
||||
<div class="title mb-[50px] text-center text-left">
|
||||
<h1 style="font-size: 24px; margin-top: 60px">
|
||||
{{ $t("header_menu.corporate_information.governance") }}
|
||||
</h1>
|
||||
<h1 style="font-size: 24px; margin-top: 60px">{{ $t("header_menu.corporate_information.governance") }}</h1>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in state.list"
|
||||
@ -32,7 +30,9 @@
|
||||
<div
|
||||
class="flex justify-between items-center hover:bg-[#FFF8FB] min-h-[1px] h-[48PX]"
|
||||
>
|
||||
<div class="border-content text-[16PX] pl-[10PX] font-[500]">
|
||||
<div
|
||||
class="border-content text-[16PX] pl-[10PX] font-[500]"
|
||||
>
|
||||
<n-tooltip
|
||||
trigger="hover"
|
||||
:disabled="!item.showTooltip"
|
||||
@ -168,7 +168,8 @@ watch(
|
||||
|
||||
//获取官网展示文档
|
||||
const getGovernanceDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/governance/display`;
|
||||
// let url = 'https://erpapi.fiee.com/api/fiee/fiee/governance/display'
|
||||
let url = "https://erpapi.fiee.com/api/fiee/governance/display";
|
||||
let params = {};
|
||||
axios
|
||||
.get(url, { params })
|
||||
@ -198,7 +199,7 @@ const handleViewDocument = (item) => {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.border-content {
|
||||
.border-content{
|
||||
position: relative;
|
||||
&::before {
|
||||
content: "";
|
||||
@ -206,23 +207,23 @@ const handleViewDocument = (item) => {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #ff7bac;
|
||||
width: 1PX;
|
||||
height: 20PX;
|
||||
background: #FF7BAC;
|
||||
}
|
||||
}
|
||||
|
||||
/* 标题样式 */
|
||||
.title h1 {
|
||||
position: relative;
|
||||
margin-left: 15px;
|
||||
margin-left: 15PX;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 5px;
|
||||
width: 60PX;
|
||||
height: 5PX;
|
||||
background: #ff7bac;
|
||||
}
|
||||
|
||||
@ -278,3 +279,4 @@ const handleViewDocument = (item) => {
|
||||
background: linear-gradient(to right, #fff0f6, #ffffff);
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -20,9 +20,7 @@
|
||||
</div>
|
||||
<div class="w-[618PX] mx-auto relative z-11">
|
||||
<div class="title mb-[50px] text-center text-left">
|
||||
<h1 style="font-size: 40px; margin-top: 60px">
|
||||
{{ $t("header_menu.corporate_information.governance") }}
|
||||
</h1>
|
||||
<h1 style="font-size: 40px; margin-top: 60px">{{ $t("header_menu.corporate_information.governance") }}</h1>
|
||||
</div>
|
||||
<div
|
||||
v-for="(item, index) in state.list"
|
||||
@ -32,7 +30,9 @@
|
||||
<div
|
||||
class="flex justify-between items-center hover:bg-[#FFF8FB] min-h-[1px] h-[48PX]"
|
||||
>
|
||||
<div class="border-content text-[16PX] pl-[10PX] font-[500]">
|
||||
<div
|
||||
class="border-content text-[16PX] pl-[10PX] font-[500]"
|
||||
>
|
||||
<n-tooltip
|
||||
trigger="hover"
|
||||
:disabled="!item.showTooltip"
|
||||
@ -65,9 +65,7 @@
|
||||
class="flex items-center pr-[10PX] cursor-pointer"
|
||||
@click="handleViewDocument(item)"
|
||||
>
|
||||
<view class="text-[16PX] text-[#FF7BAC] flex-shrink-0"
|
||||
>View Document</view
|
||||
>
|
||||
<view class="text-[16PX] text-[#FF7BAC] flex-shrink-0">View Document</view>
|
||||
<svg
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
class="ml-3 -mr-1 h-5 w-5"
|
||||
@ -171,7 +169,8 @@ watch(
|
||||
|
||||
//获取官网展示文档
|
||||
const getGovernanceDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/governance/display`;
|
||||
// let url = 'https://erpapi.fiee.com/api/fiee/fiee/governance/display'
|
||||
let url = "https://erpapi.fiee.com/api/fiee/governance/display";
|
||||
let params = {};
|
||||
axios
|
||||
.get(url, { params })
|
||||
@ -201,7 +200,7 @@ const handleViewDocument = (item) => {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.border-content {
|
||||
.border-content{
|
||||
position: relative;
|
||||
&::before {
|
||||
content: "";
|
||||
@ -209,23 +208,23 @@ const handleViewDocument = (item) => {
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
left: 0;
|
||||
width: 1px;
|
||||
height: 20px;
|
||||
background: #ff7bac;
|
||||
width: 1PX;
|
||||
height: 20PX;
|
||||
background: #FF7BAC;
|
||||
}
|
||||
}
|
||||
|
||||
/* 标题样式 */
|
||||
.title h1 {
|
||||
position: relative;
|
||||
margin-left: 15px;
|
||||
margin-left: 15PX;
|
||||
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 5px;
|
||||
width: 60PX;
|
||||
height: 5PX;
|
||||
background: #ff7bac;
|
||||
}
|
||||
|
||||
|
||||
@ -103,25 +103,16 @@
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { computed } from "vue";
|
||||
import { departmentManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
import { ref } from "vue";
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await departmentManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await departmentManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const leadershipTeam = computed(() => [
|
||||
{
|
||||
|
||||
@ -104,25 +104,16 @@
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { computed } from "vue";
|
||||
import { departmentManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
import { ref } from "vue";
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await departmentManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await departmentManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const leadershipTeam = computed(() => [
|
||||
{
|
||||
|
||||
@ -102,25 +102,16 @@
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { computed } from "vue";
|
||||
import { departmentManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
import { ref } from "vue";
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await departmentManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await departmentManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const leadershipTeam = computed(() => [
|
||||
{
|
||||
|
||||
@ -102,25 +102,16 @@
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { computed } from "vue";
|
||||
import { departmentManagement } from "@/api/auth";
|
||||
import { ref, watch } from "vue";
|
||||
|
||||
const { t, locale } = useI18n();
|
||||
import { ref } from "vue";
|
||||
|
||||
const data = ref([]);
|
||||
const getData = async (params) => {
|
||||
const res = await departmentManagement(params);
|
||||
const getData = async () => {
|
||||
const res = await departmentManagement({});
|
||||
data.value = res?.data?.item || [];
|
||||
};
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
console.log("语言已切换:", newLocale);
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
getData({ langType: map[newLocale] });
|
||||
}, { immediate: true });
|
||||
getData();
|
||||
|
||||
const { t } = useI18n();
|
||||
|
||||
const leadershipTeam = computed(() => [
|
||||
{
|
||||
|
||||
@ -116,10 +116,7 @@
|
||||
class="w-[95px]"
|
||||
/>
|
||||
</div>
|
||||
<p
|
||||
style="font-size: 13.5px; width: 439px"
|
||||
class="my-0 text-[#455363]"
|
||||
>
|
||||
<p style="font-size: 13.5px; width: 439px" class="my-0 text-[#455363]">
|
||||
{{ $t("COMPANYOVERVIEW.TITLEFIVE.CONTENT").replace("•", "") }}
|
||||
</p>
|
||||
<div class="flex items-center">
|
||||
@ -142,10 +139,7 @@
|
||||
</div>
|
||||
</section>
|
||||
<!-- 新闻模块 -->
|
||||
<section
|
||||
class="news-section relative z-99"
|
||||
style="width: 900px; margin: 60px auto"
|
||||
>
|
||||
<section class="news-section relative z-99" style="width: 900px; margin: 60px auto">
|
||||
<div class="flex justify-between">
|
||||
<h2 class="section-titles section-titles1">
|
||||
{{ $t("HOME.CONTAINY.NEWS.TITLE") }}
|
||||
@ -368,9 +362,7 @@
|
||||
class="data-row"
|
||||
style="transform: translateX(-10px); padding-left: 10px"
|
||||
>
|
||||
<span class="data-label">
|
||||
{{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }}
|
||||
</span>
|
||||
<span class="data-label"> {{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }} </span>
|
||||
<span class="data-value">{{ sampleDate }}</span>
|
||||
</div>
|
||||
<div
|
||||
@ -580,21 +572,13 @@ const newList = ref([
|
||||
// },
|
||||
]);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻发布(展示在首页的)
|
||||
const getPressReleasesDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
display: 2, // 1: 不展示在首页 2: 展示在首页
|
||||
langType: map[locale.value],
|
||||
};
|
||||
// console.log(params)
|
||||
axios.post(url, params).then((res) => {
|
||||
@ -614,7 +598,7 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const { t: $t, locale } = useI18n();
|
||||
const { t: $t } = useI18n();
|
||||
const contentRef = ref(null);
|
||||
const isInView = ref(false);
|
||||
let observer = null;
|
||||
@ -649,11 +633,6 @@ onMounted(() => {
|
||||
});
|
||||
});
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
const titleRefs = ref([]);
|
||||
|
||||
const setTitleRef = (el, idx) => {
|
||||
@ -693,7 +672,7 @@ const handleLink = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
@ -874,7 +853,7 @@ const handleLink = (item) => {
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
background: #ff7bac;
|
||||
background: #FF7BAC;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
|
||||
@ -909,7 +888,7 @@ const handleLink = (item) => {
|
||||
display: flex;
|
||||
/* justify-content: space-between; */
|
||||
margin: 24px 0;
|
||||
border-left: 2px solid #ff7bac;
|
||||
border-left: 2px solid #FF7BAC;
|
||||
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
|
||||
@ -116,10 +116,7 @@
|
||||
class="w-[95px]"
|
||||
/>
|
||||
</div>
|
||||
<p
|
||||
style="font-size: 13.5px; width: 439px"
|
||||
class="my-0 text-[#455363]"
|
||||
>
|
||||
<p style="font-size: 13.5px; width: 439px" class="my-0 text-[#455363]">
|
||||
{{ $t("COMPANYOVERVIEW.TITLEFIVE.CONTENT").replace("•", "") }}
|
||||
</p>
|
||||
<div class="flex items-center">
|
||||
@ -142,10 +139,7 @@
|
||||
</div>
|
||||
</section>
|
||||
<!-- 新闻模块 -->
|
||||
<section
|
||||
class="news-section relative z-99"
|
||||
style="width: 900px; margin: 60px auto"
|
||||
>
|
||||
<section class="news-section relative z-99" style="width: 900px; margin: 60px auto;">
|
||||
<div class="flex justify-between">
|
||||
<h2 class="section-titles section-titles1">
|
||||
{{ $t("HOME.CONTAINY.NEWS.TITLE") }}
|
||||
@ -368,9 +362,7 @@
|
||||
class="data-row"
|
||||
style="transform: translateX(-10px); padding-left: 10px"
|
||||
>
|
||||
<span class="data-label">
|
||||
{{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }}
|
||||
</span>
|
||||
<span class="data-label"> {{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }} </span>
|
||||
<span class="data-value">{{ sampleDate }}</span>
|
||||
</div>
|
||||
<div
|
||||
@ -580,21 +572,13 @@ const newList = ref([
|
||||
// },
|
||||
]);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻发布(展示在首页的)
|
||||
const getPressReleasesDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
display: 2, // 1: 不展示在首页 2: 展示在首页
|
||||
langType: map[locale.value],
|
||||
};
|
||||
// console.log(params)
|
||||
axios.post(url, params).then((res) => {
|
||||
@ -614,7 +598,7 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const { t: $t, locale } = useI18n();
|
||||
const { t: $t } = useI18n();
|
||||
const contentRef = ref(null);
|
||||
const isInView = ref(false);
|
||||
let observer = null;
|
||||
@ -649,11 +633,6 @@ onMounted(() => {
|
||||
});
|
||||
});
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
const titleRefs = ref([]);
|
||||
|
||||
const setTitleRef = (el, idx) => {
|
||||
@ -693,7 +672,7 @@ const handleLink = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
@ -874,7 +853,7 @@ const handleLink = (item) => {
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
background: #ff7bac;
|
||||
background: #FF7BAC;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
|
||||
@ -909,7 +888,7 @@ const handleLink = (item) => {
|
||||
display: flex;
|
||||
/* justify-content: space-between; */
|
||||
margin: 24px 0;
|
||||
border-left: 2px solid #ff7bac;
|
||||
border-left: 2px solid #FF7BAC;
|
||||
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
|
||||
@ -1,52 +1,31 @@
|
||||
<template>
|
||||
<div class="home-page relative overflow-hidden z-10 bg-[#ffffff]">
|
||||
<div
|
||||
class="fixed h-[100vh] left-[50%] translate-x-[-50%] z-0"
|
||||
style="width: 343px; pointer-events: none; mix-blend-mode: multiply"
|
||||
>
|
||||
<div class="fixed h-[100vh] left-[50%] translate-x-[-50%] z-0"
|
||||
style="width: 343px; pointer-events: none; mix-blend-mode: multiply">
|
||||
<img src="@/assets/image/content/line375.png" class="w-[100%]" alt="" />
|
||||
</div>
|
||||
<div class="w-[100%] h-[800PX] z-[] top-0 absolute">
|
||||
<div class="relative w-[100%] h-[100%]">
|
||||
<img
|
||||
src="@/assets/image/content/bg_15.png"
|
||||
alt=""
|
||||
class="w-[100vw] h-[813PX] absolute"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/image/content/bg_4.png"
|
||||
alt=""
|
||||
class="w-[204PX] h-[140PX] absolute top-[189PX] left-[50%] translate-x-[-50%]"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/image/content/bg_5.png"
|
||||
alt=""
|
||||
class="w-[100vw] absolute bottom-[-80PX] lef-0 right-0 z-99"
|
||||
/>
|
||||
<img src="@/assets/image/content/bg_15.png" alt="" class="w-[100vw] h-[813PX] absolute" />
|
||||
<img src="@/assets/image/content/bg_4.png" alt=""
|
||||
class="w-[204PX] h-[140PX] absolute top-[189PX] left-[50%] translate-x-[-50%]" />
|
||||
<img src="@/assets/image/content/bg_5.png" alt=""
|
||||
class="w-[100vw] absolute bottom-[-80PX] lef-0 right-0 z-99" />
|
||||
</div>
|
||||
</div>
|
||||
<section
|
||||
class="company-overview"
|
||||
style="
|
||||
<section class="company-overview" style="
|
||||
max-width: 311px;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
padding-top: 320px;
|
||||
height: 790px;
|
||||
"
|
||||
>
|
||||
">
|
||||
<div class="hero-section">
|
||||
<transition name="fade-up" appear>
|
||||
<n-h1 class="hero-title">
|
||||
<div
|
||||
class="content-blocks"
|
||||
:class="{ 'slide-in': isInView }"
|
||||
ref="contentRef"
|
||||
>
|
||||
<div class="content-blocks" :class="{ 'slide-in': isInView }" ref="contentRef">
|
||||
<text>{{ $t("HOME.CONTAIN.TITLEONE.CONTENT") }}</text>
|
||||
<p style="text-align: justify">
|
||||
{{ $t("HOME.CONTAIN.TITLEONE.CONTENTTWO") }}
|
||||
</p>
|
||||
<p style="text-align: justify;">{{ $t("HOME.CONTAIN.TITLEONE.CONTENTTWO") }}</p>
|
||||
</div>
|
||||
</n-h1>
|
||||
</transition>
|
||||
@ -54,156 +33,87 @@
|
||||
</section>
|
||||
|
||||
<!-- 公司概况 -->
|
||||
<section
|
||||
class="company-overview"
|
||||
style="max-width: 311px; margin: 0 auto; padding: 0; margin-top: 100px"
|
||||
>
|
||||
<section class="company-overview" style="max-width: 311px; margin: 0 auto; padding: 0;margin-top: 100px;">
|
||||
<h3 class="section-title">{{ $t("COMPANYOVERVIEW.TITLETWO.TITLE") }}</h3>
|
||||
<h1 class="section-titles">{{ $t("COMPANYOVERVIEW.Company") }}</h1>
|
||||
<div class="content-block text-[#455363]">
|
||||
<p style="text-align: justify">
|
||||
{{ $t("COMPANYOVERVIEW.TITLETWO.CONTENT") }}
|
||||
</p>
|
||||
<p style="text-align: justify">
|
||||
<p style="text-align: justify;">{{ $t("COMPANYOVERVIEW.TITLETWO.CONTENT") }}</p>
|
||||
<p style="text-align: justify;">
|
||||
<text class="text-[#455363]">{{
|
||||
$t("COMPANYOVERVIEW.TITLETWO.CONTENTTWOTITLE")
|
||||
}}</text>
|
||||
}}</text>
|
||||
|
||||
{{ $t("COMPANYOVERVIEW.TITLETWO.CONTENTTWO") }}
|
||||
</p>
|
||||
<p style="text-align: justify">
|
||||
{{ $t("COMPANYOVERVIEW.TITLETWO.CONTENTTHREE") }}
|
||||
</p>
|
||||
<p style="text-align: justify;">{{ $t("COMPANYOVERVIEW.TITLETWO.CONTENTTHREE") }}</p>
|
||||
</div>
|
||||
|
||||
<n-carousel autoplay>
|
||||
<img
|
||||
src="@/assets/image/content/profile_1.png"
|
||||
alt=""
|
||||
class="w-[201PX] h-[201PX] mx-auto"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/image/content/profile_2.png"
|
||||
alt=""
|
||||
class="w-[201PX] h-[201PX] mx-auto"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/image/content/profile_3.png"
|
||||
alt=""
|
||||
class="w-[201PX] h-[201PX] mx-auto"
|
||||
/>
|
||||
<img
|
||||
src="@/assets/image/content/profile_4.png"
|
||||
alt=""
|
||||
class="w-[201PX] h-[201PX] mx-auto"
|
||||
/>
|
||||
<img src="@/assets/image/content/profile_1.png" alt="" class="w-[201PX] h-[201PX] mx-auto" />
|
||||
<img src="@/assets/image/content/profile_2.png" alt="" class="w-[201PX] h-[201PX] mx-auto" />
|
||||
<img src="@/assets/image/content/profile_3.png" alt="" class="w-[201PX] h-[201PX] mx-auto" />
|
||||
<img src="@/assets/image/content/profile_4.png" alt="" class="w-[201PX] h-[201PX] mx-auto" />
|
||||
<template #dots="{ total, currentIndex, to }">
|
||||
<ul class="custom-dots">
|
||||
<li
|
||||
v-for="index of total"
|
||||
:key="index"
|
||||
:class="{ ['is-active']: currentIndex === index - 1 }"
|
||||
@click="to(index - 1)"
|
||||
/>
|
||||
<li v-for="index of total" :key="index" :class="{ ['is-active']: currentIndex === index - 1 }"
|
||||
@click="to(index - 1)" />
|
||||
</ul>
|
||||
</template>
|
||||
</n-carousel>
|
||||
</section>
|
||||
<!-- 突出成就 -->
|
||||
<section
|
||||
class="achievements overflow-hidden z-99 relative"
|
||||
style="
|
||||
<section class="achievements overflow-hidden z-99 relative" style="
|
||||
width: 100vw;
|
||||
padding: 0 40px;
|
||||
margin-top: 40px;
|
||||
background: linear-gradient(180deg, #e5ffff 0%, #fff8fb 100%);
|
||||
"
|
||||
>
|
||||
<div
|
||||
style="max-width: 311px; height: 306px; padding: 64px 0"
|
||||
class="m-[auto] flex flex-col items-center text-center"
|
||||
>
|
||||
">
|
||||
<div style="max-width: 311px; height: 306px; padding: 64px 0"
|
||||
class="m-[auto] flex flex-col items-center text-center">
|
||||
<h2 class="section-titles">
|
||||
{{ $t("COMPANYOVERVIEW.TITLEFIVE.TITLE") }}
|
||||
</h2>
|
||||
<div class="w-100% flex items-center justify-between">
|
||||
<p
|
||||
style="font-size: 14px; text-align: justify"
|
||||
class="my-0 text-[#455363]"
|
||||
>
|
||||
<p style="font-size: 14px; text-align: justify;" class="my-0 text-[#455363]">
|
||||
{{ $t("COMPANYOVERVIEW.TITLEFIVE.CONTENT").replace("•", "") }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- 新闻模块 -->
|
||||
<section
|
||||
class="news-section relative z-99"
|
||||
style="width: 311px; margin: 60px auto"
|
||||
>
|
||||
<section class="news-section relative z-99" style="width: 311px; margin: 60px auto">
|
||||
<div class="flex justify-between mb-[10PX]">
|
||||
<h2 class="section-titles section-titles1">
|
||||
{{ $t("HOME.CONTAINY.NEWS.TITLE") }}
|
||||
</h2>
|
||||
<div v-if="totalPages > 1">
|
||||
<!-- 左右切换按钮 -->
|
||||
<img
|
||||
v-if="currentPage === 0"
|
||||
disabled
|
||||
class="w-[38PX] h-[38PX]"
|
||||
src="@/assets/image/content/switch_right.png"
|
||||
alt=""
|
||||
/>
|
||||
<img
|
||||
v-else
|
||||
@click="prevPage"
|
||||
src="@/assets/image/content/switch_left.png"
|
||||
class="transform rotate-180 w-[38PX] h-[38PX] cursor-pointer"
|
||||
alt=""
|
||||
/>
|
||||
<img v-if="currentPage === 0" disabled class="w-[38PX] h-[38PX]" src="@/assets/image/content/switch_right.png"
|
||||
alt="" />
|
||||
<img v-else @click="prevPage" src="@/assets/image/content/switch_left.png"
|
||||
class="transform rotate-180 w-[38PX] h-[38PX] cursor-pointer" alt="" />
|
||||
|
||||
<img
|
||||
v-if="currentPage >= totalPages - 1"
|
||||
class="transform rotate-180 w-[38PX] h-[38PX] ml-[20PX]"
|
||||
disabled
|
||||
src="@/assets/image/content/switch_right.png"
|
||||
alt=""
|
||||
/>
|
||||
<img
|
||||
v-else
|
||||
@click="nextPage"
|
||||
class="w-[38PX] h-[38PX] ml-[20PX] cursor-pointer"
|
||||
src="@/assets/image/content/switch_left.png"
|
||||
alt=""
|
||||
/>
|
||||
<img v-if="currentPage >= totalPages - 1" class="transform rotate-180 w-[38PX] h-[38PX] ml-[20PX]" disabled
|
||||
src="@/assets/image/content/switch_right.png" alt="" />
|
||||
<img v-else @click="nextPage" class="w-[38PX] h-[38PX] ml-[20PX] cursor-pointer"
|
||||
src="@/assets/image/content/switch_left.png" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- Grid 布局容器 -->
|
||||
<div class="grid grid-cols-1 gap-4">
|
||||
<template v-for="(item, index) in pages" :key="index">
|
||||
<div
|
||||
style="height: 232px"
|
||||
class="news-card flex flex-col justify-between"
|
||||
>
|
||||
<div style="height: 232px" class="news-card flex flex-col justify-between">
|
||||
<div class="text-[24PX] font-600">{{ item.time }}</div>
|
||||
<n-tooltip
|
||||
trigger="hover"
|
||||
:disabled="!item.showTooltip"
|
||||
width="trigger"
|
||||
>
|
||||
<n-tooltip trigger="hover" :disabled="!item.showTooltip" width="trigger">
|
||||
<template #trigger>
|
||||
<div
|
||||
:ref="(el) => setTitleRef(el, index)"
|
||||
style="
|
||||
<div :ref="(el) => setTitleRef(el, index)" style="
|
||||
word-break: break-word;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
"
|
||||
class="text-[16PX] text-[#455363]"
|
||||
>
|
||||
" class="text-[16PX] text-[#455363]">
|
||||
{{ item.title }}
|
||||
</div>
|
||||
</template>
|
||||
@ -211,95 +121,75 @@
|
||||
{{ item.title }}
|
||||
</div>
|
||||
</n-tooltip>
|
||||
<div
|
||||
class="text-[16PX] text-[#FF7BAC] font-500 flex items-center cursor-pointer"
|
||||
@click="handleLink(item)"
|
||||
>
|
||||
<div class="text-[16PX] text-[#FF7BAC] font-500 flex items-center cursor-pointer"
|
||||
@click="handleLink(item)">
|
||||
View Press Release
|
||||
<img
|
||||
src="@/assets/image/content/vector.png"
|
||||
alt=""
|
||||
class="ml-[10PX] w-[6.5PX] h-[13PX]"
|
||||
/>
|
||||
<img src="@/assets/image/content/vector.png" alt="" class="ml-[10PX] w-[6.5PX] h-[13PX]" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</section>
|
||||
<!-- 新增:股票信息与活动预告双栏模块 -->
|
||||
<section
|
||||
class="dual-column-section bg-[url('@/assets/image/content/bg_stock375.png')] relative z-10"
|
||||
style="
|
||||
<section class="dual-column-section bg-[url('@/assets/image/content/bg_stock375.png')] relative z-10" style="
|
||||
width: 100vw;
|
||||
height: 570px;
|
||||
margin: 60px auto;
|
||||
background-size: 100% 100%;
|
||||
border-radius: 15px 15px 0 0;
|
||||
"
|
||||
>
|
||||
border-radius: 15PX 15PX 0 0;
|
||||
">
|
||||
<div style="width: 343px" class="m-auto">
|
||||
<!-- 股票信息卡片 -->
|
||||
<div class="">
|
||||
<h2 class="card-title mx-[15PX]">
|
||||
{{ $t("HOME.CONTAINY.STOCK_INFO.TITLE") }}
|
||||
</h2>
|
||||
<h2 class="card-title mx-[15PX]">{{ $t("HOME.CONTAINY.STOCK_INFO.TITLE") }}</h2>
|
||||
<div class="stock-data">
|
||||
<div class="data-row">
|
||||
<span class="data-label">
|
||||
{{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }}
|
||||
</span>
|
||||
<span class="data-label"> {{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }} </span>
|
||||
<span class="data-value">{{ sampleDate }}</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">{{
|
||||
$t("HOME.CONTAINY.STOCK_INFO.LAST_PRICE")
|
||||
}}</span>
|
||||
}}</span>
|
||||
<span class="data-value">${{ stockQuote.price }}</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">{{
|
||||
$t("HOME.CONTAINY.STOCK_INFO.CHANGE")
|
||||
}}</span>
|
||||
}}</span>
|
||||
|
||||
<span class="data-value">{{ stockQuote.change || "--" }}</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">{{
|
||||
$t("HOME.CONTAINY.STOCK_INFO.STOCK_CODE")
|
||||
}}</span>
|
||||
}}</span>
|
||||
<span class="data-value">NASDAQ: FIEE</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">{{
|
||||
$t("HOME.CONTAINY.STOCK_INFO.VOLUME")
|
||||
}}</span>
|
||||
}}</span>
|
||||
<span class="data-value">{{ stockQuote.volume }}</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
<span class="data-label">{{
|
||||
$t("HOME.CONTAINY.STOCK_INFO.MARKET_CAP")
|
||||
}}</span>
|
||||
}}</span>
|
||||
<span class="data-value">${{ stockQuote.marketCap }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section
|
||||
class="dual-column-section relative z-10"
|
||||
style="width: 100vw; height: 300px; margin: 60px auto; padding: 0 40px"
|
||||
>
|
||||
<section class="dual-column-section relative z-10" style="width: 100vw; height: 300px; margin: 60px auto; padding: 0 40px">
|
||||
<div class="w-[311PX] m-auto">
|
||||
<div class="">
|
||||
<h2 class="card-title1">
|
||||
{{ $t("HOME.CONTAINY.UPCOMING_EVENTS.TITLE") }}
|
||||
</h2>
|
||||
<div class="event-item">
|
||||
<img
|
||||
src="@/assets/image/content/empty.png"
|
||||
alt=""
|
||||
class="w-[100%] h-[151PX]"
|
||||
/>
|
||||
<img src="@/assets/image/content/empty.png" alt="" class="w-[100%] h-[151PX]" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -315,7 +205,7 @@ import { useStockQuote } from "@/store/stock-quote/index.js";
|
||||
import axios from "axios";
|
||||
const { getStockQuate, stockQuote, formatted } = useStockQuote();
|
||||
import { NCarousel, NDivider, NMarquee, NPopselect } from "naive-ui";
|
||||
import { ArrowBack, ArrowForward } from "@vicons/ionicons5";
|
||||
import { ArrowBack, ArrowForward } from '@vicons/ionicons5'
|
||||
|
||||
// 每页显示的项目数 - 最多三行,每行最多2个项目,所以每页最多6个项目
|
||||
const itemsPerPage = 6;
|
||||
@ -369,21 +259,13 @@ const newList = ref([
|
||||
// },
|
||||
]);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻发布(展示在首页的)
|
||||
const getPressReleasesDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
display: 2, // 1: 不展示在首页 2: 展示在首页
|
||||
langType: map[locale.value],
|
||||
};
|
||||
// console.log(params)
|
||||
axios.post(url, params).then((res) => {
|
||||
@ -403,7 +285,7 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const { t: $t, locale } = useI18n();
|
||||
const { t: $t } = useI18n();
|
||||
const contentRef = ref(null);
|
||||
const isInView = ref(false);
|
||||
let observer = null;
|
||||
@ -438,11 +320,6 @@ onMounted(() => {
|
||||
});
|
||||
});
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
const titleRefs = ref([]);
|
||||
|
||||
const setTitleRef = (el, idx) => {
|
||||
@ -482,7 +359,7 @@ const handleLink = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
@ -534,23 +411,26 @@ const handleLink = (item) => {
|
||||
bottom: 20px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
|
||||
}
|
||||
|
||||
.custom-dots li {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
width: 8PX;
|
||||
height: 8PX;
|
||||
margin: 0 12px;
|
||||
border-radius: 50%;
|
||||
background-color: #efefef;
|
||||
transition: width 0.3s, background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
background-color: #EFEFEF;
|
||||
transition:
|
||||
width 0.3s,
|
||||
background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.custom-dots li.is-active {
|
||||
border-radius: 20px;
|
||||
width: 40px;
|
||||
background: #dddddd;
|
||||
border-radius: 20PX;
|
||||
width: 40PX;
|
||||
background: #DDDDDD;
|
||||
}
|
||||
.home-page {
|
||||
background-size: 100% 100%;
|
||||
@ -619,7 +499,7 @@ const handleLink = (item) => {
|
||||
color: #ff7bac;
|
||||
}
|
||||
.section-titles {
|
||||
font-size: 22px;
|
||||
font-size: 22PX;
|
||||
margin-bottom: 15px;
|
||||
margin-top: 0;
|
||||
color: black;
|
||||
@ -629,8 +509,8 @@ const handleLink = (item) => {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
height: 4PX;
|
||||
background: #ff7bac;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
@ -724,9 +604,9 @@ const handleLink = (item) => {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
background: #ff7bac;
|
||||
width: 60PX;
|
||||
height: 4PX;
|
||||
background: #FF7BAC;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
|
||||
@ -742,8 +622,8 @@ const handleLink = (item) => {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
height: 4PX;
|
||||
background: #ff7bac;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
@ -760,18 +640,18 @@ const handleLink = (item) => {
|
||||
.data-row {
|
||||
display: flex;
|
||||
/* justify-content: space-between; */
|
||||
margin: 10px;
|
||||
border-left: 2px solid #ff7bac;
|
||||
transform: translateX(-10px);
|
||||
padding-left: 10px;
|
||||
margin: 10PX;
|
||||
border-left: 2PX solid #FF7BAC;
|
||||
transform: translateX(-10PX);
|
||||
padding-left: 10PX;
|
||||
|
||||
font-size: 12px;
|
||||
font-size: 12PX;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.data-label {
|
||||
// font-weight: 500;
|
||||
width: 150px;
|
||||
width: 150PX;
|
||||
}
|
||||
|
||||
.data-value {
|
||||
@ -855,10 +735,10 @@ const handleLink = (item) => {
|
||||
|
||||
.news-card {
|
||||
background: white;
|
||||
border-radius: 12px;
|
||||
padding: 30px;
|
||||
border-radius: 12PX;
|
||||
padding: 30PX;
|
||||
box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05);
|
||||
border-top: 14px solid #ff7bac;
|
||||
border-top: 14PX solid #ff7bac;
|
||||
}
|
||||
|
||||
.news-date {
|
||||
|
||||
@ -54,7 +54,7 @@
|
||||
<!-- 公司概况 -->
|
||||
<section
|
||||
class="company-overview"
|
||||
style="max-width: 618px; margin: 0 auto; padding: 0; margin-top: 100px"
|
||||
style="max-width: 618px; margin: 0 auto; padding: 0;margin-top: 100px;"
|
||||
>
|
||||
<h3 class="section-title">{{ $t("COMPANYOVERVIEW.TITLETWO.TITLE") }}</h3>
|
||||
<h1 class="section-titles">{{ $t("COMPANYOVERVIEW.Company") }}</h1>
|
||||
@ -118,10 +118,7 @@
|
||||
</div>
|
||||
</section>
|
||||
<!-- 新闻模块 -->
|
||||
<section
|
||||
class="news-section relative z-99"
|
||||
style="width: 618px; margin: 60px auto; margin-top: 100px"
|
||||
>
|
||||
<section class="news-section relative z-99" style="width: 618px; margin: 60px auto; margin-top: 100px;">
|
||||
<div class="flex justify-between">
|
||||
<h2 class="section-titles section-titles1">
|
||||
{{ $t("HOME.CONTAINY.NEWS.TITLE") }}
|
||||
@ -343,9 +340,7 @@
|
||||
<h2 class="card-title">{{ $t("HOME.CONTAINY.STOCK_INFO.TITLE") }}</h2>
|
||||
<div class="stock-data">
|
||||
<div class="data-row">
|
||||
<span class="data-label">
|
||||
{{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }}
|
||||
</span>
|
||||
<span class="data-label"> {{ $t("HOME.CONTAINY.STOCK_INFO.TIME") }} </span>
|
||||
<span class="data-value">{{ sampleDate }}</span>
|
||||
</div>
|
||||
<div class="data-row">
|
||||
@ -540,20 +535,13 @@ const newList = ref([
|
||||
// },
|
||||
]);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
// 获取新闻发布(展示在首页的)
|
||||
const getPressReleasesDisplay = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
display: 2, // 1: 不展示在首页 2: 展示在首页
|
||||
langType: map[locale.value],
|
||||
};
|
||||
// console.log(params)
|
||||
axios.post(url, params).then((res) => {
|
||||
@ -573,7 +561,7 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const { t: $t, locale } = useI18n();
|
||||
const { t: $t } = useI18n();
|
||||
const contentRef = ref(null);
|
||||
const isInView = ref(false);
|
||||
let observer = null;
|
||||
@ -608,11 +596,6 @@ onMounted(() => {
|
||||
});
|
||||
});
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
const titleRefs = ref([]);
|
||||
|
||||
const setTitleRef = (el, idx) => {
|
||||
@ -652,7 +635,7 @@ const handleLink = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
@ -736,8 +719,8 @@ const handleLink = (item) => {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
height: 4PX;
|
||||
background: #ff7bac;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
@ -831,8 +814,8 @@ const handleLink = (item) => {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
height: 4PX;
|
||||
background: #ff7bac;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
@ -849,8 +832,8 @@ const handleLink = (item) => {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: 0;
|
||||
width: 60px;
|
||||
height: 4px;
|
||||
width: 60PX;
|
||||
height: 4PX;
|
||||
background: #ff7bac;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
@ -869,10 +852,10 @@ const handleLink = (item) => {
|
||||
display: flex;
|
||||
/* justify-content: space-between; */
|
||||
margin: 40px 0;
|
||||
border-left: 2px solid #ff7bac;
|
||||
border-left: 2px solid #FF7BAC;
|
||||
transform: translateX(-10px);
|
||||
padding-left: 30px;
|
||||
font-size: 14px;
|
||||
font-size: 14PX;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="relative">
|
||||
<div
|
||||
class="w-[100vw] min-h-[100vh] bg-[#ffffff] z-[1] top-0 left-0 bottom-0 right-0 absolute"
|
||||
class="w-[100vw] bg-[#ffffff] z-[1] top-0 left-0 bottom-0 right-0 absolute"
|
||||
></div>
|
||||
<div
|
||||
class="page-container overflow-hidden z-10 relative"
|
||||
@ -19,21 +19,15 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, onMounted, watch } from "vue";
|
||||
import { reactive, onMounted } from "vue";
|
||||
import { NSelect, NInput, NButton } from "naive-ui";
|
||||
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute();
|
||||
import axios from "axios";
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
const state = reactive({
|
||||
id: "", // 新闻id
|
||||
});
|
||||
@ -46,9 +40,7 @@ onMounted(() => {
|
||||
|
||||
//获取新闻信息
|
||||
const getPressReleasesInfo = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases?uuid=${
|
||||
state.id
|
||||
}&langType=${map[locale.value]}`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases?id=" + state.id;
|
||||
axios.get(url).then((res) => {
|
||||
// console.log(res)
|
||||
if (res.status === 200) {
|
||||
@ -59,10 +51,6 @@ const getPressReleasesInfo = () => {
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.page-container {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="relative">
|
||||
<div
|
||||
class="w-[100vw] min-h-[100vh] bg-[#ffffff] z-[1] top-0 left-0 bottom-0 right-0 absolute"
|
||||
class="w-[100vw] bg-[#ffffff] z-[1] top-0 left-0 bottom-0 right-0 absolute"
|
||||
></div>
|
||||
<div
|
||||
class="page-container overflow-hidden z-10 relative"
|
||||
@ -19,11 +19,11 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, onMounted, watch } from "vue";
|
||||
import { reactive, onMounted } from "vue";
|
||||
import { NSelect, NInput, NButton } from "naive-ui";
|
||||
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute();
|
||||
import axios from "axios";
|
||||
@ -38,18 +38,9 @@ onMounted(() => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
//获取新闻信息
|
||||
const getPressReleasesInfo = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases?uuid=${
|
||||
state.id
|
||||
}&langType=${map[locale.value]}`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases?id=" + state.id;
|
||||
axios.get(url).then((res) => {
|
||||
// console.log(res)
|
||||
if (res.status === 200) {
|
||||
@ -60,15 +51,10 @@ const getPressReleasesInfo = () => {
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.page-container {
|
||||
width: 900px;
|
||||
width: 900PX;
|
||||
margin: 0 auto;
|
||||
padding: 0 16px;
|
||||
}
|
||||
|
||||
@ -5,11 +5,11 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, onMounted, watch } from "vue";
|
||||
import { reactive, onMounted } from "vue";
|
||||
import { NSelect, NInput, NButton } from "naive-ui";
|
||||
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute();
|
||||
import axios from 'axios'
|
||||
@ -24,18 +24,9 @@ onMounted(() => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
//获取新闻信息
|
||||
const getPressReleasesInfo = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases?uuid=${
|
||||
state.id
|
||||
}&langType=${map[locale.value]}`;
|
||||
let url = 'https://erpapi.fiee.com/api/fiee/pressreleases?id=' + state.id
|
||||
axios.get(url).then((res) => {
|
||||
// console.log(res)
|
||||
if (res.status === 200) {
|
||||
@ -46,11 +37,6 @@ const getPressReleasesInfo = () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@ -5,11 +5,11 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, onMounted, watch } from "vue";
|
||||
import { reactive, onMounted } from "vue";
|
||||
import { NSelect, NInput, NButton } from "naive-ui";
|
||||
|
||||
import { useI18n } from "vue-i18n";
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
import { useRoute } from "vue-router";
|
||||
const route = useRoute();
|
||||
import axios from 'axios'
|
||||
@ -24,20 +24,9 @@ onMounted(() => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
|
||||
|
||||
//获取新闻信息
|
||||
const getPressReleasesInfo = () => {
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases?uuid=${
|
||||
state.id
|
||||
}&langType=${map[locale.value]}`;
|
||||
let url = 'https://erpapi.fiee.com/api/fiee/pressreleases?id=' + state.id
|
||||
axios.get(url).then((res) => {
|
||||
// console.log(res)
|
||||
if (res.status === 200) {
|
||||
@ -48,11 +37,6 @@ const getPressReleasesInfo = () => {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 监听语言切换
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesInfo();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@ -209,7 +209,7 @@ import axios from "axios";
|
||||
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const state = reactive({
|
||||
selectedValue: "all_years", //选中值
|
||||
@ -275,17 +275,10 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻列表
|
||||
const getPressReleasesDisplay = () => {
|
||||
state.loading = true;
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
query: state.inputValue,
|
||||
page: state.currentPage,
|
||||
@ -295,7 +288,6 @@ const getPressReleasesDisplay = () => {
|
||||
? null
|
||||
: new Date(state.selectedValue).getTime()
|
||||
: null,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
axios
|
||||
.post(url, params)
|
||||
@ -303,7 +295,7 @@ const getPressReleasesDisplay = () => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.status === 0) {
|
||||
res.data.data?.data?.forEach((item) => {
|
||||
item.date = new Date(item.date).toLocaleDateString("en-US", {
|
||||
item.date = new Date(item.createdAt).toLocaleDateString("en-US", {
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
year: "numeric",
|
||||
@ -319,9 +311,6 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
// 添加 watcher 来实现自动筛选
|
||||
watch(
|
||||
() => [state.selectedValue, state.inputValue],
|
||||
@ -356,7 +345,7 @@ const handleNewClick = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@ -209,7 +209,7 @@ import axios from "axios";
|
||||
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const state = reactive({
|
||||
selectedValue: "all_years", //选中值
|
||||
@ -275,17 +275,10 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻列表
|
||||
const getPressReleasesDisplay = () => {
|
||||
state.loading = true;
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
query: state.inputValue,
|
||||
page: state.currentPage,
|
||||
@ -295,7 +288,6 @@ const getPressReleasesDisplay = () => {
|
||||
? null
|
||||
: new Date(state.selectedValue).getTime()
|
||||
: null,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
axios
|
||||
.post(url, params)
|
||||
@ -303,7 +295,7 @@ const getPressReleasesDisplay = () => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.status === 0) {
|
||||
res.data.data?.data?.forEach((item) => {
|
||||
item.date = new Date(item.date).toLocaleDateString("en-US", {
|
||||
item.date = new Date(item.createdAt).toLocaleDateString("en-US", {
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
year: "numeric",
|
||||
@ -319,10 +311,6 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
// 添加 watcher 来实现自动筛选
|
||||
watch(
|
||||
() => [state.selectedValue, state.inputValue],
|
||||
@ -357,7 +345,7 @@ const handleNewClick = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@ -216,7 +216,7 @@ import axios from "axios";
|
||||
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const state = reactive({
|
||||
selectedValue: "all_years", //选中值
|
||||
@ -303,17 +303,10 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻列表
|
||||
const getPressReleasesDisplay = () => {
|
||||
state.loading = true;
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
query: state.inputValue,
|
||||
page: state.currentPage,
|
||||
@ -323,7 +316,6 @@ const getPressReleasesDisplay = () => {
|
||||
? null
|
||||
: new Date(state.selectedValue).getTime()
|
||||
: null,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
axios
|
||||
.post(url, params)
|
||||
@ -331,7 +323,7 @@ const getPressReleasesDisplay = () => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.status === 0) {
|
||||
res.data.data?.data?.forEach((item) => {
|
||||
item.date = new Date(item.date).toLocaleDateString("en-US", {
|
||||
item.date = new Date(item.createdAt).toLocaleDateString("en-US", {
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
year: "numeric",
|
||||
@ -347,10 +339,6 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
// 添加 watcher 来实现自动筛选
|
||||
watch(
|
||||
() => [state.selectedValue, state.inputValue],
|
||||
@ -385,7 +373,7 @@ const handleNewClick = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@ -209,7 +209,7 @@ import axios from "axios";
|
||||
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const { t, locale } = useI18n();
|
||||
const { t } = useI18n();
|
||||
|
||||
const state = reactive({
|
||||
selectedValue: "all_years", //选中值
|
||||
@ -275,17 +275,10 @@ watch(
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
const map = {
|
||||
en: "enUS",
|
||||
ja: "jaJP",
|
||||
zh: "zhCN",
|
||||
"zh-TW": "zhTW",
|
||||
};
|
||||
|
||||
// 获取新闻列表
|
||||
const getPressReleasesDisplay = () => {
|
||||
state.loading = true;
|
||||
let url = `${import.meta.env.VITE_API_BASE_URL}/fiee/pressreleases/display`;
|
||||
let url = "https://erpapi.fiee.com/api/fiee/pressreleases/display";
|
||||
let params = {
|
||||
query: state.inputValue,
|
||||
page: state.currentPage,
|
||||
@ -295,7 +288,6 @@ const getPressReleasesDisplay = () => {
|
||||
? null
|
||||
: new Date(state.selectedValue).getTime()
|
||||
: null,
|
||||
langType: map[locale.value],
|
||||
};
|
||||
axios
|
||||
.post(url, params)
|
||||
@ -303,7 +295,7 @@ const getPressReleasesDisplay = () => {
|
||||
if (res.status === 200) {
|
||||
if (res.data.status === 0) {
|
||||
res.data.data?.data?.forEach((item) => {
|
||||
item.date = new Date(item.date).toLocaleDateString("en-US", {
|
||||
item.date = new Date(item.createdAt).toLocaleDateString("en-US", {
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
year: "numeric",
|
||||
@ -319,10 +311,6 @@ const getPressReleasesDisplay = () => {
|
||||
});
|
||||
};
|
||||
|
||||
watch(locale, (newLocale, oldLocale) => {
|
||||
getPressReleasesDisplay();
|
||||
});
|
||||
|
||||
// 添加 watcher 来实现自动筛选
|
||||
watch(
|
||||
() => [state.selectedValue, state.inputValue],
|
||||
@ -357,7 +345,7 @@ const handleNewClick = (item) => {
|
||||
router.push({
|
||||
path: "/news",
|
||||
query: {
|
||||
id: item.uuid,
|
||||
id: item.id,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@ -20,7 +20,7 @@ const trimTrailingLetter = (val) => {
|
||||
</div>
|
||||
<section class="quote-layout">
|
||||
<div class="price-card">
|
||||
<div class="price-value" style="display: flex; align-items: center;gap: 10px;">{{ stockQuote.price }} <span style="font-size: 70px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-value">{{ stockQuote.price }} <span style="font-size: 100px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-market">{{ t("stock_quote.nasdaq") }}</div>
|
||||
<div class="price-time">{{ formatted }}</div>
|
||||
</div>
|
||||
|
||||
@ -21,7 +21,7 @@ const trimTrailingLetter = (val) => {
|
||||
</div>
|
||||
<section class="quote-layout">
|
||||
<div class="price-card">
|
||||
<div class="price-value" style="display: flex; align-items: center;gap: 10px;">{{ stockQuote.price }} <span style="font-size: 60px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-value">{{ stockQuote.price }} <span style="font-size: 75px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-market">{{ t("stock_quote.nasdaq") }}</div>
|
||||
<div class="price-time">{{ formatted }}</div>
|
||||
</div>
|
||||
|
||||
@ -23,7 +23,7 @@ const trimTrailingLetter = (val) => {
|
||||
|
||||
<div class="data-section">
|
||||
<div class="price-card">
|
||||
<div class="price-value" style="display: flex; align-items: center;gap: 10px;">{{ stockQuote.price }} <span style="font-size: 60px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-value">{{ stockQuote.price }} <span style="font-size: 75px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-nasdaq">{{ t("stock_quote.nasdaq") }}</div>
|
||||
<div class="price-date">{{ formatted }}</div>
|
||||
</div>
|
||||
|
||||
@ -22,7 +22,7 @@ const trimTrailingLetter = (val) => {
|
||||
|
||||
<div class="data-section">
|
||||
<div class="price-card">
|
||||
<div class="price-value" style="display: flex; align-items: center;gap: 10px;">{{ stockQuote.price }} <span style="font-size: 40 * 1.5px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-value">{{ stockQuote.price }} <span style="font-size: 70 * 2.5px;">{{ t("stock_quote.dollar") }}</span> </div>
|
||||
<div class="price-nasdaq">{{ t("stock_quote.nasdaq") }}</div>
|
||||
<div class="price-date">{{ formatted }}</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user