From 9f16b5c553b479ea12fe368a7ecc748872ea8b98 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 12 六月 2025 11:11:27 +0800
Subject: [PATCH] 修改配置文件

---
 web_src/src/components/DeviceList.vue |  123 +++++++++++++++++++++-------------------
 1 files changed, 64 insertions(+), 59 deletions(-)

diff --git a/web_src/src/components/DeviceList.vue b/web_src/src/components/DeviceList.vue
old mode 100644
new mode 100755
index 62cba31..5375e5e
--- a/web_src/src/components/DeviceList.vue
+++ b/web_src/src/components/DeviceList.vue
@@ -3,69 +3,75 @@
     <div class="page-header">
       <div class="page-title">璁惧鍒楄〃</div>
       <div class="page-header-btn">
+        <el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="add">娣诲姞璁惧
+        </el-button>
         <el-button icon="el-icon-refresh-right" circle size="mini" :loading="getDeviceListLoading"
                    @click="getDeviceList()"></el-button>
       </div>
     </div>
-    <!-- <devicePlayer ref="devicePlayer"></devicePlayer> -->
     <!--璁惧鍒楄〃-->
-    <el-table :data="deviceList" border style="width: 100%;font-size: 12px;" :height="winHeight">
-      <el-table-column prop="name" label="鍚嶇О" align="center">
+    <el-table :data="deviceList" style="width: 100%;font-size: 12px;" :height="winHeight" header-row-class-name="table-header">
+      <el-table-column prop="name" label="鍚嶇О" min-width="160">
       </el-table-column>
-      <el-table-column prop="deviceId" label="璁惧缂栧彿" width="180" align="center">
+      <el-table-column prop="deviceId" label="璁惧缂栧彿" min-width="200" >
       </el-table-column>
-      <el-table-column label="鍦板潃" width="180" align="center">
+      <el-table-column label="鍦板潃" min-width="160" >
         <template slot-scope="scope">
           <div slot="reference" class="name-wrapper">
-            <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag>
+            <el-tag v-if="scope.row.hostAddress" size="medium">{{ scope.row.hostAddress }}</el-tag>
+            <el-tag v-if="!scope.row.hostAddress" size="medium">鏈煡</el-tag>
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="manufacturer" label="鍘傚" align="center">
+      <el-table-column prop="manufacturer" label="鍘傚" min-width="120" >
       </el-table-column>
-      <el-table-column label="娴佷紶杈撴ā寮�" align="center" width="120">
+      <el-table-column prop="transport" label="淇′护浼犺緭妯″紡" min-width="120" >
+      </el-table-column>
+      <el-table-column label="娴佷紶杈撴ā寮�"  min-width="160" >
         <template slot-scope="scope">
-          <el-select size="mini" @change="transportChange(scope.row)" v-model="scope.row.streamMode" placeholder="璇烽�夋嫨">
+          <el-select size="mini" @change="transportChange(scope.row)" v-model="scope.row.streamMode" placeholder="璇烽�夋嫨" style="width: 120px">
             <el-option key="UDP" label="UDP" value="UDP"></el-option>
-            <el-option key="TCP-ACTIVE" label="TCP涓诲姩妯″紡" :disabled="true" value="TCP-ACTIVE"></el-option>
+            <el-option key="TCP-ACTIVE" label="TCP涓诲姩妯″紡"  value="TCP-ACTIVE"></el-option>
             <el-option key="TCP-PASSIVE" label="TCP琚姩妯″紡" value="TCP-PASSIVE"></el-option>
           </el-select>
         </template>
       </el-table-column>
-      <el-table-column prop="channelCount" label="閫氶亾鏁�" align="center">
+      <el-table-column prop="channelCount" label="閫氶亾鏁�" min-width="120" >
       </el-table-column>
-      <el-table-column label="鐘舵��" width="120" align="center">
+      <el-table-column label="鐘舵��" min-width="120">
         <template slot-scope="scope">
           <div slot="reference" class="name-wrapper">
-            <el-tag size="medium" v-if="scope.row.online == 1">鍦ㄧ嚎</el-tag>
-            <el-tag size="medium" type="info" v-if="scope.row.online == 0">绂荤嚎</el-tag>
+            <el-tag size="medium" v-if="scope.row.onLine">鍦ㄧ嚎</el-tag>
+            <el-tag size="medium" type="info" v-if="!scope.row.onLine">绂荤嚎</el-tag>
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="keepaliveTime" label="鏈�杩戝績璺�" align="center" width="140">
+      <el-table-column prop="keepaliveTime" label="鏈�杩戝績璺�" min-width="160" >
       </el-table-column>
-      <el-table-column prop="registerTime" label="鏈�杩戞敞鍐�" align="center" width="140">
+      <el-table-column prop="registerTime" label="鏈�杩戞敞鍐�"  min-width="160">
       </el-table-column>
-      <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" align="center" width="140">
-      </el-table-column>
-      <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" align="center" width="140">
-      </el-table-column>
+<!--      <el-table-column prop="updateTime" label="鏇存柊鏃堕棿"  width="140">-->
+<!--      </el-table-column>-->
+<!--      <el-table-column prop="createTime" label="鍒涘缓鏃堕棿"  width="140">-->
+<!--      </el-table-column>-->
 
-      <el-table-column label="鎿嶄綔" width="450" align="center" fixed="right">
+      <el-table-column label="鎿嶄綔" min-width="450" fixed="right">
         <template slot-scope="scope">
