From 3a154bdb0a5aaa2c0ac3eac95a6ba747068bd454 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期二, 13 一月 2026 10:00:37 +0800
Subject: [PATCH] 优化
---
admin/src/components/business/OperaDeviceDataListWindow.vue | 192 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 192 insertions(+), 0 deletions(-)
diff --git a/admin/src/components/business/OperaDeviceDataListWindow.vue b/admin/src/components/business/OperaDeviceDataListWindow.vue
new file mode 100644
index 0000000..b23d1b4
--- /dev/null
+++ b/admin/src/components/business/OperaDeviceDataListWindow.vue
@@ -0,0 +1,192 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ >
+ <TableLayout >
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <div style="display: block;margin-bottom: 60px;padding: 20px; border: 1px solid #f2f2f2;">
+ <div style="display: block;font-size: 16px;font-weight: 600;margin-bottom: 20px;">璁惧淇℃伅</div>
+ <div style="display: flex;">
+ <div style="flex: 1"><span class="label">鍚嶇О锛�</span>{{model.name ||''}}</div>
+ <div style="flex: 1"><span class="label">鏍囧織绗︼細</span>{{model.no ||''}}</div>
+ <div style="flex: 1"><span class="label">璁惧鍙凤細</span>{{model.doorNo ||'-'}}</div>
+ <div style="flex: 1"><span class="label">寮�鍏冲簭鍙凤細</span>{{model.channelNo ||'-'}}</div>
+ <div style="flex: 1"><span class="label">鎺у埗寮�鍏筹細</span>{{model.channelInfo ||'-'}}</div>
+ </div>
+ <div style="display: flex;margin-top: 20px;">
+ <div style="flex: 1"><span class="label">MQTT IP锛�</span>{{model.doorNameObj.mqttIp ||''}}</div>
+ <div style="flex: 1"><span class="label">MQTT绔彛锛�</span>{{model.doorNameObj.mqttPort||''}}</div>
+ <div style="flex: 3">
+ <span class="label">鏈�杩戞帶鍒舵搷浣滐細</span>
+ <span class="orange" >{{model.remark||''}}</span>
+ </div>
+ </div>
+ </div>
+ <div class="platgroup_tabs">
+ <div class="tab" :class="{ active: activeGroup === item.id }" @click="groupClick(item)"
+ v-for="(item, i) in groupList" :key="i">
+ {{ item.name }}
+ </div>
+ </div>
+ <el-form-item label="寮�鍏冲簭鍙�" v-if="activeGroup==0" prop="val1">
+ <el-input v-model="searchForm.val1" placeholder="璇疯緭鍏ュ紑鍏冲簭鍙�" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section v-if="activeGroup==0">
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <el-table
+ v-if="activeGroup===0"
+ :height="tableHeightNew"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe>
+ <el-table-column prop="happenTime" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="val1" label="寮�鍏冲簭鍙�" min-width="120px"></el-table-column>
+ <el-table-column prop="val7" label="闂哥姸鎬�" min-width="120px">
+ <template slot-scope="{row}">
+ <span v-if=" row.val7 === '1'" class="green">鍚堥椄</span>
+ <span v-else-if=" row.val7 === '0'" class="red">鍒嗛椄</span>
+ <span v-else>-</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="val2" label="鐢垫祦(A)" min-width="120px"></el-table-column>
+ <el-table-column prop="val3" label="鐢靛湩(V)" min-width="120px"></el-table-column>
+ <el-table-column prop="val4" label="娓╁害(鈩�)" min-width="180px" ></el-table-column>
+ <el-table-column prop="val5" label="鏈夊姛鍔熺巼鍊硷紙kW锛�" min-width="120px"></el-table-column>
+ </el-table>
+ <el-table
+ v-if="activeGroup===1"
+ :height="tableHeightNew"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe>
+ <el-table-column prop="createDate" label="鎿嶄綔鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="val4" label="鎿嶄綔浜�" min-width="100px" ></el-table-column>
+ <el-table-column prop="val3" label="鎿嶄綔鍐呭" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if=" row.val3 === '銆愬悎闂搞��'" class="green">{{row.val3||''}}</span>
+ <span v-else-if=" row.val3 === '銆愬垎闂搞��'" class="red">{{row.val3||''}}</span>
+ <span v-else>{{row.val3||''}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="val5" label="寮�鍏冲簭鍙�" min-width="120px"></el-table-column>
+ <el-table-column prop="val2" label="鍐呭" min-width="300px" show-overflow-tooltip></el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ </TableLayout>
+ <template v-slot:footer>
+ <el-button @click="visible=false">杩斿洖</el-button>
+ </template>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaJkSketchCustomerWindow',
+ extends: BaseTable,
+ components: { GlobalWindow, TableLayout, Pagination },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ visible: false,
+ title: '',
+ activeGroup:0,
+ model:{},
+ groupList: [{ id: 0, name: '鏁版嵁涓婃姤璁板綍', type: 0 }, { id: 1, name: '杩滅▼鎺у埗璁板綍', type: 1 }],
+ searchForm: {
+ deviceId: null,
+ val1: '',
+ dataType:0
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '璁惧鏁版嵁淇℃伅琛�',
+ api: '/business/deviceData',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ groupClick (item) {
+ this.activeGroup = item.id
+ this.searchForm.val1 = ''
+ this.searchForm.dataType = item.type
+ this.search()
+ },
+ open (title, row) {
+ this.title = title +' 銆�'+ (row.name)+'銆�'
+ this.searchForm.deviceId = row.id
+ if(!row.doorNameObj) {
+ row.doorNameObj = {}
+ }
+ this.model=row
+ this.visible = true
+ this.tableData = {
+ // 宸查�変腑鐨勬暟鎹�
+ selectedRows: [],
+ // 鎺掑簭鐨勫瓧娈�
+ sorts: [],
+ // 褰撳墠椤垫暟鎹�
+ list: [],
+ // 鍒嗛〉
+ pagination: {
+ pageIndex: 1,
+ pageSize: 10,
+ total: 0
+ }
+ }
+ this.groupClick(this.groupList[0])
+ }
+ }
+}
+</script>
+<style>
+.platgroup_tabs {
+ flex: 1;
+ display: flex;
+ border-bottom: 1px solid #dfe2e8;
+ margin-bottom:30px;
+
+ .tab {
+ color: #666666;
+ margin-right: 40px;
+ cursor: pointer;
+ padding-bottom: 18px;
+ border-bottom: 2px solid #fff;
+ }
+
+ .active {
+ font-weight: 500;
+ font-size: 15px;
+ color: #2080f7;
+ border-bottom: 2px solid $primary-color;
+ }
+}
+.label{
+/* width: 80px;
+ text-align: right;*/
+ color: rgb(102, 102, 102);
+ display: inline-block;
+
+}
+</style>
--
Gitblit v1.9.3