From b25dac9ce64c5988a9e546c9c80413e9b666e4e2 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期六, 14 六月 2025 16:49:38 +0800
Subject: [PATCH] 设备数采的数据以列表的格式展示,时间,车间,设备作为筛选条件

---
 src/api/equipment/equipment.js             |   23 ++++++-
 src/views/equipment/mqtt-history/index.vue |  139 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 159 insertions(+), 3 deletions(-)

diff --git a/src/api/equipment/equipment.js b/src/api/equipment/equipment.js
index 7b86def..143aa37 100644
--- a/src/api/equipment/equipment.js
+++ b/src/api/equipment/equipment.js
@@ -1,6 +1,6 @@
 /*
- * @Descripttion: 
- * @version: 
+ * @Descripttion:
+ * @version:
  * @Author: zt_lc
  * @Date: 2022-02-10 14:24:32
  * @LastEditors: zt_lc
@@ -90,4 +90,21 @@
     method: 'get',
     params: query
   })
-}
\ No newline at end of file
+}
+
+
+export function mqttPage(query) {
+    return request({
+        url: '/mes/mqtt/page',
+        method: 'get',
+        params: query
+    })
+}
+
+export function getEquipmentSensors(query) {
+    return request({
+        url: '/mes/mqtt/getEquipmentSensors',
+        method: 'get',
+        params: query
+    })
+}
diff --git a/src/views/equipment/mqtt-history/index.vue b/src/views/equipment/mqtt-history/index.vue
new file mode 100644
index 0000000..3252f0b
--- /dev/null
+++ b/src/views/equipment/mqtt-history/index.vue
@@ -0,0 +1,139 @@
+<template>
+    <div>
+        <basic-container>
+            <el-form label-width="100px" :inline="true">
+                <el-form-item label="璁惧锛�" required>
+                    <el-select v-model="search.deviceId" placeholder="璇烽�夋嫨">
+                        <el-option
+                            v-for="item in options"
+                            :key="item.value"
+                            :label="item.name"
+                            :value="item.device_id"
+                        >
+                        </el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="鏃堕棿锛�">
+                    <el-date-picker
+                        v-model="search.collectionTime"
+                        type="datetime"
+                        placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+                    >
+                    </el-date-picker>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" @click="searchFun">鏌ヨ</el-button>
+                </el-form-item>
+            </el-form>
+        </basic-container>
+        <basic-container>
+            <el-table
+                :data="tableData"
+                style="width: 100%"
+                height="calc(100vh - 27vh)"
+            >
+                <el-table-column type="index" label="搴忓彿"></el-table-column>
+                <el-table-column prop="collectionTime" label="閲囬泦鏃堕棿">
+                </el-table-column>
+                <el-table-column label="璁惧鍚嶇О">
+                    <template slot-scope="scope">
+                        <!-- 浣跨敤璁$畻灞炴�ф垨鏂规硶鏌ユ壘鍖归厤椤� -->
+                        {{ getMatchedName(scope.row.dataStream) }}
+                    </template>
+                </el-table-column>
+                <el-table-column prop="dataStream" label="璁惧缂栧彿" >
+                </el-table-column>
+                <el-table-column prop="value" label="鍙傛暟鍊�"> </el-table-column>
+            </el-table>
+            <el-pagination
+                @size-change="handleSizeChange"
+                @current-change="handleCurrentChange"
+                :current-page="1"
+                :page-sizes="[100, 200, 300, 400]"
+                :page-size="search.size"
+                layout="->, total, sizes, prev, pager, next, jumper"
+                :total="search.total"
+            >
+            </el-pagination>
+        </basic-container>
+    </div>
+</template>
+
+<script>
+import {
+    getDeviceId,
+    getEquipmentSensors,
+    mqttPage
+} from '@/api/equipment/equipment'
+
+export default {
+    data() {
+        return {
+            currentPage: 1,
+            options: [],
+            tableData: [],
+            equipmentSensorsList: [],
+            search: {
+                size: 100,
+                current: 1,
+                total: 0,
+                deviceId: null,
+                collectionTime: null
+            }
+        }
+    },
+    // 鍒濆鍖栬皟鐢� 鏌ヨ璁惧 鎶樼嚎鍥炬暟鎹�
+    async created() {
+        await this.getDeviceIdFun()
+        await this.getPage()
+    },
+    methods: {
+        // 鏌ユ壘鍖归厤鐨勮澶囧悕绉�
+        getMatchedName(dataStream) {
+            // 閬嶅巻璁惧浼犳劅鍣ㄥ垪琛�
+            const matchedItem = this.equipmentSensorsList.find((item) => {
+                return item.dataStream === dataStream
+            })
+
+            // 杩斿洖鍖归厤鐨勪腑鏂囧悕绉版垨榛樿鍊�
+            return matchedItem ? matchedItem.nameCn : '鏈壘鍒拌澶�'
+        },
+        searchFun() {
+            this.tableData = []
+            this.getEquipmentSensors()
+            this.getPage()
+        },
+        handleSizeChange(val) {
+            this.search.size = val
+            this.getPage()
+        },
+        handleCurrentChange(val) {
+            this.search.current = val
+            this.getPage()
+        },
+        // 鑾峰彇璁惧涓嬫媺妗�
+        async getDeviceIdFun() {
+            await getDeviceId().then(async (res) => {
+                this.options = res.data.data
+                this.search.deviceId = this.options[0].device_id
+                await this.getEquipmentSensors()
+            })
+        },
+        getPage() {
+            mqttPage(this.search).then((res) => {
+                this.tableData = res.data.data.content
+                this.search.total = res.data.data.totalElements
+            })
+        },
+        async getEquipmentSensors() {
+            await getEquipmentSensors({ deviceId: this.search.deviceId }).then(
+                (response) => {
+                    this.equipmentSensorsList = response.data.data
+                }
+            )
+        }
+    }
+}
+</script>
+
+<style></style>

--
Gitblit v1.9.3