|
@@ -1,4 +1,4 @@
|
|
|
-<script setup name="rateAnalysis">
|
|
|
+<script setup name="bladeAnalysis">
|
|
|
import excelCop from '@/components/excel.vue'
|
|
|
import treeCop from '@/components/tree.vue'
|
|
|
import barChartCop from './components/barChart.vue'
|
|
@@ -126,8 +126,8 @@ const funCurrentChange = ({ current, currentNode }) => {
|
|
|
/**chart */
|
|
|
let chartId = 1
|
|
|
const powerproductionNum = ref(0)
|
|
|
-const avgSpeed = ref('')
|
|
|
-const avgMrxs = ref('')
|
|
|
+const avgBwAngle = ref('')
|
|
|
+const avgTjAngle = ref('')
|
|
|
const windName = ref('')
|
|
|
/**submit */
|
|
|
const funSubmit = async () => {
|
|
@@ -144,40 +144,24 @@ const funSubmit = async () => {
|
|
|
if (tempRes.code === 200) {
|
|
|
console.log('123',tempRes);
|
|
|
const xAxisData = [],xAxisData1 = [], barData1 = [], lineData1 = []
|
|
|
- let avgSpeedSum = 0, avgMrxsSum = 1
|
|
|
+ let avgBwAngleSum = 0, avgTjAngleSum = 1
|
|
|
|
|
|
const chart = tempRes.data
|
|
|
if(chart.bw){
|
|
|
-
|
|
|
-
|
|
|
chart.bw.forEach((ele)=>{
|
|
|
xAxisData.push(ele.time)
|
|
|
barData1.push(ele.value)
|
|
|
- // lineData1.push(chart.tj.value)
|
|
|
- avgSpeedSum += ele.value
|
|
|
+ avgBwAngleSum += ele.value
|
|
|
})
|
|
|
chart.tj.forEach((ele)=>{
|
|
|
- // ele.value.toFixed(2)
|
|
|
- // let newArr = arr.map(num => num.toFixed(2));
|
|
|
xAxisData1.push(ele.time)
|
|
|
- // barData1.push(ele.value)
|
|
|
lineData1.push(ele.value)
|
|
|
- // lineData1.value.toFixed(2)
|
|
|
- avgMrxsSum += ele.value
|
|
|
+ avgTjAngleSum += ele.value
|
|
|
})
|
|
|
-
|
|
|
- // xAxisData.push(chart.bw[value])
|
|
|
- // xAxisData1.push(chart.tj[value])
|
|
|
- // if (chart.bw) {
|
|
|
- // barData1.push(chart.bw.value)
|
|
|
- // lineData1.push(chart.tj.value)
|
|
|
- // avgSpeedSum += chart.currentData.avgspeed
|
|
|
- // avgMrxsSum += chart.currentData.mrxs
|
|
|
- // }
|
|
|
|
|
|
- avgSpeed.value = (avgSpeedSum / barData1.length).toFixed(2)+'度'
|
|
|
- avgMrxs.value = (avgMrxsSum / lineData1.length).toFixed(2)+'度'
|
|
|
- console.log('12',avgMrxs.value);
|
|
|
+ avgBwAngle.value = (avgBwAngleSum / barData1.length).toFixed(2)+'度'
|
|
|
+ avgTjAngle.value = (avgTjAngleSum / lineData1.length).toFixed(2)+'度'
|
|
|
+ console.log('12',avgTjAngle.value);
|
|
|
windName.value = chart.wtId
|
|
|
barxAxis.data = xAxisData
|
|
|
linexAxis.data = xAxisData1
|
|
@@ -217,7 +201,7 @@ const lineyAxis = reactive({
|
|
|
}
|
|
|
})
|
|
|
const lineSeries = reactive([{
|
|
|
- name: "停机",
|
|
|
+ name: "停机桨距角",
|
|
|
type: "line",
|
|
|
data: [],
|
|
|
symbol: "line", //设定为实心点
|
|
@@ -312,7 +296,7 @@ const baryAxis = reactive({
|
|
|
}
|
|
|
})
|
|
|
const barSeries = reactive([{
|
|
|
- name: "并网",
|
|
|
+ name: "并网桨距角",
|
|
|
type: "line",
|
|
|
symbol: "line", //设定为实心点
|
|
|
symbolSize: 0, //设定实心点的大小
|
|
@@ -364,125 +348,6 @@ const funCheckAll = () => {
|
|
|
}
|
|
|
}
|
|
|
const chartExcelList = ref([]) //dialog 下拉项
|
|
|
-const funActCop = (obj, type) => {
|
|
|
- switch(type){
|
|
|
- case 'barChartCop':
|
|
|
- actChartName.value = 'barChartCop'
|
|
|
- obj.actCop = shallowRef(barChartCop)
|
|
|
- actDiaTitle.value = '风速'
|
|
|
- break
|
|
|
- case 'lineChartCop':
|
|
|
- actChartName.value = 'lineChartCop'
|
|
|
- obj.actCop = shallowRef(barChartCop)
|
|
|
- actDiaTitle.value = '毛容量系数'
|
|
|
- break
|
|
|
- // case 'CurrentScatterChartCop':
|
|
|
- // actChartName.value = 'CurrentScatterChartCop'
|
|
|
- // obj.actCop = shallowRef(CurrentScatte // console.log(res)rChartCop)
|
|
|
- // actDiaTitle.value = '静态偏航对风分析图'
|
|
|
- // break
|
|
|
- }
|
|
|
- obj.isBrush = false
|
|
|
- obj.id = chartId
|
|
|
- chartId ++
|
|
|
- dialog.value = true
|
|
|
- actCopListBak.value = []
|
|
|
- nextTick(() => {
|
|
|
- actCopList.value = [obj]
|
|
|
- })
|
|
|
-}
|
|
|
-// const funDiaSubmit = async () => {
|
|
|
-// let url = ''
|
|
|
-// switch(actChartName.value){
|
|
|
-// case 'barChartCop':
|
|
|
-// url = '/wind/avg/speed'
|
|
|
-// break
|
|
|
-// case 'lineChartCop':
|
|
|
-// url = '/wind/avg/speed'
|
|
|
-// break
|
|
|
-// // case 'CurrentScatterChartCop':
|
|
|
-// // url = '' //暂无接口
|
|
|
-// // break
|
|
|
-// }
|
|
|
-// if(url){
|
|
|
-// const res = await request.get(url, {
|
|
|
-// params: {
|
|
|
-// ids: queryForm.checkIds.join(','),
|
|
|
-// mode: 0
|
|
|
-// }
|
|
|
-// })
|
|
|
-// if(res.code===200){
|
|
|
-// actCopList.value = []
|
|
|
-// actCopListBak.value = [] //清空备份
|
|
|
-// if(res.data?.length){
|
|
|
-// for(const chart of res.data){
|
|
|
-// chart.currentData.sort((a,b) => {
|
|
|
-// return new Date(a.time).getTime() - new Date(b.time).getTime()
|
|
|
-// })
|
|
|
-// chart.preData.sort((a,b) => {
|
|
|
-// return new Date(a.time).getTime() - new Date(b.time).getTime()
|
|
|
-// })
|
|
|
-// const xAxisData = [], barData1 = [], barData2 = [], lineData1 = [], lineData2 = []
|
|
|
-// let avgSpeedSum = 0, avgMrxsSum = 0
|
|
|
-// let avgSpeedDesc = '', avgMrxsDesc = ''
|
|
|
-// for(const current of chart.currentData){
|
|
|
-// xAxisData.push(current.time)
|
|
|
-// barData1.push(current.avgspeed)
|
|
|
-// avgSpeedSum += current.avgspeed
|
|
|
-// avgMrxsSum += current.mrxs
|
|
|
-// lineData1.push((current.mrxs*100).toFixed(2))
|
|
|
-// }
|
|
|
-// for(const current of chart.preData){
|
|
|
-// barData2.push(current.avgspeed)
|
|
|
-// lineData2.push((current.mrxs*100).toFixed(2))
|
|
|
-// }
|
|
|
-// avgSpeedDesc = (avgSpeedSum / barData1.length).toFixed(2)+' m/s'
|
|
|
-// avgMrxsDesc = (avgMrxsSum / lineData1.length * 100).toFixed(2)+' %'
|
|
|
-// if(actChartName.value==='barChartCop'){
|
|
|
-// actCopList.value.push({
|
|
|
-// id: chartId,
|
|
|
-// isBrush: false,
|
|
|
-// actCop: shallowRef(barChartCop),
|
|
|
-// // title: chart.windturbine,
|
|
|
-// subtext: `${chart.wtId} 平均角度 ${avgSpeedDesc}`,
|
|
|
-// xAxis: {
|
|
|
-// ...barxAxis,
|
|
|
-// data: xAxisData
|
|
|
-// },
|
|
|
-// yAxis: baryAxis,
|
|
|
-// series: [{
|
|
|
-// ...barSeries[0],
|
|
|
-// data: barData1
|
|
|
-// }]
|
|
|
-// })
|
|
|
-// chartId++
|
|
|
-// }
|
|
|
-// if(actChartName.value === 'lineChartCop'){
|
|
|
-// actCopList.value.push({
|
|
|
-// id: chartId,
|
|
|
-// isBrush: false,
|
|
|
-// actCop: shallowRef(barChartCop),
|
|
|
-// // title: chart.windturbine,
|
|
|
-// subtext: `${chart.wtId} 平均角度 ${avgMrxsDesc}`,
|
|
|
-// xAxis: {
|
|
|
-// ...linexAxis,
|
|
|
-// data: xAxisData
|
|
|
-// },
|
|
|
-// yAxis: lineyAxis,
|
|
|
-// series: [{
|
|
|
-// ...lineSeries[0],
|
|
|
-// data: lineData1
|
|
|
-// }]
|
|
|
-
|
|
|
-// })
|
|
|
-// chartId++
|
|
|
-// }
|
|
|
-// }
|
|
|
-// actCopListBak.value = actCopList.value
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
const funDiaExport = () => {
|
|
|
exportLoading.value = true
|
|
|
tools.scrollToPDF(diaPanelRef.value, actDiaTitle.value, () => {
|
|
@@ -564,7 +429,7 @@ onActivated(() => {
|
|
|
</el-icon> -->
|
|
|
<!-- <bar-chart-cop width="100%" height="100%" :subtext="`月平均风速`" :xAxis="barxAxis" :yAxis="baryAxis" :series="barSeries"></bar-chart-cop> -->
|
|
|
<!-- </el-icon> -->
|
|
|
- <bar-chart-cop width="100%" height="100%" :subtext="`平均角度 ${avgSpeed}`" :xAxis="barxAxis" :yAxis="baryAxis" :series="barSeries"></bar-chart-cop>
|
|
|
+ <bar-chart-cop width="100%" height="100%" :subtext="`平均角度: ${avgBwAngle}`" :xAxis="barxAxis" :yAxis="baryAxis" :series="barSeries"></bar-chart-cop>
|
|
|
</div>
|
|
|
<div class="w-[100%] h-[49%] flex flex-col items-end shadow rounded-[6px] shadow-blue-500">
|
|
|
<!-- <el-icon class="mr-[10px] mt-[10px] cursor-pointer" size="18"
|
|
@@ -574,7 +439,7 @@ onActivated(() => {
|
|
|
</el-icon> -->
|
|
|
<!-- <bar-chart-cop width="100%" height="100%" :subtext="`毛容量系数`" :xAxis="linexAxis" :yAxis="lineyAxis" :series="lineSeries"></bar-chart-cop> -->
|
|
|
<!-- </el-icon> -->
|
|
|
- <bar-chart-cop width="100%" height="100%" :subtext="`平均角度 ${avgMrxs=='Infinity度'?0:avgMrxs}`" :xAxis="linexAxis" :yAxis="lineyAxis" :series="lineSeries"></bar-chart-cop>
|
|
|
+ <bar-chart-cop width="100%" height="100%" :subtext="`平均角度: ${avgTjAngle=='Infinity度'?0:avgTjAngle}`" :xAxis="linexAxis" :yAxis="lineyAxis" :series="lineSeries"></bar-chart-cop>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-col>
|