From 554ea194fa4332e97c3def7e010acecde26b48d5 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 28 八月 2025 10:17:04 +0800
Subject: [PATCH] 前端页面的修改

---
 项目代码/前端/单机版/src/views/tts/UserManagement/Usermanagement.vue |   47 +++
 项目代码/前端/后台/src/views/Login/components/LoginForm.vue         |    8 
 项目代码/前端/后台/src/views/tts/PickAndDrop/PickAndDrop.vue        |  300 ++++++++++++++++--------
 项目代码/前端/单机版/src/utils/index.js                              |    3 
 项目代码/前端/后台/src/api/newapi/user.js                           |    3 
 项目代码/前端/单机版/src/api/newapi/Parameters.js                    |    3 
 项目代码/前端/单机版/src/layout/index.vue                            |   70 ++++-
 项目代码/前端/单机版/src/api/user.js                                 |    4 
 项目代码/前端/单机版/src/views/tts/PickAndDrop/PickAndDrop.vue       |  130 ++++------
 项目代码/前端/后台/src/api/newapi/Parameters.js                     |    5 
 项目代码/前端/单机版/src/assets/index/icon/主页图片.png                  |    0 
 项目代码/前端/后台/src/views/Authorization/iPaddress/iPaddress.vue  |   18 +
 项目代码/前端/后台/src/permission.ts                                |   12 
 项目代码/前端/单机版/src/views/tts/AlarmReset/AlarmReset.vue         |    1 
 项目代码/前端/后台/src/axios/service.ts                             |    2 
 项目代码/前端/后台/src/views/Authorization/Team/Team.vue            |    2 
 项目代码/前端/单机版/src/views/tts/PickAndDrop/Manualcontrol.vue     |   69 ++++-
 17 files changed, 446 insertions(+), 231 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/newapi/Parameters.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/newapi/Parameters.js"
index feaabef..9e5167d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/newapi/Parameters.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/newapi/Parameters.js"
@@ -11,3 +11,6 @@
 export const Pouse = () => http.post(`/api/Parameters/PauseButton`);
 //鑾峰彇褰撳墠浼哥缉鏉嗕綅缃�
 export const GetPosition = () => http.post(`/api/Parameters/CurrentLocation`);
+
+//鑾峰彇褰撳墠瀹㈡埛绔殑ip鍦板潃鏉ュ喅瀹氳棰戞祦
+export const GetStandid=()=>http.post(`/api/IPaddress/GetStandid`);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/user.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/user.js"
index 2304916..551bcf3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/user.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/api/user.js"
@@ -24,7 +24,9 @@
 //淇敼瀵嗙爜 id=${data.id}&
 export const UpdatePassword = (data) => http.post(`/api/User/modifyPwd?newPwd=${data.newPwd}&oldPwd=${data.oldPwd}`)
 //
-export const UpdatePwd = (data) => http.post(`/api/User/UpdatePwd?id=${data.id}&newPwd=${data.newPwd}&oldPwd=${data.oldPwd}`)
+// export const UpdatePwd = (data) => http.post(`/api/User/UpdatePwd?id=${data.id}&newPwd=${data.newPwd}&oldPwd=${data.oldPwd}`)
+export const UpdatePwd = (data) =>http.post(`/api/User/UpdatePwd?id=${encodeURIComponent(data.id)}&newPwd=${encodeURIComponent(data.newPwd)}&oldPwd=${encodeURIComponent(data.oldPwd)}`)
+
 
 //瀵煎嚭鐢ㄦ埛鍒楄〃
 export const ExportApi = (data) => http.download("/api/User/Export", data, "鐢ㄦ埛鍒楄〃鏁版嵁.xlsx", "鍔犺浇涓�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/assets/index/icon/\344\270\273\351\241\265\345\233\276\347\211\207.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/assets/index/icon/\344\270\273\351\241\265\345\233\276\347\211\207.png"
new file mode 100644
index 0000000..2de6313
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/assets/index/icon/\344\270\273\351\241\265\345\233\276\347\211\207.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/layout/index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/layout/index.vue"
index 26a8b4c..1447849 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/layout/index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/layout/index.vue"
@@ -34,17 +34,34 @@
               alt=""
             />
           </div>
-          <!-- <div style="color: red;font-size:1.8rem; align-items: center">
-             鎶ヨ锛�<span>{{
-              isfalsedata.length <= 0 ? "" : isfalsedata[0].AlarmContent
-            }}</span> 
-          </div> -->
           <!-- 鎷挎渶鏂扮殑涓�鏉℃暟鎹� -->
-          <div style="color: red;font-size:1.8rem; align-items: center">
+          <!-- <div style="color: red;font-size:1.8rem; align-items: center">
           <span>{{
                 isfalsedata.length <= 0 ? "" : isfalsedata[isfalsedata.length - 1].AlarmContent
                 }}</span> 
+          </div> -->
+          <div style="
+            display: flex;
+            justify-content: center;
+            align-items: center;
+            width: 45%;
+          ">
+              <img
+                style="
+                  width: 3.88rem;
+                  height: 3.88rem;
+                  cursor: pointer;
+                "
+                src="@/assets/index/icon/涓婚〉鍥剧墖.png"
+                alt=""
+                @click="router.push({ path: '/index' })"
+              />
+               <!--@/assets/index/icon/home.png 
+              <span style="margin-right: 1.81rem;font-size: 2.88rem;color: rgb(255, 255, 255)"
+                  @click="router.push({ path: '/index' })"
+              >杩斿洖</span> -->
           </div>
+             
           
           
           <!-- 鍗犱綅 -->
@@ -70,7 +87,8 @@
                 >鏉冮檺淇敼</span
               > -->
 
-              <img
+              <!-- 鍏ㄥ眬 -->
+              <!-- <img
                 v-if="!isFullscreen"
                 style="
                   width: 2.88rem;
@@ -81,7 +99,7 @@
                 src="@/assets/screen.png"
                 alt=""
                 @click="screenonToggle"
-              />
+              /> -->
               <img
                 v-if="isFullscreen"
                 style="
@@ -94,20 +112,23 @@
                 alt=""
                 @click="screenonToggle"
               />
-              <img
+              <!-- 杩斿洖涓婚〉 -->
+              <!-- <img
                 style="
                   width: 2.88rem;
                   height: 2.88rem;
-                  margin-right: 1.81rem;
                   cursor: pointer;
                 "
                 src="@/assets/index/icon/home.png"
                 alt=""
                 @click="router.push({ path: '/index' })"
-              />
+              /> -->
+              <!-- <span style="margin-right: 1.81rem;font-size: 1.88rem;color: rgb(255, 255, 255)"
+                  @click="router.push({ path: '/index' })"
+              >杩斿洖</span> -->
               <div>
                 <span
-                  style="color: rgb(255, 255, 255); font-size: 1.88rem"
+                  style="color: rgb(255, 255, 255);cursor: pointer; font-size: 1.88rem; ;"
                   class="tetxsize"
                   >瑙掕壊锛歿{ acountInfo.roleName }}</span
                 >
@@ -119,7 +140,8 @@
                   >濮撳悕锛歿{ acountInfo.userTrueName }}</span
                 >
               </div>
