diff --git a/api/deepExploration/deepExploration.js b/api/deepExploration/deepExploration.js
index ba4db57..be5cd8b 100644
--- a/api/deepExploration/deepExploration.js
+++ b/api/deepExploration/deepExploration.js
@@ -74,7 +74,7 @@ export const getModel4Second = (data) => {
})
}
-//
+//不搜索时走这个
export const getModeldefault = (data) => {
return http({
method: 'POST',
@@ -84,7 +84,14 @@ export const getModeldefault = (data) => {
}
-
+//k线数据
+export const getData = (data) => {
+ return http({
+ method: 'POST',
+ url: '/api/coze/WorkFlowData',
+ data
+ })
+}
//历史记录列表
export const RecordListApi = (data) => {
diff --git a/pages/deepExploration/MainForceActions.vue b/pages/deepExploration/MainForceActions.vue
index b13fc2c..5ce2647 100644
--- a/pages/deepExploration/MainForceActions.vue
+++ b/pages/deepExploration/MainForceActions.vue
@@ -81,7 +81,8 @@
getModel3Second,
getModel4First,
getModel4Second,
- getModeldefault
+ getModeldefault,
+ getData
} from '/api/deepExploration/deepExploration.js'
import marked from 'marked'; // 引入 marked 库
import hljs from 'highlight.js';
@@ -111,18 +112,11 @@
//搜索股票
const searchStock = () => {
+ htmlContent.value = ''
console.log('搜索参数:', stockName.value);
- if (currentIndex.value == 0) {
- handleModel(0)
- } else if (currentIndex.value == 1) {
- console.log(index);
- handleModel(1)
- } else if (currentIndex.value == 2) {
- console.log(index);
- handleModel(2)
- } else if (currentIndex.value == 3) {
- console.log(index);
- handleModel(3)
+ if (currentIndex.value ) {
+ handleModels()
+ getServerData()
} else {
uni.showToast({
title: '请选择模块',
@@ -133,21 +127,10 @@
}
//点击四大模块
- const handleModel = (index) => {
+ const handleModel = async(index) => {
+ htmlContent.value = ''
currentIndex.value = index
- if (currentIndex.value == 0) {
- console.log(index);
- handleTrack()
- } else if (currentIndex.value == 1) {
- console.log(index);
- handleRadar()
- } else if (currentIndex.value == 2) {
- console.log(index);
- handleDecode()
- } else if (currentIndex.value == 3) {
- console.log(index);
- handleCapitalFlow()
- }
+ await handleModels()
}
const stockName = ref('')
@@ -157,6 +140,7 @@
const recordId = ref('')
const parentId = ref('')
const stockId = ref('')
+ const market = ref('')
const loading = ref(true);
const error = ref('');
@@ -164,67 +148,77 @@
const markdownContent = ref('');
-const renderer = new marked.Renderer();
-renderer.heading = function(text, level) {
- return `
${text}
`;
-};
+ const renderer = new marked.Renderer();
+ renderer.heading = function(text, level) {
+ return `${text}
`;
+ };
// 初始化 marked 配置(支持代码高亮)
-marked.setOptions({
- renderer: new marked.Renderer(),
- highlight: null, // 如果需要代码高亮,可以设置适当的函数
- langPrefix: "language-",
- pedantic: false,
- gfm: true,
- breaks: false,
- sanitize: false,
- smartLists: true,
- smartypants: false,
- xhtml: false,
-});
-
- //点击主力追踪
- const handleTrack = async () => {
+ marked.setOptions({
+ highlight: (code, lang) => {
+ if (lang && hljs.getLanguage(lang)) {
+ return hljs.highlight(code, {
+ language: lang
+ }).value;
+ }
+ return hljs.highlightAuto(code).value;
+ },
+ renderer,
+ breaks: true, // 换行转
+ gfm: true, // 支持GitHub flavored Markdown
+ sanitize: false, // 保留HTML标签(如)
+ });
+
+ //获取模型数据
+ const handleModels = async () => {
try {
- markdownContent.value = '\n## 📊 主力追踪分析:\n\n### 🕵️ 主力行为\n\t1. 📊 该股庄家中长期筹码成本价格为 360.249,短期资金成本价格为 412.577。该股筹码分散,当日筹码成本价格为 444.330。\n\t2. 🔍 近日没有出现主力集中吸筹。\n\t3. 📈 近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。\n\n### 📊 空间维度:\n\t- 📉 预测低一值: 443.092 \n - 📈 预测高一值: 466.458\n\t- 📉 预测低二值: 447.354\n\t- 📈 预测高二值: 462.514\n\tAI智能均线空头排列,当前卖盘小于买盘\n\n### 综合作战\n\t\t\t当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线。\n\t\t\t该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。\n\n---\n*该内容由AI生成,仅供参考,投资有风险,请注意甄别。*\n '
- htmlContent.value = marked.parse(markdownContent.value);
+ // markdownContent.value = '\n## 📊 主力追踪分析:\n\n### 🕵️ 主力行为\n\t1. 📊 该股庄家中长期筹码成本价格为 360.249,短期资金成本价格为 412.577。该股筹码分散,当日筹码成本价格为 444.330。\n\t2. 🔍 近日没有出现主力集中吸筹。\n\t3. 📈 近期主力持仓比例大于散户持仓比例。 当日主力持仓增加。 当日散户持仓减少。\n\n### 📊 空间维度:\n\t- 📉 预测低一值: 443.092 \n - 📈 预测高一值: 466.458\n\t- 📉 预测低二值: 447.354\n\t- 📈 预测高二值: 462.514\n\tAI智能均线空头排列,当前卖盘小于买盘\n\n### 综合作战\n\t\t\t当前股票处于安全区,牵牛绳为红色,出现蓝色推进K线。\n\t\t\t该股整体趋势相对较强,个股正处于推进上涨的关键阶段。若当前持有该股票,建议继续持有,进行持续跟踪。若当前无该股票,建议持续跟踪,等待适当时机再进行介入。\n\n---\n*该内容由AI生成,仅供参考,投资有风险,请注意甄别。*\n '
+ // htmlContent.value = marked.parse(markdownContent.value);
loading.value = true;
- // if(searchName.value){
-
- // }
- // const result = await getModel1First({
- // content: searchName.value,
- // language: "cn",
- // marketList: "hk,cn,usa,my,sg,vi,in,gb",
- // model: 1
- // })
- // console.log('result', result);
- // if (result.code == 200) {
- // stockCode.value = result.data.code
- // stockName.value = result.data.name
- // recordId.value = result.data.recordId
- // parentId.value = result.data.parentId
- // stockId.value = result.data.stockId
- // language.value = result.data.language
- // }else{
- // return
- // }
+ if (searchName.value == '') {
+ console.log('没有搜索',searchName.value);
+ const rresult = await handleDefault()
+ // markdownContent.value = res.data.markdown
+ htmlContent.value = marked.parse(markdownContent.value);
+ }else{
+ console.log('搜索',searchName.value);
+ const result = await getModel1First({
+ content: searchName.value,
+ language: "cn",
+ marketList: "hk,cn,usa,my,sg,vi,in,gb",
+ model: currentIndex.value+1
+ })
+ console.log('result', result);
+ if (result.code == 200) {
+ stockCode.value = result.data.code
+ stockName.value = result.data.name
+ recordId.value = result.data.recordId
+ parentId.value = result.data.parentId
+ stockId.value = result.data.stockId
+ language.value = result.data.language
+ market.value = result.data.market
+ } else {
+ return
+ }
+
+
+ const res = await getModel1Second({
+ language: language.value,
+ recordId: recordId.value,
+ parentId: parentId.value,
+ stockId: stockId.value,
+ token: 'pCtw6AYK0EHAaIexoFHsbZjtsfEAIhcmwkCFm6uKko8VPfMvyDiODL9v9c0veic9fIpQbvT8zN4sH/Si6Q'
+ })
+ if (res.code == 200) {
+ const rawMarkdown = res.data.markdown;
+ const adaptedMarkdown = rawMarkdown.replace(/^### /gm, ''); // 全局替换行首的###
+ markdownContent.value = adaptedMarkdown;
+ // markdownContent.value = res.data.markdown
+ htmlContent.value = marked.parse(markdownContent.value);
+ }
+ console.log('res', res);
+ }
- // const res = await getModel1Second({
- // language: language.value,
- // recordId: recordId.value,
- // parentId: parentId.value,
- // stockId: stockId.value,
- // token: 'pCtw6AYK0EHAaIexoFHsbZjtsfEAIhcmwkCFm6uKko8VPfMvyDiODL9v9c0veic9fIpQbvT8zN4sH/Si6Q'
- // })
- // if (res.code == 200) {
- // const rawMarkdown = res.data.markdown;
- // const adaptedMarkdown = rawMarkdown.replace(/^### /gm, ''); // 全局替换行首的###
- // markdownContent.value = adaptedMarkdown;
- // // markdownContent.value = res.data.markdown
- // htmlContent.value = marked.parse(markdownContent.value);
- // }
- // console.log('res', res);
} catch {
error.value = e.message || '加载失败,请重试';
@@ -233,23 +227,29 @@ marked.setOptions({
}
}
- //点击主力雷达
- const handleRadar = () => {
-
- }
-
- //点击主力解码
- const handleDecode = () => {
-
- }
-
- //点击主力资金流
- const handleCapitalFlow = () => {
-
+ const handleDefault = async () => {
+ const result = await getModeldefault({
+ token: "pCtw6AYK0EHAaIexoFHsbZjtsfEAIhcmwkCFm6uKko8VPfMvyDiODL9v9c0veic9fIpQbvT8zN4sH/Si6Q",
+ model: currentIndex.value+1
+ })
+
+ const rawMarkdown = result.data.markdown;
+ const adaptedMarkdown = rawMarkdown.replace(/^### /gm, ''); // 全局替换行首的###
+ markdownContent.value = adaptedMarkdown;
+ htmlContent.value = marked.parse(markdownContent.value);
}
-const handleDefault = async()=>{
-}
+ const getServerData = async() =>{
+ const result = await getData({
+ market: market.value || '',
+ code: searchName || '',
+ language: "cn",
+ brainPrivilegeState: 1,
+ marketList: "usa.sg.my.hk.cn.can.vi.th.in.gb"
+ })
+
+ console.log('k线数据',result);
+ }
// 1. K线图配置
const opts = ref({
@@ -319,302 +319,302 @@ const handleDefault = async()=>{
const chartData = ref({})
// 获取K线数据函数(直接定义,无需methods)
- const getServerData = () => {
- // 模拟服务器请求延时
- setTimeout(() => {
- const res = {
- "categories": [
- "2025/08/25",
- "2025/08/26",
- "2025/08/27",
- "2025/08/28",
- "2025/08/29",
- "2025/09/01",
- "2025/09/02",
- "2025/09/03",
- "2025/09/04",
- "2025/09/05",
- "2025/09/08",
- "2025/09/09",
- "2025/09/10",
- "2025/09/11",
- "2025/09/12",
- "2025/09/15",
- "2025/09/16",
- "2025/09/17",
- "2025/09/18",
- "2025/09/19",
- "2025/09/22",
- "2025/09/23",
- "2025/09/24",
- "2025/09/25",
- "2025/09/26",
- "2025/09/29",
- "2025/09/30",
- "2025/10/09",
- "2025/10/10",
- "2025/10/13",
- "2025/10/14",
- "2025/10/15",
- "2025/10/16",
- "2025/10/17",
- "2025/10/20",
- "2025/10/21",
- "2025/10/22",
- "2025/10/23",
- "2025/10/24",
- "2025/10/27"
- ],
- series: [{
- "name": "贵州茅台",
- "data": [
- [
- 1470.01,
- 1496.0,
- 1466.0,
- 1499.33
- ],
- [
- 1490.32,
- 1474.23,
- 1480.01,
- 1481.61
- ],
- [
- 1481.88,
- 1484.93,
- 1448.0,
- 1448.0
- ],
- [
- 1447.97,
- 1456.1,
- 1438.77,
- 1446.1
- ],
- [
- 1453.0,
- 1482.58,
- 1452.0,
- 1480.0
- ],
- [
- 1482.2,
- 1488.0,
- 1465.7,
- 1476.1
- ],
- [
- 1478.66,
- 1509.0,
- 1478.0,
- 1491.3
- ],
- [
- 1491.0,
- 1503.5,
- 1466.0,
- 1480.55
- ],
- [
- 1472.0,
- 1479.3,
- 1460.47,
- 1480.66
- ],
- [
- 1471.0,
- 1486.97,
- 1464.0,
- 1483.0
- ],
- [
- 1483.0,
- 1506.44,
- 1477.5,
- 1501.23
- ],
- [
- 1505.0,
- 1509.95,
- 1493.42,
- 1505.0
- ],
- [
- 1506.66,
- 1529.95,
- 1496.0,
- 1522.01
- ],
- [
- 1522.01,
- 1526.02,
- 1508.5,
- 1523.5
- ],
- [
- 1526.0,
- 1538.02,
- 1510.53,
- 1516.0
- ],
- [
- 1515.87,
- 1517.48,
- 1501.5,
- 1515.1
- ],
- [
- 1515.1,
- 1520.99,
- 1496.21,
- 1499.98
- ],
- [
- 1499.99,
- 1510.28,
- 1490.01,
- 1493.0
- ],
- [
- 1492.0,
- 1497.8,
- 1463.5,
- 1467.96
- ],
- [
- 1467.99,
- 1475.5,
- 1457.01,
- 1467.97
- ],
- [
- 1465.09,
- 1467.97,
- 1450.01,
- 1453.35
- ],
- [
- 1450.5,
- 1457.5,
- 1440.0,
- 1447.42
- ],
- [
- 1434.07,
- 1456.78,
- 1434.07,
- 1442.0
- ],
- [
- 1442.83,
- 1445.21,
- 1436.0,
- 1439.0
- ],
- [
- 1441.18,
- 1447.11,
- 1428.01,
- 1435.0
- ],
- [
- 1439.38,
- 1469.99,
- 1435.0,
- 1460.86
- ],
- [
- 1460.0,
- 1460.76,
- 1440.0,
- 1443.99
- ],
- [
- 1436.0,
- 1439.38,
- 1420.0,
- 1436.78
- ],
- [
- 1437.6,
- 1439.94,
- 1427.5,
- 1430.0
- ],
- [
- 1415.7,
- 1422.85,
- 1415.12,
- 1419.2
- ],
- [
- 1429.99,
- 1464.0,
- 1429.99,
- 1451.02
- ],
- [
- 1450.98,
- 1463.0,
- 1445.08,
- 1462.0
- ],
- [
- 1461.92,
- 1484.95,
- 1458.88,
- 1484.91
- ],
- [
- 1483.1,
- 1488.0,
- 1454.03,
- 1455.0
- ],
- [
- 1455.0,
- 1469.5,
- 1454.88,
- 1457.93
- ],
- [
- 1459.0,
- 1469.94,
- 1455.5,
- 1462.26
- ],
- [
- 1462.08,
- 1465.73,
- 1456.0,
- 1458.7
- ],
- [
- 1455.0,
- 1468.8,
- 1447.2,
- 1467.98
- ],
- [
- 1467.95,
- 1478.88,
- 1449.34,
- 1450.0
- ],
- [
- 1440.0,
- 1452.49,
- 1435.99,
- 1440.41
- ]
- ],
- }]
- }
- // 给响应式变量赋值(需修改.value)
- chartData.value = JSON.parse(JSON.stringify(res))
- }, 500)
- }
+ // const getServerData = () => {
+ // // 模拟服务器请求延时
+ // setTimeout(() => {
+ // const res = {
+ // "categories": [
+ // "2025/08/25",
+ // "2025/08/26",
+ // "2025/08/27",
+ // "2025/08/28",
+ // "2025/08/29",
+ // "2025/09/01",
+ // "2025/09/02",
+ // "2025/09/03",
+ // "2025/09/04",
+ // "2025/09/05",
+ // "2025/09/08",
+ // "2025/09/09",
+ // "2025/09/10",
+ // "2025/09/11",
+ // "2025/09/12",
+ // "2025/09/15",
+ // "2025/09/16",
+ // "2025/09/17",
+ // "2025/09/18",
+ // "2025/09/19",
+ // "2025/09/22",
+ // "2025/09/23",
+ // "2025/09/24",
+ // "2025/09/25",
+ // "2025/09/26",
+ // "2025/09/29",
+ // "2025/09/30",
+ // "2025/10/09",
+ // "2025/10/10",
+ // "2025/10/13",
+ // "2025/10/14",
+ // "2025/10/15",
+ // "2025/10/16",
+ // "2025/10/17",
+ // "2025/10/20",
+ // "2025/10/21",
+ // "2025/10/22",
+ // "2025/10/23",
+ // "2025/10/24",
+ // "2025/10/27"
+ // ],
+ // series: [{
+ // "name": "贵州茅台",
+ // "data": [
+ // [
+ // 1470.01,
+ // 1496.0,
+ // 1466.0,
+ // 1499.33
+ // ],
+ // [
+ // 1490.32,
+ // 1474.23,
+ // 1480.01,
+ // 1481.61
+ // ],
+ // [
+ // 1481.88,
+ // 1484.93,
+ // 1448.0,
+ // 1448.0
+ // ],
+ // [
+ // 1447.97,
+ // 1456.1,
+ // 1438.77,
+ // 1446.1
+ // ],
+ // [
+ // 1453.0,
+ // 1482.58,
+ // 1452.0,
+ // 1480.0
+ // ],
+ // [
+ // 1482.2,
+ // 1488.0,
+ // 1465.7,
+ // 1476.1
+ // ],
+ // [
+ // 1478.66,
+ // 1509.0,
+ // 1478.0,
+ // 1491.3
+ // ],
+ // [
+ // 1491.0,
+ // 1503.5,
+ // 1466.0,
+ // 1480.55
+ // ],
+ // [
+ // 1472.0,
+ // 1479.3,
+ // 1460.47,
+ // 1480.66
+ // ],
+ // [
+ // 1471.0,
+ // 1486.97,
+ // 1464.0,
+ // 1483.0
+ // ],
+ // [
+ // 1483.0,
+ // 1506.44,
+ // 1477.5,
+ // 1501.23
+ // ],
+ // [
+ // 1505.0,
+ // 1509.95,
+ // 1493.42,
+ // 1505.0
+ // ],
+ // [
+ // 1506.66,
+ // 1529.95,
+ // 1496.0,
+ // 1522.01
+ // ],
+ // [
+ // 1522.01,
+ // 1526.02,
+ // 1508.5,
+ // 1523.5
+ // ],
+ // [
+ // 1526.0,
+ // 1538.02,
+ // 1510.53,
+ // 1516.0
+ // ],
+ // [
+ // 1515.87,
+ // 1517.48,
+ // 1501.5,
+ // 1515.1
+ // ],
+ // [
+ // 1515.1,
+ // 1520.99,
+ // 1496.21,
+ // 1499.98
+ // ],
+ // [
+ // 1499.99,
+ // 1510.28,
+ // 1490.01,
+ // 1493.0
+ // ],
+ // [
+ // 1492.0,
+ // 1497.8,
+ // 1463.5,
+ // 1467.96
+ // ],
+ // [
+ // 1467.99,
+ // 1475.5,
+ // 1457.01,
+ // 1467.97
+ // ],
+ // [
+ // 1465.09,
+ // 1467.97,
+ // 1450.01,
+ // 1453.35
+ // ],
+ // [
+ // 1450.5,
+ // 1457.5,
+ // 1440.0,
+ // 1447.42
+ // ],
+ // [
+ // 1434.07,
+ // 1456.78,
+ // 1434.07,
+ // 1442.0
+ // ],
+ // [
+ // 1442.83,
+ // 1445.21,
+ // 1436.0,
+ // 1439.0
+ // ],
+ // [
+ // 1441.18,
+ // 1447.11,
+ // 1428.01,
+ // 1435.0
+ // ],
+ // [
+ // 1439.38,
+ // 1469.99,
+ // 1435.0,
+ // 1460.86
+ // ],
+ // [
+ // 1460.0,
+ // 1460.76,
+ // 1440.0,
+ // 1443.99
+ // ],
+ // [
+ // 1436.0,
+ // 1439.38,
+ // 1420.0,
+ // 1436.78
+ // ],
+ // [
+ // 1437.6,
+ // 1439.94,
+ // 1427.5,
+ // 1430.0
+ // ],
+ // [
+ // 1415.7,
+ // 1422.85,
+ // 1415.12,
+ // 1419.2
+ // ],
+ // [
+ // 1429.99,
+ // 1464.0,
+ // 1429.99,
+ // 1451.02
+ // ],
+ // [
+ // 1450.98,
+ // 1463.0,
+ // 1445.08,
+ // 1462.0
+ // ],
+ // [
+ // 1461.92,
+ // 1484.95,
+ // 1458.88,
+ // 1484.91
+ // ],
+ // [
+ // 1483.1,
+ // 1488.0,
+ // 1454.03,
+ // 1455.0
+ // ],
+ // [
+ // 1455.0,
+ // 1469.5,
+ // 1454.88,
+ // 1457.93
+ // ],
+ // [
+ // 1459.0,
+ // 1469.94,
+ // 1455.5,
+ // 1462.26
+ // ],
+ // [
+ // 1462.08,
+ // 1465.73,
+ // 1456.0,
+ // 1458.7
+ // ],
+ // [
+ // 1455.0,
+ // 1468.8,
+ // 1447.2,
+ // 1467.98
+ // ],
+ // [
+ // 1467.95,
+ // 1478.88,
+ // 1449.34,
+ // 1450.0
+ // ],
+ // [
+ // 1440.0,
+ // 1452.49,
+ // 1435.99,
+ // 1440.41
+ // ]
+ // ],
+ // }]
+ // }
+ // // 给响应式变量赋值(需修改.value)
+ // chartData.value = JSON.parse(JSON.stringify(res))
+ // }, 500)
+ // }
// 生命周期钩子:组件挂载后执行(替代onReady)
onMounted(() => {
diff --git a/pages/marketSituation/marketCondition.vue b/pages/marketSituation/marketCondition.vue
index 412e141..b244d26 100644
--- a/pages/marketSituation/marketCondition.vue
+++ b/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);
diff --git a/pages/marketSituation/marketOverview.vue b/pages/marketSituation/marketOverview.vue
index 66fb8ba..b9da06d 100644
--- a/pages/marketSituation/marketOverview.vue
+++ b/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;
}
}