From 79db9782438e27a9006d540d18d649c720180a31 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Wed, 13 Aug 2025 18:46:46 +0800
Subject: [PATCH] 1

---
 src/page/markets/markets.vue |  281 ++++++++++++++++++++++----------------------------------
 1 files changed, 110 insertions(+), 171 deletions(-)

diff --git a/src/page/markets/markets.vue b/src/page/markets/markets.vue
index d0d3f6a..8a385db 100644
--- a/src/page/markets/markets.vue
+++ b/src/page/markets/markets.vue
@@ -1,172 +1,94 @@
 <template>
   <div class="markets">
-    <tab-head :rightShow="false">
-      <van-popover
-        v-model="switchShow"
-        trigger="click"
-        :actions="actions"
-        @select="onSelect"
-        placement="bottom-end"
-      >
-        <template #reference>
-          <div class="switch flex-center">
-            <van-icon name="exchange" size=".45em" />
-            <span>{{ switchText }}</span>
-          </div>
-        </template>
-      </van-popover>
-    </tab-head>
+    <tab-head :title="$t('hj62')"></tab-head>
 
-    <div class="tabs flex-between">
-      <div
-        class="tab_item flex-center"
-        :class="{ active: item.pid == tab }"
-        v-for="item in tabList"
-        :key="item.pid"
-        @click="tab = item.pid"
-      >
-        <span class="line-one">{{ item.abbreviation }}</span>
+    <div class="tui-search">
+      <van-field
+        v-model="keyValue"
+        :placeholder="$t('hj37')"
+        right-icon="search"
+        @click-right-icon="search"
+      />
+    </div>
+
+    <div class="tui-tabs flex-start">
+      <div class="tab_item flex-center">
+        <span>{{ $t("美股") }}</span>
       </div>
     </div>
 
-    <div class="markets_echart">
-      <index-component :ids="'markets'" :dataObj="kData"></index-component>
+    <div class="tui_variety flex-between-start">
+      <div class="tui_variety_item" @click="$store.dispatch('CustomerService')">
+        <img src="@/assets/img/market_0.png" alt="" />
+        <div class="tui_variety_item_name">
+          <span>{{ this.$t("kf") }}</span>
+        </div>
+      </div>
+      <div
+        class="tui_variety_item"
+        v-for="i in tabs"
+        :key="i.name"
+        @click="$router.push(i.path)"
+      >
+        <img :src="i.img" alt="" />
+        <div class="tui_variety_item_name">
+          <span>{{ i.name }}</span>
+        </div>
+      </div>
     </div>
 
-    <stock-list :propOption="propOption"></stock-list>
+    <stock-list :propOption="propOption" ref="stockList"></stock-list>
   </div>
 </template>
 
 <script>
-import indexComponent from "@/components/index-component.vue";
 import tabHead from "@/components/tabHead.vue";
 import stockList from "@/components/stock-list.vue";
