Browse Source

Merge branch 'hongxilin/feature-20251023103318-行情数据及页面' into milestone-20251031-简版功能开发

lihuilin/feature-20251024095243-我的
hongxilin 4 weeks ago
parent
commit
26f9d15952
  1. 219
      pages/marketSituation/marketCondition.vue
  2. 7
      pages/marketSituation/marketOverview.vue

219
pages/marketSituation/marketCondition.vue

@ -1497,8 +1497,8 @@ const sendTcpMessage = (command) => {
messageData = {
command: "daily_data",
stock_code: "GBPAUD.FXCM",
start_date: "20251001",
end_date: "20251023",
start_date: "20250801",
end_date: "20251029",
};
break;
// 线
@ -1515,7 +1515,7 @@ const sendTcpMessage = (command) => {
messageData = {
command: "monthly_data",
stock_code: "000001.SZ",
start_date: "2024912",
start_date: "20201130",
end_date: "20251029",
};
break;
@ -1850,6 +1850,45 @@ const parseStockData = (message) => {
}
}
}
} else if ((typeof message === "string" && message.includes("monthly_data_start")) || isMorePacket.monthly_data) {
if (typeof message === "string" && message.includes("monthly_data_start")) {
console.log("开始接受分包数据");
receivedMessage = "";
} else {
console.log("接收分包数据过程中");
}
isMorePacket.monthly_data = true;
receivedMessage += message;
// }JSON
if (receivedMessage.includes("monthly_data_complete")) {
console.log("接受分包数据结束");
isMorePacket.monthly_data = false;
console.log("展示数据", receivedMessage);
const result = findJsonPacket(receivedMessage, "monthly_data_complete");
if (result.error) {
throw new Error("解析JSON字符串失败");
} else {
parsedMessage = result.json;
console.log("JSON解析成功,解析后类型:", typeof parsedMessage, parsedMessage);
if (parsedMessage.type === "monthly_data") {
klineData.value = parsedMessage.data.map((item) => ({
open: item.bid_open,
close: item.bid_close,
high: item.bid_high,
low: item.bid_low,
volume: item.vol,
amount: item.amount,
date: item.trade_date ? `${item.trade_date.slice(0, 4)}-${item.trade_date.slice(4, 6)}-${item.trade_date.slice(6, 8)}` : item.trade_date,
}));
stockInformation.value.lastDayStockClosePrice = klineData.value[klineData.value.length - 2].close;
touchState.offset = canvasWidth.value / klineData.value.length / 2;
console.log("lastDayStockClosePrice", stockInformation.value.lastDayStockClosePrice);
drawChart();
}
}
}
} else if ((typeof message === "string" && message.includes("daily_one_minutes_data_start")) || isMorePacket.daily_one_minutes_data) {
if (typeof message === "string" && message.includes("daily_one_minutes_data_start")) {
console.log("开始接受分包数据");
@ -1873,15 +1912,171 @@ const parseStockData = (message) => {
parsedMessage = result.json;
console.log("JSON解析成功,解析后类型:", typeof parsedMessage, parsedMessage);
if (parsedMessage.type === "daily_one_minutes_data") {
// klineData.value = parsedMessage.data.map((item) => ({
// open: item.open,
// close: item.close,
// high: item.high,
// low: item.low,
// volume: item.volume,
// amount: item.amount,
// date: item.time,
// }));
klineData.value = parsedMessage.data.map((item) => ({
open: item.open,
close: item.close,
high: Math.max(item.low, item.high),
low: Math.min(item.low, item.high),
volume: item.volume,
amount: item.amount,
date: item.timestamp,
}));
stockInformation.value.lastDayStockClosePrice = klineData.value[klineData.value.length - 2].close;
touchState.offset = canvasWidth.value / klineData.value.length / 2;
console.log("lastDayStockClosePrice", stockInformation.value.lastDayStockClosePrice);
drawChart();
}
}
}
} else if ((typeof message === "string" && message.includes("daily_five_minutes_data_start")) || isMorePacket.daily_five_minutes_data) {
if (typeof message === "string" && message.includes("daily_five_minutes_data_start")) {
console.log("开始接受分包数据");
receivedMessage = "";
} else {
console.log("接收分包数据过程中");
}
isMorePacket.daily_five_minutes_data = true;
receivedMessage += message;
// }JSON
if (receivedMessage.includes("daily_five_minutes_data_complete")) {
console.log("接受分包数据结束");
isMorePacket.daily_five_minutes_data = false;
console.log("展示数据", receivedMessage);
const result = findJsonPacket(receivedMessage, "daily_five_minutes_data_complete");
if (result.error) {
throw new Error("解析JSON字符串失败");
} else {
parsedMessage = result.json;
console.log("JSON解析成功,解析后类型:", typeof parsedMessage, parsedMessage);
if (parsedMessage.type === "daily_five_minutes_data") {
klineData.value = parsedMessage.data.map((item) => ({
open: item.open,
close: item.close,
high: Math.max(item.low, item.high),
low: Math.min(item.low, item.high),
volume: item.volume,
amount: item.amount,
date: item.timestamp,
}));
stockInformation.value.lastDayStockClosePrice = klineData.value[klineData.value.length - 2].close;
touchState.offset = canvasWidth.value / klineData.value.length / 2;
console.log("lastDayStockClosePrice", stockInformation.value.lastDayStockClosePrice);
drawChart();
}
}
}
} else if ((typeof message === "string" && message.includes("daily_fifteen_minutes_data_start")) || isMorePacket.daily_fifteen_minutes_data) {
if (typeof message === "string" && message.includes("daily_fifteen_minutes_data_start")) {
console.log("开始接受分包数据");
receivedMessage = "";
} else {
console.log("接收分包数据过程中");
}
isMorePacket.daily_fifteen_minutes_data = true;
receivedMessage += message;
// }JSON
if (receivedMessage.includes("daily_fifteen_minutes_data_complete")) {
console.log("接受分包数据结束");
isMorePacket.daily_fifteen_minutes_data = false;
console.log("展示数据", receivedMessage);
const result = findJsonPacket(receivedMessage, "daily_fifteen_minutes_data_complete");
if (result.error) {
throw new Error("解析JSON字符串失败");
} else {
parsedMessage = result.json;
console.log("JSON解析成功,解析后类型:", typeof parsedMessage, parsedMessage);
if (parsedMessage.type === "daily_fifteen_minutes_data") {
klineData.value = parsedMessage.data.map((item) => ({
open: item.open,
close: item.close,
high: Math.max(item.low, item.high),
low: Math.min(item.low, item.high),
volume: item.volume,
amount: item.amount,
date: item.timestamp,
}));
stockInformation.value.lastDayStockClosePrice = klineData.value[klineData.value.length - 2].close;
touchState.offset = canvasWidth.value / klineData.value.length / 2;
console.log("lastDayStockClosePrice", stockInformation.value.lastDayStockClosePrice);
drawChart();
}
}
}
} else if ((typeof message === "string" && message.includes("daily_thirty_minutes_data_start")) || isMorePacket.daily_thirty_minutes_data) {
if (typeof message === "string" && message.includes("daily_thirty_minutes_data_start")) {
console.log("开始接受分包数据");
receivedMessage = "";
} else {
console.log("接收分包数据过程中");
}
isMorePacket.daily_thirty_minutes_data = true;
receivedMessage += message;
// }JSON
if (receivedMessage.includes("daily_thirty_minutes_data_complete")) {
console.log("接受分包数据结束");
isMorePacket.daily_thirty_minutes_data = false;
console.log("展示数据", receivedMessage);
const result = findJsonPacket(receivedMessage, "daily_thirty_minutes_data_complete");
if (result.error) {
throw new Error("解析JSON字符串失败");
} else {
parsedMessage = result.json;
console.log("JSON解析成功,解析后类型:", typeof parsedMessage, parsedMessage);
if (parsedMessage.type === "daily_thirty_minutes_data") {
klineData.value = parsedMessage.data.map((item) => ({
open: item.open,
close: item.close,
high: Math.max(item.low, item.high),
low: Math.min(item.low, item.high),
volume: item.volume,
amount: item.amount,
date: item.timestamp,
}));
stockInformation.value.lastDayStockClosePrice = klineData.value[klineData.value.length - 2].close;
touchState.offset = canvasWidth.value / klineData.value.length / 2;
console.log("lastDayStockClosePrice", stockInformation.value.lastDayStockClosePrice);
drawChart();
}
}
}
} else if ((typeof message === "string" && message.includes("daily_sixty_minutes_data_start")) || isMorePacket.daily_sixty_minutes_data) {
if (typeof message === "string" && message.includes("daily_sixty_minutes_data_start")) {
console.log("开始接受分包数据");
receivedMessage = "";
} else {
console.log("接收分包数据过程中");
}
isMorePacket.daily_sixty_minutes_data = true;
receivedMessage += message;
// }JSON
if (receivedMessage.includes("daily_sixty_minutes_data_complete")) {
console.log("接受分包数据结束");
isMorePacket.daily_sixty_minutes_data = false;
console.log("展示数据", receivedMessage);
const result = findJsonPacket(receivedMessage, "daily_sixty_minutes_data_complete");
if (result.error) {
throw new Error("解析JSON字符串失败");
} else {
parsedMessage = result.json;
console.log("JSON解析成功,解析后类型:", typeof parsedMessage, parsedMessage);
if (parsedMessage.type === "daily_sixty_minutes_data") {
klineData.value = parsedMessage.data.map((item) => ({
open: item.open,
close: item.close,
high: Math.max(item.low, item.high),
low: Math.min(item.low, item.high),
volume: item.volume,
amount: item.amount,
date: item.timestamp,
}));
stockInformation.value.lastDayStockClosePrice = klineData.value[klineData.value.length - 2].close;
touchState.offset = canvasWidth.value / klineData.value.length / 2;
console.log("lastDayStockClosePrice", stockInformation.value.lastDayStockClosePrice);

7
pages/marketSituation/marketOverview.vue

@ -642,8 +642,7 @@ watch(headerHeight, (newHeight) => {
margin: 0;
box-sizing: border-box;
width: 100%;
padding: 30rpx 20rpx;
gap: 20rpx;
padding: 30rpx 0;
}
.card_item {
@ -657,7 +656,7 @@ watch(headerHeight, (newHeight) => {
@media (max-width: 600rpx) {
.cards_grid {
grid-template-columns: repeat(2, 1fr);
padding: 30rpx 20rpx;
padding: 30rpx 0;
}
}
@ -665,7 +664,7 @@ watch(headerHeight, (newHeight) => {
@media (max-width: 400rpx) {
.cards_grid {
grid-template-columns: 1fr;
padding: 30rpx 20rpx;
padding: 30rpx 0;
}
}

Loading…
Cancel
Save