-          <el-button size="mini" v-if="scope.row.online!=0" icon="el-icon-refresh" @click="refDevice(scope.row)"
+          <el-button type="text" size="medium" v-bind:disabled="scope.row.online==0" icon="el-icon-refresh" @click="refDevice(scope.row)"
                      @mouseover="getTooltipContent(scope.row.deviceId)">鍒锋柊
           </el-button>
-          <el-button-group>
-            <el-button size="mini" icon="el-icon-video-camera-solid" v-bind:disabled="scope.row.online==0"
-                       type="primary" @click="showChannelList(scope.row)">閫氶亾
-            </el-button>
-            <el-button size="mini" icon="el-icon-location" v-bind:disabled="scope.row.online==0" type="primary"
-                       @click="showDevicePosition(scope.row)">瀹氫綅
-            </el-button>
-            <el-button size="mini" icon="el-icon-edit" type="primary" @click="edit(scope.row)">缂栬緫</el-button>
-            <el-button size="mini" icon="el-icon-delete" type="danger" @click="deleteDevice(scope.row)">鍒犻櫎</el-button>
-          </el-button-group>
+          <el-divider direction="vertical"></el-divider>
+          <el-button type="text" size="medium" icon="el-icon-video-camera"
+                     @click="showChannelList(scope.row)">閫氶亾
+          </el-button>
+          <el-divider direction="vertical"></el-divider>
+          <el-button size="medium" icon="el-icon-location" type="text"
+                     @click="showDevicePosition(scope.row)">瀹氫綅
+          </el-button>
+          <el-divider direction="vertical"></el-divider>
+          <el-button size="medium" icon="el-icon-edit" type="text" @click="edit(scope.row)">缂栬緫</el-button>
+          <el-divider direction="vertical"></el-divider>
+          <el-button size="medium" icon="el-icon-delete" type="text" @click="deleteDevice(scope.row)" style="color: #f56c6c">鍒犻櫎</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -145,24 +151,24 @@
       this.getDeviceList();
     },
     getDeviceList: function () {
-      let that = this;
       this.getDeviceListLoading = true;
       this.$axios({
         method: 'get',
         url: `/api/device/query/devices`,
         params: {
-          page: that.currentPage,
-          count: that.count
+          page: this.currentPage,
+          count: this.count
         }
-      }).then(function (res) {
-        that.total = res.data.total;
-        that.deviceList = res.data.list;
-        that.getDeviceListLoading = false;
-      }).catch(function (error) {
+      }).then( (res)=> {
+        if (res.data.code === 0) {
+          this.total = res.data.data.total;
+          this.deviceList = res.data.data.list;
+        }
+        this.getDeviceListLoading = false;
+      }).catch( (error)=> {
         console.error(error);
-        that.getDeviceListLoading = false;
+        this.getDeviceListLoading = false;
       });
-
     },
     deleteDevice: function (row) {
       let msg = "纭畾鍒犻櫎姝よ澶囷紵"
@@ -191,7 +197,7 @@
 
     },
     showChannelList: function (row) {
-      this.$router.push(`/channelList/${row.deviceId}/0/15/1`);
+      this.$router.push(`/channelList/${row.deviceId}/0`);
     },
     showDevicePosition: function (row) {
       this.$router.push(`/map?deviceId=${row.deviceId}`);
@@ -203,7 +209,7 @@
       console.log("鍒锋柊瀵瑰簲璁惧:" + itemData.deviceId);
       let that = this;
       this.$axios({
-        method: 'post',
+        method: 'get',
         url: '/api/device/query/devices/' + itemData.deviceId + '/sync'
       }).then((res) => {
         console.log("鍒锋柊璁惧缁撴灉锛�" + JSON.stringify(res));
@@ -252,21 +258,6 @@
       })
       return result;
     },
-    //閫氱煡璁惧涓婁紶濯掍綋娴�
-    sendDevicePush: function (itemData) {
-      // let deviceId = this.currentDevice.deviceId;
-      // let channelId = itemData.channelId;
-      // console.log("閫氱煡璁惧鎺ㄦ祦1锛�" + deviceId + " : " + channelId);
-      // let that = this;
-      // this.$axios({
-      // 	method: 'get',
-      // 	url: '/api/play/' + deviceId + '/' + channelId
-      // }).then(function(res) {
-      // 	let ssrc = res.data.ssrc;
-      // 	that.$refs.devicePlayer.play(ssrc,deviceId,channelId);
-      // }).catch(function(e) {
-      // });
-    },
     transportChange: function (row) {
       console.log(`淇敼浼犺緭鏂瑰紡涓� ${row.streamMode}锛�${row.deviceId} `);
       let that = this;
@@ -289,7 +280,20 @@
         setTimeout(this.getDeviceList, 200)
 
       })
+    },
+    add: function () {
+      this.$refs.deviceEdit.openDialog(null, () => {
+        this.$refs.deviceEdit.close();
+        this.$message({
+          showClose: true,
+          message: "娣诲姞鎴愬姛",
+          type: "success",
+        });
+        setTimeout(this.getDeviceList, 200)
+
+      })
     }
+
 
   }
 };
@@ -347,4 +351,5 @@
   padding: 0.3rem;
   width: 14.4rem;
 }
+
 </style>

--
Gitblit v1.8.0