-import Echart from "../home/components/echart.vue";
 import * as api from "@/axios/api";
 export default {
   name: "markets",
   data() {
     return {
-      switchShow: false,
-      // 切换
-      actions: [
-        {
-          text: this.$t("美国"),
-          value: "US",
-          name: this.$t("美国")
-        },
-        {
-          text: this.$t("hk1"),
-          value: "HK",
-          name: this.$t("hk1")
-        },
-        {
-          text: this.$t("tw"),
-          value: "TW",
-          name: this.$t("tw")
-        },
-        {
-          text: this.$t("id1"),
-          value: "IN",
-          name: this.$t("id1")
-        }
-      ],
-      tabList: [],
-      usList: [
-        { abbreviation: "Dow Jones" },
-        { abbreviation: "S&P 500" },
-        { abbreviation: "NASDAQ" }
-      ],
-      hkList: [
-        { abbreviation: "恒生指數" },
-        { abbreviation: "恒生中國企業指數" },
-        { abbreviation: "HSCEI Covered Call Index" }
-      ],
-      twList: [
-        { abbreviation: "臺灣證券交易所發行量加權股價指數" },
-        { abbreviation: "櫃買指數" },
-        { abbreviation: "臺灣50指數" }
-      ],
-      inList: [
-        { abbreviation: "Nifty 50 Index" },
-        { abbreviation: "Nifty Bank Index" },
-        { abbreviation: "Nifty Financial Services Index" }
-      ],
-      tab: 1,
       pageNum: 1,
       pageSize: 10,
-      kData: {}
+      kData: {},
+      keyValue: "", // 搜索
+      tabs: [
+        {
+          name: this.$t("订单"),
+          path: "/myorder",
+          img: require("@/assets/img/market_1.png")
+        },
+        {
+          name: this.$t("subdka"),
+          path: "/RechargeSure",
+          img: require("@/assets/img/market_2.png")
+        },
+        {
+          name: this.$t("关于我们"),
+          path: "/bankCard1",
+          img: require("@/assets/img/market_3.png")
+        }
+      ]
     };
   },
   components: {
     tabHead,
-    Echart,
-    stockList,
-    indexComponent
+    stockList
   },
-  watch: {
-    tab() {
-      this.getIndicesAndKData();
-    }
-  },
+  watch: {},
   computed: {
-    switchText() {
-      // 切换文字
-      return this.$t(this.$store.state.marketsSwitch.name) || this.$t("美国");
-    },
+    // 传递给列表组件的类型值
     propOption() {
-      // 传递给列表组件的类型值
-      return { stockType: this.$store.state.marketsSwitch.value };
+      return { stockType: "US", keyWords: this.keyValue };
     }
   },
-  async created() {
-    if (!this.$store.state.marketsSwitch.name) {
-      // 如果没有选过,默认选择第一个
-      this.$store.commit("MARKET_CHANGE", this.actions[0]);
-    }
-    await this.getTabData();
-    this.tab = this.tabList[0].pid;
-  },
+  async created() {},
   mounted() {},
   methods: {
-    // 选择
-    async onSelect(e) {
-      this.$store.commit("MARKET_CHANGE", e);
-      await this.getTabData();
-      this.tab = this.tabList[0].pid;
-    },
-    // 获取tab数据
-    async getTabData() {
-      let stockType = this.$store.state.marketsSwitch.value;
-      let data = await api.getIndicesList({
-        stockType
-      });
-
-      // 数据重构
-      let list = [];
-      if (stockType == "US") list = this.usList;
-      else if (stockType == "HK") list = this.hkList;
-      else if (stockType == "TW") list = this.twList;
-      else if (stockType == "IN") list = this.inList;
-      this.tabList = list.map((item, index) => {
-        item = { ...item, ...data.data[index + 1] };
-        return item;
-      });
-
-      // console.log("dadadadadad", this.tabList);
-    },
-    // 获取指数图
-    async getIndicesAndKData() {
-      let data = await api.getIndicesAndKData({
-        pid: this.tab,
-        stockType: this.$store.state.marketsSwitch.value
-      });
-      this.kData = data.data;
-      // console.log("getIndicesAndKData", this.kData);
-    },
-    // tab切换
-    tabChange() {
-      this.getIndicesAndKData();
+    // 搜索
+    search() {
+      this.$refs.stockList.init();
     }
   }
 };
@@ -180,53 +102,70 @@
 @green2: #f0f0f0;
 @dark_green: #07c160;
 
+/deep/ .van-cell {
+  background-color: rgba(#000, 0);
+  border: rgba(#fff, 0.5) 2px solid;
+  border-radius: 5em;
+}
+/deep/ .van-icon {
+  font-size: 1.6em;
+}
 .markets {
   font-size: 10vw;
   width: 100vw;
   min-height: 100vh;
   padding-bottom: 1.5rem;
-
-  .markets_echart {
-    width: 100%;
-    height: 3.2em;
-    background: rgba(red, 0.1);
-    color: @red;
+  .tui_variety {
+    padding: 0.7em 0 0.35em;
+    .tui_variety_item {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: space-between;
+      flex-basis: 25%;
+      .tui_variety_item_name {
+        line-height: 0.2em;
+        color: #898a8e;
+        margin-top: 0.1em;
+        text-align: center;
+        span {
+          font-size: 0.3em;
+        }
+      }
+      img {
+        width: 0.7em;
+        height: auto;
+      }
+    }
   }
-
-  .tabs {
-    width: 9.5em;
-    height: 1em;
-    background-color: @green2;
-    border-radius: 0.5em;
-    margin: 0.25em auto;
-    padding: 0 0.1em;
+  .tui-tabs {
+    position: sticky;
+    top: 0;
+    left: 0;
+    padding: 0 0.22em;
 
     .tab_item {
-      width: 32%;
-      height: 0.8em;
-      border-radius: 0.5em;
-      padding: 0 .25em;
-
+      height: 1.05em;
+      font-weight: bold;
+      padding: 0 0.325em;
+      color: rgb(204, 204, 204);
+      position: relative;
+      &::before {
+        content: "";
+        width: 0.75em;
+        height: 0.15em;
+        position: absolute;
+        bottom: 0;
+        background-color: rgb(82, 91, 173);
+        border-radius: 0.15em;
+      }
       span {
         font-size: 0.4em;
       }
     }
-
-    .active {
-      background-color: @green;
-    }
   }
-
-  .switch {
-    padding: 0.35em 0.5em;
-    background-color: @green;
-    color: @white;
-    border-radius: 1em;
-
-    span {
-      font-size: 0.35em;
-      margin-left: 0.2em;
-    }
+  .tui-search {
+    padding: 0.225em;
   }
 }
 </style>

--
Gitblit v1.9.3