Explorar o código

我的股票修改

Zhangbw hai 3 meses
pai
achega
9632108cb3

+ 30 - 34
dist/dev/mp-weixin/pages/rank/rank.js

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

+ 1 - 1
dist/dev/mp-weixin/pages/rank/rank.wxml

@@ -1 +1 @@
-<view class="page-rank"><scroll-view class="scroll-view" scroll-y><view class="{{['content-wrapper', c && 'blur-content']}}"><view wx:if="{{a}}" class="stock-list"><view wx:for="{{b}}" wx:for-item="stock" wx:key="j" class="stock-card"><view class="stock-header"><view class="stock-title"><text class="stock-name">{{stock.a}}</text><text class="stock-code">{{stock.b}}</text></view><view class="delete-btn" bindtap="{{stock.c}}"><text class="delete-icon">×</text></view></view><view class="stock-body"><view class="quote-row"><view class="quote-item"><text class="quote-label">涨跌额</text><text class="{{['quote-value', stock.e]}}">{{stock.d}}</text></view><view class="quote-item"><text class="quote-label">涨跌幅</text><text class="{{['quote-value', stock.g]}}">{{stock.f}}</text></view></view><view class="info-item"><text class="info-label">添加时间</text><text class="info-value">{{stock.h}}</text></view><view class="refresh-row"><view class="refresh-btn" bindtap="{{stock.i}}"><text class="refresh-icon">🔄</text><text class="refresh-text">刷新行情</text></view></view></view></view></view><view wx:else class="empty-content"><view class="empty-icon">📊</view><text class="empty-text">暂无收藏股票</text><text class="empty-desc">在强势池中点击"+"按钮添加股票</text></view><view class="bottom-safe-area"></view></view></scroll-view><view wx:if="{{d}}" class="login-mask"><view class="login-prompt"><view class="lock-icon">🔒</view><text class="prompt-title">登录后查看我的股票</text><text class="prompt-desc">使用微信授权快速登录</text><button class="login-button-native" bindtap="{{e}}"><text>登录</text></button></view></view></view>
+<view class="page-rank"><scroll-view class="scroll-view" scroll-y><view class="{{['content-wrapper', c && 'blur-content']}}"><view wx:if="{{a}}" class="stock-list"><view wx:for="{{b}}" wx:for-item="stock" wx:key="i" class="stock-card"><view class="stock-header"><view class="stock-title"><text class="stock-name">{{stock.a}}</text><text class="stock-code">{{stock.b}}</text></view><view class="delete-btn" bindtap="{{stock.c}}"><text class="delete-icon">×</text></view></view><view class="stock-body"><view class="quote-row"><view class="quote-item"><text class="quote-label">涨跌额</text><text class="{{['quote-value', stock.e]}}">{{stock.d}}</text></view><view class="quote-item"><text class="quote-label">涨跌幅</text><text class="{{['quote-value', stock.g]}}">{{stock.f}}</text></view></view><view class="info-item"><text class="info-label">添加时间</text><text class="info-value">{{stock.h}}</text></view></view></view></view><view wx:else class="empty-content"><view class="empty-icon">📊</view><text class="empty-text">暂无收藏股票</text><text class="empty-desc">在强势池中点击"+"按钮添加股票</text></view><view class="bottom-safe-area"></view></view></scroll-view><view wx:if="{{d}}" class="login-mask"><view class="login-prompt"><view class="lock-icon">🔒</view><text class="prompt-title">登录后查看我的股票</text><text class="prompt-desc">使用微信授权快速登录</text><button class="login-button-native" bindtap="{{e}}"><text>登录</text></button></view></view></view>

+ 0 - 22
dist/dev/mp-weixin/pages/rank/rank.wxss

@@ -122,28 +122,6 @@
   color: #3abf81 !important;
 }
 
