Преглед изворни кода

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend into dev

chencc пре 1 година
родитељ
комит
d3282a8d60

+ 0 - 135
package-lock.json

@@ -34,7 +34,6 @@
         "jsbarcode": "^3.11.5",
         "json-bigint": "^1.0.0",
         "nprogress": "^0.2.0",
-        "socket.io-client": "^4.8.1",
         "tinymce": "^5.10.5",
         "vue": "^2.7.10",
         "vue-clipboard2": "^0.3.3",
@@ -2197,11 +2196,6 @@
       "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
       "dev": true
     },
-    "node_modules/@socket.io/component-emitter": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
-      "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
-    },
     "node_modules/@soda/friendly-errors-webpack-plugin": {
       "version": "1.8.1",
       "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz",
@@ -6281,46 +6275,6 @@
         "once": "^1.4.0"
       }
     },
-    "node_modules/engine.io-client": {
-      "version": "6.6.3",
-      "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.6.3.tgz",
-      "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==",
-      "dependencies": {
-        "@socket.io/component-emitter": "~3.1.0",
-        "debug": "~4.3.1",
-        "engine.io-parser": "~5.2.1",
-        "ws": "~8.17.1",
-        "xmlhttprequest-ssl": "~2.1.1"
-      }
-    },
-    "node_modules/engine.io-client/node_modules/ws": {
-      "version": "8.17.1",
-      "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz",
-      "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
-      "engines": {
-        "node": ">=10.0.0"
-      },
-      "peerDependencies": {
-        "bufferutil": "^4.0.1",
-        "utf-8-validate": ">=5.0.2"
-      },
-      "peerDependenciesMeta": {
-        "bufferutil": {
-          "optional": true
-        },
-        "utf-8-validate": {
-          "optional": true
-        }
-      }
-    },
-    "node_modules/engine.io-parser": {
-      "version": "5.2.3",
-      "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
-      "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
-      "engines": {
-        "node": ">=10.0.0"
-      }
-    },
     "node_modules/enhanced-resolve": {
       "version": "5.15.0",
       "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
@@ -14066,32 +14020,6 @@
         "node": ">=0.10.0"
       }
     },
-    "node_modules/socket.io-client": {
-      "version": "4.8.1",
-      "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.8.1.tgz",
-      "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==",
-      "dependencies": {
-        "@socket.io/component-emitter": "~3.1.0",
-        "debug": "~4.3.2",
-        "engine.io-client": "~6.6.1",
-        "socket.io-parser": "~4.2.4"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      }
-    },
-    "node_modules/socket.io-parser": {
-      "version": "4.2.4",
-      "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
-      "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
-      "dependencies": {
-        "@socket.io/component-emitter": "~3.1.0",
-        "debug": "~4.3.1"
-      },
-      "engines": {
-        "node": ">=10.0.0"
-      }
-    },
     "node_modules/sockjs": {
       "version": "0.3.24",
       "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
@@ -17066,14 +16994,6 @@
         "node": ">=12"
       }
     },
-    "node_modules/xmlhttprequest-ssl": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz",
-      "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==",
-      "engines": {
-        "node": ">=0.4.0"
-      }
-    },
     "node_modules/y18n": {
       "version": "5.0.8",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
@@ -18755,11 +18675,6 @@
       "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
       "dev": true
     },
-    "@socket.io/component-emitter": {
-      "version": "3.1.2",
-      "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
-      "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
-    },
     "@soda/friendly-errors-webpack-plugin": {
       "version": "1.8.1",
       "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz",
@@ -21946,31 +21861,6 @@
         "once": "^1.4.0"
       }
     },
-    "engine.io-client": {
-      "version": "6.6.3",
-      "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.6.3.tgz",
-      "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==",
-      "requires": {
-        "@socket.io/component-emitter": "~3.1.0",
-        "debug": "~4.3.1",
-        "engine.io-parser": "~5.2.1",
-        "ws": "~8.17.1",
-        "xmlhttprequest-ssl": "~2.1.1"
-      },
-      "dependencies": {
-        "ws": {
-          "version": "8.17.1",
-          "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz",
-          "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
-          "requires": {}
-        }
-      }
-    },
-    "engine.io-parser": {
-      "version": "5.2.3",
-      "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz",
-      "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="
-    },
     "enhanced-resolve": {
       "version": "5.15.0",
       "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz",
@@ -27631,26 +27521,6 @@
         }
       }
     },
