From d92894f0eacd9388af584cb309bd9355666ea2f3 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Mon, 15 Sep 2025 16:03:14 +0800
Subject: [PATCH] 1

---
 src/page/markets/markets.vue |  364 ++++++++++++++++++++-------------------------------
 1 files changed, 144 insertions(+), 220 deletions(-)

diff --git a/src/page/markets/markets.vue b/src/page/markets/markets.vue
index 690c89c..40898d8 100644
--- a/src/page/markets/markets.vue
+++ b/src/page/markets/markets.vue
@@ -1,242 +1,166 @@
 <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>
+  <div class="markets">
+    <tab-head :title="$t('hj224')"></tab-head>
 
-        <div class="tabs flex-between">
-            <div class="tab_item flex-center" :class="{ active: item.value == tab }" v-for="item in tabList"
-                :key="item.value" @click="tab = item.value">
-                <span>{{ item.name }}</span>
-            </div>
-        </div>
-
-        <div class="markets_echart">
-            <div class="markets_echart_title">
-                Dow Jones Industrial Average
-            </div>
-            <div class="markets_echart_price">
-                44,406.36
-            </div>
-            <div class="markets_echart_index flex-between">
-                <span>-422.17</span>
-                <span>-0.94%</span>
-            </div>
-            <div class="markets_echart_e">
-                <Echart :ids="'markets-echart'" :colorType="-1"></Echart>
-            </div>
-
-            <!-- <van-skeleton title :row="3" /> -->
-        </div>
-
-        <van-row class="markets_head">
-            <van-col span="12" class="flex-start head_item">{{ $t('Name') }}</van-col>
-            <van-col span="4" class="flex-start head_item">{{ $t('Price') }}</van-col>
-            <van-col span="8" class="flex-end head_item">{{ $t('Change') }}</van-col>
-        </van-row>
-
-        <van-row class="markets_item" v-for="item in 10" :key="item">
-            <van-col span="12" class="item_n">
-                <div class="flex-start">
-                    <span class="i_icon">US</span>
-                    <span class="i_hint">SS</span>
-                </div>
-                <div class="i_name">shangshi</div>
-            </van-col>
-            <van-col span="4" class="flex-start item_n">18</van-col>
-            <van-col span="8" class="item_n">
-                <div class="flex-end" style="margin-bottom: .15em;">18</div>
-                <div class="flex-end">18%</div>
-            </van-col>
-        </van-row>
-
-        <n-pagination></n-pagination>
+    <div class="tui-tabs flex-start">
+      <div class="tab_item flex-center">
+        <span>{{ $t("美股") }}</span>
+      </div>
     </div>
+
+    <div class="flex-between navs">
+      <div class="nav_item" v-for="item in sList" :key="item.id">
+        <index-component :ids="'a' + item.id" :dataObj="item"></index-component>
+      </div>
+      <div class="nav_item" v-for="item in 3" :key="item" v-show="sList.length == 0">
+        <van-skeleton
+          :row="3"
+          style="margin-top: 1em;"
+        />
+      </div>
+    </div>
+
+    <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>
+
+    <new-list></new-list>
+  </div>
 </template>
 
 <script>
+import newList from "@/page/home/newList.vue";
+import indexComponent from "@/components/index-component.vue";
 import tabHead from "@/components/tabHead.vue";
-import nPagination from "@/components/nPagination.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: 1,
-                    name: '美国'
-                },
-                {
-                    text: this.$t('墨西哥'),
-                    value: 2,
-                    name: '墨西哥'
-                },
-            ],
-            tabList: [{ name: 'Dow Jones', value: 1 }, { name: 'S&P 500', value: 2 }, { name: 'NASDAQ', value: 3 },],
-            tab: 1,
-        }
-    },
-    components: {
-        tabHead, Echart, nPagination,
-    },
-    computed: {
-        switchText() {
-            return this.$t(this.$store.state.marketsSwitch.name) || this.$t('美国');
-        }
-    },
-    mounted() {
-    },
-    methods: {
-        onSelect(e) { // 选择
-            this.$store.commit("MARKET_CHANGE", e)
+  name: "markets",
+  data() {
+    return {
+      pageNum: 1,
+      pageSize: 10,
+      kData: {},
+      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")
+        }
+      ],
+      sList: []
+    };
+  },
+  components: {
+    tabHead,
+    indexComponent,
+    newList
+  },
+  watch: {},
+  created() {
+    this.getZs();
+  },
+  mounted() {},
+  methods: {
+    // 获取三张指数图
+    async getZs() {
+      let data = await api.getIndexData();
+      if (data.status == 0) {
+        this.sList = data.data;
+      }
     }
-}
-
+  }
+};
 </script>
 
 <style lang="less" scoped>
