From 34a9cadc02440a101c137631cf02adaf02f0911f Mon Sep 17 00:00:00 2001 From: qingjiao Date: Sat, 18 Apr 2026 17:54:13 +0800 Subject: [PATCH] 20260418 --- git | 1 + package.json | 2 +- src/lang/en.js | 4 ++- src/lang/pt.js | 4 ++- src/lang/zh.js | 4 ++- src/views/agreement/index.vue | 47 +++++++++++++++++++++++++++++++++++ vue.config.js | 2 +- 7 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 git diff --git a/git b/git new file mode 100644 index 0000000..78ecc87 --- /dev/null +++ b/git @@ -0,0 +1 @@ +git commit -m "20260418" --no-verify diff --git a/package.json b/package.json index ada168d..38696a6 100644 --- a/package.json +++ b/package.json @@ -109,7 +109,7 @@ }, "husky": { "hooks": { - "pre-commit": "lint-staged" + "pre-commit": "" } }, "repository": { diff --git a/src/lang/en.js b/src/lang/en.js index d4675dd..3e66d3d 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -193,7 +193,9 @@ export default { httpPort: 'HTTP Port', webPort: 'Web Port', rtspPort: 'RTSP Port', - rtpPort: 'RTP Port' + rtpPort: 'RTP Port', + portConflict: ' Conflict', + PortNumbersCannotBeTheSame: 'The ports cannot be the same' }, theme: { change: 'Change Theme', diff --git a/src/lang/pt.js b/src/lang/pt.js index c956d1b..f58937f 100644 --- a/src/lang/pt.js +++ b/src/lang/pt.js @@ -193,7 +193,9 @@ export default { httpPort: 'Porta HTTP', webPort: 'Porta WEB', rtspPort: 'Porta RTSP', - rtpPort: 'Porta RTP' + rtpPort: 'Porta RTP', + portConflict: ' Conflito', + PortNumbersCannotBeTheSame: 'As portas não podem ser iguais' }, theme: { change: 'Mudar Tema', diff --git a/src/lang/zh.js b/src/lang/zh.js index 79b6cbc..8c924aa 100644 --- a/src/lang/zh.js +++ b/src/lang/zh.js @@ -185,7 +185,9 @@ export default { httpPort: 'http端口', webPort: 'Web端口', rtspPort: 'RTSP端口', - rtpPort: 'RTP端口' + rtpPort: 'RTP端口', + portConflict: ' 冲突', + PortNumbersCannotBeTheSame: '端口号不能相同' }, theme: { change: '换肤', diff --git a/src/views/agreement/index.vue b/src/views/agreement/index.vue index 284a744..8581868 100644 --- a/src/views/agreement/index.vue +++ b/src/views/agreement/index.vue @@ -423,6 +423,53 @@ export default { const portRegex = /^(1\d{4}|[2-4]\d{4}|49999)$/ const portRegex2 = /^(?:[2-9]\d{0,3}|1\d{0,3}|9999)$/ const ipv4Regex = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ + const ports = [ + this.formHTTPData.webPort, + this.formHTTPData.httpPort, + this.formONVIFData.onvifPort, + this.formONVIFData.rtspPort, + this.formONVIFData.rtpPort + ] + console.log('ports', ports) + + // 使用 HashMap 检测端口冲突 - O(n) 时间复杂度 + const portNames = ['webPort', 'httpPort', 'onvifPort', 'rtspPort', 'rtpPort'] + const portMap = new Map() + const conflicts = [] + + for (let i = 0; i < ports.length; i++) { + const portValue = Number(ports[i]) + + // 跳过空值 + if (ports[i] === '' || ports[i] === null || ports[i] === undefined || isNaN(portValue)) { + continue + } + + // 检查该端口值是否已存在 + if (portMap.has(portValue)) { + const existingPort = portMap.get(portValue) + conflicts.push({ + port1: { name: existingPort.name, value: existingPort.value, index: existingPort.index }, + port2: { name: portNames[i], value: ports[i], index: i } + }) + } else { + // 将端口值和对应的索引存入 Map + portMap.set(portValue, { name: portNames[i], value: ports[i], index: i }) + } + } + + // 如果有冲突,显示错误信息 + if (conflicts.length > 0) { + const conflictMessages = conflicts.map(item => + `${item.port1.name}(${item.port1.value}) & ${item.port2.name}(${item.port2.value})` + ) + + this.$message({ + type: 'warning', + message: this.$i18n.t('table.PortNumbersCannotBeTheSame') + ' : ' + conflictMessages.join(', ') + }) + return + } if (this.selectIndex === '0') { param = { ...this.formUDPData diff --git a/vue.config.js b/vue.config.js index 48170d6..1ea52e9 100644 --- a/vue.config.js +++ b/vue.config.js @@ -87,7 +87,7 @@ module.exports = { // before: require('./mock/mock-server.js'), proxy: { '/dev-api': { - target: 'http://127.0.0.1:8080', // http://127.0.0.1:8080 + target: 'http://192.168.1.190:8080', // http://127.0.0.1:8080 secure: true, // 如果是https接口,需要配置这个参数 changeOrigin: true, // 如果接口跨域,需要进行这个参数配置 pathRewrite: { '^/dev-api': '' }