feat:配置参数问题修复,中英文适配
This commit is contained in:
@@ -691,6 +691,14 @@ const local: any = {
|
|||||||
retail:'Retail',
|
retail:'Retail',
|
||||||
other:'Other',
|
other:'Other',
|
||||||
updateSuccess:'Update Success',
|
updateSuccess:'Update Success',
|
||||||
|
wireless:'Wireless Features',
|
||||||
|
autoFailover:'Auto Failover',
|
||||||
|
conDetection:'Connectivity Detection',
|
||||||
|
autoRec:'Auto(Recommended)',
|
||||||
|
custom:'Custom',
|
||||||
|
fastRoaming:'Fast Roaming',
|
||||||
|
aiRoaming:'AI Roaming'
|
||||||
|
|
||||||
},
|
},
|
||||||
headerbanner:{
|
headerbanner:{
|
||||||
controller:'Controller Overview',
|
controller:'Controller Overview',
|
||||||
|
|||||||
@@ -691,6 +691,14 @@ const local:any = {
|
|||||||
retail:'零售业',
|
retail:'零售业',
|
||||||
other:'其他',
|
other:'其他',
|
||||||
updateSuccess:'更新成功',
|
updateSuccess:'更新成功',
|
||||||
|
wireless:'无线功能',
|
||||||
|
autoFailover:'自动恢复',
|
||||||
|
conDetection:'连接检测',
|
||||||
|
autoRec:'自动(建议选项)',
|
||||||
|
custom:'自定义',
|
||||||
|
fastRoaming:'快速漫游',
|
||||||
|
aiRoaming:'AI漫游'
|
||||||
|
|
||||||
},
|
},
|
||||||
headerbanner:{
|
headerbanner:{
|
||||||
controller:'控制仪表盘',
|
controller:'控制仪表盘',
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ const { validate, validateInfos } = useForm(formData, {
|
|||||||
'deviceAccountSetting.password': [
|
'deviceAccountSetting.password': [
|
||||||
{ required: true, message: t('page.carddata.passwordRequired') },
|
{ required: true, message: t('page.carddata.passwordRequired') },
|
||||||
{
|
{
|
||||||
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\!\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\@\[\\\]\^\_\`\{\|\}\~])(?!.*[\00-\040\042\077\0177]).{8,64}$/,
|
pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!#\$%&'\(\)\*\+,\-\.\/\:;\<\=\>\@\[\\\]\^_`\{\|\}\~])(?!.*[\x00-\x20\x22\x3f\x0f7]).{8,64}$/,
|
||||||
message: t('page.carddata.passwordInvalid')
|
message: t('page.carddata.passwordInvalid')
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -254,6 +254,7 @@ const editFormData = ref({
|
|||||||
autoFailoverEnable: false,
|
autoFailoverEnable: false,
|
||||||
defGatewayEnable: true,
|
defGatewayEnable: true,
|
||||||
gateway: '',
|
gateway: '',
|
||||||
|
fullSector: false,
|
||||||
fastRoamingEnable: false,
|
fastRoamingEnable: false,
|
||||||
nonStickRoamingEnable: false,
|
nonStickRoamingEnable: false,
|
||||||
aiRoamingEnable: false
|
aiRoamingEnable: false
|
||||||
@@ -291,11 +292,11 @@ function joinGatewayIp(parts: string[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 弹窗打开时同步分段
|
// 弹窗打开时同步分段
|
||||||
watch(() => editFormData.value.gateway, (val) => {
|
watch(() => editFormData.value.gateway, (val: any) => {
|
||||||
gatewayIpParts.value = splitGatewayIp(val);
|
gatewayIpParts.value = splitGatewayIp(val);
|
||||||
}, { immediate: true });
|
}, { immediate: true });
|
||||||
// 分段输入时同步到gateway
|
// 分段输入时同步到gateway
|
||||||
watch(gatewayIpParts, (val) => {
|
watch(gatewayIpParts, (val: any) => {
|
||||||
editFormData.value.gateway = joinGatewayIp(val);
|
editFormData.value.gateway = joinGatewayIp(val);
|
||||||
}, { deep: true });
|
}, { deep: true });
|
||||||
|
|
||||||
@@ -318,6 +319,7 @@ const handleEdit = async (record: Api.DashboardSite) => {
|
|||||||
autoFailoverEnable: meshRes.data?.mesh?.autoFailoverEnable ?? false,
|
autoFailoverEnable: meshRes.data?.mesh?.autoFailoverEnable ?? false,
|
||||||
defGatewayEnable: meshRes.data?.mesh?.defGatewayEnable ?? true,
|
defGatewayEnable: meshRes.data?.mesh?.defGatewayEnable ?? true,
|
||||||
gateway: meshRes.data?.mesh?.gateway ?? '',
|
gateway: meshRes.data?.mesh?.gateway ?? '',
|
||||||
|
fullSector: meshRes.data?.mesh?.fullSector ?? false,
|
||||||
fastRoamingEnable: roamingRes.data?.roaming?.fastRoamingEnable ?? false,
|
fastRoamingEnable: roamingRes.data?.roaming?.fastRoamingEnable ?? false,
|
||||||
nonStickRoamingEnable: roamingRes.data?.roaming?.nonStickRoamingEnable ?? false,
|
nonStickRoamingEnable: roamingRes.data?.roaming?.nonStickRoamingEnable ?? false,
|
||||||
aiRoamingEnable: roamingRes.data?.roaming?.aiRoamingEnable ?? false
|
aiRoamingEnable: roamingRes.data?.roaming?.aiRoamingEnable ?? false
|
||||||
@@ -342,11 +344,12 @@ const handleUpdateSite = async () => {
|
|||||||
timeZone: editFormData.value.timeZone,
|
timeZone: editFormData.value.timeZone,
|
||||||
scenario: editFormData.value.scenario
|
scenario: editFormData.value.scenario
|
||||||
});
|
});
|
||||||
// mesh 配置为嵌套结构,meshEnable为true时才携带defGatewayEnable和gateway
|
// mesh 配置为嵌套结构,meshEnable为true时才携带defGatewayEnable、gateway、fullSector
|
||||||
const meshData: any = { mesh: { meshEnable: editFormData.value.meshEnable } };
|
const meshData: any = { mesh: { meshEnable: editFormData.value.meshEnable } };
|
||||||
if (editFormData.value.meshEnable) {
|
if (editFormData.value.meshEnable) {
|
||||||
meshData.mesh.autoFailoverEnable = editFormData.value.autoFailoverEnable;
|
meshData.mesh.autoFailoverEnable = editFormData.value.autoFailoverEnable;
|
||||||
meshData.mesh.defGatewayEnable = editFormData.value.defGatewayEnable;
|
meshData.mesh.defGatewayEnable = editFormData.value.defGatewayEnable;
|
||||||
|
meshData.mesh.fullSector = editFormData.value.fullSector;
|
||||||
if (editFormData.value.defGatewayEnable === false) {
|
if (editFormData.value.defGatewayEnable === false) {
|
||||||
meshData.mesh.gateway = editFormData.value.gateway;
|
meshData.mesh.gateway = editFormData.value.gateway;
|
||||||
}
|
}
|
||||||
@@ -356,6 +359,9 @@ const handleUpdateSite = async () => {
|
|||||||
if (editFormData.value.fastRoamingEnable) {
|
if (editFormData.value.fastRoamingEnable) {
|
||||||
roamingData.roaming.nonStickRoamingEnable = editFormData.value.nonStickRoamingEnable;
|
roamingData.roaming.nonStickRoamingEnable = editFormData.value.nonStickRoamingEnable;
|
||||||
roamingData.roaming.aiRoamingEnable = editFormData.value.aiRoamingEnable;
|
roamingData.roaming.aiRoamingEnable = editFormData.value.aiRoamingEnable;
|
||||||
|
}else {
|
||||||
|
roamingData.roaming.nonStickRoamingEnable=false;
|
||||||
|
roamingData.roaming.aiRoamingEnable = false;
|
||||||
}
|
}
|
||||||
await Promise.all([
|
await Promise.all([
|
||||||
updateMeshConfig(currentEditSiteId.value, meshData),
|
updateMeshConfig(currentEditSiteId.value, meshData),
|
||||||
@@ -550,7 +556,7 @@ const handleUpdateSite = async () => {
|
|||||||
<AForm
|
<AForm
|
||||||
:model="editFormData"
|
:model="editFormData"
|
||||||
:label-col="{ span: 6 }"
|
:label-col="{ span: 6 }"
|
||||||
:wrapper-col="{ span: 18 }"
|
:wrapper-col="{ span: 24 }"
|
||||||
>
|
>
|
||||||
<AFormItem
|
<AFormItem
|
||||||
name="name"
|
name="name"
|
||||||
@@ -600,14 +606,15 @@ const handleUpdateSite = async () => {
|
|||||||
</AFormItem>
|
</AFormItem>
|
||||||
|
|
||||||
<a-divider />
|
<a-divider />
|
||||||
<div style="margin-bottom: 8px; font-weight: bold;">组网配置</div>
|
<div style="margin-bottom: 8px; font-weight: bold;">{{ t('page.carddata.wireless') }}</div>
|
||||||
<AFormItem>
|
<AFormItem>
|
||||||
<a-checkbox v-model:checked="editFormData.meshEnable">Mesh</a-checkbox>
|
<a-checkbox v-model:checked="editFormData.meshEnable">Mesh</a-checkbox>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem v-if="editFormData.meshEnable" style="margin-left: 24px;">
|
<AFormItem v-if="editFormData.meshEnable" style="margin-left: 24px;">
|
||||||
|
{{t('page.carddata.conDetection')}}
|
||||||
<ASelect v-model:value="editFormData.defGatewayEnable" style="width: 200px;">
|
<ASelect v-model:value="editFormData.defGatewayEnable" style="width: 200px;">
|
||||||
<ASelectOption :value="true">Auto(Recommended)</ASelectOption>
|
<ASelectOption :value="true">{{ t('page.carddata.autoRec') }}</ASelectOption>
|
||||||
<ASelectOption :value="false">Custom</ASelectOption>
|
<ASelectOption :value="false">{{ t('page.carddata.custom') }}</ASelectOption>
|
||||||
</ASelect>
|
</ASelect>
|
||||||
<template v-if="editFormData.defGatewayEnable === false">
|
<template v-if="editFormData.defGatewayEnable === false">
|
||||||
<div style="display: inline-flex; align-items: center; margin-left: 12px;">
|
<div style="display: inline-flex; align-items: center; margin-left: 12px;">
|
||||||
@@ -617,16 +624,19 @@ const handleUpdateSite = async () => {
|
|||||||
</template>
|
</template>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem v-if="editFormData.meshEnable" style="margin-left: 24px;">
|
<AFormItem v-if="editFormData.meshEnable" style="margin-left: 24px;">
|
||||||
<a-checkbox v-model:checked="editFormData.autoFailoverEnable">Auto Failover</a-checkbox>
|
<a-checkbox v-model:checked="editFormData.autoFailoverEnable">{{ t('page.carddata.autoFailover') }}</a-checkbox>
|
||||||
|
</AFormItem>
|
||||||
|
<AFormItem v-if="editFormData.meshEnable" style="margin-left: 24px;">
|
||||||
|
<a-checkbox v-model:checked="editFormData.fullSector">Full-Sector DFS</a-checkbox>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem>
|
<AFormItem>
|
||||||
<a-checkbox v-model:checked="editFormData.fastRoamingEnable">Fast Roaming</a-checkbox>
|
<a-checkbox v-model:checked="editFormData.fastRoamingEnable">{{ t('page.carddata.fastRoaming') }}</a-checkbox>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem v-if="editFormData.fastRoamingEnable" style="margin-left: 24px;">
|
<AFormItem v-if="editFormData.fastRoamingEnable" style="margin-left: 24px;">
|
||||||
<a-checkbox v-model:checked="editFormData.nonStickRoamingEnable">Non-Stick Roaming</a-checkbox>
|
<a-checkbox v-model:checked="editFormData.nonStickRoamingEnable">Non-Stick Roaming</a-checkbox>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
<AFormItem v-if="editFormData.fastRoamingEnable" style="margin-left: 24px;">
|
<AFormItem v-if="editFormData.fastRoamingEnable" style="margin-left: 24px;">
|
||||||
<a-checkbox v-model:checked="editFormData.aiRoamingEnable">AI Roaming</a-checkbox>
|
<a-checkbox v-model:checked="editFormData.aiRoamingEnable">{{ t('page.carddata.aiRoaming') }}</a-checkbox>
|
||||||
</AFormItem>
|
</AFormItem>
|
||||||
</AForm>
|
</AForm>
|
||||||
</AModal>
|
</AModal>
|
||||||
|
|||||||
Reference in New Issue
Block a user