Merge branch 'main-v2' into lite-ba

This commit is contained in:
TsMask
2025-10-14 18:08:12 +08:00
21 changed files with 205 additions and 122 deletions

View File

@@ -1,5 +1,12 @@
# 版本发布日志
## 2.2510.2-20251011
- 新增 UDM-auth数据导出按钮权限定义
- 新增 SMSC-CDR添加结果原因说明
- 优化 移除CDR/UE/网元版本/授权列表显示ID列
- 修复 MML回车undefined问题关闭搜索匹配
## 2.2509.4-20250926
- 优化 UDM数据显示创建时间列

View File

@@ -1361,6 +1361,7 @@ export default {
deleteTipErr: "Failed to delete file",
sysloginLog:'System Login Log',
sysOperateLog:'System Operation Log',
neLog:'NE Log',
cdrIMS:'CDR IMS Voice',
cdrSMF:'CDR SMF Data',
cdrSMSC:'CDR SMSC SMS',

View File

@@ -1361,6 +1361,7 @@ export default {
deleteTipErr: "文件删除失败",
sysloginLog:'系统登录日志',
sysOperateLog:'系统操作日志',
neLog:'网元日志',
cdrIMS:'话单 IMS 语音',
cdrSMF:'话单 SMF 数据',
cdrSMSC:'话单 SMSC 短信',

View File

@@ -88,12 +88,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'left',
// width: 100,
// },
{
title: t('views.cbc.cbe.eventName'),
dataIndex: 'messageJson',

View File

@@ -30,6 +30,13 @@ let sourceState = reactive({
label: t('views.logManage.exportFile.sysOperateLog'),
path: '/usr/local/omc/backup',
},
{
value: '/log/ne_log',
label: t('views.logManage.exportFile.neLog'),
path: '/usr/local/omc/backup',
},
{
value: '/cdr/ims',
label: t('views.logManage.exportFile.cdrIMS'),
@@ -284,9 +291,31 @@ function fnRecordDelete(row: Record<string, any>) {
});
}
/**访问路径 */
let nePathArr = ref<string[]>([]);
/**进入目录 */
function fnDirCD(dir: string, index?: number) {
if (index === undefined) {
nePathArr.value.push(dir);
queryParams.path = nePathArr.value.join('/');
fnGetList(1);
return;
}
if (index === 0) {
nePathArr.value = [nePathArr.value[0]];
queryParams.path = nePathArr.value.join('/');
fnGetList(1);
} else {
nePathArr.value = nePathArr.value.slice(0, index + 1);
queryParams.path = nePathArr.value.join('/');
fnGetList(1);
}
}
/**网元类型选择对应修改 */
function fnNeChange(_: any, opt: any) {
queryParams.path = `${opt.path}${opt.value}`;
nePathArr.value = [`${opt.path}${opt.value}`];
queryParams.path = nePathArr.value.join('/');
ftpInfo.path = queryParams.path;
ftpInfo.tag = opt.value;
fnGetList(1);
@@ -388,8 +417,12 @@ onMounted(() => {
<span>{{ t('views.logManage.neFile.nePath') }}:</span>&nbsp;
<a-col>
<a-breadcrumb>
<a-breadcrumb-item>
{{ queryParams.path }}
<a-breadcrumb-item
v-for="(path, index) in nePathArr"
:key="path"
@click="fnDirCD(path, index)"
>
{{ path }}
</a-breadcrumb-item>
</a-breadcrumb>
</a-col>
@@ -463,6 +496,15 @@ onMounted(() => {
<template #icon><DeleteOutlined /></template>
</a-button>
</a-tooltip>
<a-button
type="link"
:loading="downLoading"
@click.prevent="fnDirCD(record.fileName)"
v-if="record.fileType === 'dir'"
>
<template #icon><FolderOutlined /></template>
{{ t('views.logManage.neFile.dirCd') }}
</a-button>
</a-space>
</template>
</template>

View File

@@ -49,15 +49,15 @@ function fnCacheKeyInfo(cacheKey: string) {
/**键名列表表格字段列 */
let cacheKeyTableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'num',
width: '50px',
align: 'center',
customRender(opt) {
return opt.index + 1;
},
},
// {
// title: t('common.rowId'),
// dataIndex: 'num',
// width: '50px',
// align: 'center',
// customRender(opt) {
// return opt.index + 1;
// },
// },
{
title: t('views.monitor.cache.cacheKey'),
dataIndex: 'cacheKey',
@@ -152,15 +152,15 @@ let cacheNameTable = reactive({
/**缓存列表表格字段列 */
let cacheNameTableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'num',
width: '50px',
align: 'center',
customRender(opt) {
return opt.index + 1;
},
},
// {
// title: t('common.rowId'),
// dataIndex: 'num',
// width: '50px',
// align: 'center',
// customRender(opt) {
// return opt.index + 1;
// },
// },
{
title: t('views.monitor.cache.cacheName'),
dataIndex: 'cacheName',

View File

@@ -98,11 +98,11 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'jobId',
align: 'center',
},
// {
// title: t('common.rowId'),
// dataIndex: 'jobId',
// align: 'center',
// },
{
title: t('views.monitor.job.jobName'),
dataIndex: 'jobName',
@@ -680,14 +680,14 @@ onMounted(() => {
<template #icon><ExportOutlined /></template>
{{ t('common.export') }}
</a-button>
<a-button
<!-- <a-button
type="default"
@click.prevent="fnJobLogView()"
v-perms:has="['monitor:job:query']"
>
<template #icon><ContainerOutlined /></template>
{{ t('views.monitor.job.jobLog') }}
</a-button>
</a-button> -->
<a-button
type="dashed"
danger
@@ -755,11 +755,13 @@ onMounted(() => {
:size="tableState.size"
:pagination="tablePagination"
:scroll="{ x: tableColumns.length * 120 }"
:row-selection="{
:row-selection="hasPermissions(['monitor:job:remove'])
? {
type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys,
onChange: fnTableSelectedRowKeys,
}"
}
: undefined"
>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'jobGroup'">

View File

@@ -117,12 +117,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'logId',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'logId',
// align: 'left',
// width: 100,
// },
{
title: t('views.monitor.jobLog.jobName'),
dataIndex: 'jobName',
@@ -247,6 +247,13 @@ let modalState: ModalStateType = reactive({
*/
function fnModalVisibleByVive(row: Record<string, string>) {
modalState.from = Object.assign(modalState.from, row);
try {
modalState.from.jobMsg = JSON.stringify(
JSON.parse(modalState.from.jobMsg),
null,
4
);
} catch (_) {}
modalState.title = t('views.monitor.jobLog.viewLog');
modalState.open = true;
}

View File

@@ -41,16 +41,16 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'num',
width: '50px',
align: 'left',
customRender(opt) {
const idxNum = (tablePagination.current - 1) * tablePagination.pageSize;
return idxNum + opt.index + 1;
},
},
// {
// title: t('common.rowId'),
// dataIndex: 'num',
// width: '50px',
// align: 'left',
// customRender(opt) {
// const idxNum = (tablePagination.current - 1) * tablePagination.pageSize;
// return idxNum + opt.index + 1;
// },
// },
{
title: t('views.monitor.online.mettingId'),
dataIndex: 'tokenId',

View File

@@ -10,6 +10,7 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import useNeListStore from '@/store/modules/ne_list';
import useI18n from '@/hooks/useI18n';
import ViewDrawer from './components/ViewDrawer.vue';
import BackupModal from '@/views/ne/neConfigBackup/components/BackupModal.vue';
import saveAs from 'file-saver';
import { useRoute } from 'vue-router';
import { parseSizeFromFile } from '@/utils/parse-utils';
@@ -282,6 +283,12 @@ function fnDrawerOpen(row: Record<string, any>) {
viewDrawerState.open = !viewDrawerState.open;
}
/**打开FTP配置窗口 */
const openFTPModal = ref<boolean>(false);
function fnFTPModalOpen() {
openFTPModal.value = !openFTPModal.value;
}
onMounted(() => {
if (routeParams.neType) {
neTypeSelect.value = [routeParams.neType, routeParams.neId];
@@ -327,6 +334,18 @@ onMounted(() => {
<!-- 插槽-卡片右侧 -->
<template #extra>
<a-space :size="8" align="center">
<a-tooltip placement="topRight">
<template #title>
{{ t('views.ne.neConfigBackup.backupModal.title') }}
</template>
<a-button
type="text"
@click.prevent="fnFTPModalOpen()"
v-perms:has="['ne-data:backup-data:ftp']"
>
<template #icon><DeliveredProcedureOutlined /></template>
</a-button>
</a-tooltip>
<a-tooltip>
<template #title>{{ t('common.reloadText') }}</template>
<a-button type="text" @click.prevent="fnGetList()">
@@ -387,6 +406,9 @@ onMounted(() => {
:ne-type="viewDrawerState.neType"
:ne-id="viewDrawerState.neId"
></ViewDrawer>
<!-- FTP配置窗口 -->
<BackupModal v-model:open="openFTPModal"></BackupModal>
</PageContainer>
</template>

View File

@@ -80,12 +80,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'center',
width: 50,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'center',
// width: 50,
// },
{
title: t('views.ne.neHost.hostType'),
dataIndex: 'hostType',

View File

@@ -78,12 +78,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'cmdId',
align: 'center',
width: 50,
},
// {
// title: t('common.rowId'),
// dataIndex: 'cmdId',
// align: 'center',
// width: 50,
// },
{
title: t('views.ne.neHostCmd.cmdType'),
dataIndex: 'cmdType',

View File

@@ -83,12 +83,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns = ref<TableColumnsType>([
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'left',
// width: 100,
// },
{
title: t('views.ne.common.neType'),
dataIndex: 'neType',

View File

@@ -109,12 +109,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns = ref<ColumnsType>([
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'left',
width: 80,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'left',
// width: 80,
// },
{
title: t('views.neData.baseStation.name'),
dataIndex: 'name',

View File

@@ -80,12 +80,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns = ref<ColumnsType>([
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'left',
// width: 100,
// },
{
title: 'NE Type',
dataIndex: 'neType',

View File

@@ -77,11 +77,11 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'center',
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'center',
// },
{
title: t('views.perfManage.taskManage.neType'),
dataIndex: 'neType',

View File

@@ -21,6 +21,7 @@ import useDictStore from '@/store/modules/dict';
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import useI18n from '@/hooks/useI18n';
import type { Dayjs } from 'dayjs';
import { hasPermissions } from '@/plugins/auth-user';
const { t } = useI18n();
const { getDict } = useDictStore();
@@ -95,12 +96,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns = ref<ColumnsType>([
{
title: t('common.rowId'),
dataIndex: 'configId',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'configId',
// align: 'left',
// width: 100,
// },
{
title: t('views.system.config.configName'),
dataIndex: 'configName',
@@ -665,11 +666,11 @@ onMounted(() => {
:size="tableState.size"
:pagination="tablePagination"
:scroll="{ x: tableColumns.length * 120 }"
:row-selection="{
:row-selection="hasPermissions(['system:config:remove']) ? {
type: 'checkbox',
selectedRowKeys: tableState.selectedRowKeys,
onChange: fnTableSelectedRowKeys,
}"
}: undefined"
>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'configType'">

View File

@@ -83,12 +83,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns = ref<ColumnsType>([
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'left',
// width: 100,
// },
{
title: t('views.system.loginSource.uid'),
dataIndex: 'uid',

View File

@@ -65,12 +65,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'center',
width: 50,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'center',
// width: 50,
// },
{
title: t('views.ne.neHost.hostType'),
dataIndex: 'hostType',

View File

@@ -83,12 +83,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = reactive([
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'right',
width: 50,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'right',
// width: 50,
// },
{
title: t('views.traceManage.task.imsi'),
dataIndex: 'imsi',

View File

@@ -95,12 +95,12 @@ let tableState: TabeStateType = reactive({
/**表格字段列 */
let tableColumns: ColumnsType = [
{
title: t('common.rowId'),
dataIndex: 'id',
align: 'left',
width: 100,
},
// {
// title: t('common.rowId'),
// dataIndex: 'id',
// align: 'left',
// width: 100,
// },
{
title: t('views.traceManage.task.msgNe'),
dataIndex: 'msgNe',