-              <img
+              <!-- 澶村儚 -->
+              <!-- <img
                 v-if="avatar"
                 @click="to(links[0])"
                 :src="avatar"
@@ -146,9 +168,10 @@
                   overflow: hidden;
                   box-shadow: 0rem 0.13rem 0.38rem 0rem rgba(0, 0, 0, 0.4);
                 "
-              />
+              /> -->
 
-              <div
+              <!-- 鐢ㄦ埛鍚� -->
+              <!-- <div
                 style="
                   cursor: pointer;
                   line-height: 1.25rem;
@@ -159,8 +182,10 @@
                 class="tetxsize"
               >
                 {{ userName }}
-              </div>
+              </div> -->
             </div>
+             
+            <!--閫�鍑哄浘鐗� -->
             <img
               @click="to(links[1])"
               src="@/assets/index/loginout.png"
@@ -169,9 +194,22 @@
                 height: 2.44rem;
                 height: 2.44rem;
                 margin-left: 0.69rem;
+                margin-right: 1.81rem;
               "
               alt=""
             />
+            <!-- 鍏ㄥ眬鏂规硶鍥剧墖 -->
+            <img
+                v-if="!isFullscreen"
+                style="
+                  width: 2.88rem;
+                  height: 2.88rem;
+                  cursor: pointer;
+                "
+                src="@/assets/screen.png"
+                alt=""
+                @click="screenonToggle"
+              />
           </div>
         </div>
       </header>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/utils/index.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/utils/index.js"
index 5ab22c0..07301a1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/utils/index.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/utils/index.js"
@@ -1,11 +1,12 @@
 import { dayjs } from "element-plus";
 // import XLSX from "xlsx"; //瀵煎叆xlsx
 
-export const baseUrl = "http://127.0.0.1:1598"
+export const baseUrl = "http://192.168.1.103:9093"
 // http://127.0.0.1:1598
 // http://192.168.1.103:9093 浠ュ墠绾夸笂鍦板潃
 
 export const faceRecognitionUrl = "http://192.168.1.103:9095"
