UDM签约用户国际化

This commit is contained in:
lai
2023-11-08 17:53:58 +08:00
parent 4688634205
commit 7f5fef0c8b
4 changed files with 173 additions and 183 deletions

View File

@@ -250,7 +250,7 @@ let modalState: ModalStateType = reactive({
hplmnOdb: [3, 4],
ard: [1, 7],
epstpl: 'def_eps',
contextId: '1',
contextId: '010200000000',
apnContext: '',
staticIp: '-',
},
@@ -273,7 +273,7 @@ let modalState: ModalStateType = reactive({
hplmnOdb: [3, 4],
ard: [1, 7],
epstpl: 'def_eps',
contextId: '1',
contextId: '010200000000',
apnContext: '',
staticIp: '-',
},
@@ -347,11 +347,13 @@ function PrefixZero(num: any, n: any) {
function fnModalVisibleByBatch(batchFlag?: number) {
if (batchFlag) {
modalStateBatchFrom.resetFields(); //重置表单
modalState.title = '批量添加签约信息';
modalState.title =
t('views.neUser.sub.batchAddText') + t('views.neUser.sub.subInfo');
modalState.visibleByBatch = true;
} else {
modalStateBatchFrom.resetFields(); //重置表单
modalState.title = '批量删除签约信息';
modalState.title =
t('views.neUser.sub.batchDelText') + t('views.neUser.sub.subInfo');
modalState.visibleByBatchDel = true;
}
}
@@ -363,50 +365,54 @@ function fnModalVisibleByBatch(batchFlag?: number) {
function fnModalVisibleByEdit(imsi?: string) {
if (!imsi) {
modalStateFrom.resetFields();
modalState.title = '添加签约信息';
modalState.title = t('common.addText') + t('views.neUser.sub.subInfo');
modalState.visibleByEdit = true;
} else {
if (modalState.confirmLoading) return;
const hide = message.loading(t('common.loading'), 0);
modalState.confirmLoading = true;
const neID = queryParams.neId || '-';
getSub(neID, imsi).then(res => {
modalState.confirmLoading = false;
hide();
if (res.code === RESULT_CODE_SUCCESS) {
let ardAll = parseInt(res.data.ard).toString(2).padStart(8, '0');
let hplAll = parseInt(res.data.hplmnOdb).toString(2).padStart(8, '0');
let odbAll = parseInt(res.data.epsOdb).toString(2).padStart(9, '0');
const ardArray: any[] = [];
const hplmnArray: any[] = [];
const epsOdbArray: any[] = [];
for (let i = 0; i < ardAll.length; i++) {
if (PrefixZero(ardAll, ardAll.length).charAt(i) === '1') {
ardArray.push(i);
getSub(neID, imsi)
.then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
let ardAll = parseInt(res.data.ard).toString(2).padStart(8, '0');
let hplAll = parseInt(res.data.hplmnOdb).toString(2).padStart(8, '0');
let odbAll = parseInt(res.data.epsOdb).toString(2).padStart(9, '0');
const ardArray: any[] = [];
const hplmnArray: any[] = [];
const epsOdbArray: any[] = [];
for (let i = 0; i < ardAll.length; i++) {
if (PrefixZero(ardAll, ardAll.length).charAt(i) === '1') {
ardArray.push(i);
}
}
}
for (let i = 0; i < hplAll.length; i++) {
if (PrefixZero(hplAll, hplAll.length).charAt(i) === '1') {
hplmnArray.push(i);
for (let i = 0; i < hplAll.length; i++) {
if (PrefixZero(hplAll, hplAll.length).charAt(i) === '1') {
hplmnArray.push(i);
}
}
}
for (let i = 0; i < odbAll.length; i++) {
if (PrefixZero(odbAll, odbAll.length).charAt(i) === '1') {
epsOdbArray.push(i);
for (let i = 0; i < odbAll.length; i++) {
if (PrefixZero(odbAll, odbAll.length).charAt(i) === '1') {
epsOdbArray.push(i);
}
}
}
res.data.ard = ardArray;
res.data.hplmnOdb = hplmnArray;
res.data.epsOdb = epsOdbArray;
res.data.ard = ardArray;
res.data.hplmnOdb = hplmnArray;
res.data.epsOdb = epsOdbArray;
modalState.from = Object.assign(modalState.from, res.data);
modalState.title = '修改签约信息';
modalState.visibleByEdit = true;
} else {
message.error(`获取签约信息失败`, 2);
}
});
modalState.from = Object.assign(modalState.from, res.data);
modalState.title =
t('common.editText') + t('views.neUser.sub.subInfo');
modalState.visibleByEdit = true;
} else {
message.error(t('common.getInfoFail'), 2);
}
})
.finally(() => {
hide();
modalState.confirmLoading = false;
});
}
}
@@ -414,9 +420,16 @@ function fnModalVisibleByEdit(imsi?: string) {
const modalStateFrom = Form.useForm(
modalState.from,
reactive({
imsi: [{ required: true, message: 'IMSI不能为空' }],
staticIp: [{ required: true, message: '静态IP不能为空' }],
smData: [{ required: true, message: 'Subscribed SM Data不能为空' }],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
staticIp: [
{ required: true, message: 'static ip' + t('common.unableNull') },
],
smData: [
{
required: true,
message: 'Subscribed SM Data' + t('common.unableNull'),
},
],
})
);
@@ -489,11 +502,23 @@ function fnModalOk() {
const modalStateBatchFrom = Form.useForm(
modalState.BatchForm,
reactive({
num: [{ required: true, message: '放号数不能为空' }],
imsi: [{ required: true, message: 'IMSI不能为空' }],
msisdn: [{ required: true, message: 'MSISDN不能为空' }],
staticIp: [{ required: true, message: '静态IP不能为空' }],
smData: [{ required: true, message: 'Subscribed SM Data不能为空' }],
num: [
{
required: true,
message: t('views.neUser.sub.num') + t('common.unableNull'),
},
],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
msisdn: [{ required: true, message: 'MSISDN' + t('common.unableNull') }],
staticIp: [
{ required: true, message: 'static ip' + t('common.unableNull') },
],
smData: [
{
required: true,
message: 'Subscribed SM Data' + t('common.unableNull'),
},
],
})
);
@@ -567,8 +592,13 @@ function fnBatchModalOk() {
const modalStateBatchDelFrom = Form.useForm(
modalState.BatchDelForm,
reactive({
num: [{ required: true, message: '放号数不能为空' }],
imsi: [{ required: true, message: 'IMSI不能为空' }],
num: [
{
required: true,
message: t('views.neUser.sub.num') + t('common.unableNull'),
},
],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
})
);
@@ -654,14 +684,14 @@ function fnRecordDelete(imsi: string) {
if (!neID) return;
Modal.confirm({
title: t('common.tipTitle'),
content: `确认删除IMSI编号为: ${imsi} 的签约用户嘛?`,
content: t('views.neUser.auth.delSure', { imsi: imsi }),
onOk() {
const key = 'delSub';
message.loading({ content: t('common.loading'), key });
delSub(neID, imsi).then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
message.success({
content: `删除成功`,
content: t('common.msgSuccess', { msg: t('common.deleteText') }),
key,
duration: 2,
});
@@ -690,7 +720,7 @@ function fnExportList(type: string) {
}).then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
message.success({
content: `已完成导出`,
content: t('common.msgSuccess', { msg: t('common.export') }),
key,
duration: 2,
});
@@ -728,7 +758,7 @@ function fnLoadData() {
}, 3000);
} else {
message.error({
content: `获取数据失败`,
content: t('common.getInfoFail'),
duration: 3,
});
}
@@ -766,7 +796,7 @@ type ModalUploadImportStateType = {
/**对话框表格信息导入对象信息状态 */
let uploadImportState: ModalUploadImportStateType = reactive({
visible: false,
title: '数据导入',
title: t('components.UploadModal.uploadTitle'),
loading: false,
msg: '',
});
@@ -790,16 +820,16 @@ function fnModalUploadImportUpload(file: File) {
formData.append('file', file);
const neID = queryParams.neId;
if (!neID) {
return Promise.reject('未知网元');
return Promise.reject('Unknown network element');
}
const hide = message.loading('正在上传...', 0);
const hide = message.loading(t('common.loading'), 0);
uploadImportState.loading = true;
importSubData(neID, formData)
.then(res => {
uploadImportState.msg = res.msg;
})
.catch((err: { code: number; msg: string }) => {
message.error(`上传失败 ${err.msg}`);
message.error(` ${err.msg}`);
})
.finally(() => {
hide();
@@ -827,7 +857,7 @@ onMounted(() => {
}
} else {
message.warning({
content: `暂无网元列表数据`,
content: t('views.neUser.auth.noListData'),
duration: 2,
});
}
@@ -861,20 +891,12 @@ onMounted(() => {
</a-col>
<a-col :lg="6" :md="12" :xs="24">
<a-form-item label="IMSI" name="imsi">
<a-input
v-model:value="queryParams.imsi"
allow-clear
placeholder="查询IMSI"
></a-input>
<a-input v-model:value="queryParams.imsi" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :lg="6" :md="12" :xs="24">
<a-form-item label="MSISDN" name="msisdn">
<a-input
v-model:value="queryParams.msisdn"
allow-clear
placeholder="查询MSISDN"
></a-input>
<a-input v-model:value="queryParams.msisdn" allow-clear></a-input>
</a-form-item>
</a-col>
<a-col :lg="6" :md="12" :xs="24">
@@ -1089,17 +1111,11 @@ onMounted(() => {
name="imsi"
v-bind="modalStateFrom.validateInfos.imsi"
>
<a-input
v-model:value="modalState.from.imsi"
allow-clear
placeholder="请输入IMSI"
>
<a-input v-model:value="modalState.from.imsi" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
SUPI=MCC+MNC+MSIN MCC=移动国家号码, 由三位数字组成
MNC=移动网络号由两位数字组成
MSIN=移动客户识别码,采用等长10位数字构成
{{ t('views.neUser.auth.imsiTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1113,14 +1129,12 @@ onMounted(() => {
name="msisdn"
v-bind="modalStateFrom.validateInfos.msisdn"
>
<a-input
v-model:value="modalState.from.msisdn"
allow-clear
placeholder="请输入msisdn"
>
<a-input v-model:value="modalState.from.msisdn" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度32 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '32' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1163,7 +1177,9 @@ onMounted(() => {
<a-input v-model:value="modalState.from.smfSel" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度为16 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1176,7 +1192,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
限制区域模板,在模板指定的限制区域中,UE 不允许与网络通信
{{ t('views.neUser.sub.arfbTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1196,10 +1212,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
服务区域限制模板,定义允许的区域,UE
在这些区域中可以和网络通信;定义不允许的区,UE
和网络在这些区域中,不允许发起Service Request SM
信令来获取用户服务
{{ t('views.neUser.sub.sarTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1209,7 +1222,7 @@ onMounted(() => {
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G MICO mode" name="mico">
<a-tooltip title="签约的MICO业务标志位">
<a-tooltip :title="t('views.neUser.sub.micoTip')">
<a-select value="1">
<a-select-option value="1">Enable</a-select-option>
<a-select-option value="0">Disable</a-select-option>
@@ -1226,7 +1239,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
RFSP 索引, NG-RAN中,特定RRM配置的索引,参数介于0到127之间
{{ t('views.neUser.sub.rfspTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1253,7 +1266,9 @@ onMounted(() => {
<a-input v-model:value="modalState.from.smData" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度为128 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '128' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1263,7 +1278,7 @@ onMounted(() => {
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G EPS flag" name="epsFlag">
<a-tooltip title="是否开启4G EPS 服务,0=不开启,1=开启">
<a-tooltip :title="t('views.neUser.sub.epsFlagTip')">
<a-select v-model:value="modalState.from.epsFlag">
<a-select-option value="1">Enable</a-select-option>
<a-select-option value="0">Disable</a-select-option>
@@ -1278,7 +1293,9 @@ onMounted(() => {
<a-input v-model:value="modalState.from.smData" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度为128 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '128' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1288,7 +1305,7 @@ onMounted(() => {
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G EPS flag" name="epsFlag">
<a-tooltip title="是否开启4G EPS 服务,0=不开启,1=开启">
<a-tooltip :title="t('views.neUser.sub.epsFlagTip')">
<a-select v-model:value="modalState.from.epsFlag">
<a-select-option value="1">Enable</a-select-option>
<a-select-option value="0">Disable</a-select-option>
@@ -1305,12 +1322,10 @@ onMounted(() => {
name="epstpl"
v-bind="modalStateFrom.validateInfos.epstpl"
>
<a-tooltip title="参数最大长度为16">
<a-input
v-model:value="modalState.from.epstpl"
allow-clear
placeholder="请输入4G EPS User Template Name"
>
<a-tooltip
:title="t('views.neUser.sub.msisdnTip', { msg: '16' })"
>
<a-input v-model:value="modalState.from.epstpl" allow-clear>
</a-input>
</a-tooltip>
</a-form-item>
@@ -1321,12 +1336,8 @@ onMounted(() => {
name="contextId"
v-bind="modalStateFrom.validateInfos.contextId"
>
<a-tooltip title="签约APN 上下文ID,必须从APN Context list 中选择">
<a-input
v-model:value="modalState.from.contextId"
allow-clear
placeholder="请输入4G Context ID"
>
<a-tooltip :title="t('views.neUser.sub.contextIdTip')">
<a-input v-model:value="modalState.from.contextId" allow-clear>
</a-input>
</a-tooltip>
</a-form-item>
@@ -1340,15 +1351,11 @@ onMounted(() => {
v-bind="modalStateFrom.validateInfos.staticIp"
name="staticIp"
>
<a-input
v-model:value="modalState.from.staticIp"
allow-clear
placeholder="静态IP地址"
>
<a-input v-model:value="modalState.from.staticIp" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
指定手机用户上网时使用的静态IP地址,"-"时表示使用动态IP地址
{{ t('views.neUser.sub.staticIpTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1363,9 +1370,7 @@ onMounted(() => {
name="epsOdb"
v-bind="modalStateFrom.validateInfos.epsOdb"
>
<a-tooltip
title="ODB(Operator-Determined Barring)运营商决定的闭锁,即用户接入EPS网络的业务能力由运营商决定.选中 ---对应服务被允许 未选 --- 对应服务被禁止"
>
<a-tooltip :title="t('views.neUser.sub.epsOdbTip')">
<a-select
v-model:value="modalState.from.epsOdb"
mode="multiple"
@@ -1379,15 +1384,11 @@ onMounted(() => {
</a-form-item>
<a-form-item label="4G HPLMN odb" name="hplmnOdb">
<a-tooltip
title="HPLMN-ODB
归属运营商决定的闭锁,即用户接入EPS网络的业务能力由用户归宿运营商决定.选中 --- 对应服务被允许 未选 -- 对应服务被禁止"
>
<a-tooltip :title="t('views.neUser.sub.hplmnOdbTip')">
<a-select
v-model:value="modalState.from.hplmnOdb"
mode="multiple"
style="width: 100%"
placeholder="Please select"
:options="modalStateFromOption.hplmnOdb"
@change=""
>
@@ -1396,25 +1397,14 @@ onMounted(() => {
</a-form-item>
<a-form-item label="4G Access Restriction Data" name="ard">
<a-tooltip
title="接入控制标志(Access-Restriction-Data),可用于区分2G/3G/LTE用户,便于为2G/3G/LTE网络共存时,对不同类型用户进行区分服务"
>
<a-tooltip :title="t('views.neUser.sub.ardTip')">
<a-select
v-model:value="modalState.from.ard"
mode="multiple"
style="width: 100%"
placeholder="Please select"
:options="modalStateFromOption.ardJson"
@change=""
>
<template #suffixIcon>
<a-tooltip placement="topLeft">
<template #title>
指定手机用户上网时使用的静态IP地址,"-"时表示使用动态IP地址
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-select>
</a-tooltip>
</a-form-item>
@@ -1448,7 +1438,6 @@ onMounted(() => {
>
<a-input-number
v-model:value="modalState.BatchForm.num"
placeholder="请输入放号数"
style="width: 100%"
></a-input-number>
</a-form-item>
@@ -1461,17 +1450,11 @@ onMounted(() => {
name="imsi"
v-bind="modalStateBatchFrom.validateInfos.imsi"
>
<a-input
v-model:value="modalState.BatchForm.imsi"
allow-clear
placeholder="请输入IMSI"
>
<a-input v-model:value="modalState.BatchForm.imsi" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
SUPI=MCC+MNC+MSIN MCC=移动国家号码, 由三位数字组成
MNC=移动网络号由两位数字组成
MSIN=移动客户识别码,采用等长10位数字构成
{{ t('views.neUser.auth.imsiTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1485,14 +1468,12 @@ onMounted(() => {
name="msisdn"
v-bind="modalStateBatchFrom.validateInfos.msisdn"
>
<a-input
v-model:value="modalState.BatchForm.msisdn"
allow-clear
placeholder="请输入msisdn"
>
<a-input v-model:value="modalState.BatchForm.msisdn" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度32 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '32' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1531,7 +1512,9 @@ onMounted(() => {
<a-input v-model:value="modalState.BatchForm.smfSel" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度为16 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1545,7 +1528,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
限制区域模板,在模板指定的限制区域中,UE 不允许与网络通信
{{ t('views.neUser.sub.arfbTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1565,10 +1548,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
服务区域限制模板,定义允许的区域,UE
在这些区域中可以和网络通信;定义不允许的区,UE
和网络在这些区域中,不允许发起Service Request SM
信令来获取用户服务
{{ t('views.neUser.sub.sarTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1582,7 +1562,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
RFSP 索引, NG-RAN中,特定RRM配置的索引,参数介于0到127之间
{{ t('views.neUser.sub.rfspTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1595,7 +1575,7 @@ onMounted(() => {
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G MICO mode" name="mico">
<a-tooltip title="签约的MICO业务标志位">
<a-tooltip :title="t('views.neUser.sub.micoTip')">
<a-select value="1">
<a-select-option value="1">Enable</a-select-option>
<a-select-option value="0">Disable</a-select-option>
@@ -1622,7 +1602,9 @@ onMounted(() => {
<a-input v-model:value="modalState.BatchForm.smData" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title> 参数最大长度为128 </template>
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '128' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
@@ -1632,7 +1614,7 @@ onMounted(() => {
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G EPS flag" name="epsFlag">
<a-tooltip title="是否开启4G EPS 服务,0=不开启,1=开启">
<a-tooltip :title="t('views.neUser.sub.epsFlagTip')">
<a-select v-model:value="modalState.BatchForm.epsFlag">
<a-select-option value="1">Enable</a-select-option>
<a-select-option value="0">Disable</a-select-option>
@@ -1645,11 +1627,10 @@ onMounted(() => {
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G EPS User Template Name" name="epstpl">
<a-tooltip title="参数最大长度为16">
<a-tooltip :title="t('views.neUser.sub.msisdnTip', { msg: '16' })">
<a-input
v-model:value="modalState.BatchForm.epstpl"
allow-clear
placeholder="请输入4G EPS User Template Name"
>
</a-input>
</a-tooltip>
@@ -1657,11 +1638,10 @@ onMounted(() => {
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G Context ID" name="contextId">
<a-tooltip title="签约APN 上下文ID,必须从APN Context list 中选择">
<a-tooltip :title="t('views.neUser.sub.contextIdTip')">
<a-input
v-model:value="modalState.BatchForm.contextId"
allow-clear
placeholder="请输入4G Context ID"
>
</a-input>
</a-tooltip>
@@ -1678,12 +1658,11 @@ onMounted(() => {
<a-input
v-model:value="modalState.BatchForm.staticIp"
allow-clear
placeholder="静态IP地址"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
指定手机用户上网时使用的静态IP地址,"-"时表示使用动态IP地址
{{ t('views.neUser.sub.staticIpTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1695,13 +1674,12 @@ onMounted(() => {
<a-form-item label="4G EPS ODB" name="epsOdb">
<a-tooltip
title="ODB(Operator-Determined Barring)运营商决定的闭锁,即用户接入EPS网络的业务能力由运营商决定.选中 ---对应服务被允许 未选 --- 对应服务被禁止"
:title="t('views.neUser.sub.epsOdbTip')"
>
<a-select
v-model:value="modalState.BatchForm.epsOdb"
mode="multiple"
style="width: 100%"
placeholder="Please select"
:options="modalStateFromOption.odbJson"
@change=""
>
@@ -1711,14 +1689,13 @@ onMounted(() => {
<a-form-item label="4G HPLMN odb" name="hplmnOdb">
<a-tooltip
title="HPLMN-ODB
归属运营商决定的闭锁,即用户接入EPS网络的业务能力由用户归宿运营商决定.选中 --- 对应服务被允许 未选 -- 对应服务被禁止"
:title="t('views.neUser.sub.hplmnOdbTip')"
>
<a-select
v-model:value="modalState.BatchForm.hplmnOdb"
mode="multiple"
style="width: 100%"
placeholder="Please select"
:options="modalStateFromOption.hplmnOdb"
@change=""
>
@@ -1728,13 +1705,12 @@ onMounted(() => {
<a-form-item label="4G Access Restriction Data" name="ard">
<a-tooltip
title="接入控制标志(Access-Restriction-Data),可用于区分2G/3G/LTE用户,便于为2G/3G/LTE网络共存时,对不同类型用户进行区分服务"
:title="t('views.neUser.sub.ardTip')"
>
<a-select
v-model:value="modalState.BatchForm.ard"
mode="multiple"
style="width: 100%"
placeholder="Please select"
:options="modalStateFromOption.ardJson"
@change=""
>
@@ -1776,9 +1752,7 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
SUPI=MCC+MNC+MSIN MCC=移动国家号码, 由三位数字组成
MNC=移动网络号由两位数字组成
MSIN=移动客户识别码,采用等长10位数字构成
{{ t('views.neUser.auth.imsiTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1794,7 +1768,6 @@ onMounted(() => {
>
<a-input-number
v-model:value="modalState.BatchDelForm.num"
placeholder="请输入删号个数"
style="width: 100%"
></a-input-number>
</a-form-item>