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/channelList.vue |  151 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 115 insertions(+), 36 deletions(-)

diff --git a/web_src/src/components/channelList.vue b/web_src/src/components/channelList.vue
index 5547913..ff1d784 100755
--- a/web_src/src/components/channelList.vue
+++ b/web_src/src/components/channelList.vue
@@ -13,24 +13,30 @@
                     prefix-icon="el-icon-search" v-model="searchSrt" clearable></el-input>
 
           閫氶亾绫诲瀷:
-          <el-select size="mini" @change="search" style="margin-right: 1rem;" v-model="channelType" placeholder="璇烽�夋嫨"
+          <el-select size="mini" @change="search" style="width: 8rem; margin-right: 1rem;" v-model="channelType" placeholder="璇烽�夋嫨"
                      default-first-option>
             <el-option label="鍏ㄩ儴" value=""></el-option>
             <el-option label="璁惧" value="false"></el-option>
             <el-option label="瀛愮洰褰�" value="true"></el-option>
           </el-select>
           鍦ㄧ嚎鐘舵��:
-          <el-select size="mini" style="margin-right: 1rem;" @change="search" v-model="online" placeholder="璇烽�夋嫨"
+          <el-select size="mini" style="width: 8rem; margin-right: 1rem;" @change="search" v-model="online" placeholder="璇烽�夋嫨"
                      default-first-option>
             <el-option label="鍏ㄩ儴" value=""></el-option>
             <el-option label="鍦ㄧ嚎" value="true"></el-option>
             <el-option label="绂荤嚎" value="false"></el-option>
           </el-select>
-          娓呮櫚搴�:
-          <el-select size="mini" style="margin-right: 1rem;" @change="search" v-model="isSubStream" placeholder="璇烽�夋嫨"
-                     default-first-option>
-            <el-option label="鍘熺敾" :value="false"></el-option>
-            <el-option label="娴佺晠" :value="true"></el-option>
+          鐮佹祦绫诲瀷閲嶇疆:
+          <el-select size="mini" style="width: 16rem; margin-right: 1rem;" @change="subStreamChange" v-model="subStream"
+                     placeholder="璇烽�夋嫨鐮佹祦绫诲瀷" default-first-option >
+            <el-option label="stream:0(涓荤爜娴�)" value="stream:0"></el-option>
+            <el-option label="stream:1(瀛愮爜娴�)" value="stream:1"></el-option>
+            <el-option label="streamnumber:0(涓荤爜娴�-2022)" value="streamnumber:0"></el-option>
+            <el-option label="streamnumber:1(瀛愮爜娴�-2022)" value="streamnumber:1"></el-option>
+            <el-option label="streamprofile:0(涓荤爜娴�-澶у崕)" value="streamprofile:0"></el-option>
+            <el-option label="streamprofile:1(瀛愮爜娴�-澶у崕)" value="streamprofile:1"></el-option>
+            <el-option label="streamMode:main(涓荤爜娴�-姘存槦+TP-LINK)" value="streamMode:main"></el-option>
+            <el-option label="streamMode:sub(瀛愮爜娴�-姘存槦+TP-LINK)" value="streamMode:sub"></el-option>
           </el-select>
         </div>
         <el-button icon="el-icon-refresh-right" circle size="mini" @click="refresh()"></el-button>
@@ -46,11 +52,11 @@
       <el-main style="padding: 5px;">
         <el-table ref="channelListTable" :data="deviceChannelList" :height="winHeight" style="width: 100%"
                   header-row-class-name="table-header">
-          <el-table-column prop="channelId" label="閫氶亾缂栧彿" min-width="200">
+          <el-table-column prop="channelId" label="閫氶亾缂栧彿" min-width="180">
           </el-table-column>
-          <el-table-column prop="deviceId" label="璁惧缂栧彿" min-width="200">
+          <el-table-column prop="deviceId" label="璁惧缂栧彿" min-width="180">
           </el-table-column>
-          <el-table-column prop="name" label="閫氶亾鍚嶇О" min-width="200">
+          <el-table-column prop="name" label="閫氶亾鍚嶇О" min-width="180">
             <template v-slot:default="scope">
               <el-input
                 v-show="scope.row.edit"
@@ -63,7 +69,7 @@
               <span v-show="!scope.row.edit">{{ scope.row.name }}</span>
             </template>
           </el-table-column>
-          <el-table-column label="蹇収" min-width="120">
+          <el-table-column label="蹇収" min-width="100">
             <template v-slot:default="scope">
               <el-image
                 :src="getSnap(scope.row)"
@@ -77,11 +83,11 @@
               </el-image>
             </template>
           </el-table-column>