+// export const faceRecognitionUrl = "http://127.0.0.1:1598"
 
 //瀵硅薄杞現ormData鐢熸垚鏂规硶
 export function objToFormData(obj) {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/AlarmReset/AlarmReset.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/AlarmReset/AlarmReset.vue"
index a4a8bf5..7662d84 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/AlarmReset/AlarmReset.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/AlarmReset/AlarmReset.vue"
@@ -103,6 +103,7 @@
   clearInterval(timer.value);
   // 鍒涘缓WebSocket杩炴帴
   //"ws://127.0.0.1:9295/admin"
+  //ws://192.168.1.103:5173
   //192.168.1.103
   client.value = new WebSocket("ws://192.168.1.103:5173/");
   client.value.onopen = function () {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/Manualcontrol.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/Manualcontrol.vue"
index 7e9a5b3..8162b30 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/Manualcontrol.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/Manualcontrol.vue"
@@ -565,6 +565,7 @@
   AutoPickAndDrop,
   Pouse,
   GetParameter,
+  GetStandid,
 } from "@/api/newapi/Parameters.js";
 // import EZUIKit from "ezuikit-js";
 
@@ -778,26 +779,63 @@
 const webRtcServer_left = ref(null)
 const webRtcServer_right = ref(null)
 
-// 鎽勫儚澶� RTSP 鍦板潃锛屾敞鎰� %23 鏇夸唬 #锛岃繖鏄� URL 缂栫爜 瑙嗛缂栫爜鏍煎紡 浠� H.265 淇敼涓� H.264锛�265涓嶆敮鎸�
-const rtspLeft = 'rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/101'
-const rtspRight = 'rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/201'
+// 鎽勫儚澶� RTSP 鍦板潃锛屾敞鎰� %23 鏇夸唬 #锛岃繖鏄� URL 缂栫爜 ;瑙嗛缂栫爜鏍煎紡 浠� H.265 淇敼涓� H.264锛�265涓嶆敮鎸�
+const videoStreamList = [
+  // index = StationID - 1锛屽搴� StationID = 1 鏃跺彇绗� 0 椤�
+  {
+    left: "rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/101",
+    right: "rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/201"
+  },
+  {
+    left: "rtsp://admin:MXmx2380%23@192.168.1.169:554/Streaming/Channels/101",
+    right: "rtsp://admin:MXmx2380%23@192.168.1.169:554/Streaming/Channels/201"
+  },
+  {
+    left: "rtsp://admin:MXmx2380%23@192.168.1.170:554/Streaming/Channels/101",
+    right: "rtsp://admin:MXmx2380%23@192.168.1.170:554/Streaming/Channels/201"
+  }
+  // 鍙互缁х画娣诲姞鏇村绔欑偣娴佸湴鍧�
+];
+const getStationId = async () => {
+  try {
+    const res = await GetStandid()
+     console.log("鎵嬪姩瑙嗛鐩戞帶绔欑偣",res)
+    if (res.status) {
+      const stationId = parseInt(res.data);
+      initVideoByStationId(stationId);
+    } else {
+      ElMessage.error("鑾峰彇绔欑偣缂栧彿澶辫触锛�" + res.message);
+    }
+  } catch (err) {
+    ElMessage.error("璇锋眰澶辫触锛�" + err.message);
+  }
+};
 
 // WebRtcStreamer 鏈嶅姟鍦板潃
 const serverUrl = 'http://192.168.1.103:8000' // 鈫� 鏀逛负浣犺繍琛岀殑閭e彴鐢佃剳鐨� IP
 
-const initVideo = () => {
-  try {
-    webRtcServer_left.value = new WebRtcStreamer('video_left', serverUrl)
-    webRtcServer_left.value.connect(rtspLeft)
+const initVideoByStationId = (stationId) => {
+  const index = stationId - 1;
 
-    webRtcServer_right.value = new WebRtcStreamer('video_right', serverUrl)
-    webRtcServer_right.value.connect(rtspRight)
-
-    console.log('瑙嗛鍒濆鍖栧畬鎴�')
-  } catch (err) {
-    ElMessage.error('瑙嗛鍒濆鍖栧け璐�: ' + err.message)
+  if (index < 0 || index >= videoStreamList.length) {
+    ElMessage.error("鏃犳晥鐨勭珯鐐圭紪鍙凤細" + stationId);
+    return;
   }
-}
+
+  const rtspUrls = videoStreamList[index];
+
+  try {
+    webRtcServer_left.value = new WebRtcStreamer("video_left", serverUrl);
+    webRtcServer_left.value.connect(rtspUrls.left);
+
+    webRtcServer_right.value = new WebRtcStreamer("video_right", serverUrl);
+    webRtcServer_right.value.connect(rtspUrls.right);
+
+    console.log("瑙嗛鍒濆鍖栧畬鎴愶細", rtspUrls);
+  } catch (err) {
+    ElMessage.error("瑙嗛鍒濆鍖栧け璐�: " + err.message);
+  }
+};
 
 //閿�姣佽棰戝嚱鏁�
 const destroyVideo = () => {
@@ -835,7 +873,8 @@
 
 
 onMounted(() => {
-  initVideo(),
+   getStationId(); // 椤甸潰鍔犺浇鏃惰嚜鍔ㄨ幏鍙栧苟鎾斁瑙嗛
+  // initVideo(),
   isStart.value = true; // 璁剧疆涓哄紑濮嬬姸鎬�
   createSocket();
   getParameter();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/PickAndDrop.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/PickAndDrop.vue"
index bddf55c..79db6ef 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/PickAndDrop.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/PickAndDrop/PickAndDrop.vue"
@@ -37,25 +37,9 @@
             <div class="item">缂╁埌浣�:{{ 0 }}</div>
             <div class="item">浼稿嚭閫熷害:{{ ruleForm.extendSpeed }}</div>
             <div class="item">缂╁洖閫熷害:{{ ruleForm.extendSpeed }}</div>
-            <!-- <div class="open">
-              <div class="city">
-                <div class="dotted"></div>
-                <div class="pulse1"></div>
-                <div class="pulse2"></div>
-                <div class="pulse3"></div>
-              </div>
-            </div> -->
           </div>
         <!-- 瑙嗛妗� -->
         <div style="display: flex; justify-content: center">
-          <!-- <div
-            style="
-              display: flex;
-              flex-direction: column;
-              align-items: center;
-              width: 80%;
-            "
-          > -->
          <!-- 妯睆瑙嗛鐩戞帶宸︿晶 -->
             <div class="video_l">
               <video
@@ -82,30 +66,12 @@
           <span>鍙充晶璀︽儠鏈烘瀯</span>
           <span></span>
         </div>
-        <!-- 瑙嗛妗� -->
-       
-          <!-- <div
-            style="
-              display: flex;
-              flex-direction: column;
-              align-items: center;
-              width: 80%;
-            "
-          > -->
          <div class="operate">
             <div class="item">浼稿埌浣�:{{ ruleForm.leftPosition }}</div>
             <!--  ruleForm.leftPosition -->
             <div class="item">缂╁埌浣�:{{ 0 }}</div>
             <div class="item">浼稿嚭閫熷害:{{ ruleForm.extendSpeed }}</div>
             <div class="item">缂╁洖閫熷害:{{ ruleForm.extendSpeed }}</div>
-            <!-- <div class="open">
-              <div class="city">
-                <div class="dotted"></div>
-                <div class="pulse1"></div>
-                <div class="pulse2"></div>
-                <div class="pulse3"></div>
-              </div>
-            </div> -->
           </div>
            <div style="display: flex; justify-content: center;">
           <!-- 妯睆瑙嗛鐩戞帶鍙充晶 -->
@@ -120,8 +86,6 @@
                 height="100%"
               ></video>
             </div>
-          <!-- </div> -->
-         
         </div>
       </div>
     </div>
@@ -144,18 +108,8 @@
           <div class="item">缂╁埌浣�:{{ 0 }}</div>
           <div class="item">浼稿嚭閫熷害:{{ ruleForm.extendSpeed }}</div>
           <div class="item">缂╁洖閫熷害:{{ ruleForm.extendSpeed }}</div>
-          <!-- <div class="open">
-            <div class="city">
-              <div class="dotted"></div>
-              <div class="pulse1"></div>
-              <div class="pulse2"></div>
-              <div class="pulse3"></div>
-            </div>
-          </div> -->
         </div>
-        <!-- <span style="color: #fff; font-size: 2.5rem; font-weight: bold"
-              >瑙嗛鐩戞帶宸︿晶</span
-            > -->
+
         <div  style="display: flex; flex-direction: column; align-items: center">
           <div class="video_l">
             <video
@@ -186,18 +140,7 @@
           <div class="item">缂╁埌浣�:{{ 0 }}</div>
           <div class="item">浼稿嚭閫熷害:{{ ruleForm.retractionSpeed }}</div>
           <div class="item">缂╁洖閫熷害:{{ ruleForm.retractionSpeed }}</div>
-          <!-- <div class="open">
-            <div class="city">
-              <div class="dotted"></div>
-              <div class="pulse1"></div>
-              <div class="pulse2"></div>
-              <div class="pulse3"></div>
-            </div>
-          </div> -->
         </div>
-         <!-- <span style="color: #fff; font-size: 2.5rem; font-weight: bold"
-              >瑙嗛鐩戞帶鍙充晶</span
-            > -->
         <div style="display: flex; flex-direction: column; align-items: center">
           <div class="video_r">
             <video
@@ -233,6 +176,7 @@
   Pouse,
   GetPosition,
   GetParameter,
+  GetStandid
 } from "@/api/newapi/Parameters.js";
 
 const router = useRouter();
@@ -251,8 +195,6 @@
   retractionSpeed: 0,
   manualExtend: 0,
   manualRetraction: 0,
-  // depid: userInfo.depid,
-  // account: userInfo.userName,
   leftPosition: 0,
   rightPosition: 0,
 });
@@ -347,31 +289,66 @@
 const webRtcServer_right = ref(null);
 
 // 鎽勫儚澶� RTSP 鍦板潃锛屾敞鎰� %23 鏇夸唬 #锛岃繖鏄� URL 缂栫爜
-const rtspLeft =
-  "rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/101";
-const rtspRight =
-  "rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/201";
+const videoStreamList = [
+  // index = StationID - 1锛屽搴� StationID = 1 鏃跺彇绗� 0 椤�
+  {
+    left: "rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/101",
+    right: "rtsp://admin:MXmx2380%23@192.168.1.168:554/Streaming/Channels/201"
+  },
+  {
+    left: "rtsp://admin:MXmx2380%23@192.168.1.169:554/Streaming/Channels/101",
+    right: "rtsp://admin:MXmx2380%23@192.168.1.169:554/Streaming/Channels/201"
+  },
+  {
+    left: "rtsp://admin:MXmx2380%23@192.168.1.170:554/Streaming/Channels/101",
+    right: "rtsp://admin:MXmx2380%23@192.168.1.170:554/Streaming/Channels/201"
+  }
+  // 鍙互缁х画娣诲姞鏇村绔欑偣娴佸湴鍧�
+];
+const getStationId = async () => {
+  try {
+    const res = await GetStandid()
+     console.log("瑙嗛鐩戞帶绔欑偣",res)
+    if (res.status) {
+      const stationId = parseInt(res.data);
+      initVideoByStationId(stationId);/// 浼犻�掑埌瑙嗛鍒濆鍖栧嚱鏁帮紙璋冪敤鏂规硶锛�
+    } else {
+      ElMessage.error("鑾峰彇绔欑偣缂栧彿澶辫触锛�" + res.message);
+    }
+  } catch (err) {
+    ElMessage.error("璇锋眰澶辫触锛�" + err.message);
+  }
+};
+
+
 
 // WebRtcStreamer 鏈嶅姟鍦板潃
 const serverUrl = "http://192.168.1.103:8000"; // 鈫� 鏀逛负浣犺繍琛岀殑閭e彴鐢佃剳鐨� IP
 
-const initVideo = () => {
+//鏍规嵁鍚庣杩斿洖鐨勪笉鍚屾暟瀛楁潵璇诲彇涓嶅悓鐨勮棰戠洃鎺ф祦
+const initVideoByStationId = (stationId) => {
+  const index = stationId - 1;
+
+  if (index < 0 || index >= videoStreamList.length) {
+    ElMessage.error("鏃犳晥鐨勭珯鐐圭紪鍙凤細" + stationId);
+    return;
+  }
+
+  const rtspUrls = videoStreamList[index];
+
   try {
     webRtcServer_left.value = new WebRtcStreamer("video_left", serverUrl);
-    webRtcServer_left.value.connect(rtspLeft);
+    webRtcServer_left.value.connect(rtspUrls.left);
 
     webRtcServer_right.value = new WebRtcStreamer("video_right", serverUrl);
-    webRtcServer_right.value.connect(rtspRight);
+    webRtcServer_right.value.connect(rtspUrls.right);
 
-    console.log(
-      "瑙嗛鍒濆鍖栧畬鎴�",
-      webRtcServer_left.value,
-      webRtcServer_right.value
-    );
+    console.log("瑙嗛鍒濆鍖栧畬鎴愶細", rtspUrls);
   } catch (err) {
     ElMessage.error("瑙嗛鍒濆鍖栧け璐�: " + err.message);
   }
 };
+
 
 const destroyVideo = () => {
   if (webRtcServer_left.value) {
@@ -386,7 +363,8 @@
 
 // 浠ヤ笂鏄棰戠洃鎺�
 onMounted(() => {
-  initVideo();
+   getStationId(); // 椤甸潰鍔犺浇鏃惰嚜鍔ㄨ幏鍙栧苟鎾斁瑙嗛
+  // initVideoByStationId();
   //鐩戝惉绐楀彛澶у皬鍙樺寲
   window.addEventListener("resize", () => {
     nextTick(() => {
@@ -430,9 +408,6 @@
 const isPortrait = ref(checkOrientation() === 'portrait');
 
 onActivated(() => {
-  // 缂撳瓨椤甸潰 鎵撳紑椤甸潰 瀹炵幇鎾斁
-  // const video = document.getElementById("video");
-  // video.paused && video.play();
   ["video_left", "video_right"].forEach((id) => {
     const video = document.getElementById(id);
     if (video && video.paused) video.play();
@@ -441,9 +416,6 @@
 // 椤甸潰鍋滅敤
 
 onDeactivated(() => {
-  // 缂撳瓨椤甸潰 绂诲紑椤甸潰 瀹炵幇鏆傚仠
-  // const video = document.getElementById("video");
-  // video.play && video.pause();
   ["video_left", "video_right"].forEach((id) => {
     const video = document.getElementById(id);
     if (video && !video.paused) video.pause();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/UserManagement/Usermanagement.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/UserManagement/Usermanagement.vue"
index f18e391..dc40136 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/UserManagement/Usermanagement.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\215\225\346\234\272\347\211\210/src/views/tts/UserManagement/Usermanagement.vue"
@@ -1,6 +1,6 @@
 <template>
   <div class="Usermanagement">
-    <div class="content">
+    <div class="content" >
       <div class="checkbox">
         <div
           :class="['item', isactive == 1 ? 'isactive' : '']"
@@ -208,7 +208,7 @@
           >
         </div>
       </div>
-      <div style="margin-top: 1rem; height: 100%">
+      <div style="margin-top: 1rem; height: 90%">
         <!-- 鐢ㄦ埛鍒楄〃 -->
         <el-table
           empty-text="鏆傛棤鏁版嵁"
@@ -575,7 +575,7 @@
           <el-table-column prop="unitName" label="鍗曚綅鍚嶇О" align="center" />
           <el-table-column prop="creater" label="鍒涘缓鑰�" align="center" />
           <el-table-column prop="createDate" label="鍒涘缓鏃ユ湡" align="center" />
-          <el-table-column label="鎿嶄綔" align="center">
+          <el-table-column label="鎿嶄綔"  >
             <template #default="scope">
               <span
                 v-if="
@@ -638,7 +638,8 @@
         >
           <el-table-column type="selection" align="center" />
           <el-table-column prop="iPaddress" label="ip鍦板潃" align="center" />
-          <el-table-column prop="addressname" label="妫�淇亾" align="center" />
+          <el-table-column prop="addressname" label="璁惧鍚嶇О" align="center" />
+          <el-table-column prop="stationID" label="妫�淇亾" align="center" />
           <el-table-column label="鎿嶄綔" align="center">
             <template #default="scope">
               <span
@@ -1387,7 +1388,7 @@
               fontSize: isMin ? '2rem' : '1rem',
               fontWeight: 'bold',
             }"
-            >鐢ㄦ埛ip</span
+            >璁惧ip</span
           >
         </div>
       </template>
@@ -1444,14 +1445,44 @@
                   color: 'black',
                   fontWeight: bold,
                 }"
-                >妫�淇亾</span
+                >璁惧鍚嶇О</span
               >
+              
             </div>
           </template>
           <el-input
             style="height: 2rem"
             size="small"
             v-model="formip.addressname"
+            placeholder="璇疯緭鍏�"
+          />
+        </el-form-item>
+         <el-form-item prop="stationID">
+          <template #label>
+            <div style="display: flex; align-items: flex-end">
+              <span
+                :style="{
+                  color: 'red',
+                  marginRight: '0.2rem',
+                  fontSize: '2rem',
+                }"
+                >*</span
+              >
+              <span
+                :style="{
+                  fontSize: isMin ? '2rem' : '0.88rem',
+                  color: 'black',
+                  fontWeight: bold,
+                }"
+                >杞ㄩ亾绔�</span
+              >
+              
+            </div>
+          </template>
+          <el-input
+            style="height: 2rem"
+            size="small"
+            v-model="formip.stationID"
             placeholder="璇疯緭鍏�"
           />
         </el-form-item>
@@ -2446,6 +2477,7 @@
     getIpData();
   }
 };
+//绂佹椤甸潰婊戝姩
 
 //鎵归噺鍒犻櫎
 const ids = ref([]);
@@ -2718,6 +2750,7 @@
   id: 0,
   iPaddress: "",
   addressname: "",
+  stationID:0
 });
 const formipRef = ref(null);
 //鑾峰彇ip鏁版嵁
@@ -2780,6 +2813,7 @@
 onMounted(() => {
   if (window.innerWidth <= 1080) {
     isMin.value = true;
+    // document.body.style.overflow = "hidden";
   }
   //鎵撳嵃褰撳墠灞忓箷瀹藉害
   userInfo.value = JSON.parse(localStorage.getItem("user"));
@@ -2802,6 +2836,7 @@
     width: 100%;
     display: flex;
     flex-direction: column;
+    
 
     .checkbox {
       width: 25rem;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/Parameters.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/Parameters.js"
index 7b1ac95..1674fc5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/Parameters.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/Parameters.js"
@@ -8,4 +8,7 @@
 //鏆傚仠
 export const Pause = (data) => request.post({ url: `/api/Parameters/PauseButton?deptid=${data}` });
 //鍥炲幓浼哥缉鏉嗗綋鍓嶄綅缃�
-export const GetPosition = (data) => request.post({ url: `/api/Parameters/CurrentLocation?deptid=${data}` });
\ No newline at end of file
+export const GetPosition = (data) => request.post({ url: `/api/Parameters/CurrentLocation?deptid=${data}` });
+
+//杩斿洖浼哥缉鏉嗘瘡鍙皃lc璁剧疆鐨勫弬鏁�
+export const BackfillSpeed=(data)=>request.post({ url: `/api/Parameters/BackfillSpeed?plank=${data}` });
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/user.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/user.js"
index 208b74c..8e7eb85 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/user.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/api/newapi/user.js"
@@ -24,7 +24,8 @@
 //淇敼瀵嗙爜 id=${data.id}&
 export const UpdatePassword = (data) => request.post({ url: `/api/User/modifyPwd?newPwd=${data.newPwd}&oldPwd=${data.oldPwd}` })
 //
-export const UpdatePwd = (data) => request.post({ url: `/api/User/UpdatePwd?id=${data.id}&newPwd=${data.newPwd}&oldPwd=${data.oldPwd}` })
+// export const UpdatePwd = (data) => request.post({ url: `/api/User/UpdatePwd?id=${data.id}&newPwd=${data.newPwd}&oldPwd=${data.oldPwd}` })
+export const UpdatePwd = (data) =>http.post(`/api/User/UpdatePwd?id=${encodeURIComponent(data.id)}&newPwd=${encodeURIComponent(data.newPwd)}&oldPwd=${encodeURIComponent(data.oldPwd)}`)
 
 //瀵煎嚭鐢ㄦ埛鍒楄〃
 export const ExportApi = (data) => http.download("/api/User/Export", data, "鐢ㄦ埛鍒楄〃鏁版嵁.xlsx", "鍔犺浇涓�");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/axios/service.ts" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/axios/service.ts"
index 9354273..2054b3a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/axios/service.ts"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/axios/service.ts"
@@ -20,7 +20,7 @@
 // 'http://192.168.1.103:9090' //涓婄嚎鍦板潃
 // 'http://192.168.0.80:1596'
 axiosInstance.interceptors.request.use((res: InternalAxiosRequestConfig) => {
-  const controller = new AbortController()
+  const controller = new AbortController()  
   const url = res.url || ''
   res.signal = controller.signal
   abortControllerMap.set(
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/permission.ts" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/permission.ts"
index a14c3a8..9ef315d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/permission.ts"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/permission.ts"
@@ -39,9 +39,17 @@
         await permissionStore.generateRoutes('static')
       }
 
+      // permissionStore.getAddRouters.forEach((route) => {
+      //   router.addRoute(route as unknown as RouteRecordRaw) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
+      // })
+      //涓嬮潰鏄垜鑷繁淇敼鐨勮矾鐢辫闂柟寮忥紙涓婇潰璁块棶4000璺緞鎬绘槸鎶ラ敊锛�
       permissionStore.getAddRouters.forEach((route) => {
-        router.addRoute(route as unknown as RouteRecordRaw) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
-      })
+      const normalizedRoute = {
+        ...route,
+        path: route.path.startsWith('/') ? route.path : `/${route.path}` // [!code ++]
+      };
+      router.addRoute(normalizedRoute as unknown as RouteRecordRaw); // [!code ++]
+    });
       const redirectPath = from.query.redirect || to.path
       const redirect = decodeURIComponent(redirectPath as string)
       const nextData = to.path === redirect ? { ...to, replace: true } : { path: redirect }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/Team/Team.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/Team/Team.vue"
index 1c5c494..3aa45d1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/Team/Team.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/Team/Team.vue"
@@ -111,7 +111,7 @@
   })
 }
 
-// 缂栬緫鐝粍
+// 缂栬緫鐝粍 
 const EditTream = (val) => {
   Treamtype.value = "淇敼"
   formTeam.value = Object.assign({}, val)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/iPaddress/iPaddress.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/iPaddress/iPaddress.vue"
index ffa329f..cf1bf53 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/iPaddress/iPaddress.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Authorization/iPaddress/iPaddress.vue"
@@ -160,6 +160,7 @@
   formIP.value = {
     iPaddress: '',
     addressname: '',
+    stationID:0,
     createDate: formatTime(new Date()),
     creater: JSON.parse(localStorage.getItem('user')).userName
   }
@@ -236,7 +237,8 @@
     >
       <el-table-column type="selection" align="center" />
       <el-table-column prop="iPaddress" label="IP鍦板潃" align="center" />
-      <el-table-column prop="addressname" label="妫�淇亾" align="center" />
+      <el-table-column prop="addressname" label="璁惧鍚嶇О" align="center" />
+      <el-table-column prop="stationID" label="妫�淇亾" align="center" />
       <!-- <el-table-column prop="creater" label="鍒涘缓鑰�" align="center" /> -->
       <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" align="center" />
       <el-table-column label="鎿嶄綔" align="center">
@@ -335,6 +337,20 @@
           placeholder="璇疯緭鍏ユ淇亾鍚嶇О"
         />
       </el-form-item>
+      <el-form-item prop="stationID">
+        <template #label>
+          <div style="display: flex; align-items: flex-end">
+            <span style="color: red; margin-right: 0.2rem">*</span>
+            <span style="font-size: 0.88rem; color: black; font-weight: bold">妫�淇亾鍙�</span>
+          </div>
+        </template>
+        <el-input
+          style="height: 2rem"
+          size="small"
+          v-model="formIP.stationID"
+          placeholder="璇疯緭鍏ユ淇亾鍙�"
+        />
+      </el-form-item>
     </el-form>
     <template #footer>
       <div class="dialog-footer" style="text-align: center">
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Login/components/LoginForm.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Login/components/LoginForm.vue"
index 53a8486..d2f38c7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Login/components/LoginForm.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/Login/components/LoginForm.vue"
@@ -197,7 +197,9 @@
               addRoute(route as RouteRecordRaw) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
             })
             permissionStore.setIsAddRouters(true)
-            push({ path: redirect.value || permissionStore.addRouters[0].path })
+           // push({ path: redirect.value || permissionStore.addRouters[0].path })
+         
+           push({ path: '/PickAndDrop' })
           }
         }
       } finally {
@@ -228,7 +230,9 @@
       addRoute(route as RouteRecordRaw) // 鍔ㄦ�佹坊鍔犲彲璁块棶璺敱琛�
     })
     permissionStore.setIsAddRouters(true)
-    push({ path: redirect.value || permissionStore.addRouters[0].path })
+    // push({ path: redirect.value || permissionStore.addRouters[0].path })
+
+    push({ path: '/tts/PickAndDrop' })
   }
 }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/tts/PickAndDrop/PickAndDrop.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/tts/PickAndDrop/PickAndDrop.vue"
index 1729b30..0383d24 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/tts/PickAndDrop/PickAndDrop.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\211\215\347\253\257/\345\220\216\345\217\260/src/views/tts/PickAndDrop/PickAndDrop.vue"
@@ -115,7 +115,7 @@
     <div v-if="isMobile" class="content">
       <div class="content_l">
         <div class="model">宸︿晶浼哥缉鏉�</div>
-        <div class="operate" style="opacity: 0">
+        <div class="operate" style="opacity: 100">
           <div class="item">浼稿埌浣�</div>
           <div class="item">缂╁埌浣�</div>
           <div class="item">浼稿嚭閫熷害</div>
@@ -138,7 +138,7 @@
       </div>
       <div class="content_r">
         <div class="model">鍙充晶浼哥缉鏉�</div>
-        <div class="operate" style="opacity: 0">
+        <div class="operate" style="opacity: 100">
           <div class="item">浼稿埌浣�</div>
           <div class="item">缂╁埌浣�</div>
           <div class="item">浼稿嚭閫熷害</div>
@@ -164,9 +164,9 @@
     <div v-else class="content_mobile">
       <div class="content_l">
         <div style="display: flex; align-items: center">
-          <div class="model">宸︿晶浼哥缉鏉�</div>
+          <div class="model">宸︿晶绔栧睆浼哥缉鏉�</div>
           <div class="mode"></div>
-          <div class="operate" style="opacity: 0">
+          <div class="operate" style="opacity:100">
             <div class="item">浼稿埌浣�</div>
             <div class="item">缂╁埌浣�</div>
             <div class="item">浼稿嚭閫熷害</div>
@@ -190,9 +190,9 @@
       </div>
       <div class="content_r">
         <div style="display: flex; align-items: center">
-          <div class="model">鍙充晶浼哥缉鏉�</div>
+          <div class="model">鍙充晶绔栧睆浼哥缉鏉�</div>
           <div class="mode"></div>
-          <div class="operate" style="opacity: 0">
+          <div class="operate" style="opacity: 100">
             <div class="item">浼稿埌浣�</div>
             <div class="item">缂╁埌浣�</div>
             <div class="item">浼稿嚭閫熷害</div>
@@ -221,6 +221,7 @@
     <!-- 閫氳繃鏍囩椤靛垏鎹㈤儴闂紝骞跺姩鎬佸姞杞借閮ㄩ棬鐨勪綅缃暟鎹�� -->
     <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> 
       <el-tab-pane v-for="item in list" :key="item.id" :label="item.name" :name="item.id">
+       <!-- Manualcontrol锛氭帶鍒舵í灞� -->
         <div class="Manualcontrol">
           <div class="button">
             <el-button
@@ -304,10 +305,10 @@
                 </div>
               </div>
               <div class="operate">
-                <div class="item">浼稿埌浣�</div>
-                <div class="item">缂╁埌浣�</div>
-                <div class="item">浼稿嚭閫熷害</div>
-                <div class="item">缂╁洖閫熷害</div>
+                <div class="item">浼稿埌浣峽{ruleForm.leftPosition}}</div>
+                <div class="item">缂╁埌浣峽{0}}</div>
+                <div class="item">浼稿嚭閫熷害{{ruleForm.extendSpeed}}</div>
+                <div class="item">缂╁洖閫熷害{{ruleForm.extendSpeed}}</div>
                 <!-- <div class="open">
                   <div class="city">
                     <div class="dotted"></div>
@@ -406,10 +407,10 @@
                 </div>
               </div>
               <div class="operate">
-                <div class="item">浼稿埌浣�</div>
-                <div class="item">缂╁埌浣�</div>
-                <div class="item">浼稿嚭閫熷害</div>
-                <div class="item">缂╁洖閫熷害</div>
+                <div class="item">浼稿埌浣峽{ruleForm.leftPosition}}</div>
+                <div class="item">缂╁埌浣峽{0}}</div>
+                <div class="item">浼稿嚭閫熷害{{ruleForm.extendSpeed}}</div>
+                <div class="item">缂╁洖閫熷害{{ruleForm.extendSpeed}}</div>
                 <!-- <div class="open">
                   <div class="city">
                     <div class="dotted"></div>