-    "socket.io-client": {
-      "version": "4.8.1",
-      "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.8.1.tgz",
-      "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==",
-      "requires": {
-        "@socket.io/component-emitter": "~3.1.0",
-        "debug": "~4.3.2",
-        "engine.io-client": "~6.6.1",
-        "socket.io-parser": "~4.2.4"
-      }
-    },
-    "socket.io-parser": {
-      "version": "4.2.4",
-      "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz",
-      "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==",
-      "requires": {
-        "@socket.io/component-emitter": "~3.1.0",
-        "debug": "~4.3.1"
-      }
-    },
     "sockjs": {
       "version": "0.3.24",
       "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
@@ -29913,11 +29783,6 @@
       "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
       "dev": true
     },
-    "xmlhttprequest-ssl": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz",
-      "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ=="
-    },
     "y18n": {
       "version": "5.0.8",
       "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",

+ 0 - 1
package.json

@@ -39,7 +39,6 @@
     "jsbarcode": "^3.11.5",
     "json-bigint": "^1.0.0",
     "nprogress": "^0.2.0",
-    "socket.io-client": "^4.8.1",
     "tinymce": "^5.10.5",
     "vue": "^2.7.10",
     "vue-clipboard2": "^0.3.3",

+ 13 - 0
src/api/system/user/index.js

@@ -16,6 +16,8 @@ export async function pageUsers(params) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+
 /**
  * 分页查询用户
  * @param params 导出员工数据
@@ -241,3 +243,14 @@ export async function checkExistence(field, value, id) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+/**
+ * 导入用户
+ * @param file excel文件
+ */
+export async function putEnable(data) {
+  const res = await request.post('/system/account/updateEnable', data);
+  if (res.data.code === 0) {
+    return res.data.message;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 0 - 2
src/main.js

@@ -5,7 +5,6 @@ import App from './App.vue';
 import store from './store';
 import router from './router';
 import permission from './utils/permission';
-import { init } from "@/utils/common.js"
 
 import {
   MAP_KEY,
@@ -28,7 +27,6 @@ Vue.component('authSelection', authSelection);
 import Print from 'vue-printjs';
 Vue.use(Print);
 
-// init();
 
 // // register globally
 Vue.component('tinymce', TinymceEditor);

+ 0 - 60
src/utils/common.js

@@ -1,60 +0,0 @@
-import { io } from 'socket.io-client';
-import { getToken, setToken } from './token-util';
-const token = getToken();
-export const init = () => {
-
-
-//   let socket = new WebSocket(
-//     'ws://192.168.1.251:18086/websocket/UnreadNotifyMessageCount'
-//   );
-//   // 连接时发送认证令牌
-//   socket.onopen = () => {
-//     socket.send(
-//       JSON.stringify({
-//         type: 'AUTH',
-//         authorization: token
-//       })
-//     );
-//   };
-//   socket.onmessage = (event) => {
-//     // this.messages.push(event.data)
-//   };
-
-//   // 连接关闭
-//   socket.onclose = () => {
-//     console.log('WebSocket 连接已关闭');
-//   };
-
-//   // 错误处理
-//   socket.onerror = (error) => {
-//     console.error('WebSocket 错误:', error);
-//   };
-
-//   console.log('初始化Socket.io连接', token);
-
-  let socket = io('ws://192.168.1.251:18086/websocket/UnreadNotifyMessageCount',{
-    extraHeaders: {
-      Authorization: `Bearer ${token}`
-    }
-    //   auth:{
-    //       authorization:token
-    //   },
-    //  transports: ['websocket']
-    // transports: ['polling'],
-    // extraHeaders: {
-    //   'Authorization': token
-    // }
-  }); ///websocket/UnreadNotifyMessageCount
-//   socket.disconnect().connect()
-  
-  console.log('初始化Socket.io连接',socket);
-
-  socket.on('connect', () => {
-      console.log('已成功连接到Socket.io服务器');
-    });
-  socket.on('disconnect', () => {
-      console.log('与Socket.io服务器断开连接');
-    });
-
-    socket.emit('before-api-request', '11111')
-};

+ 101 - 130
src/views/material/product/components/PurchasingInfo.vue

@@ -11,58 +11,28 @@
       <el-row :gutter="24">
         <el-col :span="8">
           <el-form-item label="周期" prop="purchasingCycle">
-            <el-input
-              v-model="form.purchasingCycle"
-              placeholder="请输入"
-              @input="handleInput1"
-              style="width: calc(100% - 100px)"
-            />
-            <DictSelection
-              dictName="周期单位"
-              clearable
-              v-model="form.purchasingCycleUnit"
-              style="width: 100px"
-            >
+            <el-input v-model="form.purchasingCycle" placeholder="请输入" @input="handleInput1"
+              style="width: calc(100% - 100px)" />
+            <DictSelection dictName="周期单位" clearable v-model="form.purchasingCycleUnit" style="width: 100px">
             </DictSelection>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="倍数" prop="purchaseMultiplier">
-            <el-input
-              v-model="form.purchaseMultiplier"
-              placeholder="请输入"
-              @input="handleInput2"
-              style="width: 100%"
-            />
+            <el-input v-model="form.purchaseMultiplier" placeholder="请输入" @input="handleInput2" style="width: 100%" />
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="最低订购量" prop="minimumOrderQuantity">
-            <el-input
-              v-model="form.minimumOrderQuantity"
-              placeholder="请输入"
-              @input="handleInput3"
-              style="width: calc(100% - 100px)"
-            />
-            <DictSelection
-              dictName="计量单位"
-              clearable
-              v-model="form.measuringUnit"
-              style="width: 100px"
-            >
+            <el-input v-model="form.minimumOrderQuantity" placeholder="请输入" @input="handleInput3"
+              style="width: calc(100% - 100px)" />
+            <DictSelection dictName="计量单位" clearable v-model="form.measuringUnit" style="width: 100px">
             </DictSelection>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="产地" prop="purchaseOrigins">
-            <DictSelection
-              dictName="产地"
-              clearable
-              style="width: 100%"
-              :disabled="status == 'Detail'"
-              v-model="form.purchaseOrigins"
-              multiple
-            >
+            <DictSelection dictName="产地" clearable style="width: 100%" v-model="form.purchaseOrigins" multiple>
             </DictSelection>
 
             <!-- <el-select
@@ -82,19 +52,12 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="采购组织" prop="checkDepart">
-            <deptSelect
-              v-model="form.checkDepart"
-              @changeGroup="searchDeptNodeClick"
-            />
+            <deptSelect v-model="form.checkDepart" @changeGroup="searchDeptNodeClick" />
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="采购员" prop="checkPerson">
-            <personSelect
-              ref="directorRef"
-              v-model="form.checkPerson"
-              :init="false"
-            />
+            <personSelect ref="directorRef" v-model="form.checkPerson" :init="false" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -103,101 +66,109 @@
 </template>
 
 <script>
-  import deptSelect from '@/components/CommomSelect/dept-select.vue';
-  import personSelect from '@/components/CommomSelect/person-select.vue';
-  import { getByCode } from '@/api/system/dictionary-data';
-  export default {
-    props: {
-      form: {
-        type: Object,
-        default: {}
+import deptSelect from '@/components/CommomSelect/dept-select.vue';
+import personSelect from '@/components/CommomSelect/person-select.vue';
+import { getByCode } from '@/api/system/dictionary-data';
+export default {
+  props: {
+    form: {
+      type: Object,
+      default: {}
+    }
+  },
+  components: { deptSelect, personSelect },
+  data() {
+    return {
+      dictList: []
+    };
+  },
+  watch: {
+    form(data) {
+      if (data.checkDepart) {
+        const params = { executeGroupId: data.checkDepart };
+        this.$nextTick(() => {
+          this.$refs.directorRef.getList(params);
+        });
       }
+    }
+  },
+  activated() {
+    this.getDictList('purchase_origin');
+  },
+  methods: {
+    async getDictList(code) {
+      let { data: res } = await getByCode(code);
+      this.dictList = res.map((item) => {
+        let values = Object.keys(item);
+        return {
+          value: Number(values[0]),
+          label: item[values[0]]
+        };
+      });
     },
-    components: { deptSelect, personSelect },
-    data() {
-      return {
-        dictList: []
-      };
+    // 选择所属部门
+    searchDeptNodeClick(id, info) {
+      // 根据部门获取人员
+      const params = { executeGroupId: id };
+      this.$nextTick(() => {
+        this.$refs.directorRef.getList(params);
+      });
     },
-    watch: {
-      form(data) {
-        if (data.checkDepart) {
-          const params = { executeGroupId: data.checkDepart };
-          this.$nextTick(() => {
-            this.$refs.directorRef.getList(params);
-          });
-        }
-      }
+    handleInput1(val) {
+      this.form.purchasingCycle = this.$handleInputPublicHasPoint(val);
     },
-    activated() {
-      this.getDictList('purchase_origin');
+    handleInput2(val) {
+      this.form.purchaseMultiplier = this.$handleInputPublicHasPoint(val);
     },
-    methods: {
-      async getDictList(code) {
-        let { data: res } = await getByCode(code);
-        this.dictList = res.map((item) => {
-          let values = Object.keys(item);
-          return {
-            value: Number(values[0]),
-            label: item[values[0]]
-          };
-        });
-      },
-      // 选择所属部门
-      searchDeptNodeClick(id, info) {
-        // 根据部门获取人员
-        const params = { executeGroupId: id };
-        this.$nextTick(() => {
-          this.$refs.directorRef.getList(params);
-        });
-      },
-      handleInput1(val) {
-        this.form.purchasingCycle = this.$handleInputPublicHasPoint(val);
-      },
-      handleInput2(val) {
-        this.form.purchaseMultiplier = this.$handleInputPublicHasPoint(val);
-      },
-      handleInput3(val) {
-        this.form.minimumOrderQuantity = this.$handleInputPublicHasPoint(val);
-      }
+    handleInput3(val) {
+      this.form.minimumOrderQuantity = this.$handleInputPublicHasPoint(val);
     }
-  };
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  .other {
-    background: #fff;
-    padding: 1px 17px;
-  }
-  .divider {
-    margin: 0px 0 20px;
-    .title {
-      display: flex;
-      align-items: center;
-      margin-bottom: 10px;
-      div {
-        width: 8px;
-        height: 20px;
-        margin-right: 10px;
-      }
-      span {
-        font-size: 20px;
-      }
-    }
-    .ele-width {
-      width: 100%;
-      height: 2px;
-    }
-  }
-  .form-line {
+.other {
+  background: #fff;
+  padding: 1px 17px;
+}
+
+.divider {
+  margin: 0px 0 20px;
+
+  .title {
     display: flex;
     align-items: center;
-    justify-content: space-between;
-    .line-select {
-      margin-left: 15px;
+    margin-bottom: 10px;
+
+    div {
+      width: 8px;
+      height: 20px;
+      margin-right: 10px;
+    }
+
+    span {
+      font-size: 20px;
     }
   }
-  ::v-deep .el-input-number .el-input__inner {
-    text-align: left !important;
+
+  .ele-width {
+    width: 100%;
+    height: 2px;
+  }
+}
+
+.form-line {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+
+  .line-select {
+    margin-left: 15px;
   }
+}
+
+::v-deep .el-input-number .el-input__inner {
+  text-align: left !important;
+}
 </style>

+ 3 - 3
src/views/material/product/detail.vue

@@ -136,8 +136,8 @@
           </el-col>
 
           <el-col :span="8">
-            <el-form-item label="净重"
-              :rules="{ required: form.measuringUnit == form.weightUnit, trigger: ['blur', 'change'] }">
+            <el-form-item label="净重" prop="netWeight"
+              :rules="{ required: form.measuringUnit == form.weightUnit, trigger: ['blur', 'change'], message: '请输入净重', }">
               <div class="form-line">
                 <el-input v-model="form.netWeight" @input="handleInput3" />
               </div>
@@ -472,7 +472,7 @@ export default {
             packingUnit: '',
             extField: {},
             measureType: 1,
-             isEnabled:1,
+            isEnabled: 1,
 
           };
           this.categorySales = {};

+ 3 - 5
src/views/system/user/index.vue

@@ -149,7 +149,7 @@ import {
   pageUsers,
   putUsers,
   deleteUsers,
-  resetPassword
+  resetPassword,putEnable
 } from '@/api/system/user';
 import { unbindLoginName, listOrganizations } from '@/api/system/organization';
 
@@ -290,10 +290,8 @@ export default {
         });
     },
     async changeEnable(row) {
-      let params = { ...row };
-      params.roleId = row.roleList.map((d) => d.id);
-      delete params.roleList;
-      const res = await putUsers(params);
+
+      const res = await putEnable({id:row.id,enable:row.enable});
       if (res.code == 0) {
         this.$message({
           type: 'success',

+ 1 - 50
yarn.lock

@@ -1235,11 +1235,6 @@
   "resolved" "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz"
   "version" "2.0.0"
 
-"@socket.io/component-emitter@~3.1.0":
-  "integrity" "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA=="
-  "resolved" "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz"
-  "version" "3.1.2"
-
 "@soda/friendly-errors-webpack-plugin@^1.8.0":
   "integrity" "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg=="
   "resolved" "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz"
@@ -3316,7 +3311,7 @@
   dependencies:
     "ms" "^2.1.1"
 
-"debug@^4.0.0", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4", "debug@~4.3.1", "debug@~4.3.2":
+"debug@^4.0.0", "debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.2", "debug@^4.3.4":
   "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
   "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
   "version" "4.3.4"
@@ -3726,22 +3721,6 @@
   dependencies:
     "once" "^1.4.0"
 
-"engine.io-client@~6.6.1":
-  "integrity" "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w=="
-  "resolved" "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.6.3.tgz"
-  "version" "6.6.3"
-  dependencies:
-    "@socket.io/component-emitter" "~3.1.0"
-    "debug" "~4.3.1"
-    "engine.io-parser" "~5.2.1"
-    "ws" "~8.17.1"
-    "xmlhttprequest-ssl" "~2.1.1"
-
-"engine.io-parser@~5.2.1":
-  "integrity" "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q=="
-  "resolved" "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz"
-  "version" "5.2.3"
-
 "enhanced-resolve@^5.15.0":
   "integrity" "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg=="
   "resolved" "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz"
@@ -8147,24 +8126,6 @@
     "source-map-resolve" "^0.5.0"
     "use" "^3.1.0"
 
-"socket.io-client@^4.8.1":
-  "integrity" "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ=="
-  "resolved" "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.8.1.tgz"
-  "version" "4.8.1"
-  dependencies:
-    "@socket.io/component-emitter" "~3.1.0"
-    "debug" "~4.3.2"
-    "engine.io-client" "~6.6.1"
-    "socket.io-parser" "~4.2.4"
-
-"socket.io-parser@~4.2.4":
-  "integrity" "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew=="
-  "resolved" "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz"
-  "version" "4.2.4"
-  dependencies:
-    "@socket.io/component-emitter" "~3.1.0"
-    "debug" "~4.3.1"
-
 "sockjs@^0.3.24":
   "integrity" "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ=="
   "resolved" "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz"
@@ -9499,11 +9460,6 @@
   "resolved" "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz"
   "version" "8.14.2"
 
-"ws@~8.17.1":
-  "integrity" "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ=="
-  "resolved" "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz"
-  "version" "8.17.1"
-
 "xgplayer-subtitles@1.0.19":
   "integrity" "sha512-ITvMTgnHD0uytWUYYoS3Qtz10T0o8W0YW3J7/GbfipeJQs4IiFyzhnvTXYB2KnZ6wRXLO6LrNhK9esY9iISJWA=="
   "resolved" "https://registry.npmjs.org/xgplayer-subtitles/-/xgplayer-subtitles-1.0.19.tgz"
@@ -9558,11 +9514,6 @@
   "resolved" "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
   "version" "4.0.0"
 
-"xmlhttprequest-ssl@~2.1.1":
-  "integrity" "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ=="
-  "resolved" "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz"
-  "version" "2.1.2"
-
 "y18n@^5.0.5":
   "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
   "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"