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