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

View File

@ -52,6 +52,9 @@ export default {
deviceID: 'Terminal ID',
deviceIP: 'Terminal IP',
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_RTSP_Port: 'WAN RTSP Port',
gatewal: 'Gateway',

View File

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

View File

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

View File

@ -15,7 +15,7 @@
<h3 class="title">
IP Speaker
</h3>
<!-- <img src="@/assets/login/logo_white.svg" alt=""> -->
<!-- <img src="@/assets/login/logo_white.svg" alt="">-->
<h3 class="title">
{{ $t('login.title') }}
</h3>
@ -66,9 +66,10 @@
<el-button type="default" style="width:20%;margin-bottom:30px;" @click.native.prevent="cancelLogin">
{{ $t('login.logCancel') }}
</el-button>
<!-- <lang-select class="set-language" />-->
<lang-select class="set-language" />
</el-form>
</div>
<el-dialog :visible.sync="dialogVisible" :title="$t('login.changePassword')" width="600px">
<el-form>
<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-form-item>
<div style="display: flex;justify-content: center;">
<el-button type="primary" style="width: 120px;" @click="submit">{{
$t("profile.update")
}}</el-button>
<el-button type="primary" style="width: 120px;" @click="submit">
{{ $t("profile.update") }}
</el-button>
</div>
</el-form>
</el-dialog>