@@ -499,17 +500,17 @@
                     <span style="font-size: 1.25rem; text-align: center">鐐瑰姩缂�</span>
                   </el-button>
                 </div>
-                <div style="color: #fff; font-size: 1.5rem"> 宸︿晶浼哥缉鏉� </div>
+                <div style="color: #fff; font-size: 1.5rem"> 宸︿晶绔栧睆鎵嬪姩浼哥缉鏉� </div>
                 <div style="color: #fff; font-size: 1.5rem">
                   <!-- 褰撳墠浼哥缉鏉嗕綅缃�:{{ Position.left }} -->
                   </div>
               </div>
               <!-- 鎶� style鍘绘帀灏辨樉绀轰簡-->
-              <div class="operate" style="opacity: 0"> 
-                <div class="item">浼稿埌浣�</div>
-                <div class="item">缂╁埌浣�</div>
-                <div class="item">浼稿嚭閫熷害</div>
-                <div class="item">缂╁洖閫熷害</div>
+              <div class="operate" style="opacity: 100"> 
+               <div class="item">浼稿埌浣峽{ruleForm.leftPosition}}</div>
+                <div class="item">缂╁埌浣峽{0}}</div>
+                <div class="item">浼稿嚭閫熷害{{ruleForm.extendSpeed}}</div>
+                <div class="item">缂╁洖閫熷害{{ruleForm.extendSpeed}}</div>
                 <!-- <div class="open">
                   <div class="city">
                     <div class="dotted"></div>
