From 732c30b33f782c2d2ebb62eacda2fb7a453a7ecd Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Sat, 31 Jan 2026 11:01:45 +0800
Subject: [PATCH] 1
---
src/page/markets/markets.vue | 106 ++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 72 insertions(+), 34 deletions(-)
diff --git a/src/page/markets/markets.vue b/src/page/markets/markets.vue
index e66caf3..9b8382b 100644
--- a/src/page/markets/markets.vue
+++ b/src/page/markets/markets.vue
@@ -1,13 +1,7 @@
<template>
<div class="markets">
<tab-head :rightShow="false">
- <van-popover
- v-model="switchShow"
- trigger="click"
- :actions="actions"
- @select="onSelect"
- placement="bottom-end"
- >
+ <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" />
@@ -18,20 +12,14 @@
</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 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.name }}</span>
</div>
</div>
<div class="markets_echart">
- <index-component :ids="'markets'"></index-component>
- <!-- <van-skeleton title :row="3" /> -->
+ <index-component :ids="'markets'" :dataObj="kData"></index-component>
</div>
<stock-list :propOption="propOption"></stock-list>
@@ -54,22 +42,30 @@
{
text: this.$t("美国"),
value: "US",
- name: "美国"
+ name: this.$t("美国")
},
{
- text: this.$t("墨西哥"),
- value: "MX",
- name: "墨西哥"
- }
+ text: this.$t("日本"),
+ value: "JP",
+ name: this.$t("日本")
+ },
+ // {
+ // text: this.$t("hk1"),
+ // value: "HK",
+ // name: this.$t("hk1")
+ // },
+ // {
+ // text: this.$t("tw"),
+ // value: "TW",
+ // name: this.$t("tw")
+ // },
],
- tabList: [
- { name: "Dow Jones", value: 1 },
- { name: "S&P 500", value: 2 },
- { name: "NASDAQ", value: 3 }
- ],
+ tabList: [],
tab: 1,
pageNum: 1,
- pageSize: 10
+ pageSize: 10,
+ kData: {},
+ times: null
};
},
components: {
@@ -78,24 +74,65 @@
stockList,
indexComponent
},
+ watch: {
+ tab() {
+ this.init();
+ }
+ },
+ beforeDestroy() {
+ if (this.times) clearInterval(this.times);
+ },
computed: {
- switchText() { // 切换文字
+ switchText() {
+ // 切换文字
return this.$t(this.$store.state.marketsSwitch.name) || this.$t("美国");
},
- propOption() { // 传递给列表组件的类型值
+ propOption() {
+ // 传递给列表组件的类型值
return { stockType: this.$store.state.marketsSwitch.value };
}
},
- created() {
- if (!this.$store.state.marketsSwitch.name) { // 如果没有选过,默认选择第一个
+ async created() {
+ if (!this.$store.state.marketsSwitch.name) {
+ // 如果没有选过,默认选择第一个
this.$store.commit("MARKET_CHANGE", this.actions[0]);
}
+ await this.getTabData();
},
- mounted() {},
+ mounted() { },
methods: {
// 选择
- onSelect(e) {
+ async onSelect(e) {
this.$store.commit("MARKET_CHANGE", e);
+ await this.getTabData();
+ },
+ // 获取tab数据
+ async getTabData() {
+ let stockType = this.$store.state.marketsSwitch.value;
+ let data = await api.getIndicesList({
+ stockType
+ });
+ this.tabList = data.data;
+ this.tab = this.tabList[1].pid;
+
+ // 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);
+ },
+ // 初始化
+ init() {
+ if (this.times) clearInterval(this.times);
+ this.getIndicesAndKData();
+ this.times = setInterval(() => {
+ this.getIndicesAndKData();
+ }, 2000);
}
}
};
@@ -134,6 +171,7 @@
width: 32%;
height: 0.8em;
border-radius: 0.5em;
+ padding: 0 0.25em;
span {
font-size: 0.4em;
--
Gitblit v1.9.3