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

@@ -233,6 +233,7 @@ export default {
noListData:'No network element list data yet', noListData:'No network element list data yet',
}, },
sub: { sub: {
subInfo:' Subscription Info',
neTypePlease: 'Query network element type', neTypePlease: 'Query network element type',
neType: 'UDM Type', neType: 'UDM Type',
export: 'Export', export: 'Export',
@@ -242,7 +243,20 @@ export default {
loadData: 'LoadData', loadData: 'LoadData',
loadDataTip: 'Successfully obtained updated data: {num} items. The system is updating the data internally. Please do not click repeatedly to obtain updates!!!', loadDataTip: 'Successfully obtained updated data: {num} items. The system is updating the data internally. Please do not click repeatedly to obtain updates!!!',
num: 'Number of deletions', num: 'Number of deletions',
batchAddText: 'Batch Add ',
batchDelText: 'Batch Del ',
startIMSI: 'Start IMSI', startIMSI: 'Start IMSI',
msisdnTip:'Parameter maximum length: {msg}',
arfbTip:'Restricted area template. In the restricted area specified by the template, the UE is not allowed to communicate with the network.',
sarTip:'Service area restriction template defines the allowed areas in which the UE can communicate with the network; defines the disallowed areas in which the UE and the network are not allowed to initiate Service Request or SM signaling to obtain user services.',
micoTip:'Signed MICO business flag',
rfspTip:'RFSP index, in NG-RAN, the index of a specific RRM configuration, the parameter is between 0 and 127',
epsFlagTip:'Whether to enable 4G EPS service, 0=disable, 1=enable',
contextIdTip:'To sign up for the APN context ID, you must select it from the APN Context list.',
staticIpTip:'Specify the static IP address used by mobile phone users when surfing the Internet. If it is "-", it means using a dynamic IP address.',
epsOdbTip:"ODB (Operator-Determined Barring) operator-determined blocking, that is, the user's business ability to access the EPS network is determined by the operator. Selected --- the corresponding service is allowed Unselected --- the corresponding service is prohibited",
hplmnOdbTip:"HPLMN-ODB blocking determined by the home operator, that is, the user's service ability to access the EPS network is determined by the user's home operator. Selected --- the corresponding service is allowed Unselected -- the corresponding service is prohibited",
ardTip:'The access control flag (Access-Restriction-Data) can be used to distinguish 2G/3G/LTE users, which facilitates differentiated services for different types of users when 2G/3G/LTE networks coexist.',
}, },
base5G: { base5G: {
neTypePlease: 'Query network element type', neTypePlease: 'Query network element type',

View File

@@ -233,6 +233,7 @@ export default {
noListData:'暂无网元列表数据', noListData:'暂无网元列表数据',
}, },
sub: { sub: {
subInfo:'签约信息',
neTypePlease: '查询网元类型', neTypePlease: '查询网元类型',
neType: 'UDM网元类型', neType: 'UDM网元类型',
export: '导出', export: '导出',
@@ -242,7 +243,20 @@ export default {
loadData: '更新数据', loadData: '更新数据',
loadDataTip: '成功获取更新数据:{num}条,系统内部进行数据更新,请勿重复点击获取更新!!!', loadDataTip: '成功获取更新数据:{num}条,系统内部进行数据更新,请勿重复点击获取更新!!!',
num: '删除个数', num: '删除个数',
batchAddText: '批量新增',
batchDelText: '批量删除',
startIMSI: '起始IMSI', startIMSI: '起始IMSI',
msisdnTip:'参数最大长度{msg}',
arfbTip:'限制区域模板,在模板指定的限制区域中,UE 不允许与网络通信',
sarTip:'服务区域限制模板,定义允许的区域,UE在这些区域中可以和网络通信;定义不允许的区,UE和网络在这些区域中,不允许发起Service Request 或 SM信令来获取用户服务',
micoTip:'签约的MICO业务标志位',
rfspTip:'RFSP 索引,在 NG-RAN中,特定RRM配置的索引,参数介于0到127之间',
epsFlagTip:'是否开启4G EPS 服务,0=不开启,1=开启',
contextIdTip:'签约APN 上下文ID,必须从APN Context list 中选择',
staticIpTip:'指定手机用户上网时使用的静态IP地址,为"-"时表示使用动态IP地址',
epsOdbTip:'ODB(Operator-Determined Barring)运营商决定的闭锁,即用户接入EPS网络的业务能力由运营商决定.选中 ---对应服务被允许 未选 --- 对应服务被禁止',
hplmnOdbTip:'HPLMN-ODB归属运营商决定的闭锁,即用户接入EPS网络的业务能力由用户归宿运营商决定.选中 --- 对应服务被允许 未选 -- 对应服务被禁止',
ardTip:'接入控制标志(Access-Restriction-Data),可用于区分2G/3G/LTE用户,便于为2G/3G/LTE网络共存时,对不同类型用户进行区分服务',
}, },
base5G: { base5G: {
neTypePlease: '查询网元类型', neTypePlease: '查询网元类型',

View File

@@ -970,7 +970,6 @@ onMounted(() => {
v-model:value="modalState.from.imsi" v-model:value="modalState.from.imsi"
:disabled="modalState.from.id != ''" :disabled="modalState.from.id != ''"
allow-clear allow-clear
placeholder="请输入IMSI"
> >
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -986,7 +985,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.from.amf" v-model:value="modalState.from.amf"
allow-clear allow-clear
placeholder="请输入AMF"
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -1000,7 +998,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.from.algoIndex" v-model:value="modalState.from.algoIndex"
allow-clear allow-clear
placeholder="请输入Algo Index"
> >
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -1017,7 +1014,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.from.ki" v-model:value="modalState.from.ki"
allow-clear allow-clear
placeholder="请输入KI"
:disabled="modalState.from.id !== ''" :disabled="modalState.from.id !== ''"
> >
</a-input> </a-input>
@@ -1032,7 +1028,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.from.opc" v-model:value="modalState.from.opc"
allow-clear allow-clear
placeholder="请输入OPC"
:disabled="modalState.from.id !== ''" :disabled="modalState.from.id !== ''"
></a-input> ></a-input>
</a-form-item> </a-form-item>
@@ -1066,7 +1061,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.BatchForm.imsi" v-model:value="modalState.BatchForm.imsi"
allow-clear allow-clear
placeholder="请输入IMSI"
> >
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -1079,7 +1073,6 @@ onMounted(() => {
> >
<a-input-number <a-input-number
v-model:value="modalState.BatchForm.num" v-model:value="modalState.BatchForm.num"
placeholder="请输入放号数"
style="width: 100%" style="width: 100%"
></a-input-number> ></a-input-number>
</a-form-item> </a-form-item>
@@ -1096,7 +1089,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.BatchForm.amf" v-model:value="modalState.BatchForm.amf"
allow-clear allow-clear
placeholder="请输入AMF"
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
@@ -1109,7 +1101,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.BatchForm.algoIndex" v-model:value="modalState.BatchForm.algoIndex"
allow-clear allow-clear
placeholder="请输入Algo Index"
> >
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -1126,7 +1117,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.BatchForm.ki" v-model:value="modalState.BatchForm.ki"
allow-clear allow-clear
placeholder="请输入KI"
> >
</a-input> </a-input>
</a-form-item> </a-form-item>
@@ -1140,7 +1130,6 @@ onMounted(() => {
<a-input <a-input
v-model:value="modalState.BatchForm.opc" v-model:value="modalState.BatchForm.opc"
allow-clear allow-clear
placeholder="请输入OPC"
></a-input> ></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>

View File

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