-@red: #ee0a24;
-@green: #c4d600;
-@white: #fff;
-@black: #000;
-@green2: #f0f0f0;
-@dark_green: #07c160;
-
 .markets {
-    font-size: 10vw;
-    width: 100vw;
-    min-height: 100vh;
-    padding-bottom: 1.5rem;
+  font-size: 10vw;
+  width: 100vw;
+  min-height: 100vh;
+  padding-bottom: 1.5rem;
+  .navs {
+    padding: 0.25em 0.25em 0 0.25em;
 
-    .markets_head {
-        background-color: @green2;
-        margin-top: .25em;
-        height: 1em;
-        padding: 0 .25em;
-
-        .head_item {
-            font-size: .4em;
-            height: 100%;
-            font-weight: 600;
-        }
+    .nav_item {
+      width: 2.833em;
+      height: 3em;
+      border-radius: 0.1em;
     }
-
-    .markets_item {
-        margin-top: .25em;
-        // height: 1em;
-        padding: .25em .25em;
-        border-bottom: #f5f5f5 solid .01em;
-
-        .item_n {
-            font-size: .4em;
-            min-height: 2em;
-            font-weight: 500;
-
-
-            .i_icon {
-                border-radius: 0 26em 26em 0;
-                background: @dark_green;
-                color: #fff;
-                padding: .1em .5em .1em .4em;
-                margin-right: .3em;
-                font-size: .8em;
-            }
-
-            .i_name {
-                margin-top: .3em;
-                color: #777777;
-                font-size: .8em;
-            }
-        }
-    }
-
-    .markets_echart {
-        width: 100%;
-        height: 3.2em;
-        background: rgba(red, .1);
-        color: @red;
-        padding-right: .25em;
-        padding-top: .3em;
-
-        .markets_echart_title {
-            color: @black;
-            padding-left: .625em;
-            font-size: .4em;
-            margin-bottom: .3em;
-        }
-
-        .markets_echart_price {
-            padding-left: .625em;
-            font-size: .4em;
-            margin-bottom: .4em;
-        }
-
-        .markets_echart_index {
-            padding: 0 .25em;
-
-            span {
-                font-size: .3em;
-            }
-        }
-
-        .markets_echart_e {
-            margin-top: .25em;
-            width: 86%;
-            height: 3.5em;
-        }
-
-        &>div:last-child {
-            font-size: .37em;
-        }
-    }
-
-    .tabs {
-        width: 9.5em;
-        height: 1em;
-        background-color: @green2;
-        border-radius: .5em;
-        margin: .25em auto;
-        padding: 0 .1em;
-
-        .tab_item {
-            width: 32%;
-            height: 0.8em;
-            border-radius: .5em;
-
-            span {
-                font-size: .4em;
-            }
-        }
-
-        .active {
-            background-color: @green;
-        }
-    }
-
-    .switch {
-        padding: .35em .5em;
-        background-color: @green;
-        color: @white;
-        border-radius: 1em;
-
+  }
+  .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: .35em;
-            margin-left: .2em;
+          font-size: 0.3em;
         }
+      }
+      img {
+        width: 0.7em;
+        height: auto;
+      }
     }
+  }
+  .tui-tabs {
+    position: sticky;
+    top: 0;
+    left: 0;
+    padding: 0 0.22em;
+
+    .tab_item {
+      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;
+      }
+    }
+  }
 }
 </style>

--
Gitblit v1.9.3