Browse Source

Merge branch 'milestone-20251031-简版功能开发' of http://39.101.133.168:8807/qimaohong/deepChartVueApp into wangyi/feature-20251026183100-deepmate王毅

lihuilin/feature-20251024095243-我的
wangyi 3 weeks ago
parent
commit
b880ed83d7
  1. 2
      .hbuilderx/launch.json
  2. 2
      api/tcpConnection.js
  3. 4
      pages/blank/institutionalTrendsBriefing.vue
  4. 5
      pages/blank/notice.vue
  5. 24
      pages/deepMate/deepMate.vue
  6. 10
      pages/home/member.vue
  7. 148
      pages/marketSituation/globalIndex.vue
  8. 228
      pages/marketSituation/marketCondition.vue
  9. 31
      pages/marketSituation/marketOverview.vue

2
.hbuilderx/launch.json

@ -4,7 +4,7 @@
{ {
"customPlaygroundType" : "local", "customPlaygroundType" : "local",
"packageName" : "io.dcloud.HBuilder", "packageName" : "io.dcloud.HBuilder",
"playground" : "standard",
"playground" : "custom",
"type" : "uni-app:app-android" "type" : "uni-app:app-android"
} }
] ]

2
api/tcpConnection.js

@ -6,7 +6,7 @@
*/ */
// 引用TCP插件 // 引用TCP插件
// const TCPSocket = uni.requireNativePlugin('Aimer-TCPPlugin');
const TCPSocket = uni.requireNativePlugin('Aimer-TCPPlugin');
// const TCPSocket = uni.requireNativePlugin("Aimer-TCPPlugin"); // const TCPSocket = uni.requireNativePlugin("Aimer-TCPPlugin");
// TCP连接配置 // TCP连接配置

4
pages/blank/institutionalTrendsBriefing.vue

@ -24,9 +24,7 @@
<script setup> <script setup>
// deepMate // deepMate
const goBack = () => { const goBack = () => {
uni.navigateTo({
url: '/pages/deepMate/deepMate'
});
uni.navigateBack({ delta: 1 })
}; };
</script> </script>

5
pages/blank/notice.vue

@ -24,9 +24,8 @@
<script setup> <script setup>
// deepMate // deepMate
const goBack = () => { const goBack = () => {
uni.navigateTo({
url: '/pages/deepMate/deepMate'
});
//
uni.navigateBack({ delta: 1 })
}; };
</script> </script>

24
pages/deepMate/deepMate.vue

