zhaobao 1 år sedan
förälder
incheckning
c033583060

+ 6 - 0
src/api/goaf/device.js

@@ -1,5 +1,11 @@
 import request from '@/utils/request'
 
+export function getDeviceByList(params) {
+  return request({
+    url: '/goaf/goafdevinfo/list',
+    params
+  })
+}
 // 分页获取
 export function getDeviceByPage(params) {
   return request({

+ 7 - 1
src/api/goaf/sensor.js

@@ -108,7 +108,13 @@ export function getSensorDataByPage(params) {
 // 获取传感器最新数据
 export function getSensorNewSensordata(params) {
   return request({
-    url: '/goaf/sensordata/newsensordata',
+    // url: '/goaf/sensordata/newsensordata',
+    url: '/goaf/goafdevinfo/goafdevsensordata',
     params
   })
 }
+export function getWavedata(goafdataid) {
+  return request({
+    url: `/goaf/sensordata/wavedata/${goafdataid}`
+  })
+}

+ 2 - 1
src/views/iiot/equipment/history.vue

@@ -16,7 +16,8 @@
     <el-row class="m-top-15">
       <el-table v-loading="listLoading" class="page-table" border fit :data="dataList">
         <el-table-column header-align="center" type="index" label="序号" align="center" width="60" />
-        <el-table-column header-align="center" align="center" prop="goafSensorName" label="设备名称" />
+        <el-table-column header-align="center" align="center" prop="goafDevName" label="设备名称" />
+        <el-table-column header-align="center" align="center" prop="goafSensorName" label="传感器名称" />
         <el-table-column header-align="center" align="center" label="振动烈度(mm/s)">
           <el-table-column
             header-align="center"

+ 49 - 26
src/views/iiot/equipment/monitor.vue

@@ -14,10 +14,11 @@
     </el-row>
 
     <el-row class="m-top-15">
-      <el-table v-loading="listLoading" class="page-table" border fit :data="dataList">
+      <el-table v-loading="listLoading" class="page-table" border fit :data="dataList" :span-method="objectSpanMethod">
         <el-table-column header-align="center" type="index" label="序号" align="center" width="60" />
-        <el-table-column header-align="center" align="center" prop="goafSensorName" label="设备名称" />
-        <el-table-column header-align="center" align="center" label="振动烈度(mm/s)">
+        <el-table-column header-align="center" align="center" prop="goafDevName" label="设备名称" />
+        <el-table-column header-align="center" align="center" prop="goafSensorName" label="传感器名称" />
+        <el-table-column header-align="center" align="center" label="频率(HZ)">
           <el-table-column
             header-align="center"
             align="center"
@@ -26,7 +27,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ parseFloat((row.velX/100).toFixed(2)) }}</span>
+              <span>{{ parseFloat((row.frequencyX/10).toFixed(2)) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -37,7 +38,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ parseFloat((row.velY/100).toFixed(2)) }}</span>
+              <span>{{ parseFloat((row.frequencyY/10).toFixed(2)) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -48,11 +49,11 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ parseFloat((row.velZ/100).toFixed(2)) }}</span>
+              <span>{{ parseFloat((row.frequencyZ/10).toFixed(2)) }}</span>
             </template>
           </el-table-column>
         </el-table-column>
-        <el-table-column header-align="center" label="速度(m/s2)">
+        <el-table-column header-align="center" align="center" label="速度(mm/s)">
           <el-table-column
             header-align="center"
             align="center"
@@ -61,7 +62,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ row.accX }}</span>
+              <span>{{ parseFloat((row.velX/100).toFixed(2)) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -72,7 +73,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ row.accY }}</span>
+              <span>{{ parseFloat((row.velY/100).toFixed(2)) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -83,11 +84,11 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ row.accZ }}</span>
+              <span>{{ parseFloat((row.velZ/100).toFixed(2)) }}</span>
             </template>
           </el-table-column>
         </el-table-column>
-        <el-table-column header-align="center" label="位移(um)">
+        <el-table-column header-align="center" label="加速度(m/s2)">
           <el-table-column
             header-align="center"
             align="center"
@@ -96,7 +97,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ row.disX }}</span>
+              <span>{{ parseFloat((row.accX/100).toFixed(2)) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -107,7 +108,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ row.disY }}</span>
+              <span>{{ parseFloat((row.accY/100).toFixed(2)) }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -118,11 +119,11 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ row.disZ }}</span>
+              <span>{{ parseFloat((row.accZ/100).toFixed(2)) }}</span>
             </template>
           </el-table-column>
         </el-table-column>
-        <el-table-column header-align="center" align="center" label="振动烈度(mm/s)">
+        <el-table-column header-align="center" label="位移(um)">
           <el-table-column
             header-align="center"
             align="center"
