Browse Source

请求数据、情绪量能转化器组件

aiEmotion
pengmeng 4 weeks ago
parent
commit
d7d11132a3
  1. 5
      src/router/index.js
  2. 120
      src/views/components/emoEnergyConverter.vue
  3. 31
      src/views/emotionsEcharts.vue

5
src/router/index.js

@ -30,6 +30,11 @@ const routes = [
path: '/Feedback',
name: 'Feedback',
component: () => import('@/views/Feedback.vue'),
},
{
path: '/emotionsEcharts',
name: 'emotionsEcharts',
component: () => import('@/views/emotionsEcharts.vue'),
}
]
// 创建路由实例

120
src/views/components/emoEnergyConverter.vue

@ -0,0 +1,120 @@
<template>
<div ref="qxnlzhqEchartsRef" id="qxnlzhqEcharts"></div>
</template>
<script setup>
import { ref, onMounted, onBeforeUnmount, toRef } from 'vue';
import * as echarts from 'echarts';
defineExpose({initQXNLZHEcharts})
const qxnlzhqEchartsRef = ref(null);
let qxnlzhqEchartsInstance = null;
const data = ref({
echartsData:{}
})
let {
echartsData
} = toRef(data.value)
function initQXNLZHEcharts(kline, qxnlzhqData) {
console.log('kline', kline)
console.log('qxnlzhqData', qxnlzhqData)
let mixData = []
kline.forEach(element => {
let date = element[0]
let value = [element[1],element[2],element[3],element[4]]
mixData.push({
date,
value
})
});
console.log('mixData---',mixData)
//
qxnlzhqEchartsInstance = echarts.init(qxnlzhqEchartsRef.value);
//
const option = {
xAxis: {
type: 'category',
data: mixData.map(item => item.date),
axisLabel: {
rotate: 45, // 45
}
},
yAxis: {
scale: true,
splitLine: {
show: false
},
axisLabel: {
// formatter: '{value}'
}
},
series: [{
type: 'candlestick',
data: mixData.map(item => item.value),
itemStyle: {
// // 线 >
// color: '#ff0783', // 线
// borderColor: '#ff0783',
// color0: 'transparent', // 线
// borderColor0: '#ff0783',
// // 线 <
// color: '#008080', // 线绿
// borderColor: '#008080',
// color0: '#008080', // 线
// borderColor0: '#008080',
//
// emphasis: {
// color: '#ff6666', // 线
// borderColor: '#ff6666',
// color0: 'rgba(255,102,102,0.3)', // 线
// borderColor0: '#ff6666',
// color: '#66cc99', // 线
// borderColor: '#66cc99',
// color0: '#66cc99',
// borderColor0: '#66cc99'
// }
normal: {
// 线 >
color: '#ef232a', // 线
color0: '#14b143', // 线
borderColor: '#ef232a', // 线
borderColor0: '#14b143', // 线绿
// opacity
opacity: function(params) {
// > 线
return params.data[2] > params.data[1] ? 0 : 1;
}
}
}
}],
grid: {
left: '3%',
right: '4%',
bottom: '4%', // dataZoom
containLabel: true
}
};
//
qxnlzhqEchartsInstance.setOption(option);
}
onBeforeUnmount(() => {
//
if (qxnlzhqEchartsInstance) {
qxnlzhqEchartsInstance.dispose();
}
});
</script>
<style scoped>
#qxnlzhqEcharts{
width: 100%;
height: 600px;
border: 1px solid red;
}
</style>

31
src/views/emotionsEcharts.vue

@ -0,0 +1,31 @@
<template>
AI情绪大模型
<emoEnergyConverter ref="emoEnergyConverterRef"></emoEnergyConverter>
</template>
<script setup>
import emoEnergyConverter from '@/views/components/emoEnergyConverter.vue'
import { ref, onMounted, onBeforeUnmount, toRef } from 'vue';
import axios from "axios";
const emoEnergyConverterRef = ref(null)
onMounted(()=>{
axios({
method: "post",//
url: 'http://39.101.133.168:8828/link/api/aiEmotion/client/getAiEmotionData',//
data: {
"token": "9ior41AF0xTIbIG2pRnnbZi0+fEeMx8pywnIlrmTwo5FbqJ9lWrSWOxp9MkpKiNtedtUafqvzIwpFKrwuMs",
"market": "my",
"code": "1295",
"language": "cn"
},//
headers: {
'content-type': 'application/json'
},//
}).then((res) => {
nextTick(()=>{
emoEnergyConverterRef.value.initQXNLZHEcharts(res.data.data.KLine20, res.data.data.QXNLZHQ)
})
})
})
</script>
Loading…
Cancel
Save