From 772190e7b2e3f6ef0695ba54d9209324acdcb30a Mon Sep 17 00:00:00 2001
From: 艺术家 <10819716+q100102@user.noreply.gitee.com>
Date: 星期三, 04 六月 2025 13:57:17 +0800
Subject: [PATCH] 伸缩杆代码提交

---
 项目代码/伸缩杆/client/src/views/Login.vue                                   |   62 +
 项目代码/伸缩杆/client/src/assets/index/icon/icon41.png                      |    0 
 项目代码/伸缩杆/client/src/assets/index/icon/icon4.png                       |    0 
 项目代码/伸缩杆/client/src/views/tts/Parametersettings/Parametersettings.vue |  157 --
 项目代码/伸缩杆/client/src/assets/index/icon/icon3.png                       |    0 
 项目代码/伸缩杆/client/package.json                                          |    1 
 项目代码/伸缩杆/client/src/layout/index.vue                                  |   85 -
 项目代码/可视化大屏/client/src/views/Index.vue                                 |   17 
 项目代码/伸缩杆/client/src/api/newapi/Maintenance.js                         |    2 
 项目代码/伸缩杆/client/src/assets/index/icon/icon11.png                      |    0 
 项目代码/伸缩杆/client/index.html                                            |   12 
 项目代码/可视化大屏.7z                                                         |    0 
 项目代码/伸缩杆/client/pnpm-lock.yaml                                        |  179 +++
 项目代码/伸缩杆/client/src/components/basic/VolElementMenuChild.vue          |    3 
 项目代码/伸缩杆/client/src/assets/index/icon/icon31.png                      |    0 
 项目代码/伸缩杆/client/src/views/tts/DataLogging/Datalogging.vue             |  232 +++-
 项目代码/伸缩杆/client/src/api/user.js                                       |   19 
 项目代码/伸缩杆/client/src/api/newapi/MaintenanceTeam.js                     |    6 
 项目代码/可视化大屏/client/src/layout/index.vue                                |    4 
 项目代码/伸缩杆/client/src/assets/index/icon/icon6.png                       |    0 
 项目代码/伸缩杆/client/src/views/tts/AlarmReset/AlarmReset.vue               |  102 +
 项目代码/伸缩杆/client/src/views/tts/PickAndDrop/Manualcontrol.vue           |  591 ++++++-----
 项目代码/伸缩杆/client/src/assets/index/icon/icon1.png                       |    0 
 项目代码/伸缩杆/client/src/assets/login/bg1.png                              |    0 
 项目代码/伸缩杆/client/src/assets/index/icon/icon61.png                      |    0 
 项目代码/伸缩杆/client/src/views/Index.vue                                   |   37 
 项目代码/伸缩杆/client/src/api/newapi/AlarmReset.js                          |    6 
 项目代码/伸缩杆/client/src/assets/index/icon/icon21.png                      |    0 
 项目代码/伸缩杆/client/src/views/tts/UserManagement/Usermanagement.vue       | 1166 +++++++++++++++++++---
 项目代码/伸缩杆/client/src/assets/index/icon/icon5.png                       |    0 
 项目代码/伸缩杆/client/src/components/basic/VolElementMenu.vue               |    2 
 项目代码/伸缩杆/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue         |   70 +
 项目代码/伸缩杆/client/src/assets/index/icon/icon2.png                       |    0 
 项目代码/伸缩杆/client/src/views/system/Sys_Menu.vue                         |  177 ++-
 项目代码/伸缩杆/client/src/assets/login/bg.png                               |    0 
 项目代码/伸缩杆/client/src/views/tts/PickAndDrop/PickAndDrop.vue             |  171 ++
 36 files changed, 2,272 insertions(+), 829 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/index.html" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/index.html"
index c4c824c..03f24ce 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/index.html"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/index.html"
@@ -23,10 +23,20 @@
     </noscript> -->
     <div id="app"></div>
     <script type="module" src="/src/main.js"></script>
+
+    <!--涓変釜蹇呰鐨刯s鏂囦欢寮曞叆-->
     <script src="/webControl/jquery-1.12.4.min.js"></script>
     <script src="/webControl/jsencrypt.min.js"></script>
+    <!-- 鐢ㄤ簬RSA鍔犲瘑 -->
     <script src="/webControl/web-control_1.2.7.min.js"></script>
-    <script src="/webControl/webVideoCtrl.js" type="text/javascript"></script>
+
+    <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
+    <script type="text/javascript">
+      var Ip = returnCitySN["cip"];
+      var cityname = returnCitySN["cname"];
+      localStorage.setItem("Ip", Ip);
+      localStorage.setItem("cityname", cityname);
+    </script>
   </body>
 </html>
 <style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/package.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/package.json"
index d85aaea..3c84c05 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/package.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/package.json"
@@ -18,6 +18,7 @@
     "echarts": "^5.6.0",
     "element-china-area-data": "^6.1.0",
     "element-plus": "^2.9.9",
+    "ezuikit-js": "8.1.9-beta.3",
     "pinia": "^2.3.0",
     "screenfull": "^6.0.2",
     "scss": "^0.2.4",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/pnpm-lock.yaml" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/pnpm-lock.yaml"
index 41278f5..5467445 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/pnpm-lock.yaml"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/pnpm-lock.yaml"
@@ -35,6 +35,9 @@
       element-plus:
         specifier: ^2.9.9
         version: 2.9.9(vue@3.5.13)
+      ezuikit-js:
+        specifier: 8.1.9-beta.3
+        version: 8.1.9-beta.3
       pinia:
         specifier: ^2.3.0
         version: 2.3.1(vue@3.5.13)
@@ -415,6 +418,27 @@
     cpu: [x64]
     os: [win32]
 
+  '@ezuikit/player-ezopen@8.1.9-beta.3':
+    resolution: {integrity: sha512-4YEA/Otp/lW8iiCOhgajhpkrbdFePUN3oMnSumrvYvDfiIMAKJLAiAmCCiXieoJ8hIzrCeXKjYUPgY5/HALHdg==}
+
+  '@ezuikit/player-plugin-record@8.1.8-beta.3':
+    resolution: {integrity: sha512-YcQ5MR8zyg8b+o/ktr6r+YCXkiEX43HVmzVkfJsERgaokaHzoNIpOomEl51j/13gcemjSXuN6i1apCRC2v32pg==}
+
+  '@ezuikit/utils-collect@0.1.1':
+    resolution: {integrity: sha512-BgEOnTtAq8rQRBAKv5rLXbQLGOnfOZ6NS0QTmiviey80JbMJlxrLiqmjL5lxvkm4JtCcXCtSgPA4tskQKN4eDA==}
+
+  '@ezuikit/utils-i18n@1.0.1':
+    resolution: {integrity: sha512-uUjN3ADHV2ZG4QznuA7FB89/ck8AGV4qS8hm/sqeSA6/ie4ryYw8MS4wIv71WgPBIgIVDfASuEapyLOwq7R2aQ==}
+
+  '@ezuikit/utils-logger@1.0.1':
+    resolution: {integrity: sha512-qak0MXh4vWZCji3aSCfHdWR3EbZCaqS0iMT8/QWuWPRr0vDmTRMP3kFOAw1MuMraR0ocjPBE2PaTEmUuwVqaAw==}
+
+  '@ezuikit/utils-service@1.0.1':
+    resolution: {integrity: sha512-iNjYuU7AScBJxvKBM9PjiGI2y64QJNPT/H1Fy/Y7ZIAlw4DO//TP+x50qCho+i+EOUpWLtOqBQvtRb7a0O4X4Q==}
+
+  '@ezuikit/utils-tools@1.0.4':
+    resolution: {integrity: sha512-w+LZ03qowSqrSqDnuONKPpmEn0cuCaF2pkgHL1YicR0of/ZelCho5X8cy5TXQe7UsrQkIM2M7vVennv5KnAdpQ==}
+
   '@floating-ui/core@1.7.0':
     resolution: {integrity: sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==}
 
@@ -441,6 +465,9 @@
 
   '@jridgewell/trace-mapping@0.3.25':
     resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+  '@juggle/resize-observer@3.4.0':
+    resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
 
   '@kurkle/color@0.3.4':
     resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
@@ -702,6 +729,9 @@
     resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
     engines: {node: '>=10.0.0'}
 
+  abortcontroller-polyfill@1.7.8:
+    resolution: {integrity: sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==}
+
   address@1.2.2:
     resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==}
     engines: {node: '>= 10.0.0'}
@@ -766,6 +796,9 @@
 
   big.js@5.2.2:
     resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
+
+  bignumber.js@9.3.0:
+    resolution: {integrity: sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==}
 
   birpc@0.2.19:
     resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==}
@@ -891,6 +924,9 @@
   dayjs@1.11.13:
     resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
 
+  debounce-promise@3.1.2:
+    resolution: {integrity: sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==}
+
   debug@4.4.0:
     resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
     engines: {node: '>=6.0'}
@@ -899,6 +935,10 @@
     peerDependenciesMeta:
       supports-color:
         optional: true
+
+  deepmerge@4.3.1:
+    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+    engines: {node: '>=0.10.0'}
 
   default-browser-id@5.0.0:
     resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
@@ -919,6 +959,9 @@
   delayed-stream@1.0.0:
     resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
     engines: {node: '>=0.4.0'}
+
+  delegate@3.2.0:
+    resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==}
 
   destroy@1.2.0:
     resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
@@ -1008,6 +1051,9 @@
   estree-walker@2.0.2:
     resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
 
+  eventemitter3@5.0.1:
+    resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+
   execa@9.5.2:
     resolution: {integrity: sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==}
     engines: {node: ^18.19.0 || >=20.5.0}
@@ -1015,6 +1061,9 @@
   extend-shallow@2.0.1:
     resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
     engines: {node: '>=0.10.0'}
+
+  ezuikit-js@8.1.9-beta.3:
+    resolution: {integrity: sha512-BtpkKOafxRmZroVcol5yOpASVHi1ddUy7DGzFb/TLkoh3VER7xEOzJepiK0O7dOsXAMmxXwooMLO+DIfMXFXnw==}
 
   fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
@@ -1024,6 +1073,10 @@
 
   fast-uri@3.0.6:
     resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+
+  fetch-blob@3.2.0:
+    resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
+    engines: {node: ^12.20 || >= 14.13}
 
   figgy-pudding@3.5.2:
     resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
@@ -1056,6 +1109,10 @@
   form-data@4.0.2:
     resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
     engines: {node: '>= 6'}
+
+  formdata-polyfill@4.0.10:
+    resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
+    engines: {node: '>=12.20.0'}
 
   formstream@1.5.1:
     resolution: {integrity: sha512-q7ORzFqotpwn3Y/GBK2lK7PjtZZwJHz9QE9Phv8zb5IrL9ftGLyi2zjGURON3voK8TaZ+mqJKERYN4lrHYTkUQ==}
@@ -1144,6 +1201,9 @@
 
   humanize-ms@1.2.1:
     resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+
+  i18n-js@4.5.1:
+    resolution: {integrity: sha512-n7jojFj1WC0tztgr0I8jqTXuIlY1xNzXnC3mjKX/YjJhimdM+jXM8vOmn9d3xQFNC6qDHJ4ovhdrGXrRXLIGkA==}
 
   iconv-lite@0.6.3:
     resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
@@ -1241,6 +1301,9 @@
   isstream@0.1.2:
     resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
 
+  jquery@3.7.1:
+    resolution: {integrity: sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==}
+
   js-base64@2.6.4:
     resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
 
@@ -1318,6 +1381,9 @@
   make-dir@2.1.0:
     resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
     engines: {node: '>=6'}
+
+  make-plural@7.4.0:
+    resolution: {integrity: sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==}
 
   math-intrinsics@1.1.0:
     resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
@@ -1407,6 +1473,11 @@
 
   neo-async@2.6.2:
     resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+  node-domexception@1.0.0:
+    resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+    engines: {node: '>=10.5.0'}
+    deprecated: Use your platform's native DOMException instead
 
   node-hex@1.0.1:
     resolution: {integrity: sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==}
@@ -1760,6 +1831,10 @@
     resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
     engines: {node: '>= 10.13.0'}
 
+  screenfull@5.2.0:
+    resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==}
+    engines: {node: '>=0.10.0'}
+
   screenfull@6.0.2:
     resolution: {integrity: sha512-AQdy8s4WhNvUZ6P8F6PB21tSPIYKniic+Ogx0AacBMjKP1GUHN2E9URxQHtCusiwxudnCKkdy4GrHXPPJSkCCw==}
     engines: {node: ^14.13.1 || >=16.0.0}
@@ -1917,6 +1992,9 @@
   typedarray@0.0.6:
     resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
 
+  ua-parser-js@1.0.37:
+    resolution: {integrity: sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ==}
+
   uglify-js@3.19.3:
     resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
     engines: {node: '>=0.8.0'}
@@ -1970,6 +2048,10 @@
   utility@1.18.0:
     resolution: {integrity: sha512-PYxZDA+6QtvRvm//++aGdmKG/cI07jNwbROz0Ql+VzFV1+Z0Dy55NI4zZ7RHc9KKpBePNFwoErqIuqQv/cjiTA==}
     engines: {node: '>= 0.12.0'}
+
+  uuid@8.3.2:
+    resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+    hasBin: true
 
   varint@6.0.0:
     resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==}
@@ -2097,6 +2179,10 @@
 
   wangeditor@4.7.15:
     resolution: {integrity: sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg==}
+
+  web-streams-polyfill@3.3.3:
+    resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
+    engines: {node: '>= 8'}
 
   webpack-sources@1.4.3:
     resolution: {integrity: sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==}
@@ -2428,6 +2514,38 @@
   '@esbuild/win32-x64@0.25.1':
     optional: true
 
+  '@ezuikit/player-ezopen@8.1.9-beta.3':
+    dependencies:
+      '@ezuikit/player-plugin-record': 8.1.8-beta.3
+      '@ezuikit/utils-i18n': 1.0.1
+      '@ezuikit/utils-logger': 1.0.1
+      '@ezuikit/utils-service': 1.0.1
+      '@ezuikit/utils-tools': 1.0.4
+      '@juggle/resize-observer': 3.4.0
+      dayjs: 1.11.13
+      deepmerge: 4.3.1
+      eventemitter3: 5.0.1
+      jquery: 3.7.1
+      screenfull: 5.2.0
+      ua-parser-js: 1.0.37
+
+  '@ezuikit/player-plugin-record@8.1.8-beta.3': {}
+
+  '@ezuikit/utils-collect@0.1.1': {}
+
+  '@ezuikit/utils-i18n@1.0.1':
+    dependencies:
+      i18n-js: 4.5.1
+
+  '@ezuikit/utils-logger@1.0.1': {}
+
+  '@ezuikit/utils-service@1.0.1':
+    dependencies:
+      '@ezuikit/utils-tools': 1.0.4
+      dayjs: 1.11.13
+
+  '@ezuikit/utils-tools@1.0.4': {}
+
   '@floating-ui/core@1.7.0':
     dependencies:
       '@floating-ui/utils': 0.2.9
@@ -2455,6 +2573,8 @@
     dependencies:
       '@jridgewell/resolve-uri': 3.1.2
       '@jridgewell/sourcemap-codec': 1.5.0
+
+  '@juggle/resize-observer@3.4.0': {}
 
   '@kurkle/color@0.3.4': {}
 
@@ -2726,6 +2846,8 @@
 
   '@xmldom/xmldom@0.8.10': {}
 
+  abortcontroller-polyfill@1.7.8: {}
+
   address@1.2.2: {}
 
   aes-decrypter@4.0.2:
@@ -2820,6 +2942,8 @@
   balanced-match@1.0.2: {}
 
   big.js@5.2.2: {}
+
+  bignumber.js@9.3.0: {}
 
   birpc@0.2.19: {}
 
@@ -2956,9 +3080,13 @@
 
   dayjs@1.11.13: {}
 
+  debounce-promise@3.1.2: {}
+
   debug@4.4.0:
     dependencies:
       ms: 2.1.3
+
+  deepmerge@4.3.1: {}
 
   default-browser-id@5.0.0: {}
 
@@ -2974,6 +3102,8 @@
   define-lazy-prop@3.0.0: {}
 
   delayed-stream@1.0.0: {}
+
+  delegate@3.2.0: {}
 
   destroy@1.2.0: {}
 
@@ -3093,6 +3223,8 @@
 
   estree-walker@2.0.2: {}
 
+  eventemitter3@5.0.1: {}
+
   execa@9.5.2:
     dependencies:
       '@sindresorhus/merge-streams': 4.0.0
@@ -3112,11 +3244,34 @@
     dependencies:
       is-extendable: 0.1.1
 
+  ezuikit-js@8.1.9-beta.3:
+    dependencies:
+      '@ezuikit/player-ezopen': 8.1.9-beta.3
+      '@ezuikit/utils-collect': 0.1.1
+      '@ezuikit/utils-i18n': 1.0.1
+      '@ezuikit/utils-logger': 1.0.1
+      '@ezuikit/utils-tools': 1.0.4
+      '@juggle/resize-observer': 3.4.0
+      abortcontroller-polyfill: 1.7.8
+      debounce-promise: 3.1.2
+      deepmerge: 4.3.1
+      delegate: 3.2.0
+      formdata-polyfill: 4.0.10
+      jquery: 3.7.1
+      lodash-es: 4.17.21
+      screenfull: 5.2.0
+      uuid: 8.3.2
+
   fast-deep-equal@3.1.3: {}
 
   fast-json-stable-stringify@2.1.0: {}
 
   fast-uri@3.0.6: {}
+
+  fetch-blob@3.2.0:
+    dependencies:
+      node-domexception: 1.0.0
+      web-streams-polyfill: 3.3.3
 
   figgy-pudding@3.5.2: {}
 
@@ -3147,6 +3302,10 @@
       combined-stream: 1.0.8
       es-set-tostringtag: 2.1.0
       mime-types: 2.1.35
+
+  formdata-polyfill@4.0.10:
+    dependencies:
+      fetch-blob: 3.2.0
 
   formstream@1.5.1:
     dependencies:
@@ -3247,6 +3406,12 @@
     dependencies:
       ms: 2.1.3
 
+  i18n-js@4.5.1:
+    dependencies:
+      bignumber.js: 9.3.0
+      lodash: 4.17.21
+      make-plural: 7.4.0
+
   iconv-lite@0.6.3:
     dependencies:
       safer-buffer: 2.1.2
@@ -3314,6 +3479,8 @@
   isobject@3.0.1: {}
 
   isstream@0.1.2: {}
+
+  jquery@3.7.1: {}
 
   js-base64@2.6.4: {}
 
@@ -3396,6 +3563,8 @@
     dependencies:
       pify: 4.0.1
       semver: 5.7.2
+
+  make-plural@7.4.0: {}
 
   math-intrinsics@1.1.0: {}
 
