|
@@ -1,5 +1,4 @@
|
|
|
<script setup name="prepare">
|
|
|
-import searchCop from './components/search.vue'
|
|
|
import excelCop from '@/components/excel.vue'
|
|
|
import treeCop from '@/components/tree.vue'
|
|
|
import SubmitBtn from '@/components/SubmitBtn.vue'
|
|
@@ -12,130 +11,19 @@ import CurrentScatterChart from './components/current-scatter-chart.vue'
|
|
|
// import tableRes from '@/data/table.json'
|
|
|
// import areaDataRes from '@/data/areaData.json'
|
|
|
/**配置参数 */
|
|
|
-const treeHeight = ref(window.innerHeight - 200 + 'px') //tree高度
|
|
|
-const excelHeight = ref(window.innerHeight - 200 + 'px') //excel高度
|
|
|
-const tableHeight = ref(window.innerHeight - 200 + 'px')
|
|
|
+const treeHeight = ref(window.innerHeight - 120 + 'px') //tree高度
|
|
|
+const excelHeight = ref(window.innerHeight - 120 + 'px') //excel高度
|
|
|
+const tableHeight = ref(window.innerHeight - 120 + 'px')
|
|
|
/**excel 开始 */
|
|
|
const excelCheckboxShow = ref(false)
|
|
|
const excelCheckIds = ref([])
|
|
|
const excelList = ref([])
|
|
|
const funExcelChange = async (obj) => { //点击excel项时
|
|
|
return false
|
|
|
- isChartArea.value = false
|
|
|
- let res = null
|
|
|
- let chartRes = {
|
|
|
- scatterhs: [[]],
|
|
|
- scatterls: [[]],
|
|
|
- sjgl: [[]],
|
|
|
- llgl: [[]],
|
|
|
- cpz: [[]]
|
|
|
- }
|
|
|
- let poiRes = null
|
|
|
- let chartResponse = null
|
|
|
- if (obj.type === 'fitting') {
|
|
|
- activeTab.value = '2'
|
|
|
- res = await request.get('/power/fitting/show', { params: { id: obj.id } })
|
|
|
- // res = tableRes
|
|
|
- // chartResponse = dotRes
|
|
|
- chartResponse = await request.get('/power/fitting/curve', { params: { id: obj.id, p: 1 } })
|
|
|
- poiRes = await request.get('/power/fitting/curve/ratio', {params: {id: obj.id}})
|
|
|
- // poiRes = areaDataRes
|
|
|
- }
|
|
|
-
|
|
|
- // markDot
|
|
|
- if(poiRes && poiRes.code=== 200){
|
|
|
- markDot.pcl5 = poiRes.data.pcl5
|
|
|
- markDot.pcl10 = poiRes.data.pcl10
|
|
|
- markDot.pcl12 = poiRes.data.pcl12
|
|
|
- markDot.pcl25 = poiRes.data.pcl25
|
|
|
- }
|
|
|
-
|
|
|
- if (chartResponse && chartResponse.code === 200) {
|
|
|
- chartRes = chartResponse.data
|
|
|
- avgObj.cpavg = Number(chartRes.obj.cpavg).toFixed(2)
|
|
|
- avgObj.frequency = Number(chartRes.obj.frequency).toFixed(2)
|
|
|
- avgObj.pcratio = Number(chartRes.obj.pcratio).toFixed(2)
|
|
|
- dataSet.value = JSON.stringify([
|
|
|
- {
|
|
|
- source: chartRes.wyd
|
|
|
- // source: chartRes.scatterls
|
|
|
- },
|
|
|
- {
|
|
|
- source: chartRes.yyd
|
|
|
- // source: chartRes.scatterhs
|
|
|
- }
|
|
|
- ])
|
|
|
- const color = ["#1C99FF", "#FF8700", "#3D54BE", "#fa8c16", "#1DA0D7", "#DD5044"]
|
|
|
- seriesData.value = [
|
|
|
- {
|
|
|
- name: "拟合功率",
|
|
|
- type: "line",
|
|
|
- symbol: "line", //设定为实心点
|
|
|
- symbolSize: 0, //设定实心点的大小
|
|
|
- smooth: true, //这个是把线变成曲线
|
|
|
- data: chartRes.sjgl,
|
|
|
- xAxisIndex: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- name: "保证功率",
|
|
|
- type: "line",
|
|
|
- symbol: "line", //设定为实心点
|
|
|
- symbolSize: 0, //设定实心点的大小
|
|
|
- smooth: true, //这个是把线变成曲线
|
|
|
- data: chartRes.llgl,
|
|
|
- xAxisIndex: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- type: 'effectScatter',
|
|
|
- showEffectOn: "emphasis",
|
|
|
- rippleEffect: {
|
|
|
- scale: 1
|
|
|
- },
|
|
|
- name: '无用点',
|
|
|
- symbolSize: (data) => {
|
|
|
- return data.s ? data.s > 10 ? 10 : data.s : 4
|
|
|
- },
|
|
|
- datasetIndex: 0,
|
|
|
- encode: {
|
|
|
- x: 'x',
|
|
|
- y: 'y'
|
|
|
- },
|
|
|
- xAxisIndex: 0,
|
|
|
- yAxisIndex: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- type: 'effectScatter',
|
|
|
- showEffectOn: "emphasis",
|
|
|
- rippleEffect: {
|
|
|
- scale: 1
|
|
|
- },
|
|
|
- name: '有用点',
|
|
|
- symbolSize: (data) => {
|
|
|
- return data.s ? data.s > 10 ? 10 : data.s : 4
|
|
|
- },
|
|
|
- datasetIndex: 1,
|
|
|
- encode: {
|
|
|
- x: 'x',
|
|
|
- y: 'y'
|
|
|
- },
|
|
|
- xAxisIndex: 0,
|
|
|
- yAxisIndex: 0,
|
|
|
- },
|
|
|
- {
|
|
|
- name: "Cp值",
|
|
|
- type: "line",
|
|
|
- symbol: "line", //设定为实心点
|
|
|
- symbolSize: 0, //设定实心点的大小
|
|
|
- smooth: true, //这个是把线变成曲线
|
|
|
- data: chartRes.cpz,
|
|
|
- xAxisIndex: 0,
|
|
|
- yAxisIndex: 1,
|
|
|
- },
|
|
|
- ]
|
|
|
- }
|
|
|
}
|
|
|
const funExcelCheckChange = ({ checkArr, data }) => { //bug
|
|
|
excelCheckIds.value = checkArr
|
|
|
+ funSubmit()
|
|
|
}
|
|
|
/**prepare tree 开始 */
|
|
|
const treeData = ref([])
|
|
@@ -161,6 +49,7 @@ const funRepeatMap = (arr, type='fitting') => {
|
|
|
const funGetTree = async () => {
|
|
|
const res = await request.get("/power/fitting/tree")
|
|
|
treeData.value = funRepeatMap(res.data)
|
|
|
+ excelList.value = []
|
|
|
}
|
|
|
const funCurrentChange = ({ current, currentNode }) => {
|
|
|
excelCheckboxShow.value = true
|
|
@@ -195,22 +84,21 @@ const funTreeCheckChange = ({ current, checkedNodes, checkedKeys, halfCheckedNod
|
|
|
}
|
|
|
}
|
|
|
excelCheckIds.value = checkIds
|
|
|
+ funSubmit()
|
|
|
}
|
|
|
|
|
|
/**search 开始 */
|
|
|
-const funSubmit = async (query) => {
|
|
|
+const funSubmit = async () => {
|
|
|
if (!excelCheckIds.value.length) {
|
|
|
ElMessage.error('请勾选要执行的项')
|
|
|
return false
|
|
|
}
|
|
|
const params = {
|
|
|
- ...query,
|
|
|
ids: excelCheckIds.value.join(',')
|
|
|
}
|
|
|
const res = await request.get('/power/fitting/line', { params: params })
|
|
|
if (res.code === 200) {
|
|
|
seriesData.value = []
|
|
|
- console.log(res)
|
|
|
if(res.data.bzgl){
|
|
|
seriesData.value.push(
|
|
|
{
|
|
@@ -315,6 +203,9 @@ const funChartSelect = async (batch) => {
|
|
|
}
|
|
|
const funChartArea = () => {
|
|
|
if (seriesData.value?.length) {
|
|
|
+ // 获取数据后 展示dialog table 数据
|
|
|
+ wtDialog.value = true
|
|
|
+ wtData.value = []
|
|
|
if (!isChartArea.value) {
|
|
|
// 请求一下
|
|
|
seriesData.value[0] = {
|
|
@@ -422,13 +313,13 @@ const wtTab = ref('table')
|
|
|
// funGetProcessTree()
|
|
|
/**mounted */
|
|
|
onMounted(() => {
|
|
|
- tableHeight.value = window.innerHeight - 200 + 'px'
|
|
|
- excelHeight.value = window.innerHeight - 200 + 'px'
|
|
|
- treeHeight.value = window.innerHeight - 200 + 'px'
|
|
|
+ tableHeight.value = window.innerHeight - 120 + 'px'
|
|
|
+ excelHeight.value = window.innerHeight - 120 + 'px'
|
|
|
+ treeHeight.value = window.innerHeight - 120 + 'px'
|
|
|
window.addEventListener('resize', () => {
|
|
|
- tableHeight.value = window.innerHeight - 200 + 'px'
|
|
|
- excelHeight.value = window.innerHeight - 200 + 'px'
|
|
|
- treeHeight.value = window.innerHeight - 200 + 'px'
|
|
|
+ tableHeight.value = window.innerHeight - 120 + 'px'
|
|
|
+ excelHeight.value = window.innerHeight - 120 + 'px'
|
|
|
+ treeHeight.value = window.innerHeight - 120 + 'px'
|
|
|
})
|
|
|
/**test */
|
|
|
// funExcelChange({
|
|
@@ -444,52 +335,40 @@ onActivated(() => {
|
|
|
</script>
|
|
|
<template>
|
|
|
<div class="bg-white py-[10px] px-[10px]">
|
|
|
- <search-cop
|
|
|
- class="mb-[20px] shadow rounded-[6px] shadow-blue-500"
|
|
|
- @submit="funSubmit"
|
|
|
- >
|
|
|
- </search-cop>
|
|
|
- <el-dialog v-model="wtDialog" title="风机功率点位">
|
|
|
- <el-tabs v-model="wtTab">
|
|
|
- <el-tab-pane label="数据" name="table">
|
|
|
- <el-table :data="wtData" row-key="id" :max-height="550">
|
|
|
- <el-table-column property="wtId" align="center" label="风机" />
|
|
|
- <el-table-column
|
|
|
- property="time"
|
|
|
- sortable
|
|
|
- :width="160"
|
|
|
- align="center"
|
|
|
- label="时间"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- property="speed"
|
|
|
- sortable
|
|
|
- align="center"
|
|
|
- label="风速(m/s)"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- property="power"
|
|
|
- sortable
|
|
|
- align="center"
|
|
|
- label="功率(kw)"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- property="rr"
|
|
|
- sortable
|
|
|
- align="center"
|
|
|
- label="转速"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- property="filter"
|
|
|
- sortable
|
|
|
- align="center"
|
|
|
- label="是否有用点"
|
|
|
- />
|
|
|
- </el-table>
|
|
|
- </el-tab-pane>
|
|
|
- <el-tab-pane label="故障" name="problem" disabled> </el-tab-pane>
|
|
|
- <el-tab-pane label="预警" name="warning" disabled> </el-tab-pane>
|
|
|
- </el-tabs>
|
|
|
+ <el-dialog draggable v-model="wtDialog" title="曲线偏差率">
|
|
|
+ <el-table :data="wtData" row-key="id" :max-height="550">
|
|
|
+ <el-table-column property="wtId" align="center" label="风机" />
|
|
|
+ <el-table-column
|
|
|
+ property="speed"
|
|
|
+ sortable
|
|
|
+ align="center"
|
|
|
+ label="3~5m"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ property="power"
|
|
|
+ sortable
|
|
|
+ align="center"
|
|
|
+ label="5~10m"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ property="rr"
|
|
|
+ sortable
|
|
|
+ align="center"
|
|
|
+ label="10~12m"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ property="filter"
|
|
|
+ sortable
|
|
|
+ align="center"
|
|
|
+ label="12~25m"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ property="filter"
|
|
|
+ sortable
|
|
|
+ align="center"
|
|
|
+ label="3~25m"
|
|
|
+ />
|
|
|
+ </el-table>
|
|
|
</el-dialog>
|
|
|
<div
|
|
|
class="
|