fiee-official-website/src/store/stock-quote/index.js

83 lines
2.3 KiB
JavaScript
Raw Normal View History

import { ref } from 'vue'
import { createGlobalState, useLocalStorage } from '@vueuse/core'
import axios from 'axios'
2025-05-26 07:13:40 +00:00
import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'
import timezone from 'dayjs/plugin/timezone'
export const useStockQuote = createGlobalState(() => {
const stockQuote = useLocalStorage('stockQuote', {
"Open": "",
"Volume": "",
"DayRange": "",
"WeekRange": "",
"MarketCap": "",
"change": [
"",
""
]
})
2025-05-26 07:13:40 +00:00
const date = new Date();
2025-06-01 14:13:56 +00:00
const options = {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: 'numeric',
minute: '2-digit',
hour12: true,
timeZone: 'America/New_York',
timeZoneName: 'short'
};
let lastTradingDay
2025-06-01 14:13:56 +00:00
dayjs.extend(utc)
dayjs.extend(timezone)
/*
美股的常规发行日交易日为周一至周五遇到法定假日则顺延
如果你只需要上一个交易日不考虑法定假日的情况下
获取当前美东时间
如果今天是周一则上一个交易日为上周五
如果今天是周日则上一个交易日为上周五
如果今天是周六则上一个交易日为周五
其他情况上一个交易日为昨天
*/
2025-06-01 14:13:56 +00:00
const getLastTradingDay = async () => {
const toDate = dayjs().format('YYYY-MM-DD');
const finalFromDate = dayjs().subtract(7, 'day').format('YYYY-MM-DD');
let url =
'https://common.szjixun.cn/api/stock/history/list?from=' +
finalFromDate +
'&to=' +
toDate;
const res = await axios.get(url)
if (res.status === 200) {
if (res.data.status === 0) {
lastTradingDay = dayjs(res.data.data[0].date)
}
2025-06-01 14:19:52 +00:00
return lastTradingDay.format('MMM D, YYYY') + ' 4:00 PM [EDT]'
2025-06-01 14:13:56 +00:00
}
2025-05-26 06:12:54 +00:00
}
2025-06-01 14:13:56 +00:00
const formatted = ref(null)
const init = async () => {
formatted.value = await getLastTradingDay()
}
init()
const getStockQuate = async () => {
// const res = await axios.get('https://saas-test.szjixun.cn/api/fiee/chart/forward/test')
const res = await axios.get('https://common.szjixun.cn/api/stock/company/data')
2025-05-30 17:39:45 +00:00
// console.error(res)
2025-06-01 14:13:56 +00:00
if (res.status === 200) {
if (res.data.status === 0) {
stockQuote.value = res.data.data
}
}
2025-06-01 14:13:56 +00:00
}
return {
formatted,
getStockQuate,
stockQuote
}
})