|
|
@@ -7,7 +7,7 @@ const _sfc_main = {
|
|
|
setup(__props) {
|
|
|
const isLoggedIn = common_vendor.ref(false);
|
|
|
const myStocks = common_vendor.ref([]);
|
|
|
- const loadMyStocks = () => {
|
|
|
+ const loadMyStocks = async () => {
|
|
|
if (!isLoggedIn.value) {
|
|
|
myStocks.value = [];
|
|
|
return;
|
|
|
@@ -16,11 +16,39 @@ const _sfc_main = {
|
|
|
const stocks = common_vendor.index.getStorageSync("my_stocks") || [];
|
|
|
myStocks.value = stocks;
|
|
|
console.log("[我的股票] 加载股票列表:", stocks.length, "只");
|
|
|
+ if (stocks.length > 0) {
|
|
|
+ await refreshAllQuotes();
|
|
|
+ }
|
|
|
} catch (e) {
|
|
|
console.error("加载股票列表失败:", e);
|
|
|
myStocks.value = [];
|
|
|
}
|
|
|
};
|
|
|
+ const refreshAllQuotes = async () => {
|
|
|
+ if (myStocks.value.length === 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ const codes = myStocks.value.map((stock) => stock.code).join(",");
|
|
|
+ console.log("[我的股票] 批量刷新行情,股票代码:", codes);
|
|
|
+ const quoteRes = await utils_api.getStockQuotes(codes);
|
|
|
+ console.log("[我的股票] 批量行情数据:", quoteRes);
|
|
|
+ if (quoteRes.code === 200 && quoteRes.data && quoteRes.data.length > 0) {
|
|
|
+ quoteRes.data.forEach((quoteData) => {
|
|
|
+ const index = myStocks.value.findIndex((stock) => stock.code === quoteData.stockCode);
|
|
|
+ if (index !== -1) {
|
|
|
+ myStocks.value[index].priceChange = quoteData.priceChange;
|
|
|
+ myStocks.value[index].changePercent = quoteData.changePercent;
|
|
|
+ myStocks.value[index].stockName = quoteData.stockName || myStocks.value[index].name;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ common_vendor.index.setStorageSync("my_stocks", myStocks.value);
|
|
|
+ console.log("[我的股票] 行情刷新成功");
|
|
|
+ }
|
|
|
+ } catch (e) {
|
|
|
+ console.error("[我的股票] 批量刷新行情失败:", e);
|
|
|
+ }
|
|
|
+ };
|
|
|
const goToLogin = () => {
|
|
|
common_vendor.index.navigateTo({
|
|
|
url: "/pages/login/login"
|
|
|
@@ -44,37 +72,6 @@ const _sfc_main = {
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
- const refreshQuote = async (stock, index) => {
|
|
|
- try {
|
|
|
- common_vendor.index.showLoading({ title: "刷新中..." });
|
|
|
- const quoteRes = await utils_api.getStockQuotes(stock.code);
|
|
|
- console.log("[我的股票] 行情数据:", quoteRes);
|
|
|
- if (quoteRes.code === 200 && quoteRes.data && quoteRes.data.length > 0) {
|
|
|
- const quoteData = quoteRes.data[0];
|
|
|
- myStocks.value[index].priceChange = quoteData.priceChange;
|
|
|
- myStocks.value[index].changePercent = quoteData.changePercent;
|
|
|
- common_vendor.index.setStorageSync("my_stocks", myStocks.value);
|
|
|
- common_vendor.index.hideLoading();
|
|
|
- common_vendor.index.showToast({
|
|
|
- title: "刷新成功",
|
|
|
- icon: "success"
|
|
|
- });
|
|
|
- } else {
|
|
|
- common_vendor.index.hideLoading();
|
|
|
- common_vendor.index.showToast({
|
|
|
- title: "获取行情失败",
|
|
|
- icon: "none"
|
|
|
- });
|
|
|
- }
|
|
|
- } catch (e) {
|
|
|
- common_vendor.index.hideLoading();
|
|
|
- console.error("刷新行情失败:", e);
|
|
|
- common_vendor.index.showToast({
|
|
|
- title: "刷新失败",
|
|
|
- icon: "none"
|
|
|
- });
|
|
|
- }
|
|
|
- };
|
|
|
const getChangeClass = (value) => {
|
|
|
if (!value || value === "--")
|
|
|
return "";
|
|
|
@@ -122,8 +119,7 @@ const _sfc_main = {
|
|
|
f: common_vendor.t(stock.changePercent || "--"),
|
|
|
g: common_vendor.n(getChangeClass(stock.changePercent)),
|
|
|
h: common_vendor.t(formatDate(stock.addTime)),
|
|
|
- i: common_vendor.o(($event) => refreshQuote(stock, index), index),
|
|
|
- j: index
|
|
|
+ i: index
|
|
|
};
|
|
|
})
|
|
|
} : {}, {
|