fix: UDM-IMS数据批量新增/批量删除命令调整

This commit is contained in:
TsMask
2025-06-24 17:13:18 +08:00
parent 673b8f9ad2
commit 5704ff09c3
2 changed files with 127 additions and 53 deletions

View File

@@ -71,13 +71,16 @@ export function batchAddUDMVolteIMS(data: Record<string, any>, num: number) {
/** /**
* UDMVolteIMS用户删除 * UDMVolteIMS用户删除
* @param data 签约对象 * @param neId 网元ID
* @param imsi_msisdn IMSI/MSISDN
* @param tag 标签 0-voip 1-volte
* @returns object * @returns object
*/ */
export function delUDMVolteIMS(neId: string, imsi: string) { export function delUDMVolteIMS(neId: string, imsi_msisdn: string, tag: string) {
return request({ return request({
url: `/neData/udm/volte-ims/${neId}/${imsi}`, url: `/neData/udm/volte-ims/${neId}/${imsi_msisdn}`,
method: 'DELETE', method: 'DELETE',
params: { volte: tag },
timeout: 180_000, timeout: 180_000,
}); });
} }
@@ -87,12 +90,19 @@ export function delUDMVolteIMS(neId: string, imsi: string) {
* @param neId 网元ID * @param neId 网元ID
* @param imsi IMSI * @param imsi IMSI
* @param num 数量 * @param num 数量
* @param tag 标签 0-voip 1-volte
* @returns object * @returns object
*/ */
export function batchDelUDMVolteIMS(neId: string, imsi: string, num: number) { export function batchDelUDMVolteIMS(
neId: string,
imsi: string,
num: number,
tag: string
) {
return request({ return request({
url: `/neData/udm/volte-ims/${neId}/${imsi}/${num}`, url: `/neData/udm/volte-ims/${neId}/${imsi}/${num}`,
method: 'DELETE', method: 'DELETE',
params: { volte: tag },
timeout: 180_000, timeout: 180_000,
}); });
} }

View File

@@ -94,7 +94,7 @@ type TabeStateType = {
data: object[]; data: object[];
/**勾选记录 */ /**勾选记录 */
selectedRowKeys: (string | number)[]; selectedRowKeys: (string | number)[];
selectedRowIMSIs: (string | number)[]; selectedRowIMSIs: Record<string, any>[];
}; };
/**表格状态 */ /**表格状态 */
@@ -203,7 +203,13 @@ function fnTableSize({ key }: MenuInfo) {
/**表格多选 */ /**表格多选 */
function fnTableSelectedRowKeys(keys: (string | number)[], rows: any[]) { function fnTableSelectedRowKeys(keys: (string | number)[], rows: any[]) {
tableState.selectedRowKeys = keys; 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); result = batchAddUDMVolteIMS(from, from.num);
} }
if (modalState.type === 'delete') { 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 { } else {
if (modalState.type === 'add') { 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; const neID = queryParams.neId;
if (!neID) return; if (!neID) return;
let msg = imsi; let msg = id;
if (imsi === '0') { if (id === '0') {
msg = `${tableState.selectedRowIMSIs[0]}... ${tableState.selectedRowIMSIs.length}`; msg = `${tableState.selectedRowIMSIs[0].imsi}... ${tableState.selectedRowIMSIs.length}`;
imsi = tableState.selectedRowIMSIs.join(',');
} }
Modal.confirm({ Modal.confirm({
@@ -391,17 +401,34 @@ function fnRecordDelete(imsi: string) {
content: t('views.neData.udmVolteIMS.delTip', { num: msg }), content: t('views.neData.udmVolteIMS.delTip', { num: msg }),
onOk() { onOk() {
const hide = message.loading(t('common.loading'), 0); const hide = message.loading(t('common.loading'), 0);
delUDMVolteIMS(neID, imsi) let reqArr: any[] = [];
.then(res => { if (id === '0') {
if (res.code === RESULT_CODE_SUCCESS) { const volteArr = tableState.selectedRowIMSIs
message.success(t('common.operateOk'), 3); .filter(item => item.tag == '1')
fnGetList(); .map(item => `${item.imsi}_${item.msisdn}`)
} else { .join(',');
message.error({ if (volteArr.length > 0) {
content: `${res.msg}`, reqArr.push(delUDMVolteIMS(neID, volteArr, '1'));
duration: 3, }
}); 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(() => { .finally(() => {
hide(); hide();
@@ -887,7 +914,7 @@ onMounted(() => {
<template #title>{{ t('common.deleteText') }}</template> <template #title>{{ t('common.deleteText') }}</template>
<a-button <a-button
type="link" type="link"
@click.prevent="fnRecordDelete(record.imsi)" @click.prevent="fnRecordDelete(record.id)"
> >
<template #icon> <template #icon>
<DeleteOutlined /> <DeleteOutlined />
@@ -946,36 +973,73 @@ onMounted(() => {
> >
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item
v-if="modalState.from.tag === '1'" <template v-if="modalState.from.tag === '1'">
:label=" <a-form-item
modalState.isBatch ? t('views.neData.common.startIMSI') : 'IMSI' :label="
" modalState.isBatch ? t('views.neData.common.startIMSI') : 'IMSI'
name="imsi" "
v-bind="modalStateFrom.validateInfos.imsi" name="imsi"
> v-bind="modalStateFrom.validateInfos.imsi"
<a-input
v-model:value="modalState.from.imsi"
allow-clear
:maxlength="15"
> >
<template #prefix> <a-input
<a-tooltip placement="topLeft"> v-model:value="modalState.from.imsi"
<template #title> allow-clear
{{ t('views.neData.common.imsiTip') }}<br /> :maxlength="15"
{{ t('views.neData.common.imsiTip1') }}<br /> >
{{ t('views.neData.common.imsiTip2') }}<br /> <template #prefix>
{{ t('views.neData.common.imsiTip3') }} <a-tooltip placement="topLeft">
</template> <template #title>
<InfoCircleOutlined style="opacity: 0.45; color: inherit" /> {{ t('views.neData.common.imsiTip') }}<br />
</a-tooltip> {{ t('views.neData.common.imsiTip1') }}<br />
</template> {{ t('views.neData.common.imsiTip2') }}<br />
</a-input> {{ t('views.neData.common.imsiTip3') }}
</a-form-item> </template>
<InfoCircleOutlined style="opacity: 0.45; color: inherit" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
<a-form-item
:extra="
modalState.from.tag == '0'
? t('views.neData.udmVolteIMS.voipTip')
: ''
"
:label="
modalState.isBatch
? t('views.neData.udmVolteIMS.startMSISDN')
: 'MSISDN'
"
name="msisdn"
v-bind="modalStateFrom.validateInfos.msisdn"
>
<a-input
v-model:value="modalState.from.msisdn"
allow-clear
:maxlength="32"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neData.common.msisdn') }}
</template>
<InfoCircleOutlined style="opacity: 0.45; color: inherit" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</template>
<a-form-item <a-form-item
v-else v-if="modalState.from.tag === '0'"
:extra="
modalState.from.tag == '0'
? t('views.neData.udmVolteIMS.voipTip')
: ''
"
:label=" :label="
modalState.isBatch && modalState.from.tag === '0' modalState.isBatch
? t('views.neData.udmVolteIMS.startMSISDN') ? t('views.neData.udmVolteIMS.startMSISDN')
: 'MSISDN' : 'MSISDN'
" "
@@ -1061,7 +1125,7 @@ onMounted(() => {
: '' : ''
" "
:label=" :label="
modalState.isBatch && modalState.from.tag === '0' modalState.isBatch
? t('views.neData.udmVolteIMS.startMSISDN') ? t('views.neData.udmVolteIMS.startMSISDN')
: 'MSISDN' : 'MSISDN'
" "