Compare commits
84 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
254c49d894 | ||
|
|
847517fdfe | ||
|
|
2f839f7178 | ||
|
|
54cf296d2f | ||
|
|
e8e7a97963 | ||
|
|
6470ed5bc1 | ||
|
|
e943b4dedc | ||
|
|
2319cdf36b | ||
|
|
7916cc5a54 | ||
|
|
54468e2728 | ||
|
|
91ce2d7737 | ||
|
|
40705c6863 | ||
|
|
c43e57a5d8 | ||
|
|
037fb18e06 | ||
|
|
8eaddc8e79 | ||
|
|
a7b539cd36 | ||
|
|
0514c58b63 | ||
|
|
6a558788c7 | ||
|
|
253e36073d | ||
|
|
3d7543074d | ||
|
|
91175acd31 | ||
|
|
a7c2d25c5d | ||
|
|
cd495ab817 | ||
|
|
3229f21bcf | ||
|
|
33ffbbe4b2 | ||
|
|
2b4ce5f1c4 | ||
|
|
8a31265743 | ||
|
|
2492555a69 | ||
|
|
6644ef2608 | ||
|
|
1359aa8994 | ||
|
|
bffd3fe791 | ||
|
|
c020598678 | ||
|
|
7a7a0938ca | ||
|
|
48a4497c14 | ||
|
|
1342a37d50 | ||
|
|
67dc3a0389 | ||
|
|
7901b34c04 | ||
|
|
6aeb645d88 | ||
|
|
501fc4fd07 | ||
|
|
b16a91ca74 | ||
|
|
37691e5349 | ||
|
|
e4136a27ee | ||
|
|
27bcf0ce6b | ||
|
|
6ca7181bce | ||
|
|
a0ae414ec6 | ||
|
|
ef3368ded9 | ||
|
|
abdd58fc81 | ||
|
|
6572fd13b1 | ||
|
|
e190379468 | ||
|
|
6b2682b3d3 | ||
|
|
bbc27c757b | ||
|
|
cf88c86b75 | ||
|
|
aa16a7356f | ||
|
|
e982f09874 | ||
|
|
9e69e76670 | ||
|
|
ad373961e4 | ||
|
|
26da73654f | ||
|
|
09b7d806ea | ||
|
|
b5400b0dd8 | ||
|
|
b5b9e763aa | ||
|
|
fb20e40e67 | ||
|
|
a19427e953 | ||
|
|
a76c595c4c | ||
|
|
ee55be5fcc | ||
|
|
96c1f54b71 | ||
|
|
8b6805fdb0 | ||
|
|
f5cdad08c5 | ||
|
|
10a5ed15bf | ||
|
|
ab7a466879 | ||
|
|
82b1340906 | ||
|
|
46ace81d9d | ||
|
|
73993eb4ce | ||
|
|
dd9bcaa7ce | ||
|
|
27b2cfb449 | ||
|
|
3eae546aa4 | ||
|
|
818f91ad89 | ||
|
|
594e439b43 | ||
|
|
a0ae95345c | ||
|
|
2e23709fe4 | ||
|
|
c80e7f17de | ||
|
|
799eacc9fa | ||
|
|
8e769a99e9 | ||
|
|
93ea37bbc1 | ||
|
|
e3f70640b8 |
@@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC"
|
||||
VITE_APP_CODE = "OMC"
|
||||
|
||||
# 应用版本
|
||||
VITE_APP_VERSION = "2.2506.4"
|
||||
VITE_APP_VERSION = "local-dev"
|
||||
|
||||
# 接口基础URL地址-不带/后缀
|
||||
VITE_API_BASE_URL = "/omc-api"
|
||||
|
||||
@@ -11,7 +11,7 @@ VITE_APP_NAME = "Core Network OMC"
|
||||
VITE_APP_CODE = "OMC"
|
||||
|
||||
# 应用版本
|
||||
VITE_APP_VERSION = "2.2506.4"
|
||||
VITE_APP_VERSION = "local-prod"
|
||||
|
||||
# 接口基础URL地址-不带/后缀
|
||||
VITE_API_BASE_URL = "/omc-api"
|
||||
|
||||
54
CHANGELOG.md
54
CHANGELOG.md
@@ -1,5 +1,59 @@
|
||||
# 版本发布日志
|
||||
|
||||
## 2.2508.2-20250815
|
||||
|
||||
- 优化 给config.js加随机数避免缓存
|
||||
- 新增 第三方登录认证功能和管理页,第三方用户不可删除和修改密码
|
||||
- 优化 系统操作日志详情json格式化显示
|
||||
- 优化 网元信息更新禁止修改neType neId
|
||||
- 修复 用户数累加问题修复,液体图中浮标显示错误修复
|
||||
- 修复 基站数修复以及资源模块下拉框修复
|
||||
- 修复 告警事件时间显示不是时间格式字符串
|
||||
- 修复 透明柱状图自适应,数值标签定位
|
||||
- 修复 告警数据参数调整
|
||||
|
||||
## 2.2508.1-20250808
|
||||
|
||||
- 修复 UDM鉴权更新ki长度提示错误无法发送请求
|
||||
- 优化 MML命令为空判断不发送,MML日志列表显示
|
||||
- 优化 关闭网元reload操作,只有amf smf upf udm四个网元支持,改用mml发送
|
||||
- 优化 网元概览隐藏容量字段显示,CBC创建时间格式显示错误
|
||||
- 优化 系统用户账号简单4位长度
|
||||
- 修复 看板2用户数量显示不出,修改广播帮助的数量提示
|
||||
- 优化 性能栏目相关页面主动呼叫改正在通话,网元切换清除缓存数据
|
||||
|
||||
## 2.2507.4-20250801
|
||||
|
||||
- 新增 cbc界面
|
||||
- 修复 数据处理修复,显示优化
|
||||
- 修复 告警模块优化,底部边距,数据采集说明
|
||||
|
||||
## 2.2507.3-20250725
|
||||
|
||||
- 优化 将UDM鉴权导出按钮隐藏
|
||||
- 修复 自定义指标数值格式处理,导出表格修复
|
||||
- 修复 仪表盘2用户事件显示不正常
|
||||
- 修复 自定义指标数值格式化保留3位小数
|
||||
- 优化 参数配置AMF导入Index字段存在更新,不存在默认新增
|
||||
|
||||
## 2.2507.2-20250718
|
||||
|
||||
- 优化 变更nssf/n3iwf接口调用
|
||||
- 优化 调整告警类型参数值,参数配置列表项不记录勾选状态
|
||||
- 优化 调整UE数据返回参数
|
||||
- 修复 基站状态拓扑图显示失败
|
||||
- 修复 基站状态记录和smscCDR导出改为get行为
|
||||
- 新增 mt版本移动过来的的告警/仪表/性能大屏页面
|
||||
- 移除 删除无用文件
|
||||
- 修复 指标页面数据获取异常接口调整
|
||||
|
||||
## 2.2507.1-20250705
|
||||
|
||||
- 修复 缓存管理列表key查询URL路径错误
|
||||
- 优化 SMF-Date显示图表日期显示不完整,改日期格式
|
||||
- 修复 跟踪任务编号的传入获取信息不一致
|
||||
- 修复 参数配置可见visible属性判断
|
||||
|
||||
## 2.2506.4-20250627
|
||||
|
||||
- 修复 UDM-IMS数据批量新增/批量删除命令调整
|
||||
|
||||
12
index.html
12
index.html
@@ -2,14 +2,18 @@
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="google" content="notranslate">
|
||||
<meta name="google" content="notranslate" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>loading...</title>
|
||||
<link rel="icon" href="/favicon.ico" />
|
||||
<link rel="preload" href="/loading.js" as="script">
|
||||
<link rel="preload" href="/loading.js" as="script" />
|
||||
<script async src="/loading.js"></script>
|
||||
<link rel="preload" href="/config.js" as="script">
|
||||
<script async src="/config.js"></script>
|
||||
<script>
|
||||
var script = document.createElement('script');
|
||||
script.src = '/config.js?nocache=' + new Date().getTime();
|
||||
script.async = true;
|
||||
document.head.appendChild(script);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
|
||||
22
package.json
22
package.json
@@ -14,9 +14,9 @@
|
||||
"dependencies": {
|
||||
"@ant-design/icons-vue": "7.0.1",
|
||||
"@antv/g6": "4.8.25",
|
||||
"@codemirror/lang-javascript": "6.2.4",
|
||||
"@codemirror/lang-javascript": "6.2.3",
|
||||
"@codemirror/lang-yaml": "6.1.2",
|
||||
"@codemirror/merge": "6.10.2",
|
||||
"@codemirror/merge": "6.10.0",
|
||||
"@codemirror/theme-one-dark": "6.1.2",
|
||||
"@tato30/vue-pdf": "1.11.3",
|
||||
"@vueuse/core": "13.0.0",
|
||||
@@ -24,21 +24,23 @@
|
||||
"@xterm/xterm": "5.5.0",
|
||||
"ant-design-vue": "4.2.6",
|
||||
"antdv-pro-layout": "4.2.0",
|
||||
"antdv-pro-modal": "4.0.9",
|
||||
"antdv-pro-modal": "4.0.8",
|
||||
"codemirror": "6.0.1",
|
||||
"crypto-js": "4.2.0",
|
||||
"dayjs": "1.11.13",
|
||||
"echarts": "5.6.0",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"file-saver": "2.0.5",
|
||||
"grid-layout-plus": "1.0.6",
|
||||
"intl-tel-input": "25.2.0",
|
||||
"js-base64": "^3.7.7",
|
||||
"js-cookie": "^3.0.5",
|
||||
"localforage": "^1.10.0",
|
||||
"nprogress": "^0.2.0",
|
||||
"p-queue": "8.0.1",
|
||||
"pinia": "3.0.3",
|
||||
"vue": "3.5.16",
|
||||
"vue-i18n": "11.1.5",
|
||||
"pinia": "2.3.0",
|
||||
"vue": "3.5.13",
|
||||
"vue-i18n": "11.1.2",
|
||||
"vue-router": "4.5.0",
|
||||
"vue3-smooth-dnd": "0.0.6",
|
||||
"xlsx": "0.18.5"
|
||||
@@ -49,12 +51,12 @@
|
||||
"@types/js-cookie": "3.0.6",
|
||||
"@types/node": "^18.0.0",
|
||||
"@types/nprogress": "0.2.3",
|
||||
"@vitejs/plugin-vue": "5.2.4",
|
||||
"less": "4.3.0",
|
||||
"@vitejs/plugin-vue": "5.2.3",
|
||||
"less": "4.2.2",
|
||||
"typescript": "5.8.2",
|
||||
"unplugin-vue-components": "0.28.0",
|
||||
"vite": "6.3.5",
|
||||
"vite": "6.3.3",
|
||||
"vite-plugin-compression": "0.5.1",
|
||||
"vue-tsc": "2.2.10"
|
||||
"vue-tsc": "2.2.8"
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,2 +1,3 @@
|
||||
#imsi,msisdn,sess_rules,pcc_rules,hdr_enrich,rfsp,sar,qos_audio,qos_video,online,offline
|
||||
# !!! Remove lines containing the # symbol when importing files.
|
||||
#imsi,msisdn,sess_rules,pcc_rules,hdr_enrich,rfsp,sar,qos_audio,qos_video
|
||||
460996650000580,62357000580,internet|ims_sig,internet|ims_sig,dnn,1,def_sar,qos_audio,qos_video,0,0
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# !!! Remove lines containing the # symbol when importing files.
|
||||
#imsi,ki,aigoIndex,amf,opc
|
||||
460996650000580,1234567890ABCDEF1234567890ABCDEF,0,8000
|
||||
460996650000581,1234567890ABCDEF1234567890ABCDEF,0,8000
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
# !!! Remove lines containing the # symbol when importing files.
|
||||
#IMSI,MSISDN,UeAmbrTpl,NssaiTpl,AreaForbiddenTpl,ServiceAreaRestrictionTpl,RatRestrictions,CnTypeRestrictions,SmfSel,SmData,EPSDat
|
||||
460996650000580,62357000580,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&content&ims,1,64,24,65,def_eps,1,010200000000,-
|
||||
460996650000581,62357000581,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&content&ims,1,64,24,65,def_eps,1,010200000000,-
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# !!! Remove lines containing the # symbol when importing files.
|
||||
#username,password
|
||||
62357000580,123456
|
||||
62357000581,123456
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# !!! Remove lines containing the # symbol when importing files.
|
||||
#vlote=0 MSISDN and IMSI need to be filled in the same way.
|
||||
#imsi,msisdn,vlote,vni
|
||||
460996650000580,62357000580,1,ims.mnc000.mcc460.3gppnetwork.org
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { sessionGet } from '@/utils/cache-session-utils';
|
||||
|
||||
/**
|
||||
* 登录方法
|
||||
@@ -87,3 +88,69 @@ export function getCaptchaImage() {
|
||||
whithToken: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录认证源
|
||||
* @returns object
|
||||
*/
|
||||
export function getLoginSource() {
|
||||
return request({
|
||||
url: '/auth/login/source',
|
||||
method: 'GET',
|
||||
whithToken: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* LDAP登录
|
||||
* @returns object
|
||||
*/
|
||||
export function loginLDAP(data: Record<string, string>) {
|
||||
return request({
|
||||
url: '/auth/login/ldap',
|
||||
method: 'POST',
|
||||
data: data,
|
||||
whithToken: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* SMTP登录
|
||||
* @returns object
|
||||
*/
|
||||
export function loginSMTP(data: Record<string, string>) {
|
||||
return request({
|
||||
url: '/auth/login/smtp',
|
||||
method: 'POST',
|
||||
data: data,
|
||||
whithToken: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录认证源OAuth2跳转登录URL
|
||||
* @returns object
|
||||
*/
|
||||
export function loginOAuth2URL(state: string): string {
|
||||
// 兼容旧前端可改配置文件
|
||||
const baseUrl = import.meta.env.PROD
|
||||
? sessionGet('baseUrl') || import.meta.env.VITE_API_BASE_URL
|
||||
: import.meta.env.VITE_API_BASE_URL;
|
||||
return `${baseUrl}/auth/login/oauth2/authorize?state=${state}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录认证源OAuth2认证登录
|
||||
* @returns object
|
||||
*/
|
||||
export function loginOAuth2Token(code: string, state: string) {
|
||||
return request({
|
||||
url: '/auth/login/oauth2/token',
|
||||
method: 'POST',
|
||||
data: {
|
||||
code,
|
||||
state,
|
||||
},
|
||||
whithToken: false,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
import {
|
||||
RESULT_CODE_ERROR,
|
||||
RESULT_CODE_SUCCESS,
|
||||
RESULT_MSG_ERROR,
|
||||
} from '@/constants/result-constants';
|
||||
import { language, request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 更新网元配置重新载入
|
||||
* @param neType 网元类型
|
||||
* @param neId 网元ID
|
||||
* @returns
|
||||
*/
|
||||
export async function updateNeConfigReload(neType: string, neId: string) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/operationManagement/v1/elementType/${neType}/objectType/mml?ne_id=${neId}`,
|
||||
method: 'POST',
|
||||
data: { mml: ['reload'] },
|
||||
timeout: 180_000,
|
||||
});
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
const v = result.data.data[0];
|
||||
const str = v.toLowerCase();
|
||||
if (str.indexOf('ok') !== -1) {
|
||||
delete result.data;
|
||||
} else if (str.indexOf('success') !== -1) {
|
||||
delete result.data;
|
||||
} else {
|
||||
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -9,11 +9,11 @@ import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
export async function getActiveAlarmTotal() {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/neData/alarm/list`,
|
||||
url: `/ne/data/alarm/list`,
|
||||
method: 'GET',
|
||||
params: {
|
||||
alarmStatus: '1',
|
||||
sortField: 'event_time',
|
||||
alarmStatus: 'Active',
|
||||
sortField: 'createdTime',
|
||||
sortOrder: 'desc',
|
||||
pageNum: 1,
|
||||
pageSize: 1,
|
||||
@@ -34,7 +34,7 @@ export async function getActiveAlarmTotal() {
|
||||
*/
|
||||
export async function listAct(query: Record<string, any>) {
|
||||
return await request({
|
||||
url: `/neData/alarm/list`,
|
||||
url: `/ne/data/alarm/list`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
@@ -42,18 +42,15 @@ export async function listAct(query: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* 确认告警信息
|
||||
* @param ids 记录ID
|
||||
* @param id 记录ID
|
||||
* @param state 状态 true确认 false取消确认
|
||||
* @returns object
|
||||
*/
|
||||
export function ackAlarm(ids: number[], state: boolean) {
|
||||
export function ackAlarm(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/alarm/ack'`,
|
||||
url: `/ne/data/alarm/ack'`,
|
||||
method: 'PUT',
|
||||
data: {
|
||||
ids: ids,
|
||||
ackState: state,
|
||||
},
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -105,14 +102,14 @@ export function getPass() {
|
||||
|
||||
/**
|
||||
* 清除告警信息
|
||||
* @param ids 记录ID
|
||||
* @param id 记录ID
|
||||
* @returns object
|
||||
*/
|
||||
export function clearAlarm(ids: number[]) {
|
||||
export function clearAlarm(id: number | string) {
|
||||
return request({
|
||||
url: `/neData/alarm/clear`,
|
||||
url: `/ne/data/alarm/clear`,
|
||||
method: 'PUT',
|
||||
data: { ids },
|
||||
data: { id },
|
||||
});
|
||||
}
|
||||
|
||||
@@ -123,11 +120,11 @@ export function clearAlarm(ids: number[]) {
|
||||
*/
|
||||
export function exportAlarm(params: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/alarm/export',
|
||||
url: '/ne/data/alarm/export',
|
||||
method: 'GET',
|
||||
params: params,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -193,34 +190,14 @@ export async function exportAll(query: Record<string, any>) {
|
||||
* @param query 查询参数
|
||||
* @returns bolb
|
||||
*/
|
||||
export async function origGet() {
|
||||
let totalSQL = `select count(*) as value,orig_severity as name from alarm WHERE alarm_status='1' and orig_severity!='Event' group by orig_severity`;
|
||||
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
|
||||
export async function origGet(alarmStatus: 'Active' | 'Clear') {
|
||||
return await request({
|
||||
url: `/ne/data/alarm/count/severity`,
|
||||
method: 'GET',
|
||||
params: {
|
||||
SQL: totalSQL,
|
||||
alarmStatus: alarmStatus,
|
||||
},
|
||||
timeout: 30_000,
|
||||
});
|
||||
////
|
||||
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS) {
|
||||
const itemData = result.data.data;
|
||||
if (Array.isArray(itemData)) {
|
||||
const v = itemData[0]['alarm'];
|
||||
if (Array.isArray(v)) {
|
||||
result.data = v;
|
||||
}
|
||||
if (v === null) {
|
||||
result.data = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -228,34 +205,13 @@ export async function origGet() {
|
||||
* @param filterFlag 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function top3Sel(filterFlag?: string) {
|
||||
let filter = ` WHERE alarm_status='1'and orig_severity='${filterFlag}'`;
|
||||
if (!filterFlag) filter = "WHERE alarm_status='1'";
|
||||
|
||||
let top3SQL = `select count(*) as value,ne_type as name from alarm ${filter} and orig_severity!='Event' group by ne_type ORDER BY value desc limit 0,3 `;
|
||||
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
|
||||
export async function top3Sel(alarmStatus: 'Active' | 'Clear') {
|
||||
return await request({
|
||||
url: `/ne/data/alarm/count/top`,
|
||||
method: 'GET',
|
||||
params: {
|
||||
SQL: top3SQL,
|
||||
alarmStatus: alarmStatus,
|
||||
top: 3,
|
||||
},
|
||||
timeout: 30_000,
|
||||
});
|
||||
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS) {
|
||||
const itemData = result.data.data;
|
||||
if (Array.isArray(itemData)) {
|
||||
const v = itemData[0]['alarm'];
|
||||
if (Array.isArray(v)) {
|
||||
result.data = v;
|
||||
}
|
||||
if (v === null) {
|
||||
result.data = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
*/
|
||||
export async function listAct(query: Record<string, any>) {
|
||||
return await request({
|
||||
url: `/neData/alarm/log/event`,
|
||||
url: `/ne/data/alarm/log/event`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export async function listAlarm(query: Record<string, any>) {
|
||||
return await request({
|
||||
url: `/neData/alarm/log/list`,
|
||||
url: `/ne/data/alarm/log/list`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
import { CACHE_SESSION_CRYPTO_API } from '@/constants/cache-keys-constants';
|
||||
import { sessionGet } from '@/utils/cache-session-utils';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 获取下拉框数据
|
||||
* @returns object
|
||||
*/
|
||||
export function getBakFile() {
|
||||
return request({
|
||||
url: '/lm/table/list',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取对应类型的文件列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function getBakFileList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/lm/file/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载远端文件
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function downFile(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/lm/file/${query.fileName}`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除远端获取文件
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function delFile(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/lm/file/${query.fileName}`,
|
||||
method: 'DELETE',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export async function listForwarding(query: Record<string, any>) {
|
||||
return await request({
|
||||
url: `/neData/alarm/forward/log/list`,
|
||||
url: `/ne/data/alarm/forward/log/list`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询日志列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listMML(query: Record<string, any>) {
|
||||
let totalSQL = 'select count(*) as total from mml_log where 1=1 ';
|
||||
let rowsSQL = 'select * from mml_log where 1=1 ';
|
||||
|
||||
// 查询
|
||||
let querySQL = '';
|
||||
if (query.accountName) {
|
||||
querySQL += ` and user like '%${query.accountName}%' `;
|
||||
}
|
||||
if (query.beginTime) {
|
||||
querySQL += ` and log_time >= '${query.beginTime}' `;
|
||||
}
|
||||
if (query.endTime) {
|
||||
querySQL += ` and log_time <= '${query.endTime}' `;
|
||||
}
|
||||
|
||||
// 排序
|
||||
let sortSql = ' order by log_time ';
|
||||
if (query.sortOrder === 'asc') {
|
||||
sortSql += ' asc ';
|
||||
} else {
|
||||
sortSql += ' desc ';
|
||||
}
|
||||
|
||||
// 分页
|
||||
const pageNum = (query.pageNum - 1) * query.pageSize;
|
||||
const limtSql = ` limit ${pageNum},${query.pageSize} `;
|
||||
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/databaseManagement/v1/select/omc_db/mml_log`,
|
||||
method: 'GET',
|
||||
params: {
|
||||
totalSQL: totalSQL + querySQL,
|
||||
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
|
||||
},
|
||||
});
|
||||
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS) {
|
||||
const data = {
|
||||
data: { total: 0, rows: [] as any },
|
||||
code: result.code,
|
||||
msg: result.msg,
|
||||
};
|
||||
result.data.data.forEach((item: any) => {
|
||||
const itemData = item['mml_log'];
|
||||
if (Array.isArray(itemData)) {
|
||||
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
|
||||
data.data.total = itemData[0]['total'];
|
||||
} else {
|
||||
data.data.rows = itemData.map(v => parseObjLineToHump(v));
|
||||
}
|
||||
}
|
||||
});
|
||||
return data;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询日志列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listSecurityLog(query: Record<string, any>) {
|
||||
let totalSQL = 'select count(*) as total from security_log where 1=1 ';
|
||||
let rowsSQL = 'select * from security_log where 1=1 ';
|
||||
|
||||
// 查询
|
||||
let querySQL = '';
|
||||
if (query.accountName) {
|
||||
querySQL += ` and account_name like '%${query.accountName}%' `;
|
||||
}
|
||||
if (query.opType) {
|
||||
querySQL += ` and op_type = '${query.opType}' `;
|
||||
}
|
||||
if (query.beginTime) {
|
||||
querySQL += ` and op_time >= '${query.beginTime}' `;
|
||||
}
|
||||
if (query.endTime) {
|
||||
querySQL += ` and op_time <= '${query.endTime}' `;
|
||||
}
|
||||
|
||||
// 排序
|
||||
let sortSql = ' order by op_time ';
|
||||
if (query.sortOrder === 'asc') {
|
||||
sortSql += ' asc ';
|
||||
} else {
|
||||
sortSql += ' desc ';
|
||||
}
|
||||
|
||||
// 分页
|
||||
const pageNum = (query.pageNum - 1) * query.pageSize;
|
||||
const limtSql = ` limit ${pageNum},${query.pageSize} `;
|
||||
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/databaseManagement/v1/select/omc_db/security_log`,
|
||||
method: 'GET',
|
||||
params: {
|
||||
totalSQL: totalSQL + querySQL,
|
||||
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
|
||||
},
|
||||
});
|
||||
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS) {
|
||||
const data = {
|
||||
data: { total: 0, rows: [] as any },
|
||||
code: result.code,
|
||||
msg: result.msg,
|
||||
};
|
||||
result.data.data.forEach((item: any) => {
|
||||
const itemData = item['security_log'];
|
||||
if (Array.isArray(itemData)) {
|
||||
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
|
||||
data.data.total = itemData[0]['total'];
|
||||
} else {
|
||||
data.data.rows = itemData.map(v => parseObjLineToHump(v));
|
||||
}
|
||||
}
|
||||
});
|
||||
return data;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1,6 +1,4 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询网元可用cmd命令
|
||||
@@ -8,48 +6,70 @@ import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
* @returns object
|
||||
*/
|
||||
export async function getMMLByNE(neType: string) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/mml_system`,
|
||||
return request({
|
||||
url: '/tool/mml/system/list',
|
||||
method: 'GET',
|
||||
params: {
|
||||
SQL: `select * from mml_system where ne_type = '${neType}' and status = 'Active'`,
|
||||
neType: neType,
|
||||
status: 'Active',
|
||||
pageNum: 1,
|
||||
pageSize: 1000,
|
||||
},
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询UDM可用cmd命令
|
||||
* @returns object
|
||||
*/
|
||||
export async function getMMLByUDM() {
|
||||
return request({
|
||||
url: '/tool/mml/subscriber/list',
|
||||
method: 'GET',
|
||||
params: {
|
||||
neType: 'UDM',
|
||||
status: 'Active',
|
||||
pageNum: 1,
|
||||
pageSize: 1000,
|
||||
},
|
||||
timeout: 60_000,
|
||||
});
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
let data = result.data.data[0];
|
||||
return Object.assign(result, {
|
||||
data: parseObjLineToHump(data['mml_system']),
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送网元的mml命令
|
||||
* @param neType 网元类型
|
||||
* @param coreUid 网元类型
|
||||
* @param neId 网元ID
|
||||
* @param objectType 接口类型
|
||||
* @param cmdStr 命令串
|
||||
* @returns
|
||||
*/
|
||||
export async function sendMMlByNE(
|
||||
neType: string,
|
||||
neId: string,
|
||||
objectType: string,
|
||||
cmdArr: string[]
|
||||
) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/operationManagement/v1/elementType/${neType}/objectType/${objectType}?ne_id=${neId}`,
|
||||
export async function sendMML(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/tool/mml/command',
|
||||
method: 'POST',
|
||||
data: { mml: cmdArr },
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送网元的mml命令
|
||||
* @param neUid 网元ID
|
||||
* @param cmdArr 命令数组
|
||||
* @returns
|
||||
*/
|
||||
export async function sendMMlByGeneral(neUid: string, cmdArr: string[]) {
|
||||
return request({
|
||||
url: '/tool/mml/command',
|
||||
method: 'POST',
|
||||
data: {
|
||||
neUid: neUid,
|
||||
type: 'General',
|
||||
command: cmdArr,
|
||||
},
|
||||
timeout: 180_000,
|
||||
});
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
result.data = result.data.data;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询UDM可用cmd命令
|
||||
* @returns object
|
||||
*/
|
||||
export async function getMMLByUDM() {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/mml_subscriber`,
|
||||
method: 'GET',
|
||||
params: {
|
||||
SQL: `select * from mml_subscriber where ne_type = 'UDM' and status = 'Active'`,
|
||||
},
|
||||
});
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
let data = result.data.data[0];
|
||||
return Object.assign(result, {
|
||||
data: parseObjLineToHump(data['mml_subscriber']),
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送UDM的mml命令
|
||||
* @param neId 网元ID
|
||||
* @param cmdStr 命令串
|
||||
* @returns
|
||||
*/
|
||||
export async function sendMMlByUDM(neId: string, cmdArr: string[]) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/api/rest/operationManagement/v1/elementType/UDM/objectType/mml?ne_id=${neId}`,
|
||||
method: 'POST',
|
||||
data: { mml: cmdArr },
|
||||
timeout: 180_000,
|
||||
});
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
result.data = result.data.data;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -29,7 +29,7 @@ export function listCacheName() {
|
||||
*/
|
||||
export function listCacheKey(cacheName: string) {
|
||||
return request({
|
||||
url: `/monitor/cache//keys`,
|
||||
url: `/monitor/cache/keys`,
|
||||
method: 'GET',
|
||||
params: { cacheName },
|
||||
});
|
||||
|
||||
96
src/api/ne/neAction.ts
Normal file
96
src/api/ne/neAction.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 查询网元状态
|
||||
* @param neUid 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function stateNeInfo(neUid: string) {
|
||||
return request({
|
||||
url: '/ne/info/state',
|
||||
method: 'GET',
|
||||
params: { neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询网元信息
|
||||
* @param neUid 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function getNeInfoByNF(neUid: string) {
|
||||
return request({
|
||||
url: '/ne/info/nf',
|
||||
method: 'GET',
|
||||
params: { neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端OAM配置文件读取
|
||||
* @param neUid 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function getOAMFile(neUid: string) {
|
||||
return request({
|
||||
url: '/ne/info/file/oam',
|
||||
method: 'GET',
|
||||
params: { neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端配置文件写入
|
||||
* @param neUid 网元ID
|
||||
* @param content 用json对象
|
||||
* @param sync 同步到网元
|
||||
* @returns object
|
||||
*/
|
||||
export function saveOAMFile(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/info/file/oam`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端公共配置文件读取
|
||||
* @returns object
|
||||
*/
|
||||
export function getPara5GFilee() {
|
||||
return request({
|
||||
url: '/ne/info/file/para5g',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端公共配置文件写入
|
||||
* @param content txt内容为字符串 其他文件格式都用json对象
|
||||
* @param syncNe 同步到网元端 neUid
|
||||
* @returns object
|
||||
*/
|
||||
export function savePara5GFile(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/info/file/para5g`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元服务操作
|
||||
* @param data 对象 {neUid, action}
|
||||
* @returns object
|
||||
*/
|
||||
export function serviceNeAction(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/action/service`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
@@ -68,10 +68,10 @@ export function delNeConfigData(params: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* 从参数配置PCF中获取对应信息提供给PCF用户策略输入框
|
||||
* @param neId
|
||||
* @param neUid 网元标识
|
||||
* @returns object {pccRules,sessionRules,qosTemplate,headerEnrichTemplate,serviceAreaRestriction}
|
||||
*/
|
||||
export async function getPCFRule(neId: any) {
|
||||
export async function getPCFRule(neUid: string) {
|
||||
const paramNameArr = [
|
||||
'pccRules',
|
||||
'sessionRules',
|
||||
@@ -84,7 +84,7 @@ export async function getPCFRule(neId: any) {
|
||||
reqArr.push(
|
||||
request({
|
||||
url: `/ne/config/data`,
|
||||
params: { neType: 'PCF', neId, paramName },
|
||||
params: { neType: 'PCF', neUid, paramName },
|
||||
method: 'GET',
|
||||
})
|
||||
);
|
||||
|
||||
@@ -33,11 +33,11 @@ export function updateNeConfigBackup(data: Record<string, any>) {
|
||||
* @param id 记录ID
|
||||
* @returns object
|
||||
*/
|
||||
export async function downNeConfigBackup(id: string) {
|
||||
export async function downNeConfigBackup(query: Record<string, any>) {
|
||||
return await request({
|
||||
url: '/ne/config/backup/download',
|
||||
method: 'GET',
|
||||
params: { id },
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 180_000,
|
||||
});
|
||||
@@ -48,11 +48,11 @@ export async function downNeConfigBackup(id: string) {
|
||||
* @param id 记录ID
|
||||
* @returns object
|
||||
*/
|
||||
export async function delNeConfigBackup(id: string) {
|
||||
export async function delNeConfigBackup(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/config/backup',
|
||||
method: 'DELETE',
|
||||
params: { id },
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -21,10 +21,11 @@ export function listNeInfo(query: Record<string, any>) {
|
||||
* @param infoId 信息ID
|
||||
* @returns object
|
||||
*/
|
||||
export function getNeInfo(infoId: string | number) {
|
||||
export function getNeInfo(id: string | number) {
|
||||
return request({
|
||||
url: `/ne/info/${infoId}`,
|
||||
url: `/ne/info`,
|
||||
method: 'GET',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
@@ -60,20 +61,21 @@ export function updateNeInfo(data: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* 网元信息删除
|
||||
* @param id 信息ID
|
||||
* @param query 查询参数 id
|
||||
* @returns object
|
||||
*/
|
||||
export function delNeInfo(infoIds: string | number) {
|
||||
export function delNeInfo(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/info/${infoIds}`,
|
||||
url: `/ne/info`,
|
||||
method: 'DELETE',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询网元列表全部无分页
|
||||
* @param query 查询参数 coreUid, neUid bandStatus bandHost
|
||||
* @param query 查询参数 coreId, neUid bandStatus bandHost
|
||||
* @returns object
|
||||
*/
|
||||
export function listAllNeInfo(query: Record<string, any>) {
|
||||
@@ -86,100 +88,42 @@ export function listAllNeInfo(query: Record<string, any>) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询网元状态
|
||||
* @param coreUid 核心网ID
|
||||
* @param neUid 网元ID
|
||||
* 网元授权激活授权申请码
|
||||
* @param neType 网元类型
|
||||
* @param neId 网元id
|
||||
* @returns object
|
||||
*/
|
||||
export function stateNeInfo(coreUid: string, neUid: string) {
|
||||
export function codeNeLicense(neUid: string) {
|
||||
return request({
|
||||
url: '/ne/info/state',
|
||||
url: `/ne/info/license/code`,
|
||||
method: 'GET',
|
||||
params: { coreUid, neUid },
|
||||
params: { neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询网元信息
|
||||
* @param coreUid 核心网ID
|
||||
* @param neUid 网元ID
|
||||
* 网元授权激活授权文件替换
|
||||
* @param data 网元对象 {"neUid": "", "licensePath": "", "reload": true}
|
||||
* @returns object
|
||||
*/
|
||||
export function getNeInfoByTypeAndID(coreUid: string, neUid: string) {
|
||||
export function updateNeLicense(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/info/nf',
|
||||
method: 'GET',
|
||||
params: { coreUid, neUid },
|
||||
url: `/ne/info/license/update`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端OAM配置文件读取
|
||||
* @param coreUid 核心网ID
|
||||
* @param neUid 网元ID
|
||||
* 网元核心关联
|
||||
* @param data 网元对象 {"neUid": "", "coreUid": ""}
|
||||
* @returns object
|
||||
*/
|
||||
export function getOAMFile(coreUid: string, neUid: string) {
|
||||
export function changeNeCore(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/info/file/oam',
|
||||
method: 'GET',
|
||||
params: { coreUid, neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端配置文件写入
|
||||
* @param coreUid 核心网ID
|
||||
* @param neUid 网元ID
|
||||
* @param content 用json对象
|
||||
* @param sync 同步到网元
|
||||
* @returns object
|
||||
*/
|
||||
export function saveOAMFile(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/info/file/oam`,
|
||||
url: `/ne/info/core`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端公共配置文件读取
|
||||
* @returns object
|
||||
*/
|
||||
export function getPara5GFilee() {
|
||||
return request({
|
||||
url: '/ne/info/file/para5g',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元端公共配置文件写入
|
||||
* @param content txt内容为字符串 其他文件格式都用json对象
|
||||
* @param syncNe 同步到网元端 coreUid@ neUid
|
||||
* @returns object
|
||||
*/
|
||||
export function savePara5GFile(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/info/file/para5g`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元服务操作
|
||||
* @param data 对象 {coreUid, neUid, action}
|
||||
* @returns object
|
||||
*/
|
||||
export function serviceNeAction(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/action/service`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,83 +0,0 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 查询网元授权列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listNeLicense(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/license/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询网元授权详细
|
||||
* @param licenseId 信息ID
|
||||
* @returns object
|
||||
*/
|
||||
export function getNeLicense(licenseId: string | number) {
|
||||
return request({
|
||||
url: `/ne/license/${licenseId}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元neType和neID查询
|
||||
* @param neType 网元类型
|
||||
* @param neId 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function getNeLicenseByTypeAndID(neType: string, neId: string) {
|
||||
return request({
|
||||
url: `/ne/license/byTypeAndID`,
|
||||
method: 'GET',
|
||||
params: { neType, neId },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元授权激活授权申请码
|
||||
* @param neType 网元类型
|
||||
* @param neId 网元id
|
||||
* @returns object
|
||||
*/
|
||||
export function codeNeLicense(neType: string, neId: string) {
|
||||
return request({
|
||||
url: `/ne/license/code`,
|
||||
method: 'GET',
|
||||
params: { neType, neId },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元授权激活授权文件替换
|
||||
* @param data 网元对象 {"neType": "", "neId": "", "licensePath": "", "reload": true}
|
||||
* @returns object
|
||||
*/
|
||||
export function changeNeLicense(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/license/change`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 网元授权激活状态
|
||||
* @param neType 网元类型
|
||||
* @param neId 网元id
|
||||
* @returns object
|
||||
*/
|
||||
export function stateNeLicense(neType: string, neId: string) {
|
||||
return request({
|
||||
url: `/ne/license/state`,
|
||||
method: 'GET',
|
||||
params: { neType, neId },
|
||||
});
|
||||
}
|
||||
@@ -6,7 +6,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function getBackupFTP() {
|
||||
return request({
|
||||
url: '/neData/backup/ftp',
|
||||
url: '/nf/backup/ftp',
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
@@ -18,7 +18,7 @@ export function getBackupFTP() {
|
||||
*/
|
||||
export function pushBackupFTP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/backup/ftp',
|
||||
url: '/nf/backup/ftp',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
@@ -31,7 +31,7 @@ export function pushBackupFTP(data: Record<string, any>) {
|
||||
*/
|
||||
export function updateBackupFTP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/backup/ftp',
|
||||
url: '/nf/backup/ftp',
|
||||
method: 'PUT',
|
||||
data,
|
||||
});
|
||||
|
||||
68
src/api/neData/kpi-title.ts
Normal file
68
src/api/neData/kpi-title.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 查询黄金指标数据kpi.id转换title
|
||||
* @param neType 网元类型
|
||||
* @returns object
|
||||
*/
|
||||
export async function getKPITitle(neType: string) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/ne/data/kpi/title`,
|
||||
method: 'GET',
|
||||
params: { neType },
|
||||
});
|
||||
// 解析数据//
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询统计指标
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listKPITitle(query?: Record<string, any>) {
|
||||
return await request({
|
||||
url: `/ne/data/kpi/title/list`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增统计指标
|
||||
* @param data 网元对象
|
||||
* @returns object
|
||||
*/
|
||||
export function addKPITitle(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/data/kpi/title`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改统计指标
|
||||
* @param data 网元对象
|
||||
* @returns object
|
||||
*/
|
||||
export function updateKPITitle(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/data/kpi/title`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除统计指标
|
||||
* @returns object
|
||||
*/
|
||||
export async function delKPITitle(id: string) {
|
||||
return request({
|
||||
url: `/ne/data/kpi/title?id=${id}`,
|
||||
method: 'DELETE',
|
||||
});
|
||||
}
|
||||
18
src/api/neData/kpi.ts
Normal file
18
src/api/neData/kpi.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 查询黄金指标数据
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listKPIData(query: Record<string, any>) {
|
||||
const result = await request({
|
||||
url: `/ne/data/kpi/data`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
51
src/api/neData/kpic-title.ts
Normal file
51
src/api/neData/kpic-title.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 查询自定义指标
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listKPICTitle(query?: Record<string, any>) {
|
||||
return await request({
|
||||
url: `/ne/data/kpic/title/list`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增自定义指标
|
||||
* @param data 网元对象
|
||||
* @returns object
|
||||
*/
|
||||
export function addKPICTitle(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/data/kpic/title`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改自定义指标
|
||||
* @param data 网元对象
|
||||
* @returns object
|
||||
*/
|
||||
export function updateKPICTitle(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/data/kpic/title`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除自定义指标
|
||||
* @returns object
|
||||
*/
|
||||
export async function delKPICTitle(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/data/kpic/title?id=${data.id}`,
|
||||
method: 'DELETE',
|
||||
});
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 新 查询自定义指标数据
|
||||
* 查询自定义指标数据
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listCustomData(query: Record<string, any>) {
|
||||
export async function listKPICData(query: Record<string, any>) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/pm/kpiC/report`,
|
||||
url: `/ne/data/kpic/data`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listNBState(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/nb-state/list',
|
||||
url: '/nf/state/nb/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -16,15 +16,15 @@ export function listNBState(query: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* 历史记录列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportNBState(data: Record<string, any>) {
|
||||
export function exportNBState(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/nb-state/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/state/nb/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,134 +0,0 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* UDMVOIP用户重载数据
|
||||
* @param neId 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function resetUDMVOIP(neId: string) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/resetData/${neId}`,
|
||||
method: 'PUT',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listUDMVOIP(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/voip/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 30_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户信息
|
||||
* @param neId 网元ID
|
||||
* @param username username
|
||||
* @returns object
|
||||
*/
|
||||
export function getUDMVOIP(neId: string, username: string) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/${neId}/${username}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户新增
|
||||
* @param data VOIP对象
|
||||
* @returns object
|
||||
*/
|
||||
export function addUDMVOIP(
|
||||
neId: string,
|
||||
data: { username: string; password: string }
|
||||
) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/${neId}`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户批量新增
|
||||
* @param data VOIP对象
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchAddUDMVOIP(
|
||||
neId: string,
|
||||
data: { username: string; password: string },
|
||||
num: number
|
||||
) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/${neId}/${num}`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户删除
|
||||
* @param data VOIP对象
|
||||
* @returns object
|
||||
*/
|
||||
export function delUDMVOIP(neId: string, username: string) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/${neId}/${username}`,
|
||||
method: 'DELETE',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户批量删除
|
||||
* @param neId 网元ID
|
||||
* @param username username
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchDelUDMVOIP(neId: string, username: string, num: number) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/${neId}/${username}/${num}`,
|
||||
method: 'DELETE',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户导出
|
||||
* @param data 数据参数
|
||||
* @returns bolb
|
||||
*/
|
||||
export function exportUDMVOIP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/voip/export',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVOIP用户导入
|
||||
* @param data 表单数据对象
|
||||
* @returns object
|
||||
*/
|
||||
export function importUDMVOIP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/voip/import`,
|
||||
method: 'POST',
|
||||
data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listAMFDataUE(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/amf/ue/list',
|
||||
url: '/nf/amf/ue/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listAMFDataUE(query: Record<string, any>) {
|
||||
*/
|
||||
export function delAMFDataUE(ueIds: string | number) {
|
||||
return request({
|
||||
url: `/neData/amf/ue/${ueIds}`,
|
||||
url: `/nf/amf/ue/${ueIds}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -29,27 +29,27 @@ export function delAMFDataUE(ueIds: string | number) {
|
||||
|
||||
/**
|
||||
* AMF-UE会话列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportAMFDataUE(data: Record<string, any>) {
|
||||
export function exportAMFDataUE(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/amf/ue/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/amf/ue/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* AMF-接入基站信息列表
|
||||
* @param query 查询参数 neId=001&id=1
|
||||
* @param query 查询参数 neUid=001&id=1
|
||||
* @returns object
|
||||
*/
|
||||
export function listAMFNblist(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/amf/nb/list',
|
||||
url: '/nf/amf/nb/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -58,12 +58,12 @@ export function listAMFNblist(query: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* AMF-接入基站状态信息列表
|
||||
* @param query 查询参数 neId=001&state=1
|
||||
* @param query 查询参数 neUid=001&state=1
|
||||
* @returns object
|
||||
*/
|
||||
export function listAMFNbStatelist(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/amf/nb/list-cfg',
|
||||
url: '/nf/amf/nb/addrs',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -76,13 +76,13 @@ export function listAMFNbStatelist(query: Record<string, any>) {
|
||||
* @param data 数据 { "index": 1, "name": "Gnb", "address": "192.168.8.1", "position": "Area-B" }
|
||||
* @returns object
|
||||
*/
|
||||
export function addAMFNbState(neId: string, data: Record<string, any>) {
|
||||
export function addAMFNbState(neUid: string, data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/config/data`,
|
||||
method: 'POST',
|
||||
data: {
|
||||
neType: 'AMF',
|
||||
neId: neId,
|
||||
neUid: neUid,
|
||||
paramName: 'gnbList',
|
||||
paramData: data,
|
||||
loc: `${data.index}`,
|
||||
@@ -92,17 +92,17 @@ export function addAMFNbState(neId: string, data: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* AMF-接入基站状态信息修改
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param data 数据 { "index": 1, "name": "Gnb", "address": "192.168.8.1", "position": "Area-B" }
|
||||
* @returns object
|
||||
*/
|
||||
export function editAMFNbState(neId: string, data: Record<string, any>) {
|
||||
export function editAMFNbState(neUid: string, data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/config/data`,
|
||||
method: 'PUT',
|
||||
data: {
|
||||
neType: 'AMF',
|
||||
neId: neId,
|
||||
neUid: neUid,
|
||||
paramName: 'gnbList',
|
||||
paramData: data,
|
||||
loc: `${data.index}`,
|
||||
@@ -112,17 +112,17 @@ export function editAMFNbState(neId: string, data: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* AMF-接入基站状态信息删除
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param index 数据index
|
||||
* @returns object
|
||||
*/
|
||||
export function delAMFNbState(neId: string, index: string | number) {
|
||||
export function delAMFNbState(neUid: string, index: string | number) {
|
||||
return request({
|
||||
url: `/ne/config/data`,
|
||||
method: 'DELETE',
|
||||
params: {
|
||||
neType: 'AMF',
|
||||
neId: neId,
|
||||
neUid: neUid,
|
||||
paramName: 'gnbList',
|
||||
loc: `${index}`,
|
||||
},
|
||||
59
src/api/neDataNf/cbc.ts
Normal file
59
src/api/neDataNf/cbc.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* CBC列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listCBC(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/nf/cbc/message/list`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 30_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* CBC签约用户新增
|
||||
* @param data 签约对象
|
||||
* @returns object
|
||||
*/
|
||||
export function addCBC(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/nf/cbc/message?neId=${data.neId}`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
export function updateCBCStatus(data: any) {
|
||||
return request({
|
||||
url: `/nf/cbc/message/${data.id}/${data.status}?neId=${data.neId}`,
|
||||
method: 'PUT',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
export function updateCBC(data: any) {
|
||||
return request({
|
||||
url: `/nf/cbc/message/${data.id}?neId=${data.neId}`,
|
||||
method: 'PUT',
|
||||
data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* CBC删除
|
||||
* @param data 签约对象
|
||||
* @returns object
|
||||
*/
|
||||
export function delCBC(neId: string, id: string) {
|
||||
return request({
|
||||
url: `/nf/cbc/message/${id}?neId=${neId}`,
|
||||
method: 'DELETE',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listIMSDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/ims/cdr/list',
|
||||
url: '/nf/ims/cdr/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listIMSDataCDR(query: Record<string, any>) {
|
||||
*/
|
||||
export function delIMSDataCDR(cdrIds: string | number) {
|
||||
return request({
|
||||
url: `/neData/ims/cdr/${cdrIds}`,
|
||||
url: `/nf/ims/cdr/${cdrIds}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -29,16 +29,16 @@ export function delIMSDataCDR(cdrIds: string | number) {
|
||||
|
||||
/**
|
||||
* IMS-CDR会话列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportIMSDataCDR(data: Record<string, any>) {
|
||||
export function exportIMSDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/ims/cdr/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/ims/cdr/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -47,22 +47,22 @@ export function exportIMSDataCDR(data: Record<string, any>) {
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listIMSSessionNum(neId: string) {
|
||||
export function listIMSSessionNum(neUid: string) {
|
||||
return request({
|
||||
url: '/neData/ims/session/num',
|
||||
url: '/nf/ims/session/num',
|
||||
method: 'GET',
|
||||
params: { neId },
|
||||
params: { neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* IMS-在线会话用户列表信息
|
||||
* @param query 查询参数 {neId, imsi, msisdn}
|
||||
* @param query 查询参数 { neUid, imsi, msisdn}
|
||||
* @returns objectv
|
||||
*/
|
||||
export function listIMSSessionList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/ims/session/list',
|
||||
url: '/nf/ims/session/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listMMEDataUE(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/mme/ue/list',
|
||||
url: '/nf/mme/ue/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listMMEDataUE(query: Record<string, any>) {
|
||||
*/
|
||||
export function delMMEDataUE(ueIds: string | number) {
|
||||
return request({
|
||||
url: `/neData/mme/ue/${ueIds}`,
|
||||
url: `/nf/mme/ue/${ueIds}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -29,16 +29,16 @@ export function delMMEDataUE(ueIds: string | number) {
|
||||
|
||||
/**
|
||||
* MME-UE会话列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportMMEDataUE(data: Record<string, any>) {
|
||||
export function exportMMEDataUE(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/mme/ue/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/mme/ue/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ export function exportMMEDataUE(data: Record<string, any>) {
|
||||
*/
|
||||
export function listMMENblist(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/mme/nb/list',
|
||||
url: '/nf/mme/nb/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -63,7 +63,7 @@ export function listMMENblist(query: Record<string, any>) {
|
||||
*/
|
||||
export function listMMENbStatelist(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/mme/nb/list-cfg',
|
||||
url: '/nf/mme/nb/addrs',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -72,17 +72,17 @@ export function listMMENbStatelist(query: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* MME-接入基站状态信息新增
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param data 数据 { "index": 1, "name": "Enb", "address": "192.168.8.1", "position": "Area-B" }
|
||||
* @returns object
|
||||
*/
|
||||
export function addMMENbState(neId: string, data: Record<string, any>) {
|
||||
export function addMMENbState(neUid: string, data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/config/data`,
|
||||
method: 'POST',
|
||||
data: {
|
||||
neType: 'MME',
|
||||
neId: neId,
|
||||
neUid: neUid,
|
||||
paramName: 'enbList',
|
||||
paramData: data,
|
||||
loc: `${data.index}`,
|
||||
@@ -92,17 +92,17 @@ export function addMMENbState(neId: string, data: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* MME-接入基站状态信息修改
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param data 数据 { "index": 1, "name": "Enb", "address": "192.168.8.1", "position": "Area-B" }
|
||||
* @returns object
|
||||
*/
|
||||
export function editMMENbState(neId: string, data: Record<string, any>) {
|
||||
export function editMMENbState(neUid: string, data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/ne/config/data`,
|
||||
method: 'PUT',
|
||||
data: {
|
||||
neType: 'MME',
|
||||
neId: neId,
|
||||
neUid: neUid,
|
||||
paramName: 'enbList',
|
||||
paramData: data,
|
||||
loc: `${data.index}`,
|
||||
@@ -112,17 +112,17 @@ export function editMMENbState(neId: string, data: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* MME-接入基站状态信息删除
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param index 数据index
|
||||
* @returns object
|
||||
*/
|
||||
export function delMMENbState(neId: string, index: string | number) {
|
||||
export function delMMENbState(neUid: string, index: string | number) {
|
||||
return request({
|
||||
url: `/ne/config/data`,
|
||||
method: 'DELETE',
|
||||
params: {
|
||||
neType: 'MME',
|
||||
neId: neId,
|
||||
neUid: neUid,
|
||||
paramName: 'enbList',
|
||||
loc: `${index}`,
|
||||
},
|
||||
16
src/api/neDataNf/n3iwf.ts
Normal file
16
src/api/neDataNf/n3iwf.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* N3IWF-在线订阅用户列表信息
|
||||
* @param query 查询参数 {imsi}
|
||||
* @returns object
|
||||
*/
|
||||
export function listN3IWFSubList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/nf/n3iwf/sub/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
28
src/api/neDataNf/nssf.ts
Normal file
28
src/api/neDataNf/nssf.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* NSSF-在线订阅用户列表信息
|
||||
* @param query 查询参数 {imsi}
|
||||
* @returns object
|
||||
*/
|
||||
export function listNSSFSubList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/nf/nssf/sub/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* NSSF-可用AMF列表信息
|
||||
* @returns object
|
||||
*/
|
||||
export function listNSSFAmfList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/nf/nssf/amf/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listPCFRule(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/pcf/rule/list',
|
||||
url: '/nf/pcf/rule/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listPCFRule(query: Record<string, any>) {
|
||||
*/
|
||||
export function addPCFRule(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/pcf/rule`,
|
||||
url: `/nf/pcf/rule`,
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
@@ -34,7 +34,7 @@ export function addPCFRule(data: Record<string, any>) {
|
||||
*/
|
||||
export function editPCFRule(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/pcf/rule`,
|
||||
url: `/nf/pcf/rule`,
|
||||
method: 'PUT',
|
||||
data,
|
||||
});
|
||||
@@ -47,7 +47,7 @@ export function editPCFRule(data: Record<string, any>) {
|
||||
*/
|
||||
export function delPCFRule(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/pcf/rule`,
|
||||
url: `/nf/pcf/rule`,
|
||||
method: 'DELETE',
|
||||
params: data,
|
||||
});
|
||||
@@ -60,11 +60,11 @@ export function delPCFRule(data: Record<string, any>) {
|
||||
*/
|
||||
export function exportPCFRule(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/pcf/rule/export',
|
||||
url: '/nf/pcf/rule/export',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ export function exportPCFRule(data: Record<string, any>) {
|
||||
*/
|
||||
export function importPCFRule(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/pcf/rule/import',
|
||||
url: '/nf/pcf/rule/import',
|
||||
method: 'PUT',
|
||||
data,
|
||||
});
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listSGWCDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/sgwc/cdr/list',
|
||||
url: '/nf/sgwc/cdr/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listSGWCDataCDR(query: Record<string, any>) {
|
||||
*/
|
||||
export function delSGWCDataCDR(cdrIds: string | number) {
|
||||
return request({
|
||||
url: `/neData/sgwc/cdr/${cdrIds}`,
|
||||
url: `/nf/sgwc/cdr/${cdrIds}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -29,15 +29,15 @@ export function delSGWCDataCDR(cdrIds: string | number) {
|
||||
|
||||
/**
|
||||
* SGWC-CDR会话列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportSGWCDataCDR(data: Record<string, any>) {
|
||||
export function exportSGWCDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/sgwc/cdr/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/sgwc/cdr/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listSMFDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/smf/cdr/list',
|
||||
url: '/nf/smf/cdr/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listSMFDataCDR(query: Record<string, any>) {
|
||||
*/
|
||||
export function delSMFDataCDR(cdrIds: string | number) {
|
||||
return request({
|
||||
url: `/neData/smf/cdr/${cdrIds}`,
|
||||
url: `/nf/smf/cdr/${cdrIds}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -29,16 +29,16 @@ export function delSMFDataCDR(cdrIds: string | number) {
|
||||
|
||||
/**
|
||||
* SMF-CDR会话列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportSMFDataCDR(data: Record<string, any>) {
|
||||
export function exportSMFDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/smf/cdr/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/smf/cdr/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -47,22 +47,22 @@ export function exportSMFDataCDR(data: Record<string, any>) {
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listSMFSubNum(neId: string) {
|
||||
export function listSMFSubNum(neUid: string) {
|
||||
return request({
|
||||
url: '/neData/smf/sub/num',
|
||||
url: '/nf/smf/sub/num',
|
||||
method: 'GET',
|
||||
params: { neId },
|
||||
params: { neUid },
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* SMF-在线订阅用户列表信息
|
||||
* @param query 查询参数 {neId, pageNum, imsi, msisdn, upstate}
|
||||
* @param query 查询参数 { neUid, pageNum, imsi, msisdn, upstate}
|
||||
* @returns object
|
||||
*/
|
||||
export function listSMFSubList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/smf/sub/list',
|
||||
url: '/nf/smf/sub/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listSMSCDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/smsc/cdr/list',
|
||||
url: '/nf/smsc/cdr/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -21,7 +21,7 @@ export function listSMSCDataCDR(query: Record<string, any>) {
|
||||
*/
|
||||
export function delSMSCDataCDR(cdrIds: string | number) {
|
||||
return request({
|
||||
url: `/neData/smsc/cdr/${cdrIds}`,
|
||||
url: `/nf/smsc/cdr/${cdrIds}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -29,15 +29,15 @@ export function delSMSCDataCDR(cdrIds: string | number) {
|
||||
|
||||
/**
|
||||
* SMSC-CDR会话列表导出
|
||||
* @param data 查询列表条件
|
||||
* @param query 查询列表条件
|
||||
* @returns object
|
||||
*/
|
||||
export function exportSMSCDataCDR(data: Record<string, any>) {
|
||||
export function exportSMSCDataCDR(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/smsc/cdr/export',
|
||||
method: 'POST',
|
||||
data,
|
||||
url: '/nf/smsc/cdr/export',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
timeout: 60_000,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -2,13 +2,14 @@ import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* UDM鉴权用户重载数据
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @returns object
|
||||
*/
|
||||
export function resetUDMAuth(neId: string) {
|
||||
export function resetUDMAuth(neUid: string) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/resetData/${neId}`,
|
||||
url: `/nf/udm/auth/reset`,
|
||||
method: 'PUT',
|
||||
params: { neUid },
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -20,23 +21,24 @@ export function resetUDMAuth(neId: string) {
|
||||
*/
|
||||
export function listUDMAuth(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/auth/list',
|
||||
url: '/nf/udm/auth/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 30_000,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDM鉴权用户信息
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param imsi IMSI
|
||||
* @returns object
|
||||
*/
|
||||
export function getUDMAuth(neId: string, imsi: string) {
|
||||
export function getUDMAuth(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/${neId}/${imsi}`,
|
||||
url: `/nf/udm/auth`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -47,23 +49,9 @@ export function getUDMAuth(neId: string, imsi: string) {
|
||||
*/
|
||||
export function addUDMAuth(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/${data.neId}`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDM鉴权用户批量新增
|
||||
* @param data 鉴权对象
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchAddUDMAuth(data: Record<string, any>, num: number) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/${data.neId}/${num}`,
|
||||
url: `/nf/udm/auth`,
|
||||
method: 'POST',
|
||||
params: { num: data.num },
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
@@ -76,7 +64,7 @@ export function batchAddUDMAuth(data: Record<string, any>, num: number) {
|
||||
*/
|
||||
export function updateUDMAuth(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/${data.neId}`,
|
||||
url: `/nf/udm/auth`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
@@ -85,29 +73,17 @@ export function updateUDMAuth(data: Record<string, any>) {
|
||||
|
||||
/**
|
||||
* UDM鉴权用户删除
|
||||
* @param coreUid 核心网标识
|
||||
* @param neId 网元ID
|
||||
* @param imsi IMSI
|
||||
* @param num 数量 大于1为批量
|
||||
* @returns object
|
||||
*/
|
||||
export function delUDMAuth(neId: string, imsi: string) {
|
||||
export function delUDMAuth(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/${neId}/${imsi}`,
|
||||
method: 'DELETE',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDM鉴权用户批量删除
|
||||
* @param neId 网元ID
|
||||
* @param imsi IMSI
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchDelUDMAuth(neId: string, imsi: string, num: number) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/${neId}/${imsi}/${num}`,
|
||||
url: `/nf/udm/auth`,
|
||||
method: 'DELETE',
|
||||
params: query,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -119,7 +95,7 @@ export function batchDelUDMAuth(neId: string, imsi: string, num: number) {
|
||||
*/
|
||||
export function importUDMAuth(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/auth/import`,
|
||||
url: `/nf/udm/auth/import`,
|
||||
method: 'POST',
|
||||
data,
|
||||
timeout: 180_000,
|
||||
@@ -133,7 +109,7 @@ export function importUDMAuth(data: Record<string, any>) {
|
||||
*/
|
||||
export function exportUDMAuth(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/auth/export',
|
||||
url: '/nf/udm/auth/export',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
@@ -2,13 +2,14 @@ import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* UDM签约用户重载数据
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function resetUDMSub(neId: string) {
|
||||
export function resetUDMSub(neUid: string) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/resetData/${neId}`,
|
||||
url: `/nf/udm/sub/reset`,
|
||||
method: 'PUT',
|
||||
params: { neUid },
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -20,23 +21,24 @@ export function resetUDMSub(neId: string) {
|
||||
*/
|
||||
export function listUDMSub(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/sub/list',
|
||||
url: '/nf/udm/sub/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 30_000,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDM签约用户信息
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元标识
|
||||
* @param imsi IMSI
|
||||
* @returns object
|
||||
*/
|
||||
export function getUDMSub(neId: string, imsi: string) {
|
||||
export function getUDMSub(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/${neId}/${imsi}`,
|
||||
url: `/nf/udm/sub`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -47,23 +49,9 @@ export function getUDMSub(neId: string, imsi: string) {
|
||||
*/
|
||||
export function addUDMSub(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/${data.neId}`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDM签约用户批量新增
|
||||
* @param data 签约对象
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchAddUDMSub(data: Record<string, any>, num: number) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/${data.neId}/${num}`,
|
||||
url: `/nf/udm/sub`,
|
||||
method: 'POST',
|
||||
params: { num: data.num },
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
@@ -76,7 +64,7 @@ export function batchAddUDMSub(data: Record<string, any>, num: number) {
|
||||
*/
|
||||
export function updateUDMSub(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/${data.neId}`,
|
||||
url: `/nf/udm/sub`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
@@ -88,25 +76,11 @@ export function updateUDMSub(data: Record<string, any>) {
|
||||
* @param data 签约对象
|
||||
* @returns object
|
||||
*/
|
||||
export function delUDMSub(neId: string, imsi: string) {
|
||||
export function delUDMSub(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/${neId}/${imsi}`,
|
||||
method: 'DELETE',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDM签约用户批量删除
|
||||
* @param neId 网元ID
|
||||
* @param imsi IMSI
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchDelUDMSub(neId: string, imsi: string, num: number) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/${neId}/${imsi}/${num}`,
|
||||
url: `/nf/udm/sub`,
|
||||
method: 'DELETE',
|
||||
params: query,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -118,7 +92,7 @@ export function batchDelUDMSub(neId: string, imsi: string, num: number) {
|
||||
*/
|
||||
export function exportUDMSub(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/sub/export',
|
||||
url: '/nf/udm/sub/export',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
@@ -133,7 +107,7 @@ export function exportUDMSub(data: Record<string, any>) {
|
||||
*/
|
||||
export function importUDMSub(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/sub/import`,
|
||||
url: `/nf/udm/sub/import`,
|
||||
method: 'POST',
|
||||
data,
|
||||
timeout: 180_000,
|
||||
101
src/api/neDataNf/udm_voip.ts
Normal file
101
src/api/neDataNf/udm_voip.ts
Normal file
@@ -0,0 +1,101 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* UDMVoIP用户重载数据
|
||||
* @param neUid 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function resetUDMVoIP(neUid: string) {
|
||||
return request({
|
||||
url: `/nf/udm/voip/reset`,
|
||||
method: 'PUT',
|
||||
params: { neUid },
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVoIP用户列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listUDMVoIP(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/nf/udm/voip/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVoIP用户信息
|
||||
* @param neUid 网元标识
|
||||
* @param username username
|
||||
* @returns object
|
||||
*/
|
||||
export function getUDMVoIP(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/nf/udm/voip`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVoIP用户新增
|
||||
* @param data VoIP对象 username password
|
||||
* @returns object
|
||||
*/
|
||||
export function addUDMVoIP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/nf/udm/voip`,
|
||||
method: 'POST',
|
||||
params: { num: data.num },
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVoIP用户删除
|
||||
* @param data VoIP对象
|
||||
* @returns object
|
||||
*/
|
||||
export function delUDMVoIP(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/nf/udm/voip`,
|
||||
method: 'DELETE',
|
||||
params: query,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVoIP用户导出
|
||||
* @param data 数据参数
|
||||
* @returns bolb
|
||||
*/
|
||||
export function exportUDMVoIP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/nf/udm/voip/export',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVoIP用户导入
|
||||
* @param data 表单数据对象
|
||||
* @returns object
|
||||
*/
|
||||
export function importUDMVoIP(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/nf/udm/voip/import`,
|
||||
method: 'POST',
|
||||
data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -2,13 +2,14 @@ import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* UDMVolteIMS用户重载数据
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export function resetUDMVolteIMS(neId: string) {
|
||||
export function resetUDMVolteIMS(neUid: string) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/resetData/${neId}`,
|
||||
url: `/nf/udm/volte-ims/reset`,
|
||||
method: 'PUT',
|
||||
params: { neUid },
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -20,10 +21,10 @@ export function resetUDMVolteIMS(neId: string) {
|
||||
*/
|
||||
export function listUDMVolteIMS(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/volte-ims/list',
|
||||
url: '/nf/udm/volte-ims/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 30_000,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -33,10 +34,11 @@ export function listUDMVolteIMS(query: Record<string, any>) {
|
||||
* @param imsi IMSI
|
||||
* @returns object
|
||||
*/
|
||||
export function getUDMVolteIMS(neId: string, imsi: string) {
|
||||
export function getUDMVolteIMS(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/${neId}/${imsi}`,
|
||||
url: `/nf/udm/volte-ims`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -47,23 +49,9 @@ export function getUDMVolteIMS(neId: string, imsi: string) {
|
||||
*/
|
||||
export function addUDMVolteIMS(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/${data.neId}`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVolteIMS用户批量新增
|
||||
* @param data 签约对象
|
||||
* @param num 数量
|
||||
* @returns object
|
||||
*/
|
||||
export function batchAddUDMVolteIMS(data: Record<string, any>, num: number) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/${data.neId}/${num}`,
|
||||
url: `/nf/udm/volte-ims`,
|
||||
method: 'POST',
|
||||
params: { num: data.num },
|
||||
data: data,
|
||||
timeout: 180_000,
|
||||
});
|
||||
@@ -71,38 +59,18 @@ export function batchAddUDMVolteIMS(data: Record<string, any>, num: number) {
|
||||
|
||||
/**
|
||||
* UDMVolteIMS用户删除
|
||||
* @param neId 网元ID
|
||||
* @param imsi_msisdn IMSI/MSISDN
|
||||
* @param tag 标签 0-voip 1-volte
|
||||
* @returns object
|
||||
*/
|
||||
export function delUDMVolteIMS(neId: string, imsi_msisdn: string, tag: string) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/${neId}/${imsi_msisdn}`,
|
||||
method: 'DELETE',
|
||||
params: { volte: tag },
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* UDMVolteIMS用户批量删除
|
||||
* @param neId 网元ID
|
||||
* @param neUid 网元ID
|
||||
* @param imsi IMSI
|
||||
* @param msisdn MSISDN
|
||||
* @param volte 标签 0-voip 1-volte
|
||||
* @param num 数量
|
||||
* @param tag 标签 0-voip 1-volte
|
||||
* @returns object
|
||||
*/
|
||||
export function batchDelUDMVolteIMS(
|
||||
neId: string,
|
||||
imsi: string,
|
||||
num: number,
|
||||
tag: string
|
||||
) {
|
||||
export function delUDMVolteIMS(query: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/${neId}/${imsi}/${num}`,
|
||||
url: `/nf/udm/volte-ims`,
|
||||
method: 'DELETE',
|
||||
params: { volte: tag },
|
||||
params: query,
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
@@ -114,7 +82,7 @@ export function batchDelUDMVolteIMS(
|
||||
*/
|
||||
export function exportUDMVolteIMS(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/neData/udm/volte-ims/export',
|
||||
url: '/nf/udm/volte-ims/export',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
@@ -129,7 +97,7 @@ export function exportUDMVolteIMS(data: Record<string, any>) {
|
||||
*/
|
||||
export function importUDMVolteIMS(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/neData/udm/volte-ims/import`,
|
||||
url: `/nf/udm/volte-ims/import`,
|
||||
method: 'POST',
|
||||
data,
|
||||
timeout: 180_000,
|
||||
@@ -1,38 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listN3iwf(query: Record<string, any>) {
|
||||
const result = await request({
|
||||
url: '/api/rest/ueManagement/v1/elementType/n3iwf/objectType/ueInfo',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
const data = {
|
||||
data: { total: 0, rows: [] as any },
|
||||
code: result.code,
|
||||
msg: result.msg,
|
||||
};
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
const rows = parseObjLineToHump(result.data.data);
|
||||
data.data.total = rows.length;
|
||||
data.data.rows = rows;
|
||||
}
|
||||
// 模拟数据
|
||||
// data.rows = [
|
||||
// {
|
||||
// "activeTime": "2023-11-29 06:35:43",
|
||||
// "imsi": "460302072701181",
|
||||
// "nai": "0460302072701181@nai.epc.mnc030.mcc460.3gppnetwork.org",
|
||||
// "regState": 1
|
||||
// }
|
||||
// ]
|
||||
|
||||
return data;
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @returns object
|
||||
*/
|
||||
export async function listNSSF() {
|
||||
const result = await request({
|
||||
url: '/api/rest/ueManagement/v1/elementType/nssf/objectType/subscriptions',
|
||||
method: 'GET',
|
||||
});
|
||||
let data = {
|
||||
data: { total: 0, rows: [] as any },
|
||||
code: result.code,
|
||||
msg: result.msg,
|
||||
};
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
const rows = parseObjLineToHump(result.data.data);
|
||||
data.data.total = rows.length;
|
||||
data.data.rows = rows;
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
* @returns object
|
||||
*/
|
||||
export async function listNSSFAMF() {
|
||||
const result = await request({
|
||||
url: '/api/rest/ueManagement/v1/elementType/nssf/objectType/availableAMFs',
|
||||
method: 'GET',
|
||||
});
|
||||
const data = {
|
||||
data: { total: 0, rows: [] as any },
|
||||
code: result.code,
|
||||
msg: result.msg,
|
||||
};
|
||||
// 解析数据
|
||||
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
|
||||
const rows = parseObjLineToHump(result.data.data);
|
||||
data.data.total = rows.length;
|
||||
data.data.rows = rows;
|
||||
}
|
||||
|
||||
// let testData = {
|
||||
// total:0,
|
||||
// rows: [
|
||||
// {
|
||||
// nfId: '001',
|
||||
// amfSetId: '001',
|
||||
// },
|
||||
// {
|
||||
// nfId: '002',
|
||||
// amfSetId: '[001,002]',
|
||||
// },
|
||||
// ],
|
||||
// code: 1,
|
||||
// msg:'',
|
||||
// };
|
||||
//return testData;
|
||||
return data;
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listCoreInfo(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/core/info/list',
|
||||
url: '/ne/core/info/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -23,7 +23,7 @@ export function listCoreInfo(query: Record<string, any>) {
|
||||
*/
|
||||
export function listAllCoreInfo(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/core/info/list/all',
|
||||
url: '/ne/core/info/list/all',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
@@ -37,7 +37,7 @@ export function listAllCoreInfo(query: Record<string, any>) {
|
||||
*/
|
||||
export function getCoreInfo(id: string | number) {
|
||||
return request({
|
||||
url: `/core/info/${id}`,
|
||||
url: `/ne/core/info/${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
@@ -49,7 +49,7 @@ export function getCoreInfo(id: string | number) {
|
||||
*/
|
||||
export function addCoreInfo(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/core/info`,
|
||||
url: `/ne/core/info`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false',
|
||||
@@ -64,7 +64,7 @@ export function addCoreInfo(data: Record<string, any>) {
|
||||
*/
|
||||
export function updateCoreInfo(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/core/info`,
|
||||
url: `/ne/core/info`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false',
|
||||
@@ -79,7 +79,7 @@ export function updateCoreInfo(data: Record<string, any>) {
|
||||
*/
|
||||
export function delCoreInfo(id: string | number) {
|
||||
return request({
|
||||
url: `/core/info/${id}`,
|
||||
url: `/ne/core/info/${id}`,
|
||||
method: 'DELETE',
|
||||
timeout: 60_000,
|
||||
});
|
||||
@@ -1,65 +0,0 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 新 查询自定义指标
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listCustom(query?: Record<string, any>) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/pm/kpiC/title/totalList`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询自定义指标详细
|
||||
* @param id 网元ID
|
||||
* @returns object
|
||||
*/
|
||||
export async function getCustom(id: string | number) {
|
||||
return request({
|
||||
url: `/pm/kpiC/title/${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增自定义指标
|
||||
* @param data 网元对象
|
||||
* @returns object
|
||||
*/
|
||||
export function addCustom(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/pm/kpiC/title`,
|
||||
method: 'POST',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改自定义指标
|
||||
* @param data 网元对象
|
||||
* @returns object
|
||||
*/
|
||||
export function updateCustom(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/pm/kpiC/title/${data.id}`,
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除自定义指标
|
||||
* @returns object
|
||||
*/
|
||||
export async function delCustom(data: Record<string, any>) {
|
||||
return request({
|
||||
url: `/pm/kpiC/title/${data.id}`,
|
||||
method: 'DELETE',
|
||||
});
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
import { parseObjLineToHump } from '@/utils/parse-utils';
|
||||
|
||||
/**
|
||||
* 查询黄金指标数据
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export async function listKPIData(query: Record<string, any>) {
|
||||
const result = await request({
|
||||
url: `/neData/kpi/data`,
|
||||
method: 'GET',
|
||||
params: query,
|
||||
timeout: 60_000,
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询黄金指标数据kpi.id转换title
|
||||
* @param neType 网元类型
|
||||
* @returns object
|
||||
*/
|
||||
export async function getKPITitle(neType: string) {
|
||||
// 发起请求
|
||||
const result = await request({
|
||||
url: `/neData/kpi/title`,
|
||||
method: 'GET',
|
||||
params: { neType },
|
||||
});
|
||||
// 解析数据//
|
||||
return result;
|
||||
}
|
||||
64
src/api/system/login-source.ts
Normal file
64
src/api/system/login-source.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
/**
|
||||
* 查询登录源列表
|
||||
* @param query 查询参数
|
||||
* @returns object
|
||||
*/
|
||||
export function listLoginSource(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/system/login-source/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询登录源详细
|
||||
* @param id 登录源ID
|
||||
* @returns object
|
||||
*/
|
||||
export function getLoginSource(id: string | number) {
|
||||
return request({
|
||||
url: `/system/login-source/${id}`,
|
||||
method: 'GET',
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增登录源
|
||||
* @param data 登录源对象
|
||||
* @returns object
|
||||
*/
|
||||
export function addLoginSource(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/system/login-source',
|
||||
method: 'POST',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改登录源
|
||||
* @param data 登录源对象
|
||||
* @returns object
|
||||
*/
|
||||
export function updateLoginSource(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/system/login-source',
|
||||
method: 'PUT',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 认证源删除
|
||||
* @param id 登录源ID
|
||||
* @returns object
|
||||
*/
|
||||
export function delLoginSource(id: string | number) {
|
||||
return request({
|
||||
url: `/system/login-source/${id}`,
|
||||
method: 'DELETE',
|
||||
});
|
||||
}
|
||||
@@ -277,19 +277,19 @@ export function transferStaticFile(data: Record<string, any>) {
|
||||
*/
|
||||
export async function uploadFileToNE(
|
||||
neType: string,
|
||||
neId: string,
|
||||
neuid: string,
|
||||
fileData: File,
|
||||
chunkSize: number = 1
|
||||
) {
|
||||
const uploadChunkRes = await uploadFileChunk(fileData, chunkSize, 'import');
|
||||
if (uploadChunkRes.code === RESULT_CODE_SUCCESS) {
|
||||
const transferToNeFileRes = await request({
|
||||
url: `/ne/action/pushFile`,
|
||||
url: `/ne/action/file/push`,
|
||||
method: 'POST',
|
||||
data: {
|
||||
uploadPath: uploadChunkRes.data.filePath,
|
||||
neType,
|
||||
neId,
|
||||
neuid,
|
||||
delTemp: true,
|
||||
},
|
||||
timeout: 60_000,
|
||||
|
||||
@@ -8,13 +8,3 @@ export function iperfV(data: Record<string, string>) {
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// iperf 软件安装
|
||||
export function iperfI(data: Record<string, string>) {
|
||||
return request({
|
||||
url: '/tool/iperf/i',
|
||||
method: 'POST',
|
||||
data: data,
|
||||
timeout: 60_000,
|
||||
});
|
||||
}
|
||||
|
||||
24
src/api/tool/mml.ts
Normal file
24
src/api/tool/mml.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { request } from '@/plugins/http-fetch';
|
||||
|
||||
// 更新网元配置重新载入
|
||||
export function updateNeConfigReload(neUid: string) {
|
||||
return request({
|
||||
url: '/tool/mml/command',
|
||||
method: 'POST',
|
||||
data: {
|
||||
neUid: neUid,
|
||||
type: 'General',
|
||||
command: ['reload'],
|
||||
},
|
||||
timeout: 180_000,
|
||||
});
|
||||
}
|
||||
|
||||
// MMML日志列表
|
||||
export function mmlLogList(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/tool/mml/log/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
|
||||
*/
|
||||
export function listNeFiles(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/action/files',
|
||||
url: '/ne/action/file/list',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
});
|
||||
@@ -20,7 +20,7 @@ export function listNeFiles(query: Record<string, any>) {
|
||||
*/
|
||||
export function getNeFile(query: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/action/pullFile',
|
||||
url: '/ne/action/file/pull',
|
||||
method: 'GET',
|
||||
params: query,
|
||||
responseType: 'blob',
|
||||
@@ -31,7 +31,7 @@ export function getNeFile(query: Record<string, any>) {
|
||||
// 从网元到本地获取目录压缩为ZIP
|
||||
export function getNeDirZip(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/action/pullDirZip',
|
||||
url: '/ne/action/file/pull/dirzip',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob',
|
||||
@@ -42,7 +42,7 @@ export function getNeDirZip(data: Record<string, any>) {
|
||||
// 查看网元端文件内容
|
||||
export function getNeViewFile(data: Record<string, any>) {
|
||||
return request({
|
||||
url: '/ne/action/viewFile',
|
||||
url: '/ne/action/file/view',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
timeout: 60_000,
|
||||
|
||||
@@ -22,8 +22,9 @@ export async function listTraceTask(query: Record<string, any>) {
|
||||
*/
|
||||
export async function getTraceTask(id: string | number) {
|
||||
return request({
|
||||
url: `/trace/task/${id}`,
|
||||
url: `/trace/task`,
|
||||
method: 'GET',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
@@ -58,10 +59,11 @@ export function updateTraceTask(data: Record<string, any>) {
|
||||
* @param ids ID多个逗号分隔
|
||||
* @returns object
|
||||
*/
|
||||
export async function delTraceTask(ids: string) {
|
||||
export async function delTraceTask(id: string | number) {
|
||||
return request({
|
||||
url: `/trace/task/${ids}`,
|
||||
url: `/trace/task`,
|
||||
method: 'DELETE',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ const props = defineProps({
|
||||
required: true,
|
||||
},
|
||||
/**网元ID,必传 */
|
||||
neId: {
|
||||
neUid: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
@@ -111,7 +111,7 @@ function wsOpen(ev: any) {
|
||||
cols: terminal.value.cols,
|
||||
rows: terminal.value.rows,
|
||||
neType: props.neType,
|
||||
neId: props.neId,
|
||||
neUid: props.neUid,
|
||||
id: props.id,
|
||||
});
|
||||
});
|
||||
@@ -142,7 +142,7 @@ function wsClose(code: number) {
|
||||
emit('close', {
|
||||
code: code,
|
||||
neType: props.neType,
|
||||
neId: props.neId,
|
||||
neUid: props.neUid,
|
||||
id: props.id,
|
||||
});
|
||||
}
|
||||
@@ -161,8 +161,8 @@ function wsMessage(res: Record<string, any>) {
|
||||
let text = '';
|
||||
// 处理消息
|
||||
if (props.processMessages) {
|
||||
text = props.processMessages(data);
|
||||
}else{
|
||||
text = props.processMessages(data);
|
||||
} else {
|
||||
text = processMessage(data);
|
||||
}
|
||||
// 无消息是则不输出
|
||||
@@ -202,13 +202,13 @@ function processMessage(data: string): string {
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
if (props.neType && props.neId) {
|
||||
if (props.neType && props.neUid) {
|
||||
// 建立链接
|
||||
const options: OptionsType = {
|
||||
url: props.url,
|
||||
params: {
|
||||
neType: props.neType,
|
||||
neId: props.neId,
|
||||
neUid: props.neUid,
|
||||
cols: props.cols,
|
||||
rows: props.rows,
|
||||
},
|
||||
|
||||
@@ -6,3 +6,12 @@ export const APP_REQUEST_HEADER_VERSION = 'X-App-Version';
|
||||
|
||||
/**应用-请求数据-密钥 */
|
||||
export const APP_DATA_API_KEY = 'T9ox2DCzpLfJIPzkH9pKhsOTMOEMJcFv';
|
||||
|
||||
/**应用-服务类型 单核心网 */
|
||||
export const APP_SERVER_TYPE_O = 'oc';
|
||||
|
||||
/**应用-服务类型 多核心网 */
|
||||
export const APP_SERVER_TYPE_M = 'mc';
|
||||
|
||||
/**应用-服务类型 租户核心网 */
|
||||
export const APP_SERVER_TYPE_T = 'tc';
|
||||
|
||||
@@ -7,6 +7,9 @@ export const CACHE_SESSION_FATCH = 'cache:session:fatch';
|
||||
/**会话缓存-当前选中核心网 */
|
||||
export const CACHE_SESSION_CORE = 'cache:session:core';
|
||||
|
||||
/**会话缓存-当前选中核心网UID */
|
||||
export const CACHE_SESSION_CORE_UID = 'cache:session:core:uid';
|
||||
|
||||
/**本地缓存-布局设置 */
|
||||
export const CACHE_LOCAL_PROCONFIG = 'cache:local:proConfig';
|
||||
|
||||
|
||||
@@ -22,6 +22,12 @@ export const NE_TYPE_LIST = [
|
||||
'CHF',
|
||||
'HLR',
|
||||
'SGWC',
|
||||
'PGWC',
|
||||
'IP-SM-GW',
|
||||
'MMTel-AS',
|
||||
'I-CSCF',
|
||||
'P-CSCF',
|
||||
'S-CSCF',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -30,3 +36,36 @@ export const NE_TYPE_LIST = [
|
||||
* UDM-adb/kvdb
|
||||
*/
|
||||
export const NE_EXPAND_LIST = ['ADB', 'KVDB', 'RTPROXY', 'MF'];
|
||||
|
||||
// 组号-其他
|
||||
export const WS_GROUP_OTHER = '0';
|
||||
// 组号-跟踪任务网元数据变更 2_traceId
|
||||
export const WS_GROUP_TRACE_NE = '2';
|
||||
// 组号-信令跟踪Packet 4_taskNo
|
||||
export const WS_GROUP_TRACE_PACKET = '4';
|
||||
// 组号-网元状态 8_neType_neId
|
||||
export const WS_GROUP_NE_STATE = '8';
|
||||
// 组号-指标通用 10_coreUid_neUid
|
||||
export const WS_GROUP_KPI = '10';
|
||||
// 组号-自定义KPI指标 20_coreUid_neUid
|
||||
export const WS_GROUP_KPI_C = '20';
|
||||
// 组号-IMS_CDR会话事件 1005_coreUid_neUid
|
||||
export const WS_GROUP_IMS_CDR = '1005';
|
||||
// 组号-SMF_CDR会话事件 1006_coreUid_neUid
|
||||
export const WS_GROUP_SMF_CDR = '1006';
|
||||
// 组号-SMSC_CDR会话事件 1007_coreUid_neUid
|
||||
export const WS_GROUP_SMSC_CDR = '1007';
|
||||
// 组号-SGWC_CDR会话事件 1008_coreUid_neUid
|
||||
export const WS_GROUP_SGWC_CDR = '1008';
|
||||
// 组号-AMF_UE会话事件 1010_coreUid_neUid
|
||||
export const WS_GROUP_AMF_UE = '1010';
|
||||
// 组号-MME_UE会话事件 1011_coreUid_neUid
|
||||
export const WS_GROUP_MME_UE = '1011';
|
||||
// 组号-AMF_NB状态事件 1014_coreUid_neUid
|
||||
export const WS_GROUP_AMF_NB = '1014';
|
||||
// 组号-MME_NB状态事件 1015_coreUid_neUid
|
||||
export const WS_GROUP_MME_NB = '1015';
|
||||
// 组号-告警 2000_coreUid_neUid
|
||||
export const WS_GROUP_ALARM = '2000';
|
||||
// 组号-告警事件 2002_coreUid_neUid
|
||||
export const WS_GROUP_ALARM_EVENT = '2002';
|
||||
|
||||
48
src/hooks/useCoreUid.ts
Normal file
48
src/hooks/useCoreUid.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
import {
|
||||
CACHE_SESSION_CORE,
|
||||
CACHE_SESSION_CORE_UID,
|
||||
} from '@/constants/cache-keys-constants';
|
||||
import {
|
||||
sessionGet,
|
||||
sessionGetJSON,
|
||||
sessionSet,
|
||||
sessionSetJSON,
|
||||
} from '@/utils/cache-session-utils';
|
||||
|
||||
/**
|
||||
* 核心路网元层由路径
|
||||
* @returns 核心路网元层路径
|
||||
*/
|
||||
export const CORE_NE_PATH = '/core-ne';
|
||||
|
||||
/**
|
||||
* 获取当前coreInfo
|
||||
* @returns coreInfo
|
||||
*/
|
||||
export function current() {
|
||||
return sessionGetJSON(CACHE_SESSION_CORE) || {};
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前coreInfo
|
||||
* @returns coreUid
|
||||
*/
|
||||
export function changeCurrent(v: Record<string, any>) {
|
||||
sessionSetJSON(CACHE_SESSION_CORE, v);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前coreUid
|
||||
* @returns coreUid
|
||||
*/
|
||||
export function currentCoreUid() {
|
||||
return sessionGet(CACHE_SESSION_CORE_UID) || '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换coreUid
|
||||
* @param coreUid coreUid
|
||||
*/
|
||||
export function changeCoreUid(coreUid: string) {
|
||||
sessionSet(CACHE_SESSION_CORE_UID, coreUid);
|
||||
}
|
||||
@@ -261,12 +261,16 @@ export default {
|
||||
login: {
|
||||
tabPane1: 'Account password login',
|
||||
tabPane2: 'Login with phone number',
|
||||
registerBtn: 'Register an account',
|
||||
registerBtn: 'Register Account',
|
||||
loginBtn: 'Sign In',
|
||||
loginSuccess: 'Login Successful',
|
||||
loginMethod: 'Other login methods:',
|
||||
loginMethodWX: 'WeChat Scan Login',
|
||||
loginMethodQQ: 'QQ Scan Code Login',
|
||||
otherMethod: 'Other Methods',
|
||||
backBtn: 'Back',
|
||||
backBtnLogin: 'Return Login',
|
||||
authorizedNotfound: 'Authorized Not Found',
|
||||
authorizedFailed: 'Authorized Failed',
|
||||
authorizedSuccess: 'Authorized Successful',
|
||||
redirectHome: 'Redirect to home page in {i} seconds',
|
||||
},
|
||||
register: {
|
||||
registerBtn: 'Register',
|
||||
@@ -357,6 +361,54 @@ export default {
|
||||
description: "No data yet, try refreshing",
|
||||
},
|
||||
},
|
||||
cbc:{
|
||||
cbe:{
|
||||
neType:'CBC Object',
|
||||
title: ' CBC Event',
|
||||
delTip: 'Confirm deletion of the event data item numbered [{num}]?',
|
||||
eventName: 'Event Name',
|
||||
startTime: 'Start Time',
|
||||
endTime: 'End Time',
|
||||
repetitionPeriod: 'Repetition Period',
|
||||
numOfBcast: 'Number of Broadcasts',
|
||||
msgPWSType: 'Message Type',
|
||||
messageId: 'Message ID',
|
||||
displayMode: 'Display Mode',
|
||||
geoScope:' Geographic Scope',
|
||||
emergencyUserAlert: 'Emergency User Alert',
|
||||
activatePopup: 'Activate Popup',
|
||||
warningType: 'Warning Type',
|
||||
language:' Language',
|
||||
warningMessageText:' Broadcast Content',
|
||||
status: 'Status',
|
||||
warningAreaType: 'Warning Area Type',
|
||||
taiListTip:'TAI List cannot be empty',
|
||||
taiSonTip:'TAI List each item MCC, MNC, TAC cannot be empty',
|
||||
eutraListTip:'EUTRA CellId List cannot be empty',
|
||||
eutraSonTip:'EUTRA CellId List each item MCC, MNC, CellId cannot be empty',
|
||||
nrTip:'NR CellId List cannot be empty',
|
||||
nrSonTip:'NR CellId List each item MCC, MNC, CellId cannot be empty',
|
||||
areaTip:'Area ID List cannot be empty',
|
||||
areaSonTip:'Area ID List each item AreaID cannot be empty',
|
||||
messageIdProfile:'Message ID Profile',
|
||||
serialNumProfile:'Serial Num Profile',
|
||||
warningTypeProfile:'Warning Type Profile',
|
||||
warningMessageProfile:'Warning Message Profile',
|
||||
etws:'Earthquake and Tsunami Warning System',
|
||||
cmas:'Commercial Mobile Alert System',
|
||||
createdAt:'Create Time',
|
||||
eventNameHelp:'If it is CMAS, the recommended prefix is cmas_xxx. If it is ETWS, the recommended prefix is etws_xxx',
|
||||
repetitionPeriodHelp:'Unit is seconds',
|
||||
numOfBcastHelp:'Number of Broadcasts',
|
||||
cellListTip:'CellId List cannot be empty',
|
||||
cellListSonTip:'MCC、MNC、 Cannot be empty, and at least one EUTRA CellId/NR CellId must be filled in',
|
||||
letupSure:'Do you confirm the status of the broadcast event with the modification number 【{id}】?',
|
||||
tacHelp:'The TAC value is a decimal string, separated by ";" for multiple TAC values.',
|
||||
cellIdHelp:'The CellId value is a hexadecimal string, separated by ";" for multiple CellId values.',
|
||||
areaId:'The areaId value is a hexadecimal string.',
|
||||
detail:'Detail',
|
||||
}
|
||||
},
|
||||
dashboard: {
|
||||
overview:{
|
||||
title: "Core Network Dashboard",
|
||||
@@ -368,10 +420,13 @@ export default {
|
||||
imsUeNum: "VoNR/VoLTE",
|
||||
smfUeNum: "Data Sessions",
|
||||
gnbBase: "Online gNodeB",
|
||||
gnbSumBase: "Total gNodeB",
|
||||
enbBase: "Online eNodeB",
|
||||
enbSumBase: "Total eNodeB",
|
||||
gnbUeNum:'5G Active Users',
|
||||
enbUeNum:'4G Active Users',
|
||||
baseTitle:'Online Information',
|
||||
nodeBInfo: 'NodeB Information',
|
||||
},
|
||||
upfFlow:{
|
||||
title: "UPF Throughput",
|
||||
@@ -401,6 +456,7 @@ export default {
|
||||
},
|
||||
userActivity: {
|
||||
title: "User Activity",
|
||||
imsTitle: "IMS Activity",
|
||||
type: "Type",
|
||||
duration: "Duration",
|
||||
caller: "Caller",
|
||||
@@ -443,6 +499,14 @@ export default {
|
||||
sgwcVolumeGPRSUplink: 'GPRS Uplink',
|
||||
sgwcVolumeGPRSDownlink: 'GPRS Downlink',
|
||||
},
|
||||
chart:{
|
||||
charttitle:'Data Usage Report',
|
||||
uplink:'Uplink(Byte)',
|
||||
downlink:'Downlink(Byte)',
|
||||
datausage:'Data Usage',
|
||||
totaluplink:'Total Uplink',
|
||||
totaldownlink:'Total Downlink',
|
||||
},
|
||||
ue: {
|
||||
eventType: "Event Type",
|
||||
realTimeDataStart: "Turn on real-time data",
|
||||
@@ -458,12 +522,14 @@ export default {
|
||||
},
|
||||
ne: {
|
||||
common: {
|
||||
coreUid: 'Core UID',
|
||||
coreName: 'Core Name',
|
||||
neType: 'NE Type',
|
||||
neTypePlease: "Please select network element type",
|
||||
neTypeTip: 'Fill in the type of network element to be created, e.g. SMF.',
|
||||
neId: 'NE ID',
|
||||
neIdPlease: 'Please enter the network element identification',
|
||||
neIdTip: 'Fill in the unique identifier of the network element binding',
|
||||
neUid: 'NE UID',
|
||||
neUidPlease: 'Please enter the network element identification',
|
||||
neUidTip: 'Fill in the unique identifier of the network element binding',
|
||||
rmUid: 'Resource Unique ID',
|
||||
rmUidPlease: 'Please enter a resource unique ID',
|
||||
rmUidTip: "Tagging for data reporting of network element logs, alarms, metrics, etc.",
|
||||
@@ -475,6 +541,8 @@ export default {
|
||||
port: 'Port',
|
||||
portTip: "Network element port default:33030",
|
||||
capability: 'Capability',
|
||||
ueNumber: 'UE Number',
|
||||
nbNumber: 'Radio Number',
|
||||
serialNum: 'Serial Number',
|
||||
expiryDate: 'Expiry Date',
|
||||
normalcy: 'Normal',
|
||||
@@ -487,6 +555,7 @@ export default {
|
||||
stopTip: 'Are you sure you want to stop the [{ne}] NE Service?',
|
||||
reload: 'Reload',
|
||||
reloadTip: 'Confirm that you want to reload the network element configuration information?',
|
||||
license: 'License Update',
|
||||
oam: 'OAM',
|
||||
log: 'Logs',
|
||||
},
|
||||
@@ -501,13 +570,13 @@ export default {
|
||||
sysDisk: "SYS Store",
|
||||
neCpu: "NE CPU",
|
||||
hostConfig: "Connection Configuration",
|
||||
pvflag: 'NE Virtualization',
|
||||
pvflag: 'Virtual Flag',
|
||||
pnf: 'physical network element',
|
||||
vnf: 'virtual network element',
|
||||
neAddress: 'MAC',
|
||||
neAddressTip: 'Record the physical address (MAC) of the network card of the network element',
|
||||
dn: 'network identifier',
|
||||
vendorName: 'provider',
|
||||
macAddr: 'MAC',
|
||||
macAddrTip: 'Record the physical address (MAC) of the network card of the network element',
|
||||
dn: 'Network Identifier',
|
||||
vendorName: 'Provider',
|
||||
province: 'Service Area',
|
||||
addTitle: 'New network element information',
|
||||
editTitle: 'Edit network element information',
|
||||
@@ -675,7 +744,7 @@ export default {
|
||||
toIpPleace: "Please input the remote backup server IP address",
|
||||
toPort: "Service Port",
|
||||
username: "UserName",
|
||||
usernamePleace: 'Please enter the service login username',
|
||||
usernamePleace: 'Please enter the service login username',
|
||||
password: "Password",
|
||||
dir: "Save Dir",
|
||||
dirPleace: 'Please enter the service address target file directory',
|
||||
@@ -752,7 +821,7 @@ export default {
|
||||
checkDel:'Check Delete',
|
||||
importTemplate: 'Download Template',
|
||||
},
|
||||
udmVOIP: {
|
||||
udmVoIP: {
|
||||
startUsername: 'Starting username',
|
||||
username: 'username',
|
||||
usernamePlease: "Please enter your username correctly",
|
||||
@@ -760,7 +829,7 @@ export default {
|
||||
passwordPlease: "Please enter your password correctly",
|
||||
addTitle: 'Add VOIP subscriber',
|
||||
delTip: 'Confirm that you want to delete the information of VOIP user as [{num}]?',
|
||||
exportTip: "Confirm exporting xlsx table files based on search criteria?",
|
||||
exportTip: "Confirm exporting all VOIP user data based on the current search criteria?",
|
||||
},
|
||||
udmVolteIMS: {
|
||||
startMSISDN: 'Starting MSISDN',
|
||||
@@ -769,7 +838,7 @@ export default {
|
||||
vniTip: 'Example: ims.mnc000.mcc000.3gppnetwork.org',
|
||||
vniPlease: 'Please enter VNI correctly',
|
||||
delTip: 'Are you sure you want to delete the information of IMS signing as [{num}]?',
|
||||
exportTip: "Confirm exporting xlsx table files based on search criteria?",
|
||||
exportTip: "Confirm exporting all VoLTE user data based on the current search criteria?",
|
||||
},
|
||||
pcfSub: {
|
||||
exportTip: 'Confirm exporting all user policy control information data?',
|
||||
@@ -820,7 +889,7 @@ export default {
|
||||
neTypePlease: 'Query network element Object',
|
||||
neType: 'UDM Object',
|
||||
export: 'Export',
|
||||
exportConfirm: 'Are you sure to export all authentication user data?',
|
||||
exportConfirm: 'Confirm exporting all Authentication user data based on the current search criteria?',
|
||||
checkExport : 'Check Export',
|
||||
checkExportConfirm: 'Confirm exporting the checked authenticated user data?',
|
||||
import: 'Import',
|
||||
@@ -849,7 +918,7 @@ export default {
|
||||
subInfo:' Subscription Info',
|
||||
neType: 'UDM Object',
|
||||
export: 'Export',
|
||||
exportConfirm: 'Are you sure to export all signed user data?',
|
||||
exportConfirm: 'Confirm exporting all Subscribers user data based on the current search criteria?',
|
||||
checkExport : 'Check Export',
|
||||
checkExportConfirm: 'Are you sure to export the data of the checked subscribers?',
|
||||
import: 'Import',
|
||||
@@ -891,21 +960,6 @@ export default {
|
||||
smDataTip:'The IP in sm_data=1-000001&internet-1.2.3.4&ims-1.2.3.5: 1.2.3.4 is the static IP assigned to the APN of 5G user internet, and 1.2.3.5 is the static IP assigned to the APN of 5G user ims. If it is dynamic allocation, just remove the IP and the previous connector. Need to support multiple dnn uses & connections',
|
||||
smDataArrTip:'SST,DNN/APN is required',
|
||||
},
|
||||
base5G: {
|
||||
neType: 'NE Object',
|
||||
},
|
||||
n3iwf: {
|
||||
neType: 'N3IWF Object',
|
||||
},
|
||||
ue: {
|
||||
neType: 'SMF Object',
|
||||
},
|
||||
ims: {
|
||||
neType: 'IMS Object',
|
||||
},
|
||||
nssf:{
|
||||
neType: 'NSSF Object',
|
||||
},
|
||||
},
|
||||
perfManage: {
|
||||
taskManage:{
|
||||
@@ -1053,6 +1107,21 @@ export default {
|
||||
"chooseShowMetrics":"Select the metric you want to display",
|
||||
"chooseMetrics":"Select an indicator",
|
||||
},
|
||||
voiceOverView:{
|
||||
"voiceTitle":"Voice Calls Dashboard",
|
||||
"tips":"Data and voice statistics per minute",
|
||||
"ne":"NE",
|
||||
"now":"now",
|
||||
"last":"last",
|
||||
"calls":"Calls",
|
||||
"activeCall":"active calls",
|
||||
"callMOMT":"calls MO/MT",
|
||||
"failedcall":"failed calls",
|
||||
"registration":"Registrations",
|
||||
"activeregistration":"active registrations",
|
||||
"registrationsuccess":"registration success",
|
||||
"failedregistration":"failed registrations total",
|
||||
},
|
||||
},
|
||||
traceManage: {
|
||||
pcap: {
|
||||
@@ -1212,8 +1281,6 @@ export default {
|
||||
mml:{
|
||||
account:'Account',
|
||||
ip:'IP',
|
||||
type:'NE Type',
|
||||
neId:'NE ID',
|
||||
MML:'MML',
|
||||
logTime:'Log Time'
|
||||
},
|
||||
@@ -1637,11 +1704,12 @@ export default {
|
||||
userName: 'Nick Name',
|
||||
permission: 'Role',
|
||||
className: 'Department',
|
||||
userType: 'User Type',
|
||||
loginIp: 'Login Address',
|
||||
loginTime: 'Login Time',
|
||||
status: 'Status',
|
||||
userNameTip:'The account number can only contain strings of uppercase letters, lowercase letters and numbers with a minimum length of 6 digits',
|
||||
passwdTip:'Please enter the correct password format',
|
||||
userNameTip:'Please enter the correct username format no less than 4 digits',
|
||||
passwdTip:'Please enter the correct password format no less than 6 digits',
|
||||
nickNameTip:'Nicknames no less than 2 digits',
|
||||
emailTip:'Please enter the correct email address',
|
||||
phoneTip:'Please enter the correct phone number',
|
||||
@@ -1699,6 +1767,55 @@ export default {
|
||||
refreshCacheTip: "Are you sure you want to refresh the parameter configuration cache?",
|
||||
refreshCacheOk: "Refresh Cache Successful",
|
||||
},
|
||||
loginSource: {
|
||||
uid: "UID",
|
||||
name: "Name",
|
||||
namePlease: 'Please enter the authentication source name correctly',
|
||||
icon: "Icon",
|
||||
iconPlease: 'You can enter the image link or upload the image path address',
|
||||
type: "Type",
|
||||
activeFlag: "Status",
|
||||
remark: "Remark",
|
||||
createTime: "Create Time",
|
||||
updateTime: "Update Time",
|
||||
ldapUrl: "Server Address",
|
||||
ldapUrlPlease: 'Please enter the LDAP server address correctly',
|
||||
ldapBaseDN: "Base DN",
|
||||
baseDnPlease: 'Please enter the LDAP base DN correctly',
|
||||
ldapUserFilter: "User Filter",
|
||||
userFilterPlease: 'Please enter the LDAP user filter correctly',
|
||||
ldapBindDN: "Bind DN",
|
||||
ldapBindPassword: "Bind Password",
|
||||
smtpHost: 'Server Address',
|
||||
smtpHostPlease: 'Please enter the SMTP server address correctly',
|
||||
smtpPort: 'Port Number',
|
||||
smtpPortPlease: 'Please enter the SMTP port number correctly',
|
||||
oauth2ClientID: 'Client ID',
|
||||
oauth2ClientIDPlease: 'Please enter the OAuth2 client ID correctly',
|
||||
oauth2ClientSecret: 'Client Secret',
|
||||
oauth2ClientSecretPlease: 'Please enter the OAuth2 client secret correctly',
|
||||
oauth2AuthURL: 'Authorization URL',
|
||||
oauth2AuthURLPlease: 'Please enter the OAuth2 authorization URL correctly',
|
||||
oauth2TokenURL: 'Token URL',
|
||||
oauth2TokenURLPlease: 'Please enter the OAuth2 token URL correctly',
|
||||
oauth2UserURL: 'User Info URL',
|
||||
oauth2UserURLPlease: 'Please enter the OAuth2 user info URL correctly',
|
||||
oauth2AccountField: 'Account Field',
|
||||
oauth2AccountFieldPlease: 'Please enter the OAuth2 account field correctly',
|
||||
oauth2Scopes: 'Scopes',
|
||||
oauth2ScopesPlease: 'Please enter the OAuth2 scopes correctly',
|
||||
oauth2RedirectURL: 'Redirect URL',
|
||||
oauth2RedirectURLPlease: 'Please enter the OAuth2 redirect URL correctly',
|
||||
oauth2RedirectURLTip: 'Please jump to the specified path (omchost/#/login/oauth2), redirect with code and state address parameters',
|
||||
uploadFileTip: 'Confirm to upload the authentication source icon?',
|
||||
uploadFileOk: 'Authentication source icon upload successful',
|
||||
uploadFileErr: 'Authentication source icon upload failed',
|
||||
viewInfoErr: "Failed to get authentication source information",
|
||||
addInfo: "Add Authentication Source",
|
||||
editInfo: "Modify Authentication Source",
|
||||
delTip: "Confirm deleting the authentication source number [{num}] data item?",
|
||||
delOk: "Deleted Successfully",
|
||||
},
|
||||
setting: {
|
||||
charMaxLen: 'characters length',
|
||||
saveSubmit: 'Submit&Save',
|
||||
@@ -1987,7 +2104,7 @@ export default {
|
||||
stepInstallDesc: "Installation of network element services to service terminals",
|
||||
stepInstallStepPrev: 'Confirm that you want to abandon the current change and return to the previous step?',
|
||||
stepInstallStepNext: 'Confirm that you want to proceed to the next step for network element license authorization?',
|
||||
stepInstallText: 'Select Install',
|
||||
stepInstallText: 'Install',
|
||||
stepInstallTip: 'Confirm the installation of the new version of the chosen Net Meta?',
|
||||
stepInstallModal: 'Network Element For Install',
|
||||
stepInstallNotNewVer: 'No new version found',
|
||||
@@ -1995,9 +2112,9 @@ export default {
|
||||
stepInstallFail: 'Installation fails, check if the service terminal environment is available!',
|
||||
stepLicenseTitle: "Service License",
|
||||
stepLicenseDesc: "Obtaining a license activation code for authorization authentication",
|
||||
stepLicenseReload: 'Select Refresh',
|
||||
stepLicenseReload: 'Refresh',
|
||||
stepLicenseReloadTip: 'Confirm refreshing selected license information?',
|
||||
stepLicenseDownCode: 'Select Download Activation Code',
|
||||
stepLicenseDownCode: 'Download Activation Code',
|
||||
stepLicenseDownCodeTip: 'Confirmed to download the selected network element license activation code to a text file?',
|
||||
stepLicenseStepPrev: 'Confirm that you want to abandon the current change and return to the previous step?',
|
||||
stepLicenseStepNext: 'Confirmed to end the network element installation step?',
|
||||
|
||||
@@ -264,9 +264,13 @@ export default {
|
||||
registerBtn: '注册账号',
|
||||
loginBtn: '登录',
|
||||
loginSuccess: '登录成功',
|
||||
loginMethod: '其他登录方式:',
|
||||
loginMethodWX: '微信扫一扫登录',
|
||||
loginMethodQQ: 'QQ扫码登录',
|
||||
otherMethod: '其他方式',
|
||||
backBtn: '返回',
|
||||
backBtnLogin: '返回登录',
|
||||
authorizedNotfound: '授权无效',
|
||||
authorizedFailed: '授权失败',
|
||||
authorizedSuccess: '授权成功',
|
||||
redirectHome: '{i} 秒后跳转主页',
|
||||
},
|
||||
register: {
|
||||
registerBtn: '注册',
|
||||
@@ -357,6 +361,54 @@ export default {
|
||||
description: "暂无数据,尝试刷新看看",
|
||||
},
|
||||
},
|
||||
cbc:{
|
||||
cbe:{
|
||||
neType:'CBC网元对象',
|
||||
title: '广播事件',
|
||||
delTip: '确认删除编号为【{num}】的CBC事件吗?',
|
||||
eventName: '事件名称',
|
||||
startTime: '开始时间',
|
||||
endTime: '结束时间',
|
||||
repetitionPeriod: '广播周期',
|
||||
numOfBcast: '广播次数',
|
||||
msgPWSType: '消息类型',
|
||||
messageId: '消息编号',
|
||||
displayMode: '显示模式',
|
||||
geoScope:'广播覆盖范围',
|
||||
emergencyUserAlert: '紧急用户提示',
|
||||
activatePopup: '弹窗提示',
|
||||
warningType: '预警类型标识',
|
||||
language:'语言',
|
||||
warningMessageText:'广播内容',
|
||||
status: '状态',
|
||||
warningAreaType: '预警区域类型',
|
||||
taiListTip:'TAI List 不能为空',
|
||||
taiSonTip:'TAI List 每项的 MCC、MNC、TAC 都不能为空',
|
||||
eutraListTip:'EUTRA CellId List 不能为空',
|
||||
eutraSonTip:'EUTRA CellId List 每项的 MCC、MNC、CellId 都不能为空',
|
||||
nrTip:'NR CellId List 不能为空',
|
||||
nrSonTip:'NR CellId List 每项的 MCC、MNC、CellId 都不能为空',
|
||||
areaTip:'Area ID List 不能为空',
|
||||
areaSonTip:'Area ID List 每项的 AreaID 都不能为空',
|
||||
messageIdProfile:'消息标识配置',
|
||||
serialNumProfile:'序列号配置',
|
||||
warningTypeProfile:'预警类型配置',
|
||||
warningMessageProfile:'预警消息配置',
|
||||
etws:'地震海啸预警',
|
||||
cmas:'公共预警广播',
|
||||
createdAt:'创建时间',
|
||||
eventNameHelp:'如果为CMAS,推荐前缀为cmas_xxx,如果为ETWS,推荐前缀为etws_xxx',
|
||||
repetitionPeriodHelp:'单位是秒',
|
||||
numOfBcastHelp:'广播帮助的数量',
|
||||
cellListTip:'CellId List不能为空',
|
||||
cellListSonTip:'MCC、MNC、不能为空以及EUTRA CellId/NR CellId至少填写一个',
|
||||
letupSure:'确认修改编号为 【{id}】 的广播事件的状态嘛?',
|
||||
tacHelp:'TAC值是十进制字符串,通过";"分隔多个TAC值',
|
||||
cellIdHelp:'CellId值是十六进制字符串,通过";"分隔多个CellId值',
|
||||
areaId:'areaId值是十六进制字符串',
|
||||
detail:'详情',
|
||||
}
|
||||
},
|
||||
dashboard: {
|
||||
overview:{
|
||||
title: "核心网系统看板",
|
||||
@@ -367,11 +419,14 @@ export default {
|
||||
userTitle:'用户信息',
|
||||
imsUeNum: "IMS 会话数",
|
||||
smfUeNum: "Data 会话数",
|
||||
gnbBase: "5G 基站数",
|
||||
gnbBase: "5G 基站在线数",
|
||||
gnbSumBase: "5G 基站总数",
|
||||
gnbUeNum:'5G 用户数',
|
||||
enbBase: "4G 基站数",
|
||||
enbBase: "4G 基站在线数",
|
||||
enbSumBase: "4G 基站总数",
|
||||
enbUeNum:'4G 用户数',
|
||||
baseTitle:'在线信息',
|
||||
nodeBInfo: '基站信息',
|
||||
},
|
||||
upfFlow:{
|
||||
title: "用户面吞吐量",
|
||||
@@ -401,6 +456,7 @@ export default {
|
||||
},
|
||||
userActivity: {
|
||||
title: "用户活动",
|
||||
imsTitle: "IMS 活动",
|
||||
type: "类型",
|
||||
duration: "时长",
|
||||
caller: "主叫",
|
||||
@@ -443,6 +499,14 @@ export default {
|
||||
sgwcVolumeGPRSUplink: 'GPRS 上行链路',
|
||||
sgwcVolumeGPRSDownlink: 'GPRS 下行链路',
|
||||
},
|
||||
chart:{
|
||||
charttitle:'数据使用报告',
|
||||
uplink:'上行流量(B)',
|
||||
downlink:'下行流量(B)',
|
||||
datausage:'流量使用',
|
||||
totaluplink:'总上行流量',
|
||||
totaldownlink:'总下行流量',
|
||||
},
|
||||
ue: {
|
||||
eventType: "事件类型",
|
||||
realTimeDataStart: "开启实时数据",
|
||||
@@ -458,12 +522,14 @@ export default {
|
||||
},
|
||||
ne: {
|
||||
common: {
|
||||
coreUid: '核心网标识',
|
||||
coreName: '核心网名称',
|
||||
neType: '网元类型',
|
||||
neTypePlease: "请选择网元类型",
|
||||
neTypeTip: '填写创建的网元类型,如:SMF',
|
||||
neId: '网元标识',
|
||||
neIdPlease: '请输入网元标识',
|
||||
neIdTip: '填写网元绑定的唯一标识',
|
||||
neUid: '网元标识',
|
||||
neUidPlease: '请输入网元标识',
|
||||
neUidTip: '填写网元绑定的唯一标识',
|
||||
rmUid: '资源唯一标识',
|
||||
rmUidPlease: '请输入资源唯一标识',
|
||||
rmUidTip: "用于网元日志、告警、指标等数据上报的标记",
|
||||
@@ -475,6 +541,8 @@ export default {
|
||||
port: '服务端口',
|
||||
portTip: "网元服务端口,默认:33030",
|
||||
capability: '容量',
|
||||
ueNumber: '用户数',
|
||||
nbNumber: '基站数',
|
||||
serialNum: '序列号',
|
||||
expiryDate: '许可证到期日期',
|
||||
normalcy: '正常',
|
||||
@@ -487,6 +555,7 @@ export default {
|
||||
stopTip: '确认要停止【{ne}】网元服务吗?',
|
||||
reload: '重载',
|
||||
reloadTip: '确认要重载网元配置信息吗?',
|
||||
license: '更新许可',
|
||||
oam: 'OAM',
|
||||
log: '日志',
|
||||
},
|
||||
@@ -501,11 +570,11 @@ export default {
|
||||
sysDisk: "系统存储",
|
||||
neCpu: "网元CPU",
|
||||
hostConfig: "终端连接配置",
|
||||
pvflag: '网元虚拟化标识',
|
||||
pvflag: '虚拟化标识',
|
||||
pnf: '物理网元',
|
||||
vnf: '虚拟网元',
|
||||
neAddress: '物理地址(MAC)',
|
||||
neAddressTip: '记录网元的网卡物理地址(MAC)',
|
||||
macAddr: '物理地址(MAC)',
|
||||
macAddrTip: '记录网元的网卡物理地址(MAC)',
|
||||
dn: '网络标识',
|
||||
vendorName: '提供厂商',
|
||||
province: '服务地域',
|
||||
@@ -627,8 +696,8 @@ export default {
|
||||
reloadBatch: "刷新许可证状态",
|
||||
reloadBatchTip: "对当前列表网元进行许可证状态信息刷新吗?",
|
||||
updateTtile: "更新许可证",
|
||||
downCodeTop: "确认要将许可激活码保存到文件吗?",
|
||||
activationRequestCode: "许可激活码",
|
||||
downCodeTop: "确认要将授权码保存到文件吗?",
|
||||
activationRequestCode: "授权码",
|
||||
licensePath: "许可证文件",
|
||||
licensePathTip: "请上传许可证文件",
|
||||
upload: '上传',
|
||||
@@ -675,7 +744,7 @@ export default {
|
||||
toIpPleace: "请输入远程备份服务器 IP 地址",
|
||||
toPort: "服务端口",
|
||||
username: "登录用户名",
|
||||
usernamePleace: '请输入服务登录用户名',
|
||||
usernamePleace: '请输入服务登录用户名',
|
||||
password: "登录密码",
|
||||
dir: "保存目录",
|
||||
dirPleace: '请输入服务地址目标文件目录',
|
||||
@@ -726,7 +795,7 @@ export default {
|
||||
licenseEnd: '结束',
|
||||
licenseEndTip: "确认要结束安装吗?",
|
||||
licenseCheack: '等待网元验证',
|
||||
licenseTip1: '1. 点击【许可证】可获取许可激活码,随后联系网元厂商进行激活',
|
||||
licenseTip1: '1. 点击【许可证】可获取授权码,随后联系网元厂商进行激活',
|
||||
licenseTip2: '2. 点击【结束】将结束安装过程',
|
||||
},
|
||||
},
|
||||
@@ -752,7 +821,7 @@ export default {
|
||||
checkDel:'勾选删除',
|
||||
importTemplate: '导入模板',
|
||||
},
|
||||
udmVOIP: {
|
||||
udmVoIP: {
|
||||
startUsername: '起始用户名',
|
||||
username: '用户名',
|
||||
usernamePlease: "请正确输入用户名",
|
||||
@@ -760,7 +829,7 @@ export default {
|
||||
passwordPlease: "请正确输入密码",
|
||||
addTitle: '新增VOIP用户',
|
||||
delTip: '确认要删除VOIP用户为【{num}】的信息吗?',
|
||||
exportTip: "确认根据搜索条件导出xlsx表格文件吗?",
|
||||
exportTip: "确认根据当前搜索条件导出全部VoIP用户数据吗?",
|
||||
},
|
||||
udmVolteIMS: {
|
||||
startMSISDN: '起始MSISDN',
|
||||
@@ -769,7 +838,7 @@ export default {
|
||||
vniTip: '示例:ims.mnc000.mcc000.3gppnetwork.org',
|
||||
vniPlease: '请正确输入VNI',
|
||||
delTip: '确认要删除IMS签约为【{num}】的信息吗?',
|
||||
exportTip: "确认根据搜索条件导出xlsx表格文件吗?",
|
||||
exportTip: "确认根据当前搜索条件导出全部VoLTE用户数据吗?",
|
||||
},
|
||||
pcfSub: {
|
||||
exportTip: '确认导出全部用户策略控制信息数据吗?',
|
||||
@@ -820,7 +889,7 @@ export default {
|
||||
neTypePlease: '查询网元类型',
|
||||
neType: 'UDM网元对象',
|
||||
export: '导出',
|
||||
exportConfirm: '确认导出全部鉴权用户数据吗?',
|
||||
exportConfirm: '确认根据当前搜索条件导出全部鉴权用户数据吗?',
|
||||
checkExport : '勾选导出',
|
||||
checkExportConfirm: '确认导出已勾选的鉴权用户数据吗?',
|
||||
import: '导入',
|
||||
@@ -849,7 +918,7 @@ export default {
|
||||
subInfo:'签约信息',
|
||||
neType: 'UDM网元类型',
|
||||
export: '导出',
|
||||
exportConfirm: '确认导出全部签约用户数据吗?',
|
||||
exportConfirm: '确认根据当前搜索条件导出全部签约用户数据吗?',
|
||||
checkExport : '勾选导出',
|
||||
checkExportConfirm: '确认导出已勾选的签约用户数据吗?',
|
||||
import: '导入',
|
||||
@@ -891,21 +960,6 @@ export default {
|
||||
smDataTip:'sm_data=1-000001&internet-1.2.3.4&ims-1.2.3.5中的IP:1.2.3.4为5G用户internet这个APN分配的静态IP,1.2.3.5为5G用户ims这个APN分配的静态IP。如果是动态分配,把IP以及前面一个连接符去掉即可。需支持多个dnn用&连接',
|
||||
smDataArrTip:'SST,DNN/APN为必填项',
|
||||
},
|
||||
base5G: {
|
||||
neType: '网元对象',
|
||||
},
|
||||
n3iwf: {
|
||||
neType: 'N3IWF网元对象',
|
||||
},
|
||||
ue: {
|
||||
neType: 'SMF网元对象',
|
||||
},
|
||||
ims: {
|
||||
neType: 'IMS网元对象',
|
||||
},
|
||||
nssf:{
|
||||
neType: 'NSSF网元对象',
|
||||
},
|
||||
},
|
||||
perfManage: {
|
||||
taskManage:{
|
||||
@@ -1053,6 +1107,21 @@ export default {
|
||||
"chooseShowMetrics":"选择需要显示的指标",
|
||||
"chooseMetrics":"选择指标",
|
||||
},
|
||||
voiceOverView:{
|
||||
"voiceTitle":"语音通话仪表盘",
|
||||
"tips":"每分钟数据语音统计",
|
||||
"ne":"网元",
|
||||
"now":"现在",
|
||||
"last":"过去",
|
||||
"calls":"呼叫",
|
||||
"activeCall":"正在通话",
|
||||
"callMOMT":"呼叫 主叫接通率/被叫接通率",
|
||||
"failedcall":"失败呼叫",
|
||||
"registration":"注册",
|
||||
"activeregistration":"主动注册",
|
||||
"registrationsuccess":"注册成功率",
|
||||
"failedregistration":"失败注册",
|
||||
},
|
||||
},
|
||||
traceManage: {
|
||||
pcap: {
|
||||
@@ -1212,8 +1281,6 @@ export default {
|
||||
mml:{
|
||||
account:'登录账号',
|
||||
ip:'IP地址',
|
||||
type:'网元类型',
|
||||
neId:'网元唯一标识',
|
||||
MML:'MML',
|
||||
logTime:'记录时间'
|
||||
},
|
||||
@@ -1635,13 +1702,14 @@ export default {
|
||||
userNum: '用户编号',
|
||||
account: '登录账号',
|
||||
userName: '用户昵称',
|
||||
permission: '用户权限',
|
||||
permission: '用户角色',
|
||||
className: '部门名称',
|
||||
userType: '用户类型',
|
||||
loginIp: '登录地址',
|
||||
loginTime: '登录时间',
|
||||
status: '用户状态',
|
||||
userNameTip:'账号只能包含大写字母、小写字母和数字的字符串,长度至少为6位',
|
||||
passwdTip:'请输入正确的密码格式',
|
||||
userNameTip:'请输入正确的用户名格式不少于4位',
|
||||
passwdTip:'请输入正确的密码格式不少于6位',
|
||||
nickNameTip:'昵称不少于2位',
|
||||
emailTip:'请输入正确的邮箱地址',
|
||||
phoneTip:'请输入正确的手机号码',
|
||||
@@ -1699,6 +1767,55 @@ export default {
|
||||
refreshCacheTip: "确定要刷新参数配置缓存吗?",
|
||||
refreshCacheOk: "刷新缓存成功",
|
||||
},
|
||||
loginSource: {
|
||||
uid: "唯一标识",
|
||||
name: "名称",
|
||||
namePlease: '请正确输入认证源名称',
|
||||
icon: "图标",
|
||||
iconPlease: '可填入图片链接或上传图片路径地址',
|
||||
type: "类型",
|
||||
activeFlag: "状态",
|
||||
remark: "备注说明",
|
||||
createTime: "创建时间",
|
||||
updateTime: "更新时间",
|
||||
ldapUrl: "服务器地址",
|
||||
ldapUrlPlease: '请正确输入LDAP 服务器地址',
|
||||
ldapBaseDN: "基础DN",
|
||||
baseDnPlease: '请正确输入LDAP 基础DN',
|
||||
ldapUserFilter: "用户过滤",
|
||||
userFilterPlease: '请正确输入LDAP 用户过滤',
|
||||
ldapBindDN: "绑定DN",
|
||||
ldapBindPassword: "绑定密码",
|
||||
smtpHost: '服务器地址',
|
||||
smtpHostPlease: '请正确输入SMTP 服务器地址',
|
||||
smtpPort: '端口号',
|
||||
smtpPortPlease: '请正确输入SMTP 端口号',
|
||||
oauth2ClientID: '客户端ID',
|
||||
oauth2ClientIDPlease: '请正确输入OAuth2 客户端ID',
|
||||
oauth2ClientSecret: '客户端密钥',
|
||||
oauth2ClientSecretPlease: '请正确输入OAuth2 客户端密钥',
|
||||
oauth2AuthURL: '授权URL',
|
||||
oauth2AuthURLPlease: '请正确输入OAuth2 授权URL',
|
||||
oauth2TokenURL: '令牌URL',
|
||||
oauth2TokenURLPlease: '请正确输入OAuth2 令牌URL',
|
||||
oauth2UserURL: '用户信息URL',
|
||||
oauth2UserURLPlease: '请正确输入OAuth2 用户信息URL',
|
||||
oauth2AccountField: '账号字段',
|
||||
oauth2AccountFieldPlease: '请正确输入OAuth2 账号字段',
|
||||
oauth2Scopes: '作用域',
|
||||
oauth2ScopesPlease: '请正确输入OAuth2 作用域',
|
||||
oauth2RedirectURL: '重定向URL',
|
||||
oauth2RedirectURLPlease: '请正确输入OAuth2 重定向URL',
|
||||
oauth2RedirectURLTip: '请跳转指定路径(omchost/#/login/oauth2), 重定向携带code和state地址参数',
|
||||
uploadFileTip: '确认要上传认证源图标吗?',
|
||||
uploadFileOk: '认证源图标上传成功',
|
||||
uploadFileErr: '认证源图标上传失败',
|
||||
viewInfoErr: "获取认证源信息失败",
|
||||
addInfo: "添加认证源",
|
||||
editInfo: "修改认证源",
|
||||
delTip: "确认删除认证源编号为 【{num}】 的数据项?",
|
||||
delOk: "删除成功",
|
||||
},
|
||||
setting: {
|
||||
charMaxLen: '位字符长度',
|
||||
saveSubmit: '提交保存',
|
||||
@@ -1987,18 +2104,18 @@ export default {
|
||||
stepInstallDesc: "将网元服务安装到服务终端",
|
||||
stepInstallStepPrev: '确认要放弃当前变更返回上一步吗?',
|
||||
stepInstallStepNext: '确认要下一步进行网元许可授权吗?',
|
||||
stepInstallText: '选择安装',
|
||||
stepInstallText: '安装',
|
||||
stepInstallTip: '确认安装选择的网元新版本吗?',
|
||||
stepInstallModal: '网元进行安装',
|
||||
stepInstallNotNewVer: '没有发现新版本',
|
||||
stepInstallDone: '安装完成,服务进入初始化',
|
||||
stepInstallFail: '安装失败,请检查服务终端环境是否可用!',
|
||||
stepLicenseTitle: "网元许可授权",
|
||||
stepLicenseDesc: "获取网元许可激活码进行授权认证",
|
||||
stepLicenseReload: '选择刷新许可证',
|
||||
stepLicenseDesc: "获取网元授权码进行授权认证",
|
||||
stepLicenseReload: '刷新',
|
||||
stepLicenseReloadTip: '确认刷新选择的许可证信息吗?',
|
||||
stepLicenseDownCode: '选择下载网元许可激活码',
|
||||
stepLicenseDownCodeTip: '确认下载选择的网元许可激活码到文本文件吗?',
|
||||
stepLicenseDownCode: '下载授权码',
|
||||
stepLicenseDownCodeTip: '确认下载选择的网元授权码到文本文件吗?',
|
||||
stepLicenseStepPrev: '确认要放弃当前变更返回上一步吗?',
|
||||
stepLicenseStepNext: '确认要结束网元安装步骤吗?',
|
||||
stepLicenseStepNext2: '请下载网元许可授权码文件保存,并联系网元厂商获取授权许可证',
|
||||
|
||||
@@ -5,9 +5,9 @@ import {
|
||||
clearMenuItem,
|
||||
MenuDataItem,
|
||||
} from 'antdv-pro-layout';
|
||||
import CoreSelect from './components/CoreSelect.vue';
|
||||
import HeaderContentRight from './components/HeaderContentRight/HeaderContentRight.vue';
|
||||
import Tabs from './components/Tabs.vue';
|
||||
import CoreSelect from './components/CoreSelect.vue';
|
||||
import GlobalMask from '@/components/GlobalMask/index.vue';
|
||||
import ForcePasswdChange from '@/components/ForcePasswdChange/index.vue';
|
||||
import { scriptUrl } from '@/assets/js/icon_font_8d5l8fzk5b87iudi';
|
||||
@@ -22,20 +22,24 @@ import {
|
||||
import { useRouter } from 'vue-router';
|
||||
import useLayoutStore from '@/store/modules/layout';
|
||||
import useAppStore from '@/store/modules/app';
|
||||
import useCoreStore from '@/store/modules/core';
|
||||
import useNeStore from '@/store/modules/ne';
|
||||
import useRouterStore from '@/store/modules/router';
|
||||
import useTabsStore from '@/store/modules/tabs';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import useAlarmStore from '@/store/modules/alarm';
|
||||
import useCoreStore from '@/store/modules/core';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import { getServerTime } from '@/api';
|
||||
import { MENU_PATH_INLINE } from '@/constants/menu-constants';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { APP_SERVER_TYPE_M } from '@/constants/app-constants';
|
||||
import { getTimezoneOffset, parseDateUTCToStr } from '@/utils/date-utils';
|
||||
import { parseUrlPath } from '@/plugins/file-static-url';
|
||||
import { CORE_NE_PATH } from '@/hooks/useCoreUid';
|
||||
const { proConfig, waterMarkContent } = useLayoutStore();
|
||||
const { t, currentLocale } = useI18n();
|
||||
const routerStore = useRouterStore();
|
||||
const coreStore = useCoreStore();
|
||||
const neStore = useNeStore();
|
||||
const tabsStore = useTabsStore();
|
||||
const appStore = useAppStore();
|
||||
const router = useRouter();
|
||||
@@ -52,12 +56,29 @@ watch(
|
||||
router.currentRoute,
|
||||
v => {
|
||||
const matched = v.matched.concat();
|
||||
layoutState.openKeys = matched
|
||||
.filter(r => r.path !== v.path)
|
||||
.map(r => r.path);
|
||||
layoutState.selectedKeys = matched
|
||||
.filter(r => r.name !== 'Root')
|
||||
.map(r => r.path);
|
||||
let openKeys: string[] = [];
|
||||
let selectedKeys: string[] = [];
|
||||
|
||||
// 多核心网切换菜单显示
|
||||
if (
|
||||
appStore.serverType === APP_SERVER_TYPE_M &&
|
||||
coreStore.globalDefaultCoreUid !== coreStore.currentCoreUid
|
||||
) {
|
||||
openKeys = matched
|
||||
.filter(r => r.path !== CORE_NE_PATH)
|
||||
.filter(r => r.path !== v.path)
|
||||
.map(r => r.path.replace(CORE_NE_PATH, ''));
|
||||
selectedKeys = matched
|
||||
.filter(r => r.path !== CORE_NE_PATH)
|
||||
.map(r => r.path.replace(CORE_NE_PATH, ''));
|
||||
} else {
|
||||
openKeys = matched.filter(r => r.path !== v.path).map(r => r.path);
|
||||
selectedKeys = matched.filter(r => r.name !== 'Root').map(r => r.path);
|
||||
}
|
||||
|
||||
layoutState.openKeys = openKeys;
|
||||
layoutState.selectedKeys = selectedKeys;
|
||||
|
||||
// 路由地址含有内嵌地址标识又是隐藏菜单需要处理打开高亮菜单栏
|
||||
if (v.path.includes(MENU_PATH_INLINE) && v.meta.hideInMenu) {
|
||||
const idx = v.path.lastIndexOf(MENU_PATH_INLINE);
|
||||
@@ -72,20 +93,45 @@ watch(
|
||||
const menuData = computed(() => {
|
||||
const rootRoute = router.getRoutes().find(r => r.name === 'Root');
|
||||
if (rootRoute) {
|
||||
const children = routerStore.setRootRouterData(rootRoute.children);
|
||||
const rootRouteChildren = routerStore.setRootRouterData(rootRoute.children);
|
||||
const buildRouterData = routerStore.buildRouterData;
|
||||
if (buildRouterData.length > 0) {
|
||||
rootRoute.children = children.concat(buildRouterData);
|
||||
// 多核心网切换菜单显示
|
||||
if (appStore.serverType === APP_SERVER_TYPE_M) {
|
||||
const filterRoute = buildRouterData.filter(v => {
|
||||
if (coreStore.globalDefaultCoreUid === coreStore.currentCoreUid) {
|
||||
return v.path !== CORE_NE_PATH;
|
||||
} else {
|
||||
return v.path === CORE_NE_PATH;
|
||||
}
|
||||
});
|
||||
if (filterRoute.length === 1 && filterRoute[0].children) {
|
||||
rootRoute.children = rootRouteChildren.concat(
|
||||
filterRoute[0].children
|
||||
);
|
||||
} else {
|
||||
rootRoute.children = rootRouteChildren.concat(filterRoute);
|
||||
}
|
||||
} else {
|
||||
// 单核心网切换菜单显示
|
||||
rootRoute.children = rootRouteChildren.concat(buildRouterData);
|
||||
}
|
||||
} else {
|
||||
rootRoute.children = children;
|
||||
rootRoute.children = rootRouteChildren;
|
||||
}
|
||||
}
|
||||
|
||||
// 过滤网元限定菜单
|
||||
let neTypes = [];
|
||||
// 多核心网切换菜单显示
|
||||
if (appStore.serverType === APP_SERVER_TYPE_M) {
|
||||
neTypes = neStore.getCoreDataNeSelectOtions.map(v => v.value);
|
||||
} else {
|
||||
neTypes = neStore.getNeSelectOtions.map(v => v.value);
|
||||
}
|
||||
|
||||
let routes = clearMenuItem(router.getRoutes());
|
||||
const coreUid = useCoreStore().getCurrentCoreUid;
|
||||
const neTypes = useNeStore()
|
||||
.fnNeSelectOtions(coreUid)
|
||||
.map(v => v.value);
|
||||
routes = routerStore.clearMenuItemByNeList(routes, coreUid, neTypes);
|
||||
routes = routerStore.clearMenuItemByNeList(routes, neTypes);
|
||||
const { menuData } = getMenuData(routes);
|
||||
return menuData;
|
||||
});
|
||||
@@ -269,10 +315,10 @@ onUnmounted(() => {
|
||||
v-model:openKeys="layoutState.openKeys"
|
||||
:menu-data="menuData"
|
||||
:breadcrumb="{ routes: breadcrumb }"
|
||||
:siderWidth="248"
|
||||
v-bind="proConfig"
|
||||
:iconfont-url="scriptUrl"
|
||||
:locale="fnLocale"
|
||||
:sider-width="256"
|
||||
>
|
||||
<!--插槽-菜单头-->
|
||||
<template #menuHeaderRender>
|
||||
@@ -311,10 +357,10 @@ onUnmounted(() => {
|
||||
</template>
|
||||
|
||||
<!--插槽-渲染顶部内容区域,仅布局side有效-->
|
||||
<template #headerContentRender></template>
|
||||
|
||||
<!--插槽-渲染顶部内容区域,仅布局side有效-->
|
||||
<template #menuHeaderExtraRender>
|
||||
<template
|
||||
#headerContentRender
|
||||
v-if="appStore.serverType === APP_SERVER_TYPE_M"
|
||||
>
|
||||
<CoreSelect></CoreSelect>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -1,27 +1,31 @@
|
||||
<script lang="ts" setup>
|
||||
import useCoreStore from '@/store/modules/core';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import { ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
import useCoreStore from '@/store/modules/core';
|
||||
import useNeStore from '@/store/modules/ne';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
const coreStore = useCoreStore();
|
||||
const neStore = useNeStore();
|
||||
const router = useRouter();
|
||||
const { t } = useI18n();
|
||||
|
||||
/**当前选中 */
|
||||
const coreValue = ref(
|
||||
coreStore.current?.value == 'all' ? 'Global' : coreStore.current?.value
|
||||
);
|
||||
/**选择列表数据 */
|
||||
const coreOtions = ref(coreStore.getSelectOtions);
|
||||
/**选择过滤名称 */
|
||||
const coreName = ref();
|
||||
const coreName = ref('');
|
||||
|
||||
/**选择 */
|
||||
function handleSelect(v: any, item: any) {
|
||||
if (v === 'all') {
|
||||
coreValue.value = 'Global';
|
||||
async function handleSelect(v: any, item: any) {
|
||||
if (v === coreStore.globalDefaultCoreUid) {
|
||||
coreStore.setCurrent(coreStore.globalDefaultSelect);
|
||||
} else {
|
||||
coreValue.value = v;
|
||||
coreStore.setCurrent(item);
|
||||
}
|
||||
coreStore.setCurrent(item);
|
||||
await neStore.fnNelistRefresh();
|
||||
// 切换核心网后,刷新路由
|
||||
await router.replace({ name: 'Index' }).finally(() => {
|
||||
// location.replace(location.origin);
|
||||
});
|
||||
}
|
||||
|
||||
/**搜索过滤 */
|
||||
@@ -31,43 +35,36 @@ function handleSearchFilter(e: any) {
|
||||
return item.label.indexOf(label) !== -1;
|
||||
});
|
||||
}
|
||||
|
||||
/**内容挂载DOM */
|
||||
function getPopupContainer(): any {
|
||||
return document.querySelector('.ant-pro-sider');
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<a-select
|
||||
v-model:value="coreValue"
|
||||
v-model:value="coreStore.currentCoreUid"
|
||||
:options="coreOtions"
|
||||
style="width: 100%"
|
||||
:getPopupContainer="getPopupContainer"
|
||||
style="width: 200px"
|
||||
@change="handleSelect"
|
||||
>
|
||||
<template #option="{ label }">
|
||||
<span>{{ label }}</span>
|
||||
</template>
|
||||
<template #dropdownRender="{ menuNode: menu }">
|
||||
<strong>Core</strong>
|
||||
<a-button
|
||||
<strong>核心网</strong>
|
||||
<!-- <a-button
|
||||
type="default"
|
||||
:block="true"
|
||||
@click="handleSelect('all', { label: 'Global', value: 'all' })"
|
||||
@click="handleSelect(globalCoreUid(), {})"
|
||||
>
|
||||
<template #icon> <HomeOutlined /> </template>
|
||||
Global
|
||||
</a-button>
|
||||
</a-button> -->
|
||||
<a-input-search
|
||||
placeholder="Search Core Name"
|
||||
style="width: 100%; margin: 4px 0"
|
||||
size="small"
|
||||
v-model:value="coreName"
|
||||
@change="handleSearchFilter"
|
||||
@keydown.enter="handleSearchFilter"
|
||||
>
|
||||
<template #enterButton>
|
||||
<ReloadOutlined />
|
||||
</template>
|
||||
</a-input-search>
|
||||
<a-divider style="margin: 4px 0" />
|
||||
<component :is="menu" />
|
||||
|
||||
@@ -19,7 +19,7 @@ const router = useRouter();
|
||||
|
||||
/**告警数按钮提示跳转 */
|
||||
function fnClickAlarm() {
|
||||
router.push({ name: 'ActiveAlarm_2088' });
|
||||
router.push({ name: 'Active_2088' });
|
||||
}
|
||||
|
||||
/**改变主题色 */
|
||||
|
||||
@@ -10,9 +10,11 @@ import { getAccessToken } from '@/plugins/auth-token';
|
||||
import { validHttp } from '@/utils/regular-utils';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import useAppStore from '@/store/modules/app';
|
||||
import useRouterStore from '@/store/modules/router';
|
||||
import useCoreStore from '@/store/modules/core';
|
||||
import useNeStore from '@/store/modules/ne';
|
||||
import useRouterStore from '@/store/modules/router';
|
||||
import { APP_SERVER_TYPE_M } from '@/constants/app-constants';
|
||||
import { CORE_NE_PATH } from '@/hooks/useCoreUid';
|
||||
|
||||
// NProgress Configuration
|
||||
NProgress.configure({ showSpinner: false });
|
||||
@@ -50,7 +52,7 @@ router.afterEach((to, from, failure) => {
|
||||
/**无Token可访问页面地址白名单 */
|
||||
const WHITE_LIST: string[] = [
|
||||
'/login',
|
||||
'/auth-redirect',
|
||||
'/login/oauth2',
|
||||
'/help',
|
||||
'/register',
|
||||
'/quick-start',
|
||||
@@ -96,49 +98,66 @@ router.beforeEach(async (to, from, next) => {
|
||||
|
||||
// 有Token
|
||||
if (token) {
|
||||
// 防止重复访问登录页面
|
||||
if (to.path === '/login') {
|
||||
// 防止重复访问登录页面
|
||||
next({ name: 'Index' });
|
||||
} else {
|
||||
// 判断当前用户是否有角色信息
|
||||
const user = useUserStore();
|
||||
if (user.roles && user.roles.length === 0) {
|
||||
try {
|
||||
// 获取核心网列表
|
||||
await useCoreStore().fnCorelist();
|
||||
// 获取网元信息
|
||||
await useNeStore().fnNelist();
|
||||
|
||||
// 获取用户信息
|
||||
await user.fnGetInfo();
|
||||
// 获取路由信息
|
||||
const accessRoutes = await useRouterStore().generateRoutes();
|
||||
// 根据后台配置生成可访问的路由表
|
||||
if (accessRoutes && accessRoutes.length !== 0) {
|
||||
for (const route of accessRoutes) {
|
||||
// 动态添加可访问路由表,http开头会异常
|
||||
if (!validHttp(route.path)) {
|
||||
router.addRoute(route);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 多核心网菜单跳转判断非网元路径
|
||||
const useCore = useCoreStore();
|
||||
if (
|
||||
appStore.serverType === APP_SERVER_TYPE_M &&
|
||||
useCore.currentCoreUid == useCore.globalDefaultCoreUid &&
|
||||
to.path.startsWith(CORE_NE_PATH)
|
||||
) {
|
||||
next({ name: 'NotPermission' });
|
||||
return;
|
||||
}
|
||||
|
||||
// 判断当前用户是否有角色信息
|
||||
const useUser = useUserStore();
|
||||
const useNe = useNeStore();
|
||||
if (useUser.roles && useUser.roles.length === 0) {
|
||||
try {
|
||||
// 获取核心网列表
|
||||
await useCore.fnCorelist();
|
||||
// 获取网元信息
|
||||
await useNe.fnNelist();
|
||||
// 获取用户信息
|
||||
await useUser.fnGetInfo();
|
||||
// 获取路由信息
|
||||
const accessRoutes = await useRouterStore().generateRoutes();
|
||||
// 根据后台配置生成可访问的路由表
|
||||
if (accessRoutes && accessRoutes.length !== 0) {
|
||||
for (const route of accessRoutes) {
|
||||
// 动态添加可访问路由表,http开头会异常
|
||||
if (!validHttp(route.path)) {
|
||||
router.addRoute(route);
|
||||
}
|
||||
}
|
||||
// 刷新替换原先路由,确保addRoutes已完成
|
||||
next({ ...to, replace: true });
|
||||
} catch (error: any) {
|
||||
console.error(`[${to.path}]: ${error.message}`);
|
||||
await user.fnLogOut();
|
||||
next({ name: 'Login' });
|
||||
}
|
||||
} else if (
|
||||
to.meta.neType &&
|
||||
to.meta.neType.length > 0 &&
|
||||
!useNeStore().fnHasNe(to.meta.neType)
|
||||
) {
|
||||
next({ name: 'NotPermission' });
|
||||
} else {
|
||||
next();
|
||||
// 刷新替换原先路由,确保addRoutes已完成
|
||||
next({ ...to, replace: true });
|
||||
} catch (error: any) {
|
||||
console.error(`[${to.path}]: ${error.message}`);
|
||||
await useUser.fnLogOut();
|
||||
next({ name: 'Login' });
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// 网元是否存在权限判断
|
||||
if (
|
||||
Array.isArray(to.meta.neType) &&
|
||||
to.meta.neType.length > 0 &&
|
||||
!useNe.fnHasNe(to.meta.neType)
|
||||
) {
|
||||
next({ name: 'NotPermission' });
|
||||
return;
|
||||
}
|
||||
|
||||
next();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ export const constantRoutes: RouteRecordRaw[] = [
|
||||
path: '/index',
|
||||
name: 'Index',
|
||||
meta: { title: 'router.index', icon: 'icon-pcduan' },
|
||||
component: () => import('@/views/index.vue'),
|
||||
component: () => import('@/views/index/index.vue'),
|
||||
},
|
||||
{
|
||||
path: '/account',
|
||||
@@ -58,8 +58,8 @@ export const constantRoutes: RouteRecordRaw[] = [
|
||||
{
|
||||
path: '/trace-task-hlr',
|
||||
name: 'TraceTaskHLR', // 跟踪任务HLR
|
||||
meta: { title: 'router.traceTaskHLR', neType: ['HLR'] },
|
||||
component: () => import('@/views/traceManage/task-hlr/index.vue'),
|
||||
meta: { title: 'router.traceTaskHLR', neType: ['UDM', 'HLR'] },
|
||||
component: () => import('@/views/ne/trace/task-hlr/index.vue'),
|
||||
},
|
||||
{
|
||||
path: '/quick-start',
|
||||
@@ -74,11 +74,16 @@ export const constantRoutes: RouteRecordRaw[] = [
|
||||
component: () => import('@/views/tool/lockScreen/index.vue'),
|
||||
},
|
||||
|
||||
{
|
||||
path: '/login/oauth2',
|
||||
name: 'LoginOAuth2', // 第三方认证重定向
|
||||
component: () => import('@/views/login/oauth2.vue'),
|
||||
},
|
||||
{
|
||||
path: '/login',
|
||||
name: 'Login', // 登录页
|
||||
meta: { title: 'router.login' },
|
||||
component: () => import('@/views/login.vue'),
|
||||
component: () => import('@/views/login/index.vue'),
|
||||
},
|
||||
{
|
||||
path: '/register',
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
CACHE_LOCAL_I18N,
|
||||
CACHE_SESSION_CRYPTO_API,
|
||||
} from '@/constants/cache-keys-constants';
|
||||
import { RESULT_CODE_EXCEPTION, RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { delAccessToken, delRefreshToken } from '@/plugins/auth-token';
|
||||
import { parseUrlPath } from '@/plugins/file-static-url';
|
||||
import { localGet, localSet } from '@/utils/cache-local-utils';
|
||||
@@ -23,8 +23,8 @@ type AppStore = {
|
||||
version: string;
|
||||
/**系统引导使用 */
|
||||
bootloader: boolean;
|
||||
/**服务版本 */
|
||||
serverVersion: string;
|
||||
/**服务类型 oc 单核心网 mc 多核心网 tc 租户核心网 */
|
||||
serverType: string;
|
||||
// 用户登录认证
|
||||
loginAuth: boolean;
|
||||
// 用户接口加密
|
||||
@@ -60,7 +60,7 @@ const useAppStore = defineStore('app', {
|
||||
|
||||
version: '-',
|
||||
bootloader: false,
|
||||
serverVersion: '-',
|
||||
serverType: '-',
|
||||
loginAuth: true,
|
||||
cryptoApi: true,
|
||||
serialNum: '-',
|
||||
@@ -90,7 +90,7 @@ const useAppStore = defineStore('app', {
|
||||
const res = await getSysConf();
|
||||
if (res.code === RESULT_CODE_SUCCESS && res.data) {
|
||||
this.version = res.data.version;
|
||||
this.serverVersion = res.data.serverVersion;
|
||||
this.serverType = res.data.serverType;
|
||||
this.bootloader = res.data.bootloader === 'true';
|
||||
// 引导时
|
||||
if (this.bootloader) {
|
||||
@@ -131,7 +131,7 @@ const useAppStore = defineStore('app', {
|
||||
if (localI18n == null || (!this.i18nOpen && this.i18nDefault)) {
|
||||
localSet(CACHE_LOCAL_I18N, this.i18nDefault);
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -3,45 +3,59 @@ import {
|
||||
RESULT_MSG_SUCCESS,
|
||||
} from '@/constants/result-constants';
|
||||
import { defineStore } from 'pinia';
|
||||
import { listAllCoreInfo } from '@/api/core/coreInfo';
|
||||
import { localGetJSON, localSetJSON } from '@/utils/cache-local-utils';
|
||||
import { CACHE_SESSION_CORE } from '@/constants/cache-keys-constants';
|
||||
import { listAllCoreInfo } from '@/api/ne_core/coreInfo';
|
||||
import {
|
||||
changeCoreUid,
|
||||
changeCurrent,
|
||||
current,
|
||||
currentCoreUid,
|
||||
} from '@/hooks/useCoreUid';
|
||||
|
||||
/**核心网信息类型 */
|
||||
type Core = {
|
||||
/**核心网列表 */
|
||||
coreList: Record<string, any>[];
|
||||
|
||||
/**当前选择 */
|
||||
current: Record<string, any>;
|
||||
currentSelect: Record<string, any>;
|
||||
/**当前核心网标识 */
|
||||
currentCoreUid: string;
|
||||
|
||||
/**选择器单级父类型 */
|
||||
coreSelectOtions: Record<string, any>[];
|
||||
/**全局选择 */
|
||||
globalDefaultSelect: { label: string; value: string };
|
||||
/**默认核心网标识 */
|
||||
globalDefaultCoreUid: string;
|
||||
};
|
||||
|
||||
const useCoreStore = defineStore('core', {
|
||||
state: (): Core => ({
|
||||
coreList: [],
|
||||
current: localGetJSON(CACHE_SESSION_CORE) || {
|
||||
label: 'Global',
|
||||
value: 'all',
|
||||
},
|
||||
currentSelect: current(),
|
||||
currentCoreUid: currentCoreUid(),
|
||||
coreSelectOtions: [],
|
||||
globalDefaultSelect: {
|
||||
label: 'Global',
|
||||
value: 'YYMMDDHH',
|
||||
},
|
||||
globalDefaultCoreUid: 'YYMMDDHH',
|
||||
}),
|
||||
getters: {
|
||||
/**当前核心网Uid */
|
||||
getCurrentCoreUid(): string {
|
||||
return this.current.value;
|
||||
},
|
||||
/**选择器 */
|
||||
getSelectOtions(): Record<string, any>[] {
|
||||
return this.coreSelectOtions;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
setCurrent(value: Record<string, any> = {}) {
|
||||
this.current = value;
|
||||
localSetJSON(CACHE_SESSION_CORE, value);
|
||||
/**设置当前选择 */
|
||||
setCurrent(v: { label: string; value: string }) {
|
||||
this.currentSelect = v;
|
||||
this.currentCoreUid = v.value;
|
||||
// 存储
|
||||
changeCurrent(v);
|
||||
changeCoreUid(v.value);
|
||||
},
|
||||
// 刷新核心网列表
|
||||
/**刷新核心网列表 */
|
||||
async fnCorelistRefresh() {
|
||||
this.coreList = [];
|
||||
return await this.fnCorelist();
|
||||
@@ -64,11 +78,16 @@ const useCoreStore = defineStore('core', {
|
||||
// 转选择器单级父类型
|
||||
this.coreSelectOtions = res.data.map((item: any) => {
|
||||
return {
|
||||
label: item.name,
|
||||
label: item.coreName,
|
||||
value: item.coreUid,
|
||||
};
|
||||
});
|
||||
}
|
||||
// 当前未选择时
|
||||
this.coreSelectOtions.unshift(this.globalDefaultSelect);
|
||||
if (!this.currentSelect) {
|
||||
this.setCurrent(this.globalDefaultSelect);
|
||||
}
|
||||
return res;
|
||||
},
|
||||
},
|
||||
|
||||
@@ -5,22 +5,31 @@ import {
|
||||
} from '@/constants/result-constants';
|
||||
import { listAllNeInfo } from '@/api/ne/neInfo';
|
||||
import { parseDataToOptions } from '@/utils/parse-tree-utils';
|
||||
import { currentCoreUid } from '@/hooks/useCoreUid';
|
||||
|
||||
/**网元列表信息类型 */
|
||||
type NeList = {
|
||||
/**网元信息类型 */
|
||||
type Ne = {
|
||||
/**网元列表 */
|
||||
neList: Record<string, any>[];
|
||||
list: Record<string, any>[];
|
||||
/**级联options树结构 */
|
||||
neCascaderOptions: Map<string, Record<string, any>[]>;
|
||||
neCascaderOptions: Record<string, any>[];
|
||||
/**选择器单级父类型 */
|
||||
neSelectOtions: Map<string, Record<string, any>[]>;
|
||||
neSelectOtions: Record<string, any>[];
|
||||
/**Core数据级联options树结构 coreUid */
|
||||
coreDataNeCascaderOptions: Map<string, Record<string, any>[]>;
|
||||
/**Core选择器单级父类型 coreUid */
|
||||
coreDataNeSelectOtions: Map<string, Record<string, any>[]>;
|
||||
};
|
||||
|
||||
const useNeStore = defineStore('ne_list', {
|
||||
state: (): NeList => ({
|
||||
neList: [],
|
||||
neCascaderOptions: new Map(),
|
||||
neSelectOtions: new Map(),
|
||||
const useNeStore = defineStore('ne', {
|
||||
state: (): Ne => ({
|
||||
list: [],
|
||||
neCascaderOptions: [],
|
||||
neSelectOtions: [],
|
||||
/**Core数据级联options树结构 coreUid */
|
||||
coreDataNeCascaderOptions: new Map(),
|
||||
/**Core选择器单级父类型 coreUid */
|
||||
coreDataNeSelectOtions: new Map(),
|
||||
}),
|
||||
getters: {
|
||||
/**
|
||||
@@ -29,7 +38,7 @@ const useNeStore = defineStore('ne_list', {
|
||||
* @returns 级联options
|
||||
*/
|
||||
getNeList(state) {
|
||||
return state.neList;
|
||||
return state.list;
|
||||
},
|
||||
/**
|
||||
* 获取级联options树结构
|
||||
@@ -40,28 +49,46 @@ const useNeStore = defineStore('ne_list', {
|
||||
return state.neCascaderOptions;
|
||||
},
|
||||
/**
|
||||
* 选择器单级父类型
|
||||
* Core选择器单级父类型
|
||||
* @param state 内部属性不用传入
|
||||
* @returns 选择options
|
||||
*/
|
||||
getNeSelectOtions(state) {
|
||||
return state.neSelectOtions;
|
||||
},
|
||||
/**
|
||||
* Core获取级联options树结构
|
||||
* @param state 内部属性不用传入
|
||||
* @returns 级联options
|
||||
*/
|
||||
getCoreDataNeCascaderOptions(state) {
|
||||
const coreUid = currentCoreUid();
|
||||
return state.coreDataNeCascaderOptions.get(coreUid) || [];
|
||||
},
|
||||
/**
|
||||
* 选择器单级父类型
|
||||
* @param state 内部属性不用传入
|
||||
* @returns 选择options
|
||||
*/
|
||||
getCoreDataNeSelectOtions(state) {
|
||||
const coreUid = currentCoreUid();
|
||||
return state.coreDataNeSelectOtions.get(coreUid) || [];
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
// 刷新网元列表
|
||||
async fnNelistRefresh() {
|
||||
this.neList = [];
|
||||
this.list = [];
|
||||
return await this.fnNelist();
|
||||
},
|
||||
// 获取网元列表
|
||||
async fnNelist() {
|
||||
// 有数据不请求
|
||||
if (this.neList.length > 0) {
|
||||
if (this.list.length > 0) {
|
||||
return {
|
||||
code: RESULT_CODE_SUCCESS,
|
||||
msg: RESULT_MSG_SUCCESS['en_US'],
|
||||
data: this.neList,
|
||||
data: this.list,
|
||||
};
|
||||
}
|
||||
const res = await listAllNeInfo({
|
||||
@@ -70,73 +97,69 @@ const useNeStore = defineStore('ne_list', {
|
||||
});
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 原始列表
|
||||
this.neList = JSON.parse(JSON.stringify(res.data));
|
||||
const originalList = JSON.parse(JSON.stringify(res.data));
|
||||
this.list = originalList;
|
||||
|
||||
// 转级联数据
|
||||
const options = parseDataToOptions(
|
||||
res.data,
|
||||
originalList,
|
||||
'neType',
|
||||
'neName',
|
||||
'neUid'
|
||||
);
|
||||
this.neCascaderOptions = options;
|
||||
|
||||
for (const item of options) {
|
||||
const k = item.coreUid;
|
||||
// 转级联数据
|
||||
let cascaderMap = this.neCascaderOptions.get(k);
|
||||
if (cascaderMap) {
|
||||
cascaderMap.push(item);
|
||||
} else {
|
||||
cascaderMap = [item];
|
||||
}
|
||||
this.neCascaderOptions.set(k, cascaderMap);
|
||||
|
||||
// 转选择器单级父类型
|
||||
let selectMap = this.neSelectOtions.get(k);
|
||||
const selectItem = {
|
||||
// 转选择器单级父类型
|
||||
this.neSelectOtions = options.map(item => {
|
||||
return {
|
||||
label: item.label,
|
||||
value: item.value,
|
||||
};
|
||||
if (selectMap) {
|
||||
selectMap.push(selectItem);
|
||||
} else {
|
||||
selectMap = [selectItem];
|
||||
});
|
||||
|
||||
// 根据coreUid分组
|
||||
let groupCore: Record<string, any[]> = {};
|
||||
for (const element of originalList) {
|
||||
if (element.coreId !== 0 && element.coreUid) {
|
||||
if (groupCore[element.coreUid]) {
|
||||
groupCore[element.coreUid].push(element);
|
||||
} else {
|
||||
groupCore[element.coreUid] = [element];
|
||||
}
|
||||
}
|
||||
this.neSelectOtions.set(k, selectMap);
|
||||
}
|
||||
// 转Core数据级联options树结构
|
||||
for (const coreUid in groupCore) {
|
||||
const arr = groupCore[coreUid];
|
||||
// 转级联数据
|
||||
const cascaderOptions = parseDataToOptions(
|
||||
arr,
|
||||
'neType',
|
||||
'neName',
|
||||
'neUid'
|
||||
);
|
||||
this.coreDataNeCascaderOptions.set(coreUid, cascaderOptions);
|
||||
|
||||
// 转选择器单级父类型
|
||||
const selectOtions = cascaderOptions.map(item => {
|
||||
return {
|
||||
label: item.label,
|
||||
value: item.value,
|
||||
};
|
||||
});
|
||||
this.coreDataNeSelectOtions.set(coreUid, selectOtions);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
},
|
||||
/**
|
||||
* 获取级联options树结构
|
||||
* @param coreUid 核心网元uid
|
||||
*/
|
||||
fnNeCascaderOptions(coreUid: string) {
|
||||
const m = this.neCascaderOptions.get(coreUid);
|
||||
if (!m) {
|
||||
return [];
|
||||
}
|
||||
return m;
|
||||
},
|
||||
/**
|
||||
* 获取选择器单级父类型
|
||||
* @param coreUid 核心网元uid
|
||||
*/
|
||||
fnNeSelectOtions(coreUid: string) {
|
||||
const m = this.neSelectOtions.get(coreUid);
|
||||
if (!m) {
|
||||
return [];
|
||||
}
|
||||
return m;
|
||||
},
|
||||
/**
|
||||
* 含有网元
|
||||
* @param coreUid 核心网元uid
|
||||
* @param metaNeType ['udm', 'ims', 'udm+ims', 'SGWC'] 支持大小写
|
||||
* @returns boolean
|
||||
*/
|
||||
fnHasNe(coreUid: string, metaNeType: string[]) {
|
||||
if (this.neList.length > 0) {
|
||||
const neTypes = this.fnNeSelectOtions(coreUid).map(item => item.value);
|
||||
fnHasNe(metaNeType: string[]) {
|
||||
if (this.list.length > 0) {
|
||||
const neTypes = this.neSelectOtions.map(item => item.value);
|
||||
let match = false; // 匹配
|
||||
for (const netype of metaNeType) {
|
||||
if (netype.indexOf('+') > -1) {
|
||||
|
||||
@@ -58,34 +58,20 @@ const useRouterStore = defineStore('router', {
|
||||
/**
|
||||
* 根据网元类型过滤菜单
|
||||
* @param routes 经过clearMenuItem(router.getRoutes())处理
|
||||
* @param coreUid 核心网元uid
|
||||
* @param neTypes 网元类型
|
||||
* @returns 过滤后的菜单
|
||||
*/
|
||||
clearMenuItemByNeList(
|
||||
routes: RouteRecord[] | RouteRecordRaw[],
|
||||
coreUid: string,
|
||||
neTypes: string[]
|
||||
): RouteRecordRaw[] {
|
||||
return routes
|
||||
.map((item: RouteRecord | RouteRecordRaw) => {
|
||||
const finalItem = { ...item };
|
||||
// 过滤核心网菜单
|
||||
if (coreUid.length < 8 && finalItem.meta?.core == true) {
|
||||
// 全局 网元菜单
|
||||
return null;
|
||||
}
|
||||
if (coreUid.length == 8 && finalItem.meta?.core == false) {
|
||||
// 核心网 非网元菜单
|
||||
return null;
|
||||
}
|
||||
|
||||
// 过滤网元类型
|
||||
if (
|
||||
Array.isArray(finalItem.meta?.neType) &&
|
||||
finalItem.meta?.neType.length > 0
|
||||
) {
|
||||
let metaNeType: string[] = finalItem.meta.neType;
|
||||
let metaNeType: string[] = finalItem.meta?.neType || [];
|
||||
if (Array.isArray(metaNeType) && metaNeType.length > 0) {
|
||||
let match = false; // 匹配
|
||||
for (const netype of metaNeType) {
|
||||
if (netype.indexOf('+') > -1) {
|
||||
@@ -108,7 +94,6 @@ const useRouterStore = defineStore('router', {
|
||||
if (finalItem.children && finalItem.children.length > 0) {
|
||||
const children = this.clearMenuItemByNeList(
|
||||
finalItem.children,
|
||||
coreUid,
|
||||
neTypes
|
||||
);
|
||||
// 如果子菜单都被过滤掉了,就不显示
|
||||
|
||||
@@ -13,7 +13,7 @@ import { parseUrlPath } from '@/plugins/file-static-url';
|
||||
|
||||
/**用户信息类型 */
|
||||
type UserInfo = {
|
||||
/**用户ID */
|
||||
/**是否强制修改密码 */
|
||||
forcePasswdChange: boolean;
|
||||
/**用户ID */
|
||||
userId: string;
|
||||
@@ -33,8 +33,8 @@ type UserInfo = {
|
||||
email: string;
|
||||
/**用户性别 */
|
||||
sex: string | undefined;
|
||||
/**其他信息 */
|
||||
profile: Record<string, any>;
|
||||
/**用户类型 */
|
||||
userType: string;
|
||||
};
|
||||
|
||||
const useUserStore = defineStore('user', {
|
||||
@@ -49,7 +49,7 @@ const useUserStore = defineStore('user', {
|
||||
phone: '',
|
||||
email: '',
|
||||
sex: undefined,
|
||||
profile: {},
|
||||
userType: 'System',
|
||||
}),
|
||||
getters: {
|
||||
/**
|
||||
@@ -132,6 +132,7 @@ const useUserStore = defineStore('user', {
|
||||
this.phone = user.phone;
|
||||
this.email = user.email;
|
||||
this.sex = user.sex;
|
||||
this.userType = user.userType;
|
||||
|
||||
// 验证返回的roles是否是一个非空数组
|
||||
if (Array.isArray(roles) && roles.length > 0) {
|
||||
|
||||
5
src/typings/router.d.ts
vendored
5
src/typings/router.d.ts
vendored
@@ -9,11 +9,6 @@ declare module 'vue-router' {
|
||||
permissions?: string[];
|
||||
/**角色 */
|
||||
roles?: string[];
|
||||
|
||||
/**租户标识 */
|
||||
tenant?: boolean;
|
||||
/**核心网标识 */
|
||||
core?: boolean;
|
||||
/**网元类型信息 */
|
||||
neType?: string[];
|
||||
}
|
||||
|
||||
@@ -177,25 +177,6 @@ export function parseSizeFromKbs(sizeByte: number, timeInterval: number): any {
|
||||
return [(realBit / 1000 / 1000).toFixed(2), ' Mbits/sec'];
|
||||
}
|
||||
|
||||
/**
|
||||
* 位数据转换单位
|
||||
* @param bits 位Bit大小 64009540 = 512.08 MB
|
||||
* @returns xx B / KB / MB / GB / TB / PB / EB / ZB / YB
|
||||
*/
|
||||
export function parseSizeFromBits(bits: number | string): string {
|
||||
bits = Number(bits) || 0;
|
||||
if (bits <= 0) return '0 B';
|
||||
bits = bits * 8;
|
||||
const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
||||
const unitIndex = Math.floor(Math.log2(bits) / 10);
|
||||
const value = bits / Math.pow(1000, unitIndex);
|
||||
const unti = units[unitIndex];
|
||||
if (unitIndex > 0) {
|
||||
return `${value.toFixed(2)} ${unti}`;
|
||||
}
|
||||
return `${value} ${unti}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* 字节数转换单位
|
||||
* @param byte 字节Byte大小 64009540 = 512.08 MB
|
||||
|
||||
@@ -20,8 +20,9 @@ export const regExpPort =
|
||||
* 有效账号格式
|
||||
*
|
||||
* 账号只能包含大写字母、小写字母和数字的字符串,长度至少为6位
|
||||
* /^[A-Za-z0-9]{6,}$/
|
||||
*/
|
||||
export const regExpUserName = /^[A-Za-z0-9]{6,}$/;
|
||||
export const regExpUserName = /^.{4,}$/;
|
||||
|
||||
/**
|
||||
* 有效密码格式
|
||||
|
||||
1418
src/views/account/role/index.vue
Normal file
1418
src/views/account/role/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -6,8 +6,10 @@ import ResetPasswd from './components/reset-passwd.vue';
|
||||
import StyleLayout from './components/style-layout.vue';
|
||||
import { useRoute } from 'vue-router';
|
||||
import useAppStore from '@/store/modules/app';
|
||||
import useUserStore from '@/store/modules/user';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
const appStore = useAppStore();
|
||||
const userStore = useUserStore();
|
||||
const route = useRoute();
|
||||
const { t } = useI18n();
|
||||
|
||||
@@ -43,6 +45,7 @@ onActivated(() => {
|
||||
<a-tab-pane
|
||||
key="reset-passwd"
|
||||
:tab="t('views.account.settings.resetPasswd')"
|
||||
v-if="userStore.userType === 'System'"
|
||||
>
|
||||
<ResetPasswd></ResetPasswd>
|
||||
</a-tab-pane>
|
||||
|
||||
1122
src/views/account/third-party-login/index.vue
Normal file
1122
src/views/account/third-party-login/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
1642
src/views/account/user/index.vue
Normal file
1642
src/views/account/user/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
@@ -26,7 +26,7 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { readLoalXlsx } from '@/utils/execl-utils';
|
||||
import { parseDateToStr } from '@/utils/date-utils';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
const neListStore = useNeStore();
|
||||
const neStore = useNeStore();
|
||||
const { getDict } = useDictStore();
|
||||
const { t, currentLocale } = useI18n();
|
||||
|
||||
@@ -70,27 +70,21 @@ let rangePickerPresets = ref([
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
alarmStatus: 1,
|
||||
sortField: 'event_time',
|
||||
alarmStatus: 'Active',
|
||||
sortField: 'createdTime',
|
||||
sortOrder: 'desc',
|
||||
/**告警设备类型 */
|
||||
neType: '',
|
||||
/**告警网元名称 */
|
||||
neName: '',
|
||||
/**告警网元标识 */
|
||||
neId: '',
|
||||
/**告警编号 */
|
||||
alarmCode: '',
|
||||
/**告警级别 */
|
||||
origSeverity: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**告警产生时间开始时间 */
|
||||
beginTime: undefined as undefined | number,
|
||||
/**告警产生时间结束时间 */
|
||||
endTime: undefined as undefined | number,
|
||||
/**虚拟化标识 */
|
||||
pvFlag: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -102,25 +96,22 @@ let queryParams = reactive({
|
||||
/**查询参数重置 */
|
||||
function fnQueryReset() {
|
||||
queryParams = Object.assign(queryParams, {
|
||||
alarmStatus: 1,
|
||||
alarmStatus: 'Active',
|
||||
/**告警设备类型 */
|
||||
neType: '',
|
||||
/**告警网元名称 */
|
||||
neName: '',
|
||||
/**告警网元标识 */
|
||||
neId: '',
|
||||
/**告警编号 */
|
||||
alarmCode: '',
|
||||
/**告警级别 */
|
||||
origSeverity: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**告警产生时间 */
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
/**虚拟化标识 */
|
||||
pvFlag: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
@@ -140,6 +131,8 @@ type TabeStateType = {
|
||||
data: object[];
|
||||
/**勾选记录 */
|
||||
selectedRowKeys: (string | number)[];
|
||||
/**勾选记录 */
|
||||
selectedRows: Record<string, any>[];
|
||||
};
|
||||
|
||||
/**表格状态 */
|
||||
@@ -149,6 +142,7 @@ let tableState: TabeStateType = reactive({
|
||||
seached: false,
|
||||
data: [],
|
||||
selectedRowKeys: [],
|
||||
selectedRows: [],
|
||||
});
|
||||
|
||||
/**过滤设置 */
|
||||
@@ -164,6 +158,7 @@ let alarmTableState: TabeStateType = reactive({
|
||||
seached: true,
|
||||
data: [],
|
||||
selectedRowKeys: [],
|
||||
selectedRows: [],
|
||||
});
|
||||
|
||||
/**表格字段列 */
|
||||
@@ -225,13 +220,7 @@ let tableColumns: ColumnsType = [
|
||||
title: t('views.ne.common.neName'),
|
||||
dataIndex: 'neName',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.ne.common.neId'),
|
||||
dataIndex: 'neId',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
title: t('common.operate'),
|
||||
@@ -375,7 +364,6 @@ let modalState: ModalStateType = reactive({
|
||||
from: {
|
||||
alarmId: '',
|
||||
alarmSeq: '',
|
||||
neId: '',
|
||||
neName: '',
|
||||
neType: '',
|
||||
alarmCode: '',
|
||||
@@ -386,7 +374,7 @@ let modalState: ModalStateType = reactive({
|
||||
objectName: '',
|
||||
locationInfo: '',
|
||||
province: '',
|
||||
alarmStatus: '',
|
||||
alarmStatus: 'Active',
|
||||
specificProblemId: '',
|
||||
specificProblem: '',
|
||||
addInfo: '',
|
||||
@@ -455,7 +443,10 @@ function fnModalOk() {
|
||||
return false;
|
||||
}
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
ackAlarm([from.id], true)
|
||||
ackAlarm({
|
||||
id: from.id,
|
||||
ackState: true,
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
@@ -506,25 +497,18 @@ function fnShowModalOk() {
|
||||
modalState.confirmLoading = false;
|
||||
});
|
||||
}
|
||||
/**表格状态 */
|
||||
const state = reactive<{
|
||||
selectedRowKeys: (string | number)[];
|
||||
selectedRow: Record<string, any>;
|
||||
loading: boolean;
|
||||
}>({
|
||||
selectedRowKeys: [], // Check here to configure the default column
|
||||
selectedRow: {},
|
||||
loading: false,
|
||||
});
|
||||
|
||||
/**监听多选 */
|
||||
const onSelectChange = (
|
||||
keys: (string | number)[],
|
||||
record: Record<string, any>
|
||||
) => {
|
||||
state.selectedRowKeys = keys;
|
||||
state.selectedRow = record;
|
||||
};
|
||||
/**表格多选 */
|
||||
function fnTableSelectedRowKeys(keys: (string | number)[], rows: any[]) {
|
||||
tableState.selectedRowKeys = keys;
|
||||
tableState.selectedRows = rows.map(item => {
|
||||
return {
|
||||
id: item.id,
|
||||
neUid: item.neUid,
|
||||
neType: item.neType,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 选中行后的取消确认告警
|
||||
@@ -535,22 +519,33 @@ function fnCancelConfirm() {
|
||||
content: t('views.faultManage.activeAlarm.cancelSure'),
|
||||
onOk() {
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
const ids = state.selectedRowKeys.map(v => Number(v));
|
||||
ackAlarm(ids, false).then(res => {
|
||||
hide();
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.faultManage.activeAlarm.cancelSuss'),
|
||||
duration: 2,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
let reqArr: any = [];
|
||||
tableState.selectedRows.forEach(item => {
|
||||
reqArr.push(
|
||||
ackAlarm({
|
||||
id: item.id,
|
||||
ackState: false,
|
||||
})
|
||||
);
|
||||
});
|
||||
Promise.all(reqArr)
|
||||
.then(resArr => {
|
||||
if (resArr.every((item: any) => item.code === RESULT_CODE_SUCCESS)) {
|
||||
message.success({
|
||||
content: t('views.faultManage.activeAlarm.cancelSuss'),
|
||||
duration: 2,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: t('common.operateErr'),
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -560,22 +555,24 @@ function fnCancelConfirm() {
|
||||
*/
|
||||
function fnSync() {
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
listSync().then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.faultManage.activeAlarm.sysncSuss'),
|
||||
duration: 2,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
}).finally(()=>{
|
||||
hide();
|
||||
});
|
||||
listSync()
|
||||
.then(res => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.faultManage.activeAlarm.sysncSuss'),
|
||||
duration: 2,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -587,22 +584,27 @@ function fnClear() {
|
||||
content: t('views.faultManage.activeAlarm.delSure'),
|
||||
onOk() {
|
||||
const hide = message.loading(t('common.loading'), 0);
|
||||
const ids = state.selectedRowKeys.map(v => Number(v));
|
||||
clearAlarm(ids).then(res => {
|
||||
hide();
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
message.success({
|
||||
content: t('views.faultManage.activeAlarm.delSuss'),
|
||||
duration: 2,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: `${res.msg}`,
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
});
|
||||
let reqArr: any = [];
|
||||
const ids = tableState.selectedRowKeys.join(',');
|
||||
reqArr.push(clearAlarm(ids));
|
||||
Promise.all(reqArr)
|
||||
.then(resArr => {
|
||||
if (resArr.every((item: any) => item.code === RESULT_CODE_SUCCESS)) {
|
||||
message.success({
|
||||
content: t('views.faultManage.activeAlarm.delSuss'),
|
||||
duration: 2,
|
||||
});
|
||||
fnGetList();
|
||||
} else {
|
||||
message.error({
|
||||
content: t('common.operateErr'),
|
||||
duration: 2,
|
||||
});
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
hide();
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -799,8 +801,8 @@ function fnGetList(pageNum?: number) {
|
||||
listAct(form).then((res: any) => {
|
||||
if (res.code === RESULT_CODE_SUCCESS) {
|
||||
// 取消勾选
|
||||
if (state.selectedRowKeys.length > 0) {
|
||||
state.selectedRowKeys = [];
|
||||
if (tableState.selectedRowKeys.length > 0) {
|
||||
tableState.selectedRowKeys = [];
|
||||
}
|
||||
const { total, rows } = res.data;
|
||||
tablePagination.total = total;
|
||||
@@ -861,7 +863,7 @@ onMounted(() => {
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="neListStore.getNeSelectOtions"
|
||||
:options="neStore.getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.ne.common.neTypePlease')"
|
||||
/>
|
||||
@@ -890,6 +892,7 @@ onMounted(() => {
|
||||
v-model:value="queryParams.alarmType"
|
||||
:placeholder="t('common.selectPlease')"
|
||||
:options="dict.activeAlarmType"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -948,7 +951,7 @@ onMounted(() => {
|
||||
<a-button
|
||||
type="primary"
|
||||
@click.prevent="fnCancelConfirm()"
|
||||
:disabled="state.selectedRowKeys.length <= 0"
|
||||
:disabled="tableState.selectedRowKeys.length <= 0"
|
||||
v-if="false"
|
||||
>
|
||||
<template #icon>
|
||||
@@ -973,7 +976,7 @@ onMounted(() => {
|
||||
type="primary"
|
||||
danger
|
||||
@click.prevent="fnClear()"
|
||||
:disabled="state.selectedRowKeys.length <= 0"
|
||||
:disabled="tableState.selectedRowKeys.length <= 0"
|
||||
>
|
||||
<template #icon>
|
||||
<DeleteOutlined />
|
||||
@@ -1049,8 +1052,8 @@ onMounted(() => {
|
||||
:row-selection="{
|
||||
type: 'checkbox',
|
||||
columnWidth: '48px',
|
||||
selectedRowKeys: state.selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
selectedRowKeys: tableState.selectedRowKeys,
|
||||
onChange: fnTableSelectedRowKeys,
|
||||
}"
|
||||
:pagination="tablePagination"
|
||||
:scroll="{ x: tableColumns.length * 150, y: 'calc(100vh - 480px)' }"
|
||||
@@ -1183,22 +1186,18 @@ onMounted(() => {
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
{{ modalState.from.neType }}
|
||||
{{ modalState.from.neType }} ({{ modalState.from.neUid }})
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neId')" name="neId">
|
||||
{{ modalState.from.neId }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neName')" name="neName">
|
||||
{{ modalState.from.neName }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.neInfo.pvflag')" name="pvFlag">
|
||||
{{ modalState.from.pvFlag }}
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.origLevel')"
|
||||
name="origSeverity"
|
||||
>
|
||||
<DictTag
|
||||
:options="dict.activeAlarmSeverity"
|
||||
:value="modalState.from.origSeverity"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -1252,30 +1251,6 @@ onMounted(() => {
|
||||
{{ modalState.from.locationInfo }}
|
||||
</a-form-item>
|
||||
|
||||
<a-row> </a-row>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.province')"
|
||||
name="province"
|
||||
>
|
||||
{{ modalState.from.province }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.origLevel')"
|
||||
name="origSeverity"
|
||||
>
|
||||
<DictTag
|
||||
:options="dict.activeAlarmSeverity"
|
||||
:value="modalState.from.origSeverity"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.addInfo')"
|
||||
name="addInfo"
|
||||
@@ -1362,7 +1337,7 @@ onMounted(() => {
|
||||
>
|
||||
<a-auto-complete
|
||||
v-model:value="modalState.showSetFrom.ne_type"
|
||||
:options="neListStore.getNeSelectOtions"
|
||||
:options="neStore.getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('common.inputPlease')"
|
||||
/>
|
||||
@@ -15,7 +15,7 @@ import { writeSheet } from '@/utils/execl-utils';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { parseDateToStr } from '@/utils/date-utils';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
const neListStore = useNeStore();
|
||||
const neStore = useNeStore();
|
||||
const { t } = useI18n();
|
||||
|
||||
/**表格字段列排序 */
|
||||
@@ -41,26 +41,20 @@ let rangePickerPresets = ref([
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
sortField: 'event_time',
|
||||
sortField: 'createdTime',
|
||||
sortOrder: 'desc',
|
||||
/**告警设备类型 */
|
||||
neType: '',
|
||||
/**告警网元名称 */
|
||||
neName: '',
|
||||
/**告警网元标识 */
|
||||
neId: '',
|
||||
/**告警编号 */
|
||||
alarmCode: '',
|
||||
/**告警级别 */
|
||||
origSeverity: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**告警产生时间开始时间 */
|
||||
beginTime: undefined as undefined | number,
|
||||
/**告警产生时间结束时间 */
|
||||
endTime: undefined as undefined | number,
|
||||
/**虚拟化标识 */
|
||||
pvFlag: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -72,22 +66,19 @@ function fnQueryReset() {
|
||||
queryParams = Object.assign(queryParams, {
|
||||
/**告警设备类型 */
|
||||
neType: '',
|
||||
/**告警网元名称 */
|
||||
neName: '',
|
||||
/**告警网元标识 */
|
||||
neId: '',
|
||||
/**告警编号 */
|
||||
alarmCode: '',
|
||||
/**告警级别 */
|
||||
origSeverity: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**告警产生时间 */
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
/**虚拟化标识 */
|
||||
pvFlag: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
@@ -159,12 +150,6 @@ let tableColumns: ColumnsType = [
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.ne.common.neId'),
|
||||
dataIndex: 'neId',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('common.operate'),
|
||||
key: 'id',
|
||||
@@ -237,7 +222,6 @@ let modalState: ModalStateType = reactive({
|
||||
from: {
|
||||
alarmId: '',
|
||||
alarmSeq: '',
|
||||
neId: '',
|
||||
neName: '',
|
||||
neType: '',
|
||||
alarmCode: '',
|
||||
@@ -449,11 +433,11 @@ onMounted(() => {
|
||||
<!-- 表格搜索栏 -->
|
||||
<a-form :model="queryParams" name="queryParams" layout="horizontal">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="4" :md="12" :xs="24">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="neListStore.getNeSelectOtions"
|
||||
:options="neStore.getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.ne.common.neTypePlease')"
|
||||
/>
|
||||
@@ -643,6 +627,11 @@ onMounted(() => {
|
||||
</a-row>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
{{ modalState.from.neType }} ({{ modalState.from.neUid }})
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.alarmCode')"
|
||||
@@ -653,19 +642,6 @@ onMounted(() => {
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
{{ modalState.from.neType }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neId')" name="neId">
|
||||
{{ modalState.from.neId }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
@@ -680,7 +656,7 @@ onMounted(() => {
|
||||
:label="t('views.faultManage.activeAlarm.eventTime')"
|
||||
name="eventTime"
|
||||
>
|
||||
{{ modalState.from.eventTime }}
|
||||
{{ parseDateToStr(modalState.from.eventTime) }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -10,10 +10,10 @@ import { listForwarding } from '@/api/logManage/forwarding';
|
||||
import useNeStore from '@/store/modules/ne';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
const { getDict } = useDictStore();
|
||||
const { t } = useI18n();
|
||||
const neListStore = useNeStore();
|
||||
const neStore = useNeStore();
|
||||
/**字典数据 */
|
||||
let dict: {
|
||||
/**告警状态 */
|
||||
@@ -47,10 +47,10 @@ let rangePickerPresets = ref([
|
||||
]);
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
let queryParams = reactive({
|
||||
/**网元类型 */
|
||||
neType: '',
|
||||
sortField: 'event_time',
|
||||
sortField: 'createdTime',
|
||||
sortOrder: 'desc',
|
||||
/**开始时间 */
|
||||
beginTime: undefined as undefined | number,
|
||||
@@ -130,12 +130,6 @@ let tableColumns: ColumnsType = reactive([
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.ne.common.neId'),
|
||||
dataIndex: 'neId',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.logManage.forwarding.alarmId'),
|
||||
dataIndex: 'alarmId',
|
||||
@@ -195,7 +189,7 @@ let tableColumns: ColumnsType = reactive([
|
||||
},
|
||||
{
|
||||
title: t('views.logManage.forwarding.logTime'),
|
||||
dataIndex: 'createdAt',
|
||||
dataIndex: 'eventTime',
|
||||
align: 'left',
|
||||
customRender(opt) {
|
||||
if (!opt.value) return '';
|
||||
@@ -308,11 +302,11 @@ onMounted(() => {
|
||||
<!-- 表格搜索栏 -->
|
||||
<a-form :model="queryParams" name="queryParams" layout="horizontal">
|
||||
<a-row :gutter="16">
|
||||
<a-col :lg="4" :md="12" :xs="24">
|
||||
<a-col :lg="6" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="neListStore.getNeSelectOtions"
|
||||
:options="neStore.getNeSelectOtions"
|
||||
:placeholder="t('views.ne.common.neTypePlease')"
|
||||
allow-clear
|
||||
/>
|
||||
@@ -20,7 +20,7 @@ import { writeSheet } from '@/utils/execl-utils';
|
||||
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
|
||||
import { parseDateToStr } from '@/utils/date-utils';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
const neListStore = useNeStore();
|
||||
const neStore = useNeStore();
|
||||
const { getDict } = useDictStore();
|
||||
const { t } = useI18n();
|
||||
|
||||
@@ -61,27 +61,21 @@ let rangePickerPresets = ref([
|
||||
|
||||
/**查询参数 */
|
||||
let queryParams = reactive({
|
||||
alarmStatus: 0,
|
||||
sortField: 'event_time',
|
||||
alarmStatus: 'Clear',
|
||||
sortField: 'createdTime',
|
||||
sortOrder: 'desc',
|
||||
/**告警设备类型 */
|
||||
neType: '',
|
||||
/**告警网元名称 */
|
||||
neName: '',
|
||||
/**告警网元标识 */
|
||||
neId: '',
|
||||
/**告警编号 */
|
||||
alarmCode: '',
|
||||
/**告警级别 */
|
||||
origSeverity: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**告警产生时间开始时间 */
|
||||
beginTime: undefined as undefined | number,
|
||||
/**告警产生时间结束时间 */
|
||||
endTime: undefined as undefined | number,
|
||||
/**虚拟化标识 */
|
||||
pvFlag: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
@@ -91,25 +85,22 @@ let queryParams = reactive({
|
||||
/**查询参数重置 */
|
||||
function fnQueryReset() {
|
||||
queryParams = Object.assign(queryParams, {
|
||||
alarmStatus: 0,
|
||||
alarmStatus: 'Clear',
|
||||
/**告警设备类型 */
|
||||
neType: '',
|
||||
/**告警网元名称 */
|
||||
neName: '',
|
||||
/**告警网元标识 */
|
||||
neId: '',
|
||||
/**告警编号 */
|
||||
alarmCode: '',
|
||||
/**告警级别 */
|
||||
origSeverity: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**告警产生时间 */
|
||||
beginTime: undefined,
|
||||
endTime: undefined,
|
||||
/**虚拟化标识 */
|
||||
pvFlag: undefined,
|
||||
/**告警类型 */
|
||||
alarmType: undefined,
|
||||
/**当前页数 */
|
||||
pageNum: 1,
|
||||
/**每页条数 */
|
||||
pageSize: 20,
|
||||
});
|
||||
queryRangePicker.value = undefined;
|
||||
tablePagination.current = 1;
|
||||
@@ -194,18 +185,6 @@ let tableColumns = ref<ColumnsType>([
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.ne.common.neName'),
|
||||
dataIndex: 'neName',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.ne.common.neId'),
|
||||
dataIndex: 'neId',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.faultManage.activeAlarm.clearUser'),
|
||||
dataIndex: 'clearUser',
|
||||
@@ -306,7 +285,6 @@ let modalState: ModalStateType = reactive({
|
||||
from: {
|
||||
alarmId: '',
|
||||
alarmSeq: '',
|
||||
neId: '',
|
||||
neName: '',
|
||||
neType: '',
|
||||
alarmCode: '',
|
||||
@@ -317,7 +295,7 @@ let modalState: ModalStateType = reactive({
|
||||
objectName: '',
|
||||
locationInfo: '',
|
||||
province: '',
|
||||
alarmStatus: '',
|
||||
alarmStatus: 'Clear',
|
||||
specificProblemId: '',
|
||||
specificProblem: '',
|
||||
addInfo: '',
|
||||
@@ -660,7 +638,7 @@ onMounted(() => {
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="neListStore.getNeSelectOtions"
|
||||
:options="neStore.getNeSelectOtions"
|
||||
allow-clear
|
||||
:placeholder="t('views.ne.common.neTypePlease')"
|
||||
/>
|
||||
@@ -689,6 +667,7 @@ onMounted(() => {
|
||||
v-model:value="queryParams.alarmType"
|
||||
:placeholder="t('common.selectPlease')"
|
||||
:options="dict.activeAlarmType"
|
||||
allow-clear
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
@@ -919,22 +898,18 @@ onMounted(() => {
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
{{ modalState.from.neType }}
|
||||
{{ modalState.from.neType }} ({{ modalState.from.neUid }})
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neId')" name="neId">
|
||||
{{ modalState.from.neId }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.common.neName')" name="neName">
|
||||
{{ modalState.from.neName }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item :label="t('views.ne.neInfo.pvflag')" name="pvFlag">
|
||||
{{ modalState.from.pvFlag }}
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.origLevel')"
|
||||
name="origSeverity"
|
||||
>
|
||||
<DictTag
|
||||
:options="dict.activeAlarmSeverity"
|
||||
:value="modalState.from.origSeverity"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
@@ -987,27 +962,6 @@ onMounted(() => {
|
||||
>
|
||||
{{ modalState.from.locationInfo }}
|
||||
</a-form-item>
|
||||
<a-row>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.province')"
|
||||
name="province"
|
||||
>
|
||||
{{ modalState.from.province }}
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :lg="12" :md="12" :xs="24">
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.origLevel')"
|
||||
name="origSeverity"
|
||||
>
|
||||
<DictTag
|
||||
:options="dict.activeAlarmSeverity"
|
||||
:value="modalState.from.origSeverity"
|
||||
/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-form-item
|
||||
:label="t('views.faultManage.activeAlarm.addInfo')"
|
||||
@@ -11,9 +11,9 @@ import useNeStore from '@/store/modules/ne';
|
||||
import useDictStore from '@/store/modules/dict';
|
||||
import useI18n from '@/hooks/useI18n';
|
||||
import dayjs, { type Dayjs } from 'dayjs';
|
||||
const neStore = useNeStore();
|
||||
const { getDict } = useDictStore();
|
||||
const { t } = useI18n();
|
||||
const neListStore = useNeStore();
|
||||
/**字典数据 */
|
||||
let dict: {
|
||||
/**告警状态 */
|
||||
@@ -54,7 +54,7 @@ let queryParams = reactive({
|
||||
alarmStatus: undefined,
|
||||
/**告警类型 */
|
||||
origSeverity: undefined,
|
||||
sortField: 'event_time',
|
||||
sortField: 'createdTime',
|
||||
sortOrder: 'desc',
|
||||
/**开始时间 */
|
||||
beginTime: undefined as undefined | number,
|
||||
@@ -116,17 +116,11 @@ let tableColumns: ColumnsType = [
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.ne.common.neId'),
|
||||
dataIndex: 'neId',
|
||||
align: 'left',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: t('views.logManage.alarm.alarmId'),
|
||||
dataIndex: 'alarmId',
|
||||
align: 'left',
|
||||
width: 120,
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: t('views.logManage.alarm.alarmSeq'),
|
||||
@@ -173,16 +167,17 @@ let tableColumns: ColumnsType = [
|
||||
title: t('views.logManage.alarm.eventTime'),
|
||||
dataIndex: 'eventTime',
|
||||
align: 'left',
|
||||
width: 200,
|
||||
customRender(opt) {
|
||||
if (!opt.value) return '';
|
||||
return parseDateToStr(+opt.value);
|
||||
},
|
||||
width: 200,
|
||||
},
|
||||
{
|
||||
title: t('views.logManage.alarm.logTime'),
|
||||
dataIndex: 'createdAt',
|
||||
dataIndex: 'eventTime',
|
||||
align: 'left',
|
||||
width: 200,
|
||||
customRender(opt) {
|
||||
if (!opt.value) return '';
|
||||
return parseDateToStr(+opt.value);
|
||||
@@ -298,7 +293,7 @@ onMounted(() => {
|
||||
<a-form-item :label="t('views.ne.common.neType')" name="neType">
|
||||
<a-auto-complete
|
||||
v-model:value="queryParams.neType"
|
||||
:options="neListStore.getNeSelectOtions"
|
||||
:options="neStore.getNeSelectOtions"
|
||||
:placeholder="t('views.ne.common.neTypePlease')"
|
||||
allow-clear
|
||||
/>
|
||||
BIN
src/views/alarm/overview/images/bg.png
Normal file
BIN
src/views/alarm/overview/images/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 257 KiB |
1336
src/views/alarm/overview/index.vue
Normal file
1336
src/views/alarm/overview/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
16
src/views/core-ne/alarm/active/index.vue
Normal file
16
src/views/core-ne/alarm/active/index.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue';
|
||||
import { PageContainer } from 'antdv-pro-layout';
|
||||
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :bordered="false" :body-style="{ padding: '0px' }">
|
||||
<h1>Overview 核心网 概览</h1>
|
||||
</a-card>
|
||||
</PageContainer>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
16
src/views/core-ne/alarm/event/index.vue
Normal file
16
src/views/core-ne/alarm/event/index.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue';
|
||||
import { PageContainer } from 'antdv-pro-layout';
|
||||
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :bordered="false" :body-style="{ padding: '0px' }">
|
||||
<h1>Overview 核心网 概览</h1>
|
||||
</a-card>
|
||||
</PageContainer>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
16
src/views/core-ne/alarm/forward/index.vue
Normal file
16
src/views/core-ne/alarm/forward/index.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue';
|
||||
import { PageContainer } from 'antdv-pro-layout';
|
||||
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :bordered="false" :body-style="{ padding: '0px' }">
|
||||
<h1>Overview 核心网 概览</h1>
|
||||
</a-card>
|
||||
</PageContainer>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
16
src/views/core-ne/alarm/historical/index.vue
Normal file
16
src/views/core-ne/alarm/historical/index.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue';
|
||||
import { PageContainer } from 'antdv-pro-layout';
|
||||
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :bordered="false" :body-style="{ padding: '0px' }">
|
||||
<h1>Overview 核心网 概览</h1>
|
||||
</a-card>
|
||||
</PageContainer>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
16
src/views/core-ne/alarm/logs/index.vue
Normal file
16
src/views/core-ne/alarm/logs/index.vue
Normal file
@@ -0,0 +1,16 @@
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue';
|
||||
import { PageContainer } from 'antdv-pro-layout';
|
||||
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<PageContainer>
|
||||
<a-card :bordered="false" :body-style="{ padding: '0px' }">
|
||||
<h1>Overview 核心网 概览</h1>
|
||||
</a-card>
|
||||
</PageContainer>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped></style>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user