You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

218 lines
6.1 KiB

import { defineStore } from "pinia";
import { ref, watch } from "vue";
import { useUserStore } from "./userPessionCode";
import { useLanguage } from "@/utils/languageService";
import { dataListAPI } from "@/api/AIxiaocaishen";
// import { useSkeletonStore } from '@/utils/skeletonLoader'
import { useRoute } from "vue-router";
// const skeletonStore = useSkeletonStore()
// const { t } = useLanguage()
export const useDataStore = defineStore("data", () => {
const route = useRoute();
console.log(route, "地址栏携带的参数。。。。。。");
const userStore = useUserStore();
const brainDataList = ref(null);
const swordDataList = ref(null);
const priceDataList = ref(null);
const timeDataList = ref(null);
const showALLData = ref(null);
const HomePage = ref(null);
const AIBull = ref(null);
const AIGoldBull = ref(null);
const AIRadar = ref(null);
const loading = ref(false);
const klineData = ref(null);
const activeTabIndex = ref(null);
const isFeedback = ref(false); // 用于控制是否显示反馈页面的标志
const setKlineData = (data) => {
klineData.value = data;
};
const setActiveTabIndex = (index) => {
activeTabIndex.value = index;
};
const getQueryVariable = (variable) => {
const query = window.location.search.substring(1);
// console.log(query,'query')
const vars = query.split("&");
// console.log(vars,'vars')
for (let i = 0; i < vars.length; i++) {
const pair = vars[i].split("=");
if (pair[0] === variable) {
return pair[1];
}
}
return "";
};
// const getAnswer = (result) => {
// const data = result.data;
// const vars = query.split('&')
// for (let i = 0; i < vars.length; i++) {
// const pair = vars[i].split('=')
// if (pair[0] === variable) {
// return pair[1]
// }
// }
// return ''
// }
// 使用示例,获取地址栏参数
const token = ref(getQueryVariable("token"));
const market = ref(getQueryVariable("market"));
const code = ref(getQueryVariable("code"));
console.log(token.value); // 输出 token 的值,例如 "111"
const fetchChartData = async (market,code) => {
const getTokenString = String(localStorage.getItem("localToken"));
// const getMarketString = String(localStorage.getItem("localMarket"));
// const getCodeString = String(localStorage.getItem("localCode"));
// const getMarket = String()
try {
const res = await dataListAPI({
token: getTokenString || "",
market: market || "gb",
code: code || "NDX",
language: "cn", //t.value.suoxie,
brainPrivilegeState: userStore.brainPerssion,
swordPrivilegeState: userStore.swordPerssion,
stockForecastPrivilegeState: userStore.pricePerssion,
spaceForecastPrivilegeState: userStore.timePerssion,
aibullPrivilegeState: userStore.aibullPerssion,
aigoldBullPrivilegeState: userStore.aiGnbullPerssion,
airadarPrivilegeState: userStore.airadarPerssion,
marketList: userStore.aiGoldMarketList,
});
brainDataList.value = res.data.Brain;
swordDataList.value = res.data.Sword;
priceDataList.value = res.data.StockForecast;
timeDataList.value = res.data.SpaceForecast;
showALLData.value = res.data.ShowAll;
HomePage.value = res.data.HomePage;
AIBull.value = res.data.AIBull;
AIGoldBull.value = res.data.AIGoldBull;
AIRadar.value = res.data.AIRadar;
} catch (error) {
console.error("获取图表数据出错:", error);
} finally {
loading.value = false;
console.log("数据获取过程结束");
}
};
// 获取路径上market的值
const getMarket = () => {
let market = "";
const queryMarket = getQueryVariable("market");
if (queryMarket) {
if (
["sg", "my", "in", "hk", "th", "vi", "usa", "can", "gb", "cn"].includes(
queryMarket
)
) {
return queryMarket;
} else {
switch (queryMarket) {
case "SGX":
return "sg";
case "BMB":
return "my";
case "IDX":
return "in";
case "HKEX":
return "hk";
case "SET":
return "th";
case "HN":
return "vi";
case "HONSE":
return "vi";
case "AMERA":
return "usa";
case "NYSE":
return "usa";
case "NASDAQ":
return "usa";
case "DLD":
return "can";
case "DLDCY":
return "can";
case "GINDEX":
return "gb";
case "BZ":
return "cn";
case "SH":
return "cn";
case "SZ":
return "cn";
default:
return "无市场数据";
}
}
}
return "";
};
const isLoading = ref(true);
const initData = async () => {
isLoading.value = true;
try {
// 初始化逻辑
} catch (error) {
console.error("Error loading data:", error);
} finally {
isLoading.value = false;
}
};
// watch(
// () => [userStore.isReady, t.value?.suoxie],
// ([isReady]) => {
// console.log('isReady 或 language 变化:', isReady)
// if (isReady) {
// setTimeout(() => fetchChartData(), 500)
// }
// },
// { immediate: true, deep: true }
// )
watch(
() => window.location.ancestorOrigins,
(newQuery, oldQuery) => {
console.log("newQuery", newQuery);
// if () {
// fetchChartData();
// }
}
);
// watch(() => userStore.aibullPerssion, (newValue) => {
// if (newValue === 1) fetchChartData()
// })
initData();
return {
// brainDataList,
// swordDataList,
// priceDataList,
// timeDataList,
// showALLData,
HomePage,
// AIBull,
AIGoldBull,
// loading,
// AIRadar,
fetchChartData,
activeTabIndex,
klineData,
setKlineData,
initData,
getMarket,
getQueryVariable,
setActiveTabIndex,
isFeedback,
};
});