-          <el-table-column prop="subCount" label="瀛愯妭鐐规暟" min-width="120">
+          <el-table-column prop="subCount" label="瀛愯妭鐐规暟" min-width="100">
           </el-table-column>
-          <el-table-column prop="manufacture" label="鍘傚" min-width="120">
+          <el-table-column prop="manufacture" label="鍘傚" min-width="100">
           </el-table-column>
-          <el-table-column label="浣嶇疆淇℃伅" min-width="200">
+          <el-table-column label="浣嶇疆淇℃伅" min-width="120">
             <template v-slot:default="scope">
               <el-input
                 v-show="scope.row.edit"
@@ -94,9 +100,9 @@
               <span v-show="!scope.row.edit">{{ scope.row.location }}</span>
             </template>
           </el-table-column>
-          <el-table-column prop="PTZType" label="浜戝彴绫诲瀷" min-width="120">
+          <el-table-column prop="ptzType" label="浜戝彴绫诲瀷" min-width="100">
             <template v-slot:default="scope">
-              <el-select v-show="scope.row.edit" v-model="scope.row.PTZType"
+              <el-select v-show="scope.row.edit" v-model="scope.row.ptzType"
                          placeholder="浜戝彴绫诲瀷" filterable>
                 <el-option
                   v-for="(value, key) in ptzTypes"
@@ -105,16 +111,31 @@
                   :value="key"
                 />
               </el-select>
-              <div v-show="!scope.row.edit">{{ scope.row.PTZTypeText }}</div>
+              <div v-show="!scope.row.edit">{{ scope.row.ptzTypeText }}</div>
             </template>
           </el-table-column>
-          <el-table-column label="寮�鍚煶棰�" min-width="120">
+          <el-table-column label="寮�鍚煶棰�" min-width="100">
             <template slot-scope="scope">
               <el-switch @change="updateChannel(scope.row)" v-model="scope.row.hasAudio" active-color="#409EFF">
               </el-switch>
             </template>
           </el-table-column>
-          <el-table-column label="鐘舵��" min-width="120">
+          <el-table-column label="鐮佹祦绫诲瀷" min-width="180">
+            <template slot-scope="scope">
+              <el-select size="mini" style="margin-right: 1rem;" @change="channelSubStreamChange(scope.row)" v-model="scope.row.streamIdentification"
+                         placeholder="璇烽�夋嫨鐮佹祦绫诲瀷" default-first-option >
+                <el-option label="stream:0(涓荤爜娴�)" value="stream:0"></el-option>
+                <el-option label="stream:1(瀛愮爜娴�)" value="stream:1"></el-option>
+                <el-option label="streamnumber:0(涓荤爜娴�-2022)" value="streamnumber:0"></el-option>
+                <el-option label="streamnumber:1(瀛愮爜娴�-2022)" value="streamnumber:1"></el-option>
+                <el-option label="streamprofile:0(涓荤爜娴�-澶у崕)" value="streamprofile:0"></el-option>
+                <el-option label="streamprofile:1(瀛愮爜娴�-澶у崕)" value="streamprofile:1"></el-option>
+                <el-option label="streamMode:main(涓荤爜娴�-姘存槦+TP-LINK)" value="streamMode:main"></el-option>
+                <el-option label="streamMode:sub(瀛愮爜娴�-姘存槦+TP-LINK)" value="streamMode:sub"></el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column label="鐘舵��" min-width="100">
             <template slot-scope="scope">
               <div slot="reference" class="name-wrapper">
                 <el-tag size="medium" v-if="scope.row.status === true">鍦ㄧ嚎</el-tag>
@@ -122,8 +143,6 @@
               </div>
             </template>
           </el-table-column>
-
-
           <el-table-column label="鎿嶄綔" min-width="340" fixed="right">
             <template slot-scope="scope">
               <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-video-play"
@@ -159,13 +178,24 @@
                          @click="changeSubchannel(scope.row)">鏌ョ湅
               </el-button>
               <el-divider v-if="scope.row.subCount > 0 || scope.row.parental === 1" direction="vertical"></el-divider>