@@ -521,11 +522,21 @@
               </div>
               <div style="display: flex; flex-direction: column; align-items: center">
                 <div class="video_l">
-                  <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
+                  <!-- <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
                     >绔栧睆鎵嬪姩瑙嗛鐩戞帶宸︿晶</span
                   >
-                  <img src="@/assets/imgs/right.png" alt="" />
+                  <img src="@/assets/imgs/right.png" alt="" /> -->
+                  <video
+                id="video_left"
+                autoplay
+                muted
+                controls
+                playsinline
+                width="100%"
+                height="100%"
+              ></video>
                 </div>
+                
               </div>
             </div>
             <div class="content_r">
@@ -596,16 +607,16 @@
                     <span style="font-size: 1.25rem; text-align: center">鐐瑰姩缂�</span>
                   </el-button>
                 </div>
-                <div style="color: #fff; font-size: 1.5rem"> 鍙充晶浼哥缉鏉� </div>
+                <div style="color: #fff; font-size: 1.5rem"> 鍙充晶绔栧睆鎵嬪姩浼哥缉鏉� </div>
                 <div style="color: #fff; font-size: 1.5rem">
                   <!-- 褰撳墠浼哥缉鏉嗕綅缃�:{{ Position.right }} -->
                   </div>
               </div>
