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