From f76602d66e18434a05e9c2d044ff2b1f8936656f Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Thu, 24 Apr 2025 09:58:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=88=E7=AB=AF=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E9=83=A8=E5=88=86=E8=B0=83=E6=95=B4=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?udm-voip/volte=E5=8A=9F=E8=83=BD=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/neDataImput/pcf_template.txt | 4 +- public/neDataImput/udm_sub_template.txt | 4 +- public/neDataImput/udm_voip_template.txt | 3 + public/neDataImput/udm_volte_template.txt | 3 + src/api/neData/udm_voip.ts | 134 +++ src/api/neData/udm_volte_ims.ts | 127 ++ src/i18n/locales/zh-CN.ts | 35 + src/views/dashboard/overview/index.vue | 14 +- src/views/ne/neInfo/components/OAMModal.vue | 2 +- .../base5G => neData/base-online}/index.vue | 0 .../base-station/components/history.vue | 0 .../base-station/index.vue | 0 .../{ne-data => neData}/base-station/list.vue | 0 .../base-station/topology.vue | 0 .../{neUser/ims => neData/ims-sub}/index.vue | 0 .../{neUser/pcf => neData/pcf-sub}/index.vue | 9 +- .../{neUser/ue => neData/smf-sub}/index.vue | 0 .../auth => neData/udm-auth}/index.vue | 0 .../{neUser/sub => neData/udm-sub}/index.vue | 0 src/views/neData/udm-voip/index.vue | 943 +++++++++++++++ src/views/neData/udm-volte/index.vue | 1070 +++++++++++++++++ 21 files changed, 2334 insertions(+), 14 deletions(-) create mode 100644 public/neDataImput/udm_voip_template.txt create mode 100644 public/neDataImput/udm_volte_template.txt create mode 100644 src/api/neData/udm_voip.ts create mode 100644 src/api/neData/udm_volte_ims.ts rename src/views/{neUser/base5G => neData/base-online}/index.vue (100%) rename src/views/{ne-data => neData}/base-station/components/history.vue (100%) rename src/views/{ne-data => neData}/base-station/index.vue (100%) rename src/views/{ne-data => neData}/base-station/list.vue (100%) rename src/views/{ne-data => neData}/base-station/topology.vue (100%) rename src/views/{neUser/ims => neData/ims-sub}/index.vue (100%) rename src/views/{neUser/pcf => neData/pcf-sub}/index.vue (99%) rename src/views/{neUser/ue => neData/smf-sub}/index.vue (100%) rename src/views/{neUser/auth => neData/udm-auth}/index.vue (100%) rename src/views/{neUser/sub => neData/udm-sub}/index.vue (100%) create mode 100644 src/views/neData/udm-voip/index.vue create mode 100644 src/views/neData/udm-volte/index.vue diff --git a/public/neDataImput/pcf_template.txt b/public/neDataImput/pcf_template.txt index 1935f253..c978dd8a 100644 --- a/public/neDataImput/pcf_template.txt +++ b/public/neDataImput/pcf_template.txt @@ -1,2 +1,2 @@ -imsi,msisdn,sess_rules,pcc_rules,hdr_enrich,rfsp,sar,qos_audio,qos_video,online,offline -460996650000580,86755900103,internet|ims_sig,internet|ims_sig,dnn,1,def_sar,qos_audio,qos_video,0,0 +#imsi,msisdn,sess_rules,pcc_rules,hdr_enrich,rfsp,sar,qos_audio,qos_video,online,offline +460996650000580,62357000580,internet|ims_sig,internet|ims_sig,dnn,1,def_sar,qos_audio,qos_video,0,0 diff --git a/public/neDataImput/udm_sub_template.txt b/public/neDataImput/udm_sub_template.txt index b9762168..cad7c37b 100644 --- a/public/neDataImput/udm_sub_template.txt +++ b/public/neDataImput/udm_sub_template.txt @@ -1,2 +1,2 @@ -460996650000580,62357000583,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&content&ims,1,64,24,65,def_eps,1,010200000000,- -460996650000581,62357000585,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&content&ims,1,64,24,65,def_eps,1,010200000000,- +460996650000580,62357000580,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&content&ims,1,64,24,65,def_eps,1,010200000000,- +460996650000581,62357000581,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&content&ims,1,64,24,65,def_eps,1,010200000000,- diff --git a/public/neDataImput/udm_voip_template.txt b/public/neDataImput/udm_voip_template.txt new file mode 100644 index 00000000..21657b00 --- /dev/null +++ b/public/neDataImput/udm_voip_template.txt @@ -0,0 +1,3 @@ +#username,password +62357000580,123456 +62357000581,123456 diff --git a/public/neDataImput/udm_volte_template.txt b/public/neDataImput/udm_volte_template.txt new file mode 100644 index 00000000..2abb96c7 --- /dev/null +++ b/public/neDataImput/udm_volte_template.txt @@ -0,0 +1,3 @@ +#imsi,msisdn,vlote,vni +460996650000580,62357000580,1,ims.mnc000.mcc460.3gppnetwork.org +460996650000581,62357000581,1,ims.mnc000.mcc460.3gppnetwork.org \ No newline at end of file diff --git a/src/api/neData/udm_voip.ts b/src/api/neData/udm_voip.ts new file mode 100644 index 00000000..0046de39 --- /dev/null +++ b/src/api/neData/udm_voip.ts @@ -0,0 +1,134 @@ +import { request } from '@/plugins/http-fetch'; + +/** + * UDMVOIP用户重载数据 + * @param neId 网元ID + * @returns object + */ +export function resetUDMVOIP(neId: string) { + return request({ + url: `/neData/udm/voip/resetData/${neId}`, + method: 'PUT', + timeout: 180_000, + }); +} + +/** + * UDMVOIP用户列表 + * @param query 查询参数 + * @returns object + */ +export function listUDMVOIP(query: Record) { + return request({ + url: '/neData/udm/voip/list', + method: 'GET', + params: query, + timeout: 30_000, + }); +} + +/** + * UDMVOIP用户信息 + * @param neId 网元ID + * @param username username + * @returns object + */ +export function getUDMVOIP(neId: string, username: string) { + return request({ + url: `/neData/udm/voip/${neId}/${username}`, + method: 'GET', + }); +} + +/** + * UDMVOIP用户新增 + * @param data VOIP对象 + * @returns object + */ +export function addUDMVOIP( + neId: string, + data: { username: string; password: string } +) { + return request({ + url: `/neData/udm/voip/${neId}`, + method: 'POST', + data: data, + timeout: 180_000, + }); +} + +/** + * UDMVOIP用户批量新增 + * @param data VOIP对象 + * @param num 数量 + * @returns object + */ +export function batchAddUDMVOIP( + neId: string, + data: { username: string; password: string }, + num: number +) { + return request({ + url: `/neData/udm/voip/${neId}/${num}`, + method: 'POST', + data: data, + timeout: 180_000, + }); +} + +/** + * UDMVOIP用户删除 + * @param data VOIP对象 + * @returns object + */ +export function delUDMVOIP(neId: string, username: string) { + return request({ + url: `/neData/udm/voip/${neId}/${username}`, + method: 'DELETE', + timeout: 180_000, + }); +} + +/** + * UDMVOIP用户批量删除 + * @param neId 网元ID + * @param username username + * @param num 数量 + * @returns object + */ +export function batchDelUDMVOIP(neId: string, username: string, num: number) { + return request({ + url: `/neData/udm/voip/${neId}/${username}/${num}`, + method: 'DELETE', + timeout: 180_000, + }); +} + +/** + * UDMVOIP用户导出 + * @param data 数据参数 + * @returns bolb + */ +export function exportUDMVOIP(data: Record) { + return request({ + url: '/neData/udm/voip/export', + method: 'GET', + params: data, + responseType: 'blob', + timeout: 180_000, + }); +} + +/** + * UDMVOIP用户导入 + * @param data 表单数据对象 + * @returns object + */ +export function importUDMVOIP(data: Record) { + return request({ + url: `/neData/udm/voip/import`, + method: 'POST', + data, + timeout: 180_000, + }); +} diff --git a/src/api/neData/udm_volte_ims.ts b/src/api/neData/udm_volte_ims.ts new file mode 100644 index 00000000..7a96bd30 --- /dev/null +++ b/src/api/neData/udm_volte_ims.ts @@ -0,0 +1,127 @@ +import { request } from '@/plugins/http-fetch'; + +/** + * UDMVolteIMS用户重载数据 + * @param neId 网元ID + * @returns object + */ +export function resetUDMVolteIMS(neId: string) { + return request({ + url: `/neData/udm/volte-ims/resetData/${neId}`, + method: 'PUT', + timeout: 180_000, + }); +} + +/** + * UDMVolteIMS用户列表 + * @param query 查询参数 + * @returns object + */ +export function listUDMVolteIMS(query: Record) { + return request({ + url: '/neData/udm/volte-ims/list', + method: 'GET', + params: query, + timeout: 30_000, + }); +} + +/** + * UDMVolteIMS用户信息 + * @param neId 网元ID + * @param imsi IMSI + * @returns object + */ +export function getUDMVolteIMS(neId: string, imsi: string) { + return request({ + url: `/neData/udm/volte-ims/${neId}/${imsi}`, + method: 'GET', + }); +} + +/** + * UDMVolteIMS用户新增 + * @param data 签约对象 + * @returns object + */ +export function addUDMVolteIMS(data: Record) { + return request({ + url: `/neData/udm/volte-ims/${data.neId}`, + method: 'POST', + data: data, + timeout: 180_000, + }); +} + +/** + * UDMVolteIMS用户批量新增 + * @param data 签约对象 + * @param num 数量 + * @returns object + */ +export function batchAddUDMVolteIMS(data: Record, num: number) { + return request({ + url: `/neData/udm/volte-ims/${data.neId}/${num}`, + method: 'POST', + data: data, + timeout: 180_000, + }); +} + +/** + * UDMVolteIMS用户删除 + * @param data 签约对象 + * @returns object + */ +export function delUDMVolteIMS(neId: string, imsi: string) { + return request({ + url: `/neData/udm/volte-ims/${neId}/${imsi}`, + method: 'DELETE', + timeout: 180_000, + }); +} + +/** + * UDMVolteIMS用户批量删除 + * @param neId 网元ID + * @param imsi IMSI + * @param num 数量 + * @returns object + */ +export function batchDelUDMVolteIMS(neId: string, imsi: string, num: number) { + return request({ + url: `/neData/udm/volte-ims/${neId}/${imsi}/${num}`, + method: 'DELETE', + timeout: 180_000, + }); +} + +/** + * UDMVolteIMS用户导出 + * @param data 数据参数 + * @returns bolb + */ +export function exportUDMVolteIMS(data: Record) { + return request({ + url: '/neData/udm/volte-ims/export', + method: 'GET', + params: data, + responseType: 'blob', + timeout: 180_000, + }); +} + +/** + * UDMVolteIMS用户导入 + * @param data 表单数据对象 + * @returns object + */ +export function importUDMVolteIMS(data: Record) { + return request({ + url: `/neData/udm/volte-ims/import`, + method: 'POST', + data, + timeout: 180_000, + }); +} diff --git a/src/i18n/locales/zh-CN.ts b/src/i18n/locales/zh-CN.ts index 86fdbf9a..58bd9392 100644 --- a/src/i18n/locales/zh-CN.ts +++ b/src/i18n/locales/zh-CN.ts @@ -716,8 +716,43 @@ export default { }, neData: { common: { + startIMSI: '起始IMSI', + imsi: 'IMSI', + imsiTip: 'IMSI=MCC+MNC+MSIN', + imsiTip1: 'MCC=移动国家号码, 由三位数字组成', + imsiTip2: 'MNC=移动网络号,由两位数字组成', + imsiTip3: 'MSIN=移动客户识别码,采用等长10位数字构成', + imsiPlease: "请正确输入IMSI", + msisdn: '移动客户识别码', + msisdnPlease: "请正确输入移动客户识别码", + loadDataConfirm: '确认要重新加载数据吗?', + loadData: '加载数据', + loadDataTip: '成功获取加载数据:{num}条,系统内部正在进行数据更新,大约需要{timer}秒,请稍候!!!', + batchOper: '批量操作', + batchAddText: '批量新增', + batchDelText: '批量删除', + batchUpdateText: '批量更新', + batchNum: '批量个数', + checkDel:'勾选删除', importTemplate: '导入模板', }, + udmVOIP: { + startUsername: '起始用户名', + username: '用户名', + usernamePlease: "请正确输入用户名", + password: "密码", + passwordPlease: "请正确输入密码", + addTitle: '新增VOIP用户', + delTip: '确认要删除VOIP用户为【{num}】的信息吗?', + exportTip: "确认根据搜索条件导出xlsx表格文件吗?", + }, + udmVolteIMS: { + addTitle: '新增IMS签约用户', + vniTip: '示例:ims.mnc000.mcc000.3gppnetwork.org', + vniPlease: '请正确输入VNI', + delTip: '确认要删除IMS签约为【{num}】的信息吗?', + exportTip: "确认根据搜索条件导出xlsx表格文件吗?", + }, baseStation: { list: "列表", topology: "拓扑图", diff --git a/src/views/dashboard/overview/index.vue b/src/views/dashboard/overview/index.vue index 14a03197..5f6241f1 100644 --- a/src/views/dashboard/overview/index.vue +++ b/src/views/dashboard/overview/index.vue @@ -385,7 +385,7 @@ onBeforeUnmount(() => { class="item toRouter" :title="t('views.dashboard.overview.toRouter')" > -
+
@@ -409,7 +409,7 @@ onBeforeUnmount(() => {
{
@@ -448,7 +448,7 @@ onBeforeUnmount(() => {
@@ -462,7 +462,7 @@ onBeforeUnmount(() => {
@@ -485,7 +485,7 @@ onBeforeUnmount(() => {
@@ -499,7 +499,7 @@ onBeforeUnmount(() => {
diff --git a/src/views/ne/neInfo/components/OAMModal.vue b/src/views/ne/neInfo/components/OAMModal.vue index 4cb56fe4..dd770814 100644 --- a/src/views/ne/neInfo/components/OAMModal.vue +++ b/src/views/ne/neInfo/components/OAMModal.vue @@ -192,7 +192,7 @@ watch( > diff --git a/src/views/neUser/base5G/index.vue b/src/views/neData/base-online/index.vue similarity index 100% rename from src/views/neUser/base5G/index.vue rename to src/views/neData/base-online/index.vue diff --git a/src/views/ne-data/base-station/components/history.vue b/src/views/neData/base-station/components/history.vue similarity index 100% rename from src/views/ne-data/base-station/components/history.vue rename to src/views/neData/base-station/components/history.vue diff --git a/src/views/ne-data/base-station/index.vue b/src/views/neData/base-station/index.vue similarity index 100% rename from src/views/ne-data/base-station/index.vue rename to src/views/neData/base-station/index.vue diff --git a/src/views/ne-data/base-station/list.vue b/src/views/neData/base-station/list.vue similarity index 100% rename from src/views/ne-data/base-station/list.vue rename to src/views/neData/base-station/list.vue diff --git a/src/views/ne-data/base-station/topology.vue b/src/views/neData/base-station/topology.vue similarity index 100% rename from src/views/ne-data/base-station/topology.vue rename to src/views/neData/base-station/topology.vue diff --git a/src/views/neUser/ims/index.vue b/src/views/neData/ims-sub/index.vue similarity index 100% rename from src/views/neUser/ims/index.vue rename to src/views/neData/ims-sub/index.vue diff --git a/src/views/neUser/pcf/index.vue b/src/views/neData/pcf-sub/index.vue similarity index 99% rename from src/views/neUser/pcf/index.vue rename to src/views/neData/pcf-sub/index.vue index 2c6911ba..638b18ec 100644 --- a/src/views/neUser/pcf/index.vue +++ b/src/views/neData/pcf-sub/index.vue @@ -545,9 +545,13 @@ function fnExportList(type: string) { } /**查询列表, pageNum初始页数 */ -function fnGetList() { +function fnGetList(pageNum?: number) { if (tableState.loading) return; tableState.loading = true; + if (pageNum) { + queryParams.pageNum = pageNum; + tablePagination.current = pageNum; + } listRules(toRaw(queryParams)).then(res => { if (res.code === RESULT_CODE_SUCCESS) { // 取消勾选 @@ -705,6 +709,7 @@ onMounted(() => { v-model:value="queryParams.neId" :options="neOtions" :placeholder="t('common.selectPlease')" + @change="fnGetList(1)" /> @@ -831,7 +836,7 @@ onMounted(() => { /> diff --git a/src/views/neUser/ue/index.vue b/src/views/neData/smf-sub/index.vue similarity index 100% rename from src/views/neUser/ue/index.vue rename to src/views/neData/smf-sub/index.vue diff --git a/src/views/neUser/auth/index.vue b/src/views/neData/udm-auth/index.vue similarity index 100% rename from src/views/neUser/auth/index.vue rename to src/views/neData/udm-auth/index.vue diff --git a/src/views/neUser/sub/index.vue b/src/views/neData/udm-sub/index.vue similarity index 100% rename from src/views/neUser/sub/index.vue rename to src/views/neData/udm-sub/index.vue diff --git a/src/views/neData/udm-voip/index.vue b/src/views/neData/udm-voip/index.vue new file mode 100644 index 00000000..a1a138ec --- /dev/null +++ b/src/views/neData/udm-voip/index.vue @@ -0,0 +1,943 @@ + + + + + diff --git a/src/views/neData/udm-volte/index.vue b/src/views/neData/udm-volte/index.vue new file mode 100644 index 00000000..2bd168eb --- /dev/null +++ b/src/views/neData/udm-volte/index.vue @@ -0,0 +1,1070 @@ + + + + +