This commit is contained in:
qingjiao 2025-04-03 19:08:37 +08:00
parent b119839c34
commit 895435ce67
5 changed files with 76 additions and 26 deletions

View File

@ -1,17 +1,17 @@
<template> <template>
<!-- <el-dropdown trigger="click" class="international" @command="handleSetLanguage">--> <el-dropdown trigger="click" class="international" @command="handleSetLanguage">
<!-- <div>--> <div>
<!-- <svg-icon class-name="international-icon" icon-class="language" />--> <svg-icon class-name="international-icon" icon-class="language" />
<!-- </div>--> </div>
<!-- <el-dropdown-menu slot="dropdown">--> <el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item :disabled="language==='zh'" command="zh">--> <el-dropdown-item :disabled="language==='zh'" command="zh">
<!-- 中文--> 中文
<!-- </el-dropdown-item>--> </el-dropdown-item>
<!-- <el-dropdown-item :disabled="language==='en'" command="en">--> <el-dropdown-item :disabled="language==='en'" command="en">
<!-- English--> English
<!-- </el-dropdown-item>--> </el-dropdown-item>
<!-- </el-dropdown-menu>--> </el-dropdown-menu>
<!-- </el-dropdown>--> </el-dropdown>
</template> </template>
<script> <script>
@ -25,10 +25,11 @@ export default {
handleSetLanguage(lang) { handleSetLanguage(lang) {
this.$i18n.locale = lang this.$i18n.locale = lang
this.$store.dispatch('app/setLanguage', lang) this.$store.dispatch('app/setLanguage', lang)
this.$message({ // this.$message({
message: 'Switch Language Success', // message: 'Switch Language Success',
type: 'success' // type: 'success'
}) // })
window.location.reload();
} }
} }
} }

View File