@ -232,6 +232,7 @@
@touchmove="onBackTopTouchMove" @touchmove="onBackTopTouchMove"
@touchend="onBackTopTouchEnd" @touchend="onBackTopTouchEnd"
@click="onBackTopClick" @click="onBackTopClick"
v-if="messages.length > 0"
></image> ></image>
<!-- 搜索历史侧拉框 --> <!-- 搜索历史侧拉框 -->
@ -249,7 +250,7 @@
<view class="delete-all-container"> <view class="delete-all-container">
<image <image
class="delete-icon" class="delete-icon"
src="/static/icons/Group_48095481.svg"
src="/static/icons/Group_48095481.svg" @click="clearAllHistory"
></image> ></image>
<text class="delete-all" @click="clearAllHistory">删除全部</text> <text class="delete-all" @click="clearAllHistory">删除全部</text>
</view> </view>
@ -595,8 +596,21 @@ const groupedHistory = computed(() => {
}); });
const clearAllHistory = () => { const clearAllHistory = () => {
searchHistory.value = [];
// uni.setStorageSync("search_history", []);
uni.showModal({
title: '确认删除',
content: '确定要删除全部历史记录吗?该操作不可撤销。',
confirmText: '删除',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
// historyList searchHistory
historyList.value = [];
// 使
// uni.setStorageSync("search_history", []);
uni.showToast({ title: '历史已清空', icon: 'none' });
}
}
})
}; };
// //
@ -669,7 +683,7 @@ const simulateBotResponse = async (userMessage) => {
// //
const errorMessage = res.message || "请求失败,请稍后重试"; const errorMessage = res.message || "请求失败,请稍后重试";
let responseText = `我已经收到您的消息: "${userMessage}"。错误信息: "${errorMessage}"`;
let responseText = `我已经收到您的消息: "${userMessage}"。"${errorMessage}"`;
// //
let index = 0; let index = 0;
@ -1190,7 +1204,7 @@ async function itemClick(item) {
.welcome-section { .welcome-section {
/* 灰色卡片(recommend-card)之后展示背景图 */ /* 灰色卡片(recommend-card)之后展示背景图 */
margin-top: 10rpx;
margin-top: 2rem;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;

10
pages/home/member.vue

@ -1,5 +1,5 @@
<template> <template>
<LoginPrompt ref="loginPrompt"></LoginPrompt>
<LoginPrompt ref="loginwPrompt"></LoginPrompt>
<view class="main"> <view class="main">
<view class="top"> <view class="top">
<view class="bell"> <view class="bell">
@ -129,6 +129,14 @@ const goToAbout = () => {
} }
const goToShare = () => { const goToShare = () => {
console.log('用户信息==========',userInfoRes.value.data)
if (!userInfoRes.value.data) {
uni.showToast({
title: '请先登录',
icon: 'none'
})
return
}
uni.navigateTo({ uni.navigateTo({
url: '../setting/share' url: '../setting/share'
}) })

148
pages/marketSituation/globalIndex.vue

@ -30,7 +30,7 @@
</view> </view>
<!-- 内容区域 --> <!-- 内容区域 -->
<scroll-view class="content" :style="{ top: contentTopPosition + 'px' }" scroll-y="true">
<scroll-view class="content" :style="{ top: contentTopPosition + 'px' }" scroll-y="true" v-if="isDataLoaded">
<!-- 亚太-中华 --> <!-- 亚太-中华 -->
<view class="market-section" v-for="(item, parentIndex) in marketSituationStore.gloablCardData" :key="item"> <view class="market-section" v-for="(item, parentIndex) in marketSituationStore.gloablCardData" :key="item">
<view class="market-header"> <view class="market-header">
@ -66,6 +66,7 @@
<script setup> <script setup>
import { ref, onMounted, onUnmounted, computed, nextTick, watch } from "vue"; import { ref, onMounted, onUnmounted, computed, nextTick, watch } from "vue";
import { onShow, onHide } from "@dcloudio/uni-app";
import footerBar from "../../components/footerBar.vue"; import footerBar from "../../components/footerBar.vue";
import IndexCard from "../../components/IndexCard.vue"; import IndexCard from "../../components/IndexCard.vue";
import { getRegionalGroupAPI } from "../../api/marketSituation/marketSituation.js"; import { getRegionalGroupAPI } from "../../api/marketSituation/marketSituation.js";
@ -78,6 +79,9 @@ const headerHeight = ref(0); // 头部高度
const searchValue = ref(""); // const searchValue = ref(""); //
const isWarnTextOverflow = ref(false); // warn const isWarnTextOverflow = ref(false); // warn
//
const isDataLoaded = ref(false);
// warnclass // warnclass
const warnTextClass = computed(() => { const warnTextClass = computed(() => {
return isWarnTextOverflow.value ? "warn_text scroll-active" : "warn_text"; return isWarnTextOverflow.value ? "warn_text scroll-active" : "warn_text";
@ -109,125 +113,6 @@ const checkWarnTextOverflow = () => {
}); });
}; };
const globalIndexArray = ref([]); const globalIndexArray = ref([]);
// -
const asiachinaIndexes = ref([
{
flagIcon: "/static/c1.png",
stockName: "上证指数",
stockCode: "noCode",
currentPrice: "3933.96",
changeAmount: "+24.32",
changePercent: "+0.62%",
isRising: true,
},
{
flagIcon: "/static/c2.png",
stockName: "深证成指",
stockCode: "noCode",
currentPrice: "45757.90",
changeAmount: "-123.45",
changePercent: "-0.27%",
isRising: false,
},
{
flagIcon: "/static/c3.png",
stockName: "创业板指",
stockCode: "noCode",
currentPrice: "6606.08",
changeAmount: "+89.76",
changePercent: "+1.38%",
isRising: true,
},
{
flagIcon: "/static/c4.png",
stockName: "HSI50",
stockCode: "noCode",
currentPrice: "22333.96",
changeAmount: "+156.78",
changePercent: "+0.71%",
isRising: true,
},
{
flagIcon: "/static/c5.png",
stockName: "沪深300",
stockCode: "noCode",
currentPrice: "45757.90",
changeAmount: "-89.12",
changePercent: "-0.19%",
isRising: false,
},
{
flagIcon: "/static/c6.png",
stockName: "上证50",
stockCode: "noCode",
currentPrice: "45757.90",
changeAmount: "+234.56",
changePercent: "+0.52%",
isRising: true,
},
]);
//
const asiaIndexes = ref([
{
flagIcon: "/static/c7.png",
stockName: "日经225",
stockCode: "noCode",
currentPrice: "28456.78",
changeAmount: "+234.56",
changePercent: "+0.83%",
isRising: true,
},
{
flagIcon: "/static/c8.png",
stockName: "韩国KOSPI",
stockCode: "noCode",
currentPrice: "2567.89",
changeAmount: "-12.34",
changePercent: "-0.48%",
isRising: false,
},
{
flagIcon: "/static/c9.png",
stockName: "印度孟买",
stockCode: "noCode",
currentPrice: "65432.10",
changeAmount: "+456.78",
changePercent: "+0.70%",
isRising: true,
},
]);
//
const americaIndexes = ref([
{
flagIcon: "/static/c7.png",
stockName: "道琼斯指数",
stockCode: "noCode",
currentPrice: "34567.89",
changeAmount: "+123.45",
changePercent: "+0.36%",
isRising: true,
},
{
flagIcon: "/static/c8.png",
stockName: "纳斯达克",
stockCode: "noCode",
currentPrice: "13456.78",
changeAmount: "-67.89",
changePercent: "-0.50%",
isRising: false,
},
{
flagIcon: "/static/c9.png",
stockName: "标普500",
stockCode: "noCode",
currentPrice: "4234.56",
changeAmount: "+23.45",
changePercent: "+0.56%",
isRising: true,
},
]);
// //
const contentTopPosition = computed(() => { const contentTopPosition = computed(() => {
@ -482,6 +367,8 @@ const parseStockData = (message) => {
} }
} }
} }
//
isDataLoaded.value = true;
} else if ((typeof message === "string" && message.includes('{"count')) || isMorePacket.batch_real_time) { } else if ((typeof message === "string" && message.includes('{"count')) || isMorePacket.batch_real_time) {
if (typeof message === "string" && message.includes('{"count')) { if (typeof message === "string" && message.includes('{"count')) {
console.log("开始接受分包数据"); console.log("开始接受分包数据");
@ -564,6 +451,22 @@ const startTcp = () => {
} }
}; };
onShow(async () => {
console.log("显示页面");
await getRegionalGroup();
initTcpListeners();
await nextTick();
//
startTcp();
});
onHide(() => {
console.log("隐藏页面");
sendTcpMessage("stop_real_time");
removeTcpListeners();
disconnectTcp();
});
onUnmounted(() => { onUnmounted(() => {
sendTcpMessage("stop_real_time"); sendTcpMessage("stop_real_time");
removeTcpListeners(); removeTcpListeners();
@ -572,11 +475,6 @@ onUnmounted(() => {
// //
onMounted(async () => { onMounted(async () => {
await getRegionalGroup();
initTcpListeners();
await nextTick();
//
startTcp();
// //
const systemInfo = uni.getSystemInfoSync(); const systemInfo = uni.getSystemInfoSync();
iSMT.value = systemInfo.statusBarHeight || 0; iSMT.value = systemInfo.statusBarHeight || 0;

228
pages/marketSituation/marketCondition.vue

@ -204,16 +204,16 @@
</view> </view>
<view class="test" v-else-if="klineTab === 11"> <view class="test" v-else-if="klineTab === 11">
<view class="button-sp-area"> <view class="button-sp-area">
<button class="mini-btn" type="default" size="mini" @click="ChangeMinutePeriod(1)">分时</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeMinutePeriod(5)">5D</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(0)">D</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(1)">W</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(4)">1M</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(5)">15M</button>
</view>
<view style='background-color:#ffffff;'>
<HQChartControl ref="HQChartCtrl" DefaultChart="{Type:'KLine'}" :DefaultSymbol="Symbol"> </HQChartControl>
</view>
<button class="mini-btn" type="default" size="mini" @click="ChangeMinutePeriod(1)">分时</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeMinutePeriod(5)">5D</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(0)">D</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(1)">W</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(4)">1M</button>
<button class="mini-btn" type="default" size="mini" @click="ChangeKLinePeriod(5)">15M</button>
</view>
<view style="background-color: #ffffff">
<HQChartControl ref="HQChartCtrl" DefaultChart="{Type:'KLine'}" :DefaultSymbol="Symbol"> </HQChartControl>
</view>
</view> </view>
<view v-else class="kline-chart-container"> <view v-else class="kline-chart-container">
<text>K线图开发中...</text> <text>K线图开发中...</text>
@ -249,146 +249,120 @@ import { HCharts } from "@/common/canvasMethod.js";
import tcpConnection, { TCPConnection, TCP_CONFIG } from "../../api/tcpConnection"; import tcpConnection, { TCPConnection, TCP_CONFIG } from "../../api/tcpConnection";
import { useMarketSituationStore } from "../../stores/modules/marketSituation.js"; import { useMarketSituationStore } from "../../stores/modules/marketSituation.js";
const marketSituationStore = useMarketSituationStore(); const marketSituationStore = useMarketSituationStore();
import HQChartControl from '@/uni_modules/jones-hqchart2/js_sdk/HQChartControl.vue'
import HQChartControl from "@/uni_modules/jones-hqchart2/js_sdk/HQChartControl.vue";
// //
import HQData from "@/uni_modules/jones-hqchart2/js_sdk/umychart.NetworkFilterTest.vue.js"
import { dailyDataPackets } from '@/common/dailyData.js'
import HQData from "@/uni_modules/jones-hqchart2/js_sdk/umychart.NetworkFilterTest.vue.js";
import { dailyDataPackets } from "@/common/dailyData.js";
// //
const Symbol = ref('GBPAUD.FXCM')
const ChartWidth = ref(350)
const ChartHeight = ref(500)
const HQChartCtrl = ref(null)
const Symbol = ref("GBPAUD.FXCM");
const HQChartCtrl = ref(null);
// //
const CreateHQChart = () => { const CreateHQChart = () => {
const chartHeight = ChartHeight.value
const hqchartCtrl = HQChartCtrl.value
const width = canvasWidth.value;
const height = canvasHeight.value;
const hqchartCtrl = HQChartCtrl.value;
if (!hqchartCtrl) return
if (!hqchartCtrl) return;
//option
//hqchartCtrl.KLine.Option.
hqchartCtrl.NetworkFilter = NetworkFilter
hqchartCtrl.SetSize(ChartWidth.value, chartHeight)
hqchartCtrl.OnSize()
//option
//hqchartCtrl.KLine.Option.
hqchartCtrl.NetworkFilter = NetworkFilter;
hqchartCtrl.SetSize(width, height);
hqchartCtrl.OnSize();
hqchartCtrl.KLine.Option.IsAutoUpdate = false
hqchartCtrl.KLine.Option.KLine.Period = 4
hqchartCtrl.KLine.Option.IsAutoUpdate = false;
hqchartCtrl.KLine.Option.KLine.Period = 4;
nextTick(() => {
hqchartCtrl.CreateHQChart()
})
}
nextTick(() => {
hqchartCtrl.CreateHQChart();
});
};
const transformDailyDataToHQChart = (dailyDataPackets) => { const transformDailyDataToHQChart = (dailyDataPackets) => {
const symbol = dailyDataPackets.stock_code || Symbol.value
const rows = Array.isArray(dailyDataPackets.data) ? dailyDataPackets.data : []
// HQChart线: [Date, Open, High, Low, Close, Volume]
const data = rows.map((r, idx) => ([
parseInt(r.trade_date, 10), // Date: YYYYMMDD
Number(idx > 0 ? rows[idx - 1].bid_close : r.bid_close), // YClose:
Number(r.bid_open), // Open
Number(r.bid_high), // High
Number(r.bid_low), // Low
Number(r.bid_close), // Close
Number(r.tick_qty || 0), // Volume
Number(r.amount || 0) // Amount0
]))
return { name: symbol, symbol, ver: 2.0, data }
}
const symbol = dailyDataPackets.stock_code || Symbol.value;
const rows = Array.isArray(dailyDataPackets.data) ? dailyDataPackets.data : [];
// HQChart线: [Date, Open, High, Low, Close, Volume]
const data = rows.map((r, idx) => [
parseInt(r.trade_date, 10), // Date: YYYYMMDD
Number(idx > 0 ? rows[idx - 1].bid_close : r.bid_close), // YClose:
Number(r.bid_open), // Open
Number(r.bid_high), // High
Number(r.bid_low), // Low
Number(r.bid_close), // Close
Number(r.tick_qty || 0), // Volume
Number(r.amount || 0), // Amount0
]);
return { name: symbol, symbol, ver: 2.0, data };
};
const ClearHQChart = () => { const ClearHQChart = () => {
const hqchartCtrl = HQChartCtrl.value
if (hqchartCtrl) hqchartCtrl.ClearChart()
}
const hqchartCtrl = HQChartCtrl.value;
if (hqchartCtrl) hqchartCtrl.ClearChart();
};
const ChangeMinutePeriod = (days) => { const ChangeMinutePeriod = (days) => {
const hqchartCtrl = HQChartCtrl.value
if (hqchartCtrl) hqchartCtrl.ChangeMinutePeriod(days)
}
const hqchartCtrl = HQChartCtrl.value;
if (hqchartCtrl) hqchartCtrl.ChangeMinutePeriod(days);
};
const ChangeKLinePeriod = (period) => { const ChangeKLinePeriod = (period) => {
const hqchartCtrl = HQChartCtrl.value
if (hqchartCtrl) hqchartCtrl.ChangeKLinePeriod(period)
}
const hqchartCtrl = HQChartCtrl.value;
if (hqchartCtrl) hqchartCtrl.ChangeKLinePeriod(period);
};
const NetworkFilter = (data, callback) => { const NetworkFilter = (data, callback) => {
console.log(`[App:NetworkFilter] Name=${data.Name} Explain=${data.Explain}`)
// HQDataCDN
data.PreventDefault = true
const reqSymbol = (data?.Request?.Data?.symbol) || Symbol.value || 'GBPAUD.FXCM'
switch (data.Name) {
// K
case 'KLineChartContainer::RequestHistoryData': {
const packet = dailyDataPackets[reqSymbol]
if (packet) {
const mock = transformDailyDataToHQChart(packet)
callback({ data: mock })
} else {
//
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } })
}
break
}
// K
case 'KLineChartContainer::RequestRealtimeData': {
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } })
break
}
// /
case 'KLineChartContainer::ReqeustHistoryMinuteData':
case 'KLineChartContainer::RequestMinuteRealtimeData':
case 'MinuteChartContainer::RequestMinuteData':
case 'MinuteChartContainer::RequestHistoryMinuteData': {
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } })
break
}
default: {
//
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } })
break
}
console.log(`[App:NetworkFilter] Name=${data.Name} Explain=${data.Explain}`);
// HQDataCDN
data.PreventDefault = true;
const reqSymbol = data?.Request?.Data?.symbol || Symbol.value || "GBPAUD.FXCM";
switch (data.Name) {
// K
case "KLineChartContainer::RequestHistoryData": {
const packet = dailyDataPackets[reqSymbol];
if (packet) {
const mock = transformDailyDataToHQChart(packet);
callback({ data: mock });
} else {
//
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } });
}
break;
} }
}
//
const handleShow = () => {
uni.getSystemInfo({
success: (res) => {
const width = res.windowWidth
const height = res.windowHeight
ChartWidth.value = width
ChartHeight.value = height - 65
nextTick(() => {
CreateHQChart()
})
}
})
}
// K
case "KLineChartContainer::RequestRealtimeData": {
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } });
break;
}
// /
case "KLineChartContainer::ReqeustHistoryMinuteData":
case "KLineChartContainer::RequestMinuteRealtimeData":
case "MinuteChartContainer::RequestMinuteData":
case "MinuteChartContainer::RequestHistoryMinuteData": {
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } });
break;
}
default: {
//
callback({ data: { name: reqSymbol, symbol: reqSymbol, ver: 2.0, data: [] } });
break;
}
}
};
// //
const handleHide = () => { const handleHide = () => {
ClearHQChart()
}
ClearHQChart();
};
// //
const handleUnload = () => { const handleUnload = () => {
ClearHQChart()
}
//
onMounted(() => {
handleShow()
})
onUnmounted(() => {
handleUnload()
})
ClearHQChart();
};
// TCP // TCP
const tcpConnected = ref(false); const tcpConnected = ref(false);
@ -750,8 +724,8 @@ const toRightPage = () => {
const updateStockInformation = (stock) => { const updateStockInformation = (stock) => {
klineTab.value = 1; klineTab.value = 1;
stockInformation.value.stockName = stock.stockName||stock.name;
stockInformation.value.stockCode = stock.stockCode||stock.code;
stockInformation.value.stockName = stock.stockName || stock.name;
stockInformation.value.stockCode = stock.stockCode || stock.code;
sendTcpMessage("stop_real_time"); sendTcpMessage("stop_real_time");
sendTcpMessage("init_real_time"); sendTcpMessage("init_real_time");
}; };
@ -2393,8 +2367,8 @@ onLoad((options) => {
// stockInformation // stockInformation
if (stockData) { if (stockData) {
stockInformation.value.stockName = stockData.stockName||stockData.name;
stockInformation.value.stockCode = stockData.stockCode||stockData.code;
stockInformation.value.stockName = stockData.stockName || stockData.name;
stockInformation.value.stockCode = stockData.stockCode || stockData.code;
} }
} catch (error) { } catch (error) {
console.error("解析股票数据失败:", error); console.error("解析股票数据失败:", error);
@ -2425,6 +2399,7 @@ onLoad((options) => {
// //
onUnmounted(() => { onUnmounted(() => {
handleUnload();
removeTcpListeners(); removeTcpListeners();
disconnectTcp(); disconnectTcp();
if (timer) { if (timer) {
@ -2468,6 +2443,7 @@ onMounted(async () => {
await nextTick(); await nextTick();
setTimeout(() => { setTimeout(() => {
initCanvas(); initCanvas();
CreateHQChart();
}, 100); }, 100);
console.log("所有初始化步骤完成"); console.log("所有初始化步骤完成");
} catch (error) { } catch (error) {

31
pages/marketSituation/marketOverview.vue

@ -47,6 +47,7 @@
<script setup> <script setup>
import { ref, onMounted, onUnmounted, watch, nextTick, computed } from "vue"; import { ref, onMounted, onUnmounted, watch, nextTick, computed } from "vue";
import { onShow, onHide } from "@dcloudio/uni-app";
import util from "../../common/util.js"; import util from "../../common/util.js";
import IndexCard from "../../components/IndexCard.vue"; import IndexCard from "../../components/IndexCard.vue";
import { useMarketSituationStore } from "../../stores/modules/marketSituation.js"; import { useMarketSituationStore } from "../../stores/modules/marketSituation.js";
@ -169,7 +170,7 @@ const getGlobalIndex = async () => {
}; };
// TCP // TCP
import tcpConnection, { TCPConnection, TCP_CONFIG } from "@/api/tcpConnection.js";
import tcpConnection from "@/api/tcpConnection.js";
const tcpConnected = ref(false); const tcpConnected = ref(false);
const connectionListener = ref(null); const connectionListener = ref(null);
const messageListener = ref(null); const messageListener = ref(null);
@ -225,7 +226,6 @@ const sendTcpMessage = (command) => {
if (command == "batch_real_time") { if (command == "batch_real_time") {
messageDataArray = globalIndexArray.value.map((item) => item.stockCode); messageDataArray = globalIndexArray.value.map((item) => item.stockCode);
} }
console.log(messageDataArray);
switch (command) { switch (command) {
// //
@ -273,11 +273,9 @@ const sendTcpMessage = (command) => {
const success = tcpConnection.send(messageData); const success = tcpConnection.send(messageData);
if (success) { if (success) {
console.log("home发送TCP消息:", messageData); console.log("home发送TCP消息:", messageData);
} }
} catch (error) { } catch (error) {
console.error("发送TCP消息时出错:", error); console.error("发送TCP消息时出错:", error);
} }
} }
}; };
@ -439,25 +437,38 @@ const startTcp = () => {
removeTcpListeners(); removeTcpListeners();
disconnectTcp(); disconnectTcp();
initTcpListeners(); initTcpListeners();
console.log("初始化完成,,,,,,,,,,,,,,,");
connectTcp(); connectTcp();
} catch (error) { } catch (error) {
console.error("建立连接并设置监听出错:", error); console.error("建立连接并设置监听出错:", error);
} }
}; };
onShow(async () => {
console.log("显示页面");
await getGlobalIndex();
initTcpListeners();
await nextTick();
//
startTcp();
});
onHide(() => {
console.log("隐藏页面");
sendTcpMessage("stop_real_time");
removeTcpListeners();
disconnectTcp();
});
onUnmounted(() => { onUnmounted(() => {
console.log("卸载页面");
sendTcpMessage("stop_real_time"); sendTcpMessage("stop_real_time");
removeTcpListeners(); removeTcpListeners();
disconnectTcp(); disconnectTcp();
}); });
onMounted(async () => { onMounted(async () => {
await getGlobalIndex();
initTcpListeners();
await nextTick();
//
startTcp();
console.log("挂载页面");
// //
iSMT.value = uni.getSystemInfoSync().statusBarHeight; iSMT.value = uni.getSystemInfoSync().statusBarHeight;

Loading…
Cancel
Save