feat: UDM用户数据代码完善

This commit is contained in:
TsMask
2023-11-23 21:49:57 +08:00
parent 5101b1bae3
commit 10a48af368
4 changed files with 700 additions and 357 deletions

View File

@@ -112,7 +112,7 @@ let tableColumns: ColumnsType = [
// width: 10,
// },
{
title: 'ALGO Index',
title: 'Algo Index',
dataIndex: 'algoIndex',
align: 'center',
width: 4,
@@ -122,7 +122,7 @@ let tableColumns: ColumnsType = [
key: 'imsi',
align: 'center',
fixed: 'right',
width: 5,
width: 2,
},
];
@@ -173,8 +173,6 @@ function fnTableChange(pagination: any, filters: any, sorter: any, extra: any) {
/**对话框对象信息状态类型 */
type ModalStateType = {
/**详情框是否显示 */
visibleByView: boolean;
/**新增框或修改框是否显示 */
visibleByEdit: boolean;
/**批量新增新增框是否显示 */
@@ -197,7 +195,6 @@ type ModalStateType = {
/**对话框对象信息状态 */
let modalState: ModalStateType = reactive({
visibleByView: false,
visibleByEdit: false,
visibleByBatch: false,
visibleByBatchDel: false,
@@ -207,19 +204,19 @@ let modalState: ModalStateType = reactive({
imsi: '',
amf: '8000',
ki: '',
algoIndex: '0',
algoIndex: 0,
opc: '',
},
BatchForm: {
num: '',
num: 1,
imsi: '',
amf: '',
amf: '8000',
ki: '',
algoIndex: '',
algoIndex: 0,
opc: '',
},
BatchDelForm: {
num: '',
num: 1,
imsi: '',
},
confirmLoading: false,
@@ -246,7 +243,7 @@ const modalStateBatchFrom = Form.useForm(
num: [
{
required: true,
message: t('views.neUser.auth.num') + t('common.unableNull'),
message: t('views.neUser.auth.numAdd') + t('common.unableNull'),
},
],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
@@ -265,39 +262,13 @@ const modalStateBatchDelFrom = Form.useForm(
num: [
{
required: true,
message: t('views.neUser.auth.delNum') + t('common.unableNull'),
message: t('views.neUser.auth.numDel') + t('common.unableNull'),
},
],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
})
);
/**
* 对话框弹出显示为 详情框
* @param imsi 网元id, 不传为新增
*/
function fnModalVisibleByVive(imsi: string) {
if (modalState.confirmLoading) return;
const hide = message.loading('Waiting...', 0);
modalState.confirmLoading = true;
const neID = queryParams.neId || '-';
getAuth(neID, imsi)
.then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
modalState.from = Object.assign(modalState.from, res.data);
modalState.title =
t('common.viewText') + t('views.neUser.auth.authInfo');
modalState.visibleByView = true;
} else {
message.error(t('common.getInfoFail'), 2);
}
})
.finally(() => {
hide();
modalState.confirmLoading = false;
});
}
/**
* 对话框弹出显示为 新增或者修改
* @param noticeId 网元id, 不传为新增
@@ -312,7 +283,7 @@ function fnModalVisibleByEdit(row?: Record<string, any>) {
const hide = message.loading(t('common.loading'), 0);
modalState.confirmLoading = true;
const neID = queryParams.neId || '-';
getAuth(neID, row?.imsi)
getAuth(neID, row.imsi)
.then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
modalState.from = Object.assign(modalState.from, res.data);
@@ -353,14 +324,13 @@ function fnModalVisibleByBatch(batchFlag?: number) {
* 进行表达规则校验
*/
function fnModalOk() {
const neID = queryParams.neId;
if (!neID) return;
modalStateFrom
.validate()
.then(e => {
modalState.confirmLoading = true;
const from = toRaw(modalState.from);
from.neId = neID;
from.neId = queryParams.neId || '-';
from.algoIndex = `${from.algoIndex}`;
const result = from.id ? updateAuth(from) : addAuth(from);
const hide = message.loading({ content: t('common.loading') });
result
@@ -400,9 +370,8 @@ function fnBatchModalOk() {
.then(e => {
modalState.confirmLoading = true;
const from = toRaw(modalState.BatchForm);
const neID = queryParams.neId || '-';
// const result = from.id ? updateAuth(from) : addAuth(neID, from);
from.neID = neID;
from.neID = queryParams.neId || '-';
from.algoIndex = `${from.algoIndex}`;
const result = batchAuth(from);
const hide = message.loading({ content: t('common.loading') });
result
@@ -481,7 +450,6 @@ function fnBatchDelModalOk() {
*/
function fnBatchModalCancel() {
modalState.visibleByBatch = false;
modalState.visibleByView = false;
modalStateBatchFrom.resetFields();
}
@@ -491,7 +459,6 @@ function fnBatchModalCancel() {
*/
function fnBatchDelModalCancel() {
modalState.visibleByBatchDel = false;
modalState.visibleByView = false;
modalStateBatchDelFrom.resetFields();
}
@@ -501,7 +468,6 @@ function fnBatchDelModalCancel() {
*/
function fnModalCancel() {
modalState.visibleByEdit = false;
modalState.visibleByView = false;
modalStateFrom.resetFields();
}
@@ -579,12 +545,12 @@ function fnLoadData() {
description: t('views.neUser.auth.loadDataTip', { num: res.data }),
duration: 10,
});
// 延迟3s后关闭loading刷新列表
// 延迟5s后关闭loading刷新列表
setTimeout(() => {
modalState.loadDataLoading = false;
tableState.loading = false; // 表格loading
fnQueryReset();
}, 3000);
}, 5000);
} else {
message.error({
content: t('common.getInfoFail'),
@@ -687,7 +653,7 @@ onMounted(() => {
}
} else {
message.warning({
content: t('views.neUser.auth.noListData'),
content: t('common.noData'),
duration: 2,
});
}
@@ -877,17 +843,6 @@ onMounted(() => {
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'imsi'">
<a-space :size="8" align="center">
<a-tooltip>
<template #title>{{ t('common.viewText') }}</template>
<a-button
type="link"
@click.prevent="fnModalVisibleByVive(record.imsi)"
>
<template #icon>
<ProfileOutlined />
</template>
</a-button>
</a-tooltip>
<a-tooltip>
<template #title>{{ t('common.editText') }}</template>
<a-button
@@ -913,53 +868,6 @@ onMounted(() => {
</a-table>
</a-card>
<!-- 详情框 -->
<a-modal
width="800px"
:visible="modalState.visibleByView"
:title="modalState.title"
@cancel="fnModalCancel"
>
<a-form layout="horizontal">
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="IMSI" name="imsi">
{{ modalState.from.imsi }}
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="AMF" name="amf">
{{ modalState.from.amf }}
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="ALGO Index" name="algo">
{{ modalState.from.algoIndex }}
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="KI" name="ki">
{{ modalState.from.ki }}
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="OPC" name="opc">
{{ modalState.from.opc }}
</a-form-item>
</a-col>
</a-row>
</a-form>
<template #footer>
<a-button key="cancel" @click="fnModalCancel">{{
t('common.close')
}}</a-button>
</template>
</a-modal>
<!-- 新增框或修改框 -->
<a-modal
width="800px"
@@ -971,7 +879,12 @@ onMounted(() => {
@ok="fnModalOk"
@cancel="fnModalCancel"
>
<a-form name="modalStateFrom" layout="horizontal">
<a-form
name="modalStateFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:labelWrap="true"
>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
@@ -979,11 +892,18 @@ onMounted(() => {
name="imsi"
v-bind="modalStateFrom.validateInfos.imsi"
>
<a-input
v-model:value="modalState.from.imsi"
:disabled="modalState.from.id != ''"
allow-clear
>
<a-input v-model:value="modalState.from.imsi" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.imsiTip') }}<br />
{{ t('views.neUser.auth.imsiTip1') }}<br />
{{ t('views.neUser.auth.imsiTip2') }}<br />
{{ t('views.neUser.auth.imsiTip3') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -996,6 +916,7 @@ onMounted(() => {
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
@@ -1006,18 +927,41 @@ onMounted(() => {
<a-input
v-model:value="modalState.from.amf"
allow-clear
></a-input>
:maxlength="4"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.amfTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="ALGO Index"
label="Algo Index"
name="algo"
v-bind="modalStateFrom.validateInfos.algoIndex"
>
<a-input v-model:value="modalState.from.algoIndex" allow-clear>
</a-input>
<a-input-number
v-model:value="modalState.from.algoIndex"
style="width: 100%"
:min="0"
:max="15"
placeholder="0 ~ 15"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.algoIndexTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input-number>
</a-form-item>
</a-col>
</a-row>
@@ -1032,8 +976,16 @@ onMounted(() => {
<a-input
v-model:value="modalState.from.ki"
allow-clear
:disabled="modalState.from.id !== ''"
:maxlength="32"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.kiTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1046,8 +998,17 @@ onMounted(() => {
<a-input
v-model:value="modalState.from.opc"
allow-clear
:disabled="modalState.from.id !== ''"
></a-input>
:maxlength="32"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.opcTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
</a-row>
@@ -1065,17 +1026,25 @@ onMounted(() => {
@ok="fnBatchModalOk"
@cancel="fnBatchModalCancel"
>
<a-form name="modalStateBatchFrom" layout="horizontal">
<a-form
name="modalStateBatchFrom"
layout="horizontal"
:label-col="{ span: 6 }"
:labelWrap="true"
>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
:label="t('views.neUser.auth.num')"
:label="t('views.neUser.auth.numAdd')"
name="num"
v-bind="modalStateBatchFrom.validateInfos.num"
>
<a-input-number
v-model:value="modalState.BatchForm.num"
style="width: 100%"
:min="1"
:max="100"
placeholder="<=100"
></a-input-number>
</a-form-item>
</a-col>
@@ -1089,6 +1058,17 @@ onMounted(() => {
v-bind="modalStateBatchFrom.validateInfos.imsi"
>
<a-input v-model:value="modalState.BatchForm.imsi" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.imsiTip') }}<br />
{{ t('views.neUser.auth.imsiTip1') }}<br />
{{ t('views.neUser.auth.imsiTip2') }}<br />
{{ t('views.neUser.auth.imsiTip3') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1112,20 +1092,41 @@ onMounted(() => {
<a-input
v-model:value="modalState.BatchForm.amf"
allow-clear
></a-input>
:maxlength="4"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.amfTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="ALGO Index"
label="Algo Index"
name="algo"
v-bind="modalStateBatchFrom.validateInfos.algoIndex"
>
<a-input
<a-input-number
v-model:value="modalState.BatchForm.algoIndex"
allow-clear
style="width: 100%"
:min="0"
:max="15"
placeholder="0 ~ 15"
>
</a-input>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.algoIndexTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input-number>
</a-form-item>
</a-col>
</a-row>
@@ -1137,7 +1138,19 @@ onMounted(() => {
name="ki"
v-bind="modalStateBatchFrom.validateInfos.ki"
>
<a-input v-model:value="modalState.BatchForm.ki" allow-clear>
<a-input
v-model:value="modalState.BatchForm.ki"
allow-clear
:maxlength="32"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.kiTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1150,7 +1163,17 @@ onMounted(() => {
<a-input
v-model:value="modalState.BatchForm.opc"
allow-clear
></a-input>
:maxlength="32"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.opcTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
</a-row>
@@ -1168,16 +1191,11 @@ onMounted(() => {
@ok="fnBatchDelModalOk"
@cancel="fnBatchDelModalCancel"
>
<a-form
name="modalStateBatchDelFrom"
layout="horizontal"
:label-col="{ span: 7.5 }"
:labelWrap="true"
>
<a-form name="modalStateBatchDelFrom" layout="horizontal">
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
:label="t('views.neUser.sub.startIMSI')"
:label="t('views.neUser.auth.startIMSI')"
name="imsi"
v-bind="modalStateBatchDelFrom.validateInfos.imsi"
>
@@ -1185,7 +1203,10 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.imsiTip') }}
{{ t('views.neUser.auth.imsiTip') }}<br />
{{ t('views.neUser.auth.imsiTip1') }}<br />
{{ t('views.neUser.auth.imsiTip2') }}<br />
{{ t('views.neUser.auth.imsiTip3') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1195,13 +1216,16 @@ onMounted(() => {
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
:label="t('views.neUser.sub.num')"
:label="t('views.neUser.auth.numDel')"
name="num"
v-bind="modalStateBatchDelFrom.validateInfos.num"
>
<a-input-number
v-model:value="modalState.BatchDelForm.num"
style="width: 100%"
:min="1"
:max="100"
placeholder="<=100"
></a-input-number>
</a-form-item>
</a-col>

View File

@@ -151,7 +151,7 @@ let tableColumns: ColumnsType = [
key: 'imsi',
align: 'center',
fixed: 'right',
width: 5,
width: 2,
},
];
@@ -240,7 +240,7 @@ let modalState: ModalStateType = reactive({
rat: '0',
arfb: 'def_arfb',
sar: 'def_sar',
cn: '',
cn: '3',
smData: '',
smfSel: 'def_snssai',
epsDat: '',
@@ -251,8 +251,10 @@ let modalState: ModalStateType = reactive({
ard: [1, 7],
epstpl: 'def_eps',
contextId: '1',
apnContext: '',
apnContext: [1, 2, 0, 0, 0, 0],
staticIp: '-',
rfsp: 1,
ueType: 1,
},
BatchForm: {
num: '',
@@ -263,7 +265,7 @@ let modalState: ModalStateType = reactive({
rat: '0',
arfb: 'def_arfb',
sar: 'def_sar',
cn: '',
cn: '3',
smData: '',
smfSel: 'def_snssai',
epsDat: '',
@@ -274,8 +276,10 @@ let modalState: ModalStateType = reactive({
ard: [1, 7],
epstpl: 'def_eps',
contextId: '1',
apnContext: '',
apnContext: [1, 2, 0, 0, 0, 0],
staticIp: '-',
rfsp: 1,
ueType: 1,
},
BatchDelForm: {
num: '',
@@ -401,7 +405,18 @@ function fnModalVisibleByEdit(imsi?: string) {
res.data.hplmnOdb = hplmnArray;
res.data.epsOdb = epsOdbArray;
modalState.from = Object.assign(modalState.from, res.data);
// 4G APN Context List
const apnContextStr = res.data.apnContext;
const apnContextArr = [];
for (let i = 0; i < apnContextStr.length; i += 2) {
const num = Number(`${apnContextStr[i]}${apnContextStr[i + 1]}`);
apnContextArr.push(num);
}
modalState.from = Object.assign(modalState.from, res.data, {
apnContext: apnContextArr,
});
modalState.title =
t('common.editText') + t('views.neUser.sub.subInfo');
modalState.visibleByEdit = true;
@@ -468,7 +483,12 @@ function fnModalOk() {
from.epsOdb = '' + parseInt(odbArr.join(''), 2);
from.hplmnOdb = '' + parseInt(hplmnArr.join(''), 2);
from.ard = '' + parseInt(ardArr.join(''), 2);
from.cn = '3';
// 4G APN Context List
from.apnContext = from.apnContext
.map((item: number) => `${item}`.padStart(2, '0'))
.join('');
const neID = queryParams.neId || '-';
const result = from.id ? updateSub(neID, from) : addSub(neID, from);
const hide = message.loading({ content: t('common.loading') });
@@ -505,7 +525,7 @@ const modalStateBatchFrom = Form.useForm(
num: [
{
required: true,
message: t('views.neUser.sub.num') + t('common.unableNull'),
message: t('views.neUser.sub.numAdd') + t('common.unableNull'),
},
],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
@@ -552,13 +572,16 @@ function fnBatchModalOk() {
from.epsOdb = '' + parseInt(odbArr.join(''), 2);
from.hplmnOdb = '' + parseInt(hplmnArr.join(''), 2);
from.ard = '' + parseInt(ardArr.join(''), 2);
from.cn = '3';
// 4G APN Context List
from.apnContext = from.apnContext
.map((item: number) => `${item}`.padStart(2, '0'))
.join('');
const neID = queryParams.neId || '-';
// const result = from.id ? updateAuth(from) : addAuth(neID, from);
from.neID = neID;
const result = batchAddSub(from);
const hide = message.loading({ content: t('common.loading') });
result
batchAddSub(from)
.then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
message.success({
@@ -591,7 +614,7 @@ const modalStateBatchDelFrom = Form.useForm(
num: [
{
required: true,
message: t('views.neUser.sub.num') + t('common.unableNull'),
message: t('views.neUser.sub.numDel') + t('common.unableNull'),
},
],
imsi: [{ required: true, message: 'IMSI' + t('common.unableNull') }],
@@ -608,13 +631,9 @@ function fnBatchDelModalOk() {
.then(e => {
modalState.confirmLoading = true;
const from = toRaw(modalState.BatchDelForm);
const neID = queryParams.neId || '-';
// const result = from.id ? updateAuth(from) : addAuth(neID, from);
from.neID = neID;
const result = batchDelSub(from);
from.neID = queryParams.neId || '-';
const hide = message.loading({ content: t('common.loading') });
result
batchDelSub(from)
.then(res => {
if (res.code === RESULT_CODE_SUCCESS) {
message.success({
@@ -746,12 +765,12 @@ function fnLoadData() {
description: t('views.neUser.sub.loadDataTip', { num: res.data }),
duration: 10,
});
// 延迟3s后关闭loading刷新列表
// 延迟5s后关闭loading刷新列表
setTimeout(() => {
modalState.loadDataLoading = false;
tableState.loading = false; // 表格loading
fnQueryReset();
}, 3000);
}, 5000);
} else {
message.error({
content: t('common.getInfoFail'),
@@ -854,7 +873,7 @@ onMounted(() => {
}
} else {
message.warning({
content: t('views.neUser.auth.noListData'),
content: t('common.noData'),
duration: 2,
});
}
@@ -1113,7 +1132,10 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.imsiTip') }}
{{ t('views.neUser.sub.imsiTip') }}<br />
{{ t('views.neUser.sub.imsiTip1') }}<br />
{{ t('views.neUser.sub.imsiTip2') }}<br />
{{ t('views.neUser.sub.imsiTip3') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1127,11 +1149,15 @@ onMounted(() => {
name="msisdn"
v-bind="modalStateFrom.validateInfos.msisdn"
>
<a-input v-model:value="modalState.from.msisdn" allow-clear>
<a-input
v-model:value="modalState.from.msisdn"
allow-clear
:maxlength="32"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '32' }) }}
{{ t('views.neUser.sub.msisdnTip', { num: '32' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1150,7 +1176,19 @@ onMounted(() => {
name="ambr"
v-bind="modalStateFrom.validateInfos.ambr"
>
<a-input v-model:value="modalState.from.ambr" allow-clear>
<a-input
v-model:value="modalState.from.ambr"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1160,7 +1198,19 @@ onMounted(() => {
name="nssai"
v-bind="modalStateFrom.validateInfos.nssai"
>
<a-input v-model:value="modalState.from.nssai" allow-clear>
<a-input
v-model:value="modalState.from.nssai"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1172,11 +1222,15 @@ onMounted(() => {
label="5G Subscribed SMF Selection Data Template"
name="smfSel"
>
<a-input v-model:value="modalState.from.smfSel" allow-clear>
<a-input
v-model:value="modalState.from.smfSel"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '16' }) }}
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1186,7 +1240,11 @@ onMounted(() => {
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G Forbidden Areas Template" name="arfb">
<a-input v-model:value="modalState.from.arfb" allow-clear>
<a-input
v-model:value="modalState.from.arfb"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
@@ -1206,7 +1264,11 @@ onMounted(() => {
label="5G Service Area Restriction Template"
name="sar"
>
<a-input v-model:value="modalState.from.sar" allow-clear>
<a-input
v-model:value="modalState.from.sar"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
@@ -1218,22 +1280,15 @@ onMounted(() => {
</a-input>
</a-form-item>
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G MICO Mode" name="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>
</a-select>
</a-tooltip>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G RFSP Index" name="rfsp">
<a-input value="1" allow-clear>
<a-input-number
v-model:value="modalState.from.rfsp"
style="width: 100%"
:min="0"
:max="127"
placeholder="0 ~ 127"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
@@ -1242,12 +1297,47 @@ onMounted(() => {
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-input-number>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
label="5G MICO Mode"
name="mico"
:help="t('views.neUser.sub.micoTip')"
>
<a-select value="1">
<a-select-option value="1">
{{ t('views.neUser.sub.enable') }}
</a-select-option>
<a-select-option value="0">
{{ t('views.neUser.sub.disable') }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G UE Usage Type" name="ueType">
<a-input value="1" allow-clear> </a-input>
<a-input-number
v-model:value="modalState.from.ueType"
style="width: 100%"
:min="0"
:max="127"
placeholder="0 ~ 127"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.ueTypeTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input-number>
</a-form-item>
</a-col>
</a-row>
@@ -1259,11 +1349,15 @@ onMounted(() => {
name="smData"
v-bind="modalStateFrom.validateInfos.smData"
>
<a-input v-model:value="modalState.from.smData" allow-clear>
<a-input
v-model:value="modalState.from.smData"
allow-clear
:maxlength="128"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '128' }) }}
{{ t('views.neUser.sub.inputTip', { num: '128' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1275,11 +1369,15 @@ onMounted(() => {
<a-row :gutter="16" v-else>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="Subscribed SM Data" name="smData">
<a-input v-model:value="modalState.from.smData" allow-clear>
<a-input
v-model:value="modalState.from.smData"
allow-clear
:maxlength="128"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '128' }) }}
{{ t('views.neUser.sub.inputTip', { num: '128' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1288,8 +1386,50 @@ onMounted(() => {
</a-form-item>
</a-col>
</a-row>
<a-divider orientation="left">4G</a-divider>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="4G EPS Flag"
name="epsFlag"
:help="t('views.neUser.sub.epsFlagTip')"
>
<a-select v-model:value="modalState.from.epsFlag">
<a-select-option value="1">
{{ t('views.neUser.sub.enable') }}
</a-select-option>
<a-select-option value="0">
{{ t('views.neUser.sub.disable') }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="4G EPS User Template Name"
name="epstpl"
v-bind="modalStateFrom.validateInfos.epstpl"
>
<a-input
v-model:value="modalState.from.epstpl"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
@@ -1311,51 +1451,46 @@ onMounted(() => {
</a-col>
</a-row>
<a-form-item
label="4G Context ID"
name="contextId"
v-bind="modalStateFrom.validateInfos.contextId"
>
<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 label="4G Context ID" name="contextId">
<a-input v-model:value="modalState.from.contextId" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.contextIdTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="4G EPS User Template Name"
name="epstpl"
v-bind="modalStateFrom.validateInfos.epstpl"
>
<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>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G EPS Flag" name="epsFlag">
<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>
</a-select>
</a-tooltip>
</a-form-item>
</a-col>
</a-row>
<a-form-item
label="4G APN Context List"
name="apnContext"
:help="t('views.neUser.sub.apnContextTip')"
>
<a-input-group compact>
<a-input-number
v-for="(_, i) in modalState.from.apnContext"
:key="i"
:title="i"
style="width: 16.5%"
:min="0"
:max="99"
v-model:value="modalState.from.apnContext[i]"
></a-input-number>
</a-input-group>
</a-form-item>
<a-form-item
label="4G EPS ODB"
name="epsOdb"
v-bind="modalStateFrom.validateInfos.epsOdb"
>
<a-tooltip :title="t('views.neUser.sub.epsOdbTip')">
<a-tooltip
:title="t('views.neUser.sub.epsOdbTip')"
placement="topLeft"
>
<a-select
v-model:value="modalState.from.epsOdb"
mode="multiple"
@@ -1369,7 +1504,10 @@ onMounted(() => {
</a-form-item>
<a-form-item label="4G HPLMN ODB" name="hplmnOdb">
<a-tooltip :title="t('views.neUser.sub.hplmnOdbTip')">
<a-tooltip
:title="t('views.neUser.sub.hplmnOdbTip')"
placement="topLeft"
>
<a-select
v-model:value="modalState.from.hplmnOdb"
mode="multiple"
@@ -1382,7 +1520,7 @@ onMounted(() => {
</a-form-item>
<a-form-item label="4G Access Restriction Data" name="ard">
<a-tooltip :title="t('views.neUser.sub.ardTip')">
<a-tooltip :title="t('views.neUser.sub.ardTip')" placement="topLeft">
<a-select
v-model:value="modalState.from.ard"
mode="multiple"
@@ -1417,13 +1555,16 @@ onMounted(() => {
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
:label="t('views.neUser.auth.num')"
:label="t('views.neUser.sub.numAdd')"
name="num"
v-bind="modalStateBatchFrom.validateInfos.num"
>
<a-input-number
v-model:value="modalState.BatchForm.num"
style="width: 100%"
:min="1"
:max="100"
placeholder="<=100"
></a-input-number>
</a-form-item>
</a-col>
@@ -1439,7 +1580,10 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.imsiTip') }}
{{ t('views.neUser.sub.imsiTip') }}<br />
{{ t('views.neUser.sub.imsiTip1') }}<br />
{{ t('views.neUser.sub.imsiTip2') }}<br />
{{ t('views.neUser.sub.imsiTip3') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1453,11 +1597,15 @@ onMounted(() => {
name="msisdn"
v-bind="modalStateBatchFrom.validateInfos.msisdn"
>
<a-input v-model:value="modalState.BatchForm.msisdn" allow-clear>
<a-input
v-model:value="modalState.BatchForm.msisdn"
allow-clear
max
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '32' }) }}
{{ t('views.neUser.sub.msisdnTip', { num: '32' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1471,8 +1619,24 @@ onMounted(() => {
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G Subscribed UE AMBR Template" name="ambr">
<a-input v-model:value="modalState.BatchForm.ambr" allow-clear>
<a-form-item
label="5G Subscribed UE AMBR Template"
name="ambr"
v-bind="modalStateBatchFrom.validateInfos.ambr"
>
<a-input
v-model:value="modalState.BatchForm.ambr"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1482,7 +1646,19 @@ onMounted(() => {
name="nssai"
v-bind="modalStateBatchFrom.validateInfos.nssai"
>
<a-input v-model:value="modalState.BatchForm.nssai" allow-clear>
<a-input
v-model:value="modalState.BatchForm.nssai"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
@@ -1494,11 +1670,15 @@ onMounted(() => {
label="5G Subscribed SMF Selection Data Template"
name="smfSel"
>
<a-input v-model:value="modalState.BatchForm.smfSel" allow-clear>
<a-input
v-model:value="modalState.BatchForm.smfSel"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '16' }) }}
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1506,9 +1686,12 @@ onMounted(() => {
</a-input>
</a-form-item>
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G Forbidden Areas Template" name="arfb">
<a-form-item
label="5G Forbidden Areas Template"
name="arfb"
:maxlength="16"
>
<a-input v-model:value="modalState.BatchForm.arfb" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
@@ -1529,7 +1712,11 @@ onMounted(() => {
label="5G Service Area Restriction Template"
name="sar"
>
<a-input v-model:value="modalState.BatchForm.sar" allow-clear>
<a-input
v-model:value="modalState.BatchForm.sar"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
@@ -1541,22 +1728,15 @@ onMounted(() => {
</a-input>
</a-form-item>
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G MICO Mode" name="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>
</a-select>
</a-tooltip>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G RFSP Index" name="rfsp">
<a-input value="1" allow-clear>
<a-input-number
v-model:value="modalState.BatchForm.rfsp"
style="width: 100%"
:min="0"
:max="127"
placeholder="0 ~ 127"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
@@ -1565,46 +1745,149 @@ onMounted(() => {
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-input-number>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
label="5G MICO Mode"
name="mico"
:help="t('views.neUser.sub.micoTip')"
>
<a-select value="1">
<a-select-option value="1">
{{ t('views.neUser.sub.enable') }}
</a-select-option>
<a-select-option value="0">
{{ t('views.neUser.sub.disable') }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item label="5G UE Usage Type" name="ueType">
<a-input value="1" allow-clear> </a-input>
<a-input-number
v-model:value="modalState.BatchForm.ueType"
style="width: 100%"
:min="0"
:max="127"
placeholder="0 ~ 127"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.ueTypeTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input-number>
</a-form-item>
</a-col>
</a-row>
<a-form-item
label="Subscribed SM Data"
name="smData"
v-bind="modalStateBatchFrom.validateInfos.smData"
>
<a-input v-model:value="modalState.BatchForm.smData" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.msisdnTip', { msg: '128' }) }}
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
label="Subscribed SM Data"
name="smData"
v-bind="modalStateBatchFrom.validateInfos.smData"
>
<a-input
v-model:value="modalState.BatchForm.smData"
allow-clear
:maxlength="128"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '128' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-input>
</a-form-item>
</a-col>
</a-row>
<a-divider orientation="left">4G</a-divider>
<a-form-item
label="4G Static IP"
name="staticIp"
v-bind="modalStateBatchFrom.validateInfos.staticIp"
>
<a-input v-model:value="modalState.BatchForm.staticIp" allow-clear>
<a-row :gutter="16">
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="4G EPS Flag"
name="epsFlag"
:help="t('views.neUser.sub.epsFlagTip')"
>
<a-select v-model:value="modalState.BatchForm.epsFlag">
<a-select-option value="1">
{{ t('views.neUser.sub.enable') }}
</a-select-option>
<a-select-option value="0">
{{ t('views.neUser.sub.disable') }}
</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item
label="4G EPS User Template Name"
name="epstpl"
v-bind="modalStateFrom.validateInfos.epstpl"
>
<a-input
v-model:value="modalState.BatchForm.epstpl"
allow-clear
:maxlength="16"
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="16">
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
label="4G Static IP"
v-bind="modalStateFrom.validateInfos.staticIp"
name="staticIp"
>
<a-input
v-model:value="modalState.BatchForm.staticIp"
allow-clear
>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.staticIpTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
</template>
</a-input>
</a-form-item>
</a-col>
</a-row>
<a-form-item label="4G Context ID" name="contextId">
<a-input v-model:value="modalState.BatchForm.contextId" allow-clear>
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.sub.staticIpTip') }}
{{ t('views.neUser.sub.contextIdTip') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1612,45 +1895,38 @@ onMounted(() => {
</a-input>
</a-form-item>
<a-form-item label="4G Context ID" name="contextId">
<a-tooltip :title="t('views.neUser.sub.contextIdTip')">
<a-input v-model:value="modalState.BatchForm.contextId" allow-clear>
</a-input>
</a-tooltip>
<a-form-item
label="4G APN Context List"
name="apnContext"
:help="t('views.neUser.sub.apnContextTip')"
>
<a-input-group compact>
<a-input-number
v-for="(_, i) in modalState.BatchForm.apnContext"
:key="i"
:title="i"
style="width: 16.5%"
:min="0"
:max="99"
v-model:value="modalState.BatchForm.apnContext[i]"
></a-input-number>
</a-input-group>
</a-form-item>
<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="t('views.neUser.sub.msisdnTip', { msg: '16' })"
>
<a-input
v-model:value="modalState.BatchForm.epstpl"
allow-clear
>
</a-input>
</a-tooltip>
</a-form-item>
</a-col>
<a-col :lg="12" :md="12" :xs="24">
<a-form-item label="4G EPS Flag" name="epsFlag">
<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>
</a-select>
</a-tooltip>
</a-form-item>
</a-col>
</a-row>
<a-form-item label="4G EPS ODB" name="epsOdb">
<a-tooltip :title="t('views.neUser.sub.epsOdbTip')">
<a-form-item
label="4G EPS ODB"
name="epsOdb"
v-bind="modalStateFrom.validateInfos.epsOdb"
>
<a-tooltip
:title="t('views.neUser.sub.epsOdbTip')"
placement="topLeft"
>
<a-select
v-model:value="modalState.BatchForm.epsOdb"
mode="multiple"
style="width: 100%"
placeholder="Please select"
:options="modalStateFromOption.odbJson"
@change=""
>
@@ -1659,7 +1935,10 @@ onMounted(() => {
</a-form-item>
<a-form-item label="4G HPLMN ODB" name="hplmnOdb">
<a-tooltip :title="t('views.neUser.sub.hplmnOdbTip')">
<a-tooltip
:title="t('views.neUser.sub.hplmnOdbTip')"
placement="topLeft"
>
<a-select
v-model:value="modalState.BatchForm.hplmnOdb"
mode="multiple"
@@ -1672,7 +1951,7 @@ onMounted(() => {
</a-form-item>
<a-form-item label="4G Access Restriction Data" name="ard">
<a-tooltip :title="t('views.neUser.sub.ardTip')">
<a-tooltip :title="t('views.neUser.sub.ardTip')" placement="topLeft">
<a-select
v-model:value="modalState.BatchForm.ard"
mode="multiple"
@@ -1714,7 +1993,10 @@ onMounted(() => {
<template #prefix>
<a-tooltip placement="topLeft">
<template #title>
{{ t('views.neUser.auth.imsiTip') }}
{{ t('views.neUser.sub.imsiTip') }}<br />
{{ t('views.neUser.sub.imsiTip1') }}<br />
{{ t('views.neUser.sub.imsiTip2') }}<br />
{{ t('views.neUser.sub.imsiTip3') }}
</template>
<InfoCircleOutlined style="color: rgba(0, 0, 0, 0.45)" />
</a-tooltip>
@@ -1724,13 +2006,16 @@ onMounted(() => {
</a-col>
<a-col :lg="24" :md="24" :xs="24">
<a-form-item
:label="t('views.neUser.sub.num')"
:label="t('views.neUser.sub.numDel')"
name="num"
v-bind="modalStateBatchDelFrom.validateInfos.num"
>
<a-input-number
v-model:value="modalState.BatchDelForm.num"
style="width: 100%"
:min="1"
:max="100"
placeholder="<=100"
></a-input-number>
</a-form-item>
</a-col>