From 93b7a9ed4d6cb3d4c07b8d2dc1d26ca5f3ba588d Mon Sep 17 00:00:00 2001 From: zhujiyan <17812234322@163.com> Date: Tue, 23 Jul 2024 17:28:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=9B=91=E6=8E=A7=E4=BA=8C?= =?UTF-8?q?=E7=BA=A7=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/cs-device-boot/EquipmentDelivery.ts | 5 +- .../device/control/analysisList/index.vue | 87 +++ src/views/govern/device/control/index.vue | 99 ++- .../control/offLineDataImport/index.vue | 77 +- .../tabs/components/harmonicSpectrum.vue | 535 ++++++++++++- .../control/tabs/components/realtrend.vue | 3 +- .../control/tabs/components/recordwoves.vue | 1 + .../control/tabs/components/tableInfo.vue | 122 --- .../tabs/components/waveFormAnalysis.vue | 576 ++++++++++++++ .../govern/device/control/tabs/event.vue | 94 ++- .../govern/device/control/tabs/realtime.vue | 653 +--------------- .../govern/device/control/tabs/trend.vue | 705 +++++++++++++++++- src/views/govern/device/planData/index.vue | 10 +- 13 files changed, 2093 insertions(+), 874 deletions(-) delete mode 100644 src/views/govern/device/control/tabs/components/tableInfo.vue create mode 100644 src/views/govern/device/control/tabs/components/waveFormAnalysis.vue diff --git a/src/api/cs-device-boot/EquipmentDelivery.ts b/src/api/cs-device-boot/EquipmentDelivery.ts index 5a1e858..463e7e5 100644 --- a/src/api/cs-device-boot/EquipmentDelivery.ts +++ b/src/api/cs-device-boot/EquipmentDelivery.ts @@ -38,8 +38,11 @@ export function getRealTimeTableList() { //离线数据导入 export function uploadOffLineDataFile(data: any) { return createAxios({ + headers: { + 'Content-Type': 'multipart/form-data', + }, url: '/cs-device-boot/portableOfflLog/importEquipment', method: 'POST', - data + data, }) } diff --git a/src/views/govern/device/control/analysisList/index.vue b/src/views/govern/device/control/analysisList/index.vue index e69de29..74f5c46 100644 --- a/src/views/govern/device/control/analysisList/index.vue +++ b/src/views/govern/device/control/analysisList/index.vue @@ -0,0 +1,87 @@ + + + + diff --git a/src/views/govern/device/control/index.vue b/src/views/govern/device/control/index.vue index 4839ded..b55aed1 100644 --- a/src/views/govern/device/control/index.vue +++ b/src/views/govern/device/control/index.vue @@ -13,7 +13,7 @@ v-if="dataSet.indexOf('_realtimedata') != -1" size="small" type="primary" - @click="handleDownLoad" + @click="handleDownLoadTemplate" > 模版下载 @@ -37,7 +37,7 @@ v-if="dataSet.indexOf('_realtimedata') != -1" size="small" type="primary" - @click="handleImport" + @click="handleAnalysisList" > 解析列表 @@ -62,7 +62,7 @@ {{ deviceData.time ? deviceData.time : '/' }} - {{ dataSet }} + - + @@ -102,7 +102,8 @@ v-if=" dataSet.indexOf('_trenddata') == -1 && dataSet.indexOf('_realtimedata') == -1 && - dataSet.indexOf('_event') == -1 + dataSet.indexOf('_event') == -1 && + tableData.length != 0 " > @@ -140,7 +141,9 @@ MAX {{ - item.children[0].maxValue === 3.1415956 ? '暂无数据' : item.children[0].maxValue + item.children[0].maxValue === 3.1415956 || !item.children[0].maxValue + ? '暂无数据' + : item.children[0].maxValue }}
@@ -153,7 +156,9 @@ AVG {{ - item.children[0].avgValue === 3.1415956 ? '暂无数据' : item.children[0].avgValue + item.children[0].avgValue === 3.1415956 || !item.children[0].avgValue + ? '暂无数据' + : item.children[0].avgValue }}
@@ -166,7 +171,9 @@ MIN {{ - item.children[0].minValue === 3.1415956 ? '暂无数据' : item.children[0].minValue + item.children[0].minValue === 3.1415956 || !item.children[0].minValue + ? '暂无数据' + : item.children[0].minValue }}
@@ -194,9 +201,8 @@ > -
- 趋势数据 - +
+
@@ -221,12 +227,11 @@ - +
-
- 暂态事件 - +
+
@@ -235,6 +240,8 @@ + +
@@ -259,6 +266,7 @@ import { useRouter } from 'vue-router' import { defineConfig, loadEnv } from 'vite' import type { UserConfig, ConfigEnv } from 'vite' import { Platform, TrendCharts, DataLine, ArrowLeft } from '@element-plus/icons-vue' +import analysisList from './analysisList/index.vue' defineOptions({ name: 'govern/device/control' }) @@ -337,9 +345,11 @@ const handleTrend = () => { sonTab.value = 1 } //谐波频谱 +const harmonicSpectrumRef = ref() const handleHarmonicSpectrum = () => { realTimeFlag.value = false sonTab.value = 2 + harmonicSpectrumRef.value && harmonicSpectrumRef.value.init() } //返回 const handleReturn = () => { @@ -419,11 +429,15 @@ const nodeClick = async (e: anyObj) => { } } const realTimeRef: any = ref() -const intRealTime = (val: any) => { - getTabsDataByType(val).then(res => { +const intRealTime = async (val: any) => { + await getTabsDataByType(val).then(res => { realTimeRef.value && realTimeRef.value.getRealTimeData(res.data) }) } +//趋势数据组件 +const trendRef: any = ref() +//暂态事件组件 +const eventRef: any = ref() //tab点击事件 const handleClick = async (tab?: any) => { tableLoading.value = true @@ -437,20 +451,20 @@ const handleClick = async (tab?: any) => { } // setTimeout(async () => { //查询历史指标 - if (dataSet.value.indexOf('_history') != -1) { - formInline.startTime = datePickerRef.value.timeValue[0] - formInline.endTime = datePickerRef.value.timeValue[1] + if (dataSet.value.includes('_history')) { + console.log('执行次数55555') + formInline.startTime = datePickerRef.value && datePickerRef.value.timeValue[0] + formInline.endTime = datePickerRef.value && datePickerRef.value.timeValue[1] formInline.id = dataSet.value.replace('_history', '') await deviceHisData(formInline).then((res: any) => { tableData.value = res.data.records formInline.total = res.data.total tableLoading.value = false }) + console.log(tableData.value, '++++++++++++') } //查询趋势数据 - if (dataSet.value.indexOf('_trenddata') != -1) { - console.log(deviceData.value.dataSetList, '8888888888838838838') - console.log('_trenddata') + if (dataSet.value.includes('_trenddata')) { let obj = { devId: deviceId.value, //e.id lineId: lineId.value, //e.pid @@ -462,12 +476,14 @@ const handleClick = async (tab?: any) => { } ] } - await getTabsDataByType(obj).then(res => { - console.log(res, '0000000') - }) + // await getTabsDataByType(obj).then(res => { + // console.log(res, '趋势数据结果') + // }) + console.log(trendRef.value, '++++++++++++++++++') + trendRef.value && trendRef.value.getTrendRequest(obj) } //查询实时数据 - if (dataSet.value.indexOf('_realtimedata') != -1) { + if (dataSet.value.includes('_realtimedata')) { //查询实时数据显示实时录波、实时趋势、谐波频谱 realTimeFlag.value = true let obj = { @@ -481,7 +497,7 @@ const handleClick = async (tab?: any) => { }, 20000) } //查询暂态事件 - if (dataSet.value.indexOf('_event') != -1) { + if (dataSet.value.includes('_event')) { console.log('_event') let obj = { devId: deviceId.value, //e.id @@ -494,13 +510,15 @@ const handleClick = async (tab?: any) => { } ] } - await getTabsDataByType(obj).then(res => { - console.log(res, '0000000') - }) + //暂态事件表格请求参数 + eventRef.value && eventRef.value.getTableParams(obj) + // await getTabsDataByType(obj).then(res => { + // console.log(res, '0000000') + // }) } //查询当前指标 console.log(dataSet.value.indexOf('_'), '查询当前指标') - if (dataSet.value.indexOf('_') == -1) { + if (!dataSet.value.includes('_')) { formInline.id = dataSet.value await deviceRtData(formInline).then((res: any) => { tableData.value = res.data.records @@ -510,12 +528,25 @@ const handleClick = async (tab?: any) => { } // }, 100) } - +//模版下载 +const handleDownLoadTemplate = () => {} +//解析列表 +// const isAnalysisList = ref(false) +const analysisListRef = ref() +//打开解析列表 +const handleAnalysisList = () => { + // isAnalysisList.value = true + analysisListRef.value && analysisListRef.value.open() +} +//返回 +// const handleBackAnalysisList=()=>{ +// isAnalysisList.value = false +// } //离线数据导入 const offLineDataImportRef = ref() const handleImport = () => { //设备devId&监测点lineId带入组件 - offLineDataImportRef.value && offLineDataImportRef.value.open() + offLineDataImportRef.value && offLineDataImportRef.value.open(deviceId.value, lineId.value) } queryByCode('Device_Type').then(res => { queryCsDictTree(res.data.id).then(res => { diff --git a/src/views/govern/device/control/offLineDataImport/index.vue b/src/views/govern/device/control/offLineDataImport/index.vue index 7f3d212..542ef3c 100644 --- a/src/views/govern/device/control/offLineDataImport/index.vue +++ b/src/views/govern/device/control/offLineDataImport/index.vue @@ -4,7 +4,7 @@
- + 开始上传 @@ -63,6 +63,7 @@ import JSZip from 'jszip' import { saveAs } from 'file-saver' import { ElMessageBox } from 'element-plus' import { uploadOffLineDataFile } from '@/api/cs-device-boot/EquipmentDelivery.ts' +import { off } from 'process' const dialogVisible = ref(false) const selectedFile = ref(null) @@ -148,32 +149,11 @@ const submitUpload = e => { input.multiple = true document.querySelector('body').appendChild(input) // todo 这里增加了input标签,可以给它删掉 - input.click() - - // 覆盖原生的 alert 函数 - // window.alert = function (message) { - // console.log(message) // 可以在这里处理消息或者什么都不做 - // } - - // // 覆盖原生的 confirm 函数 - // window.confirm = function (message) { - // console.log(message) // 可以在这里处理消息或者返回 true 或 false - // return false // 始终返回 false 来模拟用户点击“取消” - // } - - // // 覆盖原生的 prompt 函数 - // window.prompt = function (message, defaultValue) { - // console.log(message, defaultValue) // 可以在这里处理消息和默认值 - // return null // 始终返回 null 来模拟用户点击“取消” - // } - input.onclick = function (e) { - console.log(e) - e.preventDefault() - } - input.onchange = async function (e) { + input.onchange = function (e) { const formData = new FormData() - e.preventDefault() + + // e.preventDefault() const file = e.target['files'] for (let i = 0; i < file.length; i++) { formData.append('files', file[i]) @@ -187,11 +167,6 @@ const submitUpload = e => { }) } } - -const previewFile = (file: any) => { - // 这里可以实现文件预览逻辑,例如图片预览等 - console.log('预览文件:', file.name) -} //清空文件 const removeAllFile = () => { offLineFileList.value = [] @@ -224,20 +199,41 @@ const removeFile = async (file: any) => { saveAs(newZipContent, '5555.zip') } //开始上传 -const handleUpload = () => { - return - const obj={ - devId:'',//设备id - lineId:'',//监测点id - files:'',//上传文件集 - paths:''//上传文件路径集 +const handleUpload = async () => { + // return + console.log(offLineFileList.value, '000000000') + const subForm = new FormData() + let obj = { + devId: deviceId.value, //设备id + lineId: lineId.value, //监测点id + files: offLineFileList.value, //上传文件集 + paths: offLineFileList.value //上传文件路径集 } - uploadOffLineDataFile(obj).then(res => { - if (res.code == 'A0009') { + subForm.append('devId', deviceId.value) + subForm.append('lineId', lineId.value) + // subForm.append('files', offLineFileList.value) + let webkitRelativePathList: any = [] + offLineFileList.value.map((item: any, index: any) => { + console.log(item) + // obj.paths.push(item.webkitRelativePath) + subForm.append(`files[${index}]`, item) + // subForm.append(`paths[${index}]`, item.webkitRelativePath) + webkitRelativePathList.push(item.webkitRelativePath) + }) + console.log(subForm.getAll('files'), subForm) + subForm.append('paths', webkitRelativePathList.join(',')) + // return; + await uploadOffLineDataFile(subForm).then(res => { + if (res.code == 'A0000') { + console.log(res, '0999999999状态吗') } }) } -const open = () => { +const deviceId: any = ref() +const lineId: any = ref() +const open = (devId: any, lineIds: any) => { + deviceId.value = devId + lineId.value = lineIds dialogVisible.value = true } const close = () => { @@ -252,7 +248,6 @@ defineExpose({ open }) .offline_data { width: 100%; height: 400px; - border: 2px solid red; .offline_data_btn { width: 100%; height: 40px; diff --git a/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue b/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue index 82242c2..488e277 100644 --- a/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue +++ b/src/views/govern/device/control/tabs/components/harmonicSpectrum.vue @@ -1,18 +1,541 @@ + diff --git a/src/views/govern/device/control/tabs/components/realtrend.vue b/src/views/govern/device/control/tabs/components/realtrend.vue index 2170c54..2d5884b 100644 --- a/src/views/govern/device/control/tabs/components/realtrend.vue +++ b/src/views/govern/device/control/tabs/components/realtrend.vue @@ -1,3 +1,4 @@ +