-              <div class="operate" style="opacity: 0">
-                <div class="item">浼稿埌浣�</div>
-                <div class="item">缂╁埌浣�</div>
-                <div class="item">浼稿嚭閫熷害</div>
-                <div class="item">缂╁洖閫熷害</div>
+              <div class="operate" style="opacity:100">
+            <div class="item">浼稿埌浣峽{ruleForm.leftPosition}}</div>
+                <div class="item">缂╁埌浣峽{0}}</div>
+                <div class="item">浼稿嚭閫熷害{{ruleForm.extendSpeed}}</div>
+                <div class="item">缂╁洖閫熷害{{ruleForm.extendSpeed}}</div>
                 <!-- <div class="open">
                   <div class="city">
                     <div class="dotted"></div>
@@ -617,11 +628,20 @@
               </div>
               <div style="display: flex; flex-direction: column; align-items: center">
                 <div class="video_r">
-                  <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
+                  <!-- <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
                     >瑙嗛鐩戞帶鍙充晶58</span
                   >
                 
-                  <img src="@/assets/imgs/left.png" alt="" />
+                  <img src="@/assets/imgs/left.png" alt="" /> -->
+                  <video
+                id="video_left"
+                autoplay
+                muted
+                controls
+                playsinline
+                width="100%"
+                height="100%"
+              ></video>
                 </div>
               </div>
             </div>
