From 61944978f51ca99a001162ac1ff3d32dcd5315ed Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Wed, 16 Jul 2025 14:54:58 +0800
Subject: [PATCH] 1

---
 src/components/stock-list.vue |   78 +++++++++++++++++++++++++++++++++-----
 1 files changed, 67 insertions(+), 11 deletions(-)

diff --git a/src/components/stock-list.vue b/src/components/stock-list.vue
index 30656ee..36a09df 100644
--- a/src/components/stock-list.vue
+++ b/src/components/stock-list.vue
@@ -6,7 +6,12 @@
       <van-col span="8" class="flex-end head_item">{{ $t("Change") }}</van-col>
     </van-row>
 
-    <van-row class="markets_item" v-for="item in stockList" :key="item.id">
+    <van-row
+      class="markets_item"
+      v-for="item in stockList"
+      :key="item.id"
+      @click="toDetails(item)"
+    >
       <van-col span="12" class="item_n">
         <div class="flex-start">
           <span class="i_icon">{{ item.stock_type }}</span>
@@ -22,10 +27,22 @@
         <div class="flex-end">{{ item.hcrateP }}</div>
       </van-col>
 
-      <div class="edit flex-end" v-show="editorShow">
+      <div
+        class="edit flex-end"
+        v-show="editorShow"
+        @click.stop="deleteStock(item)"
+      >
         <span>{{ $t("移除") }}</span>
       </div>
     </van-row>
+
+    <!-- 无数据时显示 -->
+    <div
+      class="no_data flex-center"
+      v-show="!stockList || stockList.length == 0"
+    >
+      <img src="@/assets/img/zhaobudao2.png" alt="" />
+    </div>
 
     <n-pagination
       :pageNo.sync="pageNum"
@@ -38,6 +55,7 @@
 <script>
 import nPagination from "@/components/nPagination.vue";
 import * as api from "@/axios/api";
+import { Toast } from "vant";
 export default {
   name: "stock_list",
   components: {
@@ -45,10 +63,9 @@
   },
   data() {
     return {
-      editorShow: false, // 编辑状态
       pageNum: 1,
       pageSize: 10,
-      total: 0,
+      total: 1,
       stockList: []
     };
   },
@@ -58,17 +75,29 @@
       default: () => {
         return {};
       }
+    },
+    listApi: {
+      default: () => {
+        return api.getStockByType;
+      }
+    },
+    // 编辑状态
+    editorShow: {
+      type: Boolean,
+      default: false
     }
   },
   watch: {
     propOption: {
       handler(val) {
+        this.pageNum = 1;
         this.getStockList();
       }
     },
     pageNum: {
       handler(val) {
-        console.log(val);
+        // this.stockList = [];
+        this.getStockList();
       }
     }
   },
@@ -76,11 +105,8 @@
     this.getStockList();
   },
   methods: {
-    onEdit() {
-      this.editorShow = !this.editorShow;
-    },
+    // 获取数据
     async getStockList() {
-      // 获取数据
       let opt = {
         pageNum: this.pageNum,
         pageSize: this.pageSize,
@@ -92,9 +118,39 @@
 
       opt = { ...opt, ...this.propOption };
 
-      let data = await api.getStockByType(opt);
+      let data = await this.listApi(opt);
       this.stockList = data.data.list;
-      this.total = data.data.total;
+      this.total = data.data.total || 1;
+    },
+    // 点击进入详情
+    toDetails(item) {
+      const obj = {
+        pid: item.code || "",
+        type: item.stock_type || ""
+      };
+      window.localStorage.setItem("kLine", JSON.stringify(obj));
+
+      this.$router.push({
+        path: "/kline",
+        query: {
+          code: item.code,
+          type: item.stock_type
+        }
+      });
+    },
+    // 删除自选股
+    async deleteStock(item) {
+      let opt = {
+        code: item.code
+      };
+      let data = await api.delOption(opt);
+      if (data.status === 0) {
+        this.$emit("update:editorShow", false);
+        Toast.success(data.msg);
+        this.getStockList();
+      } else {
+        Toast.fail(data.msg);
+      }
     }
   }
 };

--
Gitblit v1.9.3