@ -52,6 +52,9 @@ export default {
deviceID: 'Terminal ID', deviceID: 'Terminal ID',
deviceIP: 'Terminal IP', deviceIP: 'Terminal IP',
WAN_IP_AddressIP: 'WAN DomainName', WAN_IP_AddressIP: 'WAN DomainName',
WAN_IP_Address: 'WAN IP address',
WAN_IP_DomainName: 'WAN domain name',
WAN_IP_Type: 'WAN Type',
WAN_Port: 'WAN Port', WAN_Port: 'WAN Port',
WAN_RTSP_Port: 'WAN RTSP Port', WAN_RTSP_Port: 'WAN RTSP Port',
gatewal: 'Gateway', gatewal: 'Gateway',

View File

@ -47,7 +47,10 @@ export default {
firmwareVercion: '固件版本', firmwareVercion: '固件版本',
deviceID: '终端 ID', deviceID: '终端 ID',
deviceIP: '终端 IP', deviceIP: '终端 IP',
WAN_IP_AddressIP: '公网域名', WAN_IP_AddressIP: '广域网域名',
WAN_IP_Address: '广域网IP地址',
WAN_IP_DomainName: '广域网域名',
WAN_IP_Type: '广域网格式',
WAN_Port: '公网端口号', WAN_Port: '公网端口号',
WAN_RTSP_Port: '公网RTSP端口号', WAN_RTSP_Port: '公网RTSP端口号',
gatewal: '网关', gatewal: '网关',

View File

@ -166,9 +166,26 @@
$t("table.close") $t("table.close")
}}</el-radio> }}</el-radio>
</el-form-item> </el-form-item>
<el-form-item :label="$t('table.WAN_IP_AddressIP')"> <el-form-item :label="$t('table.WAN_IP_Type')">
<el-select
v-model="formONVIFData.wanType"
style="width:350px;"
@change="selectChangeNet"
>
<el-option
v-for="item in NetType"
:key="item.key"
:label="item.label"
:value="item.key"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('table.WAN_IP_DomainName')" v-if="formONVIFData.wanType === '1'">
<el-input v-model="formONVIFData.wanDomainName" /> <el-input v-model="formONVIFData.wanDomainName" />
</el-form-item> </el-form-item>
<el-form-item :label="$t('table.WAN_IP_Address')" v-if="formONVIFData.wanType === '0'">
<el-input v-model="formONVIFData.wanIP" />
</el-form-item>
<el-form-item :label="$t('table.WAN_Port')"> <el-form-item :label="$t('table.WAN_Port')">
<el-input v-model="formONVIFData.wanOnvifPort" type="number" :min="0" :max="65535"/> <el-input v-model="formONVIFData.wanOnvifPort" type="number" :min="0" :max="65535"/>
</el-form-item> </el-form-item>
@ -191,6 +208,7 @@
import { deviceInfo, deviceEdit } from '@/api/index.js' import { deviceInfo, deviceEdit } from '@/api/index.js'
import { encryptData, decryptData } from '@/utils/encryption/entrypt' import { encryptData, decryptData } from '@/utils/encryption/entrypt'
export default { export default {
name: 'Agreement', name: 'Agreement',
data() { data() {
@ -210,6 +228,16 @@ export default {
key: '0' key: '0'
} }
], ],
NetType: [
{
label: this.$t('table.WAN_IP_Address'),
key:"0",
},
{
label: this.$t('table.WAN_IP_DomainName'),
key:"1",
}
],
selectIndex: '0', selectIndex: '0',
formUDPData: { formUDPData: {
udp: '', udp: '',
@ -246,6 +274,7 @@ export default {
wanOnvifPort: '', wanOnvifPort: '',
wanRTSPPort: '', wanRTSPPort: '',
wanDomainName: '', wanDomainName: '',
wanType:"0",
}, },
sipPasswordType: 'password', sipPasswordType: 'password',
@ -262,6 +291,9 @@ export default {
selectChange(e) { selectChange(e) {
this.rtspAudioType = e this.rtspAudioType = e
}, },
selectChangeNet(e) {
this.formONVIFData.wanType = e
},
showPwd(type) { showPwd(type) {
if (type === 'sip') { if (type === 'sip') {
if (this.sipPasswordType === 'password') { if (this.sipPasswordType === 'password') {
@ -335,6 +367,7 @@ export default {
this.formONVIFData.wanOnvifPort = res.data.wanOnvifPort this.formONVIFData.wanOnvifPort = res.data.wanOnvifPort
this.formONVIFData.wanRTSPPort = res.data.wanRTSPPort this.formONVIFData.wanRTSPPort = res.data.wanRTSPPort
this.formONVIFData.wanDomainName = res.data.wanDomainName this.formONVIFData.wanDomainName = res.data.wanDomainName
this.formONVIFData.wanType = res.data.wanType
this.$forceUpdate() this.$forceUpdate()
} else { } else {
@ -347,8 +380,8 @@ export default {
const portRegex = /^(1\d{4}|[2-4]\d{4}|49999)$/ const portRegex = /^(1\d{4}|[2-4]\d{4}|49999)$/
const portRegex2 = /^(?:[2-9]\d{0,3}|1\d{0,3}|9999)$/ 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 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 wanDName = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/ const wanDName = /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\*\+,;=.]+$/
const wanDName = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/ // const wanDIP = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
if (this.selectIndex === '2') { if (this.selectIndex === '2') {
param = { param = {
...this.formUDPData ...this.formUDPData
@ -453,6 +486,15 @@ export default {
return return
} }
} }
if(this.formONVIFData.wanIP !== ''){
if(!ipv4Regex.test(param.wanIP)){
this.$message({
type: 'warning',
message: this.$i18n.t('table.isRight4')
})
return
}
}
if(this.formONVIFData.wanOnvifPort !== ''){ if(this.formONVIFData.wanOnvifPort !== ''){
const l = Number(this.formONVIFData.wanOnvifPort); const l = Number(this.formONVIFData.wanOnvifPort);
if(l > 0 && l < 65536){ if(l > 0 && l < 65536){

View File

@ -66,9 +66,10 @@
<el-button type="default" style="width:20%;margin-bottom:30px;" @click.native.prevent="cancelLogin"> <el-button type="default" style="width:20%;margin-bottom:30px;" @click.native.prevent="cancelLogin">
{{ $t('login.logCancel') }} {{ $t('login.logCancel') }}
</el-button> </el-button>
<!-- <lang-select class="set-language" />--> <lang-select class="set-language" />
</el-form> </el-form>
</div> </div>
<el-dialog :visible.sync="dialogVisible" :title="$t('login.changePassword')" width="600px"> <el-dialog :visible.sync="dialogVisible" :title="$t('login.changePassword')" width="600px">
<el-form> <el-form>
<div class="tips">{{ $t('table.tips') }}: {{ $t('login.changePasswordTip') }}</div> <div class="tips">{{ $t('table.tips') }}: {{ $t('login.changePasswordTip') }}</div>
@ -82,9 +83,9 @@
<el-input v-model.trim="formData.new2" type="password" maxlength="16" /> <el-input v-model.trim="formData.new2" type="password" maxlength="16" />
</el-form-item> </el-form-item>
<div style="display: flex;justify-content: center;"> <div style="display: flex;justify-content: center;">
<el-button type="primary" style="width: 120px;" @click="submit">{{ <el-button type="primary" style="width: 120px;" @click="submit">
$t("profile.update") {{ $t("profile.update") }}
}}</el-button> </el-button>
</div> </div>
</el-form> </el-form>
</el-dialog> </el-dialog>