Merge remote-tracking branch 'origin/main' into multi-tenant
This commit is contained in:
@@ -7,22 +7,23 @@ import { MenuInfo } from 'ant-design-vue/lib/menu/src/interface';
|
||||
import { ColumnsType } from 'ant-design-vue/lib/table';
|
||||
import UploadModal from '@/components/UploadModal/index.vue';
|
||||
import TableColumnsDnd from '@/components/TableColumnsDnd/index.vue';
|
||||
import {
|
||||
listAuth,
|
||||
getAuth,
|
||||
updateAuth,
|
||||
addAuth,
|
||||
delAuth,
|
||||
loadAuth,
|
||||
exportAuth,
|
||||
importAuthData,
|
||||
batchAuth,
|
||||
batchDelAuth,
|
||||
} from '@/api/neUser/auth';
|
||||
import useNeInfoStore from '@/store/modules/neinfo';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { saveAs } from 'file-saver';
|
||||
import {
|
||||
addUDMAuth,
|
||||
updateUDMAuth,
|
||||
batchAddUDMAuth,
|
||||
batchDelUDMAuth,
|
||||
delUDMAuth,
|
||||
getUDMAuth,
|
||||
exportUDMAuth,
|
||||
importUDMAuth,
|
||||
resetUDMAuth,
|
||||
listUDMAuth,
|
||||
} from '@/api/neData/udm_auth';
|
||||
import { uploadFile } from '@/api/tool/file';
|
||||
const { t } = useI18n();
|
||||
|
||||
/**网元参数 */
|
||||
@@ -82,7 +83,7 @@ let tableState: TabeStateType = reactive({
|
||||
});
|
||||
|
||||
/**表格字段列 */
|
||||
let tableColumns: ColumnsType = [
|
||||
let tableColumns = ref<ColumnsType>([
|
||||
{
|
||||
title: 'IMSI',
|
||||
dataIndex: 'imsi',
|
||||
@@ -125,7 +126,7 @@ let tableColumns: ColumnsType = [
|
||||
key: 'imsi',
|
||||
align: 'left',
|
||||
},
|
||||
];
|
||||
]);
|
||||
|
||||
/**表格字段列排序 */
|
||||
let tableColumnsDnd = ref<ColumnsType>([]);
|
||||
@@ -291,8 +292,8 @@ function fnModalVisibleByEdit(row?: Record<string, any>) {
|
||||
if (modalState.confirmLoading) return;
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
modalState.confirmLoading = true;
|
||||
const neID = queryParams.neId || '-';
|
||||
getAuth(neID, row.imsi)
|
||||
const neId = queryParams.neId || '-';
|
||||
getUDMAuth(neId, row.imsi)
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
modalState.from = Object.assign(modalState.from, res.data);
|
||||
@@ -340,7 +341,7 @@ function fnModalOk() {
|
||||
const from = toRaw(modalState.from);
|
||||
from.neId = queryParams.neId || '-';
|
||||
from.algoIndex = `${from.algoIndex}`;
|
||||
const result = from.id ? updateAuth(from) : addAuth(from);
|
||||
const result = from.id ? updateUDMAuth(from) : addUDMAuth(from);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
result
|
||||
.then(res => {
|
||||
@@ -379,31 +380,35 @@ function fnBatchModalOk() {
|
||||
.then(e => {
|
||||
modalState.confirmLoading = true;
|
||||
const from = toRaw(modalState.BatchForm);
|
||||
from.neID = queryParams.neId || '-';
|
||||
from.neId = queryParams.neId || '-';
|
||||
from.algoIndex = `${from.algoIndex}`;
|
||||
const result = batchAuth(from);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
result
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('common.msgSuccess', { msg: modalState.title }),
|
||||
duration: 3,
|
||||
});
|
||||
const result = batchAddUDMAuth(from, from.num);
|
||||
result.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const timerS = Math.max(
|
||||
Math.ceil(+from.num / 500),
|
||||
`${from.num}`.length
|
||||
);
|
||||
notification.success({
|
||||
message: modalState.title,
|
||||
description: t('common.operateOk'),
|
||||
duration: timerS,
|
||||
});
|
||||
setTimeout(() => {
|
||||
modalState.confirmLoading = false;
|
||||
modalState.visibleByBatch = false;
|
||||
modalStateBatchFrom.resetFields();
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
fnGetList(1);
|
||||
}, timerS * 1000);
|
||||
} else {
|
||||
modalState.confirmLoading = false;
|
||||
});
|
||||
notification.error({
|
||||
message: modalState.title,
|
||||
description: res.msg,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(e => {
|
||||
message.error(t('common.errorFields', { num: e.errorFields.length }), 3);
|
||||
@@ -420,33 +425,30 @@ 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 = batchDelAuth(from);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
result
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('common.msgSuccess', { msg: modalState.title }),
|
||||
duration: 3,
|
||||
});
|
||||
const neId = queryParams.neId || '-';
|
||||
batchDelUDMAuth(neId, from.imsi, from.num).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const timerS = Math.ceil(+from.num / 1500) + 1;
|
||||
notification.success({
|
||||
message: modalState.title,
|
||||
description: t('common.operateOk'),
|
||||
duration: timerS,
|
||||
});
|
||||
setTimeout(() => {
|
||||
modalState.visibleByBatchDel = false;
|
||||
modalState.confirmLoading = false;
|
||||
modalStateBatchDelFrom.resetFields();
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
fnGetList(1);
|
||||
}, timerS * 1000);
|
||||
} else {
|
||||
modalState.confirmLoading = false;
|
||||
});
|
||||
notification.error({
|
||||
message: modalState.title,
|
||||
description: res.msg,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(e => {
|
||||
message.error(t('common.errorFields', { num: e.errorFields.length }), 3);
|
||||
@@ -485,8 +487,8 @@ function fnModalCancel() {
|
||||
* @param imsi 编号imsi
|
||||
*/
|
||||
function fnRecordDelete(imsi: string) {
|
||||
const neID = queryParams.neId;
|
||||
if (!neID) return;
|
||||
const neId = queryParams.neId;
|
||||
if (!neId) return;
|
||||
let imsiMsg = imsi;
|
||||
if (imsi === '0') {
|
||||
imsiMsg = `${tableState.selectedRowKeys[0]}... ${t(
|
||||
@@ -501,7 +503,7 @@ function fnRecordDelete(imsi: string) {
|
||||
onOk() {
|
||||
modalState.loadDataLoading = true;
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
delAuth(neID, imsi)
|
||||
delUDMAuth(neId, imsi)
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const msgContent = t('common.msgSuccess', {
|
||||
@@ -557,56 +559,50 @@ function fnRecordExport(type: string = 'txt') {
|
||||
|
||||
/**列表导出 */
|
||||
function fnExportList(type: string) {
|
||||
const neID = queryParams.neId;
|
||||
if (!neID) return;
|
||||
const key = 'exportAuth';
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
exportAuth({
|
||||
neId: neID,
|
||||
const neId = queryParams.neId;
|
||||
if (!neId) return;
|
||||
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
exportUDMAuth({
|
||||
neId: neId,
|
||||
type: type,
|
||||
}).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('common.msgSuccess', { msg: t('common.export') }),
|
||||
key,
|
||||
duration: 2,
|
||||
});
|
||||
saveAs(res.data, `UDMAuth_${Date.now()}.${type}`);
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
key,
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success(t('common.msgSuccess', { msg: t('common.export') }), 3);
|
||||
saveAs(res.data, `UDMAuth_${Date.now()}.${type}`);
|
||||
} else {
|
||||
message.error(`${res.msg}`, 3);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
});
|
||||
}
|
||||
|
||||
/**重新加载数据 */
|
||||
function fnLoadData() {
|
||||
const neID = queryParams.neId;
|
||||
if (tableState.loading || !neID) return;
|
||||
const neId = queryParams.neId;
|
||||
if (tableState.loading || !neId) return;
|
||||
modalState.loadDataLoading = true;
|
||||
tablePagination.total = 0;
|
||||
tableState.data = [];
|
||||
tableState.loading = true; // 表格loading
|
||||
loadAuth(neID).then(res => {
|
||||
resetUDMAuth(neId).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const num = res.data;
|
||||
const timerS = Math.ceil(+num / 2500) + 1;
|
||||
notification.success({
|
||||
message: t('views.neUser.auth.loadData'),
|
||||
description: t('views.neUser.auth.loadDataTip', { num }),
|
||||
duration: num < 10_0000 ? 10 : 30,
|
||||
duration: timerS,
|
||||
});
|
||||
// 延迟10s后关闭loading刷新列表
|
||||
setTimeout(
|
||||
() => {
|
||||
modalState.loadDataLoading = false;
|
||||
tableState.loading = false; // 表格loading
|
||||
fnQueryReset();
|
||||
},
|
||||
num < 10_0000 ? 10_000 : 30_000
|
||||
);
|
||||
setTimeout(() => {
|
||||
modalState.loadDataLoading = false;
|
||||
tableState.loading = false; // 表格loading
|
||||
fnQueryReset();
|
||||
}, timerS * 1000);
|
||||
} else {
|
||||
message.error({
|
||||
content: t('common.getInfoFail'),
|
||||
@@ -624,7 +620,7 @@ function fnGetList(pageNum?: number) {
|
||||
queryParams.pageNum = pageNum;
|
||||
tablePagination.current = pageNum;
|
||||
}
|
||||
listAuth(toRaw(queryParams)).then(res => {
|
||||
listUDMAuth(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.rows)) {
|
||||
// 取消勾选
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
@@ -675,26 +671,42 @@ function fnModalUploadImportOpen() {
|
||||
/**对话框表格信息导入关闭窗口 */
|
||||
function fnModalUploadImportClose() {
|
||||
uploadImportState.visible = false;
|
||||
fnGetList();
|
||||
fnGetList(1);
|
||||
}
|
||||
|
||||
/**对话框表格信息导入上传 */
|
||||
function fnModalUploadImportUpload(file: File) {
|
||||
const neID = queryParams.neId;
|
||||
if (!neID) {
|
||||
const neId = queryParams.neId;
|
||||
if (!neId) {
|
||||
return Promise.reject('Unknown network element');
|
||||
}
|
||||
let formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('neId', neID);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
uploadImportState.loading = true;
|
||||
importAuthData(formData)
|
||||
// 上传文件
|
||||
let formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('subPath', 'import');
|
||||
uploadFile(formData)
|
||||
.then(res => {
|
||||
uploadImportState.msg = res.msg;
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
return res.data.fileName;
|
||||
} else {
|
||||
uploadImportState.msg = res.msg;
|
||||
uploadImportState.loading = false;
|
||||
return '';
|
||||
}
|
||||
})
|
||||
.catch((err: { code: number; msg: string }) => {
|
||||
message.error(` ${err.msg}`);
|
||||
.then((filePath: string) => {
|
||||
if (!filePath) return;
|
||||
// 文件导入
|
||||
return importUDMAuth({
|
||||
neId: neId,
|
||||
uploadPath: filePath,
|
||||
});
|
||||
})
|
||||
.then(res => {
|
||||
if (!res) return;
|
||||
uploadImportState.msg = res.msg;
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
@@ -755,7 +767,11 @@ 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></a-input>
|
||||
<a-input
|
||||
v-model:value="queryParams.imsi"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
@@ -982,8 +998,10 @@ onMounted(() => {
|
||||
</a-card>
|
||||
|
||||
<!-- 新增框或修改框 -->
|
||||
<DraggableModal
|
||||
width="800px"
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:width="800"
|
||||
:destroyOnClose="true"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
:visible="modalState.visibleByEdit"
|
||||
@@ -1132,11 +1150,13 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 批量新增框 -->
|
||||
<DraggableModal
|
||||
width="800px"
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:width="800"
|
||||
:destroyOnClose="true"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
:visible="modalState.visibleByBatch"
|
||||
@@ -1162,8 +1182,8 @@ onMounted(() => {
|
||||
v-model:value="modalState.BatchForm.num"
|
||||
style="width: 100%"
|
||||
:min="1"
|
||||
:max="100000"
|
||||
placeholder="<=100000"
|
||||
:max="10000"
|
||||
placeholder="<=10000"
|
||||
></a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -1297,11 +1317,12 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 批量删除框 -->
|
||||
<DraggableModal
|
||||
width="500px"
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:destroyOnClose="true"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
:visible="modalState.visibleByBatchDel"
|
||||
@@ -1348,14 +1369,14 @@ onMounted(() => {
|
||||
v-model:value="modalState.BatchDelForm.num"
|
||||
style="width: 100%"
|
||||
:min="1"
|
||||
:max="100000"
|
||||
placeholder="<=100000"
|
||||
:max="10000"
|
||||
placeholder="<=10000"
|
||||
></a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 上传导入表格数据文件框 -->
|
||||
<UploadModal
|
||||
@@ -1365,6 +1386,7 @@ onMounted(() => {
|
||||
@close="fnModalUploadImportClose"
|
||||
v-model:visible="uploadImportState.visible"
|
||||
:ext="['.txt']"
|
||||
:size="10"
|
||||
>
|
||||
<template #default>
|
||||
<a-textarea
|
||||
|
||||
@@ -64,7 +64,6 @@ function fnGetList(pageNum?: number) {
|
||||
tableState.loading = true;
|
||||
listNSSFAMF().then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.rows)) {
|
||||
console.log(res.rows);
|
||||
// 取消勾选
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
tableState.selectedRowKeys = [];
|
||||
|
||||
@@ -300,7 +300,6 @@ function fnModalVisibleByEdit(row?: Record<string, any>) {
|
||||
sessRules = [sessRules];
|
||||
}
|
||||
modalState.from.sessRules = sessRules;
|
||||
console.log(modalState.from);
|
||||
|
||||
modalState.title = t('views.neUser.pcf.updateTitle', {
|
||||
imsi: row.imsi,
|
||||
@@ -327,7 +326,6 @@ function fnModalOk() {
|
||||
const from = JSON.parse(JSON.stringify(modalState.from));
|
||||
from.neId = queryParams.neId || '-';
|
||||
from.rfsp = Number(from.rfsp) || 0;
|
||||
console.log(from);
|
||||
let pccRules = modalState.from.pccRules;
|
||||
if (Array.isArray(pccRules)) {
|
||||
pccRules = pccRules.join('|');
|
||||
@@ -886,8 +884,10 @@ onMounted(() => {
|
||||
</a-card>
|
||||
|
||||
<!-- 新增框或修改框 -->
|
||||
<DraggableModal
|
||||
:width="modalState.type === 'delete' ? '500px' : '800px'"
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:width="modalState.type === 'delete' ? 520 : 800"
|
||||
:destroyOnClose="true"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
:visible="modalState.visibleByEdit"
|
||||
@@ -1127,7 +1127,7 @@ onMounted(() => {
|
||||
</a-row>
|
||||
</template>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 上传导入表格数据文件框 -->
|
||||
<UploadModal
|
||||
|
||||
@@ -7,25 +7,34 @@ import { MenuInfo } from 'ant-design-vue/lib/menu/src/interface';
|
||||
import { ColumnsType } from 'ant-design-vue/lib/table';
|
||||
import UploadModal from '@/components/UploadModal/index.vue';
|
||||
import TableColumnsDnd from '@/components/TableColumnsDnd/index.vue';
|
||||
import {
|
||||
loadSub,
|
||||
listSub,
|
||||
getSub,
|
||||
updateSub,
|
||||
addSub,
|
||||
delSub,
|
||||
importSubData,
|
||||
exportSub,
|
||||
batchAddSub,
|
||||
batchDelSub,
|
||||
} from '@/api/neUser/sub';
|
||||
import useNeInfoStore from '@/store/modules/neinfo';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import saveAs from 'file-saver';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
|
||||
import {
|
||||
addUDMSub,
|
||||
batchAddUDMSub,
|
||||
batchDelUDMSub,
|
||||
delUDMSub,
|
||||
exportUDMSub,
|
||||
getUDMSub,
|
||||
importUDMSub,
|
||||
listUDMSub,
|
||||
resetUDMSub,
|
||||
updateUDMSub,
|
||||
} from '@/api/neData/udm_sub';
|
||||
import { uploadFile } from '@/api/tool/file';
|
||||
const { t } = useI18n();
|
||||
const { getDict } = useDictStore();
|
||||
|
||||
/**字典数据 */
|
||||
let dict: {
|
||||
/**CN Type可选类型 */
|
||||
udmSubCNType: DictType[];
|
||||
} = reactive({
|
||||
udmSubCNType: [],
|
||||
});
|
||||
|
||||
/**网元参数 */
|
||||
let neOtions = ref<Record<string, any>[]>([]);
|
||||
@@ -90,7 +99,7 @@ let tableState: TabeStateType = reactive({
|
||||
});
|
||||
|
||||
/**表格字段列 */
|
||||
let tableColumns: ColumnsType = [
|
||||
let tableColumns = ref<ColumnsType>([
|
||||
{
|
||||
title: 'IMSI',
|
||||
dataIndex: 'imsi',
|
||||
@@ -143,6 +152,7 @@ let tableColumns: ColumnsType = [
|
||||
{
|
||||
title: 'CN Type',
|
||||
dataIndex: 'cn',
|
||||
key: 'cn',
|
||||
align: 'center',
|
||||
width: 100,
|
||||
},
|
||||
@@ -176,7 +186,7 @@ let tableColumns: ColumnsType = [
|
||||
fixed: 'right',
|
||||
width: 100,
|
||||
},
|
||||
];
|
||||
]);
|
||||
|
||||
/**表格字段列排序 */
|
||||
let tableColumnsDnd = ref<ColumnsType>([]);
|
||||
@@ -263,7 +273,7 @@ let modalState: ModalStateType = reactive({
|
||||
visibleByBatchDel: false,
|
||||
title: 'UDM签约用户',
|
||||
from: {
|
||||
id: '',
|
||||
id: undefined,
|
||||
msisdn: '',
|
||||
imsi: '',
|
||||
ambr: 'def_ambr',
|
||||
@@ -288,7 +298,7 @@ let modalState: ModalStateType = reactive({
|
||||
ueType: 1,
|
||||
},
|
||||
BatchForm: {
|
||||
num: '',
|
||||
num: 1,
|
||||
msisdn: '',
|
||||
imsi: '',
|
||||
ambr: 'def_ambr',
|
||||
@@ -313,7 +323,7 @@ let modalState: ModalStateType = reactive({
|
||||
ueType: 1,
|
||||
},
|
||||
BatchDelForm: {
|
||||
num: '',
|
||||
num: 1,
|
||||
imsi: '',
|
||||
},
|
||||
confirmLoading: false,
|
||||
@@ -432,8 +442,8 @@ function fnModalVisibleByEdit(imsi?: string) {
|
||||
if (modalState.confirmLoading) return;
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
modalState.confirmLoading = true;
|
||||
const neID = queryParams.neId || '-';
|
||||
getSub(neID, imsi)
|
||||
const neId = queryParams.neId || '-';
|
||||
getUDMSub(neId, imsi)
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
transformFormData(res.data.smData);
|
||||
@@ -659,8 +669,8 @@ function fnModalOk() {
|
||||
.map((item: number) => `${item}`.padStart(2, '0'))
|
||||
.join('');
|
||||
|
||||
const neID = queryParams.neId || '-';
|
||||
const result = from.id ? updateSub(neID, from) : addSub(neID, from);
|
||||
from.neId = queryParams.neId || '-';
|
||||
const result = from.id ? updateUDMSub(from) : addUDMSub(from);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
result
|
||||
.then(res => {
|
||||
@@ -747,29 +757,32 @@ function fnBatchModalOk() {
|
||||
.map((item: number) => `${item}`.padStart(2, '0'))
|
||||
.join('');
|
||||
|
||||
const neID = queryParams.neId || '-';
|
||||
from.neID = neID;
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
batchAddSub(from)
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('common.msgSuccess', { msg: modalState.title }),
|
||||
duration: 3,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
fnBatchModalCancel();
|
||||
from.neId = queryParams.neId || '-';
|
||||
batchAddUDMSub(from, from.num).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const timerS = Math.max(
|
||||
Math.ceil(+from.num / 500),
|
||||
`${from.num}`.length * 5
|
||||
);
|
||||
notification.success({
|
||||
message: modalState.title,
|
||||
description: t('common.operateOk'),
|
||||
duration: timerS,
|
||||
});
|
||||
setTimeout(() => {
|
||||
fnBatchModalCancel();
|
||||
modalState.confirmLoading = false;
|
||||
fnGetList(1);
|
||||
}, timerS * 1000);
|
||||
} else {
|
||||
modalState.confirmLoading = false;
|
||||
});
|
||||
notification.error({
|
||||
message: modalState.title,
|
||||
description: res.msg,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(e => {
|
||||
message.error(t('common.errorFields', { num: e.errorFields.length }), 3);
|
||||
@@ -800,29 +813,30 @@ function fnBatchDelModalOk() {
|
||||
.then(e => {
|
||||
modalState.confirmLoading = true;
|
||||
const from = toRaw(modalState.BatchDelForm);
|
||||
from.neID = queryParams.neId || '-';
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
batchDelSub(from)
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('common.msgSuccess', { msg: modalState.title }),
|
||||
duration: 3,
|
||||
});
|
||||
const neId = queryParams.neId || '-';
|
||||
batchDelUDMSub(neId, from.imsi, from.num).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const timerS = Math.ceil(+from.num / 1500) + 1;
|
||||
notification.success({
|
||||
message: modalState.title,
|
||||
description: t('common.operateOk'),
|
||||
duration: timerS,
|
||||
});
|
||||
setTimeout(() => {
|
||||
modalState.visibleByBatchDel = false;
|
||||
modalState.confirmLoading = false;
|
||||
modalStateBatchDelFrom.resetFields();
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
fnGetList(1);
|
||||
}, timerS * 1000);
|
||||
} else {
|
||||
modalState.confirmLoading = false;
|
||||
});
|
||||
notification.error({
|
||||
message: modalState.title,
|
||||
description: res.msg,
|
||||
duration: 3,
|
||||
});
|
||||
}
|
||||
});
|
||||
})
|
||||
.catch(e => {
|
||||
message.error(t('common.errorFields', { num: e.errorFields.length }), 3);
|
||||
@@ -908,8 +922,8 @@ function fnBatchDelModalCancel() {
|
||||
* @param imsi 编号imsi
|
||||
*/
|
||||
function fnRecordDelete(imsi: string) {
|
||||
const neID = queryParams.neId;
|
||||
if (!neID) return;
|
||||
const neId = queryParams.neId;
|
||||
if (!neId) return;
|
||||
let imsiMsg = imsi;
|
||||
if (imsi === '0') {
|
||||
imsiMsg = `${tableState.selectedRowKeys[0]}... ${t(
|
||||
@@ -924,7 +938,7 @@ function fnRecordDelete(imsi: string) {
|
||||
onOk() {
|
||||
modalState.loadDataLoading = true;
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
delSub(neID, imsi)
|
||||
delUDMSub(neId, imsi)
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const msgContent = t('common.msgSuccess', {
|
||||
@@ -1001,12 +1015,12 @@ function fnRecordExport(type: string = 'txt') {
|
||||
|
||||
/**列表导出 */
|
||||
function fnExportList(type: string) {
|
||||
const neID = queryParams.neId;
|
||||
if (!neID) return;
|
||||
const neId = queryParams.neId;
|
||||
if (!neId) return;
|
||||
const key = 'exportSub';
|
||||
message.loading({ content: t('common.loading'), key });
|
||||
exportSub({
|
||||
neId: neID,
|
||||
exportUDMSub({
|
||||
neId: neId,
|
||||
type: type,
|
||||
}).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
@@ -1028,29 +1042,27 @@ function fnExportList(type: string) {
|
||||
|
||||
/**重新加载数据 */
|
||||
function fnLoadData() {
|
||||
const neID = queryParams.neId;
|
||||
if (tableState.loading || !neID) return;
|
||||
const neId = queryParams.neId;
|
||||
if (tableState.loading || !neId) return;
|
||||
modalState.loadDataLoading = true;
|
||||
tablePagination.total = 0;
|
||||
tableState.data = [];
|
||||
tableState.loading = true; // 表格loading
|
||||
loadSub(neID).then(res => {
|
||||
resetUDMSub(neId).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
const num = res.data;
|
||||
const timerS = Math.ceil(+num / 1500) + 1;
|
||||
notification.success({
|
||||
message: t('views.neUser.sub.loadData'),
|
||||
description: t('views.neUser.sub.loadDataTip', { num }),
|
||||
duration: num < 10_0000 ? 10 : 30,
|
||||
duration: timerS,
|
||||
});
|
||||
// 延迟20s后关闭loading刷新列表
|
||||
setTimeout(
|
||||
() => {
|
||||
modalState.loadDataLoading = false;
|
||||
tableState.loading = false; // 表格loading
|
||||
fnQueryReset();
|
||||
},
|
||||
num < 10_0000 ? 10_000 : 30_000
|
||||
);
|
||||
setTimeout(() => {
|
||||
modalState.loadDataLoading = false;
|
||||
tableState.loading = false; // 表格loading
|
||||
fnQueryReset();
|
||||
}, timerS * 1000);
|
||||
} else {
|
||||
message.error({
|
||||
content: t('common.getInfoFail'),
|
||||
@@ -1068,10 +1080,7 @@ function fnGetList(pageNum?: number) {
|
||||
queryParams.pageNum = pageNum;
|
||||
tablePagination.current = pageNum;
|
||||
}
|
||||
|
||||
const selectFrom = Object.assign({}, toRaw(queryParams));
|
||||
|
||||
listSub(selectFrom).then(res => {
|
||||
listUDMSub(toRaw(queryParams)).then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS && Array.isArray(res.rows)) {
|
||||
// 取消勾选
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
@@ -1128,21 +1137,37 @@ function fnModalUploadImportClose() {
|
||||
|
||||
/**对话框表格信息导入上传 */
|
||||
function fnModalUploadImportUpload(file: File) {
|
||||
const neID = queryParams.neId;
|
||||
if (!neID) {
|
||||
const neId = queryParams.neId;
|
||||
if (!neId) {
|
||||
return Promise.reject('Unknown network element');
|
||||
}
|
||||
let formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('neId', neID);
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
uploadImportState.loading = true;
|
||||
importSubData(formData)
|
||||
// 上传文件
|
||||
let formData = new FormData();
|
||||
formData.append('file', file);
|
||||
formData.append('subPath', 'import');
|
||||
uploadFile(formData)
|
||||
.then(res => {
|
||||
uploadImportState.msg = res.msg;
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
return res.data.fileName;
|
||||
} else {
|
||||
uploadImportState.msg = res.msg;
|
||||
uploadImportState.loading = false;
|
||||
return '';
|
||||
}
|
||||
})
|
||||
.catch((err: { code: number; msg: string }) => {
|
||||
message.error(` ${err.msg}`);
|
||||
.then((filePath: string) => {
|
||||
if (!filePath) return;
|
||||
// 文件导入
|
||||
return importUDMSub({
|
||||
neId: neId,
|
||||
uploadPath: filePath,
|
||||
});
|
||||
})
|
||||
.then(res => {
|
||||
if (!res) return;
|
||||
uploadImportState.msg = res.msg;
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
@@ -1186,6 +1211,13 @@ function delBigRow(bigIndex: any) {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
// 初始字典数据
|
||||
Promise.allSettled([getDict('udm_sub_cn_type')]).then(resArr => {
|
||||
if (resArr[0].status === 'fulfilled') {
|
||||
dict.udmSubCNType = resArr[0].value;
|
||||
}
|
||||
});
|
||||
|
||||
// 获取网元网元列表
|
||||
useNeInfoStore()
|
||||
.fnNelist()
|
||||
@@ -1231,19 +1263,27 @@ onMounted(() => {
|
||||
<a-form-item :label="t('views.neUser.sub.neType')" name="neId ">
|
||||
<a-select
|
||||
v-model:value="queryParams.neId"
|
||||
:options="neOtions"
|
||||
:options="dict.udmSubCNType"
|
||||
:placeholder="t('common.selectPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</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></a-input>
|
||||
<a-input
|
||||
v-model:value="queryParams.imsi"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
></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></a-input>
|
||||
<a-input
|
||||
v-model:value="queryParams.msisdn"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
@@ -1459,6 +1499,9 @@ onMounted(() => {
|
||||
}"
|
||||
>
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'cn'">
|
||||
<DictTag :options="dict.udmSubCNType" :value="record.cn" />
|
||||
</template>
|
||||
<template v-if="column.key === 'imsi'">
|
||||
<a-space :size="8" align="center">
|
||||
<a-tooltip>
|
||||
@@ -1490,9 +1533,11 @@ onMounted(() => {
|
||||
</a-card>
|
||||
|
||||
<!-- 新增框或修改框 -->
|
||||
<DraggableModal
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:width="800"
|
||||
:destroyOnClose="true"
|
||||
style="top: 0px"
|
||||
width="800px"
|
||||
:body-style="{ maxHeight: '650px', 'overflow-y': 'auto' }"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
@@ -1513,7 +1558,6 @@ onMounted(() => {
|
||||
<a-form-item
|
||||
label="IMSI"
|
||||
name="imsi"
|
||||
:label-col="{ span: 5 }"
|
||||
v-bind="modalStateFrom.validateInfos.imsi"
|
||||
>
|
||||
<a-input v-model:value="modalState.from.imsi" allow-clear>
|
||||
@@ -1530,6 +1574,13 @@ onMounted(() => {
|
||||
</template>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="CN Type" name="cn">
|
||||
<a-select
|
||||
v-model:value="modalState.from.cn"
|
||||
:options="dict.udmSubCNType"
|
||||
:placeholder="t('common.selectPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
@@ -1554,8 +1605,10 @@ onMounted(() => {
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-divider orientation="left"
|
||||
>Subscribed SM Data
|
||||
|
||||
<!-- SM Data ---- S -->
|
||||
<a-divider orientation="left">
|
||||
Subscribed SM Data
|
||||
<a-tooltip title="Add SM Data">
|
||||
<a-button
|
||||
shape="circle"
|
||||
@@ -1658,6 +1711,8 @@ onMounted(() => {
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<!-- SM Data ---- E -->
|
||||
|
||||
<a-collapse :bordered="false" ghost>
|
||||
<a-collapse-panel key="5G">
|
||||
<template #header>
|
||||
@@ -1673,12 +1728,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.ambr"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -1697,12 +1752,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.nssai"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -1723,12 +1778,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.smfSel"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -1743,7 +1798,7 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.arfb"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
@@ -1769,7 +1824,7 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.sar"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
@@ -1881,12 +1936,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.from.epstpl"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -2005,12 +2060,14 @@ onMounted(() => {
|
||||
</a-collapse-panel>
|
||||
</a-collapse>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 批量增加框 -->
|
||||
<DraggableModal
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:width="800"
|
||||
:destroyOnClose="true"
|
||||
style="top: 0px"
|
||||
width="800px"
|
||||
:body-style="{ maxHeight: '650px', 'overflow-y': 'auto' }"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
@@ -2037,8 +2094,8 @@ onMounted(() => {
|
||||
v-model:value="modalState.BatchForm.num"
|
||||
style="width: 100%"
|
||||
:min="1"
|
||||
:max="100000"
|
||||
placeholder="<=100000"
|
||||
:max="10000"
|
||||
placeholder="<=10000"
|
||||
></a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -2064,6 +2121,13 @@ onMounted(() => {
|
||||
</template>
|
||||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item label="CN Type" name="cn">
|
||||
<a-select
|
||||
v-model:value="modalState.BatchForm.cn"
|
||||
:options="dict.udmSubCNType"
|
||||
:placeholder="t('common.selectPlease')"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
@@ -2088,8 +2152,10 @@ onMounted(() => {
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<a-divider orientation="left"
|
||||
>Subscribed SM Data
|
||||
|
||||
<!-- SM Data ---- S -->
|
||||
<a-divider orientation="left">
|
||||
Subscribed SM Data
|
||||
<a-tooltip title="Add SM Data">
|
||||
<a-button
|
||||
shape="circle"
|
||||
@@ -2192,6 +2258,7 @@ onMounted(() => {
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
<!-- SM Data ---- E -->
|
||||
|
||||
<a-collapse :bordered="false" ghost>
|
||||
<a-collapse-panel key="5G">
|
||||
@@ -2209,12 +2276,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.BatchForm.ambr"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -2233,12 +2300,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.BatchForm.nssai"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -2259,12 +2326,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.BatchForm.smfSel"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -2278,7 +2345,7 @@ onMounted(() => {
|
||||
<a-form-item
|
||||
label="5G Forbidden Areas Template"
|
||||
name="arfb"
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<a-input
|
||||
v-model:value="modalState.BatchForm.arfb"
|
||||
@@ -2308,7 +2375,7 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.BatchForm.sar"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
@@ -2420,12 +2487,12 @@ onMounted(() => {
|
||||
<a-input
|
||||
v-model:value="modalState.BatchForm.epstpl"
|
||||
allow-clear
|
||||
:maxlength="16"
|
||||
:maxlength="50"
|
||||
>
|
||||
<template #prefix>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template #title>
|
||||
{{ t('views.neUser.sub.inputTip', { num: '16' }) }}
|
||||
{{ t('views.neUser.sub.inputTip', { num: '50' }) }}
|
||||
</template>
|
||||
<InfoCircleOutlined
|
||||
style="color: rgba(0, 0, 0, 0.45)"
|
||||
@@ -2546,12 +2613,13 @@ onMounted(() => {
|
||||
</a-collapse-panel>
|
||||
</a-collapse>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 批量删除框 -->
|
||||
<DraggableModal
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:destroyOnClose="true"
|
||||
style="top: 0px"
|
||||
width="500px"
|
||||
:keyboard="false"
|
||||
:mask-closable="false"
|
||||
:visible="modalState.visibleByBatchDel"
|
||||
@@ -2598,14 +2666,14 @@ onMounted(() => {
|
||||
v-model:value="modalState.BatchDelForm.num"
|
||||
style="width: 100%"
|
||||
:min="1"
|
||||
:max="100000"
|
||||
placeholder="<=100000"
|
||||
:max="10000"
|
||||
placeholder="<=10000"
|
||||
></a-input-number>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
|
||||
<!-- 上传导入表格数据文件框 -->
|
||||
<UploadModal
|
||||
@@ -2615,6 +2683,7 @@ onMounted(() => {
|
||||
@close="fnModalUploadImportClose"
|
||||
v-model:visible="uploadImportState.visible"
|
||||
:ext="['.txt']"
|
||||
:size="10"
|
||||
>
|
||||
<template #default>
|
||||
<a-textarea
|
||||
|
||||
@@ -30,7 +30,7 @@ let queryParams = reactive({
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
pageSize: 20,
|
||||
pageSize: 50,
|
||||
});
|
||||
|
||||
/**查询参数重置 */
|
||||
@@ -40,10 +40,10 @@ function fnQueryReset() {
|
||||
msisdn: '',
|
||||
tenantName: '',
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
pageSize: 50,
|
||||
});
|
||||
tablePagination.current = 1;
|
||||
tablePagination.pageSize = 20;
|
||||
tablePagination.pageSize = 50;
|
||||
fnGetList();
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@ type TabeStateType = {
|
||||
let tableState: TabeStateType = reactive({
|
||||
loading: false,
|
||||
size: 'middle',
|
||||
seached: false,
|
||||
seached: true,
|
||||
data: [],
|
||||
selectedRowKeys: [],
|
||||
});
|
||||
@@ -146,17 +146,13 @@ let tablePagination = reactive({
|
||||
/**当前页数 */
|
||||
current: 1,
|
||||
/**每页条数 */
|
||||
pageSize: 20,
|
||||
/**默认的每页条数 */
|
||||
defaultPageSize: 20,
|
||||
/**指定每页可以显示多少条 */
|
||||
pageSizeOptions: ['10', '20', '50', '100'],
|
||||
pageSize: 50,
|
||||
/**只有一页时是否隐藏分页器 */
|
||||
hideOnSinglePage: false,
|
||||
/**是否可以快速跳转至某页 */
|
||||
showQuickJumper: true,
|
||||
/**是否可以改变 pageSize */
|
||||
showSizeChanger: true,
|
||||
showSizeChanger: false,
|
||||
/**数据总数 */
|
||||
total: 0,
|
||||
showTotal: (total: number) => t('common.tablePaginationTotal', { total }),
|
||||
@@ -448,12 +444,13 @@ onMounted(() => {
|
||||
</a-card>
|
||||
|
||||
<!-- 详情框 -->
|
||||
<DraggableModal
|
||||
width="800px"
|
||||
<ProModal
|
||||
:drag="true"
|
||||
:width="800"
|
||||
:visible="modalState.visibleByView"
|
||||
:title="modalState.title"
|
||||
@cancel="fnModalCancel"
|
||||
:footer="null"
|
||||
:footer="false"
|
||||
>
|
||||
<a-form layout="horizontal" labelAlign="left" :labelWrap="false">
|
||||
<a-row :gutter="8">
|
||||
@@ -505,7 +502,7 @@ onMounted(() => {
|
||||
</a-descriptions-item>
|
||||
</a-descriptions>
|
||||
</a-form>
|
||||
</DraggableModal>
|
||||
</ProModal>
|
||||
</PageContainer>
|
||||
</template>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user