@@ -639,6 +659,7 @@
         <el-radio :value="3">妫�淇亾涓�</el-radio>
         <el-radio :value="4">妫�淇亾鍥�</el-radio>
         <el-radio :value="5">妫�淇亾浜�</el-radio>
+        <el-radio :value="6">妫�淇亾鍏�</el-radio>
       </el-radio-group>
     </div>
     <template #footer>
@@ -653,7 +674,7 @@
 import { ref, onMounted, nextTick ,onUnmounted,onActivated,onDeactivated ,onBeforeUnmount} from 'vue'
 import { useRouter } from 'vue-router'
 import { ElMessage } from 'element-plus'
-import { AutoPickAndDrop, ManualOperation, Pause, GetPosition } from '@/api/newapi/Parameters.js'
+import { AutoPickAndDrop, ManualOperation, Pause, GetPosition,BackfillSpeed } from '@/api/newapi/Parameters.js'
 const activeName = ref('first')
 const router = useRouter()
 const isShow = ref(false)
@@ -749,6 +770,49 @@
   console.log(res)
 }, 2000)
 
+//瀹氫箟浼哥缉鏉嗚繑鍥為�熷害鍙傛暟
+const ruleForm = ref({
+  id: 0,
+  extendSpeed: 0,
+  retractionSpeed: 0,
+  manualExtend: 0,
+  manualRetraction: 0,
+  leftPosition: 0,
+  rightPosition: 0,
+});
+
+//璋冪敤杩斿洖浼哥缉鏉嗚缃弬鏁�
+const GetfillSpeed= async(DeptId)=>{
+  try{
+    const res = await BackfillSpeed(DeptId)
+    // console.log('DeptId',DeptId)
+    console.log("杩斿洖閫熷害淇℃伅",res)
+    if(res.status === true){
+      if(res.code === 0){
+         ruleForm.value.extendSpeed = res.data == null ? 0 : res.data.extendSpeed;
+      ruleForm.value.retractionSpeed =
+        res.data == null ? 0 : res.data.retractionSpeed;
+      ruleForm.value.manualExtend =
+        res.data == null ? 0 : res.data.manualExtend;
+      ruleForm.value.manualRetraction =
+        res.data == null ? 0 : res.data.manualRetraction;
+      ruleForm.value.leftPosition =
+        res.data == null ? 0 : res.data.leftPosition;
+      ruleForm.value.rightPosition =
+        res.data == null ? 0 : res.data.rightPosition;
+      }else{
+        ElMessage.error(res.message)
+      }
+    }else{
+      ElMessage.error('鑾峰彇浼哥缉鏉嗛�熷害澶辫触')
+    } 
+  }
+  catch(error){
+    console.error(error)
+    ElMessage.error('鑾峰彇浼哥缉鏉嗛�熷害澶辫触')
+  }
+}
+
 
 
 // 閫氳繃鏍囩椤靛垏鎹㈤儴闂紝骞跺姩鎬佸姞杞借閮ㄩ棬鐨勪綅缃暟鎹��
@@ -781,17 +845,17 @@
 const webRtcServer_left = ref(null)
 const webRtcServer_right = ref(null)
 
+
 //鍒囨崲鏍囩
 const handleClick = (tab, event) => {
   destroyVideo()//鍒囨崲鐨勬椂鍊欐秷闄や笂娆$殑瑙嗛鐩戞帶娴�
-  console.log(tab.index);
+  console.log("褰撳墠鏍囩涓嬭〃",tab.index);
 
   DeptId.value = Number(tab.index) + 1
-  // GetPosition(DeptId.value).then((res) => {
-  //   Position.value.left = res.data.lift
-  //   Position.value.right = res.data.right
-  // })
+  console.log('褰撳墠閮ㄩ棬ID:', DeptId.value)
   
+  GetfillSpeed(DeptId.value)
+
   rstp.value=srtpaddres[tab.index].left
   rstp1.value=srtpaddres[tab.index].right
 }
