diff --git a/package.json b/package.json index 238a356..2461d78 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "axios": "^1.7.3", "cnjm-postcss-px-to-viewport": "^1.0.1", "countup.js": "^2.8.2", + "dayjs": "^1.11.13", "echarts": "^5.6.0", "gsap": "^3.12.5", "jsdom": "^24.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0861ca..25d0cb7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ importers: countup.js: specifier: ^2.8.2 version: 2.8.2 + dayjs: + specifier: ^1.11.13 + version: 1.11.13 echarts: specifier: ^5.6.0 version: 5.6.0 @@ -2068,6 +2071,9 @@ packages: date-fns@3.6.0: resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==} + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + debug@4.3.6: resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} @@ -6478,6 +6484,8 @@ snapshots: date-fns@3.6.0: {} + dayjs@1.11.13: {} + debug@4.3.6: dependencies: ms: 2.1.2 diff --git a/src/store/stock-quote/index.js b/src/store/stock-quote/index.js index df54172..ea2434b 100644 --- a/src/store/stock-quote/index.js +++ b/src/store/stock-quote/index.js @@ -1,6 +1,9 @@ import { ref } from 'vue' import { createGlobalState, useLocalStorage } from '@vueuse/core' import axios from 'axios' +import dayjs from 'dayjs' +import utc from 'dayjs/plugin/utc' +import timezone from 'dayjs/plugin/timezone' export const useStockQuote = createGlobalState(() => { const stockQuote = useLocalStorage('stockQuote', { @@ -26,7 +29,27 @@ const options = { timeZoneName: 'short' }; -const formatted = ref(date.toLocaleString('en-US', options)) +dayjs.extend(utc) +dayjs.extend(timezone) + +const getFormattedFriday = () => { + const now = dayjs().tz('America/New_York') + // 本周五16:00 + const thisFriday = now.day() >= 5 + ? now.day(5).hour(16).minute(0).second(0).millisecond(0) + : now.day(5 - 7).hour(16).minute(0).second(0).millisecond(0) + // 判断当前是否已到本周五16:00 + let showFriday + if (now.isAfter(thisFriday)) { + showFriday = thisFriday + } else { + // 上周五16:00 + showFriday = thisFriday.subtract(7, 'day') + } + return showFriday.format('MMM D, YYYY, h:mm A [EDT]') +} + +const formatted = ref(getFormattedFriday()) const getStockQuate= async()=>{ const res = await axios.get('https://saas-test.szjixun.cn/api/chart/forward/test') stockQuote.value=res.data diff --git a/src/views/financialinformation/quarterlyresults/size1440/index.vue b/src/views/financialinformation/quarterlyresults/size1440/index.vue index a49b74b..97d41ae 100644 --- a/src/views/financialinformation/quarterlyresults/size1440/index.vue +++ b/src/views/financialinformation/quarterlyresults/size1440/index.vue @@ -25,13 +25,17 @@ class="result-item" >
- {{ item.title }} +

{{ item.title }}

{{ item.description }}

-
- - PDF - + +
+ PDF + {{ t("financialinformation.quarterlyresults.download") }}
@@ -341,6 +345,31 @@ const handleSearch = () => { // 搜索处理逻辑 console.log("搜索:", searchQuery.value); }; +const downloadPdf = async (pdfResource, filename = "") => { + try { + // 获取PDF文件 + const response = await fetch(pdfResource); + const blob = await response.blob(); + + // 创建Blob URL + const blobUrl = URL.createObjectURL(blob); + + // 创建下载链接 + const a = document.createElement("a"); + a.href = blobUrl; + a.download = filename || pdfResource.split("/").pop() || "download.pdf"; + + // 触发下载 + document.body.appendChild(a); + a.click(); + document.body.removeChild(a); + + // 释放Blob URL + URL.revokeObjectURL(blobUrl); + } catch (error) { + console.error("下载PDF文件失败:", error); + } +};