From ba8633e99a27b90c55b47e8f7d6225f1f0efc6bb Mon Sep 17 00:00:00 2001
From: 648540858 <456panlinlin>
Date: 星期五, 08 四月 2022 18:09:23 +0800
Subject: [PATCH] 优化地图-添加地图页面以及设备树

---
 web_src/src/components/DeviceList.vue |   98 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 65 insertions(+), 33 deletions(-)

diff --git a/web_src/src/components/DeviceList.vue b/web_src/src/components/DeviceList.vue
index c2971aa..74e3fbc 100644
--- a/web_src/src/components/DeviceList.vue
+++ b/web_src/src/components/DeviceList.vue
@@ -13,15 +13,19 @@
 				</div>
 				<!-- <devicePlayer ref="devicePlayer"></devicePlayer> -->
 				<!--璁惧鍒楄〃-->
-				<el-table :data="deviceList" border style="width: 100%" :height="winHeight">
+				<el-table :data="deviceList" border style="width: 100%;font-size: 12px;" :height="winHeight">
 					<el-table-column prop="name" label="鍚嶇О"  align="center">
 					</el-table-column>
 					<el-table-column prop="deviceId" label="璁惧缂栧彿" width="180" align="center">
 					</el-table-column>
-
+          <el-table-column label="鍦板潃" width="180" align="center">
+            <template slot-scope="scope">
+              <div slot="reference" class="name-wrapper">
+                <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag>
+              </div>
+            </template>
+          </el-table-column>
 					<el-table-column prop="manufacturer" label="鍘傚" align="center">
-					</el-table-column>
-					<el-table-column prop="model" label="鍥轰欢鐗堟湰" align="center" width="120">
 					</el-table-column>
 					<el-table-column label="娴佷紶杈撴ā寮�" align="center" width="120">
             <template slot-scope="scope">
@@ -50,21 +54,15 @@
           </el-table-column>
           <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" align="center" width="140">
           </el-table-column>
-          <el-table-column label="鍦板潃" width="180" align="center">
-            <template slot-scope="scope">
-              <div slot="reference" class="name-wrapper">
-                <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag>
-              </div>
-            </template>
-          </el-table-column>
-					<el-table-column label="鎿嶄綔" width="360" align="center" fixed="right">
+
+					<el-table-column label="鎿嶄綔" width="450" align="center" fixed="right">
 						<template slot-scope="scope">
-							<el-button size="mini" :ref="scope.row.deviceId + 'refbtn' "  v-if="scope.row.online!=0" icon="el-icon-refresh"  @click="refDevice(scope.row)">鍒锋柊</el-button>
+							<el-button size="mini" :loading="scope.row.loading"  v-if="scope.row.online!=0" icon="el-icon-refresh"  @click="refDevice(scope.row)">鍒锋柊</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-s-tools" v-bind:disabled="scope.row.online==0"  type="primary">鎺у埗</el-button>
-                <el-button size="mini" icon="el-icon-delete" type="danger" v-if="scope.row.online==0"  @click="deleteDevice(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>
 							</template>
 					</el-table-column>
@@ -79,7 +77,7 @@
 					layout="total, sizes, prev, pager, next"
 					:total="total">
 				</el-pagination>
-
+        <deviceEdit ref="deviceEdit" ></deviceEdit>
 			</el-main>
 		</el-container>
 	</div>
@@ -87,10 +85,12 @@
 
 <script>
 	import uiHeader from './UiHeader.vue'
+	import deviceEdit from './dialog/deviceEdit.vue'
 	export default {
 		name: 'app',
 		components: {
-			uiHeader
+			uiHeader,
+      deviceEdit
 		},
 		data() {
 			return {
@@ -165,15 +165,29 @@
 
 			},
       deleteDevice: function(row) {
-				let that = this;
-				this.$axios({
-					method: 'delete',
-					url:`/api/device/query/devices/${row.deviceId}/delete`
-				}).then((res)=>{
-          this.getDeviceList();
-				}).catch((error) =>{
-					console.log(error);
-				});
+        let msg = "纭畾鍒犻櫎姝よ澶囷紵"
+        if (row.online !== 0) {
+          msg = "鍦ㄧ嚎璁惧鍒犻櫎鍚庝粛鍙�氳繃娉ㄥ唽鍐嶆涓婄嚎銆�<br/>濡傞渶褰诲簳鍒犻櫎璇峰厛灏嗚澶囩绾裤��<br/><strong>纭畾鍒犻櫎姝よ澶囷紵</strong>"
+        }
+        this.$confirm(msg, '鎻愮ず', {
+          dangerouslyUseHTMLString : true,
+          confirmButtonText: '纭畾',
+          cancelButtonText: '鍙栨秷',
+          center: true,
+          type: 'warning'
+        }).then(() => {
+          this.$axios({
+            method: 'delete',
+            url:`/api/device/query/devices/${row.deviceId}/delete`
+          }).then((res)=>{
+            this.getDeviceList();
+          }).catch((error) =>{
+            console.log(error);
+          });
+        }).catch(() => {
+
+        });
+
 
 			},
 			showChannelList: function(row) {
@@ -190,31 +204,36 @@
 			refDevice: function(itemData) {
 				console.log("鍒锋柊瀵瑰簲璁惧:" + itemData.deviceId);
 				var that = this;
-				that.$refs[itemData.deviceId + 'refbtn' ].loading = true;
+        that.$set(itemData,"loading", true);
 				this.$axios({
 					method: 'post',
 					url: '/api/device/query/devices/' + itemData.deviceId + '/sync'
 				}).then(function(res) {
 					console.log("鍒锋柊璁惧缁撴灉锛�"+JSON.stringify(res));
-					if (!res.data.deviceId) {
+					if (res.data.code !==0) {
 						that.$message({
 							showClose: true,
-							message: res.data,
+							message: res.data.msg,
 							type: 'error'
 						});
 					}else{
 						that.$message({
 							showClose: true,
-							message: '璇锋眰鎴愬姛',
+							message: res.data.msg,
 							type: 'success'
 						});
 					}
 					that.initData()
-					that.$refs[itemData.deviceId + 'refbtn' ].loading = false;
+          that.$set(itemData,"loading", true);
 				}).catch(function(e) {
 					console.error(e)
-					that.$refs[itemData.deviceId + 'refbtn' ].loading = false;
-				});;
+          that.$message({
+            showClose: true,
+            message: e,
+            type: 'error'
+          });
+          that.$set(itemData,"loading", true);
+				});
 			},
 			//閫氱煡璁惧涓婁紶濯掍綋娴�
 			sendDevicePush: function(itemData) {
@@ -242,6 +261,19 @@
 
         }).catch(function(e) {
         });
+      },
+      edit: function (row) {
+        console.log(row);
+        this.$refs.deviceEdit.openDialog(row, ()=>{
+          this.$refs.deviceEdit.close();
+          this.$message({
+            showClose: true,
+            message: "璁惧淇敼鎴愬姛锛岄�氶亾瀛楃闆嗗皢鍦ㄤ笅娆℃洿鏂扮敓鏁�",
+            type: "success",
+          });
+          setTimeout(this.getDeviceList, 200)
+
+        })
       }
 
 		}

--
Gitblit v1.8.0