@@ -895,12 +959,13 @@
 }
 
 onMounted(() => {
+   GetfillSpeed(1) //鑾峰彇浼哥缉鏉嗛�熷害
   initVideo()//寮�濮嬬殑鏃跺�欏鍏ヨ棰戠洃鎺ф祦
   // 鐩戝惉绐楀彛澶у皬鍙樺寲
   window.addEventListener('resize', () => {
     nextTick(() => {
       if (window.innerWidth > 1200) {
-        isMobile.value = true
+        isMobile.value = true //榛樿鏄í灞�
       } else {
         isMobile.value = false
       }
@@ -980,20 +1045,6 @@
           top: -0.25rem;
           border-radius: 50%;
         }
-
-        // .Aspan::after {
-        //   content: '';
-        //   position: absolute;
-        //   height: 0.66rem;
-        //   /* 璁剧疆杈规鐨勯暱搴� */
-        //   width: 0.66rem;
-        //   /* 璁剧疆杈规鐨勫搴� */
-        //   background-color: rgba(102, 255, 255, 1);
-        //   /* 璁剧疆杈规鐨勯鑹� */
-        //   right: -9.5rem;
-        //   top: -0.25rem;
-        //   border-radius: 50%;
-        // }
       }
 
       .btn::after {
@@ -1033,9 +1084,9 @@
   .content {
     display: flex;
     .content_l {
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
+      // display: flex;
+      // flex-direction: column;
+      // justify-content: space-between;
       width: 50%;
       height: 45rem;
       background-color: rgba(9, 48, 104, 1);
@@ -1050,11 +1101,19 @@
         font-size: 2rem;
       }
 
+      //妯睆鑷姩椤甸潰宸﹁竟
       .operate {
+        // display: flex;
+        // margin-left: auto;
+        // flex-direction: column;
+        // align-items: flex-end;
+        // padding: 0.58rem 0.58rem;
         display: flex;
-        flex-direction: column;
-        align-items: flex-end;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
         padding: 0.58rem 0.58rem;
+        margin-bottom: 10px;
 
         .item {
           display: flex;
@@ -1074,6 +1133,7 @@
           font-size: 1.13rem;
           padding-left: 0.69rem;
           margin-top: 0.88rem;
+          margin-left: 1rem;
         }
 
         .open {
@@ -1176,10 +1236,11 @@
       }
     }
 
+    //妯睆鑷姩椤甸潰鍙宠竟
     .content_r {
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
+      // display: flex;
+      // flex-direction: column;
+      // justify-content: space-between;
       width: 50%;
       height: 45rem;
       background-color: rgba(9, 48, 104, 1);
@@ -1195,11 +1256,18 @@
         font-size: 2rem;
       }
 
+      //妯睆鑷姩椤甸潰鍙宠竟
       .operate {
-        display: flex;
-        flex-direction: column;
-        align-items: flex-end;
+        // display: flex;
+        // flex-direction: column;
+        // align-items: flex-end;
+        // padding: 0.58rem 0.58rem;
+             display: flex;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
         padding: 0.58rem 0.58rem;
+        margin-bottom: 10px;
         .item {
           display: flex;
           flex-direction: column;
@@ -1218,6 +1286,7 @@
           font-size: 1.13rem;
           padding-left: 0.69rem;
           margin-top: 0.88rem;
+          margin-left: 10px;
         }
 
         .open {
@@ -1321,6 +1390,7 @@
     }
   }
 
+// 鎺у埗绔栧睆鏍峰紡
   .content_mobile {
     display: flex;
     flex-direction: column;
@@ -1343,10 +1413,15 @@
       }
 
       .operate {
+        // display: flex;
+        // flex-direction: column;
+        // align-items: flex-end;
+        // padding: 0 0.88rem;
         display: flex;
-        flex-direction: column;
-        align-items: flex-end;
-        padding: 0 0.88rem;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
+        padding: 0.58rem 0.58rem;
         .item {
           display: flex;
           flex-direction: column;
@@ -1365,6 +1440,7 @@
           font-size: 1.13rem;
           padding-left: 0.69rem;
           margin-top: 0.88rem;
+          margin-right: 1rem;
         }
 
         .open {
@@ -1483,10 +1559,15 @@
       }
 
       .operate {
-        display: flex;
-        flex-direction: column;
-        align-items: flex-end;
-        padding: 0 0.88rem;
+        // display: flex;
+        // flex-direction: column;
+        // align-items: flex-end;
+        // padding: 0 0.88rem;
+             display: flex;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
+        padding: 0.58rem 0.58rem;
         .item {
           display: flex;
           flex-direction: column;
@@ -1505,6 +1586,7 @@
           font-size: 1.13rem;
           padding-left: 0.69rem;
           margin-top: 0.88rem;
+          margin-right: 1rem;
         }
 
         .open {
@@ -1639,20 +1721,6 @@
         top: -0.25rem;
         border-radius: 50%;
       }
-
-      // .Aspan::after {
-      //   content: '';
-      //   position: absolute;
-      //   height: 0.66rem;
-      //   /* 璁剧疆杈规鐨勯暱搴� */
-      //   width: 0.66rem;
-      //   /* 璁剧疆杈规鐨勫搴� */
-      //   background-color: rgba(102, 255, 255, 1);
-      //   /* 璁剧疆杈规鐨勯鑹� */
-      //   right: -11.8rem;
-      //   top: -0.25rem;
-      //   border-radius: 50%;
-      // }
     }
 
     .btn::after {
@@ -1691,9 +1759,9 @@
   .content {
     display: flex;
     .content_l {
-      display: flex;
-      flex-direction: column;
-      justify-content: space-between;
+      // display: flex;
+      // flex-direction: column;
+      // // justify-content: space-between;
       width: 50%;
       height: 45rem;
       background-color: rgba(9, 48, 104, 1);
@@ -1723,8 +1791,11 @@
 
       .operate {
         display: flex;
-        flex-direction: column;
-        align-items: flex-end;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
+        padding: 0.58rem 0.58rem;
+        
         .item {
           display: flex;
           flex-direction: column;
@@ -1732,6 +1803,7 @@
           width: 8.75rem;
           height: 3.19rem;
           border-radius: 0.31rem;
+          margin-left:0.5rem ;
           background: linear-gradient(
             90deg,
             rgba(0, 224, 255, 0.74) 0%,
@@ -1742,7 +1814,8 @@
           color: rgb(255, 255, 255);
           font-size: 1.13rem;
           padding-left: 0.69rem;
-          margin-top: 0.88rem;
+          margin-top: 1rem;
+          margin-bottom: 1rem;
         }
 
         .open {
@@ -1846,9 +1919,9 @@
     }
 
     .content_r {
-      display: flex;
-      justify-content: space-between;
-      flex-direction: column;
+      // display: flex;
+      // justify-content: space-between;
+      // flex-direction: column;
       width: 50%;
       height: 45rem;
       background-color: rgba(9, 48, 104, 1);
@@ -1880,9 +1953,14 @@
       }
 
       .operate {
-        display: flex;
-        align-items: flex-end;
-        flex-direction: column;
+        // display: flex;
+        // align-items: flex-end;
+        // flex-direction: column;
+        // padding: 0.58rem 0.58rem;
+             display: flex;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
         padding: 0.58rem 0.58rem;
 
         .item {
@@ -1891,6 +1969,7 @@
           justify-content: center;
           width: 8.75rem;
           height: 3.19rem;
+          margin-left:0.5rem ;
           border-radius: 0.31rem;
           background: linear-gradient(
             90deg,
@@ -1902,7 +1981,8 @@
           color: rgb(255, 255, 255);
           font-size: 1.13rem;
           padding-left: 0.69rem;
-          margin-top: 0.88rem;
+          margin-top: 1rem;
+          margin-bottom: 1rem;
         }
 
         .open {
@@ -2043,10 +2123,15 @@
       }
 
       .operate {
-        display: flex;
-        flex-direction: column;
-        align-items: flex-end;
-        padding: 0.88rem 0.58rem;
+        // display: flex;
+        // flex-direction: column;
+        // align-items: flex-end;
+        // padding: 0.88rem 0.58rem;
+             display: flex;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
+        padding: 0.58rem 0.58rem;
         .item {
           display: flex;
           flex-direction: column;
@@ -2054,6 +2139,7 @@
           width: 8.75rem;
           height: 4.19rem;
           border-radius: 0.31rem;
+          margin-right: 1rem;
           background: linear-gradient(
             90deg,
             rgba(0, 224, 255, 0.74) 0%,
@@ -2199,10 +2285,15 @@
       }
 
       .operate {
-        display: flex;
-        flex-direction: column;
-        padding: 0 0.88rem;
-        align-items: flex-end;
+        // display: flex;
+        // flex-direction: column;
+        // padding: 0 0.88rem;
+        // align-items: flex-end;
+             display: flex;
+        flex-direction: row; // 妯悜鎺掑垪
+        align-items: center; // 鍨傜洿灞呬腑
+        justify-content: flex-start; // 闈犲乏
+        padding: 0.58rem 0.58rem;
         .item {
           display: flex;
           flex-direction: column;
@@ -2210,6 +2301,7 @@
           width: 8.75rem;
           height: 4.19rem;
           border-radius: 0.31rem;
+          margin-right: 1rem;
           background: linear-gradient(
             90deg,
             rgba(0, 224, 255, 0.74) 0%,

--
Gitblit v1.9.3