diff --git a/api/member.js b/api/member.js index 58dd7fc..9ff6717 100644 --- a/api/member.js +++ b/api/member.js @@ -29,9 +29,14 @@ export const getUserInfo = (data) => { return http({ method: 'POST', url: '/api/my/userInfo', - data: data, - header:{ - token:'014de5283d2930af6481ede591afd087' - } + data: data + }) +} + +export const updateUserInfo = (data) => { + return http({ + method: 'POST', + url: '/api/my/updateUserInfo', + data: data }) } \ No newline at end of file diff --git a/components/IndexCard.vue b/components/IndexCard.vue index 176fc6a..ac5447a 100644 --- a/components/IndexCard.vue +++ b/components/IndexCard.vue @@ -18,9 +18,8 @@ - - - + + @@ -64,7 +63,18 @@ const props = defineProps({ }); const judgeSymbol = (num) => { - return num[0] === "-" ? num : "+" + num; + // 兼容 undefined/null/数字/字符串 + if (num === null || num === undefined) return ''; + const n = Number(num); + if (!isNaN(n)) { + // 数值:正数加'+',负数原样 + return (n < 0 ? '' : '+') + n; + } + // 字符串:去空格后判断前缀 + const s = String(num).trim(); + if (s.startsWith('-')) return s; + if (s.startsWith('+')) return s; + return '+' + s; }; const getMarketFlag = (market) => { @@ -97,10 +107,14 @@ const priceColor = computed(() => { return props.isRising ? "#00C853" : "#FF1744"; }); -// 计算图表背景色 -const chartBgColor = computed(() => { - return props.isRising ? "#E8F5E8" : "#FFEBEE"; +const timeChart = computed(() => { + return props.isRising ? "/static/marketSituation-image/upTimeChart.png" : "/static/marketSituation-image/downTimeChart.png"; }); + +// 计算图表背景色 +// const chartBgColor = computed(() => { +// return props.isRising ? "#E8F5E8" : "#FFEBEE"; +// }); diff --git a/components/h-loading.vue b/components/h-loading.vue new file mode 100644 index 0000000..8bf1873 --- /dev/null +++ b/components/h-loading.vue @@ -0,0 +1,54 @@ + + + + + + + diff --git a/package.json b/package.json index 14c932c..6bf25b1 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,8 @@ { + "scripts": { + "dev:h5": "cross-env NODE_OPTIONS=\"--max-old-space-size=4096\" uni build --watch", + "build:h5": "cross-env NODE_OPTIONS=\"--max-old-space-size=4096\" uni build" + }, "dependencies": { "@dcloudio/uni-ui": "^1.5.11", "@element-plus/icons-vue": "^2.3.2", @@ -8,5 +12,8 @@ "pinia": "^3.0.3", "pinia-plugin-persistedstate": "^4.5.0", "vue-i18n": "^9.14.5" + }, + "devDependencies": { + "cross-env": "^7.0.3" } } diff --git a/pages/deepExploration/MainForceActions.vue b/pages/deepExploration/MainForceActions.vue index 883048c..d4378c8 100644 --- a/pages/deepExploration/MainForceActions.vue +++ b/pages/deepExploration/MainForceActions.vue @@ -213,7 +213,7 @@ const recordId = ref('') const parentId = ref('') const stockId = ref('') - const market = ref('') + const market = ref('usa') const stockTime = ref('2025/10/24') const loading = ref(true); @@ -258,6 +258,7 @@ if (searchName.value == '') { console.log('没有搜索', searchName.value); handleDefault() + getServerData() } else { if (currentIndex.value == 0) { console.log('搜索', searchName.value); diff --git a/pages/home/member.vue b/pages/home/member.vue index 3c02820..2ea2bb9 100644 --- a/pages/home/member.vue +++ b/pages/home/member.vue @@ -1,317 +1,367 @@ \ No newline at end of file diff --git a/pages/marketSituation/countryMarket.vue b/pages/marketSituation/countryMarket.vue index a31933e..7f23c1c 100644 --- a/pages/marketSituation/countryMarket.vue +++ b/pages/marketSituation/countryMarket.vue @@ -17,7 +17,7 @@ - + @@ -95,6 +95,8 @@ import { ref, computed, onMounted, watch } from "vue"; import IndexCard from "../../components/IndexCard.vue"; import { queryStockDataAPI } from "@/api/marketSituation/marketSituation"; +import { useMarketSituationStore } from "../../stores/modules/marketSituation.js"; +const marketSituationStore = useMarketSituationStore(); onMounted(() => { switchTab(0); @@ -111,6 +113,11 @@ const switchTab = (i) => { }).then((res) => { if (res.code === 200) { countryInfo.value = res.data.dataPage.records; + marketSituationStore.countryMarketCardData = countryInfo.value.map((item) => ({ + market: item.market, + stockCode: item.code, + stockName: item.name, + })); console.log(res.data) console.log(res.data.dataPage.records) console.log(countryInfo.value); @@ -149,12 +156,23 @@ const props = defineProps({ // 计算当前国家信息 const countryInfo = ref('') - +// 方法:查看指数详情 +const viewIndexDetail = (item, index) => { + console.log("查看指数详情:", item); + uni.navigateTo({ + url: `/pages/marketSituation/marketCondition?stockInformation=${encodeURIComponent(JSON.stringify(item))}&index=${index}&from=countryMarket`, + }); +}; // 处理从父组件接收的数据 const handleTabData = (tabData) => { if (tabData && tabData.type === 'country' && tabData.data) { if (tabData.data.dataPage && tabData.data.dataPage.records) { countryInfo.value = tabData.data.dataPage.records; + marketSituationStore.countryMarketCardData = countryInfo.value.map((item) => ({ + market: item.market, + stockCode: item.code, + stockName: item.name, + })); console.log('countryMarket接收到数据:', countryInfo.value); } } @@ -169,9 +187,6 @@ watch(() => props.tabData, (newTabData) => { // 查看更多占位 const viewMore = (type) => { - // 可根据 type 跳转到相应页面或加载更多 - // 例如:indices/sectors/stocks - // uni.navigateTo({ url: `/pages/marketSituation/${type}List` }) }; diff --git a/pages/marketSituation/globalIndex.vue b/pages/marketSituation/globalIndex.vue index 43e573e..40fff44 100644 --- a/pages/marketSituation/globalIndex.vue +++ b/pages/marketSituation/globalIndex.vue @@ -2,6 +2,8 @@