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
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,
|
|
};
|
|
});
|