@@ -3485,6 +3654,8 @@
     optional: true
 
   neo-async@2.6.2: {}
+
+  node-domexception@1.0.0: {}
 
   node-hex@1.0.1: {}
 
@@ -3805,6 +3976,8 @@
       ajv-formats: 2.1.1(ajv@8.17.1)
       ajv-keywords: 5.1.0(ajv@8.17.1)
 
+  screenfull@5.2.0: {}
+
   screenfull@6.0.2: {}
 
   scss@0.2.4:
@@ -3953,6 +4126,8 @@
 
   typedarray@0.0.6: {}
 
+  ua-parser-js@1.0.37: {}
+
   uglify-js@3.19.3: {}
 
   uglifyjs-webpack-plugin@2.2.0:
@@ -4017,6 +4192,8 @@
       mkdirp: 0.5.6
       mz: 2.7.0
       unescape: 1.0.1
+
+  uuid@8.3.2: {}
 
   varint@6.0.0: {}
 
@@ -4146,6 +4323,8 @@
       '@babel/runtime-corejs3': 7.27.1
       tslib: 2.8.1
 
+  web-streams-polyfill@3.3.3: {}
+
   webpack-sources@1.4.3:
     dependencies:
       source-list-map: 2.0.1
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/AlarmReset.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/AlarmReset.js"
index e11ffbb..de0e4e8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/AlarmReset.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/AlarmReset.js"
@@ -1,4 +1,6 @@
 import http from "../http";
 
-//鐧诲綍璁板綍
-export const BecomeTrue = (data) => http.post(`/api/AlarmResetHsy/BecomeTrue?account=${data.account}`);
\ No newline at end of file
+//鎶ヨ澶嶄綅
+export const BecomeTrue = () => http.post(`/api/AlarmResetHsy/BecomeTrue`);
+//娓呴櫎鎶ヨ淇℃伅
+export const ClearAlarm = () => http.post(`/api/AlarmResetHsy/DeleteAllinform`);
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/Maintenance.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/Maintenance.js"
index c57c7a5..075db9d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/Maintenance.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/Maintenance.js"
@@ -8,5 +8,7 @@
 export const RunOperation = (id, ispossible) => http.post(`/api/Maintenance/RunOperation?id=${id}&ispossible=${ispossible}`);
 //鏀瑰彉鐘舵��
 export const ChangeTasState = (data) => http.post("/api/Maintenance/ChangeTasState", data);
+//鑾峰彇寮�濮嬫淇汉鍛�
+export const YShowStartTake = () => http.post(`/api/Maintenance/YShowStartTake`);
 
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/MaintenanceTeam.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/MaintenanceTeam.js"
index 221676b..c387c39 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/MaintenanceTeam.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/newapi/MaintenanceTeam.js"
@@ -1,6 +1,6 @@
 import http from "../http";
 //妫�淇缃褰�
-export const MaintenanceSettingRecord = (data) =>http.post(`/api/MaintenanceTeam/MaintenanceSettingRecord`, data);
+export const MaintenanceSettingRecord = (data) => http.post(`/api/MaintenanceTeam/MaintenanceSettingRecord`, data);
 
-//妫�淇搷浣滆褰�
-export const MaintenanceOperationRecord = (data) => http.post(`/api/Maintenance/MaintenanceOperationRecord`,data);
+//鎺堟潈璁板綍璁板綍
+export const AuthGetPageData = (data) => http.post(`/api/AuthorizationRecord/GetPageData`, data);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/user.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/user.js"
index afd7fff..58c7bfd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/user.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/api/user.js"
@@ -10,7 +10,7 @@
 export const GetUerType = () => http.get('/api/User/GetUerType')
 
 //鑾峰彇鐢ㄦ埛鍒楄〃
-export const GetUserList = (data) => http.post('/api/User/GetPageData', data)
+export const GetUserList = (data) => http.post('/api/User/YShowUserList', data)
 
 //鏂板缓鐢ㄦ埛
 export const AddUser = (data) => http.post('/api/User/AdduserData', data)
@@ -54,3 +54,20 @@
 export const IsEnabled = (data) => http.post(`/api/User/UpdateData`, data);
 //鑾峰彇閮ㄩ棬
 export const GetDepartment = (data) => http.post('/api/Department/GetPageData', data)
+
+//鑾峰彇鐢ㄦ埛鐝粍
+export const GetUserTeam = (data) => http.post('/api/TeamCategory/GetPageData', data)
+//娣诲姞鐢ㄦ埛鐝粍
+export const AddUserTeam = (data) => http.post('/api/TeamCategory/AddData', data)
+//缂栬緫鐢ㄦ埛鐝粍
+export const EditUserTeam = (data) => http.post('/api/TeamCategory/UpdateData', data)
+//鍒犻櫎鐢ㄦ埛鐝粍
+export const DeleteUserTeam = (data) => http.post('/api/TeamCategory/Del', data)
+//鑾峰彇鐢ㄦ埛鍗曚綅
+export const GetUserUnit = (data) => http.post('/api/UnitCategory/GetPageData', data)
+//娣诲姞鐢ㄦ埛鍗曚綅
+export const AddUserUnit = (data) => http.post('/api/UnitCategory/AddData', data)
+//缂栬緫鐢ㄦ埛鍗曚綅
+export const EditUserUnit = (data) => http.post('/api/UnitCategory/UpdateData', data)
+//鍒犻櫎鐢ㄦ埛鍗曚綅
+export const DeleteUserUnit = (data) => http.post('/api/UnitCategory/Del', data)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon1.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon1.png"
index 0de291f..9d21aa4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon1.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon1.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon11.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon11.png"
new file mode 100644
index 0000000..0de291f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon11.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon2.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon2.png"
index f1b17f4..08c4b41 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon2.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon2.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon21.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon21.png"
new file mode 100644
index 0000000..f1b17f4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon21.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon3.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon3.png"
index f1b17f4..2b13c77 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon3.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon3.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon31.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon31.png"
new file mode 100644
index 0000000..f1b17f4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon31.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon4.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon4.png"
index 264dc50..48b9592 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon4.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon4.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon41.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon41.png"
new file mode 100644
index 0000000..264dc50
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon41.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon5.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon5.png"
index 6e4e9da..53e4f05 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon5.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon5.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon6.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon6.png"
index 5848173..60c4f98 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon6.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon6.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon61.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon61.png"
new file mode 100644
index 0000000..5848173
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/index/icon/icon61.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg.png"
index 4c7db11..68ce01b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg.png"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg1.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg1.png"
new file mode 100644
index 0000000..4c7db11
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/assets/login/bg1.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenu.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenu.vue"
index 3c6883d..6c26303 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenu.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenu.vue"
@@ -50,7 +50,7 @@
 </template>
 
 <script>
-// import VolElementMenuChild from "./VolElementMenuChild";
+import VolElementMenuChild from "./VolElementMenuChild.vue";
 import { useRouter } from "vue-router";
 
 import {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenuChild.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenuChild.vue"
index cfa5505..8b98580 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenuChild.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/components/basic/VolElementMenuChild.vue"
@@ -58,6 +58,3 @@
   font-size: 0.88rem !important;
 }
 </style>
-
-
-
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/layout/index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/layout/index.vue"
index c6772a6..44f6e5d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/layout/index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/layout/index.vue"
@@ -3,42 +3,6 @@
     style="display: flex; width: 100%; min-height: 100vh; height: 100%"
     :class="['vol-theme-' + theme]"
   >
-    <!-- <div
-      style="
-        width: 12.5rem;
-        height: 100%;
-        display: flex;
-        flex-direction: column;
-      "
-    >
-      <div
-        style="
-          width: 100%;
-          background-color: #f5f5f5;
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          height: 3.75rem;
-        "
-      >
-        <img
-          @click="router.push({ path: '/' })"
-          src="@/assets/logo.png"
-          alt=""
-          style="height: 3.65rem; cursor: pointer"
-        />
-      </div>
-      <el-scrollbar style="flex: 1; background-color: #242424">
-        <VolMenu
-          :currentMenuId="currentMenuId"
-          :on-select="onSelect"
-          :enable="true"
-          :open-select="false"
-          :isCollapse="isCollapse"
-          :list="menuOptions"
-        ></VolMenu>
-      </el-scrollbar>
-    </div> -->
     <div style="flex: 1; height: 100%; display: flex; flex-direction: column">
       <header style="height: 4.38rem; background-color: #006eff">
         <div
@@ -76,28 +40,17 @@
                 padding: 0 0.69rem 0 0;
               "
             >
-              <!-- <span
+              <span
                 style="
-                  font-size: 1.25rem;
-                  font-weight: bold;
-                  color: #fff;
-                  margin-right: 0.69rem;
-                  cursor: pointer;
+                  color: rgb(255, 255, 255);
+                  font-size: 0.88rem;
+                  margin-right: 1rem;
                 "
-                @click="router.push({ path: '/VideoSurveillance' })"
-                >瑙嗛鐩戞帶</span
-              > -->
-              <!-- <span
-                style="
-                  font-size: 1.25rem;
-                  font-weight: bold;
-                  color: #fff;
-                  margin-right: 0.69rem;
-                  cursor: pointer;
-                "
-                @click="router.push({ path: '/AlarmReset' })"
-                >鎶ヨ澶嶄綅</span
-              > -->
+                @click="toDetail"
+                class="tetxsize"
+                >鏉冮檺淇敼</span
+              >
+
               <img
                 v-if="!isFullscreen"
                 style="
@@ -134,12 +87,16 @@
                 @click="router.push({ path: '/index' })"
               />
               <div>
-                <span style="color: rgb(255, 255, 255); font-size: 0.88rem"
+                <span
+                  style="color: rgb(255, 255, 255); font-size: 0.88rem"
+                  class="tetxsize"
                   >瑙掕壊锛歿{ acountInfo.roleName }}</span
                 >
               </div>
               <div style="margin-left: 2rem">
-                <span style="color: rgb(255, 255, 255); font-size: 0.88rem"
+                <span
+                  style="color: rgb(255, 255, 255); font-size: 0.88rem"
+                  class="tetxsize"
                   >濮撳悕锛歿{ acountInfo.userTrueName }}</span
                 >
               </div>
@@ -180,6 +137,7 @@
                   font-size: 0.88rem;
                   text-align: left;
                 "
+                class="tetxsize"
               >
                 {{ userName }}
               </div>
@@ -389,6 +347,10 @@
       }
       if (item.path == "#") return;
       open(item);