-/* 刷新按钮 */
-.refresh-row {
-  display: flex;
-  justify-content: flex-end;
-  margin-top: 16rpx;
-}
-.refresh-btn {
-  display: flex;
-  align-items: center;
-  gap: 8rpx;
-  padding: 12rpx 20rpx;
-  background: #f7f8fc;
-  border-radius: 20rpx;
-}
-.refresh-icon {
-  font-size: 24rpx;
-}
-.refresh-text {
-  font-size: 24rpx;
-  color: #666a7f;
-}
-
 /* 空状态 */
 .empty-content {
   display: flex;

+ 3 - 7
dist/dev/mp-weixin/pages/strong/strong.js

@@ -10,16 +10,12 @@ const _sfc_main = {
     const selectedPlan = common_vendor.ref("yearly");
     const stockList = common_vendor.ref([
       {
-        name: "美的集团",
-        code: "000333",
-        price: "68.00",
-        score: "88.5"
+        name: "航天发展",
+        code: "000547"
       },
       {
         name: "贵州茅台",
-        code: "600519",
-        price: "1700.00",
-        score: "85.1"
+        code: "600519"
       }
     ]);
     const startMonth = common_vendor.ref("2025-01");

+ 41 - 74
src/pages/rank/rank.vue

@@ -42,14 +42,6 @@
                 <text class="info-label">添加时间</text>
                 <text class="info-value">{{ formatDate(stock.addTime) }}</text>
               </view>
-              
-              <!-- 刷新行情按钮 -->
-              <view class="refresh-row">
-                <view class="refresh-btn" @click="refreshQuote(stock, index)">
-                  <text class="refresh-icon">🔄</text>
-                  <text class="refresh-text">刷新行情</text>
-                </view>
-              </view>
             </view>
           </view>
         </view>
@@ -95,7 +87,7 @@ const isLoggedIn = ref(false)
 const myStocks = ref([])
 
 // 加载我的股票列表
-const loadMyStocks = () => {
+const loadMyStocks = async () => {
   // 只有登录后才加载股票列表
   if (!isLoggedIn.value) {
     myStocks.value = []
@@ -106,12 +98,52 @@ const loadMyStocks = () => {
     const stocks = uni.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 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
+        }
+      })
+      
+      // 保存到本地存储
+      uni.setStorageSync('my_stocks', myStocks.value)
+      console.log('[我的股票] 行情刷新成功')
+    }
+  } catch (e) {
+    console.error('[我的股票] 批量刷新行情失败:', e)
+  }
+}
+
 // 跳转到登录页
 const goToLogin = () => {
   uni.navigateTo({
@@ -140,46 +172,6 @@ const removeStock = (index) => {
   })
 }
 
-// 刷新单个股票行情
-const refreshQuote = async (stock, index) => {
-  try {
-    uni.showLoading({ title: '刷新中...' })
-    
-    const quoteRes = await 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
-      
-      // 保存到本地存储
-      uni.setStorageSync('my_stocks', myStocks.value)
-      
-      uni.hideLoading()
-      uni.showToast({
-        title: '刷新成功',
-        icon: 'success'
-      })
-    } else {
-      uni.hideLoading()
-      uni.showToast({
-        title: '获取行情失败',
-        icon: 'none'
-      })
-    }
-  } catch (e) {
-    uni.hideLoading()
-    console.error('刷新行情失败:', e)
-    uni.showToast({
-      title: '刷新失败',
-      icon: 'none'
-    })
-  }
-}
-
 // 根据涨跌值返回样式类名
 const getChangeClass = (value) => {
   if (!value || value === '--') return ''
@@ -362,31 +354,6 @@ onShow(() => {
   color: #3abf81 !important;
 }
 
-/* 刷新按钮 */
-.refresh-row {
-  display: flex;
-  justify-content: flex-end;
-  margin-top: 16rpx;
-}
-
-.refresh-btn {
-  display: flex;
-  align-items: center;
-  gap: 8rpx;
-  padding: 12rpx 20rpx;
-  background: #f7f8fc;
-  border-radius: 20rpx;
-}
-
-.refresh-icon {
-  font-size: 24rpx;
-}
-
-.refresh-text {
-  font-size: 24rpx;
-  color: #666a7f;
-}
-
 /* 空状态 */
 .empty-content {
   display: flex;

+ 2 - 6
src/pages/strong/strong.vue

@@ -175,16 +175,12 @@ const selectedPlan = ref('yearly')
 // 股票列表数据
 const stockList = ref([
   {
-    name: '美的集团',
-    code: '000333',
-    price: '68.00',
-    score: '88.5'
+    name: '航天发展',
+    code: '000547',
   },
   {
     name: '贵州茅台',
     code: '600519',
-    price: '1700.00',
-    score: '85.1'
   }
 ])