@@ -131,7 +132,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ parseFloat((row.frequencyX/10).toFixed(2)) }}</span>
+              <span>{{ row.disX }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -142,7 +143,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ parseFloat((row.frequencyY/10).toFixed(2)) }}</span>
+              <span>{{ row.disY }}</span>
             </template>
           </el-table-column>
           <el-table-column
@@ -153,7 +154,7 @@
             width="95"
           >
             <template v-slot="{row}">
-              <span>{{ parseFloat((row.frequencyZ/10).toFixed(2)) }}</span>
+              <span>{{ row.disZ }}</span>
             </template>
           </el-table-column>
         </el-table-column>
@@ -178,7 +179,7 @@
 </template>
 
 <script>
-import { getSensorNewSensordata } from '@/api/goaf/sensor'
+import { getSensorNewSensordata, getWavedata } from '@/api/goaf/sensor'
 import { Pagination } from '@/components'
 import { NumConvertLM } from '@/utils'
 import MonitorChartDetail from './components/MonitorChartDetail'
@@ -203,13 +204,32 @@ export default {
   methods: {
     // fetch data
     NumConvertLM,
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 1) {
+        if (row.index === 0) {
+          return {
+            rowspan: row.len,
+            colspan: 1
+          }
+        } else {
+          return {
+            rowspan: 0,
+            colspan: 0
+          }
+        }
+      }
+    },
     getData() {
       this.listLoading = true
       getSensorNewSensordata(this.conditions).then((resp) => {
         this.listLoading = false
         const { code, msg, data } = resp
         if (code === 0) {
-          this.dataList = [data]
+          let tableData = []
+          for (let i = 0; i < data.length; i++) {
+            tableData = tableData.concat(data[i].goafSensorData.map((item, index) => { return { ...item, goafDevName: data[i].goafDevName, index, len: data[i].goafSensorData.length } }))
+          }
+          this.dataList = tableData
           this.total = 1
         } else {
           this.$message.error(msg)
@@ -218,12 +238,15 @@ export default {
         console.log(error)
       })
     },
-    showDetail(data) {
-      const x = data.tdWaveValueX.split(',').map(item => parseFloat((item / 100).toFixed(2)))
-      const y = data.tdWaveValueY.split(',').map(item => parseFloat((item / 100).toFixed(2)))
-      const z = data.tdWaveValueZ.split(',').map(item => parseFloat((item / 100).toFixed(2)))
-      const params = { x, y, z }
-      this.$refs['chart-detail'].show(params)
+    showDetail(params) {
+      getWavedata(params.goafDataId).then((resp) => {
+        const { data } = resp
+        const x = data.tdWaveValueX.split(',').map(item => parseFloat((item / 100).toFixed(2)))
+        const y = data.tdWaveValueY.split(',').map(item => parseFloat((item / 100).toFixed(2)))
+        const z = data.tdWaveValueZ.split(',').map(item => parseFloat((item / 100).toFixed(2)))
+        const params = { x, y, z }
+        this.$refs['chart-detail'].show(params)
+      })
     }
   }
 }

+ 43 - 28
src/views/iiot/sensor/components/DeviceModel.vue

@@ -23,11 +23,33 @@
           />
         </el-form-item>
         <el-form-item label="设备名称" required>
-          <el-input
-            v-model="formData.goafDevName"
-            placeholder="请输入设备名称"
+          <el-select
+            v-model="formData.goafDevId"
             style="width: 260px"
-          />
+            @change="changeDev"
+          >
+            <el-option
+              v-for="item in deviceList"
+              :key="item.goafDevId"
+              :value="item.goafDevId"
+              :label="item.goafDevName"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="设备类型" required>
+          <span v-if="formData.goafDevTypename" style="color: #fff;">{{ formData.goafDevTypename }}</span>
+          <span v-else style="color: #fff;padding-left: 12px;">设备类型</span>
+          <!-- <el-select
+            v-model="formData.goafDevTypeId"
+            style="width: 260px"
+          >
+            <el-option
+              v-for="item in sensorCats"
+              :key="item.sensorTypeId"
+              :value="item.sensorTypeId"
+              :label="item.sensorTypeName"
+            />
+          </el-select> -->
         </el-form-item>
         <el-form-item label="检测间隔时间(分)" required>
           <el-input-number v-model="formData.goafCheckTimeInterval" placeholder="检测间隔时间(分)" :controls="false" style="width: 100px;" />
@@ -74,19 +96,6 @@
         <el-form-item label="温度阈值" required>
           <el-input-number v-model="formData.thvTemperature" placeholder="温度阈值" :controls="false" style="width: 100px;" />
         </el-form-item>
-        <el-form-item label="设备类型" required>
-          <el-select
-            v-model="formData.goafDevTypeId"
-            style="width: 260px"
-          >
-            <el-option
-              v-for="item in sensorCats"
-              :key="item.sensorTypeId"
-              :value="item.sensorTypeId"
-              :label="item.sensorTypeName"
-            />
-          </el-select>
-        </el-form-item>
         <el-form-item label="设备安装时间">
           <el-date-picker
             v-model="formData.goafInstallTime"
@@ -109,6 +118,7 @@
 import { parseTime } from '@/utils'
 import { getSensorCat } from '@/api/goaf/sensorCatApi'
 import { createSensor, updateSensor } from '@/api/goaf/sensor'
+import { getDeviceByList } from '@/api/goaf/device'
 export default {
   name: 'SensorModel',
   data() {
@@ -123,11 +133,13 @@ export default {
       },
       dialogVisible: false,
       sensorCats: [],
+      deviceList: [],
       goaf: [],
       formData: {
         'goafSensorId': undefined,
         'ocId': undefined,
         'goafSensorName': '',
+        'goafDevId': '',
         'modbusId': undefined,
         'sensorBaudrate': 0,
         'goafSensorIp': undefined,
@@ -170,6 +182,12 @@ export default {
       getSensorCat().then((res) => {
         this.sensorCats = res.data
       })
+      getDeviceByList().then((res) => {
+        this.deviceList = res.data
+      })
+    },
+    changeDev() {
+      this.formData.goafDevTypename = this.deviceList.filter(item => item.goafDevId === this.formData.goafDevId)[0].goafDevTypename
     },
     // Show Add Dialog
     showAddModel() {
@@ -186,15 +204,13 @@ export default {
       this.title = '修改传感器配置'
       this.dialogVisible = true
       // Life minus one
-      var goafDevTypeId = ''
-      if (data.goafDevTypename) {
-        goafDevTypeId = this.sensorCats.filter(
-          (item) => item.sensorTypeName === data.goafDevTypename
-        )[0]?.sensorTypeId
+      var goafDevId = ''
+      if (data.goafDevName) {
+        goafDevId = this.deviceList.filter(item => item.goafDevName === data.goafDevName)[0]?.goafDevName
       }
       this.formData = {
         ...data,
-        goafDevTypeId
+        goafDevId
       }
     },
     // Reset Form Data
@@ -203,6 +219,7 @@ export default {
         'goafSensorId': undefined,
         'ocId': undefined,
         'goafSensorName': '',
+        'goafDevId': '',
         'modbusId': undefined,
         'sensorBaudrate': undefined,
         'goafSensorIp': undefined,
@@ -226,11 +243,9 @@ export default {
     },
     // 提交
     submitForm(formName) {
-      const sensorCat = this.sensorCats.filter(
-        (item) => item.sensorTypeId === this.formData.goafDevTypeId
-      )[0]
-      this.formData.goafDevTypename = sensorCat?.sensorTypeName
-      if (sensorCat) this.formData.ocId = sensorCat?.ocId
+      const goafDev = this.deviceList.filter(item => item.goafDevId === this.formData.goafDevId)[0]
+      this.formData.goafDevTypename = goafDev.goafDevTypename
+      if (goafDev) this.formData.ocId = goafDev?.ocId
       this.$refs[formName].validate((valid) => {
         if (valid) {
           switch (this.actionType) {

+ 5 - 3
src/views/iiot/sensor/manager.vue

@@ -17,11 +17,12 @@
     <el-row class="m-top-15">
       <el-table v-loading="listLoading" class="page-table" border fit :data="dataList">
         <el-table-column type="index" label="序号" header-align="center" align="center" width="60" />
-        <el-table-column prop="goafSensorName" label="编码" align="center" />
-        <el-table-column prop="goafDevName" label="设备名称" align="center" />
+        <el-table-column prop="goafSensorName" label="传感器名称" align="center" />
+        <el-table-column prop="goafDevName" label="待测设备名称" align="center" />
+        <el-table-column prop="goafDevTypename" label="待测设备类型" align="center" />
         <el-table-column prop="goafSensorLocation" label="安装地点" align="center" />
+        <el-table-column prop="goafSensorIp" label="Ip地址" align="center" />
         <el-table-column prop="goafCheckTimeInterval" label="监测间隔时间(分)" align="center" show-overflow-tooltip />
-        <el-table-column prop="goafDevTypename" label="设备类型" align="center" />
         <el-table-column prop="goafInstallTime" label="安装时间" align="center" />
         <el-table-column header-align="center" align="center" label="速度(mm/s)">
           <el-table-column
@@ -146,6 +147,7 @@
 
 <script>
 import { delSensor, getSensorByPage } from '@/api/goaf/sensor'
+
 import { Pagination } from '@/components'
 import { NumConvertLM } from '@/utils'
 import sensorModel from './components/DeviceModel'