From 5704ff09c3d2a37580ee8f7a0f0824db3ff53dc5 Mon Sep 17 00:00:00 2001 From: TsMask <340112800@qq.com> Date: Tue, 24 Jun 2025 17:13:18 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20UDM-IMS=E6=95=B0=E6=8D=AE=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E6=96=B0=E5=A2=9E/=E6=89=B9=E9=87=8F=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=91=BD=E4=BB=A4=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/neData/udm_volte_ims.ts | 18 ++- src/views/neData/udm-volte/index.vue | 162 +++++++++++++++++++-------- 2 files changed, 127 insertions(+), 53 deletions(-) diff --git a/src/api/neData/udm_volte_ims.ts b/src/api/neData/udm_volte_ims.ts index 7a96bd30..7b65f0fb 100644 --- a/src/api/neData/udm_volte_ims.ts +++ b/src/api/neData/udm_volte_ims.ts @@ -71,13 +71,16 @@ export function batchAddUDMVolteIMS(data: Record, num: number) { /** * UDMVolteIMS用户删除 - * @param data 签约对象 + * @param neId 网元ID + * @param imsi_msisdn IMSI/MSISDN + * @param tag 标签 0-voip 1-volte * @returns object */ -export function delUDMVolteIMS(neId: string, imsi: string) { +export function delUDMVolteIMS(neId: string, imsi_msisdn: string, tag: string) { return request({ - url: `/neData/udm/volte-ims/${neId}/${imsi}`, + url: `/neData/udm/volte-ims/${neId}/${imsi_msisdn}`, method: 'DELETE', + params: { volte: tag }, timeout: 180_000, }); } @@ -87,12 +90,19 @@ export function delUDMVolteIMS(neId: string, imsi: string) { * @param neId 网元ID * @param imsi IMSI * @param num 数量 + * @param tag 标签 0-voip 1-volte * @returns object */ -export function batchDelUDMVolteIMS(neId: string, imsi: string, num: number) { +export function batchDelUDMVolteIMS( + neId: string, + imsi: string, + num: number, + tag: string +) { return request({ url: `/neData/udm/volte-ims/${neId}/${imsi}/${num}`, method: 'DELETE', + params: { volte: tag }, timeout: 180_000, }); } diff --git a/src/views/neData/udm-volte/index.vue b/src/views/neData/udm-volte/index.vue index fd75450e..0c96e32e 100644 --- a/src/views/neData/udm-volte/index.vue +++ b/src/views/neData/udm-volte/index.vue @@ -94,7 +94,7 @@ type TabeStateType = { data: object[]; /**勾选记录 */ selectedRowKeys: (string | number)[]; - selectedRowIMSIs: (string | number)[]; + selectedRowIMSIs: Record[]; }; /**表格状态 */ @@ -203,7 +203,13 @@ function fnTableSize({ key }: MenuInfo) { /**表格多选 */ function fnTableSelectedRowKeys(keys: (string | number)[], rows: any[]) { tableState.selectedRowKeys = keys; - tableState.selectedRowIMSIs = rows.map(item => item.imsi); + tableState.selectedRowIMSIs = rows.map(item => { + return { + imsi: item.imsi, + msisdn: item.msisdn, + tag: item.tag, + }; + }); } /**对话框对象信息状态类型 */ @@ -309,7 +315,12 @@ function fnModalOk() { result = batchAddUDMVolteIMS(from, from.num); } if (modalState.type === 'delete') { - result = batchDelUDMVolteIMS(from.neId, from.imsi, from.num); + result = batchDelUDMVolteIMS( + from.neId, + `${from.imsi}_${from.msisdn}`, + from.num, + from.tag + ); } } else { if (modalState.type === 'add') { @@ -375,15 +386,14 @@ function fnModalVisibleByBatch(type: 'delete' | 'add') { /** * 记录删除 - * @param imsi 网元编号ID + * @param id 记录ID */ -function fnRecordDelete(imsi: string) { +function fnRecordDelete(id: string) { const neID = queryParams.neId; if (!neID) return; - let msg = imsi; - if (imsi === '0') { - msg = `${tableState.selectedRowIMSIs[0]}... ${tableState.selectedRowIMSIs.length}`; - imsi = tableState.selectedRowIMSIs.join(','); + let msg = id; + if (id === '0') { + msg = `${tableState.selectedRowIMSIs[0].imsi}... ${tableState.selectedRowIMSIs.length}`; } Modal.confirm({ @@ -391,17 +401,34 @@ function fnRecordDelete(imsi: string) { content: t('views.neData.udmVolteIMS.delTip', { num: msg }), onOk() { const hide = message.loading(t('common.loading'), 0); - delUDMVolteIMS(neID, imsi) - .then(res => { - if (res.code === RESULT_CODE_SUCCESS) { - message.success(t('common.operateOk'), 3); - fnGetList(); - } else { - message.error({ - content: `${res.msg}`, - duration: 3, - }); - } + let reqArr: any[] = []; + if (id === '0') { + const volteArr = tableState.selectedRowIMSIs + .filter(item => item.tag == '1') + .map(item => `${item.imsi}_${item.msisdn}`) + .join(','); + if (volteArr.length > 0) { + reqArr.push(delUDMVolteIMS(neID, volteArr, '1')); + } + const voipArr = tableState.selectedRowIMSIs + .filter(item => item.tag == '0') + .map(item => `${item.imsi}_${item.msisdn}`) + .join(','); + if (voipArr.length > 0) { + reqArr.push(delUDMVolteIMS(neID, voipArr, '0')); + } + } else { + const record: any = tableState.data.find((item: any) => item.id === id); + if (record) { + reqArr = [ + delUDMVolteIMS(neID, `${record.imsi}_${record.msisdn}`, record.tag), + ]; + } + } + Promise.all(reqArr) + .then(() => { + message.success(t('common.operateOk'), 3); + fnGetList(); }) .finally(() => { hide(); @@ -887,7 +914,7 @@ onMounted(() => { + { : '' " :label=" - modalState.isBatch && modalState.from.tag === '0' + modalState.isBatch ? t('views.neData.udmVolteIMS.startMSISDN') : 'MSISDN' "