From d0cca3bbfb300061d47df1676eadf7af3b99155f Mon Sep 17 00:00:00 2001 From: zhongzm Date: Thu, 12 Jun 2025 17:25:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=85=8D=E7=BD=AE=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D=EF=BC=8C=E4=B8=AD=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/langs/en-us.ts | 8 ++++++ src/locales/langs/zh-cn.ts | 8 ++++++ src/views/dashboard/modules/card-data.vue | 32 +++++++++++++++-------- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index f1f9a12..43a528e 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -691,6 +691,14 @@ const local: any = { retail:'Retail', other:'Other', updateSuccess:'Update Success', + wireless:'Wireless Features', + autoFailover:'Auto Failover', + conDetection:'Connectivity Detection', + autoRec:'Auto(Recommended)', + custom:'Custom', + fastRoaming:'Fast Roaming', + aiRoaming:'AI Roaming' + }, headerbanner:{ controller:'Controller Overview', diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 0fef2cd..d66896c 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -691,6 +691,14 @@ const local:any = { retail:'零售业', other:'其他', updateSuccess:'更新成功', + wireless:'无线功能', + autoFailover:'自动恢复', + conDetection:'连接检测', + autoRec:'自动(建议选项)', + custom:'自定义', + fastRoaming:'快速漫游', + aiRoaming:'AI漫游' + }, headerbanner:{ controller:'控制仪表盘', diff --git a/src/views/dashboard/modules/card-data.vue b/src/views/dashboard/modules/card-data.vue index 52741ce..bafd49d 100644 --- a/src/views/dashboard/modules/card-data.vue +++ b/src/views/dashboard/modules/card-data.vue @@ -60,7 +60,7 @@ const { validate, validateInfos } = useForm(formData, { 'deviceAccountSetting.password': [ { 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') } ] @@ -254,6 +254,7 @@ const editFormData = ref({ autoFailoverEnable: false, defGatewayEnable: true, gateway: '', + fullSector: false, fastRoamingEnable: false, nonStickRoamingEnable: 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); }, { immediate: true }); // 分段输入时同步到gateway -watch(gatewayIpParts, (val) => { +watch(gatewayIpParts, (val: any) => { editFormData.value.gateway = joinGatewayIp(val); }, { deep: true }); @@ -318,6 +319,7 @@ const handleEdit = async (record: Api.DashboardSite) => { autoFailoverEnable: meshRes.data?.mesh?.autoFailoverEnable ?? false, defGatewayEnable: meshRes.data?.mesh?.defGatewayEnable ?? true, gateway: meshRes.data?.mesh?.gateway ?? '', + fullSector: meshRes.data?.mesh?.fullSector ?? false, fastRoamingEnable: roamingRes.data?.roaming?.fastRoamingEnable ?? false, nonStickRoamingEnable: roamingRes.data?.roaming?.nonStickRoamingEnable ?? false, aiRoamingEnable: roamingRes.data?.roaming?.aiRoamingEnable ?? false @@ -342,11 +344,12 @@ const handleUpdateSite = async () => { timeZone: editFormData.value.timeZone, scenario: editFormData.value.scenario }); - // mesh 配置为嵌套结构,meshEnable为true时才携带defGatewayEnable和gateway + // mesh 配置为嵌套结构,meshEnable为true时才携带defGatewayEnable、gateway、fullSector const meshData: any = { mesh: { meshEnable: editFormData.value.meshEnable } }; if (editFormData.value.meshEnable) { meshData.mesh.autoFailoverEnable = editFormData.value.autoFailoverEnable; meshData.mesh.defGatewayEnable = editFormData.value.defGatewayEnable; + meshData.mesh.fullSector = editFormData.value.fullSector; if (editFormData.value.defGatewayEnable === false) { meshData.mesh.gateway = editFormData.value.gateway; } @@ -356,6 +359,9 @@ const handleUpdateSite = async () => { if (editFormData.value.fastRoamingEnable) { roamingData.roaming.nonStickRoamingEnable = editFormData.value.nonStickRoamingEnable; roamingData.roaming.aiRoamingEnable = editFormData.value.aiRoamingEnable; + }else { + roamingData.roaming.nonStickRoamingEnable=false; + roamingData.roaming.aiRoamingEnable = false; } await Promise.all([ updateMeshConfig(currentEditSiteId.value, meshData), @@ -550,7 +556,7 @@ const handleUpdateSite = async () => { { -
组网配置
+
{{ t('page.carddata.wireless') }}
Mesh + {{t('page.carddata.conDetection')}} - Auto(Recommended) - Custom + {{ t('page.carddata.autoRec') }} + {{ t('page.carddata.custom') }} - Auto Failover + {{ t('page.carddata.autoFailover') }} + + + Full-Sector DFS - Fast Roaming + {{ t('page.carddata.fastRoaming') }} Non-Stick Roaming - AI Roaming + {{ t('page.carddata.aiRoaming') }}