-              <el-button size="medium" v-bind:disabled="device == null || device.online === 0"
-                         icon="el-icon-video-camera"
-                         type="text" @click="queryRecords(scope.row)">璁惧褰曞儚
-              </el-button>
-              <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-cloudy"
-                         type="text" @click="queryCloudRecords(scope.row)">浜戠褰曞儚
-              </el-button>
+<!--              <el-button size="medium" v-bind:disabled="device == null || device.online === 0"-->
+<!--                         icon="el-icon-video-camera"-->
+<!--                         type="text" @click="queryRecords(scope.row)">璁惧褰曞儚-->
+<!--              </el-button>-->
+<!--              <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-cloudy"-->
+<!--                         type="text" @click="queryCloudRecords(scope.row)">浜戠褰曞儚-->
+<!--              </el-button>-->
+              <el-dropdown @command="(command)=>{moreClick(command, scope.row)}">
+                <el-button size="medium" type="text" >
+                  鏇村鍔熻兘<i class="el-icon-arrow-down el-icon--right"></i>
+                </el-button>
+                <el-dropdown-menu slot="dropdown">
+                  <el-dropdown-item command="records" v-bind:disabled="device == null || device.online === 0">
+                    璁惧褰曞儚</el-dropdown-item>
+                  <el-dropdown-item command="cloudRecords" v-bind:disabled="device == null || device.online === 0" >
+                    浜戠褰曞儚</el-dropdown-item>
+                </el-dropdown-menu>
+              </el-dropdown>
             </template>
           </el-table-column>
         </el-table>
@@ -213,7 +243,7 @@
       searchSrt: "",
       channelType: "",
       online: "",
-      isSubStream: false,
+      subStream: "",
       winHeight: window.innerHeight - 200,
       currentPage: 1,
       count: 15,
@@ -293,10 +323,12 @@
           that.total = res.data.data.total;
           that.deviceChannelList = res.data.data.list;
           that.deviceChannelList.forEach(e => {
-            e.PTZType = e.PTZType + "";
+            e.ptzType = e.ptzType + "";
             that.$set(e, "edit", false);
             that.$set(e, "location", "");
-            if (e.longitude && e.latitude) {
+            if (e.customLongitude && e.customLatitude) {
+              that.$set(e, "location", e.customLongitude + "," + e.customLatitude);
+            }else if (e.longitude && e.latitude) {
               that.$set(e, "location", e.longitude + "," + e.latitude);
             }
           });
@@ -352,6 +384,13 @@
         that.isLoging = false;
         // that.$message.error("璇锋眰瓒呮椂");
       });
+    },
+    moreClick: function (command, itemData) {
+      if (command === "records") {
+        this.queryRecords(itemData)
+      }else if (command === "cloudRecords") {
+        this.queryCloudRecords(itemData)
+      }
     },
     queryRecords: function (itemData) {
       let deviceId = this.deviceId;
@@ -441,10 +480,12 @@
             this.total = res.data.data.total;
             this.deviceChannelList = res.data.data.list;
             this.deviceChannelList.forEach(e => {
-              e.PTZType = e.PTZType + "";
+              e.ptzType = e.ptzType + "";
               this.$set(e, "edit", false);
               this.$set(e, "location", "");
-              if (e.longitude && e.latitude) {
+              if (e.customLongitude && e.customLatitude) {
+                this.$set(e, "location", e.customLongitude + "," + e.customLatitude);
+              }else if (e.longitude && e.latitude) {
                 this.$set(e, "location", e.longitude + "," + e.latitude);
               }
             });
@@ -495,6 +536,43 @@
         console.log(JSON.stringify(res));
       });
     },
+    subStreamChange: function () {
+      this.$confirm('纭畾閲嶇疆鎵�鏈夐�氶亾鐨勭爜娴佺被鍨�?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.$axios({
+          method: 'post',
+          url: `/api/device/query/channel/stream/identification/update/`,
+          params: {
+            deviceId: this.deviceId,
+            streamIdentification: this.subStream
+          }
+        }).then((res)=> {
+          console.log(JSON.stringify(res));
+          this.initData()
+        }).finally(()=>{
+          this.subStream = ""
+        })
+      }).catch(() => {
+        this.subStream = ""
+      });
+
+    },
+    channelSubStreamChange: function (row) {
+      this.$axios({
+        method: 'post',
+        url: `/api/device/query/channel/stream/identification/update/`,
+        params: {
+          deviceId: this.deviceId,
+          channelId: row.channelId,
+          streamIdentification: row.streamIdentification
+        }
+      }).then(function (res) {
+        console.log(JSON.stringify(res));
+      });
+    },
     refresh: function () {
       this.initData();
     },
@@ -526,12 +604,13 @@
       if (row.location) {
         const segements = row.location.split(",");
         if (segements.length !== 2) {
+          console.log(1)
           this.$message.warning("浣嶇疆淇℃伅鏍煎紡鏈夎锛屼緥锛�117.234,36.378");
           return;
         } else {
-          row.longitude = parseFloat(segements[0]);
-          row.latitude = parseFloat(segements[1]);
-          if (!(row.longitude && row.latitude)) {
+          row.customLongitude = parseFloat(segements[0]);
+          row.customLatitude = parseFloat(segements[1]);
+          if (!(row.customLongitude && row.customLatitude)) {
             this.$message.warning("浣嶇疆淇℃伅鏍煎紡鏈夎锛屼緥锛�117.234,36.378");
             return;
           }

--
Gitblit v1.8.0