+    };
+    // 绠$悊 璺敱璺宠浆
+    const toDetail = (row) => {
+      router.push("/sysMenu");
     };
     const open = (item, useRoute) => {
       /* 2020.07.31澧炲姞鎵嬪姩鎵撳紑tabs*/
@@ -741,6 +703,7 @@
       acountInfo,
       screenonToggle,
       isFullscreen,
+      toDetail,
     };
   },
   /**
@@ -861,6 +824,12 @@
 .header-navigation ::v-deep(.el-tabs__item.is-top) {
   padding: 0 15px;
 }
+
+@media screen and (max-width: 1080px) {
+  .tetxsize {
+    font-size: 1.5rem !important;
+  }
+}
 </style>
 <style>
 .horizontal-collapse-transition {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Index.vue"
index 3845297..bec1524 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Index.vue"
@@ -21,14 +21,15 @@
             <img src="@/assets/index/icon/icon1.png" alt="" />
           </div>
         </div>
+
         <div
           class="item"
-          style="background-color: #ffa726"
-          @click="router.push('/Maintenancemanagement')"
+          style="background-color: #2200de"
+          @click="router.push('/Enteroverhaul')"
         >
-          <span>妫�淇鐞�</span>
+          <span>杩涘叆妫�淇�</span>
           <div class="count">
-            <img src="@/assets/index/icon/icon2.png" alt="" />
+            <img src="@/assets/index/icon/icon6.png" alt="" />
           </div>
         </div>
         <div
@@ -63,14 +64,15 @@
             <img src="@/assets/index/icon/icon5.png" alt="" />
           </div>
         </div>
+
         <div
           class="item"
-          style="background-color: #2200de"
-          @click="router.push('/Enteroverhaul')"
+          style="background-color: #ffa726"
+          @click="router.push('/AlarmReset')"
         >
-          <span>杩涘叆妫�淇�</span>
+          <span>鎶ヨ澶嶄綅</span>
           <div class="count">
-            <img src="@/assets/index/icon/icon6.png" alt="" />
+            <img src="@/assets/index/icon/icon2.png" alt="" />
           </div>
         </div>
       </div>
@@ -89,16 +91,16 @@
         </div>
         <div
           class="item"
-          style="background-color: #ffa726"
-          @click="router.push('/Maintenancemanagement')"
+          style="background-color: #2200de"
+          @click="router.push('/Enteroverhaul')"
         >
-          <span>妫�淇鐞�</span>
+          <span>杩涘叆妫�淇�</span>
           <div class="count">
-            <img src="@/assets/index/icon/icon2.png" alt="" />
+            <img src="@/assets/index/icon/icon6.png" alt="" />
           </div>
         </div>
       </div>
-      <div class="main_b">
+      <div class="main_b" style="margin-top: 9rem; margin-bottom: 9rem">
         <div
           class="item"
           style="background-color: #9ccc65"
@@ -131,14 +133,15 @@
             <img src="@/assets/index/icon/icon5.png" alt="" />
           </div>
         </div>
+
         <div
           class="item"
-          style="background-color: #2200de"
-          @click="router.push('/Enteroverhaul')"
+          style="background-color: #ffa726"
+          @click="router.push('/AlarmReset')"
         >
-          <span>杩涘叆妫�淇�</span>
+          <span>鎶ヨ澶嶄綅</span>
           <div class="count">
-            <img src="@/assets/index/icon/icon6.png" alt="" />
+            <img src="@/assets/index/icon/icon2.png" alt="" />
           </div>
         </div>
       </div>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Login.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Login.vue"
index 2f8eea2..c318908 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Login.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/Login.vue"
@@ -2,6 +2,32 @@
   <div class="login-container">
     <div class="login-header">
       <img src="../assets/login/login-text.png" alt="" />
+      <div>
+        <img
+          v-if="!isFullscreen"
+          style="
+            width: 1.88rem;
+            height: 1.88rem;
+            margin-right: 1.81rem;
+            cursor: pointer;
+          "
+          src="@/assets/screen.png"
+          alt=""
+          @click="screenonToggle"
+        />
+        <img
+          v-if="isFullscreen"
+          style="
+            width: 1.88rem;
+            height: 1.88rem;
+            margin-right: 1.81rem;
+            cursor: pointer;
+          "
+          src="@/assets/exitscreen.png"
+          alt=""
+          @click="screenonToggle"
+        />
+      </div>
     </div>
     <div class="login-box">
       <!-- 宸︿晶鍥剧墖 -->
@@ -25,7 +51,7 @@
           <el-form-item prop="userName">
             <el-input
               v-model="loginForm.userName"
-              style="height: 3.13rem"
+              style="height: 3.13rem; width: 20.19rem"
               ref="userNameRef"
               type="text"
               size="large"
@@ -37,7 +63,7 @@
             <el-input
               show-password
               v-model="loginForm.password"
-              style="height: 3.13rem"
+              style="height: 3.13rem; width: 20.19rem"
               type="password"
               size="large"
               auto-complete="off"
@@ -46,7 +72,7 @@
             </el-input>
           </el-form-item>
 
-          <el-form-item prop="verificationCode">
+          <!-- <el-form-item prop="verificationCode">
             <div style="display: flex">
               <el-input
                 v-model="loginForm.verificationCode"
@@ -66,7 +92,7 @@
                 />
               </div>
             </div>
-          </el-form-item>
+          </el-form-item> -->
           <el-form-item>
             <el-button
               :loading="loading"
@@ -224,8 +250,9 @@
 <script setup>
 import { getCodeImg, login, CleanUnusedImages } from "@/api/login";
 import { useRouter, useRoute } from "vue-router";
-import { getCurrentInstance, ref, nextTick, onMounted } from "vue";
+import { getCurrentInstance, ref, nextTick, onMounted, onUnmounted } from "vue";
 import { ElMessage } from "element-plus";
+import screenfull from "screenfull";
 import store from "@/store";
 import axios from "axios";
 
@@ -249,7 +276,7 @@
 const loginForm = ref({
   userName: "",
   password: "",
-  verificationCode: "",
+  verificationCode: "1234",
   UUID: undefined,
   tenantId: "0",
 });
@@ -528,6 +555,28 @@
     }, 3000);
   }
 };
+
+// 鏄惁鍏ㄥ睆
+const isFullscreen = ref(false);
+
+// 鐩戝惉鍙樺寲
+const screenchange = () => {
+  isFullscreen.value = screenfull.isFullscreen;
+};
+
+// 鍒囨崲浜嬩欢
+const screenonToggle = () => {
+  screenfull.toggle();
+};
+// 璁剧疆渚﹀惉鍣�
+onMounted(() => {
+  screenfull.on("screenchange", screenchange);
+});
+
+// 鍒犻櫎渚﹀惉鍣�
+onUnmounted(() => {
+  screenfull.off("screenchange", screenchange);
+});
 </script>
 
 <style lang="less" scoped>
@@ -543,6 +592,7 @@
   flex-direction: column;
   .login-header {
     display: flex;
+    justify-content: space-between;
     align-items: center;
     height: 4.38rem;
     background-color: #006eff;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/system/Sys_Menu.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/system/Sys_Menu.vue"
index 5948cef..b6ade53 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/system/Sys_Menu.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/system/Sys_Menu.vue"
@@ -1,14 +1,34 @@
 <template>
-  <div style="width: 100%;height: 100%;display: flex;background-color: white;" >
+  <div
+    style="width: 100%; height: 100%; display: flex; background-color: white"
+  >
     <!-- <el-input/> -->
-    <vol-box :width="940" :mask="true" :height="500" title="鍥炬爣鍒楄〃" v-model="model">
+    <vol-box
+      :width="940"
+      :mask="true"
+      :height="500"
+      title="鍥炬爣鍒楄〃"
+      v-model="model"
+    >
       <Icons :onSelect="onSelect"></Icons>
       <template #footer>
-        <el-button type="primary" size="mini" @click="model = false">纭� 璁�</el-button>
+        <el-button type="primary" size="mini" @click="model = false"
+          >纭� 璁�</el-button
+        >
       </template>
     </vol-box>
-    <vol-box :width="600" :mask="true" :height="270" title="鍏朵粬鏉冮檺" v-model="actionModel">
-      <vol-form ref="actionForm" :formRules="actionOptions" :formFields="actionFields">
+    <vol-box
+      :width="600"
+      :mask="true"
+      :height="270"
+      title="鍏朵粬鏉冮檺"
+      v-model="actionModel"
+    >
+      <vol-form
+        ref="actionForm"
+        :formRules="actionOptions"
+        :formFields="actionFields"
+      >
         <template #header>
           <div>
             <el-alert show-icon type="success">
@@ -20,20 +40,33 @@
         </template>
       </vol-form>
       <template #footer>
-        <el-button type="primary" size="mini" @click="otherAction">纭� 璁�</el-button>
+        <el-button type="primary" size="mini" @click="otherAction"
+          >纭� 璁�</el-button
+        >
       </template>
     </vol-box>
 
     <!-- v-if="tree.length" -->
     <div class="menu-left">
       <div class="m-title"><i class="el-icon-warning-outline"></i>鑿滃崟鍒楄〃</div>
-      <el-scrollbar style="height: calc(100vh - 6.5rem - 40px - 10px); width: 200px">
-        <VolMenu :onSelect="getTreeItem" :list="tree" :isCollapse="false"></VolMenu>
+      <el-scrollbar
+        style="height: calc(100vh - 6.5rem - 40px - 10px); width: 200px"
+      >
+        <VolMenu
+          :onSelect="getTreeItem"
+          :list="tree"
+          :isCollapse="false"
+        ></VolMenu>
       </el-scrollbar>
     </div>
-    <div class="menu-right" style="margin-left: 10px;">
+    <div class="menu-right" style="margin-left: 10px">
       <el-scrollbar style="height: 100%">
-        <el-alert title="鑿滃崟閰嶇疆璇存槑" type="warning" :closable="false" show-icon>
+        <el-alert
+          title="鑿滃崟閰嶇疆璇存槑"
+          type="warning"
+          :closable="false"
+          show-icon
+        >
           <div>
             1銆佸鏋滄槸鐢ㄤ唬鐮佺敓鍣ㄧ敓鎴愮殑Vue椤甸潰,Url涓篤ue椤圭洰涓璼rc->router->viewGrid.js瀵瑰簲琛ㄥ悕鐨刾ath灞炴��
           </div>
@@ -42,31 +75,56 @@
           </div>
         </el-alert>
         <div style="padding: 0px 30px 0 20px">
-          <vol-form class="form-content" ref="form" :formRules="options" :formFields="fields">
+          <vol-form
+            class="form-content"
+            ref="form"
+            :formRules="options"
+            :formFields="fields"
+          >
           </vol-form>
           <div>
             <div class="auth-group">
               <label style="width: 100px">鏉冮檺鎸夐挳锛�</label>
               <div class="ck">
                 <el-checkbox-group v-model="actions">
-                  <el-checkbox v-for="(item, index) in action" :key="index" :label="item.value">{{ item.text + "(" +
-                    item.value + ")" }}</el-checkbox>
+                  <el-checkbox
+                    v-for="(item, index) in action"
+                    :key="index"
+                    :label="item.value"
+                    >{{ item.text + "(" + item.value + ")" }}</el-checkbox
+                  >
                 </el-checkbox-group>
               </div>
             </div>
           </div>
           <div style="padding-left: 100px">
-            <el-button @click="handleCheckAll" size="mini" type="success" plain><i class="el-icon-check"></i>鍏�
-              閫�</el-button>
-            <el-button @click="actionModel = true" size="mini" type="primary" plain><i
-                class="el-icon-plus"></i>鍏朵粬鏉冮檺</el-button>
+            <el-button @click="handleCheckAll" size="mini" type="success" plain
+              ><i class="el-icon-check"></i>鍏� 閫�</el-button
+            >
+            <el-button
+              @click="actionModel = true"
+              size="mini"
+              type="primary"
+              plain
+              ><i class="el-icon-plus"></i>鍏朵粬鏉冮檺</el-button
+            >
           </div>
           <div class="m-btn">
-            <el-button type="primary" @click="save"><i class="el-icon-check"></i>淇濆瓨</el-button>
-            <el-button type="success" @click="add"><i class="el-icon-plus"></i>鏂板缓</el-button>
-            <el-button type="warning" @click="addChild"><i class="el-icon-plus"></i>娣诲姞瀛愮骇</el-button>
-            <el-button type="primary" plain @click="addBrother"><i class="el-icon-circle-plus"></i> 娣诲姞鍚岀骇</el-button>
-            <el-button type="warning" plain @click="delMenu"><i class="el-icon-delete"></i> 鍒犻櫎鑿滃崟</el-button>
+            <el-button type="primary" @click="save"
+              ><i class="el-icon-check"></i>淇濆瓨</el-button
+            >
+            <el-button type="success" @click="add"
+              ><i class="el-icon-plus"></i>鏂板缓</el-button
+            >
+            <el-button type="warning" @click="addChild"
+              ><i class="el-icon-plus"></i>娣诲姞瀛愮骇</el-button
+            >
+            <el-button type="primary" plain @click="addBrother"
+              ><i class="el-icon-circle-plus"></i> 娣诲姞鍚岀骇</el-button
+            >
+            <el-button type="warning" plain @click="delMenu"
+              ><i class="el-icon-delete"></i> 鍒犻櫎鑿滃崟</el-button
+            >
           </div>
         </div>
       </el-scrollbar>
@@ -176,7 +234,11 @@
         tigger = true;
         let menuId = this.fields.menuId;
         this.http
-          .post("/api/Sys_Menu/delMenu?menuId=" + menuId, {}, "姝e湪鍒犻櫎鏁版嵁....")
+          .post(
+            "/api/Sys_Menu/delMenu?menuId=" + menuId,
+            {},
+            "姝e湪鍒犻櫎鏁版嵁...."
+          )
           .then((x) => {
             if (!x.status) return this.$Message.error(x.message);
             this.$refs.form.reset();
@@ -227,7 +289,7 @@
             orderNo: this.fields.orderNo,
             parentId: this.fields.parentId,
           });
-          console.log(this.tree)
+          console.log(this.tree);
         });
       });
     },
@@ -246,11 +308,9 @@
     onOpenChange(node) {
       if (node.length == 0) return;
       this.getTreeItem(node[node.length > 1 ? node.length - 1 : 0]);
-    }
+    },
   },
-  created(){
-
-  },
+  created() {},
   setup() {
     const tree = ref([]);
     const actionValues = ref([]);
@@ -270,10 +330,10 @@
     });
     const initTree = () => {
       http.post("/api/Sys_Menu/getMenu", {}, true).then((x) => {
-        x.forEach(item => {
-          item.icon = 'el-icon-menu';
-        })
-        
+        x.forEach((item) => {
+          item.icon = "el-icon-menu";
+        });
+
         tree.value = x;
       });
     };
@@ -426,33 +486,35 @@
     ]);
     const refForm = ref();
     const getTreeItem = (node) => {
-      http.post("api/Sys_Menu/getTreeItem?menuId=" + node, {}, true).then((x) => {
-        try {
-          fields.value.icon = x.icon;
-          if (x.auth) {
-            x.auth = JSON.parse(x.auth);
-            action.value.splice(8, action.value.length);
+      http
+        .post("api/Sys_Menu/getTreeItem?menuId=" + node, {}, true)
+        .then((x) => {
+          try {
+            fields.value.icon = x.icon;
+            if (x.auth) {
+              x.auth = JSON.parse(x.auth);
+              action.value.splice(8, action.value.length);
 
-            actions.value = x.auth.map((element) => {
-              if (actionValues.value.indexOf(element.value) == -1) {
-                action.value.push(element);
-              }
-              return element.value;
-            });
-          } else {
-            action.value.splice(8, action.value.length);
+              actions.value = x.auth.map((element) => {
+                if (actionValues.value.indexOf(element.value) == -1) {
+                  action.value.push(element);
+                }
+                return element.value;
+              });
+            } else {
+              action.value.splice(8, action.value.length);
+              x.auth = [];
+              fields.value.icon = "";
+              actions.value = [];
+            }
+          } catch (error) {
+            console.log("鑿滃崟鍔熻兘鏉冮檺杞崲鎴怞SON澶辫触:" + x.auth);
             x.auth = [];
-            fields.value.icon = "";
+            //   this.icon = "";
             actions.value = [];
           }
-        } catch (error) {
-          console.log("鑿滃崟鍔熻兘鏉冮檺杞崲鎴怞SON澶辫触:" + x.auth);
-          x.auth = [];
-          //   this.icon = "";
-          actions.value = [];
-        }
-        refForm.value.reset(x);
-      });
+          refForm.value.reset(x);
+        });
     };
     return {
       tree,
@@ -468,7 +530,7 @@
       actionOptions,
       options,
       form: refForm,
-      getTreeItem
+      getTreeItem,
     };
   },
   data() {
@@ -521,7 +583,7 @@
       margin-top: 1px;
     }
 
-    >div {
+    > div {
       float: left;
     }
   }
@@ -615,4 +677,3 @@
   padding-left: 4px;
 }
 </style>
-
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/AlarmReset/AlarmReset.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/AlarmReset/AlarmReset.vue"
index b1124bc..3dbae62 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/AlarmReset/AlarmReset.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/AlarmReset/AlarmReset.vue"
@@ -1,10 +1,22 @@
 <template>
   <div class="AlarmReset">
-    <div style="width: 100%; text-align: center; font-size: 5rem; color: #fff">
+    <div
+      :style="{
+        width: '100%',
+        textAlign: 'center',
+        fontSize: isMin ? '5rem' : '2rem',
+        color: '#fff',
+      }"
+    >
       鎶ヨ澶嶄綅
     </div>
     <div style="margin-top: 3rem">
-      <el-table :data="tableData" style="width: 100%" height="800">
+      <el-table
+        empty-text="鏆傛棤鏁版嵁"
+        :data="tableData"
+        style="width: 100%"
+        :height="isMin ? '800' : '450'"
+      >
         <el-table-column prop="Id" label="搴忓彿" />
         <el-table-column prop="AlarmContent" label="鎶ヨ鍐呭" />
         <el-table-column prop="ResetStatus" label="澶嶄綅鐘舵��" />
@@ -40,18 +52,34 @@
       />
     </div>
     <div
-      style="
-        width: 100%;
-        display: flex;
-        justify-content: center;
-        margin-top: 4rem;
-      "
+      :style="{
+        width: '100%',
+        display: 'flex',
+        justifyContent: 'center',
+        marginTop: isMin ? '4rem' : '2rem',
+      }"
     >
       <el-button
         type="primary"
-        style="width: 10rem; height: 3rem"
+        :style="{
+          width: isMin ? '16rem' : '10rem',
+          height: isMin ? '5rem' : '2.5rem',
+        }"
         @click="handleBecomeTrue"
-        >鎶ヨ澶嶄綅</el-button
+        ><span :style="{ fontSize: isMin ? '3rem' : '1.5rem' }">
+          鎶ヨ澶嶄綅</span
+        ></el-button
+      >
+      <el-button
+        type="primary"
+        :style="{
+          width: isMin ? '20rem' : '10rem',
+          height: isMin ? '5rem' : '2.5rem',
+        }"
+        @click="handleClearAlarm"
+        ><span :style="{ fontSize: isMin ? '3rem' : '1.5rem' }">
+          娓呴櫎鎶ヨ淇℃伅</span
+        ></el-button
       >
     </div>
   </div>
@@ -59,7 +87,7 @@
 <script setup>
 import { ref, onMounted, onUnmounted } from "vue";
 import { ElMessage } from "element-plus";
-import { BecomeTrue } from "@/api/newapi/AlarmReset.js";
+import { BecomeTrue, ClearAlarm } from "@/api/newapi/AlarmReset.js";
 import { formatTime } from "@/utils/index.js";
 
 const timer = ref(null);
@@ -68,26 +96,37 @@
 const pageSize = ref(10); // 姣忛〉鏄剧ず鐨勬潯鏁�
 const currentPage = ref(0); // 褰撳墠椤电爜
 const total = ref(0); // 鎬绘潯鏁�
+const isStart = ref(false); // 鏄惁寮�濮�
+const positionvalue = ref({}); // 浣嶇疆鍊�
+
 const createSocket = (url) => {
   clearInterval(timer.value);
   // 鍒涘缓WebSocket杩炴帴
   //"ws://127.0.0.1:9295/admin"
-  client.value = new WebSocket("ws://192.168.2.103:5173/");
+  //192.168.1.103
+  client.value = new WebSocket("ws://192.168.1.103:5173/");
   client.value.onopen = function () {
     console.log("WebSocket 杩炴帴鎴愬姛");
   };
   client.value.onmessage = function (event) {
     let data = JSON.parse(event.data);
-    tableData.value = data.Data.slice(
-      currentPage.value * pageSize.value,
-      (currentPage.value + 1) * pageSize.value
-    );
-    total.value = data.Data.length; // 鏇存柊鎬绘潯鏁�
-    console.log("WebSocket 鎺ユ敹鍒版秷鎭�", tableData.value);
+    if (data.Status) {
+      tableData.value = data.Data.slice(
+        currentPage.value * pageSize.value,
+        (currentPage.value + 1) * pageSize.value
+      );
+      total.value = data.Data.length; // 鏇存柊鎬绘潯鏁�
+    } else {
+      positionvalue.value = data;
+    }
+
+    console.log("WebSocket 鎺ユ敹鍒版秷鎭�", data);
   };
   client.value.onclose = function () {
     console.log("WebSocket 杩炴帴鍏抽棴");
-    timer.value = setTimeout(createSocket, 1000);
+    if (isStart.value) {
+      timer.value = setTimeout(createSocket, 1000);
+    }
   };
 
   client.value.onerror = function () {};
@@ -95,12 +134,10 @@
 const handleCurrentChange = (val) => {
   currentPage.value = val - 1; // 鏇存柊褰撳墠椤电爜
 };
-const account = JSON.parse(localStorage.getItem("user")).userName; // 鑾峰彇璐﹀彿
+// const account = JSON.parse(localStorage.getItem("user")).userName; // 鑾峰彇璐﹀彿
 //澶嶄綅鎸夐挳鏂规硶
-const handleBecomeTrue = (val) => {
-  BecomeTrue({
-    account: account,
-  }).then((res) => {
+const handleBecomeTrue = () => {
+  BecomeTrue().then((res) => {
     if (res.code == 0) {
       ElMessage({
         message: "澶嶄綅鎴愬姛",
@@ -114,16 +151,31 @@
     }
   });
 };
-
+//娓呴櫎鎶ヨ淇℃伅鏂规硶
+const handleClearAlarm = () => {
+  ClearAlarm().then((res) => {
+    if (res.code == 0) {
+      ElMessage({
+        message: "娓呴櫎鎴愬姛",
+        type: "success",
+      });
+    }
+  });
+};
+const isMin = ref(false); // 鏄惁鏈�灏忓寲
 onMounted(() => {
+  isMin.value = window.innerWidth <= 1080; // 鍒ゆ柇鏄惁鏈�灏忓寲
+  isStart.value = true; // 璁剧疆涓哄紑濮嬬姸鎬�
   createSocket();
 });
 
 onUnmounted(() => {
+  isStart.value = false;
   clearInterval(timer.value);
   if (client.value) {
     client.value.close();
   }
+  clearInterval(timer.value);
 });
 </script>
 <style lang="scss" scoped>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/DataLogging/Datalogging.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/DataLogging/Datalogging.vue"
index 81f9094..1f932ae 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/DataLogging/Datalogging.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/DataLogging/Datalogging.vue"
@@ -15,7 +15,7 @@
           :class="['item', isactive == 2 ? 'isactive' : '']"
           @click="changeactive(2)"
         >
-          妫�淇搷浣滆褰�
+          鎺堟潈璁板綍
         </div>
         <div
           v-if="roleINFO == 1"
@@ -38,9 +38,9 @@
               border-radius: 0 0.25rem 0.25rem 0;
               box-shadow: none;
               width: 19rem;
-              height: 2rem;
               border-left: 0;
             "
+            class="time_picker"
             format="YYYY-MM-DD HH:mm:ss"
             type="datetimerange"
             range-separator="~"
@@ -52,9 +52,11 @@
         <div class="serch_box">
           <div class="serchb">鍏ㄥ眬鎼滅储</div>
           <input
+            @focus="focusInput"
             v-model="queryForm.selectInput"
             placeholder="璇疯緭鍏ュ叧閿瘝鎼滅储"
             style="border-left: 0.06rem solid #e2e2e2"
+            ref="inputRef"
           />
         </div>
         <el-button
@@ -89,19 +91,31 @@
           :header-cell-style="{
             background: 'rgba(250,250,250,1)',
             color: '#101010',
-            fontSize: '0.88rem',
+            fontSize: '1.25rem',
             height: '3rem',
             border: 'none',
           }"
           :row-style="{
             color: '#101010',
-            fontSize: '0.88rem',
+            fontSize: '1.25rem',
             height: '3rem',
+            WWWW,
           }"
         >
           <el-table-column type="selection" align="center" />
           <el-table-column prop="operatorName" label="濮撳悕" align="center" />
-          <el-table-column prop="teamName" label="鐝粍" align="center" />
+          <!-- <el-table-column prop="teamName" label="缁勫埆" align="center" /> -->
+          <el-table-column prop="" label="缁勫憳绫诲瀷" align="center">
+            <template #default="scope">
+              <span v-if="scope.row.isLeader == 0">缁勫憳</span>
+              <span v-else-if="scope.row.isLeader == 1">缁勯暱</span>
+            </template>
+          </el-table-column>
+          <el-table-column prop="dept_Id" label="妫�淇亾" align="center">
+            <template #default="scope">
+              <div>{{ scope.row.dept_Id }}</div>
+            </template></el-table-column
+          >
           <el-table-column prop="headImageUrl" label="浜鸿劯" align="center">
             <template #default="scope">
               <el-image
@@ -118,11 +132,16 @@
             label="鍒嗛厤鏃堕棿"
             align="center"
           />
-          <el-table-column prop="Creater" label="鍒嗛厤妫�淇憳" align="center">
-          </el-table-column>
+          <!-- <el-table-column prop="Creater" label="鍒嗛厤妫�淇憳" align="center">
+          </el-table-column> -->
+          <el-table-column
+            prop="ipAddress"
+            label="璁惧IP"
+            align="center"
+          ></el-table-column>
         </el-table>
-
-        <!-- 妫�淇搷浣滆褰曡褰� -->
+        <!-- 濮撳悕 userName锛屽崟浣� uerUnit锛岀彮缁� userTeam锛屾搷浣滀汉 modifier锛屽惎鐢ㄦ椂闂� enableTime锛屽仠鐢ㄦ椂闂�  disableTime-->
+        <!-- 鎺堟潈璁板綍 -->
         <el-table
           empty-text="鏆傛棤鏁版嵁"
           v-if="isactive == 2"
@@ -132,41 +151,23 @@
           :header-cell-style="{
             background: 'rgba(250,250,250,1)',
             color: '#101010',
-            fontSize: '0.88rem',
+            fontSize: '1.25rem',
             height: '3rem',
             border: 'none',
           }"
           :row-style="{
             color: '#101010',
-            fontSize: '0.88rem',
+            fontSize: '1.25rem',
             height: '3rem',
           }"
         >
           <el-table-column type="selection" align="center" />
-          <el-table-column prop="userTrueName" label="濮撳悕" align="center" />
+          <el-table-column prop="userName" label="濮撳悕" align="center" />
+          <el-table-column prop="uerUnit" label="鍗曚綅" align="center" />
           <el-table-column prop="userteam" label="鐝粍" align="center" />
-          <el-table-column prop="headImageUrl" label="浜鸿劯" align="center">
-            <template #default="scope">
-              <el-image
-                style="width: 5rem; height: 5rem"
-                :src="'http://192.168.1.103:9093' + scope.row.headImageUrl"
-                show-progress
-                :initial-index="4"
-                fit="cover"
-              />
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="maintenancStartTime"
-            label="杩涘叆妫�淇椂闂�"
-            align="center"
-          />
-          <el-table-column
-            prop="maintenancEendTime"
-            label="閫�鍑烘淇椂闂�"
-            align="center"
-          />
-          <el-table-column prop="" label="妫�淇亾鍙�" align="center">
+          <el-table-column prop="enableTime" label="鍚敤鏃堕棿" align="center" />
+          <el-table-column prop="disableTime" label="绂佺敤鏃堕棿" align="center" />
+          <el-table-column prop="modifier" label="鎿嶄綔浜�" align="center">
           </el-table-column>
         </el-table>
 
@@ -180,20 +181,20 @@
           :header-cell-style="{
             background: 'rgba(250,250,250,1)',
             color: '#101010',
-            fontSize: '0.88rem',
+            fontSize: '1.25rem',
             height: '3rem',
             border: 'none',
           }"
           :row-style="{
             color: '#101010',
-            fontSize: '0.88rem',
+            fontSize: '1.25rem',
             height: '3rem',
           }"
         >
           <el-table-column type="selection" align="center" />
           <el-table-column prop="userTrueName" label="濮撳悕" align="center" />
-          <el-table-column prop="opCenten" label="鍗曚綅" align="center" />
-          <el-table-column prop="userteam" label="鐝粍" align="center" />
+          <!-- <el-table-column prop="opCenten" label="鍗曚綅" align="center" /> -->
+          <!-- <el-table-column prop="userteam" label="缁勫埆" align="center" /> -->
           <el-table-column prop="headImageUrl" label="浜鸿劯" align="center">
             <template #default="scope">
               <el-image
@@ -206,8 +207,8 @@
             </template>
           </el-table-column>
           <el-table-column prop="loginTiem" label="鐧诲綍鏃堕棿" align="center" />
-          <el-table-column prop="outTiem" label="閫�鍑烘椂闂�" align="center" />
-          <el-table-column label="鎿嶄綔鍐呭" align="center" />
+          <!-- <el-table-column prop="outTiem" label="閫�鍑烘椂闂�" align="center" /> -->
+          <!-- <el-table-column label="鎿嶄綔鍐呭" align="center" /> -->
         </el-table>
       </div>
       <div
@@ -267,7 +268,7 @@
 } from "@/api/newapi/Datalogging";
 import {
   MaintenanceSettingRecord,
-  MaintenanceOperationRecord,
+  AuthGetPageData,
 } from "@/api/newapi/MaintenanceTeam";
 const obj = {
   selectTime: [], // 鏃堕棿鑼冨洿
@@ -283,6 +284,21 @@
 const pageTotal = ref(0);
 const pageTotal1 = ref(0);
 const pageTotal2 = ref(0);
+const inputRef = ref(null);
+const focusInput = () => {
+  if (typeof Windows !== "undefined") {
+    const textInputPane =
+      Windows.UI.ViewManagement.InputPane.getForCurrentView();
+
+    // 鏄剧ず铏氭嫙閿洏
+    textInputPane.show();
+
+    // 闅愯棌铏氭嫙閿洏
+    textInputPane.hide();
+  }
+  inputRef.value?.focus();
+  console.log("focusInput called", inputRef.value);
+};
 //鍒嗛〉璇锋眰鍙傛暟
 const pageQuery = ref({
   page: 1, //褰撳墠椤甸潰
@@ -451,24 +467,12 @@
     { name: "createTime", value: startTime, displayType: "ThanOrEqual" },
     { name: "createTime", value: endTime, displayType: "LessOrEqual" },
   ];
-  MaintenanceOperationRecord({
-    pageIndex: pageQuery1.value.page,
-    pageSize: pageQuery1.value.rows,
-    searchKeyword: queryForm.value.selectInput,
-    startDate:
-      queryForm.value.selectTime.length != 0
-        ? queryForm.value.selectTime[0]
-        : "",
-    endDate:
-      queryForm.value.selectTime.length != 0
-        ? queryForm.value.selectTime[1]
-        : "",
-    sortField: "maintenancStartTime",
-    sortOrder: "desc",
-    account: account,
+  AuthGetPageData({
+    ...pageQuery.value,
+    filter,
   }).then((res) => {
-    tableData.value = res.data.items;
-    pageTotal1.value = res.data.totalCount;
+    tableData.value = res.rows;
+    pageTotal1.value = res.total;
   });
 };
 //鐧诲綍璁板綍
@@ -687,6 +691,118 @@
     border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
   }
 }
+
+@media screen and (max-width: 1080px) {
+  .Datalogging {
+    display: flex;
+    background-color: #fff;
+
+    .content {
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+
+      .checkbox {
+        width: 40rem !important;
+        display: flex;
+        justify-content: space-between;
+        margin-top: 1rem;
+        margin-left: 1.31rem;
+
+        .item {
+          width: 12rem;
+          height: 2.88rem;
+          border-radius: 0.25rem;
+          background-color: rgba(190, 199, 209, 1);
+          color: rgba(255, 255, 255, 1);
+          font-size: 1.25rem;
+          text-align: center;
+          line-height: 2.88rem;
+          cursor: pointer;
+        }
+
+        .isactive {
+          background-color: rgba(16, 16, 16, 1);
+          color: rgba(255, 255, 255, 1);
+        }
+      }
+
+      .serch {
+        display: flex;
+        margin-top: 1.31rem;
+        align-items: center;
+
+        .time_box {
+          display: flex;
+          align-items: center;
+          text-align: center;
+          margin-left: 0.98rem;
+
+          .time {
+            box-sizing: border-box;
+            width: 7rem;
+            height: 2.5rem;
+            text-align: center;
+            border: 0.06rem solid rgba(222, 222, 222, 1);
+            border-radius: 0.25rem 0 0 0.25rem;
+            font-size: 1.25rem;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+          }
+        }
+
+        .serch_box {
+          display: flex;
+          align-items: center;
+          text-align: center;
+          margin-left: 0.98rem;
+          border-radius: 0.38rem;
+
+          .serchb {
+            box-sizing: border-box;
+            width: 6.88rem;
+            height: 2.5rem;
+            text-align: center;
+            font-size: 1.25rem;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            border: 0.06rem solid rgba(222, 222, 222, 1);
+          }
+
+          input {
+            box-sizing: border-box;
+            outline: none;
+            width: 19rem;
+            height: 2.5rem;
+            border: 0.06rem solid rgba(222, 222, 222, 1);
+            border-radius: 0 0.25rem 0.25rem 0;
+            padding-left: 0.3125rem;
+            font-size: 1rem;
+          }
+        }
+      }
+
+      .btns {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-top: 1.31rem;
+        margin-left: 1.13rem;
+        padding-right: 2rem;
+        box-sizing: border-box;
+      }
+    }
+
+    .my-header {
+      height: 3.84rem;
+      display: flex;
+      justify-content: space-between;
+      border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
+    }
+  }
+}
 </style>
 <style>
 .confirmButtonClass {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue"
index 71358ee..4793d71 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Enteroverhaul/Enteroverhaul.vue"
@@ -1,7 +1,12 @@
 <template>
   <div class="Enteroverhaul">
     <div class="btns">
-      <el-button class="btn" type="primary" @click="startMaintenceTask">
+      <el-button
+        :disabled="startdisabled"
+        class="btn"
+        type="primary"
+        @click="startMaintenceTask"
+      >
         <div
           style="
             display: flex;
@@ -21,6 +26,7 @@
               font-size: 1.25rem;
               margin-top: 1.6rem;
             "
+            class="btn_text"
             >寮�濮嬫淇�</span
           >
         </div>
@@ -29,6 +35,7 @@
         class="btn"
         type="primary"
         style="margin-left: 6.81rem"
+        :disabled="!isStart"
         @click="stopMaintenceTask"
       >
         <div
@@ -50,6 +57,7 @@
               font-size: 1.25rem;
               margin-top: 1.6rem;
             "
+            class="btn_text"
             >缁撴潫妫�淇�</span
           >
         </div>
@@ -87,22 +95,22 @@
             ></template
           >
         </el-table-column>
-        <el-table-column
+        <!-- <el-table-column
           prop="maintenanceDate"
           label="娲惧彂浠诲姟鏃堕棿"
           align="center"
-        />
+        /> -->
 
         <el-table-column
           prop="maintenancStartTime"
           label="寮�濮嬫淇椂闂�"
           align="center"
         />
-        <el-table-column
+        <!-- <el-table-column
           prop="maintenancEendTime"
           label="缁撴潫妫�淇椂闂�"
           align="center"
-        />
+        /> -->
       </el-table>
     </div>
   </div>
@@ -115,6 +123,8 @@
   StartMaintenceTask,
   StopMaintenanceTask,
 } from "@/api/user";
+import { YShowStartTake } from "@/api/newapi/Maintenance.js";
+import { ElMessage } from "element-plus";
 
 const userInfo = ref(store.state.userInfo);
 const isStart = ref(false); //鏄惁寮�濮嬫淇�
@@ -127,6 +137,17 @@
     tableData.value = [res.data];
   });
 };
+const getStartTake = async () => {
+  YShowStartTake().then((res) => {
+    if (res.data.length > 0) {
+      isStart.value = true;
+    } else {
+      isStart.value = false;
+    }
+    tableData.value = res.data;
+  });
+};
+const startdisabled = ref(false); //寮�濮嬫寜閽槸鍚︾鐢�
 //寮�濮嬫淇�
 const startMaintenceTask = async () => {
   StartMaintenceTask({
@@ -134,6 +155,8 @@
   }).then((res) => {
     isStart.value = true;
     tableData.value = [res.data];
+    startdisabled.value = true;
+    getStartTake();
   });
 };
 //缁撴潫妫�淇�
@@ -147,7 +170,8 @@
 };
 
 onMounted(() => {
-  getMaintenanceTasksOfTheDay();
+  // getMaintenanceTasksOfTheDay();
+  getStartTake();
 });
 </script>
 <style lang="scss" scoped>
@@ -158,7 +182,6 @@
 
   .btns {
     margin-top: 7%;
-
     .btn {
       width: 12.19rem;
       height: 11.63rem;
@@ -180,4 +203,37 @@
     margin-top: 5.19rem;
   }
 }
+@media screen and (max-width: 1080px) {
+  .Enteroverhaul {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+
+    .btns {
+      margin-top: 7%;
+      .btn {
+        width: 25.19rem;
+        height: 24.63rem;
+        background-image: url("@/assets/Enteroverhaul/btnbg.png");
+        background-size: 100% 100%;
+        background-repeat: no-repeat;
+        border: none;
+        .btn_text {
+          font-size: 2.88rem !important;
+        }
+      }
+    }
+
+    .content_box {
+      width: 70%;
+      height: 40%;
+      background-color: rgba(9, 48, 104, 1);
+      color: rgba(16, 16, 16, 1);
+      font-size: 0.88rem;
+      box-shadow: 0rem 0.13rem 0.38rem 0rem rgba(6, 229, 231, 1);
+      border: 0.06rem solid rgba(6, 229, 231, 1);
+      margin-top: 5.19rem;
+    }
+  }
+}
 </style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Parametersettings/Parametersettings.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Parametersettings/Parametersettings.vue"
index 6ba99b5..9f3608c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Parametersettings/Parametersettings.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/Parametersettings/Parametersettings.vue"
@@ -3,6 +3,7 @@
     <div class="Parametersettings_l">
       <div
         style="color: rgba(0, 9, 56, 1); font-size: 1.13rem; font-weight: bold"
+        class="title"
       >
         浼稿嚭缂╁洖閫熷害璁剧疆
       </div>
@@ -18,72 +19,90 @@
       >
         <el-form-item prop="extendSpeed">
           <template #label>
-            <span style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
-              >宸LC鑷姩浼稿嚭缂╁洖閫熷害m/min锛�</span
+            <span
+              style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+              class="title_span"
+              >PLC鑷姩浼稿嚭缂╁洖閫熷害m/min锛�</span
             >
           </template>
           <el-input
             style="height: 1.88rem"
+            class="title_input"
             placeholder="璇疯緭鍏�"
             v-model="ruleForm.extendSpeed"
           />
         </el-form-item>
-        <el-form-item prop="retractionSpeed">
+        <!-- <el-form-item prop="retractionSpeed">
           <template #label>
-            <span style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+            <span
+              style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+              class="title_span"
               >鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害m/min锛�</span
             >
           </template>
           <el-input
             style="height: 1.88rem"
+            class="title_input"
             placeholder="璇疯緭鍏�"
             v-model="ruleForm.retractionSpeed"
           />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item prop="manualExtend">
           <template #label>
-            <span style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
-              >宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害m/min锛�</span
+            <span
+              style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+              class="title_span"
+              >PLC鎵嬪姩浼稿嚭缂╁洖閫熷害m/min锛�</span
             >
           </template>
           <el-input
             style="height: 1.88rem"
+            class="title_input"
             placeholder="璇疯緭鍏�"
             v-model="ruleForm.manualExtend"
           />
         </el-form-item>
-        <el-form-item prop="manualRetraction">
+        <!-- <el-form-item prop="manualRetraction">
           <template #label>
-            <span style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+            <span
+              style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+              class="title_span"
               >鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害m/min锛�</span
             >
           </template>
           <el-input
             style="height: 1.88rem"
+            class="title_input"
             placeholder="璇疯緭鍏�"
             v-model="ruleForm.manualRetraction"
           />
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item prop="leftPosition">
           <template #label>
-            <span style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+            <span
+              style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+              class="title_span"
               >宸LC鑷姩浼稿埌浣嶏細</span
             >
           </template>
           <el-input
             style="height: 1.88rem"
+            class="title_input"
             placeholder="璇疯緭鍏�"
             v-model="ruleForm.leftPosition"
           />
         </el-form-item>
         <el-form-item prop="rightPosition">
           <template #label>
-            <span style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+            <span
+              style="color: rgba(0, 9, 56, 1); font-size: 0.88rem"
+              class="title_span"
               >鍙砅LC鑷姩浼稿埌浣嶏細</span
             >
           </template>
           <el-input
             style="height: 1.88rem"
+            class="title_input"
             placeholder="璇疯緭鍏�"
             v-model="ruleForm.rightPosition"
           />
@@ -99,11 +118,7 @@
           >
             <el-button
               style="height: 1.88rem; width: 5.63rem"
-              @click="resetForm(ruleFormRef)"
-              >鍙栨秷</el-button
-            >
-            <el-button
-              style="height: 1.88rem; width: 5.63rem"
+              class="title_button"
               type="primary"
               @click="submitForm(ruleFormRef)"
             >
@@ -113,93 +128,6 @@
         </el-form-item>
       </el-form>
     </div>
-    <!-- <div class="Parametersettings_c">
-      <div
-        style="color: rgba(0, 9, 56, 1); font-size: 1.13rem; font-weight: bold"
-      >
-        PLC淇″彿鐩戞帶
-      </div>
-      <div
-        class="box"
-        style="
-          display: flex;
-          justify-content: space-between;
-          flex-wrap: wrap;
-          padding: 0 5.25rem;
-          margin-top: 3.03rem;
-        "
-      >
-        <el-row>
-          <el-col style="display: flex; justify-content: space-between">
-            <div class="box_item"></div>
-            <div class="box_item"></div>
-            <div class="box_item"></div>
-          </el-col>
-          <el-col
-            style="
-              display: flex;
-              justify-content: space-between;
-              margin-top: 2.78rem;
-            "
-            ><div class="box_item"></div>
-            <div class="box_item"></div>
-            <div style="width: 6.25rem; height: 6.25rem"></div
-          ></el-col>
-        </el-row>
-      </div>
-    </div>
-    <div class="Parametersettings_r">
-      <div
-        style="color: rgba(0, 9, 56, 1); font-size: 1.13rem; font-weight: bold"
-      >
-        鏁呴殰澶勭悊
-      </div>
-      <div
-        style="
-          display: flex;
-          flex-direction: column;
-          margin-top: 4.19rem;
-          align-items: center;
-          justify-content: space-around;
-          height: 40%;
-        "
-      >
-        <el-button
-          type="primary"
-          style="
-            width: 7.38rem;
-            height: 2.75rem;
-            background-color: rgba(230, 160, 0, 1);
-            color: rgba(255, 255, 255, 1);
-            font-size: 1rem;
-            margin-left: 1rem;
-          "
-          >鍥炲師鐐�</el-button
-        >
-        <el-button
-          type="primary"
-          style="
-            width: 7.38rem;
-            height: 2.75rem;
-            background-color: rgba(0, 207, 55, 1);
-            color: rgba(255, 255, 255, 1);
-            font-size: 1rem;
-          "
-          >澶嶄綅</el-button
-        >
-        <el-button
-          type="primary"
-          style="
-            width: 7.38rem;
-            height: 2.75rem;
-            background-color: rgba(255, 0, 0, 1);
-            color: rgba(255, 255, 255, 1);
-            font-size: 1rem;
-          "
-          >娓呴櫎鏁呴殰</el-button
-        >
-      </div>
-    </div> -->
   </div>
 </template>
 <script setup>
@@ -224,8 +152,8 @@
 });
 //淇濆瓨
 const submitForm = () => {
-  console.log(ruleForm.value);
-
+  ruleForm.value.retractionSpeed = ruleForm.value.extendSpeed;
+  ruleForm.value.manualRetraction = ruleForm.value.manualExtend;
   AddData(ruleForm.value).then((res) => {
     if (res.code == 0) {
       ElMessage.success("淇濆瓨鎴愬姛");
@@ -288,4 +216,21 @@
     padding: 1.44rem 1.25rem;
   }
 }
+@media screen and (max-width: 1080px) {
+  .title {
+    font-size: 3rem !important;
+  }
+  .title_span {
+    font-size: 2rem !important;
+  }
+  .title_input {
+    height: 4rem !important;
+    font-size: 3rem !important;
+  }
+  .title_button {
+    height: 5rem !important;
+    width: 14rem !important;
+    font-size: 3rem !important;
+  }
+}
 </style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/Manualcontrol.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/Manualcontrol.vue"
index fc310a1..06da629 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/Manualcontrol.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/Manualcontrol.vue"
@@ -6,14 +6,16 @@
           @click="handleAutoPickAndDrop('浼稿嚭')"
           type="primary"
           size="small"
-          style="
-            width: 14.69rem;
-            height: 5.06rem;
-            color: rgba(64, 253, 240, 1);
-            background-color: rgba(6, 229, 231, 0.3);
-            border: none;
-            border-top: 0.25rem solid rgba(6, 229, 231, 1);
-          "
+          :style="{
+            width: '14.69rem',
+            height: '5.06rem',
+            color: !AutoPickColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+            backgroundColor: !AutoPickColor
+              ? 'rgba(6, 229, 231, 0.3)'
+              : 'rgba(205, 208, 214,0.5)',
+            border: 'none',
+            borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+          }"
         >
           <div class="btnicon">
             <span
@@ -38,14 +40,16 @@
           @click="handleAutoPickAndDrop('缂╁洖')"
           type="primary"
           size="small"
-          style="
-            width: 14.69rem;
-            height: 5.06rem;
-            color: rgba(64, 253, 240, 1);
-            background-color: rgba(6, 229, 231, 0.3);
-            border: none;
-            border-top: 0.25rem solid rgba(6, 229, 231, 1);
-          "
+          :style="{
+            width: '14.69rem',
+            height: '5.06rem',
+            color: !AutoDropColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+            backgroundColor: !AutoDropColor
+              ? 'rgba(6, 229, 231, 0.3)'
+              : 'rgba(205, 208, 214,0.5)',
+            border: 'none',
+            borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+          }"
         >
           <div class="btnicon">
             <span
@@ -70,14 +74,16 @@
           @click="handlePouse"
           type="primary"
           size="small"
-          style="
-            width: 14.69rem;
-            height: 5.06rem;
-            color: rgba(64, 253, 240, 1);
-            background-color: rgba(6, 229, 231, 0.3);
-            border: none;
-            border-top: 0.25rem solid rgba(6, 229, 231, 1);
-          "
+          :style="{
+            width: '14.69rem',
+            height: '5.06rem',
+            color: !pouseColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+            backgroundColor: !pouseColor
+              ? 'rgba(6, 229, 231, 0.3)'
+              : 'rgba(205, 208, 214,0.5)',
+            border: 'none',
+            borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+          }"
         >
           <div class="btnicon">
             <span
@@ -119,14 +125,16 @@
               @click="handManualOperation('宸�', '浼稿嚭')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !leftPickColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !leftPickColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -151,14 +159,16 @@
               @click="handManualOperation('宸�', '缂╁洖')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !leftDropColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !leftDropColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -179,16 +189,19 @@
               </div>
               <span style="font-size: 2.25rem; text-align: center">缂╁洖</span>
             </el-button>
-            <div style="color: #fff; font-size: 2rem; margin-left: 15rem">
-              鍙充晶浼哥缉鏉�
+            <div style="color: #fff; font-size: 2rem; margin-left: 13rem">
+              宸︿晶浼哥缉鏉嗕綅缃�:{{
+                leftposition.Liftvalue ? parseInt(leftposition.Liftvalue) : 0
+              }}
             </div>
           </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>
+          <!--  ruleForm.leftPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.manualExtend }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.manualExtend }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -203,7 +216,7 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶宸︿晶</span
             >
-            <img src="@/assets/imgs/right.png" alt="" />
+            <img src="@/assets/imgs/left.png" alt="" />
           </div>
         </div>
       </div>
@@ -214,14 +227,16 @@
               @click="handManualOperation('鍙�', '浼稿嚭')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !rightPickColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !rightPickColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -246,14 +261,16 @@
               @click="handManualOperation('鍙�', '缂╁洖')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !rightDropColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !rightDropColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -274,16 +291,21 @@
               </div>
               <span style="font-size: 2.25rem; text-align: center">缂╁洖</span>
             </el-button>
-            <div style="color: #fff; font-size: 2rem; margin-left: 15rem">
-              宸︿晶浼哥缉鏉�
+            <div style="color: #fff; font-size: 2rem; margin-left: 13rem">
+              鍙充晶浼哥缉鏉嗕綅缃�:{{
+                rightposition.Rightvalue
+                  ? parseInt(rightposition.Rightvalue)
+                  : 0
+              }}
             </div>
           </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.rightPosition }}</div>
+          <!-- ruleForm.rightPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.manualRetraction }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.manualRetraction }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -298,7 +320,7 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶鍙充晶</span
             >
-            <img src="@/assets/imgs/left.png" alt="" />
+            <img src="@/assets/imgs/right.png" alt="" />
           </div>
         </div>
       </div>
@@ -311,14 +333,16 @@
               @click="handManualOperation('宸�', '浼稿嚭')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !leftPickColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !leftPickColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -343,14 +367,16 @@
               @click="handManualOperation('宸�', '缂╁洖')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !leftDropColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !leftDropColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -374,14 +400,17 @@
           </div>
           <div style="color: #fff; font-size: 2rem">宸︿晶浼哥缉鏉�</div>
           <span style="color: #fff; font-size: 2rem"
-            >褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              leftposition.Liftvalue ? parseInt(leftposition.Liftvalue) : 0
+            }}</span
           >
         </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>
+          <!--  ruleForm.leftPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.manualExtend }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.manualExtend }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -396,7 +425,7 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶宸︿晶</span
             >
-            <img src="@/assets/imgs/right.png" alt="" />
+            <img src="@/assets/imgs/left.png" alt="" />
           </div>
         </div>
       </div>
@@ -407,14 +436,16 @@
               @click="handManualOperation('鍙�', '浼稿嚭')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !rightPickColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !rightPickColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -439,14 +470,16 @@
               @click="handManualOperation('鍙�', '缂╁洖')"
               type="primary"
               size="small"
-              style="
-                width: 14.69rem;
-                height: 5.06rem;
-                color: rgba(64, 253, 240, 1);
-                background-color: rgba(6, 229, 231, 0.3);
-                border: none;
-                border-top: 0.25rem solid rgba(6, 229, 231, 1);
-              "
+              :style="{
+                width: '14.69rem',
+                height: '5.06rem',
+                color: !rightDropColor ? 'rgba(64, 253, 240, 1)' : '#fff',
+                backgroundColor: !rightDropColor
+                  ? 'rgba(6, 229, 231, 0.3)'
+                  : 'rgba(205, 208, 214,0.5)',
+                border: 'none',
+                borderTop: '0.25rem solid rgba(6, 229, 231, 1)',
+              }"
             >
               <div class="btnicon">
                 <span
@@ -470,14 +503,17 @@
           </div>
           <div style="color: #fff; font-size: 2rem">鍙充晶浼哥缉鏉�</div>
           <span style="color: #fff; font-size: 2rem"
-            >褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              rightposition.Rightvalue ? parseInt(rightposition.Rightvalue) : 0
+            }}</span
           >
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.rightPosition }}</div>
+          <!-- ruleForm.rightPosition -->
+          <div class="item">缂╁埌浣�:{{ 0 }}</div>
+          <div class="item">浼稿嚭閫熷害:{{ ruleForm.manualRetraction }}</div>
+          <div class="item">缂╁洖閫熷害:{{ ruleForm.manualRetraction }}</div>
           <div class="open">
             <div class="city">
               <div class="dotted"></div>
@@ -492,16 +528,14 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶鍙充晶</span
             >
-            <div
+            <!-- <div id="video-container"></div> -->
+            <img src="@/assets/imgs/right.png" alt="" />
+            <!-- <div
               id="playWnd"
               class="playWnd"
               style="left: 109px; top: 133px"
-            ></div>
-            <!-- <iframe
-              src="http://192.168.2.168/doc/pageview.asp"
-              id="childFrame"
-              style="height: 100%"
-            ></iframe> -->
+              ref="playWnd"
+            ></div> -->
           </div>
         </div>
       </div>
@@ -509,7 +543,7 @@
   </div>
 </template>
 <script setup>
-import { ref, onMounted, nextTick } from "vue";
+import { ref, onMounted, nextTick, onUnmounted } from "vue";
 import { useRouter } from "vue-router";
 import { ElMessage } from "element-plus";
 import {
@@ -517,19 +551,62 @@
   GetPosition,
   AutoPickAndDrop,
   Pouse,
+  GetParameter,
 } from "@/api/newapi/Parameters.js";
-// import { WebVideoCtrl } from "@/assets/webControl/webVideoCtrl.js";
+// import EZUIKit from "ezuikit-js";
+
 const router = useRouter();
 const isMobile = ref(false);
 const Position = ref({
-  left: 0,
+  lift: 0,
   right: 0,
 });
+const rightposition = ref({});
+const leftposition = ref({});
+const tableData = ref([]);
+const isStart = ref(false); // 鏄惁寮�濮�
+const timer = ref(null);
+const client = ref(null);
 
+const pouseColor = ref(false);
+const AutoPickColor = ref(false); // 浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+const AutoDropColor = ref(false); // 缂╁洖鏃堕鑹蹭负鍙樿壊
+const rightPickColor = ref(false); // 鍙充晶浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+const rightDropColor = ref(false); // 鍙充晶缂╁洖鏃堕鑹蹭负鍙樿壊
+const leftPickColor = ref(false); // 宸︿晶浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+const leftDropColor = ref(false); // 宸︿晶缂╁洖鏃堕鑹蹭负鍙樿壊
 const jumpRouter = (path) => {
   router.push(path);
 };
-const handManualOperation = async (position, ExtendedState) => {
+const handManualOperation = throttle(async (position, ExtendedState) => {
+  if (position == "鍙�") {
+    if (ExtendedState == "浼稿嚭") {
+      rightPickColor.value = true; // 鍙充晶浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+    } else {
+      rightDropColor.value = true; // 鍙充晶缂╁洖鏃堕鑹蹭负鍙樿壊
+    }
+  } else {
+    if (ExtendedState == "浼稿嚭") {
+      leftPickColor.value = true; // 宸︿晶浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+    } else {
+      leftDropColor.value = true; // 宸︿晶缂╁洖鏃堕鑹蹭负鍙樿壊
+    }
+  }
+  setTimeout(() => {
+    if (position == "鍙�") {
+      if (ExtendedState == "浼稿嚭") {
+        rightPickColor.value = false; // 鍙充晶浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+      } else {
+        rightDropColor.value = false; // 鍙充晶缂╁洖鏃堕鑹蹭负鍙樿壊
+      }
+    } else {
+      if (ExtendedState == "浼稿嚭") {
+        leftPickColor.value = false; // 宸︿晶浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+      } else {
+        leftDropColor.value = false; // 宸︿晶缂╁洖鏃堕鑹蹭负鍙樿壊
+      }
+    }
+  }, 2000);
   try {
     const res = await ManualOperation({
       position: position,
@@ -552,10 +629,20 @@
       type: "error",
     });
   }
-
-  console.log(res);
-};
-const handleAutoPickAndDrop = async (val) => {
+}, 2000);
+const handleAutoPickAndDrop = throttle(async (val) => {
+  if (val == "浼稿嚭") {
+    AutoPickColor.value = true; // 浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+  } else {
+    AutoDropColor.value = true; // 缂╁洖鏃堕鑹蹭负鍙樿壊
+  }
+  setTimeout(() => {
+    if (val == "浼稿嚭") {
+      AutoPickColor.value = false; // 浼稿嚭鏃堕鑹蹭负榛樿棰滆壊
+    } else {
+      AutoDropColor.value = false; // 缂╁洖鏃堕鑹蹭负鍙樿壊
+    }
+  }, 2000);
   try {
     const response = await AutoPickAndDrop({
       ExtendedState: val,
@@ -569,8 +656,12 @@
     console.error(error);
     ElMessage.error("鎿嶄綔澶辫触");
   }
-};
-const handlePouse = async () => {
+}, 2000);
+const handlePouse = throttle(async () => {
+  pouseColor.value = !pouseColor.value; // 鍒囨崲棰滆壊
+  setTimeout(() => {
+    pouseColor.value = !pouseColor.value; // 鍒囨崲棰滆壊
+  }, 2000);
   try {
     const response = await Pouse();
     if (response.code === 0) {
@@ -578,158 +669,111 @@
     } else {
       ElMessage.error(response.message);
     }
+    console.log("Pouse response:", response);
   } catch (error) {
     console.error(error);
     ElMessage.error(error);
   }
-};
+  // 5绉掑悗鎭㈠鍘熸潵鐨勯鑹�
+}, 2000);
 
 //鑾峰彇褰撳墠浣嶇疆
-const getPosition = () => {
-  GetPosition().then((res) => {
+// const getPosition = () => {
+//   GetPosition().then((res) => {
+//     if (res.code == 0) {
+//       Position.value.lift = res.data.lift;
+//       Position.value.right = res.data.right;
+//     }
+//   });
+// };
+
+function throttle(func, wait) {
+  // 涓婁竴娆℃墽琛屽嚱鏁扮殑鏃堕棿鎴筹紝鍒濆鍊间负 0
+  let lastTime = 0;
+  // 杩斿洖涓�涓棴鍖呭嚱鏁帮紝浣滀负鑺傛祦鍚庣殑鍑芥暟
+  return function (...args) {
+    // 鑾峰彇褰撳墠鏃堕棿鎴�
+    const now = Date.now();
+    // 濡傛灉褰撳墠鏃堕棿涓庝笂涓�娆℃墽琛屾椂闂寸殑宸�煎ぇ浜庣瓑浜� wait锛屽垯鎵ц鍑芥暟
+    if (now - lastTime >= wait) {
+      // 鏇存柊涓婁竴娆℃墽琛屽嚱鏁扮殑鏃堕棿鎴�
+      lastTime = now;
+      // 璋冪敤鍘熷鍑芥暟锛屽苟浼犲叆鍙傛暟
+      func(...args);
+    }
+  };
+}
+
+const ruleForm = ref({
+  creater: "string",
+  createDate: "2025-03-27T05:48:57.698Z",
+  modifier: "string",
+  modifyDate: "2025-03-27T05:48:57.698Z",
+  id: 0,
+  extendSpeed: 0,
+  retractionSpeed: 0,
+  manualExtend: 0,
+  manualRetraction: 0,
+  // depid: userInfo.depid,
+  // account: userInfo.userName,
+  leftPosition: 0,
+  rightPosition: 0,
+});
+
+//鑾峰彇鍙傛暟
+const getParameter = () => {
+  GetParameter().then((res) => {
     if (res.code == 0) {
-      Position.value.left = res.data.left;
-      Position.value.right = res.data.right;
+      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;
     }
   });
 };
-// const WebVideoCtrl = new WebControl();
-// 鍒涘缓鎾斁瀹炰緥
-function initPlugin() {
-  console.log("initPlugin",new WebControl());
-  
-  oWebControl = new WebControl({
-    szPluginContainer: "playWnd", // 鎸囧畾瀹瑰櫒id
-    iServicePortStart: 15900, // 鎸囧畾璧锋绔彛鍙凤紝寤鸿浣跨敤璇ュ��
-    iServicePortEnd: 15900,
-    szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11", // 鐢ㄤ簬IE10浣跨敤ActiveX鐨刢lsid
-    cbConnectSuccess: function () {
-      // 鍒涘缓WebControl瀹炰緥鎴愬姛
-      oWebControl
-        .JS_StartService("window", {
-          // WebControl瀹炰緥鍒涘缓鎴愬姛鍚庨渶瑕佸惎鍔ㄦ湇鍔�
-          dllPath: "./VideoPluginConnect.dll", // 鍊�"./VideoPluginConnect.dll"鍐欐
-        })
-        .then(
-          function () {
-            // 鍚姩鎻掍欢鏈嶅姟鎴愬姛
-            oWebControl.JS_SetWindowControlCallback({
-              // 璁剧疆娑堟伅鍥炶皟
-              cbIntegrationCallBack: cbIntegrationCallBack,
-            });
 
-            oWebControl.JS_CreateWnd("playWnd", 1000, 600).then(function () {
-              //JS_CreateWnd鍒涘缓瑙嗛鎾斁绐楀彛锛屽楂樺彲璁惧畾
-              init(); // 鍒涘缓鎾斁瀹炰緥鎴愬姛鍚庡垵濮嬪寲
-            });
-          },
-          function () {
-            // 鍚姩鎻掍欢鏈嶅姟澶辫触
-          }
-        );
-    },
-    cbConnectError: function () {
-      // 鍒涘缓WebControl瀹炰緥澶辫触
-      oWebControl = null;
-      $("#playWnd").html("鎻掍欢鏈惎鍔紝姝e湪灏濊瘯鍚姩锛岃绋嶅��...");
-      WebControl.JS_WakeUp("VideoWebPlugin://"); // 绋嬪簭鏈惎鍔ㄦ椂鎵цerror鍑芥暟锛岄噰鐢╳akeup鏉ュ惎鍔ㄧ▼搴�
-      initCount++;
-      if (initCount < 3) {
-        setTimeout(function () {
-          initPlugin();
-        }, 3000);
-      } else {
-        $("#playWnd").html("鎻掍欢鍚姩澶辫触锛岃妫�鏌ユ彃浠舵槸鍚﹀畨瑁咃紒");
-      }
-    },
-    cbConnectClose: function (bNormalClose) {
-      // 寮傚父鏂紑锛歜NormalClose = false
-      // JS_Disconnect姝e父鏂紑锛歜NormalClose = true
-      console.log("cbConnectClose");
-      oWebControl = null;
-      $("#playWnd").html("鎻掍欢鏈惎鍔紝姝e湪灏濊瘯鍚姩锛岃绋嶅��...");
-      WebControl.JS_WakeUp("VideoWebPlugin://");
-      initCount++;
-      if (initCount < 3) {
-        setTimeout(function () {
-          initPlugin();
-        }, 3000);
-      } else {
-        $("#playWnd").html("鎻掍欢鍚姩澶辫触锛岃妫�鏌ユ彃浠舵槸鍚﹀畨瑁咃紒");
-      }
-    },
-  });
-  
-}
+const createSocket = (url) => {
+  clearInterval(timer.value);
+  // 鍒涘缓WebSocket杩炴帴
+  //"ws://127.0.0.1:9295/admin"
+  //192.168.1.103
+  client.value = new WebSocket("ws://192.168.1.103:5173/");
+  client.value.onopen = function () {
+    console.log("WebSocket 杩炴帴鎴愬姛");
+  };
+  client.value.onmessage = function (event) {
+    let data = JSON.parse(event.data);
+    if (data.Status) {
+      tableData.value = data.Data;
+    } else if (data.device == "鍙砅lc") {
+      rightposition.value = data;
+    } else if (data.device == "宸lc") {
+      leftposition.value = data;
+    }
 
-// const initWebVideoCtrl = () => {
-//   if (!WebVideoCtrl) {
-//     console.error("WebControl 鏈纭姞杞斤紝璇锋鏌ョ浉鍏宠剼鏈��");
-//     ElMessage.error("WebControl 鏈纭姞杞斤紝璇锋鏌ョ浉鍏宠剼鏈��");
-//     return;
-//   }
+    console.log("WebSocket 鎺ユ敹鍒版秷鎭�", data);
+  };
+  client.value.onclose = function () {
+    console.log("WebSocket 杩炴帴鍏抽棴");
+    if (isStart.value) {
+      timer.value = setTimeout(createSocket, 1000);
+    }
+  };
 
-//   try {
-//     // 鍒濆鍖栨彃浠�
-//     WebVideoCtrl.I_InitPlugin(800, 600, {
-//       bWndFull: true, // 鏄惁鏀寔鍗曠獥鍙e叏灞�
-//       iPackageType: 2, // 2 琛ㄧず HLS 鍗忚
-//     });
-//     // 鎻掑叆鎻掍欢鍒版寚瀹� DOM 鍏冪礌
-//     WebVideoCtrl.I_InsertOBJECTPlugin("videoDiv");
-
-//     // 璁惧淇℃伅
-//     const deviceInfo = {
-//       sIP: "192.168.2.168", // 璁惧 IP 鍦板潃
-//       iPort: 80, // 璁惧绔彛鍙�
-//       sUsername: "admin", // 鐢ㄦ埛鍚�
-//       sPassword: "123456", // 瀵嗙爜
-//     };
-
-//     // 璋冪敤鐧诲綍璁惧鍑芥暟
-//     loginDevice(deviceInfo);
-//   } catch (error) {
-//     console.error("鍒濆鍖� WebVideoCtrl 鎻掍欢鏃跺嚭閿�:", error);
-//     ElMessage.error("鍒濆鍖� WebVideoCtrl 鎻掍欢鏃跺嚭閿欙紝璇锋鏌ラ厤缃��");
-//   }
-// };
-
-// 鐧诲綍璁惧
-// const loginDevice = (deviceInfo) => {
-//   WebVideoCtrl.I_Login(
-//     deviceInfo.sIP,
-//     1,
-//     deviceInfo.iPort,
-//     deviceInfo.sUsername,
-//     deviceInfo.sPassword,
-//     {
-//       success: () => {
-//         console.log("鐧诲綍鎴愬姛");
-//         ElMessage.success("璁惧鐧诲綍鎴愬姛");
-//         // 寮�濮嬮瑙�
-//         startRealPlay();
-//       },
-//       error: () => {
-//         console.error("鐧诲綍澶辫触锛岃妫�鏌ヨ澶囦俊鎭拰缃戠粶杩炴帴銆�");
-//         ElMessage.error("璁惧鐧诲綍澶辫触锛岃妫�鏌ヨ澶囦俊鎭拰缃戠粶杩炴帴銆�");
-//       },
-//     }
-//   );
-// };
-// // 寮�濮嬪疄鏃堕瑙堝嚱鏁�
-// const startRealPlay = () => {
-//   try {
-//     WebVideoCtrl.I_StartRealPlay(1, {
-//       iStreamType: 0, // 涓荤爜娴�
-//     });
-//     console.log("寮�濮嬪疄鏃堕瑙�");
-//   } catch (error) {
-//     console.error("寮�濮嬪疄鏃堕瑙堟椂鍑洪敊:", error);
-//     ElMessage.error("寮�濮嬪疄鏃堕瑙堟椂鍑洪敊锛岃妫�鏌ヨ澶囩姸鎬併��");
-//   }
-// };
+  client.value.onerror = function () {};
+};
 onMounted(() => {
-  initPlugin();
+  isStart.value = true; // 璁剧疆涓哄紑濮嬬姸鎬�
+  createSocket();
+  getParameter();
+  // initPlugin();
   // initWebVideoCtrl();
   // 鐩戝惉绐楀彛澶у皬鍙樺寲
   window.addEventListener("resize", () => {
@@ -749,7 +793,16 @@
     // 濡傛灉绐楀彛瀹藉害灏忎簬绛変簬1080px锛屾墽琛岀浉搴旂殑鎿嶄綔
     isMobile.value = false;
   }
-  getPosition();
+  // getPosition();
+});
+
+onUnmounted(() => {
+  isStart.value = false;
+  clearInterval(timer.value);
+  if (client.value) {
+    client.value.close();
+  }
+  clearInterval(timer.value);
 });
 </script>
 <style lang="scss" scoped>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue"
index 394ef4c..bbf06f9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/PickAndDrop/PickAndDrop.vue"
@@ -120,15 +120,20 @@
     <div v-if="isMobile" class="content">
       <div class="content_l">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              leftposition.Liftvalue ? parseInt(leftposition.Liftvalue) : 0
+            }}</span
+          >
           <span>宸︿晶浼哥缉鏉�</span>
           <span></span>
         </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>
+          <!--  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>
@@ -143,21 +148,26 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶宸︿晶</span
             >
-            <img src="@/assets/imgs/right.png" alt="" />
+            <img src="@/assets/imgs/left.png" alt="" />
           </div>
         </div>
       </div>
       <div class="content_r">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span>
-          <span>宸︿晶浼哥缉鏉�</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              rightposition.Rightvalue ? parseInt(rightposition.Rightvalue) : 0
+            }}</span
+          >
+          <span>鍙充晶浼哥缉鏉�</span>
           <span></span>
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.rightPosition }}</div>
+          <!-- ruleForm.rightPosition -->
+          <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>
@@ -172,7 +182,7 @@
             <span style="color: #fff; font-size: 1.25rem; font-weight: bold"
               >瑙嗛鐩戞帶鍙充晶</span
             >
-            <img src="@/assets/imgs/left.png" alt="" />
+            <img src="@/assets/imgs/right.png" alt="" />
           </div>
         </div>
       </div>
@@ -180,15 +190,20 @@
     <div v-else class="content_mobile">
       <div class="content_l">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.left }}</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              leftposition.Liftvalue ? parseInt(leftposition.Liftvalue) : 0
+            }}</span
+          >
           <span>宸︿晶浼哥缉鏉�</span>
           <span></span>
         </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>
+          <!-- 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>
@@ -203,21 +218,26 @@
             <span style="color: #fff; font-size: 2.5rem; font-weight: bold"
               >瑙嗛鐩戞帶宸︿晶</span
             >
-            <img src="@/assets/imgs/right.png" alt="" />
+            <img src="@/assets/imgs/left.png" alt="" />
           </div>
         </div>
       </div>
       <div class="content_r">
         <div class="model">
-          <span>褰撳墠浼哥缉鏉嗕綅缃細{{ Position.right }}</span>
-          <span>宸︿晶浼哥缉鏉�</span>
+          <span
+            >褰撳墠浼哥缉鏉嗕綅缃細{{
+              rightposition.Rightvalue ? parseInt(rightposition.Rightvalue) : 0
+            }}</span
+          >
+          <span>鍙充晶浼哥缉鏉�</span>
           <span></span>
         </div>
         <div class="operate">
-          <div class="item">浼稿埌浣�</div>
-          <div class="item">缂╁埌浣�</div>
-          <div class="item">浼稿嚭閫熷害</div>
-          <div class="item">缂╁洖閫熷害</div>
+          <div class="item">浼稿埌浣�:{{ ruleForm.rightPosition }}</div>
+          <!--  ruleForm.rightPosition -->
+          <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>
@@ -232,7 +252,7 @@
             <span style="color: #fff; font-size: 2.5rem; font-weight: bold"
               >瑙嗛鐩戞帶鍙充晶</span
             >
-            <img src="@/assets/imgs/left.png" alt="" />
+            <img src="@/assets/imgs/right.png" alt="" />
           </div>
         </div>
       </div>
@@ -240,22 +260,43 @@
   </div>
 </template>
 <script setup>
-import { ref, onMounted, nextTick } from "vue";
+import { ref, onMounted, nextTick, onUnmounted } from "vue";
 import { useRouter } from "vue-router";
 import { ElMessage } from "element-plus";
 import {
   AutoPickAndDrop,
   Pouse,
   GetPosition,
+  GetParameter,
 } from "@/api/newapi/Parameters.js";
 
 const router = useRouter();
 const isMobile = ref(false);
 const Position = ref({
-  left: 0,
+  lift: 0,
   right: 0,
 });
-
+const ruleForm = ref({
+  creater: "string",
+  createDate: "2025-03-27T05:48:57.698Z",
+  modifier: "string",
+  modifyDate: "2025-03-27T05:48:57.698Z",
+  id: 0,
+  extendSpeed: 0,
+  retractionSpeed: 0,
+  manualExtend: 0,
+  manualRetraction: 0,
+  // depid: userInfo.depid,
+  // account: userInfo.userName,
+  leftPosition: 0,
+  rightPosition: 0,
+});
+const rightposition = ref({});
+const leftposition = ref({});
+const tableData = ref([]);
+const isStart = ref(false); // 鏄惁寮�濮�
+const timer = ref(null);
+const client = ref(null);
 const jumpRouter = (path) => {
   router.push(path);
 };
@@ -289,13 +330,63 @@
 };
 
 //鑾峰彇褰撳墠浣嶇疆
-const getPosition = () => {
-  GetPosition().then((res) => {
+// const getPosition = () => {
+//   GetPosition().then((res) => {
+//     if (res.code == 0) {
+//       Position.value.lift = res.data.lift;
+//       Position.value.right = res.data.right;
+//     }
+//   });
+// };
+
+//鑾峰彇鍙傛暟
+const getParameter = () => {
+  GetParameter().then((res) => {
     if (res.code == 0) {
-      Position.value.left = res.data.lift;
-      Position.value.right = res.data.right;
+      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;
     }
   });
+};
+
+const createSocket = (url) => {
+  clearInterval(timer.value);
+  // 鍒涘缓WebSocket杩炴帴
+  //"ws://127.0.0.1:9295/admin"
+  //192.168.1.103
+  client.value = new WebSocket("ws://192.168.1.103:5173/");
+  client.value.onopen = function () {
+    console.log("WebSocket 杩炴帴鎴愬姛");
+  };
+  client.value.onmessage = function (event) {
+    let data = JSON.parse(event.data);
+    if (data.Status) {
+      tableData.value = data.Data;
+    } else if (data.device == "鍙砅lc") {
+      rightposition.value = data;
+    } else if (data.device == "宸lc") {
+      leftposition.value = data;
+    }
+
+    console.log("WebSocket 鎺ユ敹鍒版秷鎭�", data);
+  };
+  client.value.onclose = function () {
+    console.log("WebSocket 杩炴帴鍏抽棴");
+    if (isStart.value) {
+      timer.value = setTimeout(createSocket, 1000);
+    }
+  };
+
+  client.value.onerror = function () {};
 };
 onMounted(() => {
   // 鐩戝惉绐楀彛澶у皬鍙樺寲
@@ -316,7 +407,19 @@
     // 濡傛灉绐楀彛瀹藉害灏忎簬绛変簬1080px锛屾墽琛岀浉搴旂殑鎿嶄綔
     isMobile.value = false;
   }
-  getPosition();
+  isStart.value = true; // 璁剧疆涓哄紑濮嬬姸鎬�
+  createSocket();
+  // getPosition();
+  getParameter();
+});
+
+onUnmounted(() => {
+  isStart.value = false;
+  clearInterval(timer.value);
+  if (client.value) {
+    client.value.close();
+  }
+  clearInterval(timer.value);
 });
 </script>
 <style lang="scss" scoped>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue"
index e91385e..3b86e55 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\344\274\270\347\274\251\346\235\206/client/src/views/tts/UserManagement/Usermanagement.vue"
@@ -14,6 +14,18 @@
         >
           鐢ㄦ埛瑙掕壊
         </div>
+        <div
+          :class="['item', isactive == 3 ? 'isactive' : '']"
+          @click="changeactive(3)"
+        >
+          鐢ㄦ埛鐝粍
+        </div>
+        <div
+          :class="['item', isactive == 4 ? 'isactive' : '']"
+          @click="changeactive(4)"
+        >
+          鐢ㄦ埛鍗曚綅
+        </div>
       </div>
       <div class="serch">
         <div class="time_box">
@@ -31,6 +43,7 @@
               height: 2rem;
               border-left: 0;
             "
+            class="time_picker"
             format="YYYY-MM-DD HH:mm:ss"
             type="datetimerange"
             range-separator="~"
@@ -46,6 +59,7 @@
               placeholder="璇烽�夋嫨"
               size="small"
               style="width: 100%; font-size: 0.15rem"
+              class="select"
             >
               <el-option
                 v-for="item in selectoptions"
@@ -65,10 +79,15 @@
           @click="handleQuery"
           type="primary"
           size="small"
-          style="margin-left: 0.98rem; height: 2rem"
+          style="margin-left: 0.98rem; height: 2.5rem"
+          class="text_btn"
           >鏌ヨ</el-button
         >
-        <el-button size="small" style="height: 2rem" @click="resetQuery"
+        <el-button
+          size="small"
+          style="height: 2.5rem"
+          class="text_btn"
+          @click="resetQuery"
           >閲嶇疆</el-button
         >
       </div>
@@ -87,6 +106,7 @@
               display: flex;
               align-items: center;
             "
+            class="text_btn"
             ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
             >鏂板缓</el-button
           >
@@ -103,6 +123,41 @@
               display: flex;
               align-items: center;
             "
+            class="text_btn"
+            ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
+            >鏂板缓</el-button
+          >
+          <!-- 鐢ㄦ埛鐝粍鏂板缓 -->
+          <el-button
+            v-if="isactive == 3"
+            type="primary"
+            size="small"
+            @click="AddGroup"
+            style="
+              width: 5.5rem;
+              height: 2rem;
+              font-size: 0.88rem;
+              display: flex;
+              align-items: center;
+            "
+            class="text_btn"
+            ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
+            >鏂板缓</el-button
+          >
+          <!-- 鐢ㄦ埛鍗曚綅鏂板缓 -->
+          <el-button
+            v-if="isactive == 4"
+            type="primary"
+            size="small"
+            @click="AddUnit"
+            style="
+              width: 5.5rem;
+              height: 2rem;
+              font-size: 0.88rem;
+              display: flex;
+              align-items: center;
+            "
+            class="text_btn"
             ><el-icon style="margin-right: 0.2rem"> <Plus /> </el-icon
             >鏂板缓</el-button
           >
@@ -110,12 +165,14 @@
             size="small"
             style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
             @click="printExcel"
+            class="text_btn"
             >鎵归噺瀵煎嚭</el-button
           >
           <el-button
             @click="deleteAll"
             size="small"
             style="width: 5.5rem; height: 2rem; font-size: 0.88rem"
+            class="text_btn"
             >鎵归噺鍒犻櫎</el-button
           >
         </div>
@@ -124,22 +181,40 @@
         <!-- 鐢ㄦ埛鍒楄〃 -->
         <el-table
           empty-text="鏆傛棤鏁版嵁"
-          height="450"
+          :height="isMin ? '950' : '450'"
           v-if="isactive == 1"
           :data="tableData"
           style="width: 100%"
-          :header-cell-style="{
-            background: 'rgba(250,250,250,1)',
-            color: '#101010',
-            fontSize: '0.88rem',
-            height: '3rem',
-            border: 'none',
-          }"
-          :row-style="{
-            color: '#101010',
-            fontSize: '0.88rem',
-            height: '3rem',
-          }"
+          :header-cell-style="
+            isMin
+              ? {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '1.5rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+              : {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+          "
+          :row-style="
+            isMin
+              ? {
+                  color: '#101010',
+                  fontSize: '2rem',
+                  height: '3rem',
+                }
+              : {
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                }
+          "
           @selection-change="UserSelectionChange"
         >
           <el-table-column type="selection" align="center" min-width="1%" />
@@ -162,14 +237,25 @@
             min-width="3%"
           />
           <el-table-column
-            prop="userteam"
-            label="鐢ㄦ埛鍒嗙粍"
+            prop="isLeader"
+            label="鐢ㄦ埛绫诲瀷"
             align="center"
             min-width="2%"
+          >
+            <template #default="scope">
+              <span v-if="scope.row.isLeader == 0">缁勫憳</span>
+              <span v-else-if="scope.row.isLeader == 1">缁勯暱</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="unit"
+            label="鍗曚綅"
+            align="center"
+            min-width="3%"
           />
           <el-table-column
-            prop="roleName"
-            label="鐢ㄦ埛瑙掕壊"
+            prop="userteam"
+            label="鐝粍"
             align="center"
             min-width="3%"
           />
@@ -242,22 +328,40 @@
         <!-- 鐢ㄦ埛瑙掕壊 -->
         <el-table
           empty-text="鏆傛棤鏁版嵁"
-          height="450"
+          :height="isMin ? '950' : '450'"
           v-if="isactive == 2"
           :data="grideData"
           style="width: 100%"
-          :header-cell-style="{
-            background: 'rgba(250,250,250,1)',
-            color: '#101010',
-            fontSize: '0.88rem',
-            height: '3rem',
-            border: 'none',
-          }"
-          :row-style="{
-            color: '#101010',
-            fontSize: '0.88rem',
-            height: '3rem',
-          }"
+          :header-cell-style="
+            isMin
+              ? {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '1.5rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+              : {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+          "
+          :row-style="
+            isMin
+              ? {
+                  color: '#101010',
+                  fontSize: '1.88rem',
+                  height: '3rem',
+                }
+              : {
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                }
+          "
           @selection-change="RoleSelectionChange"
         >
           <el-table-column type="selection" align="center" />
@@ -276,6 +380,12 @@
                 style="color: #4386ff; cursor: pointer"
                 >绠$悊</span
               >
+            </template>
+          </el-table-column>
+          <el-table-column prop="isLeader" label="缁勫憳绫诲瀷" align="center">
+            <template #default="scope">
+              <span v-if="scope.row.isLeader == 0">缁勫憳</span>
+              <span v-else-if="scope.row.isLeader == 1">缁勯暱</span>
             </template>
           </el-table-column>
           <el-table-column prop="deptName" label="澶囨敞" align="center" />
@@ -303,8 +413,142 @@
                       scope.row.user_Id == '1' ||
                       scope.row.userName != userInfo.userName)
                 "
-                style="color: blue; font-size: 0.88rem; cursor: pointer"
+                :style="{
+                  color: 'blue',
+                  fontSize: isMin ? '1.88rem' : '0.88rem',
+                  cursor: 'pointer',
+                }"
                 @click="EditRole(scope.row)"
+                >缂栬緫</span
+              >
+            </template></el-table-column
+          >
+        </el-table>
+
+        <!-- 鐢ㄦ埛鐝粍 -->
+        <el-table
+          empty-text="鏆傛棤鏁版嵁"
+          :height="isMin ? '950' : '450'"
+          v-if="isactive == 3"
+          :data="departmentData"
+          style="width: 100%"
+          :header-cell-style="
+            isMin
+              ? {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '1.5rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+              : {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+          "
+          :row-style="
+            isMin
+              ? {
+                  color: '#101010',
+                  fontSize: '1.88rem',
+                  height: '3rem',
+                }
+              : {
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                }
+          "
+          @selection-change="TreamSelectionChange"
+        >
+          <el-table-column type="selection" align="center" />
+          <el-table-column prop="teamName" 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">
+            <template #default="scope">
+              <span
+                v-if="
+                  !(userInfo.userName == 'admin' || userInfo.roleId == '1'
+                    ? scope.row.userName == 'admin' || scope.row.user_Id == '1'
+                    : scope.row.userName == 'admin' ||
+                      scope.row.user_Id == '1' ||
+                      scope.row.userName != userInfo.userName)
+                "
+                :style="{
+                  color: 'blue',
+                  fontSize: isMin ? '1.88rem' : '0.88rem',
+                  cursor: 'pointer',
+                }"
+                @click="EditTream(scope.row)"
+                >缂栬緫</span
+              >
+            </template></el-table-column
+          >
+        </el-table>
+
+        <!-- 鐢ㄦ埛鍗曚綅 -->
+        <el-table
+          empty-text="鏆傛棤鏁版嵁"
+          :height="isMin ? '950' : '450'"
+          v-if="isactive == 4"
+          :data="unitData"
+          style="width: 100%"
+          :header-cell-style="
+            isMin
+              ? {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '1.5rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+              : {
+                  background: 'rgba(250,250,250,1)',
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                  border: 'none',
+                }
+          "
+          :row-style="
+            isMin
+              ? {
+                  color: '#101010',
+                  fontSize: '1.88rem',
+                  height: '3rem',
+                }
+              : {
+                  color: '#101010',
+                  fontSize: '0.88rem',
+                  height: '3rem',
+                }
+          "
+          @selection-change="UnitSelectionChange"
+        >
+          <el-table-column type="selection" align="center" />
+          <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">
+            <template #default="scope">
+              <span
+                v-if="
+                  !(userInfo.userName == 'admin' || userInfo.roleId == '1'
+                    ? scope.row.userName == 'admin' || scope.row.user_Id == '1'
+                    : scope.row.userName == 'admin' ||
+                      scope.row.user_Id == '1' ||
+                      scope.row.userName != userInfo.userName)
+                "
+                :style="{
+                  color: 'blue',
+                  fontSize: isMin ? '1.88rem' : '0.88rem',
+                  cursor: 'pointer',
+                }"
+                @click="EditUnit(scope.row)"
                 >缂栬緫</span
               >
             </template></el-table-column
@@ -354,6 +598,7 @@
         >
           <span
             style="color: rgb(16, 16, 16); font-size: 1rem; font-weight: bold"
+            class="font-title"
             >鐢ㄦ埛淇℃伅</span
           >
         </div>
@@ -374,6 +619,7 @@
                   <span style="color: red; margin-right: 0.2rem">*</span>
                   <span
                     style="font-size: 0.88rem; color: black; font-weight: bold"
+                    class="from_title"
                     >鐧诲綍璐﹀彿</span
                   >
                 </div>
@@ -392,6 +638,7 @@
                   <span style="color: red; margin-right: 0.2rem">*</span>
                   <span
                     style="font-size: 0.88rem; color: black; font-weight: bold"
+                    class="from_title"
                     >鐪熷疄濮撳悕</span
                   >
                 </div>
@@ -410,6 +657,7 @@
                   <span style="color: red; margin-right: 0.2rem">*</span>
                   <span
                     style="font-size: 0.88rem; color: black; font-weight: bold"
+                    class="from_title"
                     >鑱旂郴鐢佃瘽</span
                   >
                 </div>
@@ -430,6 +678,7 @@
                   <span style="color: red; margin-right: 0.2rem">*</span>
                   <span
                     style="font-size: 0.88rem; color: black; font-weight: bold"
+                    class="from_title"
                     >鐢ㄦ埛瑙掕壊
                   </span>
                 </div>
@@ -438,6 +687,7 @@
                 v-model="formUser.roleid"
                 placeholder="璇烽�夋嫨"
                 size="small"
+                @change="handleRoleChange"
               >
                 <el-option
                   :disabled="item.roleId == 1"
@@ -450,26 +700,27 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item prop="rolename">
+            <el-form-item prop="userunit">
               <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>
+                    class="from_title"
+                    >鍗曚綅</span
+                  >
                 </div>
               </template>
               <el-select
-                v-model="formUser.rolename"
+                v-model="formUser.userunit"
                 placeholder="璇烽�夋嫨"
                 size="small"
               >
                 <el-option
-                  v-for="item in roleNameList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                  v-for="item in unitData"
+                  :key="item.id"
+                  :label="item.unitName"
+                  :value="item.unitName"
                 />
               </el-select>
             </el-form-item>
@@ -481,6 +732,7 @@
                   <span style="color: red; margin-right: 0.2rem">*</span>
                   <span
                     style="font-size: 0.88rem; color: black; font-weight: bold"
+                    class="from_title"
                     >鏄惁鍚敤</span
                   >
                 </div>
@@ -502,68 +754,31 @@
         </el-row>
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item prop="dept_Id">
+            <el-form-item prop="userteam">
               <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
+                    class="from_title"
+                    >鐝粍</span
                   >
                 </div>
               </template>
               <el-select
-                v-model="formUser.dept_Id"
+                v-model="formUser.userteam"
                 placeholder="璇烽�夋嫨"
                 size="small"
               >
                 <el-option
-                  v-for="item in departmentOptions"
+                  v-for="item in departmentData"
                   :key="item.id"
-                  :label="item.departmentName"
-                  :value="item.id"
+                  :label="item.teamName"
+                  :value="item.teamName"
                 />
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="8">
-            <el-form-item prop="dept_Id">
-              <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
-                size="small"
-                v-model="formUser.userteam"
-                placeholder="璇疯緭鍏�"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item prop="dept_Id">
-              <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
-                size="small"
-                v-model="formUser.carnuber"
-                placeholder="璇疯緭鍏�"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-        <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item>
               <template #label>
@@ -571,16 +786,9 @@
                   <span style="color: red; margin-right: 0.2rem">*</span>
                   <span
                     style="font-size: 0.88rem; color: black; font-weight: bold"
+                    class="from_title"
                     >浜鸿劯鍥剧墖</span
                   >
-                  <!-- <span
-                    style="
-                      color: rgba(255, 0, 0, 1);
-                      font-size: 0.75rem;
-                      margin-left: 0.5rem;
-                    "
-                    >娉細鏈�澶氬彲涓婁紶涓夊紶锛屽浘鐗囬渶瑕佹瑙勭殑浜哄儚璇佷欢鐓�</span
-                  > -->
                 </div>
               </template>
               <el-upload
@@ -660,7 +868,7 @@
       </template>
     </el-dialog>
 
-    <!-- 鐢ㄦ埛淇℃伅淇敼瀵嗙爜寮瑰嚭妗� -->
+    <!-- 鐢ㄦ埛淇敼瀵嗙爜寮瑰嚭妗� -->
     <el-dialog
       v-model="dialogVisible1"
       title=""
@@ -703,9 +911,11 @@
                 border-radius: 0.25rem;
               "
             >
-              <span style="color: #51b820; font-size: 1rem"
+              <span style="color: #51b820; font-size: 1rem" class="formpassword"
                 >璐﹀彿锛歿{ formpassword.userName }}</span
-              ><span style="color: #51b820; font-size: 1rem; margin-left: 2rem"
+              ><span
+                style="color: #51b820; font-size: 1rem; margin-left: 2rem"
+                class="formpassword"
                 >鐢ㄦ埛锛歿{ formpassword.roleName }}</span
               >
             </div>
@@ -760,7 +970,11 @@
           "
         >
           <span
-            style="color: rgb(16, 16, 16); font-size: 1rem; font-weight: bold"
+            :style="{
+              color: 'rgb(16, 16, 16)',
+              fontSize: isMin ? '2rem' : '1rem',
+              fontWeight: 'bold',
+            }"
             >鐢ㄦ埛瑙掕壊</span
           >
         </div>
@@ -776,8 +990,20 @@
         <el-form-item prop="roleName">
           <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
+                :style="{
+                  color: 'red',
+                  marginRight: '0.2rem',
+                  fontSize: '2rem',
+                }"
+                >*</span
+              >
+              <span
+                :style="{
+                  fontSize: isMin ? '2rem' : '0.88rem',
+                  color: 'black',
+                  fontWeight: bold,
+                }"
                 >瑙掕壊鍚嶇О</span
               >
             </div>
@@ -789,10 +1015,49 @@
             placeholder="璇疯緭鍏�"
           />
         </el-form-item>
+        <el-form-item prop="isLeader">
+          <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-select
+            v-model="formRole.isLeader"
+            placeholder="璇烽�夋嫨"
+            size="small"
+          >
+            <el-option
+              v-for="item in rolekey"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item>
           <template #label>
             <div style="display: flex; align-items: flex-end">
-              <span style="font-size: 0.88rem; color: black; font-weight: bold"
+              <span
+                :style="{
+                  fontSize: isMin ? '2rem' : '0.88rem',
+                  color: 'black',
+                  fontWeight: 'bold',
+                }"
                 >澶囨敞</span
               >
             </div>
@@ -818,6 +1083,178 @@
             size="small"
             type="primary"
             @click="saveRole(formRoleRef)"
+            style="height: 2rem; font-size: 0.88rem"
+          >
+            淇濆瓨
+          </el-button>
+        </div>
+      </template>
+    </el-dialog>
+
+    <!-- 鐢ㄦ埛鐝粍鏂板缓/缂栬緫 -->
+    <el-dialog
+      v-model="TreamdialogVisible"
+      title=""
+      width="20%"
+      :before-close="handleClose"
+      :show-close="false"
+      :align-center="true"
+      @close="resetForm2(formTreamdRef)"
+    >
+      <template #title>
+        <div
+          style="
+            height: 3.63rem;
+            display: flex;
+            border-bottom: 1px solid #e6e6e6;
+          "
+        >
+          <span
+            :style="{
+              color: 'rgb(16, 16, 16)',
+              fontSize: isMin ? '2rem' : '1rem',
+              fontWeight: 'bold',
+            }"
+            >鐢ㄦ埛鐝粍</span
+          >
+        </div>
+      </template>
+      <el-form
+        :model="formTeam"
+        label-width="auto"
+        label-position="top"
+        ref="formTreamdRef"
+        :rules="roleRules"
+        :hide-required-asterisk="true"
+      >
+        <el-form-item prop="teamName">
+          <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="formTeam.teamName"
+            placeholder="璇疯緭鍏�"
+          />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer" style="text-align: center">
+          <el-button
+            size="small"
+            @click="TreamdialogVisible = false"
+            style="height: 2rem; font-size: 0.88rem"
+            >鍙栨秷</el-button
+          >
+
+          <el-button
+            size="small"
+            type="primary"
+            @click="saveTream(formTreamdRef)"
+            style="height: 2rem; font-size: 0.88rem"
+          >
+            淇濆瓨
+          </el-button>
+        </div>
+      </template>
+    </el-dialog>
+
+    <!-- 鐢ㄦ埛鍗曚綅鏂板缓/缂栬緫 -->
+    <el-dialog
+      v-model="UnitdialogVisible"
+      title=""
+      width="20%"
+      :before-close="handleClose"
+      :show-close="false"
+      :align-center="true"
+      @close="resetForm3(formUnitRef)"
+    >
+      <template #title>
+        <div
+          style="
+            height: 3.63rem;
+            display: flex;
+            border-bottom: 1px solid #e6e6e6;
+          "
+        >
+          <span
+            :style="{
+              color: 'rgb(16, 16, 16)',
+              fontSize: isMin ? '2rem' : '1rem',
+              fontWeight: 'bold',
+            }"
+            >鐢ㄦ埛鍗曚綅</span
+          >
+        </div>
+      </template>
+      <el-form
+        :model="formUnit"
+        label-width="auto"
+        label-position="top"
+        ref="formUnitRef"
+        :rules="roleRules"
+        :hide-required-asterisk="true"
+      >
+        <el-form-item prop="unitName">
+          <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="formUnit.unitName"
+            placeholder="璇疯緭鍏�"
+          />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer" style="text-align: center">
+          <el-button
+            size="small"
+            @click="UnitdialogVisible = false"
+            style="height: 2rem; font-size: 0.88rem"
+            >鍙栨秷</el-button
+          >
+
+          <el-button
+            size="small"
+            type="primary"
+            @click="saveUnit(formUnitRef)"
             style="height: 2rem; font-size: 0.88rem"
           >
             淇濆瓨
@@ -858,6 +1295,15 @@
   ExportApi1,
   UpdatePwd,
   DeleteUserData,
+  GetDepartment,
+  GetUserTeam,
+  AddUserTeam,
+  EditUserTeam,
+  DeleteUserTeam,
+  GetUserUnit,
+  AddUserUnit,
+  EditUserUnit,
+  DeleteUserUnit,
 } from "@/api/user";
 import { useRouter } from "vue-router";
 import { formatTime } from "@/utils/index.js";
@@ -868,7 +1314,6 @@
   UpdateRoleApi,
   DeleteRoleApi,
 } from "@/api/role";
-import { GetDepartment } from "@/api/user";
 let obj = {
   selectName: "",
   selectTime: [], // 鏃堕棿鑼冨洿
@@ -880,10 +1325,12 @@
 
 const tableData = ref([]);
 const grideData = ref([]);
+//鐢ㄦ埛鐝粍
+const departmentData = ref([]);
+//鐢ㄦ埛鍗曚綅
+const unitData = ref([]);
 //鏂板缓鐢ㄦ埛ref
 const formUserRef = ref();
-const options = ref([]);
-const props = { multiple: true };
 const userInfo = ref();
 const isoptins = ref([
   {
@@ -892,13 +1339,13 @@
   },
   { value: 1, label: "鏄�" },
 ]);
-//鍒嗙粍
+//瑙掕壊
 const groupOptions = ref([]);
 const formUser = ref({
   id: undefined,
   username: "",
   phoneno: "",
-  roleid: 2,
+  roleid: null,
   rolename: "",
   enable: 1,
   path: "",
@@ -906,14 +1353,16 @@
   dept_Id: 1,
   carnuber: null,
   userteam: "",
+  isLeader: 0,
+  userunit: "",
 });
 const rules = reactive({
-  userName: {
+  username: {
     required: true,
     message: "璇疯緭鍏ョ敤鎴峰悕",
     trigger: "blur",
   },
-  role_Id: {
+  roleid: {
     required: true,
     message: "璇烽�夋嫨瑙掕壊",
     trigger: "change",
@@ -930,12 +1379,12 @@
     message: "璇疯緭鍏ュ鍚�",
     trigger: "blur",
   },
-  phoneNo: {
+  phoneno: {
     required: true,
     message: "璇疯緭鍏ユ墜鏈哄彿",
     trigger: "blur",
   },
-  userTrueName: {
+  usertruename: {
     required: true,
     message: "璇疯緭鍏ョ湡瀹炲鍚�",
     trigger: "blur",
@@ -945,13 +1394,12 @@
     message: "璇疯緭鍏ョ粍",
     trigger: "blur",
   },
-  carnuber: {
+  userunit: {
     required: true,
-    message: "璇疯緭鍏ュ崱鍙�",
+    message: "璇烽�夋嫨鍗曚綅",
     trigger: "blur",
   },
 });
-
 const formpasswordRef = ref();
 const isactive = ref(1);
 const dialogVisible = ref(false);
@@ -977,21 +1425,26 @@
   },
 ];
 const fileList = ref([]);
-const roleNameList = ref([
-  { value: "鐢垫皵璐ㄦ", label: "鐢垫皵璐ㄦ" },
-  { value: "鏈烘璐ㄦ", label: "鏈烘璐ㄦ" },
-  { value: "鍦版矡璐ㄦ", label: "鍦版矡璐ㄦ" },
-  { value: "鐢垫皵鍔涚煩", label: "鐢垫皵鍔涚煩" },
-  { value: "鐢垫皵杈呭姪", label: "鐢垫皵杈呭姪" },
-  { value: "鏈烘鍔涚煩", label: "鏈烘鍔涚煩" },
-  { value: "鏈烘杈呭姪", label: "鏈烘杈呭姪" },
-  { value: "鍦版矡鍔涚煩", label: "鍦版矡鍔涚煩" },
-  { value: "鍦版矡杈呭姪", label: "鍦版矡杈呭姪" },
+const rolekey = ref([
+  { value: 1, label: "缁勯暱" },
+  { value: 0, label: "缁勫憳" },
 ]);
 const roleOptions = [
   {
     value: "roleName",
     label: "瑙掕壊鍚嶇О",
+  },
+];
+const treamOptions = [
+  {
+    value: "teamName",
+    label: "鐝粍鍚嶇О",
+  },
+];
+const unitOptions = [
+  {
+    value: "unitName",
+    label: "鍗曚綅鍚嶇О",
   },
 ];
 const selectoptions = ref([]);
@@ -1016,12 +1469,53 @@
     },
   ],
 });
-
 const uploadRef = ref();
 const showUpload = ref(false);
 const pageTotal = ref(0);
+const isMin = ref(false);
+const newRole = ref({});
 //鑾峰彇閮ㄩ棬
 const departmentOptions = ref([]);
+
+const initData = () => {
+  // 鏌ヨ鏉′欢
+  const startTime = formatTime(queryForm.value.selectTime[0]);
+  const endTime = formatTime(queryForm.value.selectTime[1]);
+  const filter = [
+    {
+      name: queryForm.value.selectType,
+      value: queryForm.value.selectInput,
+      displayType: "like",
+    },
+    { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
+    { name: "createDate", value: endTime, displayType: "LessOrEqual" },
+  ];
+  GetUserList({
+    pageIndex: 1,
+    pageSize: 10,
+    searchKeyword: "",
+    startDate: formatTime(queryForm.value.selectTime[0]),
+    endDate: formatTime(queryForm.value.selectTime[1]),
+    status: 0,
+    sortField: "",
+    sortOrder: "",
+    account: "",
+  }).then((res) => {
+    tableData.value = res.data.items.map((item) => {
+      return {
+        ...item,
+        isdisabled:
+          userInfo.value.userName == "admin" || userInfo.value.roleId == "1"
+            ? item.userName == "admin" || item.user_Id == "1"
+            : item.userName == "admin" ||
+              item.user_Id == "1" ||
+              item.userName != userInfo.value.userName,
+      };
+    });
+    pageTotal.value = res.data.totalCount;
+  });
+  getDepartment();
+};
 const getDepartment = () => {
   GetDepartment({
     page: 1,
@@ -1043,40 +1537,6 @@
   }).then((res) => {
     departmentOptions.value = res.rows;
   });
-};
-
-//鐧诲綍璁板綍
-const initData = () => {
-  // 鏌ヨ鏉′欢
-  const startTime = formatTime(queryForm.value.selectTime[0]);
-  const endTime = formatTime(queryForm.value.selectTime[1]);
-  const filter = [
-    {
-      name: queryForm.value.selectType,
-      value: queryForm.value.selectInput,
-      displayType: "like",
-    },
-    { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
-    { name: "createDate", value: endTime, displayType: "LessOrEqual" },
-  ];
-  GetUserList({
-    ...pageQuery.value,
-    filter,
-  }).then((res) => {
-    tableData.value = res.rows.map((item) => {
-      return {
-        ...item,
-        isdisabled:
-          userInfo.value.userName == "admin" || userInfo.value.roleId == "1"
-            ? item.userName == "admin" || item.user_Id == "1"
-            : item.userName == "admin" ||
-              item.user_Id == "1" ||
-              item.userName != userInfo.value.userName,
-      };
-    });
-    pageTotal.value = res.total;
-  });
-  getDepartment();
 };
 //鍒嗛〉璇锋眰鍙傛暟
 const pageQuery = ref({
@@ -1138,13 +1598,14 @@
   formUser.value = {
     username: "",
     phoneno: "",
-    roleid: 20,
+    roleid: null,
     rolename: "",
     enable: 1,
     path: "",
     user_Id: undefined,
     userteam: "",
     carnuber: null,
+    isLeader: 0,
   };
   fileList.value = [];
 };
@@ -1154,6 +1615,20 @@
   formRole.value = {
     roleName: "",
     description: "",
+  };
+};
+const resetForm2 = (formEl) => {
+  if (!formEl) return;
+  formEl.resetFields();
+  formTeam.value = {
+    teamName: "",
+  };
+};
+const resetForm3 = (formEl) => {
+  if (!formEl) return;
+  formEl.resetFields();
+  formUnit.value = {
+    unitName: "",
   };
 };
 
@@ -1172,25 +1647,33 @@
 const beforeAvatarUpload = (val) => {
   console.log(val);
 };
+const handleRoleChange = (val) => {
+  groupOptions.value.find((item) => {
+    if (item.roleId == val) {
+      newRole.value = item;
+    }
+  });
+};
 //鏂板缓鐢ㄦ埛璐﹀彿
 const saveObj = async (formEl) => {
-  // submitUpload();
   if (!formEl) return;
   await formEl.validate((valid, fields) => {
     if (valid) {
       if (formUser.value.id != undefined) {
-         if (!formUser.value.userteam.includes('缁�')) {
-          formUser.value.userteam = formUser.value.userteam + '缁�'
-        }
+        // if (!formUser.value.userteam.includes("缁�")) {
+        //   formUser.value.userteam = formUser.value.userteam + "缁�";
+        // }
+        formUser.value.isLeader = newRole.value.isLeader;
         UpdateUser(formUser.value).then((res) => {
           ElMessage({ message: "淇敼鎴愬姛", type: "success" });
           dialogVisible.value = false;
           initData();
         });
       } else {
-         if (!formUser.value.userteam.includes('缁�')) {
-          formUser.value.userteam = formUser.value.userteam + '缁�'
-        }
+        // if (!formUser.value.userteam.includes("缁�")) {
+        //   formUser.value.userteam = formUser.value.userteam + "缁�";
+        // }
+        formUser.value.isLeader = newRole.value.isLeader;
         AddUser(formUser.value).then((res) => {
           ElMessage({ message: "鎻愪氦鎴愬姛", type: "success" });
           dialogVisible.value = false;
@@ -1240,6 +1723,8 @@
     usertruename: val.userTrueName,
     cardNumber: val.cardNumber,
     userteam: val.userteam,
+    userunit: val.unit,
+    dept_Id: val.dept_Id,
   };
   UpdateUser(data).then((res) => {
     ElMessage({ message: "淇敼鎴愬姛", type: "success" });
@@ -1272,6 +1757,8 @@
     carnuber: val.cardNumber,
     userteam: val.userteam,
     dept_Id: val.dept_Id,
+    isLeader: val.isLeader,
+    userunit: val.unit,
   };
   formUser.value = {
     ...obj,
@@ -1330,6 +1817,16 @@
     message: "璇疯緭鍏ヨ鑹叉弿杩�",
     trigger: "blur",
   },
+  teamName: {
+    required: true,
+    message: "璇疯緭鍏ョ彮缁勫悕绉�",
+    trigger: "blur",
+  },
+  unitName: {
+    required: true,
+    message: "璇疯緭鍏ュ崟浣嶅悕绉�",
+    trigger: "blur",
+  },
 });
 const formRole = ref({
   roleName: "",
@@ -1373,6 +1870,20 @@
   let obj = Object.assign({}, val);
   formRole.value = obj;
   dialogVisible2.value = true;
+};
+//缂栬緫鐝粍
+const EditTream = (val) => {
+  Treamtype.value = "淇敼";
+  let obj = Object.assign({}, val);
+  formTeam.value = obj;
+  TreamdialogVisible.value = true;
+};
+//缂栬緫鍗曚綅
+const EditUnit = (val) => {
+  Unittype.value = "淇敼";
+  let obj = Object.assign({}, val);
+  formUnit.value = obj;
+  UnitdialogVisible.value = true;
 };
 //鑾峰彇瑙掕壊
 const getRole = () => {
@@ -1425,15 +1936,119 @@
     });
   }
 };
+//鑾峰彇鐢ㄦ埛鐝粍
+const getGroup = () => {
+  const startTime = formatTime(queryForm.value.selectTime[0]);
+  const endTime = formatTime(queryForm.value.selectTime[1]);
+  const filter = [
+    {
+      name: queryForm.value.selectType,
+      value: queryForm.value.selectInput,
+      displayType: "like",
+    },
+    { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
+    { name: "createDate", value: endTime, displayType: "LessOrEqual" },
+  ];
+  GetUserTeam({ ...pageQuery.value, filter }).then((res) => {
+    departmentData.value = res.rows;
+    pageTotal.value = res.total;
+  });
+};
+const formTeam = ref({});
+const TreamdialogVisible = ref(false);
+//鏂板缓鐢ㄦ埛鐝粍
+const AddGroup = () => {
+  Treamtype.value = "鏂板缓";
+  TreamdialogVisible.value = true;
+};
+const Treamtype = ref("鏂板缓");
+const formTreamdRef = ref(null);
+const saveTream = async (formEl) => {
+  if (!formEl) return;
+  await formEl.validate((valid, fields) => {
+    if (valid) {
+      if (Treamtype.value == "淇敼") {
+        EditUserTeam(formTeam.value).then((res) => {
+          ElMessage({ message: "淇敼鎴愬姛", type: "success" });
+          TreamdialogVisible.value = false;
+          getGroup();
+        });
+      } else {
+        AddUserTeam(formTeam.value).then((res) => {
+          ElMessage({ message: "娣诲姞鎴愬姛", type: "success" });
+          TreamdialogVisible.value = false;
+          getGroup();
+        });
+      }
+    } else {
+      console.log("error submit!", fields);
+    }
+  });
+};
+const formUnit = ref({});
+const UnitdialogVisible = ref(false);
+const Unittype = ref("鏂板缓");
+const formUnitRef = ref(null);
+const AddUnit = () => {
+  Unittype.value = "鏂板缓";
+  UnitdialogVisible.value = true;
+};
+//鑾峰彇鐢ㄦ埛鍗曚綅
+const getUnit = () => {
+  const startTime = formatTime(queryForm.value.selectTime[0]);
+  const endTime = formatTime(queryForm.value.selectTime[1]);
+  const filter = [
+    {
+      name: queryForm.value.selectType,
+      value: queryForm.value.selectInput,
+      displayType: "like",
+    },
+    { name: "createDate", value: startTime, displayType: "ThanOrEqual" },
+    { name: "createDate", value: endTime, displayType: "LessOrEqual" },
+  ];
+  GetUserUnit({ ...pageQuery.value, filter }).then((res) => {
+    unitData.value = res.rows;
+    pageTotal.value = res.total;
+  });
+};
+//淇濆瓨鍗曚綅
+const saveUnit = async (formEl) => {
+  if (!formEl) return;
+  await formEl.validate((valid, fields) => {
+    if (valid) {
+      if (Unittype.value == "淇敼") {
+        EditUserUnit(formUnit.value).then((res) => {
+          ElMessage({ message: "淇敼鎴愬姛", type: "success" });
+          UnitdialogVisible.value = false;
+          getUnit();
+        });
+      } else {
+        AddUserUnit(formUnit.value).then((res) => {
+          ElMessage({ message: "娣诲姞鎴愬姛", type: "success" });
+          UnitdialogVisible.value = false;
+          getUnit();
+        });
+      }
+    } else {
+      console.log("error submit!", fields);
+    }
+  });
+};
 //鍒囨崲椤甸潰
 const changeactive = (index) => {
   isactive.value = index;
   if (isactive.value == 1) {
     selectoptions.value = userOptions;
     initData();
-  } else {
+  } else if (isactive.value == 2) {
     selectoptions.value = roleOptions;
     getRole();
+  } else if (isactive.value == 3) {
+    selectoptions.value = treamOptions;
+    getGroup();
+  } else if (isactive.value == 4) {
+    selectoptions.value = unitOptions;
+    getUnit();
   }
 };
 
@@ -1447,6 +2062,14 @@
 const RoleSelectionChange = (val) => {
   ids.value = [];
   ids.value = val.map((item) => item.roleId);
+};
+const TreamSelectionChange = (val) => {
+  ids.value = [];
+  ids.value = val.map((item) => item.id);
+};
+const UnitSelectionChange = (val) => {
+  ids.value = [];
+  ids.value = val.map((item) => item.id);
 };
 const deleteAll = () => {
   if (ids.value.includes(1)) {
@@ -1462,22 +2085,37 @@
       ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
       initData();
     });
-  } else {
+  } else if (isactive.value == 2) {
     DeleteRoleApi(ids.value).then((res) => {
       ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
       getRole();
     });
+  } else if (isactive.value == 3) {
+    DeleteUserTeam(ids.value).then((res) => {
+      ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
+      getGroup();
+    });
+  } else if (isactive.value == 4) {
+    DeleteUserUnit(ids.value).then((res) => {
+      ElMessage({ message: "鍒犻櫎鎴愬姛", type: "success" });
+      getUnit();
+    });
   }
 };
-//绠$悊
-//璺敱璺宠浆
+// 绠$悊 璺敱璺宠浆
 const toDetail = (row) => {
   router.push({ name: "permission", state: { info: JSON.stringify(row) } });
 };
 
 onMounted(() => {
+  if (window.innerWidth <= 1080) {
+    isMin.value = true;
+  }
+  //鎵撳嵃褰撳墠灞忓箷瀹藉害
   initData();
   getRole();
+  getUnit();
+  getGroup();
   userInfo.value = JSON.parse(localStorage.getItem("user"));
 });
 </script>
@@ -1492,7 +2130,7 @@
     flex-direction: column;
 
     .checkbox {
-      width: 11rem;
+      width: 25rem;
       display: flex;
       justify-content: space-between;
       margin-top: 1rem;
@@ -1624,6 +2262,194 @@
     text-align: center;
   }
 }
+@media screen and (max-width: 1080px) {
+  .Usermanagement {
+    display: flex;
+    background-color: #fff;
+
+    .content {
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+
+      .checkbox {
+        width: 35rem;
+        display: flex;
+        justify-content: space-between;
+        margin-top: 1rem;
+        margin-left: 1.31rem;
+
+        .item {
+          width: 8rem;
+          height: 2.88rem;
+          border-radius: 0.25rem;
+          background-color: rgba(190, 199, 209, 1);
+          color: rgba(255, 255, 255, 1);
+          font-size: 1.25rem;
+          text-align: center;
+          line-height: 2.88rem;
+          cursor: pointer;
+        }
+
+        .isactive {
+          background-color: rgba(16, 16, 16, 1);
+          color: rgba(255, 255, 255, 1);
+        }
+      }
+
+      .serch {
+        display: flex;
+        margin-top: 1.31rem;
+        align-items: center;
+
+        .time_box {
+          display: flex;
+          align-items: center;
+          text-align: center;
+          margin-left: 0.98rem;
+
+          .time {
+            box-sizing: border-box;
+            width: 6.88rem;
+            height: 3rem;
+            text-align: center;
+            border: 0.06rem solid rgba(222, 222, 222, 1);
+            border-radius: 0.25rem 0 0 0.25rem;
+            font-size: 1.25rem;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+          }
+          :deep(.el-input__wrapper) {
+            height: 3rem !important;
+            font-size: 1.25rem !important;
+          }
+        }
+
+        .serch_box {
+          display: flex;
+          align-items: center;
+          text-align: center;
+          margin-left: 0.98rem;
+          border-radius: 0.38rem;
+
+          .serchb {
+            box-sizing: border-box;
+            width: 9rem;
+            height: 3rem !important;
+            text-align: center;
+            font-size: 2rem !important;
+            display: flex;
+            align-items: center;
+            justify-content: center;
+            .select {
+              height: 3rem !important;
+              :deep(.el-select__wrapper) {
+                height: 3rem !important;
+                font-size: 1.5rem !important;
+              }
+            }
+          }
+
+          input {
+            box-sizing: border-box;
+            outline: none;
+            width: 19rem;
+            height: 3rem;
+            border: 0.06rem solid rgba(222, 222, 222, 1);
+            border-radius: 0 0.25rem 0.25rem 0;
+            padding-left: 0.3125rem;
+            font-size: 2rem;
+          }
+        }
+        .text_btn {
+          width: 10rem !important;
+          height: 3.5rem !important;
+          font-size: 2rem !important;
+          display: flex;
+          align-items: center;
+        }
+      }
+
+      .btns {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        margin-top: 1.31rem;
+        margin-left: 1.13rem;
+        padding-right: 2rem;
+        box-sizing: border-box;
+        .text_btn {
+          width: 10rem !important;
+          height: 3.5rem !important;
+          font-size: 2rem !important;
+          display: flex;
+          align-items: center;
+        }
+      }
+    }
+    .formpassword {
+      font-size: 1.5rem !important;
+    }
+    .my-header {
+      height: 3.84rem;
+      display: flex;
+      justify-content: space-between;
+      border-bottom: 0.06rem solid rgba(233, 233, 233, 1);
+    }
+
+    .avatar-uploader .avatar {
+      width: 7rem;
+      height: 7rem;
+      display: block;
+    }
+
+    :deep(.avatar-uploader .el-upload) {
+      width: 7rem;
+      height: 7rem;
+      border: 0.0625rem dashed var(--el-border-color);
+      border-radius: 0.0375rem;
+      cursor: pointer;
+      position: relative;
+      overflow: hidden;
+      transition: var(--el-transition-duration-fast);
+    }
+
+    :deep(.el-upload-list__item) {
+      width: 7rem;
+      height: 7rem;
+    }
+
+    .avatar-uploader .el-upload:hover {
+      border-color: var(--el-color-primary);
+    }
+
+    .el-icon .avatar-uploader-icon {
+      font-size: 0.5rem;
+      color: #8c939d;
+      width: 0.81rem;
+      height: 0.81rem;
+      text-align: center;
+    }
+    .font-title {
+      font-size: 2rem !important;
+    }
+    .from_title {
+      font-size: 2rem !important;
+    }
+    .el-form-item__content {
+      .el-input {
+        height: 3rem !important;
+        font-size: 2rem !important;
+      }
+      .el-select--small :deep(.el-select__wrapper) {
+        font-size: 2rem;
+        line-height: 3rem;
+        min-height: 3rem;
+      }
+    }
+  }
+}
 </style>
 <style>
 .confirmButtonClass {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217.7z" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217.7z"
index 606890f..ee76f02 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217.7z"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217.7z"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/layout/index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/layout/index.vue"
index 6d64ba6..0469657 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/layout/index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/layout/index.vue"
@@ -195,7 +195,7 @@
         <router-view
           style="
             height: calc(100vh - 4.38rem - 10rem);
-            width: calc(100vw - 10rem);
+            width: calc(100vw - 6rem);
           "
           v-slot="{ Component }"
         >
@@ -796,7 +796,7 @@
   // background-repeat: no-repeat;
   // background-size: 100% 100%;
   background: linear-gradient(to bottom, #0072c6, #2e6aa7);
-  padding: 5rem 5rem;
+  padding: 5rem 3rem;
   box-sizing: border-box;
 }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/views/Index.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/views/Index.vue"
index b4c48e9..f634c8e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/views/Index.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\217\257\350\247\206\345\214\226\345\244\247\345\261\217/client/src/views/Index.vue"
@@ -5,7 +5,7 @@
         display: flex;
         justify-content: center;
         color: #fff;
-        font-size: 15rem;
+        font-size: 20rem;
         letter-spacing: 5rem;
         font-weight: bold;
       "
@@ -20,7 +20,7 @@
         align-items: center;
         color: #fff;
         font-size: 3rem;
-        margin-top: 3rem;
+        margin-top: 1rem;
       "
     >
       <div
@@ -47,7 +47,7 @@
         color: #fff;
         font-weight: bold;
         margin-top: 5rem;
-        font-size: 10rem;
+        font-size: 12rem;
       "
     >
       <span> CR400AF</span>
@@ -83,7 +83,7 @@
           <div
             style="
               height: 5rem;
-              font-size: 6rem;
+              font-size: 7rem;
               font-weight: bold;
               display: flex;
               align-items: center;
@@ -121,7 +121,7 @@
             <div
               style="
                 width: 40%;
-                font-size: 6rem;
+                font-size: 7rem;
                 color: #fff;
                 background-color: #058f66;
                 border-radius: 1.5rem;
@@ -134,7 +134,7 @@
             <div
               style="
                 width: 40%;
-                font-size: 6rem;
+                font-size: 7rem;
                 color: #fff;
                 background-color: #d9001b;
                 border-radius: 1.5rem;
@@ -164,7 +164,7 @@
             >浣�
           </div>
         </div>
-        <div style="width: 90%; margin-top: 2rem">
+        <div style="width: 98%; margin-top: 2rem">
           <el-table
             empty-text="鏆傛棤鏁版嵁"
             :data="tableData"
@@ -174,11 +174,12 @@
               height: '1.61rem',
               color: '#fff',
               background: '#1860A8',
-              fontSize: '2rem',
+              fontSize: '2.1rem',
             }"
             :cell-style="{
               color: '#fff',
               background: 'rgba(23, 87, 149, 0.9)',
+              fontSize: '4rem',
             }"
           >
             <el-table-column

--
Gitblit v1.9.3