1269 Commits

Author SHA1 Message Date
TsMask
33558d3f00 Merge branch 'main-v2' into lite-ba 2025-10-24 20:46:42 +08:00
TsMask
0b15ff1476 fix: AMF配置WhiteList Content导入index0无效问题 2025-10-24 20:46:20 +08:00
TsMask
5061f16fe7 Merge branch 'main-v2' into lite-ba 2025-10-24 20:26:01 +08:00
TsMask
8ced920aec chore: 更新版本号 2.2510.4 2025-10-24 20:11:19 +08:00
TsMask
22201bbb2d Merge branch 'main-v2' into lite-ba 2025-10-23 18:40:40 +08:00
zhongzm
4ae74103f1 Merge remote-tracking branch 'origin/main-v2' into main-v2 2025-10-23 18:06:45 +08:00
zhongzm
1c4c1a796d feat:同步语音仪表盘:修改useNeInfoStore导入地址、补充接口导入、修改ims请求参数、修改响应码 2025-10-23 18:06:34 +08:00
TsMask
a658852772 feat: 基站状态补充randId列 2025-10-23 14:15:46 +08:00
TsMask
aa842e246b Merge branch 'main-v2' into lite-ba 2025-10-20 18:12:14 +08:00
TsMask
0d13400229 chore: 更新版本号 2.2510.3 2025-10-18 18:09:04 +08:00
TsMask
7491ccc00b feat: 网元配置备份修改表单校验规则,添加备注字段必填项 2025-10-18 14:20:46 +08:00
TsMask
fc64460870 feat: 网元配置选择传入neId查询配置数据 2025-10-17 10:20:40 +08:00
TsMask
323da55c9d feat: 更新根网管节点处理逻辑,支持无OMC情况 2025-10-15 11:42:27 +08:00
TsMask
52528343bf Merge branch 'main-v2' into lite-ba 2025-10-14 18:08:12 +08:00
TsMask
26cf7fa560 style: 移除ID列显示 2025-10-14 11:08:58 +08:00
TsMask
5ea56e779a feat: 备份网元日志文件数据查看 2025-10-14 11:08:39 +08:00
TsMask
174a7afc47 chore: 更新版本号 2.2510.2 2025-10-11 19:06:04 +08:00
TsMask
b53426550d Merge branch 'main-v2' into lite-ba 2025-10-11 17:29:01 +08:00
TsMask
f4e61a0ebc fix: MML回车undefined问题,关闭搜索匹配 2025-10-11 17:28:05 +08:00
TsMask
b5d7ce8685 style: UDMAuth导出按钮文字 2025-10-10 11:20:39 +08:00
TsMask
19d563af75 Merge branch 'main-v2' into lite-ba 2025-10-10 11:12:41 +08:00
TsMask
97e5533d6e style: 移除ID列显示 2025-10-09 19:54:49 +08:00
TsMask
48c6434e65 Merge branch 'main-v2' into lite-ba 2025-10-09 14:58:53 +08:00
TsMask
e1c4229e58 style: 移除网元版本和授权ID列显示 2025-10-09 11:22:19 +08:00
TsMask
b1c96bb123 Merge branch 'main-v2' into lite-ba 2025-09-28 20:18:28 +08:00
TsMask
c6e21c6c38 fix: SMSC-CDR添加结果原因说明 2025-09-28 20:13:13 +08:00
TsMask
b1d0771d56 feat: UDM-auth数据导出按钮权限定义 2025-09-28 19:31:42 +08:00
TsMask
22b0b7e204 chore: 更新版本号 2.2509.4 2025-09-26 20:22:30 +08:00
TsMask
93f31eded4 Merge branch 'main-v2' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 into main-v2 2025-09-25 15:30:32 +08:00
TsMask
1eec47f410 style: UDM数据显示创建时间列 2025-09-25 15:30:28 +08:00
zhongzm
d9bc5b9f02 feat:中英文补充 2025-09-22 18:13:20 +08:00
zhongzm
3116e51338 feat:取消成功网元排列,仅保留显示失败网元 2025-09-22 18:09:27 +08:00
TsMask
c4273c2074 Merge branch 'main-v2' into lite-ba 2025-09-19 14:55:52 +08:00
TsMask
3026ac1dd8 rev:流量格式化MB、GB 2025-09-19 14:19:07 +08:00
TsMask
c01380da6b feat: 添加系统备份功能,包括导入导出OMC的API和界面支持 2025-09-19 12:04:49 +08:00
zhongzm
98e4d39cdf feat:流量格式化MB、GB 2025-09-19 09:18:32 +08:00
TsMask
1c025c2cc1 feat: 日志备份文件查看kpi文件记录 2025-09-18 11:02:20 +08:00
TsMask
20a12eba56 fix: 根据搜索条件导出,去除最大记录限制 2025-09-18 11:01:36 +08:00
TsMask
904488f59a feat: 添加活动告警自动刷新功能并优化代码结构 2025-09-15 19:32:11 +08:00
TsMask
a2f93f7862 feat: 修复奇安信浏览器时区格式错误 2025-09-15 16:40:40 +08:00
TsMask
d249d14c49 feat: 添加网元配置快速PLMN修改框 2025-09-15 16:11:08 +08:00
TsMask
58d0e6e884 feat: 移除掉一些权限标识 2025-09-15 14:23:17 +08:00
zhongzm
510e3e1006 feat:ue和ne模块权限按钮 2025-09-12 18:52:50 +08:00
zhongzm
02b12d76a7 Merge remote-tracking branch 'origin/main-v2' into main-v2 2025-09-12 17:09:32 +08:00
zhongzm
5839aa3cb1 feat:监控模块按钮权限 2025-09-12 17:09:17 +08:00
TsMask
83a289492d fix: UDM数据导出提示信息,导出总数 2025-09-12 17:08:07 +08:00
zhongzm
05d59ec526 feat:进度条显示调整 2025-09-11 11:42:29 +08:00
zhongzm
c22d7604cf feat:fnModalOk参数传递修复 2025-09-11 11:04:05 +08:00
zhongzm
6f9639d3d4 feat:控制台警告修复 2025-09-11 10:38:13 +08:00
zhongzm
5932662e7c feat:网元许可快速上传功能 2025-09-10 18:08:53 +08:00
zhongzm
cdbe9a1e42 feat:网元信息快速OAM功能 2025-09-10 16:27:34 +08:00
TsMask
2d09be6341 Merge branch 'main-v2' into lite-ba 2025-08-29 19:53:10 +08:00
TsMask
a032236d7d chore: 更新版本号 2.2508.4 2025-08-29 19:19:51 +08:00
TsMask
1dcd8a6e25 feat: 网元授权显示用户数/基站数 2025-08-29 18:49:58 +08:00
TsMask
e075779b91 style: 网元当前版本显示是否有包存在 2025-08-29 18:49:49 +08:00
TsMask
e5ce2ebb02 fix: cdr/ue导出操作后锁定按钮事件防重发 2025-08-28 16:09:45 +08:00
TsMask
3da786f6b9 feat: 网元可选静态可选项添加PGWC 2025-08-28 10:55:31 +08:00
TsMask
d4e603be63 fix: 参数配置添加校验过滤长度~和-定义范围 2025-08-28 10:42:07 +08:00
TsMask
a7024df325 fix: UPF流量统计数据同时获取刷新 2025-08-28 09:52:25 +08:00
TsMask
b525b92163 fix: UPF流量统计字节数据格式化显示不一致问题 2025-08-28 09:51:24 +08:00
TsMask
457bf02452 Merge branch 'main-v2' into lite-ba 2025-08-21 17:02:24 +08:00
TsMask
7916cc5a54 feat: 指标Title管理页面功能 2025-08-21 11:10:51 +08:00
TsMask
54468e2728 style: sgwc导出超时180s 2025-08-19 16:07:43 +08:00
TsMask
91ce2d7737 fix: 增加多个导出操作的超时时间至180秒 2025-08-18 19:07:41 +08:00
TsMask
011c74d8d7 style: 登录密码输入至少5位 2025-08-18 16:11:29 +08:00
TsMask
06c72a914e Merge branch 'main-v2' into lite 2025-08-18 11:12:39 +08:00
zhongzm
40705c6863 feat:中英文补充 2025-08-15 19:04:53 +08:00
TsMask
c43e57a5d8 chore: 更新版本号 2.2508.2 2025-08-15 18:49:10 +08:00
TsMask
037fb18e06 fix: 给config.js加随机数避免缓存 2025-08-15 09:48:36 +08:00
TsMask
8eaddc8e79 fix: 第三方用户不可删除和修改密码 2025-08-14 10:48:40 +08:00
TsMask
a7b539cd36 feat: 第三方登录认证功能和管理页 2025-08-12 09:54:37 +08:00
TsMask
0514c58b63 style:: 系统操作日志详情json格式化显示 2025-08-11 15:39:02 +08:00
TsMask
6a558788c7 fix: 网元信息更新禁止修改neType neId 2025-08-11 11:42:47 +08:00
zhongzm
253e36073d feat:用户数重置0 注释 2025-08-11 11:23:46 +08:00
zhongzm
3d7543074d feat:用户数网元切换显示 2025-08-11 11:15:51 +08:00
zhongzm
91175acd31 feat:用户数累加问题修复 2025-08-11 10:40:36 +08:00
zhongzm
a7c2d25c5d feat:液体图中浮标显示错误修复 2025-08-08 19:53:36 +08:00
zhongzm
cd495ab817 feat:基站数修复以及资源模块下拉框修复 2025-08-08 19:41:52 +08:00
TsMask
3229f21bcf fix: 告警事件时间显示不是时间格式字符串 2025-08-08 18:26:46 +08:00
zhongzm
33ffbbe4b2 feat:透明柱状图自适应,数值标签定位 2025-08-08 17:36:25 +08:00
zhongzm
2b4ce5f1c4 feat:告警数据参数调整 2025-08-08 17:15:20 +08:00
TsMask
8a31265743 chore: 更新版本号 2.2508.1 2025-08-08 12:12:08 +08:00
zhongzm
2492555a69 feat:主动呼叫改正在通话 2025-08-08 11:36:15 +08:00
zhongzm
6644ef2608 feat:网元切换清除缓存数据 2025-08-08 11:35:50 +08:00
zhongzm
1359aa8994 feat:调整顺序 2025-08-07 19:15:40 +08:00
TsMask
bffd3fe791 Merge branch 'main-v2' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 into main-v2 2025-08-07 15:49:49 +08:00
TsMask
c020598678 fix: 看板切换upf的流量统计显示 2025-08-07 15:49:47 +08:00
zhongzm
7a7a0938ca feat:语音仪表盘中英文适配 2025-08-06 17:35:03 +08:00
TsMask
48a4497c14 fix: 看板2用户数量显示不出 2025-08-05 19:51:06 +08:00
TsMask
1342a37d50 style: 修改广播帮助的数量提示 2025-08-05 18:51:33 +08:00
TsMask
67dc3a0389 fix: MML日志列表显示 2025-08-05 17:28:03 +08:00
TsMask
7901b34c04 style: 系统用户账号简单4位长度 2025-08-05 17:27:18 +08:00
TsMask
6aeb645d88 fix: CBC创建时间格式显示错误 2025-08-05 17:26:20 +08:00
TsMask
501fc4fd07 style: 网元概览隐藏容量字段显示 2025-08-05 15:25:34 +08:00
TsMask
b16a91ca74 fix: 关闭网元reload操作,只有amf smf upf udm四个网元支持,改用mml发送 2025-08-05 11:23:55 +08:00
TsMask
37691e5349 fix: MML命令为空判断不发送 2025-08-04 18:27:24 +08:00
TsMask
e4136a27ee fix: UDM鉴权更新ki长度提示错误无法发送请求 2025-08-04 16:41:08 +08:00
TsMask
27bcf0ce6b chore: 更新版本号 2.2507.4 2025-08-01 18:23:02 +08:00
TsMask
6ca7181bce fix: cbc表格列宽设置 2025-08-01 17:51:22 +08:00
zhongzm
a0ae414ec6 feat:数据采集说明 2025-08-01 17:33:06 +08:00
zhongzm
ef3368ded9 feat:修复界面溢出 2025-08-01 16:58:00 +08:00
zhongzm
abdd58fc81 feat:底部边距 2025-08-01 16:52:58 +08:00
zhongzm
6572fd13b1 feat:告警模块优化 2025-08-01 16:44:20 +08:00
lai
e190379468 Merge branch 'main-v2' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 into main-v2 2025-08-01 15:54:34 +08:00
lai
6b2682b3d3 新增cbc界面 2025-08-01 15:49:01 +08:00
zhongzm
bbc27c757b feat:数据处理修复,显示优化 2025-08-01 15:04:19 +08:00
TsMask
94b0f46195 style: 网元概览去除信息显示 2025-07-31 16:46:25 +08:00
zhongzm
cf88c86b75 Merge remote-tracking branch 'origin/main-v2' into main-v2 2025-07-30 18:34:50 +08:00
zhongzm
aa16a7356f feat:参数值推送显示修复 2025-07-30 18:34:39 +08:00
TsMask
e982f09874 chore: 更新版本号 2.2507.3 2025-07-25 20:31:15 +08:00
TsMask
9e69e76670 style: 将UDM鉴权导出按钮隐藏 2025-07-24 19:21:00 +08:00
TsMask
ad373961e4 fix:: 自定义指标数值格式处理,导出表格修复 2025-07-23 10:56:59 +08:00
TsMask
26da73654f fix: 仪表盘2用户事件显示不正常 2025-07-22 18:51:41 +08:00
TsMask
09b7d806ea fix:: 自定义指标数值格式化保留3位小数 2025-07-22 18:50:57 +08:00
TsMask
b5400b0dd8 feat: 参数配置AMF导入Index字段存在更新,不存在默认新增 2025-07-21 17:13:10 +08:00
TsMask
b5b9e763aa feat: 参数配置刷新无法正常打开,导入白名单字段格式转换 2025-07-21 15:40:30 +08:00
TsMask
fb20e40e67 chore: 更新版本号 2.2507.2 2025-07-18 21:28:49 +08:00
TsMask
a19427e953 fix: 指标页面数据获取异常接口调整 2025-07-18 21:24:58 +08:00
TsMask
a76c595c4c del: 删除无用文件 2025-07-18 21:23:24 +08:00
zhongzm
ee55be5fcc feat:参数和接口修改问题 2025-07-18 18:56:02 +08:00
zhongzm
96c1f54b71 feat:综合仪表盘修改迁移以及版本兼容修复 2025-07-18 17:27:12 +08:00
zhongzm
8b6805fdb0 feat:综合仪表盘修改初版 2025-07-18 15:19:05 +08:00
TsMask
f5cdad08c5 fix: 注释掉echarts-liquidfill 2025-07-16 15:03:43 +08:00
TsMask
10a5ed15bf feat: mt版本移动过来的的告警/仪表/性能大屏页面 2025-07-16 14:51:41 +08:00
TsMask
ab7a466879 fix: 基站状态记录和smscCDR导出改为get行为 2025-07-15 19:54:02 +08:00
TsMask
82b1340906 fix: 基站状态拓扑图显示失败 2025-07-15 19:53:08 +08:00
TsMask
46ace81d9d fix: 调整UE数据返回参数 2025-07-15 19:52:38 +08:00
TsMask
73993eb4ce fix: 参数配置列表项不记录勾选状态 2025-07-15 19:51:54 +08:00
TsMask
dd9bcaa7ce fix: 调整告警类型参数值 2025-07-15 19:51:20 +08:00
TsMask
27b2cfb449 feat: 调整MML命令请求接口 2025-07-15 19:50:09 +08:00
TsMask
3eae546aa4 fix: CDR返回信息调整 2025-07-15 19:49:18 +08:00
TsMask
818f91ad89 feat: 调整nssf/n3iwf接口调用 2025-07-15 19:47:46 +08:00
TsMask
594e439b43 fix: 调整安装UE_POOL改到基础项 2025-07-10 14:30:07 +08:00
TsMask
a0ae95345c fix: 调整安装UE_POOL改到基础项 2025-07-10 11:23:27 +08:00
TsMask
2e23709fe4 feat: HLR跟踪页面标识为UDM 2025-07-07 10:43:50 +08:00
TsMask
c80e7f17de chore: 更新版本号 2.2507.1 2025-07-05 10:28:27 +08:00
TsMask
799eacc9fa chore: 更新版本号 2.2507.1 2025-07-05 10:17:34 +08:00
TsMask
8e769a99e9 fix: 修复listCacheKey函数中的URL路径错误 2025-07-02 18:49:16 +08:00
TsMask
93ea37bbc1 fix: SMF-DATA图表日期显示不完整 2025-07-02 18:10:09 +08:00
TsMask
e3f70640b8 fix: 跟踪任务编号的传入获取信息 2025-07-02 15:27:45 +08:00
TsMask
55216fe6cf Merge branch 'main-v2' into lite 2025-07-01 10:29:56 +08:00
TsMask
2181d51999 fix: 参数配置可见visible属性判断 2025-06-30 16:17:07 +08:00
TsMask
a2a7ec3857 chore: 更新版本号 2.2506.4 2025-06-27 19:33:51 +08:00
TsMask
1566392c19 feat: AMF/MME对应的IMEI白名单模板去除index 2025-06-24 17:13:57 +08:00
TsMask
5704ff09c3 fix: UDM-IMS数据批量新增/批量删除命令调整 2025-06-24 17:13:18 +08:00
TsMask
673b8f9ad2 chore: 更新版本号 2.250620 2025-06-20 19:30:30 +08:00
TsMask
b6468eecab feat: UDM签约cnType新增可选1仅5G/2仅4G 2025-06-20 14:54:53 +08:00
TsMask
b8c6761fbf feat: 给AMF/MME对应的IMEI白名单添加批量导入和批量删除功能 2025-06-20 14:39:53 +08:00
TsMask
d6aa4086e2 feat: UDM voup/ims导入失败文件下载 2025-06-16 18:47:13 +08:00
TsMask
f513b47fb8 chore: 更新版本号 2.250613 2025-06-13 20:12:08 +08:00
TsMask
eb1dccd642 fix: 数值控件属性maxlength拼写错误 2025-06-12 19:40:25 +08:00
TsMask
94ba520f5d fix: 空格内容无法编辑,提示信息显示方向 2025-06-12 10:34:05 +08:00
TsMask
d3649ea784 style: 抓包文件目录列表显示文件大小 2025-06-11 20:35:35 +08:00
TsMask
2f7c22aac2 chore: 更新版本号 2.250607 2025-06-07 16:29:29 +08:00
TsMask
2f8ed1d821 fix: 请求响应码常量,身份信息更换逻辑优化 2025-06-07 16:28:18 +08:00
TsMask
d84a6626c1 fix: 更新tcpdump路径从/tmp到/usr/local以符合新目录结构 2025-06-06 15:06:52 +08:00
TsMask
9ad497471d style: 补充版本发布日志 2025-06-03 17:36:59 +08:00
TsMask
51097f7bd1 style: 网元参数配置修改tooltip位置为bottomLeft防止遮挡 2025-05-30 16:49:50 +08:00
TsMask
87b4c19f5a chore: 更新版本号 2.250530 2025-05-30 14:41:24 +08:00
TsMask
3eafac4ad3 Merge branch 'lichang' into lite 2025-05-30 14:26:05 +08:00
TsMask
319f03abfd fix: 服务器时间格式化指定时区 2025-05-30 14:16:31 +08:00
TsMask
50892af7a8 Merge branch 'lichang' into lite 2025-05-29 20:33:28 +08:00
TsMask
d6a82f2034 style: 网元授权状态更新容量和更新时间局部变化 2025-05-29 20:33:17 +08:00
TsMask
93e455f645 Merge branch 'lichang' into lite 2025-05-29 19:50:57 +08:00
TsMask
2288af6403 style: 网元授权状态更新容量和更新时间局部变化 2025-05-29 19:50:28 +08:00
TsMask
34c57803a1 Merge branch 'lichang' into lite 2025-05-29 18:25:11 +08:00
TsMask
62e8d996d9 style: 网元授权状态更新容量和更新时间局部变化 2025-05-29 16:35:08 +08:00
TsMask
708eb6535e chore: 更新版本号 2.250529 2025-05-29 15:41:51 +08:00
TsMask
e66e645866 Merge branch 'lichang' into lite 2025-05-29 15:39:14 +08:00
TsMask
35cabc1973 fix: 网元信令跟踪支持选择轻量版UPF 2025-05-26 20:10:32 +08:00
TsMask
91fb19a072 fix: 看板数据加载间隔从5秒调整为10秒 2025-05-23 19:16:42 +08:00
TsMask
af3e0505cf fix: 看板UDM选择添加下拉菜单的弹出容器属性 2025-05-23 17:16:03 +08:00
TsMask
d31bfe02ee Merge branch 'lichang' into lite 2025-05-23 16:09:38 +08:00
TsMask
49b70f5d40 chore: 更新版本号 2.250523 2025-05-23 14:52:20 +08:00
TsMask
5b1e7be9ea fix: 修复同步操作加载提示未隐藏的问题 2025-05-22 19:58:36 +08:00
TsMask
998318a543 fix: 告警确认相关提示Tip多语言显示 2025-05-22 19:18:23 +08:00
TsMask
42e71317a2 fix: 网元授权许可证状态统一刷新功能 2025-05-22 09:55:31 +08:00
TsMask
245e33a308 fix: 活动告警启用历史同步按钮 2025-05-20 15:48:31 +08:00
TsMask
7439981557 fix: 更新批量刷新信息,容量仅UDM/AMF/MME 2025-05-20 15:43:29 +08:00
TsMask
2c67108751 fix: 仪表盘数据会话属累加 2025-05-16 20:05:51 +08:00
TsMask
6a8936a9ba fix: 网元主机信息编辑表单不验证免密类型, 主机列表的查询类型参数 2025-05-16 17:52:10 +08:00
TsMask
39d63dea42 chore: 更新版本号 2.250516 2025-05-16 09:47:37 +08:00
TsMask
e0531d0c7d fix: 编译类型检查错误 2025-05-15 16:30:24 +08:00
TsMask
be5f4be75f Merge branch 'lichang' into lite 2025-05-14 14:51:56 +08:00
TsMask
b817b7aa51 feat: 网元授权上传变更确认延迟2s刷新授权状态 2025-05-14 14:19:22 +08:00
TsMask
50bf0c27c0 Merge branch 'lichang' into lite 2025-05-13 18:30:40 +08:00
TsMask
631adb26a3 fix: 英文修改基站名称为 RAN Node Name 2025-05-13 18:29:13 +08:00
TsMask
6eea86f4e7 feat: 根据网元类型过滤导出备份数据可选的数据来源 2025-05-13 18:28:36 +08:00
TsMask
4f47eebb1e feat: 网元IP可编辑,OAM和主机连接配置的显示 2025-05-13 18:26:48 +08:00
TsMask
9286efa59b Merge branch 'lichang' into lite 2025-05-13 09:50:45 +08:00
TsMask
6062170556 feat: 跟踪任务添加标题,编号后面加任务详情 2025-05-12 18:18:35 +08:00
TsMask
ae6b866e0a chore: 更新版本号 2.250509 2025-05-09 19:55:07 +08:00
TsMask
1e2154c2ae Merge branch 'lichang' into lite 2025-05-09 14:34:17 +08:00
TsMask
ef084b4287 feat: 更新日志文件导出列表,添加系统登录和操作日志 2025-05-09 14:22:01 +08:00
TsMask
602381b6a9 feat: 网元授权添加用户容量列 2025-05-09 12:04:14 +08:00
TsMask
f3c75b9992 fix: OAM读取结构错误 2025-05-09 12:03:34 +08:00
TsMask
583be8c8fe fix: 仪表盘用户数据刷新时显示0闪烁 2025-05-07 16:56:14 +08:00
TsMask
75a8b35226 feat: 看板含有网元显示区域 2025-05-07 16:09:36 +08:00
TsMask
d3efefe7c5 feat: 根据网元显示特有菜单 2025-05-07 15:45:54 +08:00
TsMask
2c2ca82442 fix: 移除网络错误时的退出登录状态处理逻辑 2025-04-30 18:16:21 +08:00
TsMask
bdc389b37d chore: 更新版本号 2.250430 2025-04-30 18:07:48 +08:00
TsMask
caed6203ac feat: PCF用户策略页面多语言翻译 2025-04-30 17:00:56 +08:00
TsMask
64739f1fb8 feat: 在上传切片文件到网元端时添加删除临时文件选项 2025-04-30 16:55:27 +08:00
TsMask
d3b9f21511 fix: 优化PCF用户策略页面及接口调整 2025-04-30 16:55:16 +08:00
TsMask
af10003b25 Merge branch 'lichang' into lite 2025-04-29 20:31:46 +08:00
TsMask
f0fd698bec fix: 时间控件格式移除插件属性value-format="x" 2025-04-29 20:28:10 +08:00
TsMask
0085310518 feat: 服务器时区UTC格式转换 2025-04-29 20:27:15 +08:00
TsMask
4aca6823d3 Merge branch 'lichang' into lite 2025-04-29 18:19:20 +08:00
TsMask
82238f8f21 feat: 添加网络错误处理,退出登录状态 2025-04-29 17:10:10 +08:00
TsMask
cb6ed51a4e fix: 替换获取服务器时间接口 2025-04-29 17:09:41 +08:00
TsMask
13a18a7131 del: 移除部分旧/apt/rest/直连接口 2025-04-29 17:08:56 +08:00
TsMask
7376b20352 Merge branch 'lichang' into lite 2025-04-29 16:15:41 +08:00
TsMask
6fcc6eb5e1 chore: 更新版本号 2.250429 2025-04-29 11:58:10 +08:00
TsMask
52e22cd3a9 feat: UE添加导入模板下载功能 2025-04-29 11:40:55 +08:00
TsMask
a86e9aa219 feat: 网元服务操作局部状态刷新,补充提示信息 2025-04-29 10:56:12 +08:00
TsMask
1b7d5fc85c feat: 添加IMS SIP响应码原因显示 2025-04-29 10:45:24 +08:00
TsMask
2fb7a74426 fix: 看板流量图确保时间以HH:mm:ss格式显示 2025-04-29 10:40:41 +08:00
TsMask
c5c7c2c3e0 fix: 修正时间格式常量 2025-04-29 10:39:10 +08:00
TsMask
7331624b9b fix: 看板用户活动乱序问题 2025-04-29 10:38:58 +08:00
TsMask
c571453983 feat: 网元服务操作局部状态刷新,补充提示信息 2025-04-29 10:34:09 +08:00
TsMask
5713916bc8 fix: 时间格式常量定义及默认格式 2025-04-28 19:35:39 +08:00
TsMask
76caaf694c feat: 添加IMS SIP响应码原因显示 2025-04-28 19:34:56 +08:00
TsMask
42f8c0b64f fix: 看板流量图确保时间以HH:mm:ss格式显示 2025-04-28 18:32:14 +08:00
TsMask
a65f8ed95f fix: 看板用户活动乱序问题 2025-04-28 18:30:14 +08:00
TsMask
78b5ec90ee fix: 修复引导获取token存储问题 2025-04-27 18:45:56 +08:00
TsMask
efceb68ff3 chore: 更新版本号 2.250427 2025-04-27 17:49:08 +08:00
TsMask
96621f4261 chore: 更新依赖项版本 2025-04-27 17:48:49 +08:00
TsMask
f41557de94 fix: 去除请求方法PATCH 2025-04-27 17:47:58 +08:00
TsMask
2de9788373 ref : 重构令牌管理逻辑,,统一状态码识别 2025-04-27 17:23:33 +08:00
TsMask
f76311cf1b chore: 编译文件引用缺失 2025-04-25 17:31:25 +08:00
TsMask
19eea9fe9b feat: UDMVolte用户特殊VoIP数据 2025-04-25 17:23:38 +08:00
TsMask
df73440d86 style: 补充多语言翻译 2025-04-25 16:22:38 +08:00
TsMask
032d0578bb fix: 调度任务参数最大输入2000字符。日志查看id错误修复 2025-04-25 16:18:40 +08:00
TsMask
204d198819 ref: 统一ftp操作功能,备份文件查看下载删除功能 2025-04-25 16:16:09 +08:00
TsMask
71b4943816 style: neFile目录移动到ne 2025-04-25 16:14:23 +08:00
TsMask
f76602d66e feat: 终端目录部分调整,添加udm-voip/volte功能页面 2025-04-24 09:58:34 +08:00
TsMask
352f7082f2 feat: 修改OAM配置中的同步功能为重启功能 2025-04-21 10:56:09 +08:00
TsMask
35f2950143 chore: 更新版本号 2.250418 2025-04-18 19:20:58 +08:00
TsMask
0b6e8e6fbe feat: 添加告警信息导出功能,并优化历史告警页面 2025-04-18 19:20:10 +08:00
TsMask
e10740220c fix: 统一国际时区格式 2025-04-18 19:19:53 +08:00
TsMask
f7ea8e13ec feat: 更新锁屏密码Basd64编码处理,无密码直接进入 2025-04-18 16:05:59 +08:00
TsMask
294212620e feat: PCAP文件解析功能页面优化 2025-04-18 15:51:24 +08:00
TsMask
48f8f13bf3 fix: 移除信令接口查询 2025-04-18 15:47:04 +08:00
TsMask
35ce214bc4 feat: 支持ws工具心跳ping消息 2025-04-18 15:39:55 +08:00
TsMask
b92c871b3b perf: 重构信令跟踪功能 2025-04-18 15:38:57 +08:00
TsMask
83808a4f88 ref: 重构网元跟踪任务功能页面 2025-04-18 15:38:21 +08:00
TsMask
cc74e9f84d fix: 看板用户数初始neId传入失败,禁止选择当前项 2025-04-11 18:01:10 +08:00
TsMask
59127104a6 fix: 看板用户数初始neId传入失败,禁止选择当前项 2025-04-11 18:00:06 +08:00
TsMask
fc233c38ea feat: 添加网元配置文件备份的FTP配置管理功能 2025-04-10 21:07:29 +08:00
TsMask
4dda60c8c4 fix: mml补充UDM特殊命令处理 2025-04-10 21:01:35 +08:00
TsMask
c926da4f2e feat: UE添加导入模板下载功能 2025-04-10 21:00:17 +08:00
TsMask
5b6520ef5e fix: 网元授权上传后点击ok检查状态 2025-04-10 20:34:15 +08:00
TsMask
b0d3cec1fa chore: 更新版本号 2.250410 2025-04-10 17:10:59 +08:00
TsMask
3a0d47b596 feat: 添加网元配置文件备份的FTP配置管理功能 2025-04-10 16:10:54 +08:00
TsMask
1932795955 feat: 更新UE添加导入模板内容 2025-04-10 11:43:51 +08:00
TsMask
8d8a710a8f chore: 更新版本号 2.250409 2025-04-09 21:38:02 +08:00
TsMask
a0b0f76e23 feat: UE AMBR配置功能 2025-04-09 21:37:29 +08:00
TsMask
97bf5994c8 feat: mml补充UDM特殊命令处理 2025-04-09 21:36:08 +08:00
TsMask
667d3b61aa feat: UE添加导入模板下载功能 2025-04-09 19:00:34 +08:00
TsMask
28334b2acc fix: 网元授权上传后替换文件ok检查状态 2025-04-09 16:31:02 +08:00
TsMask
efec69eb28 fix: 去除开站引导 2025-04-09 15:16:05 +08:00
TsMask
ccfee93a91 fix: 去除密码校验允许密码5位 admin 2025-04-09 14:36:27 +08:00
TsMask
58f2fee781 chore: 更新版本号 2.250401 2025-04-01 20:06:48 +08:00
TsMask
df8f75e16f fix: 更新配置文件中的主机端口号 2025-04-01 18:33:22 +08:00
TsMask
f0e299b704 fix: 禁用非IMS类型的IP输入框 2025-04-01 18:33:13 +08:00
TsMask
7973b179af feat: 添加密码过期功能支持,密码有效期时间天 2025-04-01 17:34:27 +08:00
TsMask
e10a6b5202 chore: 更新版本号 2.250321 2025-03-31 19:01:50 +08:00
TsMask
2c31da625d feat: 添加强制密码修改功能的国际化支持 2025-03-31 19:01:16 +08:00
TsMask
45771aba1e fix: 在密码重置成功后添加用户登出功能 2025-03-31 19:00:48 +08:00
TsMask
d037a76856 feat: 添加强制密码重置功能及相关组件 2025-03-31 19:00:34 +08:00
TsMask
c72f0290fd fix: 使用常量替代验证码成功返回码,并添加验证码文本处理 2025-03-31 19:00:04 +08:00
TsMask
6093a234cc fix: 修正解锁成功提示中的拼写错误 2025-03-31 18:59:47 +08:00
TsMask
e4234dd1f4 fix: 终端redis连接后默认发送PING确认是否连接 2025-03-27 15:57:37 +08:00
TsMask
cfc56ca4ea fix: 密码校验格式由后端处理 2025-03-27 15:54:51 +08:00
TsMask
77fb580aea chore: 更新版本号 2.250327 2025-03-27 15:11:43 +08:00
TsMask
0ff899b40b fix: 配置文件config.js变更 2025-03-26 16:32:46 +08:00
TsMask
d8778d2632 fix: KPI总览无数据时展示title 2025-03-26 16:32:34 +08:00
TsMask
1514e65df4 fix: KPI总览调整指标 2025-03-26 16:32:26 +08:00
TsMask
38ea54f41a fix: 看板用户数切换展示 2025-03-26 16:32:10 +08:00
TsMask
b72ff26e4f fix: 移除不必要的cache-id属性 2025-03-26 14:10:32 +08:00
TsMask
4bd46f64a4 fix: KPI总览调整指标 2025-03-25 18:00:00 +08:00
TsMask
dc0379a581 fix: 配置文件config.js变更 2025-03-25 11:21:47 +08:00
TsMask
d5f744bffc fix: KPI总览无数据时展示title 2025-03-24 19:55:20 +08:00
TsMask
30a8fc2dc8 fix: 看板用户数切换展示 2025-03-24 19:55:14 +08:00
TsMask
0e38f24f85 chore: 更新版本号 2.250324 2025-03-24 15:50:25 +08:00
TsMask
96e728a1eb fix: 配置文件config.js变更 2025-03-24 15:02:12 +08:00
TsMask
665946c4c2 fix: 配置文件config.js变更 2025-03-24 14:49:33 +08:00
TsMask
05d4b0cd3e feat: 看板UPF流量总计7or30天 2025-03-24 14:20:37 +08:00
TsMask
2ddf169f97 chore: 更新版本号 2.250321 2025-03-21 18:02:49 +08:00
TsMask
8d4d729e25 fix: 禁止admin修改菜单分配 2025-03-21 17:10:39 +08:00
TsMask
6905d29ea4 feat: 看板UPF流量总计7or30天 2025-03-21 15:13:41 +08:00
TsMask
eea53fdf2a fix: 自定义指标只有UPF显示sum列其他网元隐藏 2025-03-21 15:08:33 +08:00
TsMask
9bef7a8b3c fix: 禁止admin修改菜单分配 2025-03-21 15:06:55 +08:00
TsMask
c084203a03 feat: 系统配置返回服务版本适用版本适配 2025-03-19 18:00:35 +08:00
TsMask
0fd9ef7e48 fix: pcap分析Protocol列换行问题 2025-03-19 17:59:46 +08:00
TsMask
775dacc4a8 chore: 更新依赖版本 2025-03-18 14:15:21 +08:00
TsMask
dfa1a580d0 fix: 调整默认背景图片为静态目录 2025-03-18 10:14:49 +08:00
TsMask
95394a4b5e fix: 调整默认背景图片为静态目录 2025-03-17 19:43:20 +08:00
TsMask
78ebb6a0fc del: 移除自定义主页 2025-03-17 15:32:22 +08:00
TsMask
221c39995f fix: 轻量版终端固定omc本机 2025-03-17 15:32:00 +08:00
TsMask
c184357b73 Merge branch 'lichang' into lite 2025-03-14 16:40:16 +08:00
TsMask
d3cbf2b748 fix: 默认本地配置判断baseUrl支持https 2025-03-14 16:39:27 +08:00
TsMask
995da7162f Merge branch 'lichang' into lite 2025-03-14 11:32:29 +08:00
TsMask
95fc2086e6 chore: 更新版本号 2.250314 2025-03-14 11:32:12 +08:00
TsMask
1d457fff46 Merge branch 'lichang' into lite 2025-03-13 16:55:27 +08:00
TsMask
98a4c554e5 fix: 当前用户禁止删除/重置密码 2025-03-13 16:55:12 +08:00
TsMask
3fcf79fe13 fix: 角色分配给用户列表属性错误 2025-03-13 16:54:21 +08:00
TsMask
d12b34087e fix: 当前用户禁止删除/重置密码 2025-03-13 16:53:53 +08:00
TsMask
bce9a8e923 fix: 指标移除MME/SMSC 2025-03-13 16:52:51 +08:00
TsMask
fa38b9502f fix: 轻量版安装配置IP使用127段 2025-03-13 14:27:56 +08:00
TsMask
50d3cd72de Merge branch 'lichang' into lite 2025-03-13 11:51:40 +08:00
TsMask
0e238be98a fix: 网元概览找状态在线的选中 2025-03-13 11:47:18 +08:00
TsMask
95b2ec0f5e style: 自定义指标多语言描述中文屏蔽 2025-03-13 11:46:40 +08:00
TsMask
1db9d09a79 fix: 新增用户允许选择角色 2025-03-13 11:43:49 +08:00
TsMask
720d7d3b99 Merge remote-tracking branch 'origin/lichang' into lite 2025-03-13 11:08:24 +08:00
TsMask
b740f6b5fd style: 表格时间字段宽度width200px 2025-03-13 11:05:47 +08:00
TsMask
2678ab3bfb feat: PCAP历史目录下载为zip 2025-03-13 11:05:05 +08:00
TsMask
e5a6987eae Merge remote-tracking branch 'origin/lichang' into lite 2025-03-11 18:04:28 +08:00
TsMask
fec1ee0f68 fix: 编译类型错误 2025-03-11 15:50:48 +08:00
TsMask
080b84ed6f Merge remote-tracking branch 'origin/lichang' into lite 2025-03-08 10:44:41 +08:00
TsMask
e9f58a491b chore: 更新版本号 2.250308 2025-03-08 10:44:16 +08:00
TsMask
4982109af3 style: 优化PacketTable组件的滚动条样式和布局 2025-03-08 10:36:42 +08:00
TsMask
64f812cc7f Merge remote-tracking branch 'origin/lichang' into lite 2025-03-05 19:47:48 +08:00
TsMask
d42e6356f3 fix: UDM用户数据操作限制输入框最大值500 2025-03-05 19:40:42 +08:00
TsMask
b21cbb14d7 fix: 根据网元列表得到网元类型 2025-03-05 15:24:33 +08:00
TsMask
dd9656fa72 fix: 活动告警添加清除操作 2025-03-05 14:58:47 +08:00
TsMask
f36980efb9 fix: 修正告警标题翻译错误 2025-03-05 11:15:57 +08:00
TsMask
db0b6a1199 feat: 添加软件包文件未发现提示信息 2025-03-05 11:11:50 +08:00
TsMask
a4d7c60118 Merge remote-tracking branch 'origin/lichang' into lite 2025-03-04 18:14:47 +08:00
TsMask
d677963810 fix: 网元软件版本安装参数错误 2025-03-04 18:14:20 +08:00
TsMask
2812cefd13 fix: 看板UPF切换问题 2025-03-04 17:01:33 +08:00
TsMask
8f0058bedc fix: 看板标识错误smfUeNum 2025-03-04 16:04:22 +08:00
TsMask
52a24871c3 Merge branch 'lichang' into lite 2025-03-03 18:24:40 +08:00
TsMask
46b3744330 feat: 看板权限控制部分显示 2025-03-03 18:23:56 +08:00
TsMask
c937351194 feat: 菜单权限按钮添加菜单状态选择 2025-03-03 18:23:05 +08:00
TsMask
df6bfd0414 Merge remote-tracking branch 'origin/lichang' into lite 2025-02-28 20:27:53 +08:00
TsMask
c38b956326 chore: 更新版本号 2.250228 2025-02-28 20:27:31 +08:00
TsMask
7099bd7349 fix: 修复用户表单中的角色和部门ID逻辑,并调整表单项的显示条件 2025-02-28 19:47:55 +08:00
TsMask
6d2945c506 fix: 修正获取最大ID的逻辑并调整表格列宽 2025-02-28 19:44:54 +08:00
TsMask
33088a9366 feat: 更新数据获取逻辑并添加数据使用情况展示 2025-02-28 19:44:47 +08:00
TsMask
4861230f56 fix: 网元许可调整表格列宽和图标样式 2025-02-28 19:44:33 +08:00
TsMask
f5f67b5023 refactor: 注释掉不必要的内存和CPU使用率计算逻辑 2025-02-28 19:43:54 +08:00
TsMask
62bb7462d1 feat: 添加带时区的时间格式支持 2025-02-28 19:43:44 +08:00
TsMask
fb5068a772 fix: 修正多个组件中获取最大ID的逻辑 2025-02-28 19:43:38 +08:00
TsMask
1162bb5b28 refactor: 移除未使用的主机信息查询逻辑 2025-02-28 19:42:36 +08:00
TsMask
1e2824657c refactor: 优化告警相关API去除SQL查询 2025-02-28 15:56:18 +08:00
TsMask
7ccaf6df65 fix: smsc查询时间默认最近一小时 2025-02-27 21:09:47 +08:00
TsMask
77328e61c9 fix: 网元参数配置使用单网元模式 2025-02-27 21:09:07 +08:00
TsMask
d83cbd3806 fix: editId类型调整 2025-02-27 21:08:13 +08:00
TsMask
157a7a60d3 fix: 告警关闭非必要的操作 2025-02-27 15:41:03 +08:00
TsMask
365fab3965 style: 告警前传日志单行超出省略显示 2025-02-27 15:34:51 +08:00
TsMask
1517cb685c fix: UPF上下行总计查询beginTimes时间类型错误 2025-02-27 15:33:56 +08:00
TsMask
88a2167bed fix: 总览数值累加/基站跳转页面修改 2025-02-27 15:33:08 +08:00
TsMask
82d328e974 fix: CDR/UE数据空关闭loading 2025-02-27 15:31:58 +08:00
TsMask
6b81ea000b style: 关闭任务名称/菜单名称查询 2025-02-27 15:29:48 +08:00
TsMask
d88a3e7e25 fix: 系统设置更换主页页面选择死循环问题 2025-02-26 17:48:42 +08:00
TsMask
dd54b10f4d fix: 告警关闭非必要的操作 2025-02-26 17:25:59 +08:00
TsMask
15ebd48283 fix: id类型错误 2025-02-26 17:25:17 +08:00
TsMask
8e4df6a85f fix: 上传接口变更 2025-02-26 14:32:30 +08:00
TsMask
1aca8ae486 fix: 网元软件id类型错误 2025-02-26 11:16:49 +08:00
TsMask
5a61fc355e fix: 上传接口变更 2025-02-26 11:12:06 +08:00
TsMask
7429a55734 fix: hostId 变更类型和字段名 2025-02-26 09:51:34 +08:00
TsMask
cdc31a9ced fix: 兼容3G的SGWC字段 2025-02-21 15:48:55 +08:00
TsMask
257896a10e fix: 编译类型修复 2025-02-20 11:30:51 +08:00
TsMask
485fa89833 fix: 页面字段/接口调整 2025-02-20 10:47:23 +08:00
TsMask
814bae0b94 fix: 多语言字段变更优化字典映射类型 2025-02-20 10:44:55 +08:00
TsMask
7322759545 fix: 接口变更/请求方法为大写 2025-02-20 10:42:34 +08:00
TsMask
8bfa73a67a fix: 导出备份配置调整 2025-02-11 18:33:47 +08:00
TsMask
f188e193f3 style: 调整UDM用户数据新增表单排版 2025-02-11 17:52:02 +08:00
TsMask
b362855a60 fix: 信令pcap解析列表颜色转换问题 2025-02-11 11:28:33 +08:00
TsMask
4c28d6b98c style: 调整UDM鉴权新增表单排版 2025-02-10 10:02:13 +08:00
TsMask
2276f2281a chore: 更新版本号 2.250208 2025-02-08 19:40:36 +08:00
TsMask
7ccb580e91 feat: 基站状态导入功能 2025-02-08 19:39:47 +08:00
TsMask
0346dfd584 chore: 更新依赖版 2025-02-08 18:08:05 +08:00
TsMask
5a64afe209 feat: 基站状态记录上报和导出功能 2025-02-08 18:07:46 +08:00
TsMask
fd82d710b6 feat: UDM用户数据导入输出失败记录,UDM2.2502.58 2025-02-07 16:00:52 +08:00
TsMask
fbc1535015 chore: 更新版本号 2.250124 2025-01-24 20:29:06 +08:00
TsMask
36de89570f fix: 网元状态切换保留List页面状态 2025-01-24 20:28:26 +08:00
TsMask
22e595131c feat: 基站状态添加MME4G状态 2025-01-24 09:38:55 +08:00
TsMask
208d14d65a fix: SMF-CDR时间可选查询范围,无数据loading关闭 2025-01-20 20:23:40 +08:00
TsMask
80b9cd83fb style: 修改kpi表头提示,关闭排序 2025-01-20 20:22:02 +08:00
TsMask
721ec4a5da feat: 日志备份FTP服务配置项 2025-01-20 17:24:05 +08:00
TsMask
34f558199a chore: 更新版本号 2.250117 2025-01-17 18:24:09 +08:00
TsMask
07eab9378a fix: 接口加密参数控制开关 2025-01-17 15:54:01 +08:00
TsMask
806cbbd9ed style: KPI数据表格头提示信息 2025-01-17 15:30:22 +08:00
TsMask
8adf2a3dd0 fix: 基站状态条件查询时只显示当前状态数量 2025-01-17 15:29:44 +08:00
TsMask
2164ffc9b2 fix: SMF-CDR查询IMSI数据结果图优化,支持DNN条件 2025-01-17 15:28:33 +08:00
TsMask
7091f1ffa6 fix: KPI指标表格头提示信息 2025-01-16 20:56:09 +08:00
TsMask
fa44f6abe0 fix: 基站状态列宽拖动,状态结果统计 2025-01-16 20:50:50 +08:00
TsMask
8586d7f1ce fix: 基站状态页面编辑判断错误 2025-01-16 14:27:51 +08:00
TsMask
b2d818fc30 style: 依赖库无类型声明定义 2025-01-15 21:08:22 +08:00
TsMask
a20d5ee99f fix: 网元信息修改局部更新状态判断 2025-01-15 21:07:44 +08:00
TsMask
74b55423d5 style: 移除l部分无用的log输出 2025-01-15 21:07:17 +08:00
TsMask
96acbc0919 fix: 网元状态概览页面定时刷新异常错误 2025-01-15 18:42:42 +08:00
TsMask
322b5f18ed fix: 基站状态显示设备名和在线用户数 2025-01-15 17:55:19 +08:00
TsMask
e36dac9b81 fix: KPI指标表格头提示信息 2025-01-15 17:13:38 +08:00
TsMask
8214175890 fix: 基站状态页面翻译和部分优化 2025-01-15 17:12:51 +08:00
TsMask
9e55768312 chore: 更新版本号 2.250110 2025-01-10 19:38:58 +08:00
TsMask
98ed8adfe3 feat: 网元状态3待机显示 2025-01-10 19:33:06 +08:00
TsMask
f5938110f4 fix: 去除系统用户密码重置账号校验 2025-01-10 18:45:16 +08:00
TsMask
acd8a33b4a chore: 更新版本号 2.250103 2025-01-03 21:52:54 +08:00
TsMask
7ab2b3b546 chore: 更新版本号 2.240103 2025-01-03 21:13:17 +08:00
TsMask
b490e4f5b9 chore: 更新依赖版 2025-01-03 21:09:51 +08:00
TsMask
fe82336937 feat: 基站状态页面及拓扑展示页面功能实现 2025-01-03 21:09:16 +08:00
TsMask
35a7ed5b35 chore: 更新版本号 2.241228 2024-12-28 10:55:43 +08:00
TsMask
56def56b58 Merge remote-tracking branch 'origin/lichang' 2024-12-28 10:55:04 +08:00
TsMask
6074078f5d fix: 网元数据接口查询超时时间改为60s 2024-12-28 10:11:24 +08:00
TsMask
428adb5186 fix: 自定义指标查询超时60s 2024-12-27 19:09:28 +08:00
TsMask
1cbce9ad03 feat: UE数据列表统一格式 2024-12-27 19:08:58 +08:00
TsMask
2138896d43 fix: 网元类型选择框警告状态修复 2024-12-27 19:07:02 +08:00
TsMask
c40ee9c8cc fix: 看板重复获取UE修复和AMF-UE数据结构变更调整 2024-12-27 19:06:12 +08:00
TsMask
d33183ca5e style: SMF-CDR流量报表页面 2024-12-26 20:11:34 +08:00
TsMask
9ff9529402 Merge remote-tracking branch 'origin/lichang' 2024-12-26 18:56:13 +08:00
TsMask
51a8d6d3a0 feat: SMF-CDR用户流量使用情况图表展示 2024-12-26 18:40:36 +08:00
TsMask
c22663505c fix: SMF-CDR去除RatingGroup区分 2024-12-26 18:39:09 +08:00
TsMask
9b589a0e69 Merge remote-tracking branch 'origin/lichang' 2024-12-25 17:50:10 +08:00
TsMask
b0b9c69ad2 style: 网元信息服务区域默认Area 2024-12-24 20:37:09 +08:00
TsMask
5a3fa2a6ba fix: 网元配置类型切换清空下拉树 2024-12-24 19:49:39 +08:00
lai
5c0909e356 修改切换条件 2024-12-24 18:38:47 +08:00
TsMask
b7da976819 fix: 看板UDM签约数据获取x2问题 2024-12-23 20:05:13 +08:00
TsMask
41e37766b7 feat: SMSC短信内容显示,权限控制显示操作删除cdr:ne:remove 2024-12-23 19:39:06 +08:00
TsMask
44612081bc chore: 更新版本号 2.241220 2024-12-20 18:36:52 +08:00
TsMask
4929ed30bc Merge remote-tracking branch 'origin/lichang' 2024-12-20 18:31:28 +08:00
TsMask
eea4e0069d feat: CDR页面切换网元重置查询 2024-12-20 16:36:33 +08:00
lai
2b69b8d72b 增加仪表盘累加及UPF下拉框 2024-12-20 15:47:17 +08:00
TsMask
1f130098ee style: 加载缺省空字符 2024-12-20 15:45:07 +08:00
TsMask
5a4ab62e97 fix: CDR数据检查格式,SGWC调试 2024-12-20 15:43:44 +08:00
TsMask
139a14fd3d feat: 网元总览点击状态显示页面调整 2024-12-19 20:24:46 +08:00
TsMask
6e7402fd63 feat: 网元配置多网元同时配置HA功能优化选择 2024-12-19 20:24:29 +08:00
TsMask
302ea84cde style: 看板UDM-签约数量参数调整 2024-12-19 11:17:06 +08:00
TsMask
7d470fd681 style: 网元列表加载同时清除缓存 2024-12-19 11:14:55 +08:00
TsMask
b64c4c66ab style: 网元类型列表静态可选排序 2024-12-19 11:11:54 +08:00
TsMask
15ac549532 feat: 新增SGWC-CDR页面 2024-12-19 11:11:16 +08:00
TsMask
9bff669769 fix: 多语言删除无用定义 2024-12-18 15:37:21 +08:00
TsMask
8a53ac8b9f feat: 网元配置多网元同时配置HA功能 2024-12-18 15:33:52 +08:00
TsMask
d3a18f95db style: CDR/UE展开详情布局调整 2024-12-18 15:32:36 +08:00
TsMask
11649c3fb1 fix: SMF-在线订阅用户列表信息 2024-12-18 15:31:27 +08:00
TsMask
09fd8bc4dc style: smsc时间显示列宽度200px 2024-12-16 11:25:30 +08:00
TsMask
5a704146a5 fix: 角色分配菜单勾选父子级联转出子节点关联根节点数组 2024-12-16 11:07:50 +08:00
TsMask
e25cd91df1 Merge remote-tracking branch 'origin/main' into lichang 2024-12-16 10:45:41 +08:00
TsMask
71f2e596fe chore: 编译依赖拆包manualChunks行为 2024-12-16 10:25:19 +08:00
TsMask
7e60f0dd05 chore: 编译依赖拆包manualChunks行为 2024-12-16 10:23:22 +08:00
TsMask
a94f9414a4 chore: 更新版本号 2.241213 2024-12-13 21:19:28 +08:00
TsMask
7f69bc69bc chore: 编译依赖拆包manualChunks行为 2024-12-13 18:25:52 +08:00
lai
4b1058cff3 完善表单赋值机制 2024-12-13 16:04:21 +08:00
lai
a6bab3fa0b 修复拆解smData异常问题 2024-12-13 15:28:15 +08:00
TsMask
c44fae8d13 style: UDM签约cag参数默认为空字符 2024-12-11 15:46:03 +08:00
TsMask
bcb214448c style: 在线基站列表网元类型切换时刷新 2024-12-11 15:45:07 +08:00
TsMask
65db17a319 fix: SMF-Data隐藏RatingGroup显示 2024-12-10 10:26:19 +08:00
TsMask
6969669027 fix: 拓扑网元状态15s一个周期 2024-12-10 10:25:39 +08:00
TsMask
38a698f07b fix: redis终端改为命令输入框,禁止窗口输入 2024-12-10 10:25:00 +08:00
TsMask
9f121505d1 fix: telnet终端输入回车值无法正确发出 2024-12-10 10:24:14 +08:00
TsMask
6add41254d chore: 更新版本号 2.241209 2024-12-09 10:52:54 +08:00
TsMask
85bc4aea53 fix: 页面解析错误 2024-12-09 10:51:54 +08:00
simonzhangsz
9167da1bc5 tsc check 2024-12-06 19:13:49 +08:00
lai
69dfc2a1f5 event Type异常 2024-12-06 18:10:06 +08:00
TsMask
b1a699252b fix: 免登录认证参数默认值 2024-12-06 17:36:36 +08:00
TsMask
a0886abd38 chore: 更新版本号 2.241130 2024-11-30 17:10:59 +08:00
lai
9383c17484 优化指标界面 2024-11-29 17:17:54 +08:00
zhongzm
512bd6d8eb fix:tooltip计算修复 2024-11-29 14:50:38 +08:00
zhongzm
b8b66fe610 fix:table排序 2024-11-28 20:09:19 +08:00
zhongzm
154569304c feat:添加多选 2024-11-28 18:57:35 +08:00
zhongzm
cc3432ca06 Merge remote-tracking branch 'origin/main' 2024-11-28 18:45:20 +08:00
zhongzm
68b9c5fa5e feat:添加累加值计算 2024-11-28 18:45:11 +08:00
TsMask
6620ac7279 fix: Para5G参数UPF新增网卡名 2024-11-28 15:49:23 +08:00
TsMask
a9a094d04a revet: 去除系统免登录加密参数data 2024-11-25 20:02:16 +08:00
TsMask
5d4a04ecf2 feat: 去除系统免登录加密参数data 2024-11-25 18:55:16 +08:00
TsMask
1b28260680 feat: 系统免登录参数路由跳转 2024-11-25 11:59:46 +08:00
zhongzm
83cb3f8728 test 2024-11-25 10:48:53 +08:00
zhongzm
7d69d3c21d fix:样式修复、明暗主题适应 2024-11-23 17:01:41 +08:00
TsMask
ebde50f58b chore: 更新版本号 2.241123 2024-11-23 16:40:10 +08:00
lai
b8924d161f 修正自定义指标 2024-11-22 18:05:17 +08:00
lai
ccb52ea94f 过滤无自定义指标的网元 2024-11-22 17:27:27 +08:00
lai
72abbe1c53 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-11-22 17:07:55 +08:00
zhongzm
f318f61b4a fix:明暗主题随机颜色方法修复 2024-11-22 16:15:25 +08:00
zhongzm
45d8314e29 fix:暗色模式样式适应 2024-11-22 15:43:00 +08:00
zhongzm
886a1c8667 fix:修改取色范围适应暗色模式 2024-11-22 15:42:38 +08:00
lai
378729720d Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-11-22 10:41:11 +08:00
zhongzm
c2a3d4b8a8 fix:修改时间粒度,修改默认时间 2024-11-22 10:14:45 +08:00
zhongzm
8444de8e98 Merge remote-tracking branch 'origin/main' 2024-11-22 09:57:04 +08:00
zhongzm
874e01996a fix:样式调整,增加栅格线,曲线平滑,平均值计算 2024-11-22 09:56:51 +08:00
TsMask
fb855fd74e fix: 获取网元状态定时轮询修复 2024-11-21 18:19:07 +08:00
TsMask
78f963fbea fix: CDR-IMS去掉MOSM MTSM 2024-11-21 12:06:32 +08:00
TsMask
cf0116b5c6 fix: CDR时间的处理 2024-11-21 10:06:07 +08:00
lai
80b07c462f 避免x轴时间数组重复 2024-11-20 18:32:14 +08:00
zhongzm
5a8ab1343f fix:日期选择器属性弃用修复 2024-11-20 17:00:22 +08:00
zhongzm
67349e24d8 fix:日期选择器属性弃用修复 2024-11-20 16:59:36 +08:00
lai
f59697a2f2 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-11-20 16:31:40 +08:00
lai
8c197bee04 回复 2024-11-20 16:31:28 +08:00
TsMask
f866fbf153 style: 网元总览显示用户容量 2024-11-20 12:01:12 +08:00
TsMask
d7b4fd3f71 fix: SMSC-CDR时间字段判断是否时间戳 2024-11-20 11:12:55 +08:00
zhongzm
29449cc597 Merge remote-tracking branch 'origin/main' 2024-11-19 17:21:03 +08:00
zhongzm
7615bccf04 fix:日期选择器添加快捷选项,tooltip显示修复 2024-11-19 17:20:49 +08:00
TsMask
f5f27d78f1 Merge remote-tracking branch 'origin/lichang' 2024-11-19 16:58:41 +08:00
TsMask
ebc46ff7d4 fix: 工具ipfer操作客户端host输入判断 2024-11-19 16:58:07 +08:00
lai
2513baf48e 修改中英文提示 2024-11-19 14:38:06 +08:00
lai
ac2483d690 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-11-19 14:24:16 +08:00
lai
a85f87f3fc 居中显示tooltip 2024-11-19 14:23:16 +08:00
lai
68e002776c 完善数据处理 2024-11-19 14:09:37 +08:00
TsMask
9322f52c9a Merge remote-tracking branch 'origin/lichang' 2024-11-19 11:52:50 +08:00
lai
2c9807f9b8 默认全选 2024-11-19 11:36:03 +08:00
lai
f8f4dc0f2e Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-11-19 11:30:13 +08:00
lai
49bd59c639 回填 2024-11-19 11:28:49 +08:00
TsMask
6bd7a28458 fix: 看板初始用户活动各20条进行排序显示 2024-11-19 10:24:32 +08:00
TsMask
053517324d fix: 修复网元概览数据饼图状态异常 2024-11-19 10:23:43 +08:00
zhongzm
256802e698 fix:修复加载显示 2024-11-18 18:15:23 +08:00
zhongzm
851e8a461e fix:修复缩放异常 2024-11-18 10:39:55 +08:00
zhongzm
d8d49f23c4 fix:样式报错修复 2024-11-18 10:02:20 +08:00
TsMask
1511792e3b fix: 快速开站网元排序进行逐个安装 2024-11-15 19:53:45 +08:00
lai
045a25f3ae 删除漫游引导 2024-11-15 19:23:29 +08:00
TsMask
b6d1ba6766 chore: 更新版本号 2.241115 2024-11-15 18:18:42 +08:00
zhongzm
e8e0e07189 Merge remote-tracking branch 'origin/main' 2024-11-15 16:58:38 +08:00
zhongzm
1672c6c6ba feat:自定义指标漫游引导 2024-11-15 16:58:25 +08:00
TsMask
ac251c2c00 Merge remote-tracking branch 'origin/lichang' 2024-11-15 16:51:22 +08:00
lai
9b9c0b39fd 优化界面显示 2024-11-15 15:48:54 +08:00
zhongzm
31bca2b98f fix:修复图表tooltip显示被遮盖的问题 2024-11-15 14:32:53 +08:00
zhongzm
bf94591035 fix:图表生成时序调整 2024-11-15 14:31:58 +08:00
TsMask
d523b60311 fix: 登录页去除头尾栏,暗色背景修改 2024-11-15 10:30:00 +08:00
zhongzm
e0990a40df fix:实时数据文本显示 2024-11-14 20:39:23 +08:00
TsMask
20c1c455c4 fix: 修复TelInput组件号码无法解析问题 2024-11-14 20:08:40 +08:00
TsMask
dab76add73 style: 网元license操作图标调整 2024-11-14 14:18:52 +08:00
TsMask
101cb70893 style: 页面样式调整 2024-11-14 11:33:49 +08:00
TsMask
348b11e201 fix: 网元切换时命令操作信息过滤 2024-11-14 11:33:17 +08:00
zhongzm
a9fdda3f5e fix:清楚旧功能的多余代码 2024-11-13 17:12:12 +08:00
zhongzm
89d22e55c7 feat:关键指标图表界面重构(grafana标准) 2024-11-13 16:56:15 +08:00
zhongzm
40f2a78717 feat:添加表格排序功能 2024-11-13 10:26:59 +08:00
zhongzm
80ee1c05ff feat:关键指标概览界面重构(grafana标准) 2024-11-12 19:01:28 +08:00
TsMask
021f9f28f6 fix; SMSC-CDR时间格式调整 2024-11-12 10:12:32 +08:00
zhongzm
d7990a6ee5 feat:添加漫游式引导 2024-11-08 18:25:11 +08:00
TsMask
3561a5dc39 Merge remote-tracking branch 'origin/main' into lichang 2024-11-08 17:40:18 +08:00
TsMask
247a009eef chore: 更新版本号 2.241108 2024-11-08 17:39:06 +08:00
TsMask
fcd4db8217 feat: 快速安装UPF配置网卡名和驱动类型 2024-11-08 16:17:44 +08:00
TsMask
3e03d47520 style: 缓存管理边距样式 2024-11-08 16:05:21 +08:00
TsMask
414afea783 style: 调整MML执行日志表格样式 2024-11-08 16:04:51 +08:00
TsMask
df7c455881 fix: 多语言切换隐藏,导致无法切换主题色 2024-11-08 16:03:33 +08:00
lai
1644765ce2 补充 2024-11-08 15:24:07 +08:00
lai
db16cdb79b 回填信息 2024-11-08 14:55:19 +08:00
lai
800547d1ef 自定义指标优化 2024-11-08 12:00:20 +08:00
TsMask
5614be7877 fix: UDM用户数据加载速度优化并提示时间 2024-11-08 10:47:39 +08:00
TsMask
0644e49161 feat: 工具>主机终端操作服务器命令支持redis 2024-11-07 19:29:59 +08:00
lai
15b81eef97 首页菜单选择框为树状选择框 2024-11-07 14:10:00 +08:00
lai
5ddf83d1fd 改为时间戳且加上快捷时间选择 2024-11-07 14:09:26 +08:00
zhongzm
6326f46bf2 style:样式修改,暗黑色适应 2024-11-06 19:44:52 +08:00
zhongzm
f75719ca37 fix:修改日期选择器默认时间 2024-11-06 15:25:23 +08:00
TsMask
21cf86baff style: 去除console 2024-11-05 17:42:17 +08:00
TsMask
6583bc9972 style: 日志导出文件管理选择控件样式调整 2024-11-05 17:41:51 +08:00
TsMask
886ea37702 fix: iperf支持v2和v3的命令操作 2024-11-05 17:33:57 +08:00
TsMask
23116db988 fix: 终端命令显示查看组件输出命令到首行 2024-11-05 17:33:23 +08:00
zhongzm
8283523327 fix:修复实时数据显示问题 2024-11-05 17:24:42 +08:00
zhongzm
33159befc3 fix:增加并发请求,优化性能和逻辑 2024-11-05 17:11:38 +08:00
zhongzm
c567b19fb2 fix:修复template中不影响运行的报错 2024-11-04 16:48:16 +08:00
zhongzm
d8487d7cd7 fix:修复其他指标列表无法打开,文本错乱的问题 2024-11-04 16:04:11 +08:00
TsMask
347c9f1d3b Merge remote-tracking branch 'origin/lichang' 2024-11-04 11:19:59 +08:00
TsMask
a731a6408b fix: 调整默认布局mix,修复底部宽度100% 2024-11-04 11:19:25 +08:00
TsMask
c0ac1f6ed5 Merge remote-tracking branch 'origin/lichang' 2024-11-02 17:27:21 +08:00
TsMask
544c3697bd chore: 更新版本号 2.241102 2024-11-02 15:48:04 +08:00
TsMask
33a8ce97d3 chore: 更新版本号 2.241102 2024-11-02 15:47:18 +08:00
TsMask
6ee9d464fb feat: PCF导出有取消操作 2024-11-02 15:46:26 +08:00
TsMask
df5072bae7 fix: CDR-IMS显示呼叫-挂断时间 2024-11-02 15:46:05 +08:00
TsMask
ae94e3bf2a fix: 编译错误 2024-11-01 11:42:07 +08:00
TsMask
2276445ff6 feat:网元指标添加其他指标选项 优化样式 2024-10-31 19:23:46 +08:00
zhongzm
e12dce1f0f feat:网元指标添加其他指标选项 优化样式 2024-10-31 18:35:26 +08:00
TsMask
d0457fc285 fix: UDM鉴权签约用户勾选导出 2024-10-31 16:32:14 +08:00
TsMask
e04fd4077e feat:自定义网元指标概览 2024-10-31 10:36:26 +08:00
zhongzm
63d32f0a39 feat:自定义网元指标概览 2024-10-31 10:30:16 +08:00
TsMask
99565dd652 fix: CDR-IMS显示呼叫-挂断时间 2024-10-31 10:02:38 +08:00
TsMask
7e03437ab6 fix: UDM鉴权签约用户勾选导出 2024-10-29 11:03:36 +08:00
TsMask
5f9d19ac65 fix: 静态资源文件路径解析 2024-10-28 17:21:52 +08:00
TsMask
f23d4117d7 fix: UDM签约数据参数类型转换字符串参数 2024-10-28 16:53:43 +08:00
TsMask
e4a56d68e0 fix: 网元总览接口变更 2024-10-28 16:53:34 +08:00
TsMask
cf5d08aaab chore: 更新版本号 2.241028 2024-10-28 16:53:21 +08:00
TsMask
7ad566d74f fix: 网元总览接口变更 2024-10-28 16:52:41 +08:00
TsMask
c312186d91 fix: UDM签约数据参数类型转换字符串参数 2024-10-28 16:52:05 +08:00
TsMask
e3f7b08c69 feat: 登录页面切换主题和语言类型 2024-10-28 14:52:22 +08:00
TsMask
6e3ef7e56a fix: 静态资源文件路径解析 2024-10-28 14:31:04 +08:00
TsMask
0a96fee6c3 chore: 更新版本号 2.241028 2024-10-28 11:04:04 +08:00
TsMask
dc7d24e2bf docs: 更新说明 2024-10-28 11:03:29 +08:00
TsMask
089ae12dd1 feat: 页面调整组件属性升级 2024-10-28 11:02:51 +08:00
TsMask
da0d49d306 feat: 页面调整组件属性升级 2024-10-28 11:02:39 +08:00
TsMask
670225a655 style: 关键指标概览页面占位 2024-10-28 11:01:02 +08:00
TsMask
fa35bfc340 fix: Event Type的label修改导致引用对象数据变更 2024-10-28 10:58:03 +08:00
TsMask
f4a5d28a29 feat: 展开详情显示Network Function IPv4 2024-10-28 10:55:36 +08:00
TsMask
c735aeba6d fix: 导出带取消操作按钮 2024-10-28 10:53:48 +08:00
TsMask
3c058ec107 feat: PCF补充增加online和offline字段,导出有取消操作 2024-10-28 10:53:03 +08:00
TsMask
327e82e057 fix: 布局组件升级调整 2024-10-28 10:51:11 +08:00
TsMask
012fc44f08 chore: 更新升级依赖库 2024-10-28 10:48:17 +08:00
lai
72fd372fe0 增加关闭按钮 2024-10-24 10:40:54 +08:00
lai
acdadcbb6f 增加Network Function IPv4地址 2024-10-24 10:40:20 +08:00
lai
7a49de71ea 修复 修改Event Type的label 2024-10-24 10:38:28 +08:00
zhongzm
56e4419e77 Revert "Revert "fix:中英提示修复""
This reverts commit 3abb4dd4bd.
2024-10-24 10:12:51 +08:00
zhongzm
3abb4dd4bd Revert "fix:中英提示修复"
This reverts commit a45243390b.
2024-10-24 10:12:09 +08:00
zhongzm
726a284ab5 Merge remote-tracking branch 'origin/main' 2024-10-24 10:11:28 +08:00
zhongzm
a45243390b fix:中英提示修复 2024-10-24 10:11:08 +08:00
TsMask
1faed9bc3d style: 关键指标概览页面占位 2024-10-23 18:48:29 +08:00
TsMask
9bd700eeb7 feat: PCF补充增加online和offline字段 2024-10-23 10:44:15 +08:00
zhongzm
5cc3b9c8cf fix:css样式报错修复 2024-10-22 18:54:35 +08:00
zhongzm
208895c7d5 feat:快速布局功能以及ws连接修复 2024-10-22 16:01:53 +08:00
TsMask
46578ce97b feat: 快速开站SMSC的IP赋值 2024-10-18 20:16:06 +08:00
TsMask
0ff5bd5e20 style: UDM用户数据根据网元类型变更刷新列表 2024-10-18 11:42:21 +08:00
TsMask
f08e637e69 fix: 版权信息文本长度128 2024-10-18 11:34:37 +08:00
TsMask
a600e056b8 chore: 更新版本号 2.241018 2024-10-18 10:36:06 +08:00
zhongzm
671c80972e fix:多选改checkbox 2024-10-18 10:32:55 +08:00
TsMask
d07230b582 Merge remote-tracking branch 'origin/main' into lichang 2024-10-18 10:20:54 +08:00
TsMask
35c24407ac Merge remote-tracking branch 'origin/lichang' 2024-10-18 10:18:48 +08:00
TsMask
cf33756548 Merge remote-tracking branch 'origin/main' into lichang 2024-10-18 10:17:53 +08:00
TsMask
1ef98298bc style: 移除port/dbinfo/capability属性信息 2024-10-17 19:55:09 +08:00
zhongzm
b1c2a95ec4 Merge remote-tracking branch 'origin/lichang' into lichang 2024-10-17 19:54:55 +08:00
zhongzm
147b2fad8d fix:网元响应式数组添加防抖 2024-10-17 19:54:40 +08:00
TsMask
b629088406 Merge remote-tracking branch 'origin/lichang' 2024-10-17 19:51:43 +08:00
TsMask
430a067280 Merge remote-tracking branch 'origin/main' into lichang 2024-10-17 18:27:09 +08:00
TsMask
8a71e8f773 Merge remote-tracking branch 'origin/lichang' 2024-10-17 18:26:49 +08:00
lai
ff556ce1ec 添加首页加载状态 2024-10-17 18:18:37 +08:00
zhongzm
9ed7aed4b4 feat:自定义布局保存,WS数据追加 2024-10-17 18:07:39 +08:00
TsMask
9e14297488 Merge remote-tracking branch 'origin/main' into lichang 2024-10-17 15:55:15 +08:00
TsMask
8e70706ed5 fix: 网元日志实时查看组件参数调整 2024-10-17 15:07:04 +08:00
TsMask
3e0529cf87 fix: 终端SSH视图组件调整参数配置外部地址 2024-10-17 15:06:34 +08:00
TsMask
91af2bed92 feat: 工具iperf/ping功能页面 2024-10-17 15:05:21 +08:00
lai
1ecefb91dc 增加导出时携带完整搜索条件 2024-10-17 14:51:55 +08:00
TsMask
72d9895902 fix: UDM用户数据按查询条件导出 2024-10-17 11:39:17 +08:00
lai
41fa214137 完善自定义首页设置 2024-10-17 10:30:21 +08:00
TsMask
1565f25a03 del: 移除debugger标记 2024-10-17 10:29:39 +08:00
lai
c5c2926d99 修改告警导出异常 2024-10-17 10:29:22 +08:00
lai
55456f9220 自定义主页 2024-10-16 19:28:05 +08:00
TsMask
cf1686c348 Merge branch 'lichang' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 into lichang 2024-10-16 16:47:01 +08:00
TsMask
f7833bcd9f fix: UDM数据load失败无法重试 2024-10-16 16:46:57 +08:00
TsMask
5a621053a4 feat: 网元连接配置UDM支持Redis 2024-10-16 16:46:14 +08:00
lai
2a6451ef2a 更改首页代码文件路径 2024-10-16 15:11:26 +08:00
lai
f1b440c8dd 补充 2024-10-16 14:50:47 +08:00
lai
a67e54ca6e 补充 2024-10-16 14:23:32 +08:00
lai
53d9e63c36 新增自定义首页 2024-10-16 14:12:31 +08:00
zhongzm
b4623d19e5 fix:关键指标界面拖拽块设为图标,优化样式 2024-10-15 18:26:02 +08:00
zhongzm
700bff6e38 fix:关键指标界面自定义布局功能 2024-10-15 17:48:35 +08:00
TsMask
d77c4e43d4 feat: 信令跟踪保活续期 2024-10-15 15:14:38 +08:00
TsMask
6e11d2b16a feat: 网元日志文件获取查看,抓包单独查看 2024-10-15 14:55:41 +08:00
TsMask
405842bc0b fix: 看板用户事件AMF订阅编号无neId 2024-10-15 14:38:29 +08:00
zhongzm
bf8d7f2124 fix:代码优化-方法封装-拖拽保存-大小自适应 2024-10-14 18:52:47 +08:00
TsMask
ba98b37306 feat: 优化PCF参数可选请求数据处理 2024-10-12 19:10:52 +08:00
TsMask
aa8ed65fd8 del: 删除旧License页面相关接口请求 2024-10-12 19:10:21 +08:00
TsMask
936a4410b3 del: 删除旧参数配置页面相关接口请求 2024-10-12 19:10:04 +08:00
TsMask
58ec76f9e5 Merge remote-tracking branch 'origin/main' into lichang 2024-10-12 15:43:09 +08:00
TsMask
c1a77c8e48 chore: 更新版本号 241012 2024-10-12 15:42:29 +08:00
TsMask
477e8e4631 feat: 工具iperf/ping页面占位 2024-10-12 15:39:53 +08:00
TsMask
4f9d65a3a7 feat: UDM签约支持MICO和RAT修改 2024-10-12 15:07:06 +08:00
TsMask
b1799d8ccb style: 首页-网元详细信息-删除数据库以及端口字段显示 2024-10-12 09:50:57 +08:00
TsMask
86833e7d6b feat: 关键指标报表页面 2024-10-11 18:48:46 +08:00
TsMask
59cf57898b Merge branch 'lichang' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 into lichang 2024-10-11 18:14:31 +08:00
zhongzm
fb9382e3a0 Merge remote-tracking branch 'origin/lichang' into lichang 2024-10-11 18:05:32 +08:00
zhongzm
dae4697cd2 feat:多图表网元指标界面实时数据连接修复和拖拽功能实现 2024-10-11 17:57:51 +08:00
TsMask
1b2e892f74 fix: 看板总流量24小时切换类型声明 2024-10-11 16:50:46 +08:00
TsMask
c66c640f75 fix: 看板总流量24小时实时累加 2024-10-11 15:47:26 +08:00
TsMask
30849416b6 fix: 工具ps/net页面定时器清除 2024-10-11 14:12:57 +08:00
TsMask
5edcee8da5 style: 隐藏跳转主机添加页面 2024-10-11 14:12:08 +08:00
TsMask
311beed2a7 fix: UPF总量数据格式化单位问题 2024-10-11 14:11:18 +08:00
TsMask
eb5fdfb635 fix: 修复工具ps/net资源列表 2024-10-11 09:53:13 +08:00
TsMask
78bcde9ef2 style: 信令跟踪根据状态隐藏操作 2024-10-10 21:06:56 +08:00
lai
630e2a16ad 限制自定义指标输入长度 2024-10-10 19:45:45 +08:00
TsMask
e1fe031f25 Merge branch 'lichang' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 into lichang 2024-10-09 18:56:28 +08:00
zhongzm
855ba7dc9e feat:net界面修复:F12后的报错消除 2024-10-09 12:04:16 +08:00
TsMask
3a72e73d5d style: 拓扑图smsc图标 2024-10-09 10:53:47 +08:00
TsMask
4cb13a1419 feat: 网元快速安装添加SMSC的ip填充 2024-10-09 09:50:31 +08:00
TsMask
8dd84a5255 fix: 网元抓包loading状态禁止重复开始任务 2024-10-08 16:49:14 +08:00
TsMask
c0e62f48b7 fix: wiregasm去除gz压缩文件 2024-10-01 14:10:22 +08:00
TsMask
b992225e28 fix: 网元快速安装多语言识别 2024-10-01 13:02:06 +08:00
TsMask
2f04562a34 feat: 信令跟踪功能页面 2024-09-30 21:02:01 +08:00
TsMask
d3a452cfd8 Merge remote-tracking branch 'origin/main' into lichang 2024-09-27 11:14:26 +08:00
TsMask
d81b8cdf38 chore: 更新版本号 240927 2024-09-27 11:13:25 +08:00
TsMask
39a417368a docs: 更新说明 2024-09-27 11:11:54 +08:00
TsMask
adfce5d2f7 style: SMSC-CDR结果带result,cause 2024-09-27 10:05:45 +08:00
TsMask
977286d6b3 fix: 驼峰和划线互转函数去除非对象转换 2024-09-26 17:31:57 +08:00
TsMask
c33000045a fix: 消息进行wg关闭销毁 2024-09-26 17:23:24 +08:00
TsMask
b995ac378a fix: 网元版本同版本号进行确认继续操作 2024-09-26 17:20:01 +08:00
TsMask
6bea64f345 style: 多语言views.traceManage.task取值变更views.ne.common 2024-09-24 10:53:33 +08:00
TsMask
94886e255e feat: 网元跟踪数据支持下载pcap文件 2024-09-24 10:52:28 +08:00
TsMask
45f66afe52 fix: 网元配置更新下发配置失败时不更新状态 2024-09-23 17:44:16 +08:00
TsMask
b9105c1e77 style: 注释信息解析html请求 2024-09-23 17:25:26 +08:00
TsMask
909d306942 perf: wg优化代码封装hooks 2024-09-23 17:24:55 +08:00
TsMask
f7273457e9 feat: 跟踪任务查看pcap内容信息 2024-09-23 17:24:02 +08:00
TsMask
2e5ad2f65d fix: 看板MME-CDR的ECM State 2024-09-21 15:52:54 +08:00
TsMask
776e9c5837 chore: 更新版本号 240920 2024-09-20 18:23:12 +08:00
TsMask
0d4979d3d9 style: 注释和代码格式化 2024-09-20 18:22:22 +08:00
TsMask
686c7dd273 fix: 驼峰和划线互转函数 2024-09-20 18:21:03 +08:00
TsMask
d41b308c6d fix: 性能管理报表页面未开发 2024-09-20 18:20:34 +08:00
TsMask
84dac247d2 perf: 重构跟踪任务 2024-09-20 18:20:01 +08:00
TsMask
f8439bb40a feat: HLR跟踪任务页面免登录/trace-task-hlr 2024-09-20 12:05:16 +08:00
TsMask
d268d920e7 chore: 更新版本号 240919 2024-09-19 11:50:51 +08:00
TsMask
f730ef1e3a style: 调整勾选按钮顺序 2024-09-19 11:50:06 +08:00
TsMask
af1ce32063 feat: 调整SMF在线用户列表数据补充显示imsi备注标记 2024-09-19 11:49:30 +08:00
TsMask
678ff2d09d feat: UDM签约补充CAG参数和备注标记参数 2024-09-19 11:48:16 +08:00
TsMask
48f674b6ef Merge remote-tracking branch 'origin/main' into lichang 2024-09-13 09:59:13 +08:00
TsMask
02f0820a69 fix: telnet终端命令多‘号导致命令无效 2024-09-13 09:58:13 +08:00
TsMask
ca8605fd6e fix: 跟踪任务HLR操作 2024-09-12 17:12:41 +08:00
TsMask
6d5e96421b style: 多语言zh去除行头 2024-09-12 17:12:13 +08:00
TsMask
bcc29007bf fix: 4G的MME显示ECM 2024-09-12 17:11:10 +08:00
TsMask
bdf904078d style: 多语言zh去除行头 2024-09-12 17:10:43 +08:00
TsMask
e37cfa5066 Merge remote-tracking branch 'origin/main' into lichang 2024-09-10 09:42:40 +08:00
lai
f1bff23bbc Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-09-09 19:25:26 +08:00
lai
53106ddb5c 调换位置 2024-09-09 19:25:22 +08:00
TsMask
3a04882fe5 Merge remote-tracking branch 'origin/main' into lichang 2024-09-09 19:14:04 +08:00
TsMask
19202a5e81 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-09-09 19:11:37 +08:00
TsMask
7b311ff673 fix: SMSC添加CDR响应错误原因码 2024-09-09 19:11:34 +08:00
lai
9dba98e0ee 重新排版表单 2024-09-09 19:06:53 +08:00
lai
71338670f0 重新排版表单 2024-09-09 18:12:23 +08:00
lai
7dcdfabce2 增加单位显示的限制 2024-09-09 16:23:18 +08:00
lai
ddfe1723c9 自定义指标 2024-09-09 15:01:04 +08:00
TsMask
57b5f76db7 fix: 重构tool的ps页面 2024-09-06 19:57:10 +08:00
lai
9ac3524877 自定义指标 2024-09-06 19:22:25 +08:00
lai
ca82a0a74b 更改中英文 2024-09-06 19:21:57 +08:00
zhongzm
23007c3bf2 feat:ps界面和net界面 2024-09-06 17:27:38 +08:00
TsMask
5d69d7612a chore: 更新版本号 2.240906 2024-09-06 16:14:16 +08:00
TsMask
ddd8930af4 feat: 跟踪任务功能详情文件页面 2024-09-06 16:12:33 +08:00
lai
757f2ec20a 导出文件管理 2024-09-06 10:15:20 +08:00
lai
30caa79424 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-09-05 20:22:07 +08:00
TsMask
e3f83a0b98 feat: 跟踪任务功能页面 2024-09-05 17:30:31 +08:00
TsMask
147a3ed77b style: 跟踪任务多语言翻译 2024-09-05 17:30:11 +08:00
TsMask
5d35d950b3 feat: 网元参数配置特殊SMF-upfid选择 2024-09-05 17:29:12 +08:00
lai
6874508d3f neType空时则获取全部基站信息 2024-09-05 16:42:43 +08:00
lai
33f468209a 告警根据中英文导出 2024-09-05 16:38:06 +08:00
lai
e8ef2816df 增加IMSI,ki限制位数以及合并新增批量新增按钮 2024-09-05 16:36:05 +08:00
TsMask
e38d7bbffa fix: 网元信息新增监听neType+neId拼接rmUID 2024-09-03 16:59:06 +08:00
TsMask
2f1265c47a fix: 编译类型缺失 2024-09-03 16:57:43 +08:00
TsMask
66b6b60505 fix: 右上角气泡提示活动告警 2024-09-03 11:28:41 +08:00
TsMask
249d14320d fix: 删除右上角系统用户手册 2024-09-03 11:22:56 +08:00
TsMask
313b90ad31 fix: MME事件类型cm显示改为ECM 2024-09-03 11:19:39 +08:00
TsMask
2ebc90e974 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-09-03 11:06:50 +08:00
TsMask
640257dd55 feat: 信令抓包数据监控 2024-09-03 11:06:40 +08:00
TsMask
c1a3ce8068 feat: 信令抓包tshark解析pcap 2024-09-03 11:05:58 +08:00
TsMask
0080e9c26e feat: 公共组件-虚拟滚动列表 2024-09-03 11:00:00 +08:00
TsMask
2ccafe622d feat: 插件新增-Web Workers 2024-09-03 10:59:05 +08:00
TsMask
d7a515ed9a feat: 工具函数-格式化文件大小 2024-09-03 10:54:15 +08:00
cd82b71b77 fix: remove OMC limit from parameter config NE list 2024-09-02 16:52:49 +08:00
TsMask
9d6a7dcd9c chore: 更新版本号 2.240831 2024-08-31 10:17:36 +08:00
TsMask
46c2affcc8 fix: 网元信息资源百分比 2024-08-30 19:50:12 +08:00
TsMask
3d00a80588 fix: 手工同步超时时间180s 2024-08-30 18:02:47 +08:00
TsMask
a3c1fe154f chore: 更新版本号 2.240823 2024-08-23 19:06:32 +08:00
TsMask
07dce5a27e style: 暗黑模式下文字反色 2024-08-23 19:05:35 +08:00
TsMask
255cf026a6 style: 编译类型错误 2024-08-22 10:28:35 +08:00
TsMask
840ea56c42 chore: 更新版本号 2.240822 2024-08-22 10:20:45 +08:00
TsMask
09917cc9c9 feat: 补充CBC网元选择 2024-08-22 10:19:52 +08:00
TsMask
4c9fe192f2 feat: 历史抓包文件页面 2024-08-22 10:19:23 +08:00
TsMask
32ec55d44e feat: 网元文件下载支持删除临时缓存文件 2024-08-22 10:18:42 +08:00
TsMask
527cf89d1a fix: 避免get请求带body错误 2024-08-21 17:38:10 +08:00
TsMask
ac7b57c0ae fix: 内嵌地址标识菜单展开高亮 2024-08-21 17:37:06 +08:00
TsMask
8be1a8968e fix: 标签名称修改导致全局标签 2024-08-21 17:36:04 +08:00
TsMask
999ccf64ad perf: 抓包功能优化 2024-08-20 15:49:03 +08:00
TsMask
03352f3aa8 style: 网元快速安装操作Nest放后面 2024-08-17 12:22:38 +08:00
lai
61a58fc661 默认neType为空时显示45G信息 2024-08-16 17:11:39 +08:00
TsMask
4268fa3198 fix: 网元IMS参数配置plmn禁止删除index0 2024-08-15 18:05:56 +08:00
TsMask
f6b62c6c7e fix: 构建目标改为esnext,兼容pdf-js编译 2024-08-15 10:22:39 +08:00
TsMask
b4cbc1c190 chore: 更新版本号 2.240815 2024-08-15 10:11:22 +08:00
TsMask
1871f6f656 chore: 新增crypto-js依赖库 2024-08-15 10:10:50 +08:00
TsMask
409f9836a6 fix: 对登录,网元信息新增更新数据加密 2024-08-15 10:10:09 +08:00
TsMask
b3f40ee683 fix: 网元信息列表不带状态导致无法正常显示 2024-08-15 10:09:11 +08:00
TsMask
aa07b51663 feat: 请求http工具支持接口加解密 2024-08-15 10:08:12 +08:00
TsMask
19b77ed005 style: 监控资源数据超时设为60s 2024-08-15 09:49:44 +08:00
TsMask
06503fd079 fix: 拓扑图组名变更 2024-08-09 19:46:20 +08:00
TsMask
2321dacd2a chore: 更新版本号 2.240809 2024-08-09 18:48:44 +08:00
TsMask
a8b4e91b95 feat: 文本日志文件实时查看功能 2024-08-09 18:47:45 +08:00
TsMask
a5075bef43 feat: SMSC功能接口补充 2024-08-08 20:58:47 +08:00
TsMask
f4ffbc1c86 style: CDR数据页面格式优化 2024-08-08 20:58:06 +08:00
TsMask
6cafa284c7 feat: SMSC-CDR数据列表查询 2024-08-08 20:56:40 +08:00
TsMask
049c0e7a0f fix: 终端面板telnet内容行列数自适应调整 2024-08-08 10:40:19 +08:00
TsMask
377ffc6e10 fix: CDR/Event上报数据对应发网元 2024-08-06 16:56:37 +08:00
TsMask
858431e86e perf: 替换旧网元参数配置页面 2024-08-05 17:51:11 +08:00
TsMask
70fca5ca41 fix: 网元信息OAM配置支持修改omc ip,排除omc编辑OAM信息 2024-08-05 17:44:41 +08:00
lai
e972d14a9a 调整表格字段列 2024-08-05 15:28:16 +08:00
TsMask
c1187383b6 fix: 系统引导跳转不重复引导 2024-08-03 10:09:16 +08:00
lai
8d8605e0cd 调整网元配置模块 2024-08-02 18:55:53 +08:00
TsMask
8af48936e5 chore: 更新版本号 2.240801 2024-08-02 10:11:42 +08:00
TsMask
e21a8dc898 perf: 优化快速安装配置公共参数页面 2024-08-01 17:34:16 +08:00
TsMask
3c1ee63359 fix: 开站网元安装信息保存触发操作不一致 2024-07-30 18:23:51 +08:00
TsMask
bc3940016a perf: 网元公共参数合并到网元快速安装,移除相关多语言翻译 2024-07-30 18:22:32 +08:00
TsMask
6ab4fbea6f fix: UDM签约数据cnType改5GC Flag 2024-07-30 11:27:12 +08:00
TsMask
c73fcbd91c chore: 更新版本号 2.240729 2024-07-29 18:27:15 +08:00
TsMask
023e317b0d feat: 网元配置备份操作权限控制删除/编辑按钮 2024-07-29 14:36:19 +08:00
lai
543a2b7434 新增 统一配置网元 2024-07-29 10:38:14 +08:00
TsMask
4ae9051411 style: 系统设置LOGO和文档判断是否开启语言切换显示控件 2024-07-27 15:01:56 +08:00
TsMask
532546c3f5 chore: 更新版本号 2.240727 2024-07-27 10:28:23 +08:00
TsMask
ab0d26513c perf: 网元备份导入导出弹窗表单重构 2024-07-26 18:27:15 +08:00
TsMask
8e9498ec83 feat: 网元备份文件表格页面 2024-07-26 18:25:15 +08:00
TsMask
ca048f223c feat: UDM鉴权文件导入K4文件支持 2024-07-26 15:28:45 +08:00
TsMask
e9ff6493dd fix: 看板UPF流量吞吐初始查询和ws监听12_neId 2024-07-25 18:48:01 +08:00
TsMask
396fb0b124 fix: KPI接收指定对应neId,实时数据不支持搜索 2024-07-25 18:23:28 +08:00
TsMask
3a854be8fe fix: 查询IMS在线用户数接口数据格式兼容 2024-07-25 10:50:54 +08:00
TsMask
c1f34f56ac fix: 对使用手册,官网进行限制 2024-07-24 18:10:38 +08:00
lai
b80bae0126 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-07-24 17:18:18 +08:00
lai
6c383b58c8 对使用手册,官网进行限制 2024-07-24 17:18:15 +08:00
TsMask
06db1344c3 fix: 日志事件cm结果多语言显示错误 2024-07-23 14:48:53 +08:00
TsMask
fac47279b5 fix: 日志IMS-CDR类型查询默认空进行全查询,表格宽度增加 2024-07-23 14:26:09 +08:00
TsMask
a36a12f783 fix: 日志事件类型查询默认空进行全查询 2024-07-23 14:25:08 +08:00
TsMask
acd19ebdbd style: 看板基站数量分开展示避免分不清数 2024-07-19 14:41:40 +08:00
TsMask
d53c4c34f0 style: 新增网元信息时ssh默认密码初始 2024-07-18 15:44:35 +08:00
TsMask
2d9011cf6b fix: 看板资源图无网元状体数据取值异常 2024-07-17 18:11:22 +08:00
TsMask
fcf53d0995 fix: 网元删除记录自动移除不要刷新列表 2024-07-17 18:06:59 +08:00
TsMask
a2d93ddafe fix: 系统名称横向滚动衔接动画 2024-07-16 11:21:16 +08:00
TsMask
79920542c1 chore: 更新版本号240712 2024-07-12 21:23:12 +08:00
TsMask
6efd9cb61a fix: 根据浏览器地址栏hostname加33030端口连接后端服务 2024-07-11 17:56:24 +08:00
TsMask
4dc6699974 style: UDM用户数据限制imsi长度输入 2024-07-11 15:02:53 +08:00
TsMask
3bdae264e1 fix: 网元信息单行更新局部信息变更失效 2024-07-10 15:47:28 +08:00
TsMask
9e0a99d160 style: 数据CDR的表头宽度调整 2024-07-09 19:02:54 +08:00
TsMask
5ac0ca41eb style: 签约用户IMSI编辑时禁止修改,cnType添加提示 2024-07-09 18:36:27 +08:00
TsMask
a7de701d4d fix: 支持kvdb依赖包安装,db_ip默认0.0.0.0 2024-07-09 16:11:58 +08:00
TsMask
f0561242ca fix: fetch请求拼接地址栏参数不区分请求方法 2024-07-09 10:04:46 +08:00
TsMask
6102972373 fix: 网元公共配置OMC的IP去除覆盖 2024-07-05 14:42:45 +08:00
TsMask
d095531952 style: 系统角色分配标题多语言翻译 2024-07-04 17:02:33 +08:00
TsMask
d49dc9ebfd chore: 更新版本号240704 2024-07-04 10:24:01 +08:00
TsMask
43a99e9328 fix: 系统管理员角色用system表示避免admin混用 2024-07-03 15:13:41 +08:00
TsMask
d333221620 style: 在线用户列表文字靠左对齐 2024-07-03 14:50:25 +08:00
TsMask
481734cfe1 fix: 看板MME资源内存溢出100% 2024-07-03 14:49:11 +08:00
TsMask
1fa8601675 fix: UDM Object下拉数据显示错误 2024-07-01 16:02:12 +08:00
TsMask
c1aabdbe42 fix: 网元信息新增时刷新列表,编辑时局部更新信息 2024-06-28 14:55:40 +08:00
TsMask
953a36f142 style: 网元软件上传按钮文本多语言处理 2024-06-28 12:01:07 +08:00
TsMask
c5f62e8d76 fix: 网元信息新增OMC配置应该没有telnet 2024-06-28 11:11:41 +08:00
TsMask
946139facb fix: 用户无操作一段时间后进行锁屏 2024-06-27 20:46:58 +08:00
TsMask
95931b2b6e fix: 用户无操作一段时间后进行锁屏 2024-06-27 20:45:26 +08:00
TsMask
e31c85835d chore: 更新版本号240627 2024-06-27 18:32:02 +08:00
TsMask
847bae4c77 fix: SMF UE在线信息兼容旧数据 2024-06-27 18:31:22 +08:00
TsMask
e69f43a0c2 style: SMFCDR多语言smfSubscriptionID订阅 ID 2024-06-27 18:02:16 +08:00
TsMask
d96e1ad259 fix: SMF UE在线信息固定翻页50条 2024-06-27 17:28:23 +08:00
TsMask
3829d339e7 fix: SMF UE在线信息固定翻页50条 2024-06-27 17:10:30 +08:00
TsMask
cd4073bec3 fix: 网元主机信息默认填写固定用户名 2024-06-27 14:59:45 +08:00
TsMask
e67126c57a style: 调整SMFCDR输入框lg:6 2024-06-27 14:58:41 +08:00
TsMask
2f651b5d1f style: 快速开站系统admin密码默认Abcd@1234.. 2024-06-26 21:09:30 +08:00
TsMask
525854604f fix: 网元信息新增OMC配置应该没有telnet 2024-06-26 16:48:46 +08:00
TsMask
d42a8701da style: 参数配置规则校验示例写法 2024-06-26 16:47:45 +08:00
TsMask
2b680d6d20 fix: 参数配置可选项按id升序 2024-06-26 11:59:00 +08:00
TsMask
de79760a0e chore: 更新版本号240626 2024-06-26 10:50:19 +08:00
TsMask
a5b5269b91 chore: 更新依赖版本 2024-06-26 10:45:06 +08:00
TsMask
8a2d0ccfa1 style: 调整网元软件批量上传框标题统一为上传软件 2024-06-26 10:44:32 +08:00
TsMask
650b02dc30 style: 调整网元软件单上传框宽度650 2024-06-26 10:43:50 +08:00
TsMask
b42d8cb370 style: 多语言翻译网元版本Update Softwares改成Batch Upload 2024-06-26 10:43:12 +08:00
TsMask
a213be0d64 fix: 网元软件多文件上传文件删除副本记录 2024-06-25 17:54:50 +08:00
TsMask
2a2b441e09 fix: 系统重置框倒计时无变化 2024-06-25 17:53:45 +08:00
TsMask
84bdb44286 fix: 网元操作接口超时时间60s 2024-06-25 15:37:58 +08:00
TsMask
06b6175a76 fix: 用户管理刷新不应重置页数1 2024-06-24 17:11:49 +08:00
TsMask
11b790e140 fix: 告警帮助文档高度调整88vh 2024-06-24 10:12:32 +08:00
TsMask
296a9ba02b feat: UDM签约数据添加CN Type可选类型 2024-06-21 20:49:34 +08:00
TsMask
1801a46396 style:: 操作日志多语言变更 2024-06-20 14:45:33 +08:00
TsMask
f6644a0d97 style: 全局配置消息距离顶部的位置 2024-06-20 14:41:02 +08:00
TsMask
57f575aa84 fix: 用户账号规则修改允许数字开头至少6位 2024-06-20 10:16:04 +08:00
TsMask
68cbbe7133 chore: 更新版本号240619 2024-06-19 17:58:17 +08:00
TsMask
c11d814312 fix: 模态框的footer底部按钮null会显示的处理 2024-06-19 17:29:59 +08:00
TsMask
e1548d2c98 fix: UE事件MME 看板推送显示/类型结果保持和AMF一致 2024-06-19 16:57:07 +08:00
TsMask
1ec374eb26 style: UE在线数据临时模拟数据 2024-06-19 16:55:02 +08:00
TsMask
0955a79965 style: 移除无用console输出 2024-06-19 14:51:28 +08:00
TsMask
374a9bde7e fix: 用户管理不能改自己状态,权限控制分配岗位 2024-06-19 14:02:24 +08:00
TsMask
639a4f0b1f feat: 用户数据保存userId信息做判断 2024-06-19 12:03:02 +08:00
TsMask
d1b9d7b9ba style: 网元公共参数同步窗口最小高度不设置 2024-06-19 12:01:10 +08:00
TsMask
3298203f60 fix: 用户部门默认选取自身拥有的 2024-06-18 19:12:44 +08:00
TsMask
8f3cce52c0 fix: UDM鉴权重载提示不关闭 2024-06-18 15:41:47 +08:00
TsMask
ce06a88e89 fix: 主页饼图颜色显示问题 2024-06-18 14:30:53 +08:00
TsMask
749a04972d style: UDM签约用户编辑框top0 2024-06-18 11:01:17 +08:00
TsMask
a311f0a09b fix: 移除拖拽组件,全局注册ProModal替换默认AModal 2024-06-18 10:26:38 +08:00
TsMask
c74d311537 chore: 升级依赖库 2024-06-18 10:24:12 +08:00
TsMask
1492f18791 style: 字典类型数据结构体变更 2024-06-18 10:23:09 +08:00
TsMask
cbc81643a5 chore: 更新版本号240617 2024-06-17 17:43:37 +08:00
TsMask
c18b557c97 fix: mocn页面引用函数异常导致编译错误 2024-06-17 17:42:48 +08:00
TsMask
b6bd9bc3d5 fix: 角色编辑修改框销毁后新建避免菜单勾选失败 2024-06-17 17:03:12 +08:00
TsMask
199607e322 style: 告警网元类型下拉自动提示输入 2024-06-17 11:35:11 +08:00
TsMask
ee10119d77 feat: 看板用户行为添加MME的UE事件 2024-06-17 11:21:44 +08:00
TsMask
1b1a56e49b feat: MME用户事件日志页面功能实现 2024-06-15 18:41:39 +08:00
TsMask
afdc188e17 fix: 调整tcpdump接口 2024-06-15 14:47:53 +08:00
TsMask
5de7d0a73f fix: 调整WS数据通道类型指定 2024-06-15 14:29:38 +08:00
TsMask
8f73d80a42 chore: 更新版本号240615 2024-06-15 10:41:01 +08:00
TsMask
5a85f245b0 style: 系统名称超出范围进行滚动 2024-06-15 10:37:55 +08:00
TsMask
ff600c49f6 chore: 编译类型错误提示 2024-06-14 19:00:38 +08:00
TsMask
4c7e99fdd7 fix: 引用UDM数据列表接口错误 2024-06-14 18:58:45 +08:00
TsMask
a6037a9737 del: 移除旧的UDM用户数据接口 2024-06-14 17:22:45 +08:00
TsMask
1d55c092b1 feat: UDM用户数据接口调整,页面优化加载等待 2024-06-14 17:02:33 +08:00
TsMask
8bdfd7ea28 style: 终端telnet编辑窗口单行120个字符 2024-06-14 16:46:51 +08:00
TsMask
39ad75fbd3 style: 多语言锁屏输入提示enUs 2024-06-14 14:33:29 +08:00
TsMask
7ef775209d fix: 网元信息更新记录显示状态变更,不刷新列表 2024-06-13 14:36:07 +08:00
TsMask
a8e0f36562 fix: UDM签约数据Template输入长度16改为50 2024-06-12 14:42:16 +08:00
TsMask
be50fc9c5c style: 代码格式化 2024-06-12 14:36:16 +08:00
TsMask
375f236e32 feat: 重构锁屏功能 2024-06-12 14:35:07 +08:00
TsMask
c9eb0240d8 fix: 网元信息更新删除不刷新列表,进行单个更新并清除网元列表缓存 2024-06-12 10:16:35 +08:00
TsMask
b67d591d0a feat: 锁屏页面 2024-06-11 18:31:26 +08:00
TsMask
7275a87fba style: CDR页面多语言处理 2024-06-11 18:30:53 +08:00
TsMask
c103222b65 fix: 轻量化upf不需要配置pci和mac 2024-06-11 17:00:34 +08:00
TsMask
5133d09ec2 feat: SMF CDR数据列表展示和导出,未进行多语言处理 2024-06-11 16:23:57 +08:00
TsMask
d88cec34df chore: 更新版本号240611 2024-06-11 10:29:24 +08:00
TsMask
eadd4709ee fix: 开站网元信息无终端配置时不显示,没有则新建个默认的占位 2024-06-11 10:28:16 +08:00
TsMask
04cbdc6b11 fix: 网元信息多选删除id取值异常 2024-06-11 10:26:46 +08:00
TsMask
233496e184 feat: 网元数据CDR支持导出功能 2024-06-07 19:50:02 +08:00
TsMask
919f8ef2a5 Merge remote-tracking branch 'origin/main' into lichang 2024-06-07 10:35:40 +08:00
lai
8f8d056f45 smf cdr 2024-06-06 22:28:46 +08:00
lai
8fcd7974e4 与smf协商后 暂且不进行中英文翻译 2024-06-06 22:28:03 +08:00
TsMask
cb7fc418a5 fix: 网元版本OMC安装遮罩和提示多语言 2024-06-06 15:13:45 +08:00
TsMask
e6d4a898a8 fix: 开站系统logo类型选择回显 2024-06-06 14:34:34 +08:00
TsMask
be4fc896d7 style: 网元公共参数EMS->OMC 2024-06-06 11:51:49 +08:00
TsMask
e5a5ef6f96 style: 多语言-部门状态 2024-06-05 17:00:24 +08:00
TsMask
530662bf5d fix: 开站网元授权文件变更成功提示 2024-06-03 11:57:35 +08:00
TsMask
2e7514d3ca feat: 全局布局组件升级到3.3.5 2024-06-03 11:42:42 +08:00
TsMask
1db61a5d4e chore: 更新依赖版本 2024-06-03 11:41:04 +08:00
TsMask
618499e777 style: 网元公共参数EMS_IP标记必填红 2024-06-01 16:18:50 +08:00
TsMask
71c0306587 fix: 文件切片操作超时时间统一60s 2024-06-01 15:11:46 +08:00
TsMask
a3cd8f05fb style: 编译类型声明 2024-05-31 19:17:54 +08:00
TsMask
d8ca0ca5ef feat: 网元安装IMS预输入mf包参数 2024-05-31 19:06:42 +08:00
TsMask
da08e1cc5b style: 开战公共参数保存提示成功 2024-05-31 17:36:09 +08:00
TsMask
8e4c5d0b90 feat: 网元信息配置文件导入导出 2024-05-31 15:08:55 +08:00
TsMask
467c93f710 fix: 锁屏重启检查404时重试 2024-05-31 11:05:03 +08:00
TsMask
22ced8bdb2 fix: 网元公共参数初始数据组件回填,adb绑定0.00.0 2024-05-30 21:20:10 +08:00
TsMask
2ee26a6958 Merge remote-tracking branch 'origin/main' into lichang 2024-05-30 18:07:52 +08:00
TsMask
c63e892544 style: 系统操作日志去除请求方法列 2024-05-30 18:00:50 +08:00
TsMask
cce3088f73 Merge remote-tracking branch 'origin/main' into lichang 2024-05-30 17:55:22 +08:00
TsMask
2211896768 Merge remote-tracking branch 'origin/main' into lichang 2024-05-30 17:53:51 +08:00
TsMask
5bb3cd814c fix: 网元参数配置属性监听异常 2024-05-30 17:53:26 +08:00
lai
266d816a21 修改文件默认名 2024-05-30 17:49:39 +08:00
TsMask
90c64c029a Merge remote-tracking branch 'origin/main' into lichang 2024-05-30 17:29:45 +08:00
TsMask
d06e2da72e chore: 更新版本240530 2024-05-30 17:23:49 +08:00
TsMask
7714d506c4 feat: 网元参数配置smf选择upfId 2024-05-30 17:08:55 +08:00
lai
0b7a198235 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-05-30 15:44:41 +08:00
TsMask
68362ba3e3 feat: 网元参数配置可收起左侧菜单 2024-05-30 15:41:17 +08:00
lai
a9633e652f Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-05-30 15:34:27 +08:00
TsMask
6592561bca style: 参数校验多语言翻译 2024-05-30 15:32:42 +08:00
lai
09e0353053 增加事件告警 2024-05-30 15:25:08 +08:00
lai
c1e95fd1e9 仪表盘去除事件告警 2024-05-30 14:49:45 +08:00
TsMask
89857e0c1b style: 开站页面样式居中 2024-05-30 11:38:36 +08:00
TsMask
7aa37ee330 chore: 更新版本号240530 2024-05-30 11:00:57 +08:00
TsMask
4c16888184 fix: 网元快速安装授权检查是否可用后在进行文件上传 2024-05-29 18:06:26 +08:00
TsMask
a61716d40d feat: 网元公共参数配置表单组件 2024-05-29 16:32:11 +08:00
TsMask
3f02cb628b feat: 网元软件包支持携带依赖进行记录 2024-05-28 15:31:41 +08:00
TsMask
22805924fb fix: 网元软件多上传同开站逻辑 2024-05-28 15:29:45 +08:00
TsMask
e00229e5ff revt: 回退网元软件包类型支持adb,mf,rtproxy 2024-05-27 18:49:41 +08:00
TsMask
939a235a87 style: 网元软件代码优化 2024-05-27 18:33:46 +08:00
TsMask
cd49162dfc fix: 网元安装去除默认agtuser输入 2024-05-27 18:31:33 +08:00
TsMask
b7f2df5d1c fix: 网元版本升级勾选逐个进行,多语言翻译 2024-05-27 18:28:15 +08:00
TsMask
8b24bc55b9 fix: 网元授权上传进行重启网元 2024-05-27 17:09:39 +08:00
TsMask
9f2b80718e fix: 网元软件包类型支持adb,mf,rtproxy 2024-05-27 17:08:56 +08:00
TsMask
38cb406687 chore: 更新版本号240524 2024-05-24 20:54:55 +08:00
TsMask
c25fe63a26 style: 开站安装关闭按钮禁用 2024-05-24 20:54:37 +08:00
TsMask
b84d6bb9fc fix: 开站网元信息删除无id触发undefined 2024-05-24 17:54:39 +08:00
TsMask
b325cde5c0 fix: 国际化切换选择控件根据配置隐藏 2024-05-24 17:53:36 +08:00
TsMask
34266da44e style: 移除无效引用 2024-05-24 17:42:28 +08:00
TsMask
d82d6b7b47 fix: 网元授权勾选重置 2024-05-24 17:41:47 +08:00
TsMask
b1c7a068cf perf: 网元授权勾选多上传更新 2024-05-24 17:41:08 +08:00
TsMask
c155160cf7 style: 开站网元安装多语言翻译 2024-05-24 16:21:44 +08:00
TsMask
2ae4559958 fix: 开站软件安装逐个进行避免dpkg look错误 2024-05-24 16:21:08 +08:00
TsMask
782283bba6 pref: 网元软件多上传选择弹窗组件 2024-05-24 16:19:53 +08:00
TsMask
1b50708786 fix: 移除无用loding和危险操作高亮红色 2024-05-24 16:18:52 +08:00
TsMask
206d3755a0 fix: 网元公共参数设置omcIP进行更新 2024-05-24 16:15:09 +08:00
TsMask
6470effbda style: 网元相关页面多语言翻译 2024-05-24 09:41:56 +08:00
TsMask
f94b1ef44a style: 快速开站多语言翻译 2024-05-24 09:41:20 +08:00
TsMask
7c78eab431 style: 快速开站多语言翻译 2024-05-21 17:10:45 +08:00
TsMask
814b7b0058 feat: 网元快速安装多语言翻译 2024-05-20 20:18:00 +08:00
TsMask
624f67ecca feat: 网元公共配置多语言翻译 2024-05-20 16:20:58 +08:00
TsMask
c1a9497b77 feat: 网元信息表单多语言翻译 2024-05-20 16:10:13 +08:00
TsMask
1ad2ed2d26 feat: 网元信息表单多语言翻译 2024-05-20 15:14:23 +08:00
TsMask
48f278997f feat: 网元信息OAM多语言翻译 2024-05-20 11:58:25 +08:00
TsMask
9b9d6222e1 feat: 网元信息多语言翻译 2024-05-20 10:56:55 +08:00
TsMask
2e8a878365 Merge remote-tracking branch 'origin/main' into lichang 2024-05-17 20:23:52 +08:00
TsMask
bc59dc67e6 style: IMS用户话单表格宽度 2024-05-17 18:15:16 +08:00
TsMask
df6022b4a8 Merge remote-tracking branch 'origin/main' into lichang 2024-05-17 18:11:53 +08:00
TsMask
f2c67d087b chore: 更新版本240517 2024-05-17 18:02:22 +08:00
TsMask
7a0298a419 feat: IMS用户话单支持号码查询 2024-05-17 18:00:56 +08:00
TsMask
b40e798090 feat: AMF用户事件支持IMSI查询 2024-05-17 18:00:28 +08:00
TsMask
d48d5d6c95 feat: 网元软件多语言翻译 2024-05-17 17:14:14 +08:00
TsMask
69f3347a4d feat: 网元版本多语言翻译 2024-05-17 16:04:44 +08:00
TsMask
85ae7dc5ea fix: 网元授权多语言翻译 2024-05-17 15:18:01 +08:00
TsMask
531cd6d03d fix: 开站网元信息telnet不显示 2024-05-17 11:32:30 +08:00
TsMask
9fd8c4597a fix: 开站网元信息telnet默认值 2024-05-17 11:06:19 +08:00
TsMask
7060a3d887 fix: 网元授权文件变更提供重启功能,排除OMC类型 2024-05-17 11:04:59 +08:00
TsMask
c12ffa583c fix: 开站时网元主机可不填备注 2024-05-16 19:21:06 +08:00
TsMask
05aabb8c61 chore: 更新版本号240516 2024-05-16 14:46:59 +08:00
TsMask
6b461ead7c fix: 网元信息编辑添加备注输入 2024-05-16 14:43:51 +08:00
TsMask
7c54e372e5 feat: 开站网元授权状态标签字典 2024-05-16 14:43:18 +08:00
TsMask
5be95a7af6 feat: 网元版本状态标签字典 2024-05-16 14:42:10 +08:00
TsMask
08515541b4 style: 网元公共参数配置初始值 2024-05-16 10:00:50 +08:00
TsMask
3948924f61 del: 删除旧系统页面 2024-05-15 19:21:49 +08:00
TsMask
ce1944881a style: 隐藏IP地址区域信息 2024-05-15 19:21:24 +08:00
lai
f6122c0758 调整为活动告警 2024-05-15 14:44:35 +08:00
lai
3d3f4c2cc6 看板微调 2024-05-15 14:43:07 +08:00
TsMask
e8e5b92a57 Merge remote-tracking branch 'origin/main' into lichang 2024-05-14 19:14:13 +08:00
TsMask
4ad704398d fix: 网元授权安装结果遍历message提示 2024-05-14 19:13:58 +08:00
TsMask
26289b7787 fix: 文件上传接口超时60s 2024-05-14 19:13:21 +08:00
TsMask
7ad8c1706e fix: 网元OAM端口输入限制5 2024-05-14 19:12:54 +08:00
TsMask
424a596613 fix: 看板定时器初始化前清除后设置 2024-05-14 19:12:16 +08:00
TsMask
6d5b9f417c fix: 网元特定排序添加SMSC 2024-05-14 17:24:50 +08:00
TsMask
7278e24dce Merge remote-tracking branch 'origin/main' into lichang 2024-05-14 15:02:11 +08:00
TsMask
76839ae18a fix: 系统重置操作等待遮罩 2024-05-14 15:01:30 +08:00
TsMask
c8a6aa3210 feat: 锁屏遮罩添加系统重置等待 2024-05-14 14:58:35 +08:00
TsMask
9b4bbcedc5 fix: 黄金指标图表项数据切换重复累积问题 2024-05-14 14:47:09 +08:00
TsMask
3b793c107c style: 角色键值输入提示变更多语言 2024-05-14 12:01:23 +08:00
lai
a076e6d079 疑似{}引发的问题 2024-05-14 10:02:43 +08:00
TsMask
fb2a7c51f9 Merge remote-tracking branch 'origin/main' into lichang 2024-05-13 09:41:19 +08:00
TsMask
1e2c2b5170 fix: 拓扑信息首个非OMC的异常显示问题 2024-05-11 18:03:49 +08:00
lai
56833b654e 更改提示语 2024-05-11 16:59:40 +08:00
lai
f50e02e6e7 为dnn,st添加星号 2024-05-11 16:58:22 +08:00
TsMask
52cc24813f Merge remote-tracking branch 'origin/main' into lichang 2024-05-11 16:42:13 +08:00
TsMask
c8a0d4c3f7 fix: 网元主机ssh私钥长度3000限制 2024-05-11 16:41:51 +08:00
TsMask
7560f21f11 style: 注释修改 2024-05-11 10:45:34 +08:00
TsMask
8a5f80fe47 feat: 网元配置OAM弹窗表单 2024-05-11 10:45:13 +08:00
TsMask
29eb1f08b1 del: 移除旧的参数配置页面 2024-05-10 14:54:36 +08:00
TsMask
9981de2271 del: 移除旧在线会话页面 2024-05-10 14:49:37 +08:00
TsMask
207acb3f3d fix: 网元信息IP地址输入校验 2024-05-10 14:43:57 +08:00
TsMask
873a76f48f fix: 开站排除omc类型选择 2024-05-10 14:42:26 +08:00
TsMask
4ca700092a fix: 登录后重定向页面 2024-05-10 14:19:30 +08:00
TsMask
ad9f8574bd del: 移除网元无用接口 2024-05-10 10:17:11 +08:00
TsMask
75faae6d7c Merge remote-tracking branch 'origin/main' into lichang 2024-05-09 19:26:20 +08:00
TsMask
c88c146a5e style: 网元版本页面多语言翻译 2024-05-09 19:25:14 +08:00
TsMask
c65cda1468 fix: 网元快速安装页面初始表单简化 2024-05-09 19:24:51 +08:00
TsMask
d8059341fe fix: 网元公共参数配置页面补充mme_ip 2024-05-09 19:22:03 +08:00
TsMask
ad86bee5f9 fix: 开站页面同步公共参数配置,优化页面样式 2024-05-09 19:18:21 +08:00
TsMask
f44cc44a1b style: 网元类型列表排序 2024-05-09 18:29:08 +08:00
TsMask
ad93588796 fix: 参数配置方法权限控制post,put,delete 2024-05-09 18:27:32 +08:00
TsMask
b5f6a5d24a feat: 网元公共参数配置数据名称调整 2024-05-09 15:54:48 +08:00
TsMask
fa4be253f7 fix: 系统配置重置操作多语言翻译 2024-05-08 16:09:39 +08:00
TsMask
2db0220c98 chore: 更新版本240508 2024-05-08 11:35:52 +08:00
TsMask
05fd678ce2 fix: SMF在线用户模拟数据变更/RAT Type文字换行 2024-05-08 11:35:33 +08:00
TsMask
165b28bab1 style: 开站页面样式调整 2024-05-08 11:05:35 +08:00
TsMask
dc67cdc262 fix: 看站系统配置新增管理员账号变更 2024-05-08 11:04:17 +08:00
TsMask
c97394a0ed fix: 看站完成确认提示 2024-05-08 11:03:03 +08:00
TsMask
6b9297d30e style: 看站开始页面样式调整 2024-05-08 11:02:30 +08:00
TsMask
ace7f26b53 style: 引导接口函数变更 2024-05-08 11:01:11 +08:00
TsMask
976f72f79a fix: 网元授权接口变更字段属性调整 2024-05-07 18:39:56 +08:00
TsMask
530e7fd43f feat: 系统引导重置操作 2024-05-07 16:28:10 +08:00
TsMask
b76fed7dcf feat: 系统引导使用接口变更 2024-05-07 16:27:45 +08:00
TsMask
60a26dd015 Merge remote-tracking branch 'origin/main' into lichang 2024-05-07 12:10:07 +08:00
TsMask
7bdfc257c1 chore: 依赖更新 2024-05-07 12:06:38 +08:00
TsMask
e3395b47cf feat: 更新xterm依赖库@xterm/xterm 2024-05-07 12:06:03 +08:00
TsMask
4c9b4de12f fix: 看板用户行为初始查询数据排序 2024-05-07 12:01:04 +08:00
lai
1cfe5e2777 主页饼图无感更新数据 2024-05-07 11:21:57 +08:00
TsMask
0cae26a1ee pref: 网元快速安装页面重构 2024-05-07 10:33:52 +08:00
TsMask
ed4d556384 pref: 网元授权页面的组件重构 2024-05-07 10:28:14 +08:00
TsMask
6d9d7362a4 fix: 网元公共配置参数文件页面 2024-05-07 09:59:42 +08:00
TsMask
5a40733f20 Merge remote-tracking branch 'origin/main' into lichang 2024-04-30 20:25:27 +08:00
TsMask
45ee884529 style: 查询网元信息接口函数命名 2024-04-30 20:08:55 +08:00
TsMask
7de3f7f05d fix: 网元软件上传窗口响应引用无效 2024-04-30 20:08:05 +08:00
TsMask
97bb4db1eb pref: 重构网元安装页面流程 2024-04-30 20:07:21 +08:00
TsMask
fc6dfe9894 style: 开站网元信息函数命名 2024-04-30 20:03:55 +08:00
TsMask
607660124a fix: 开站步骤hooks移除无用属性 2024-04-30 20:03:12 +08:00
TsMask
c50b3add95 feat: 网元安装授权页面 2024-04-30 20:02:24 +08:00
TsMask
2f7f0e9e20 feat: 网元安装配置页面 2024-04-30 20:00:56 +08:00
TsMask
6875ffd113 feat: 网元安装信息编辑页面 2024-04-30 19:59:45 +08:00
TsMask
44844bfa7f feat: 网元安装检查页面组件 2024-04-30 19:59:06 +08:00
TsMask
21ab066761 fix: 网元授权编辑弹出窗优化支持类型查询 2024-04-30 19:58:22 +08:00
TsMask
83bdf289fa feat: 网元信息免密直连授权操作 2024-04-30 19:56:17 +08:00
lai
d7aa0fc91a 更正-详情信息添加upState字段 2024-04-30 10:22:43 +08:00
lai
a6be5190ec 详情信息添加upState字段 2024-04-30 10:15:02 +08:00
TsMask
03cd06e835 style: 开站安装网元改为下一步 2024-04-29 18:18:11 +08:00
TsMask
2d7fe5a73b feat: 网元授权文件支持勾选指定网元类型替换 2024-04-29 18:17:45 +08:00
TsMask
dd5604c8b7 perf: 重构网元公共文件编辑参数 2024-04-29 18:16:39 +08:00
TsMask
7bf2672981 fix: 移除OAM编辑也慢慢 2024-04-29 18:15:26 +08:00
TsMask
6e616c63f0 fix: UDM签约数据sst-sd格式无sd也带- 2024-04-28 11:46:30 +08:00
TsMask
3ded481cce docs: 补充参数说明 2024-04-28 10:24:31 +08:00
TsMask
1baff582d8 feat: 网元授权编辑查看弹出窗口 2024-04-28 10:24:09 +08:00
TsMask
957868cc27 feat: 开站网元安装步骤进度的显示 2024-04-28 10:23:14 +08:00
TsMask
efb98ac577 feat: 补充授权文件按类型多上传 2024-04-28 10:22:14 +08:00
TsMask
ff228daae7 fix: UE SMF状态查询Up State可选 2024-04-26 19:21:44 +08:00
TsMask
c93e693517 fix: pcf新增编辑表单数据组装异常,上传超时30s 2024-04-26 17:13:07 +08:00
TsMask
55863c1c58 fix: pcf新增表单数据新增回显问题 2024-04-26 12:15:01 +08:00
lai
8a2d6c91ba 中英文翻译 2024-04-25 19:54:00 +08:00
lai
86a939f206 中英文翻译修正 2024-04-25 19:53:35 +08:00
TsMask
2b86f724b1 style: 系统菜单图标选择编号icon-001 2024-04-25 19:37:03 +08:00
TsMask
68fbc45b7c feat: 新增oam配置文件读写接口 2024-04-25 17:19:05 +08:00
TsMask
4629ef28ff fix: 接口变更 2024-04-25 17:18:46 +08:00
lai
e3a11b0ede 增加一个搜索字段 2024-04-25 17:17:02 +08:00
lai
3df9ee4f3a QOS=>Qos 2024-04-25 17:16:12 +08:00
lai
e64d558c27 批量新增 2024-04-25 17:10:22 +08:00
lai
5a2aa383fe 图标名字为icon001一直往下 2024-04-25 14:32:53 +08:00
lai
fe9f458465 pcf动态提示 2024-04-25 14:30:59 +08:00
TsMask
8e2e9aec67 style: 开站网元软件信息高度70vh 2024-04-25 14:22:09 +08:00
TsMask
ad48e8e2e1 feat: 网元软件安装页面 2024-04-25 14:21:35 +08:00
TsMask
6f8b1000ba feat: 开站网元公告参数配置表单填写 2024-04-25 14:21:08 +08:00
TsMask
f5549992c2 style: 网元公共参数表单名称修改 2024-04-25 14:19:29 +08:00
TsMask
19771ea6dc fix: 网元版本勾选升级关闭提示信息 2024-04-25 14:19:05 +08:00
TsMask
5965737384 feat: 网元软件包勾选删除记录 2024-04-25 14:17:59 +08:00
TsMask
b3cb40fd8c fix: 文件上传后关闭窗口复位上传结果 2024-04-25 14:16:41 +08:00
TsMask
0ab5141369 chore: 版本日期240425 2024-04-25 11:59:19 +08:00
TsMask
a23284da4c fix: 鉴权用户sst-sd输入限制1-3,sd补零 2024-04-25 11:56:41 +08:00
TsMask
1c8cc13436 style: PCF批量操作点击展开 2024-04-24 16:04:22 +08:00
TsMask
e6a439faea feat: 开站目录变更quick-start 2024-04-24 15:57:03 +08:00
TsMask
f8b1b1f6c3 Merge remote-tracking branch 'origin/main' into lichang 2024-04-24 15:40:48 +08:00
TsMask
3844e07258 feat: 开站目录变更quick-start 2024-04-24 15:34:07 +08:00
TsMask
1fab9b3d97 feat: 开站页面的部分修改 2024-04-24 15:30:38 +08:00
TsMask
1bfacbf2e0 feat: 开站系统信息页面逻辑对接 2024-04-24 15:29:51 +08:00
TsMask
c01f9f3830 feat: 开站网元信息页面逻辑对接 2024-04-24 15:29:29 +08:00
TsMask
28f9d365fd style: 网元新增编辑操作信息 2024-04-24 15:28:11 +08:00
TsMask
1085fa16aa feat: 初始访问时跳转开站引导页面 2024-04-24 15:27:23 +08:00
TsMask
e351960229 feat: 网元公共参数页面同步操作改弹出窗显示操作信息 2024-04-24 15:25:56 +08:00
TsMask
03caa354da feat: 开站开始页面获取接口授权 2024-04-24 15:24:45 +08:00
TsMask
34754ea0b6 feat: 开站引导开始完成接口 2024-04-24 15:24:00 +08:00
TsMask
86e1f07f08 feat: 开站结束页面标记完成 2024-04-24 15:22:27 +08:00
TsMask
2add7547d6 style: 删除console 2024-04-23 16:03:39 +08:00
TsMask
ecb89e9f26 feat: 用户管理和个人信息手机号输入改为国际电话输入 2024-04-23 14:56:35 +08:00
TsMask
7a9b38dc66 feat: 国际手机号输入框 2024-04-23 14:55:57 +08:00
TsMask
979b18092d fix: 个人信息手机号提示翻译出错 2024-04-23 14:53:37 +08:00
TsMask
ba43a647dd style: 查询年月日控件改为年月日时分秒 2024-04-22 17:17:29 +08:00
TsMask
3be14590c6 style: 告警alarmSeq改Sequence Number 2024-04-22 17:16:09 +08:00
TsMask
857f8c4313 feat: 系统首次使用引导页面 2024-04-19 19:54:07 +08:00
TsMask
c9c39d2d4a fix: 网元信息新增默认amf示例,安装默认y 2024-04-19 19:52:19 +08:00
TsMask
845084f77f feat: 系统首次使用引导标记 2024-04-19 19:51:01 +08:00
TsMask
becba4919e style: 多语言翻译 2024-04-19 17:22:37 +08:00
lai
b797055df9 KB转换成MB 2024-04-19 16:05:14 +08:00
TsMask
8101c852c8 style: 告警前传日志alarmSeq改Sequence 2024-04-19 14:07:35 +08:00
TsMask
9bbeb9fc9a fix: 锁屏reload延迟解除防止二次重启导致服务失败 2024-04-18 09:34:25 +08:00
TsMask
19a9bd3f5c fix: 锁屏reload不解除问题 2024-04-17 18:20:37 +08:00
TsMask
399bddc635 Merge remote-tracking branch 'origin/main' into lichang 2024-04-17 15:39:33 +08:00
TsMask
5a67a1a51c chore: 控制台版本号240418 2024-04-17 15:32:42 +08:00
TsMask
9a168d2ba0 fix: 登录页无网络隐藏多言选择 2024-04-17 15:32:07 +08:00
TsMask
e42a620aed feat: 快速开始建站页面 2024-04-17 15:07:02 +08:00
TsMask
eb902594b8 style: 网元菜单表格调整 2024-04-17 15:05:17 +08:00
TsMask
817fd97496 fix: 表字段列排序组件首位排序无效问题 2024-04-17 14:32:06 +08:00
TsMask
96aab47003 Merge remote-tracking branch 'origin/main' into lichang 2024-04-17 10:54:26 +08:00
TsMask
432666b1ab fix: 看板Hooks数据复位 2024-04-17 10:48:53 +08:00
TsMask
662583c73b fix: 拓扑组件监听窗口变化 2024-04-17 10:47:21 +08:00
TsMask
f73c21e6e6 fix: 页面卸载前判断是否断开ws 2024-04-17 10:45:45 +08:00
TsMask
17e72f1db1 fix: 岗位搜索标签positionCode显示不对 2024-04-17 09:47:45 +08:00
TsMask
55d4a36efb fix: 终端telnet支持调整窗口行宽 2024-04-16 19:49:44 +08:00
TsMask
d3794ba904 feat: 网元公共配置文件配置页面 2024-04-16 19:38:16 +08:00
TsMask
832f18e2ee style: 移动网元快速安装到ne目录 2024-04-16 19:37:37 +08:00
TsMask
cd2e282624 fix: 网元软件包新增去除防重复校验 2024-04-16 11:44:29 +08:00
TsMask
3db88f1d3a style: 网元授权信息去除斑马纹样式 2024-04-16 11:43:38 +08:00
TsMask
f291bb0907 feat: 软件版本勾选多升级 2024-04-16 11:42:45 +08:00
TsMask
69c32b2593 feat: 软件包多文件上传 2024-04-16 11:41:59 +08:00
TsMask
1a2939ab01 fix: 网元管理OMC禁止start stop,开启重启等待 2024-04-16 11:12:54 +08:00
TsMask
8bf4a2a9ce Merge remote-tracking branch 'origin/main' into lichang 2024-04-15 20:18:59 +08:00
TsMask
efd389f98a fix: 查询时间搜索值为时间戳 2024-04-15 20:17:39 +08:00
TsMask
f1125cc042 Merge remote-tracking branch 'origin/main' into lichang 2024-04-15 10:08:43 +08:00
TsMask
f1a0e200dc del: 移除表格斑马纹 2024-04-15 10:08:04 +08:00
TsMask
70c025f0f5 Merge remote-tracking branch 'origin/main' into lichang 2024-04-12 21:49:11 +08:00
TsMask
b9f0a3923d feat: 网元版本记录多勾选 2024-04-12 20:27:11 +08:00
TsMask
5c942c9ef7 style: 更新接口注释 2024-04-12 20:19:04 +08:00
TsMask
4294fe82c5 fix: 网元版本操作升级回退 2024-04-12 20:18:46 +08:00
TsMask
4e7fb90544 fix: 网元服务操作接口 2024-04-12 20:18:01 +08:00
TsMask
f050e500e9 fix: pcf页面添加分页支持勾选删除 2024-04-12 17:47:52 +08:00
TsMask
6bc10babba feat: 软件包上传组件 2024-04-12 17:43:26 +08:00
TsMask
4d36f9952a fix: 网元安装接口参数变更 2024-04-12 17:42:43 +08:00
lai
b03f4bb1d6 PCF策略中英文翻译 2024-04-12 10:35:53 +08:00
TsMask
4aaedf0f77 style: 网元安装授权检查接受提示 2024-04-12 10:23:48 +08:00
TsMask
c1ea851705 style: 网元信息修改弹出窗口改为异步组件 2024-04-12 10:23:12 +08:00
TsMask
47103249ef fix: 网元快速安装页面接口变更 2024-04-11 20:09:24 +08:00
TsMask
2642f18204 fix: 网元软件/版本/授权页面 2024-04-11 17:36:38 +08:00
TsMask
e2e22eabf5 style: 下拉触发改为点击显示 2024-04-11 17:36:07 +08:00
TsMask
325ecc8029 fix: 软件包表字段更新 2024-04-11 17:35:37 +08:00
TsMask
dc6f4560d5 feat: 快速安装页面 2024-04-11 17:35:19 +08:00
TsMask
3970797d5b feat: BA需要的mocn数据看板 2024-04-11 11:58:34 +08:00
TsMask
73776ed0f9 feat: kpi指标跳转指定网元类型 2024-04-11 11:54:48 +08:00
TsMask
aca842f8c2 feat: 参数配置access只读属性支持['read-only', 'read', 'ro'] 2024-04-11 11:53:17 +08:00
TsMask
612fb77861 fix: 网元管理修改网元类型属性绑定 2024-04-11 10:16:42 +08:00
TsMask
6ba695ceaf fix: 下拉展开取消悬浮,支持点击 2024-04-10 19:52:12 +08:00
TsMask
070f77d3b8 feat: 配置-网元管理添加Column settings 2024-04-10 19:38:14 +08:00
TsMask
15de63212f style: 网元管理-Province改为Region 2024-04-10 19:37:27 +08:00
lai
2202540763 更新用户策略提示信息 2024-04-10 19:00:56 +08:00
TsMask
c674b9b3f9 fix: KPI排除不可用网元类型的选择 2024-04-10 18:54:36 +08:00
TsMask
43d30e7bfa fix: 性能任务激活停止放出,编辑删除放到更多 2024-04-10 18:42:12 +08:00
TsMask
cd0633d519 fix: 性能任务激活停止放出,编辑删除放到更多 2024-04-10 18:40:56 +08:00
TsMask
b8bff2a159 style: 网元信息拓展信息显示横向排版 2024-04-10 16:50:56 +08:00
TsMask
638f890228 style: 移除多语言=暂无网元列表数据 2024-04-10 16:49:46 +08:00
TsMask
4460f7201c style: 网元配置类型可选择或输入 2024-04-10 16:47:40 +08:00
TsMask
d0bbfafedc fix: 系统日志的删除多语言提示 2024-04-09 19:41:12 +08:00
TsMask
16dc1c2e20 style: 中英文翻译父子联动->节点联动 2024-04-09 15:46:16 +08:00
TsMask
73ed5f5285 style: 网元新增初始参数 2024-04-09 15:39:04 +08:00
TsMask
50cb92a95b fix: 去除锁屏 2024-04-09 15:33:28 +08:00
TsMask
3888fd2bca fix: 软件管理下发激活回退关闭防重复提交判断 2024-04-09 15:25:34 +08:00
TsMask
4194d8cca6 fix: 用户昵称和手机号正则校验限长度 2024-04-08 15:03:53 +08:00
TsMask
ac84a0ca0a feat: 新增终端文本显示组件 2024-04-07 19:52:37 +08:00
lai
e6faa59f32 取消注释以及完善多选框处理逻辑 2024-04-02 19:15:06 +08:00
lai
65fab4de1b AMF404时处理表格数据 2024-04-02 18:28:09 +08:00
b044f01b1d update change log 2024-04-02 16:46:52 +08:00
TsMask
f4ed68fc44 del: 格式时间-到指定时区 2024-04-01 18:15:50 +08:00
TsMask
4de98923b7 fix: 格式时间-到指定时区 2024-04-01 18:07:10 +08:00
TsMask
1e0e3a89cf fix: 看板参数可能为null编译检查不过 2024-04-01 16:41:13 +08:00
TsMask
edabd9a104 chore: 更新依赖 2024-04-01 16:33:58 +08:00
TsMask
c11893566a fix: 黄金指标类型变化列显示异常 2024-04-01 16:31:27 +08:00
TsMask
c88bef959a style: 系统用户管理密码输入框提示信息 2024-04-01 16:01:32 +08:00
TsMask
ffd1b02bf9 fix: 终端-PCC信息,展示信息列宽可以调整 2024-04-01 16:00:19 +08:00
TsMask
075ad76d19 fix: 属性变更codemirror编辑器 2024-04-01 15:59:09 +08:00
TsMask
fbbd0496de ref: 重构codemirror编辑器组件 2024-04-01 15:58:29 +08:00
TsMask
00e8b7acbb feat: 网元安装步骤页面 2024-04-01 15:58:06 +08:00
TsMask
3d40e0856e chore: 更新版本日志 2024-03-30 20:30:27 +08:00
TsMask
32d7897818 fix: 终端-基站信息,展示信息列宽可以调整 2024-03-30 20:14:30 +08:00
TsMask
fa14f50e2d feat: 新增网元操作相关接口 2024-03-30 20:13:53 +08:00
TsMask
4eff5d48cd feat: 新增网元操作相关接口 2024-03-29 16:54:24 +08:00
TsMask
5380c4fb3f feat: 网元安装页面 2024-03-27 19:13:54 +08:00
TsMask
e10a82ff35 fix: 终端远程连接组件添加消息监听和发送句柄 2024-03-27 19:13:22 +08:00
TsMask
f85535672e fix: 软件安装包检查超时180s 2024-03-27 19:12:24 +08:00
lai
3c1c0620d1 修改必填提示语 2024-03-27 19:08:08 +08:00
lai
9531230fc0 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-03-27 10:08:13 +08:00
lai
151175fb3f 取消sd必填 2024-03-27 10:08:08 +08:00
TsMask
9faf02a1a6 feat: 新增网元操作相关接口 2024-03-26 21:01:39 +08:00
TsMask
c2e95f607b style: 终端-基站信息Radio Name列宽调整 2024-03-25 10:50:33 +08:00
TsMask
3a50300bf9 fix: UDM签约列名读取出错 SNSSAIs=>nssai 2024-03-22 11:02:09 +08:00
TsMask
188a108d87 style: 网元信息页面字段列宽度 2024-03-21 15:08:00 +08:00
TsMask
11e788cb8f fix: 看板流量图实例为空判断 2024-03-21 14:51:13 +08:00
TsMask
74195bc88b fix: 拓扑状态刷新定时器改调度器 2024-03-21 10:52:54 +08:00
TsMask
2a622aa1d6 fix: 拓扑状态刷新定时器改调度器 2024-03-21 10:10:46 +08:00
TsMask
d15b75e8fd fix: 看板ws黄金指标UPF 2024-03-21 10:10:02 +08:00
TsMask
4ae5f64da3 fix: 数据超过100弹出 2024-03-21 10:05:36 +08:00
TsMask
16ab366136 chore: 更新日志说明2.2403.1-20240319 2024-03-19 09:59:08 +08:00
TsMask
85abd7bca4 fix: 网元列表排序新增MOCNGW 2024-03-18 19:35:20 +08:00
lai
cd66ff927d 调整回数据库时间 2024-03-18 15:44:43 +08:00
TsMask
d242a87191 fix: 系统日志登录和接口操作记录查询时间带时分秒 2024-03-18 10:11:49 +08:00
TsMask
e1eaba0d68 feat: 网元安装软件版本接口 2024-03-18 10:11:12 +08:00
TsMask
5a7c161ed2 fix: 表格字段列排序对语言失效问题 2024-03-11 16:28:30 +08:00
TsMask
a0a4e65d5e fix: 文件上传切片跳过不合并数据块问题 2024-03-11 16:27:41 +08:00
TsMask
a6751424a5 fix: 网元快速安装页面变量缺失导致编译出错 2024-03-09 18:15:47 +08:00
TsMask
8abaff86e5 fix 开发服务端口改为33020 2024-03-09 18:10:59 +08:00
TsMask
e7442bf750 feat: 网元快速安装页面模块化 2024-03-09 18:10:09 +08:00
TsMask
dce068fcb1 feat: 网元主机表单校验和提示翻译 2024-03-09 18:08:40 +08:00
249d89af88 fix: port 3030 change to 33030 2024-03-08 15:31:45 +08:00
TsMask
0f3a689b04 chore: 更新版本号2.240307.1 2024-03-07 17:10:34 +08:00
TsMask
569eea08cb style: 网元信息页面样式 2024-03-07 17:09:06 +08:00
TsMask
3cb80bbd85 fix: 表格字段排序支持缓存变更状态 2024-03-07 17:04:09 +08:00
TsMask
e0d590724b feat: 表格字段排序状态缓存记录 2024-03-07 17:03:19 +08:00
TsMask
2cfab00e8f feat: 数据级缓存工具 2024-03-07 17:02:39 +08:00
TsMask
06170ba38f fix: 拖动框地脚null类型异常,不支持footer插槽 2024-03-07 17:00:20 +08:00
TsMask
7e28df210d fix: UE-PCF页面提示信息调整 2024-03-07 16:58:41 +08:00
TsMask
a69e8c89f8 fix: 缓存信息页面图表Echart语言数据设置 2024-03-07 10:17:46 +08:00
TsMask
f5544c66bd feat: 网元主机操作Hooks包 2024-03-06 19:57:32 +08:00
TsMask
7339f45193 style: 缓存信息页面标题翻译 2024-03-06 16:04:44 +08:00
TsMask
739025935a fix: 选择列表不进行可操作使用网元状态过滤 2024-03-06 14:46:40 +08:00
TsMask
eaa0e2d70c fix: 移除获取网元列表,取消status状态过滤 2024-03-06 14:46:05 +08:00
TsMask
2bffdaef3a style: 网元主机输入框placeholder 2024-03-06 14:43:00 +08:00
TsMask
79809b56e9 feat: 网元信息页面多语言翻译 2024-03-06 09:57:36 +08:00
TsMask
e5896c8513 fix: 网元信息编辑带主机配置页面 2024-03-05 16:18:45 +08:00
TsMask
104041eea5 fix: 网元主机操作翻译提示 2024-03-05 16:17:38 +08:00
TsMask
0b576ed446 feat: 新增CDR和UE页面,以及翻译 2024-03-05 16:16:50 +08:00
TsMask
c1174fc273 fix 网元管理表单主键id未定义重置失效 2024-03-04 20:44:44 +08:00
TsMask
90e1cd022b fix: 切片文件上传文件名去除非法字符和空格 2024-03-04 19:14:18 +08:00
TsMask
001e5e887b chore: 版本号2.2402.7 2024-03-04 17:59:27 +08:00
TsMask
8230dbf257 fix: 可操作使用网元状态过滤 2024-03-04 17:58:19 +08:00
TsMask
49fa7bdec8 fix: MML管理文件类型判断 2024-03-04 17:58:00 +08:00
TsMask
bd13b70a88 feat: 网元信息页面代码抽离组件,补充新增修改接口 2024-03-01 18:57:24 +08:00
TsMask
9b5b43c2bf feat: 常量值-网元列表,默认顺序 2024-03-01 18:55:48 +08:00
TsMask
dee4733ad0 fix: 删除无效变量loadDataLoading 2024-03-01 18:53:56 +08:00
TsMask
c07c1dfde3 fix: 缓存网元列表改换接口查询网元列表全部无分页 2024-03-01 18:53:10 +08:00
TsMask
181da5836b feat: 网元信息页面改表格勾选删除展开看信息 2024-03-01 18:02:42 +08:00
TsMask
7a787db45d feat: 新增网元信息页面 2024-02-29 20:56:41 +08:00
TsMask
49c98697e1 style: 终端页面样式调整标注释 2024-02-29 20:56:16 +08:00
TsMask
7dedbb927c fix: 修改j网元信息接口 2024-02-29 20:55:29 +08:00
lai
c2cc81fccf 修复性能门限提交失败异常 2024-02-29 10:22:42 +08:00
lai
92b2a4fb37 自定义指标界面 2024-02-29 10:21:26 +08:00
lai
b7d02ff669 去除对smdata的校验 2024-02-29 10:19:11 +08:00
lai
b4179b4c60 修复提交异常 2024-02-29 10:18:52 +08:00
TsMask
d7e08a1fff feat: ws工具新增连接状态函数 2024-02-28 17:37:09 +08:00
TsMask
d52fdc115c chore: 更新依赖版本 2024-02-28 17:36:16 +08:00
TsMask
e86ae12801 feat: 新增终端主机页面 2024-02-28 17:35:44 +08:00
TsMask
87b2fd965c feat: MML网元操作支持区分接口类型 2024-02-28 16:47:59 +08:00
TsMask
8397847e66 style: 备注修改 2024-02-28 10:27:38 +08:00
TsMask
84b0575ab4 feat: MML网元操作支持区分接口类型 2024-02-28 10:27:02 +08:00
TsMask
f19e5e48f3 fix: 帮助文档文件名称指定5G核心网网管操作手册.pdf 2024-02-27 10:24:38 +08:00
TsMask
073f17b61f fix: 网元主机页面查询框显示空白 2024-02-26 17:03:38 +08:00
TsMask
4cdfe6097d feat: 新增网元主机命令页面 2024-02-26 17:03:03 +08:00
TsMask
d55a4e3da7 fix: ws函数发送消息判断是否连接正常 2024-02-26 12:09:49 +08:00
TsMask
dd6c38c57e feat: 新增网元主机页面 2024-02-26 12:09:09 +08:00
TsMask
f705ba3a2e feat: 字典标签支持取默认数据项 2024-02-23 19:35:32 +08:00
lai
8721aa3a49 补充 2024-02-22 19:39:18 +08:00
lai
d2507e4706 UPF图细节调整 2024-02-22 19:35:16 +08:00
0937efc6e6 fix: 2.2402.6 changelog 2024-02-22 18:14:19 +08:00
57445cd48f Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-02-22 18:12:15 +08:00
a193655353 fix: changelog 2024-02-22 18:02:53 +08:00
TsMask
10b150f13c chore: 更新版本号2.2402.6 2024-02-22 17:52:15 +08:00
lai
c9fdd1785a 添加点击事件以及换图标 2024-02-22 15:45:23 +08:00
lai
a821d49eed 修改中英文 2024-02-22 15:10:01 +08:00
TsMask
28122bbfae fix: 看板用户行为CDR短信号码显示区间样式 2024-02-21 17:20:33 +08:00
TsMask
3b4b085499 fix: 看病栏目添加跳转事件 2024-02-21 17:15:39 +08:00
lai
51b3388cdc 基站中英文 2024-02-21 16:55:07 +08:00
lai
908d9341db 添加MME接口 2024-02-21 16:47:18 +08:00
TsMask
82a2ab158f style: 看板栏目多语言翻译调整 2024-02-21 15:01:46 +08:00
lai
ce893f32e0 签约用户拆分SM Data 2024-02-21 14:39:38 +08:00
lai
65696dee09 首页表格新增一列 2024-02-21 14:38:57 +08:00
TsMask
625b39d901 fix: Loading初始语言en_US 2024-02-19 14:49:11 +08:00
lai
4c20e639d8 Merge branch 'main' of http://192.168.2.166:3180/OMC/ems_frontend_vue3 2024-02-19 14:45:43 +08:00
TsMask
f28dfeb9b4 fix: 文档查看下载文件名称?显示问题 2024-02-19 10:50:37 +08:00
TsMask
a75c89c451 fix: MML命令输入框shift+回车进行换行,回车直接发送 2024-02-19 10:44:47 +08:00
TsMask
883816c540 fix: UDM鉴权ki和opc显示禁用输入 2024-02-19 10:42:29 +08:00
TsMask
24ba825365 fix: UDM用户数据超时时间180s 2024-02-19 10:41:46 +08:00
lai
accb02963c 告警日志中英文错误 2024-02-18 17:00:40 +08:00
TsMask
abe5595fa7 feat: 黄金指标实时数据非对应网元类型 2024-02-07 10:26:06 +08:00
424 changed files with 268461 additions and 27355 deletions

View File

@@ -1,17 +1,17 @@
# 历史路径-哈希带井号标识
VITE_HISTORY_HASH = false
VITE_HISTORY_HASH = true
# 历史路径-前缀URL如/h5
VITE_HISTORY_BASE_URL = "/"
# 应用名称
VITE_APP_NAME = "Core Network EMS"
VITE_APP_NAME = "Core Network OMC"
# 应用标识
VITE_APP_CODE = "CN EMS"
VITE_APP_CODE = "OMC"
# 应用版本
VITE_APP_VERSION = "2.2402.5"
VITE_APP_VERSION = "local-dev"
# 接口基础URL地址-不带/后缀
VITE_API_BASE_URL = "/omc-api"

View File

@@ -5,13 +5,13 @@ VITE_HISTORY_HASH = true
VITE_HISTORY_BASE_URL = "/"
# 应用名称
VITE_APP_NAME = "Core Network EMS"
VITE_APP_NAME = "Core Network OMC"
# 应用标识
VITE_APP_CODE = "CN EMS"
VITE_APP_CODE = "OMC"
# 应用版本
VITE_APP_VERSION = "2.240205.5"
VITE_APP_VERSION = "local-prod"
# 接口基础URL地址-不带/后缀
VITE_API_BASE_URL = "/omc-api"

View File

@@ -1,5 +1,258 @@
# 版本发布日志
## 2.2510.4-20251024
- 新增 同步语音仪表盘修改useNeInfoStore导入地址、补充接口导入、修改ims请求参数、修改响应码
- 新增 基站状态补充randId列
## 2.2510.3-20251018
- 新增 备份网元日志文件数据查看
- 修复 更新根网管节点处理逻辑支持无OMC情况
- 新增 网元配置选择传入neId查询相应版本配置数据
- 修复 网元配置备份修改表单校验规则,添加备注字段必填项
## 2.2510.2-20251011
- 新增 UDM-auth数据导出按钮权限定义
- 新增 SMSC-CDR添加结果原因说明
- 优化 移除CDR/UE/网元版本/授权列表显示ID列
- 修复 MML回车undefined问题关闭搜索匹配
## 2.2509.4-20250926
- 优化 UDM数据显示创建时间列
- 优化 中英文补充
- 新增 添加系统备份功能包括导入导出OMC的API和界面支持
- 新增 日志备份文件查看kpi文件记录
- 优化 根据搜索条件导出,去除最大记录限制
- 新增 添加活动告警自动刷新功能并优化代码结构
- 修复 奇安信浏览器时区格式错误
- 新增 添加网元配置快速PLMN修改框
- 新增 ue和ne模块权限按钮
- 新增 监控模块按钮权限
- 修复 UDM数据导出提示信息导出总数
- 新增 网元许可快速上传功能
- 新增 网元信息快速OAM功能
## 2.2508.4-20250829
- 新增 网元授权显示用户数/基站数
- 优化 网元当前版本显示是否有包存在
- 优化 cdr/ue导出操作后锁定按钮事件防重发
- 优化 网元可选静态可选项添加PGWC
- 优化 参数配置添加校验过滤长度~和-定义范围
- 修复 UPF流量统计数据同时获取刷新
- 修复 UPF流量统计字节数据格式化显示不一致问题
- 新增 指标Title管理页面功能
- 新增 增加多个导出操作的超时时间至180秒
## 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数据批量新增/批量删除命令调整
- 优化 AMF/MME对应的IMEI白名单模板去除index
## 2.2506.3-20250620
- 新增 UDM签约cnType新增可选1仅5G/2仅4G
- 新增 给AMF/MME对应的IMEI白名单添加批量导入和批量删除功能
- 新增 UDM voup/ims导入失败文件下载
## 2.2506.2-20250613
- 修复 数值控件属性maxlength拼写错误
- 修复 空格内容无法编辑,提示信息显示方向
- 优化 抓包文件目录列表显示文件大小
## 2.2506.1-20250607
- 优化 请求响应码常量,身份信息更换逻辑优化
- 修复 更新tcpdump路径从/tmp到/usr/local以符合新目录结构
## 2.2505.4-20250530
- 优化 网元参数配置修改tooltip位置为bottomLeft防止遮挡
- 修复 服务器时间格式化指定时区
- 优化 网元授权状态更新容量和更新时间局部变化
- 修复 网元信令跟踪支持选择轻量版UPF
- 修复 看板数据加载间隔从5秒调整为10秒
- 修复 看板UDM选择添加下拉菜单的弹出容器属性
## 2.2505.3-20250523
- 修复 修复同步操作加载提示未隐藏的问题
- 修复 告警确认相关提示Tip多语言显示
- 修复 网元授权许可证状态统一刷新功能
- 修复 活动告警启用历史同步按钮
- 修复 更新批量刷新信息容量仅UDM/AMF/MME
- 修复 仪表盘数据会话属累加
- 修复 网元主机信息编辑表单不验证免密类型, 主机列表的查询类型参数
## 2.2505.2-20250516
- 修复 编译类型检查错误
- 新增 网元授权上传变更确认延迟2s刷新授权状态
- 修复 英文修改基站名称为 RAN Node Name
- 新增 根据网元类型过滤导出备份数据可选的数据来源
- 新增 跟踪任务添加标题,编号后面加任务详情
## 2.2505.1-20250509
- 新增 更新日志文件导出列表,添加系统登录和操作日志
- 新增 网元授权添加用户容量列
- 修复 OAM读取结构错误
- 修复 仪表盘用户数据刷新时显示0闪烁
- 新增 看板含有网元显示区域
- 新增 根据网元显示特有菜单
- 修复 移除网络错误时的退出登录状态处理逻辑
## 2.2504.4-20250430
- 新增 PCF用户策略页面多语言翻译
- 新增 在上传切片文件到网元端时添加删除临时文件选项
- 修复 优化PCF用户策略页面及接口调整
- 修复 时间控件格式移除插件属性value-format="x"
- 新增 服务器时区UTC格式转换
- 新增 添加网络错误处理,退出登录状态
- 修复 替换获取服务器时间接口
- 移除 移除部分旧/apt/rest/直连接口
- 新增 网元服务操作局部状态刷新,补充提示信息
- 修复 时间格式常量定义及默认格式
- 新增 添加IMS SIP响应码原因显示
- 修复 看板流量图确保时间以HH:mm:ss格式显示
- 修复 看板用户活动乱序问题
- 修复 修复引导获取token存储问题
## 2.2503.4-20250331
- 更新 依赖项版本
- 修复 去除请求方法PATCH
- 重构 重构令牌管理逻辑,,统一状态码识别
- 更新 编译文件引用缺失
- 新增 UDMVolte用户特殊VoIP数据
- 优化 补充多语言翻译
- 修复 调度任务参数最大输入2000字符。日志查看id错误修复
- 重构 统一ftp操作功能备份文件查看下载删除功能
- 优化 neFile目录移动到ne
- 新增 终端目录部分调整添加udm-voip/volte功能页面
- 新增 修改OAM配置中的同步功能为重启功能
- 新增 添加告警信息导出功能,并优化历史告警页面
- 修复 统一国际时区格式
- 新增 更新锁屏密码Basd64编码处理无密码直接进入
- 新增 PCAP文件解析功能页面优化
- 修复 移除信令接口查询
- 新增 支持ws工具心跳ping消息
- 重构 重构信令跟踪功能
- 重构 重构网元跟踪任务功能页面
- 修复 看板用户数初始neId传入失败禁止选择当前项
- 新增 添加网元配置文件备份的FTP配置管理功能
- 修复 mml补充UDM特殊命令处理
- 新增 UE添加导入模板下载功能
- 修复 网元授权上传后点击ok检查状态
- 新增 添加密码过期功能支持,密码有效期时间天
## 2.2404.1-20240402
- 新增 网元安装流程相关页面与操作相关接口联调
- 新增 终端远程连接组件添加消息监听和发送句柄
- 优化 移除vue-codemirror库改为codemirror编辑输入支持 yaml语法
- 优化 终端-基站信息Radio Name列宽调整
- 更新 依赖版本
## 2.2403.1-20240319
- 新增 ws 工具连接状态函数
- 新增 终端主机配置页面
- 新增 终端主机命令页面
- 新增 网元信息关联主机页面,表格支持勾选删除记录并展开看网元资源 sn
- 新增 数据级缓存工具,支持表格字段排序状态缓存记录,表格字段排序支持缓存变更状态
- 新增 网元主机操作翻译提示,网元主机操作 Hooks 包
- 新增 IMS-CDR 和 AMF-UE 页面,以及翻译
- 新增 网元快速安装页面,网元安装步骤页面模块
- 新增 MML 网元操作 UPF 支持区分 telnet 发送端
- 新增 网元快速安装步骤选择安装包界面
- 新增 网元版本接口/网元软件包接口
- 新增 自定义指标界面
- 修复 帮助文档中英标题翻译文件名称指定《5G 核心网网管操作手册.pdf》
- 修复 ws 函数发送消息判断是否连接正常
- 修复 网元管理表单主键 id 重置失效导致新增操作为更新操作
- 修复 网元选择列表不进行可操作使用网元状态过滤
- 修复 移除获取网元列表,取消 status 状态过滤
- 修复 缓存信息页面标题翻译,图表 Echart 语言数据设置
- 修复 性能门限提交失败异常
- 修复 提交异常并去除对 smdata 的校验
- 优化 全局缓存网元列表,接口改换查询网元列表全部无分页
- 优化 网元默认可选常量值,删除无效变量声明
- 优化 UE-PCF 页面提示信息、网元信息页面样式、网元主机表单校验和提示翻译
- 优化 拖动框地脚 null 类型异常,不支持 footer 插槽
- 优化 切片文件上传文件名去除非法字符和空格,开发服务端口改为 33020
- 更新 包依赖版本
## 2.2402.6-20240222
- 修复 UDM 用户数据超时时间 180s
- 修复 UDM 鉴权 ki 和 opc 显示禁用输入
- 新增 MML 命令输入框 shift+回车进行换行,回车直接发送
- 修复 文档查看下载文件名称?显示问题
- 修复 看板栏目添加跳转事件
- 修复 看板用户行为字典数据翻译
- 优化 看板用户行为 CDR 短信号码显示区间样式
## 2.2402.5-20240205
- 修复 拓扑架构图调整缺失的节点非网元元素,看板拓扑非网元点击排除
@@ -17,14 +270,14 @@
- 优化 配置参数编辑页面记录类型多语言是否系统内置
- 优化 看板用户行为小屏幕换行显示字内容,格子高度百分比充满
- 优化 看板推送用户行为插入又弹出减少渲染数量
- 修复 看班告警统计判断修复超时30秒图渲染逻辑优化
- 修复 参数配置DNN List参数显示null问题
- 优化 ws消息队列延迟处理
- 新增 看板用户事件CDR短信类型短信结果200显示成功
- 优化 看板告警统计0数字不显示
- 优化 看板用户事件CDR指定类型MOC/MTSM
- 修复 看班告警统计判断修复,超时 30 秒,图渲染逻辑优化
- 修复 参数配置 DNN List 参数显示 null 问题
- 优化 ws 消息队列延迟处理
- 新增 看板用户事件 CDR 短信类型,短信结果 200 显示成功
- 优化 看板告警统计 0 数字不显示
- 优化 看板用户事件 CDR 指定类型 MOC/MTSM
- 新增 黄金指标项图表显示全部开关控制
- 新增 黄金指标项随机颜色图表实时5s动态显示
- 新增 黄金指标项随机颜色,图表实时 5s 动态显示
## 2.2401.4-20240130

View File

@@ -2,23 +2,9 @@
## 简介
- 系统布局使用 [@ant-design-vue/pro-layout](https://github.com/vueComponent/pro-components)
- 图标来源 [@ant-design/icons-vue](https://ant.design/components/icon)
- 菜单图标使用自定义 iconfont `font_8d5l8fzk5b87iudi.js`图标文件
## 测试环境
```text
Jenkins: http://192.168.2.166:3185/
Nginx: http://192.168.2.166:3188/#/index
后端暴露端口: http://192.168.2.166:3186 \ http://192.168.2.166:3187
新网管192.168.5.13
旧网管192.168.5.14
登录账户manager/manager
```
## 程序命令
项目目录下 `.env.[环境]` 文件对应环境的一些配置,启动前请检查文件内是否配置正确。
@@ -60,23 +46,5 @@ export NODE_OPTIONS=--max-old-space-size=50000
```text
https://192.168.5.23/
admin
admin
```
## k8s
master 192.168.5.27 agtuser/admin123
https://192.168.5.27:31325/#/workloads?namespace=default
```text
eyJhbGciOiJSUzI1NiIsImtpZCI6ImZFVUhIb1puLW04M1dfSUYyRU8zWlZueXBpNUh4T0hTRVlzU19jNlVGQ0kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLW44ZzRtIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI2M2NmYjAyNS01ZmQ0LTQ0ZTgtOTdiNC0yYWRiYWIxNzc5M2MiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.R3GRygFOjngTj-mEMBAHDeBxm3lpsXZYvC6cdTxByONtLrcMXDebwNVeKtAZ1V9qh2OrjD8n9CIygjULGPdfV6S520vjMh7Oa2q68nOyW49DNWQyYD8xLo-dQ6sX07fI7X_I3H35YUWW80jJAXjJawqIGXBSMG5intlo4tLTUSXmjCfhoQvFsgeRWu0j76pDvhMAvLPcgEXfTCi9tyL3yqJBIKONcKwmMlJeaKSR3pQk3KiibqrBO0MZclRozpke6J0ulfzTemwDDyCqBZmLsRPZ2yDd5hVBIJ9bHEcK0a25NmSFFzmd8XWQPZwg3Y4IbbY-8UhByGq0p9xS-7pGCQ
```
```ssh
# https://blog.csdn.net/m0_54706625/article/details/129721121
sudo chmod 700 -/.ssh/
sudo chmod 700 /home/mask/.ssh #这个尤其容易忽视掉,我就是从这个坑里爬出来。有木有很高兴呀!
sudo chmod 600 ~/.ssh/authorized_keys
admin / admin
```

View File

@@ -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>

View File

@@ -1,7 +1,7 @@
{
"name": "ems_frontend_vue3",
"type": "module",
"description": "核心网管理平台",
"description": "Core Network EMS",
"author": "TsMask",
"engines": {
"node": ">=18.0.0"
@@ -12,42 +12,51 @@
"preview": "vite preview"
},
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
"@antv/g6": "~4.8.24",
"@codemirror/lang-javascript": "^6.2.1",
"@codemirror/merge": "^6.5.0",
"@codemirror/theme-one-dark": "^6.1.2",
"@tato30/vue-pdf": "^1.9.3",
"@vueuse/core": "^10.7.0",
"ant-design-vue": "^3.2.20",
"antdv-pro-layout": "^3.2.6",
"codemirror": "^6.0.1",
"dayjs": "^1.11.10",
"echarts": "~5.4.2",
"file-saver": "^2.0.5",
"js-base64": "^3.7.5",
"@ant-design/icons-vue": "7.0.1",
"@antv/g6": "4.8.25",
"@codemirror/lang-javascript": "6.2.3",
"@codemirror/lang-yaml": "6.1.2",
"@codemirror/merge": "6.10.0",
"@codemirror/theme-one-dark": "6.1.2",
"@tato30/vue-pdf": "1.11.3",
"@vueuse/core": "13.0.0",
"@xterm/addon-fit": "0.10.0",
"@xterm/xterm": "5.5.0",
"ant-design-vue": "4.2.6",
"antdv-pro-layout": "4.2.0",
"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": "^2.1.7",
"vue": "~3.3.13",
"vue-codemirror": "^6.1.1",
"vue-i18n": "~9.9.0",
"vue-router": "^4.2.5",
"vue3-smooth-dnd": "^0.0.6",
"xlsx": "^0.18.5"
"p-queue": "8.0.1",
"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"
},
"devDependencies": {
"@types/file-saver": "^2.0.7",
"@types/js-cookie": "^3.0.6",
"@types/crypto-js": "4.2.2",
"@types/file-saver": "2.0.7",
"@types/js-cookie": "3.0.6",
"@types/node": "^18.0.0",
"@types/nprogress": "^0.2.3",
"@vitejs/plugin-vue": "^5.0.2",
"less": "^4.2.0",
"typescript": "^5.3.3",
"unplugin-vue-components": "^0.26.0",
"vite": "^5.0.10",
"vite-plugin-compression": "^0.5.1",
"vue-tsc": "^1.8.27"
"@types/nprogress": "0.2.3",
"@vitejs/plugin-vue": "5.2.3",
"less": "4.2.2",
"typescript": "5.8.2",
"unplugin-vue-components": "0.28.0",
"vite": "6.3.3",
"vite-plugin-compression": "0.5.1",
"vue-tsc": "2.2.8"
}
}

BIN
public/background/dark.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

View File

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@@ -10,11 +10,19 @@
*
*/
(function () {
// host = ip:port
const host = '192.168.8.100:3030';
// baseUrl = protocol://ip:port
// baseUrl = 'http://192.168.8.100:33030';
const protocol = window.location.protocol
let wsprotocol = "ws:"
const hostname = window.location.hostname
let host = `${hostname}:33080`;
if (protocol === 'https:') {
host = `${hostname}:33443`;
wsprotocol = "wss:"
}
// Service Address
sessionStorage.setItem('baseUrl', `http://${host}`);
sessionStorage.setItem('baseUrl', `${protocol}//${host}`);
// websocket Address
sessionStorage.setItem('wsUrl', `ws://${host}`);
sessionStorage.setItem('wsUrl', `${wsprotocol}//${host}`);
})();

View File

@@ -155,7 +155,7 @@
}
</style>`;
const lang = localStorage.getItem('cache:local:i18n');
const lang = localStorage.getItem('cache:local:i18n') || 'en_US';
// 根据浏览器选择语言
// if (!lang) {
// let preferredLanguage = navigator.language;

BIN
public/nbStateImput/en.xlsx Normal file

Binary file not shown.

BIN
public/nbStateImput/zh.xlsx Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,2 @@
imsi,msisdn,sess_rules,pcc_rules,hdr_enrich,rfsp,sar,qos_audio,qos_video
001012082101039,1234,internet|ims_sig,internet|ims_sig,321321,255,321312,32131,32131

View File

@@ -0,0 +1,2 @@
001011100001157,1234567890ABCDEF1234567890ABCDEF,0,8000,11111111111111111111111111111111
001011100001158,1234567890ABCDEF1234567890ABCDEF,0,8000,11111111111111111111111111111111

View File

@@ -0,0 +1,2 @@
001011100001157,62357000583,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&internet&ims,1,64,24,65,def_eps,1,010200000000,-
001011100001158,62357000585,def_ambr,def_nssai,def_arfb,def_sar,0,3,def_snssai,1-000001&internet&ims,1,64,24,65,def_eps,1,010200000000,-

View File

@@ -0,0 +1,3 @@
#username,password
62357000580,123456
62357000581,123456

View File

@@ -0,0 +1,4 @@
#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
62357000581,62357000581,0,ims.mnc000.mcc460.3gppnetwork.org

28
public/svg/base4G.svg Normal file
View File

@@ -0,0 +1,28 @@
<svg width="1024" height="1024" xmlns="http://www.w3.org/2000/svg">
<!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
<g>
<title>background</title>
<rect fill="none" id="canvas_background" height="1026" width="1026" y="-1" x="-1"/>
<g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
<rect fill="url(#gridpattern)" stroke-width="0" y="1" x="1" height="768" width="1024"/>
</g>
</g>
<g>
<title>Layer 1</title>
<g stroke="null" id="svg_15">
<path stroke="null" id="svg_4" fill="#B5D6FB" d="m512.094844,961.632039c-1.327621,0 -2.560412,-0.405439 -3.793202,-1.114958l-405.588164,-251.575028c-2.275921,-1.419037 -3.698372,-4.054392 -3.698372,-6.892467l0,-90.007504c0,-2.838074 1.422451,-5.473429 3.698372,-6.892467l405.588164,-255.426701c1.137961,-0.709519 2.465582,-1.114958 3.793202,-1.114958s2.655242,0.405439 3.793202,1.114958l405.493334,255.426701c2.275921,1.419037 3.698372,4.054392 3.698372,6.892467l0,90.007504c0,2.838074 -1.422451,5.473429 -3.698372,6.892467l-405.588164,251.575028c-1.137961,0.709519 -2.465582,1.114958 -3.698372,1.114958z"/>
<path stroke="null" id="svg_5" fill="#0276F7" d="m512.094844,356.615382l405.398504,255.426701l0,90.007504l-66.096551,40.94936l-339.301952,210.625668l-339.491613,-210.625668l-66.096551,-40.94936l0,-90.007504l405.588164,-255.426701m0,-16.014849c-2.655242,0 -5.215653,0.709519 -7.586405,2.229916l-405.588164,255.426701c-4.551843,2.838074 -7.396745,8.108784 -7.396745,13.784933l0,90.007504c0,5.676149 2.844902,10.946859 7.491575,13.886293l66.096551,41.05072l339.491613,210.625668c2.275921,1.419037 4.931163,2.128556 7.491575,2.128556s5.215653,-0.709519 7.491575,-2.128556l339.301952,-210.625668l66.096551,-40.94936c4.646673,-2.838074 7.491575,-8.108784 7.491575,-13.886293l0,-90.007504c0,-5.676149 -2.844902,-10.946859 -7.396745,-13.784933l-405.398504,-255.426701c-2.370751,-1.520397 -5.025993,-2.331275 -7.586405,-2.331275z"/>
<path stroke="null" id="svg_6" fill="#FFFFFF" d="m106.50668,612.042083l405.493334,253.298145l405.493334,-253.298145l-405.398504,-255.426701l-405.588164,255.426701z"/>
<path stroke="null" id="svg_7" fill="#D4E4FC" d="m501.473877,64.192353l-254.9032,498.487506l263.343075,161.162085l266.662127,-162.074323l-275.102002,-497.575268z"/>
<path stroke="null" id="svg_8" fill="#0276F7" d="m229.975417,602.311542c-1.232791,0 -2.465582,-0.304079 -3.698372,-1.013598c-3.603542,-2.128556 -4.931163,-6.993826 -2.844902,-10.845499l279.653845,-532.13896c1.327621,-2.533995 3.793202,-4.054392 6.543274,-4.054392c2.655242,0 5.120823,1.520397 6.543274,4.054392l284.395348,532.13896c2.086261,3.851672 0.75864,8.716943 -2.750072,10.946859c-3.603542,2.128556 -8.155385,0.810878 -10.241646,-2.939434l-277.852074,-519.874424l-273.205401,519.671704c-1.422451,2.635355 -3.982862,4.054392 -6.543274,4.054392z"/>
<path stroke="null" id="svg_9" fill="#0276F7" d="m509.913752,755.567562c-4.172523,0 -7.491575,-3.547593 -7.491575,-8.007424l0,-666.744777c0,-4.459831 3.319052,-8.007424 7.491575,-8.007424s7.491575,3.547593 7.491575,8.007424l0,666.846137c0,4.358471 -3.413882,7.906065 -7.491575,7.906065z"/>
<path stroke="null" id="svg_10" fill="#0276F7" d="m509.913752,731.849369c-1.327621,0 -2.560412,-0.405439 -3.698372,-1.013598l-263.343075,-161.162085c-3.603542,-2.229916 -4.836333,-7.095186 -2.750072,-10.946859c2.086261,-3.851672 6.638104,-5.16935 10.241646,-2.939434l259.549873,158.83081l262.963755,-159.844408c3.603542,-2.229916 8.155385,-0.810878 10.241646,3.040794c2.086261,3.851672 0.75864,8.716943 -2.844902,10.946859l-266.662127,162.074323c-1.137961,0.709519 -2.465582,1.013598 -3.698372,1.013598z"/>
<path stroke="null" id="svg_11" fill="#0276F7" d="m509.913752,579.708306c-1.327621,0 -2.560412,-0.405439 -3.793202,-1.114958l-201.988026,-125.686154c-3.603542,-2.229916 -4.741503,-7.095186 -2.750072,-10.946859c2.086261,-3.851672 6.638104,-5.16935 10.241646,-2.838074l198.289654,123.354879l201.798366,-122.138561c3.603542,-2.229916 8.155385,-0.810878 10.241646,3.040794c2.086261,3.851672 0.75864,8.716943 -2.844902,10.845499l-205.496739,124.469837c-1.137961,0.709519 -2.465582,1.013598 -3.698372,1.013598zm-2.465582,-157.513132c-1.232791,0 -2.370751,-0.304079 -3.508712,-0.912238l-140.917468,-79.668804c-3.698372,-2.128556 -5.025993,-6.892467 -3.129392,-10.845499c1.896601,-3.953032 6.448444,-5.37207 10.146816,-3.344873l137.503586,77.742968l143.00373,-79.871524c3.698372,-2.027196 8.155385,-0.506799 10.146816,3.344873c1.896601,3.953032 0.47415,8.716943 -3.129392,10.845499l-146.512442,81.79736c-1.232791,0.608159 -2.370751,0.912238 -3.603542,0.912238zm2.465582,-148.49211c-1.232791,0 -2.465582,-0.304079 -3.508712,-0.912238l-82.312492,-47.436387c-3.603542,-2.128556 -5.025993,-6.993826 -3.034562,-10.845499c1.991431,-3.953032 6.543274,-5.27071 10.146816,-3.243514l78.708949,45.409191l78.329629,-47.537747c3.603542,-2.229916 8.155385,-0.810878 10.241646,3.040794c2.086261,3.851672 0.75864,8.716943 -2.844902,10.946859l-81.933171,49.666303c-1.232791,0.608159 -2.560412,0.912238 -3.793202,0.912238z"/>
<path stroke="null" id="svg_12" fill="#0276F7" d="m509.913752,579.708306l-0.28449,0l-263.248245,-9.021022c-4.172523,-0.10136 -7.396745,-3.851672 -7.207085,-8.210144c0.09483,-4.459831 4.077693,-7.703345 7.681235,-7.703345l263.343075,9.021022c4.172523,0.10136 7.396745,3.851672 7.207085,8.210144c-0.18966,4.257112 -3.508712,7.703345 -7.491575,7.703345zm0,152.141063c-1.612111,0 -3.224222,-0.608159 -4.646673,-1.723117c-3.224222,-2.736715 -3.793202,-7.804705 -1.232791,-11.250938l205.496739,-276.610899c2.560412,-3.446233 7.301915,-4.054392 10.526137,-1.317677c3.224222,2.736715 3.793202,7.804705 1.232791,11.250938l-205.496739,276.610899c-1.517281,2.027196 -3.698372,3.040794 -5.879464,3.040794z"/>
<path stroke="null" id="svg_13" fill="#0276F7" d="m509.913752,579.708306c-1.422451,0 -2.750072,-0.405439 -4.077693,-1.216318c-3.508712,-2.432635 -4.457013,-7.297906 -2.275921,-11.048218l144.14169,-239.310492c2.275921,-3.750313 6.922594,-4.763911 10.336476,-2.432635c3.508712,2.432635 4.457013,7.297906 2.275921,11.048218l-144.14169,239.310492c-1.422451,2.331275 -3.793202,3.648953 -6.258784,3.648953zm-2.465582,-157.513132c-1.043131,0 -2.086261,-0.20272 -3.129392,-0.709519c-3.793202,-1.824476 -5.405313,-6.588387 -3.698372,-10.642779l84.398753,-198.158413c1.706941,-4.054392 6.069124,-5.777509 9.957156,-3.953032c3.793202,1.824476 5.405313,6.588387 3.698372,10.642779l-84.303923,198.158413c-1.327621,2.939434 -4.077693,4.662551 -6.922594,4.662551z"/>
<path stroke="null" id="svg_14" fill="#0276F7" d="m591.846924,375.062866c-2.750072,0 -5.405313,-1.621757 -6.732934,-4.459831c-1.801771,-3.953032 -0.28449,-8.716943 3.413882,-10.642779l129.253371,-67.302908l-365.759539,-178.089172l20.862613,208.091673l133.994874,-64.262114c3.698372,-1.824476 8.155385,0 9.862326,4.054392c1.706941,4.054392 0,8.716943 -3.793202,10.541419l-143.38305,68.823305c-2.181091,1.013598 -4.646673,0.912238 -6.827764,-0.405439c-2.086261,-1.317677 -3.413882,-3.547593 -3.698372,-6.081588l-23.328195,-233.026185c-0.28449,-2.838074 0.853471,-5.676149 3.034562,-7.297906c2.181091,-1.621757 5.025993,-2.027196 7.491575,-0.810878l392.217126,190.961867c2.655242,1.317677 4.362183,4.054392 4.362183,7.196546c0,3.142154 -1.612111,5.980228 -4.172523,7.297906l-143.57271,74.600814c-1.043131,0.608159 -2.181091,0.810878 -3.224222,0.810878zm-283.921198,78.959286c-3.603542,0 -6.827764,-2.838074 -7.396745,-6.791107c-0.56898,-4.358471 2.181091,-8.412864 6.258784,-9.122382l199.617275,-31.826978c4.077693,-0.608159 7.870895,2.331275 8.534705,6.689747c0.56898,4.358471 -2.181091,8.412864 -6.258784,9.122382l-199.617275,31.826978c-0.47415,0.10136 -0.853471,0.10136 -1.137961,0.10136z"/>
</g>
<text stroke="null" font-style="italic" transform="matrix(6.577099502228161,0,0,7.449448263868419,-1073.2057632249744,-908.8606073938396) " xml:space="preserve" text-anchor="start" font-family="Arvo, sans-serif" font-size="24" id="svg_16" y="177.898525" x="178.621382" stroke-width="0" fill="#B5D6FB">4G</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

28
public/svg/base5G.svg Normal file
View File

@@ -0,0 +1,28 @@
<svg width="1024" height="1024" xmlns="http://www.w3.org/2000/svg">
<!-- Created with Method Draw - http://github.com/duopixel/Method-Draw/ -->
<g>
<title>background</title>
<rect fill="none" id="canvas_background" height="1026" width="1026" y="-1" x="-1"/>
<g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" id="canvasGrid">
<rect fill="url(#gridpattern)" stroke-width="0" y="1" x="1" height="768" width="1024"/>
</g>
</g>
<g>
<title>Layer 1</title>
<g stroke="null" id="svg_15">
<path stroke="null" id="svg_4" fill="#B5D6FB" d="m512.094844,961.632039c-1.327621,0 -2.560412,-0.405439 -3.793202,-1.114958l-405.588164,-251.575028c-2.275921,-1.419037 -3.698372,-4.054392 -3.698372,-6.892467l0,-90.007504c0,-2.838074 1.422451,-5.473429 3.698372,-6.892467l405.588164,-255.426701c1.137961,-0.709519 2.465582,-1.114958 3.793202,-1.114958s2.655242,0.405439 3.793202,1.114958l405.493334,255.426701c2.275921,1.419037 3.698372,4.054392 3.698372,6.892467l0,90.007504c0,2.838074 -1.422451,5.473429 -3.698372,6.892467l-405.588164,251.575028c-1.137961,0.709519 -2.465582,1.114958 -3.698372,1.114958z"/>
<path stroke="null" id="svg_5" fill="#0276F7" d="m512.094844,356.615382l405.398504,255.426701l0,90.007504l-66.096551,40.94936l-339.301952,210.625668l-339.491613,-210.625668l-66.096551,-40.94936l0,-90.007504l405.588164,-255.426701m0,-16.014849c-2.655242,0 -5.215653,0.709519 -7.586405,2.229916l-405.588164,255.426701c-4.551843,2.838074 -7.396745,8.108784 -7.396745,13.784933l0,90.007504c0,5.676149 2.844902,10.946859 7.491575,13.886293l66.096551,41.05072l339.491613,210.625668c2.275921,1.419037 4.931163,2.128556 7.491575,2.128556s5.215653,-0.709519 7.491575,-2.128556l339.301952,-210.625668l66.096551,-40.94936c4.646673,-2.838074 7.491575,-8.108784 7.491575,-13.886293l0,-90.007504c0,-5.676149 -2.844902,-10.946859 -7.396745,-13.784933l-405.398504,-255.426701c-2.370751,-1.520397 -5.025993,-2.331275 -7.586405,-2.331275z"/>
<path stroke="null" id="svg_6" fill="#FFFFFF" d="m106.50668,612.042083l405.493334,253.298145l405.493334,-253.298145l-405.398504,-255.426701l-405.588164,255.426701z"/>
<path stroke="null" id="svg_7" fill="#D4E4FC" d="m501.473877,64.192353l-254.9032,498.487506l263.343075,161.162085l266.662127,-162.074323l-275.102002,-497.575268z"/>
<path stroke="null" id="svg_8" fill="#0276F7" d="m229.975417,602.311542c-1.232791,0 -2.465582,-0.304079 -3.698372,-1.013598c-3.603542,-2.128556 -4.931163,-6.993826 -2.844902,-10.845499l279.653845,-532.13896c1.327621,-2.533995 3.793202,-4.054392 6.543274,-4.054392c2.655242,0 5.120823,1.520397 6.543274,4.054392l284.395348,532.13896c2.086261,3.851672 0.75864,8.716943 -2.750072,10.946859c-3.603542,2.128556 -8.155385,0.810878 -10.241646,-2.939434l-277.852074,-519.874424l-273.205401,519.671704c-1.422451,2.635355 -3.982862,4.054392 -6.543274,4.054392z"/>
<path stroke="null" id="svg_9" fill="#0276F7" d="m509.913752,755.567562c-4.172523,0 -7.491575,-3.547593 -7.491575,-8.007424l0,-666.744777c0,-4.459831 3.319052,-8.007424 7.491575,-8.007424s7.491575,3.547593 7.491575,8.007424l0,666.846137c0,4.358471 -3.413882,7.906065 -7.491575,7.906065z"/>
<path stroke="null" id="svg_10" fill="#0276F7" d="m509.913752,731.849369c-1.327621,0 -2.560412,-0.405439 -3.698372,-1.013598l-263.343075,-161.162085c-3.603542,-2.229916 -4.836333,-7.095186 -2.750072,-10.946859c2.086261,-3.851672 6.638104,-5.16935 10.241646,-2.939434l259.549873,158.83081l262.963755,-159.844408c3.603542,-2.229916 8.155385,-0.810878 10.241646,3.040794c2.086261,3.851672 0.75864,8.716943 -2.844902,10.946859l-266.662127,162.074323c-1.137961,0.709519 -2.465582,1.013598 -3.698372,1.013598z"/>
<path stroke="null" id="svg_11" fill="#0276F7" d="m509.913752,579.708306c-1.327621,0 -2.560412,-0.405439 -3.793202,-1.114958l-201.988026,-125.686154c-3.603542,-2.229916 -4.741503,-7.095186 -2.750072,-10.946859c2.086261,-3.851672 6.638104,-5.16935 10.241646,-2.838074l198.289654,123.354879l201.798366,-122.138561c3.603542,-2.229916 8.155385,-0.810878 10.241646,3.040794c2.086261,3.851672 0.75864,8.716943 -2.844902,10.845499l-205.496739,124.469837c-1.137961,0.709519 -2.465582,1.013598 -3.698372,1.013598zm-2.465582,-157.513132c-1.232791,0 -2.370751,-0.304079 -3.508712,-0.912238l-140.917468,-79.668804c-3.698372,-2.128556 -5.025993,-6.892467 -3.129392,-10.845499c1.896601,-3.953032 6.448444,-5.37207 10.146816,-3.344873l137.503586,77.742968l143.00373,-79.871524c3.698372,-2.027196 8.155385,-0.506799 10.146816,3.344873c1.896601,3.953032 0.47415,8.716943 -3.129392,10.845499l-146.512442,81.79736c-1.232791,0.608159 -2.370751,0.912238 -3.603542,0.912238zm2.465582,-148.49211c-1.232791,0 -2.465582,-0.304079 -3.508712,-0.912238l-82.312492,-47.436387c-3.603542,-2.128556 -5.025993,-6.993826 -3.034562,-10.845499c1.991431,-3.953032 6.543274,-5.27071 10.146816,-3.243514l78.708949,45.409191l78.329629,-47.537747c3.603542,-2.229916 8.155385,-0.810878 10.241646,3.040794c2.086261,3.851672 0.75864,8.716943 -2.844902,10.946859l-81.933171,49.666303c-1.232791,0.608159 -2.560412,0.912238 -3.793202,0.912238z"/>
<path stroke="null" id="svg_12" fill="#0276F7" d="m509.913752,579.708306l-0.28449,0l-263.248245,-9.021022c-4.172523,-0.10136 -7.396745,-3.851672 -7.207085,-8.210144c0.09483,-4.459831 4.077693,-7.703345 7.681235,-7.703345l263.343075,9.021022c4.172523,0.10136 7.396745,3.851672 7.207085,8.210144c-0.18966,4.257112 -3.508712,7.703345 -7.491575,7.703345zm0,152.141063c-1.612111,0 -3.224222,-0.608159 -4.646673,-1.723117c-3.224222,-2.736715 -3.793202,-7.804705 -1.232791,-11.250938l205.496739,-276.610899c2.560412,-3.446233 7.301915,-4.054392 10.526137,-1.317677c3.224222,2.736715 3.793202,7.804705 1.232791,11.250938l-205.496739,276.610899c-1.517281,2.027196 -3.698372,3.040794 -5.879464,3.040794z"/>
<path stroke="null" id="svg_13" fill="#0276F7" d="m509.913752,579.708306c-1.422451,0 -2.750072,-0.405439 -4.077693,-1.216318c-3.508712,-2.432635 -4.457013,-7.297906 -2.275921,-11.048218l144.14169,-239.310492c2.275921,-3.750313 6.922594,-4.763911 10.336476,-2.432635c3.508712,2.432635 4.457013,7.297906 2.275921,11.048218l-144.14169,239.310492c-1.422451,2.331275 -3.793202,3.648953 -6.258784,3.648953zm-2.465582,-157.513132c-1.043131,0 -2.086261,-0.20272 -3.129392,-0.709519c-3.793202,-1.824476 -5.405313,-6.588387 -3.698372,-10.642779l84.398753,-198.158413c1.706941,-4.054392 6.069124,-5.777509 9.957156,-3.953032c3.793202,1.824476 5.405313,6.588387 3.698372,10.642779l-84.303923,198.158413c-1.327621,2.939434 -4.077693,4.662551 -6.922594,4.662551z"/>
<path stroke="null" id="svg_14" fill="#0276F7" d="m591.846924,375.062866c-2.750072,0 -5.405313,-1.621757 -6.732934,-4.459831c-1.801771,-3.953032 -0.28449,-8.716943 3.413882,-10.642779l129.253371,-67.302908l-365.759539,-178.089172l20.862613,208.091673l133.994874,-64.262114c3.698372,-1.824476 8.155385,0 9.862326,4.054392c1.706941,4.054392 0,8.716943 -3.793202,10.541419l-143.38305,68.823305c-2.181091,1.013598 -4.646673,0.912238 -6.827764,-0.405439c-2.086261,-1.317677 -3.413882,-3.547593 -3.698372,-6.081588l-23.328195,-233.026185c-0.28449,-2.838074 0.853471,-5.676149 3.034562,-7.297906c2.181091,-1.621757 5.025993,-2.027196 7.491575,-0.810878l392.217126,190.961867c2.655242,1.317677 4.362183,4.054392 4.362183,7.196546c0,3.142154 -1.612111,5.980228 -4.172523,7.297906l-143.57271,74.600814c-1.043131,0.608159 -2.181091,0.810878 -3.224222,0.810878zm-283.921198,78.959286c-3.603542,0 -6.827764,-2.838074 -7.396745,-6.791107c-0.56898,-4.358471 2.181091,-8.412864 6.258784,-9.122382l199.617275,-31.826978c4.077693,-0.608159 7.870895,2.331275 8.534705,6.689747c0.56898,4.358471 -2.181091,8.412864 -6.258784,9.122382l-199.617275,31.826978c-0.47415,0.10136 -0.853471,0.10136 -1.137961,0.10136z"/>
</g>
<text stroke="null" font-style="italic" transform="matrix(6.577099502228161,0,0,7.449448263868419,-1073.2057632249744,-908.8606073938396) " xml:space="preserve" text-anchor="start" font-family="Arvo, sans-serif" font-size="24" id="svg_16" y="177.898525" x="178.621382" stroke-width="0" fill="#D4E4FC">5G</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

178925
public/wiregasm/wiregasm.data Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,166 @@
/**
* Wraps the WiregasmLib lib functionality and manages a single DissectSession
*/
class Wiregasm {
constructor() {
this.initialized = false;
this.session = null;
}
/**
* Initialize the wrapper and the Wiregasm module
*
* @param loader Loader function for the Emscripten module
* @param overrides Overrides
*/
async init(loader, overrides = {}, beforeInit = null) {
if (this.initialized) {
return;
}
this.lib = await loader(overrides);
this.uploadDir = this.lib.getUploadDirectory();
this.pluginsDir = this.lib.getPluginsDirectory();
if (beforeInit !== null) {
await beforeInit(this.lib);
}
this.lib.init();
this.initialized = true;
}
list_modules() {
return this.lib.listModules();
}
list_prefs(module) {
return this.lib.listPreferences(module);
}
apply_prefs() {
this.lib.applyPreferences();
}
set_pref(module, key, value) {
const ret = this.lib.setPref(module, key, value);
if (ret.code != PrefSetResult.PREFS_SET_OK) {
const message =
ret.error != '' ? ret.error : preferenceSetCodeToError(ret.code);
throw new Error(
`Failed to set preference (${module}.${key}): ${message}`
);
}
}
get_pref(module, key) {
const response = this.lib.getPref(module, key);
if (response.code != 0) {
throw new Error(`Failed to get preference (${module}.${key})`);
}
return response.data;
}
/**
* Check the validity of a filter expression.
*
* @param filter A display filter expression
*/
test_filter(filter) {
return this.lib.checkFilter(filter);
}
complete_filter(filter) {
const out = this.lib.completeFilter(filter);
return {
err: out.err,
fields: vectorToArray(out.fields),
};
}
reload_lua_plugins() {
this.lib.reloadLuaPlugins();
}
add_plugin(name, data, opts = {}) {
const path = this.pluginsDir + '/' + name;
this.lib.FS.writeFile(path, data, opts);
}
/**
* Load a packet trace file for analysis.
*
* @returns Response containing the status and summary
*/
load(name, data, opts = {}) {
if (this.session != null) {
this.session.delete();
}
const path = this.uploadDir + '/' + name;
this.lib.FS.writeFile(path, data, opts);
this.session = new this.lib.DissectSession(path);
return this.session.load();
}
/**
* Get Packet List information for a range of packets.
*
* @param filter Output those frames that pass this filter expression
* @param skip Skip N frames
* @param limit Limit the output to N frames
*/
frames(filter, skip = 0, limit = 0) {
return this.session.getFrames(filter, skip, limit);
}
/**
* Get full information about a frame including the protocol tree.
*
* @param number Frame number
*/
frame(num) {
return this.session.getFrame(num);
}
follow(follow, filter) {
return this.session.follow(follow, filter);
}
destroy() {
if (this.initialized) {
if (this.session !== null) {
this.session.delete();
this.session = null;
}
this.lib.destroy();
this.initialized = false;
}
}
/**
* Returns the column headers
*/
columns() {
const vec = this.lib.getColumns();
// convert it from a vector to array
return vectorToArray(vec);
}
}
/**
* Converts a Vector to a JS array
*
* @param vec Vector
* @returns JS array of the Vector contents
*/
function vectorToArray(vec) {
return new Array(vec.size()).fill(0).map((_, id) => vec.get(id));
}
function preferenceSetCodeToError(code) {
switch (code) {
case PrefSetResult.PREFS_SET_SYNTAX_ERR:
return 'Syntax error in string';
case PrefSetResult.PREFS_SET_NO_SUCH_PREF:
return 'No such preference';
case PrefSetResult.PREFS_SET_OBSOLETE:
return 'Preference used to exist but no longer does';
default:
return 'Unknown error';
}
}
if (typeof exports === 'object' && typeof module === 'object') {
module.exports = Wiregasm;
module.exports = vectorToArray;
} else if (typeof define === 'function' && define['amd']) {
define([], function () {
return Wiregasm;
});
define([], function () {
return vectorToArray;
});
} else if (typeof exports === 'object') {
exports['loadWiregasm'] = Wiregasm;
exports['vectorToArray'] = vectorToArray;
}

162
public/wiregasm/worker.js Normal file
View File

@@ -0,0 +1,162 @@
// load the Wiregasm library
importScripts(
'wiregasm_new.js', // self-compilation es5
'wiregasm_load.js'
// 'https://cdn.jsdelivr.net/npm/@goodtools/wiregasm/dist/wiregasm.js'
);
const wg = new Wiregasm();
const inflateRemoteBuffer = async url => {
const res = await fetch(url);
return await res.arrayBuffer();
};
const fetchPackages = async () => {
console.log('Fetching packages');
let [wasmBuffer, dataBuffer] = await Promise.all([
await inflateRemoteBuffer(
'wiregasm.wasm'
// 'https://cdn.jsdelivr.net/npm/@goodtools/wiregasm/dist/wiregasm.wasm'
),
await inflateRemoteBuffer(
'wiregasm.data'
// 'https://cdn.jsdelivr.net/npm/@goodtools/wiregasm/dist/wiregasm.data'
),
]);
return { wasmBuffer, dataBuffer };
};
// Load the Wiregasm Wasm data
fetchPackages()
.then(({ wasmBuffer, dataBuffer }) => {
return wg.init(loadWiregasm, {
wasmBinary: wasmBuffer,
getPreloadedPackage() {
return dataBuffer;
},
handleStatus: (type, status) => {
postMessage({ type: 'status', code: type, status: status });
},
printErr: error => {
postMessage({ type: 'error', error: error });
},
});
})
.then(() => {
postMessage({ type: 'init' });
})
.catch(e => {
postMessage({ type: 'error', error: e });
});
/**Converts a Vector to a JS array */
function replacer(key, value) {
if (value.constructor.name.startsWith('Vector')) {
return vectorToArray(value);
}
return value;
}
// Event listener to receive messages from the main script
this.onmessage = ev => {
const data = ev.data;
switch (data.type) {
case 'close':
wg.destroy();
break;
case 'columns':
const columns = wg.columns();
if (Array.isArray(columns)) {
this.postMessage({ type: 'columns', data: columns });
}
break;
case 'select': // select a frame
const number = data.number;
const frameData = wg.frame(number);
const frameDataToJSON = JSON.parse(JSON.stringify(frameData, replacer));
this.postMessage({
type: 'selected',
data: frameDataToJSON,
});
break;
case 'frames': // get frames list
const skip = data.skip;
const limit = data.limit;
const filter = data.filter;
const framesData = wg.frames(filter, skip, limit);
const framesDataToJSON = JSON.parse(JSON.stringify(framesData, replacer));
this.postMessage({
type: 'frames',
data: framesDataToJSON,
});
break;
case 'process-data':
const loadData = wg.load(data.name, new Uint8Array(data.data));
this.postMessage({ type: 'processed', data: loadData });
break;
case 'process':
const f = data.file;
const reader = new FileReader();
reader.addEventListener('load', event => {
// XXX: this blocks the worker thread
const loadData = wg.load(f.name, new Uint8Array(event.target.result));
postMessage({ type: 'processed', data: loadData });
});
reader.readAsArrayBuffer(f);
break;
case 'check-filter':
const filterStr = data.filter;
const checkFilterRes = wg.lib.checkFilter(filterStr);
this.postMessage({ type: 'filter', data: checkFilterRes });
break;
}
if (data.type === 'reload-quick') {
if (wg.session) {
// TODO: this is a hack, we should be able to reload the session
const name = data.name;
const res = wg.session.load();
postMessage({ type: 'processed', name: name, data: res });
}
} else if (data.type === 'module-tree') {
const res = wg.list_modules();
// send it to the correct port
event.ports[0].postMessage({
result: JSON.parse(JSON.stringify(res, replacer)),
});
} else if (data.type === 'module-prefs') {
const res = wg.list_prefs(data.name);
// send it to the correct port
event.ports[0].postMessage({
result: JSON.parse(JSON.stringify(res, replacer)),
});
} else if (data.type === 'upload-file') {
const f = data.file;
const reader = new FileReader();
reader.addEventListener('load', e => {
// XXX: this blocks the worker thread
const path = '/uploads/' + f.name;
wg.lib.FS.writeFile(path, Buffer.from(e.target.result));
event.ports[0].postMessage({ result: path });
});
reader.readAsArrayBuffer(f);
} else if (data.type === 'update-pref') {
try {
console.log(`set_pref(${data.module}, ${data.key}, ${data.value})`);
wg.set_pref(data.module, data.key, data.value);
event.ports[0].postMessage({ result: 'ok' });
} catch (e) {
console.error(
`set_pref(${data.module}, ${data.key}, ${data.value}) failed: ${e.message}`
);
event.ports[0].postMessage({ error: e.message });
}
} else if (data.type === 'apply-prefs') {
console.log(`apply_prefs()`);
wg.apply_prefs();
event.ports[0].postMessage({ result: 'ok' });
}
};

View File

@@ -1,20 +1,46 @@
<script setup lang="ts">
import { ConfigProvider } from 'ant-design-vue/lib';
import { usePrimaryColor } from '@/hooks/useTheme';
import zhCN from 'ant-design-vue/lib/locale/zh_CN';
import enUS from 'ant-design-vue/lib/locale/en_US';
import { onBeforeMount, ref, watch } from 'vue';
import { message } from 'ant-design-vue/es';
import zhCN from 'ant-design-vue/es/locale/zh_CN';
import enUS from 'ant-design-vue/es/locale/en_US';
import { usePrefersColorScheme, viewTransitionTheme } from 'antdv-pro-layout';
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import { ref, watch } from 'vue';
import useLayoutStore from '@/store/modules/layout';
import useAppStore from '@/store/modules/app';
import useI18n from '@/hooks/useI18n';
const { t, currentLocale } = useI18n();
const appStore = useAppStore();
const { themeConfig, initPrimaryColor, changeConf } = useLayoutStore();
// dayjs.locale('zh-cn'); // 默认中文
let locale = ref(enUS); // 国际化初始中文
dayjs.locale('zh-cn'); // 默认中文
usePrimaryColor(); // 载入用户自定义主题色
// 偏好设置
const colorScheme = usePrefersColorScheme();
watch(
() => colorScheme.value,
themeMode => {
viewTransitionTheme(() => {
changeConf('theme', themeMode);
});
}
);
let locale = ref(zhCN); // 国际化初始中文
onBeforeMount(() => {
// 全局message提示
message.config({
top: '100px', // 距离顶部位置100px
duration: 3,
maxCount: 15,
});
initPrimaryColor();
// 输出应用版本号
const appStore = useAppStore();
console.info(
`%c ${t('common.desc')} %c ${appStore.appCode} - ${appStore.appVersion} `,
'color: #fadfa3; background: #030307; padding: 4px 0;',
'color: #030307; background: #fadfa3; padding: 4px 0;'
);
});
// 国际化切换语言
function fnChangeLocale(v: string) {
@@ -35,22 +61,15 @@ fnChangeLocale(currentLocale.value);
watch(currentLocale, val => {
fnChangeLocale(val);
});
// 输出应用版本号
console.info(
`%c ${t('common.title')} %c ${appStore.appCode} - ${appStore.appVersion} `,
'color: #fadfa3; background: #030307; padding: 4px 0;',
'color: #030307; background: #fadfa3; padding: 4px 0;'
);
</script>
<template>
<ConfigProvider :locale="locale">
<a-config-provider :theme="themeConfig" :locale="locale">
<RouterView />
</ConfigProvider>
</a-config-provider>
</template>
<style>
<style lang="css">
#app {
height: 100%;
}
@@ -61,10 +80,6 @@ body .ant-pro-basicLayout {
min-height: 100vh;
}
.ant-pro-sider {
z-index: 20;
}
.slide-left-enter-active,
.slide-left-leave-active,
.slide-right-enter-active,
@@ -87,56 +102,23 @@ body .ant-pro-basicLayout {
transform: translate(-2em, 0);
}
/**强制改表格边距 */
.ant-table.ant-table-small .ant-table-tbody > tr > td,
.ant-table.ant-table-small .ant-table-thead > tr > th {
padding: 6px !important;
::view-transition-old(root),
::view-transition-new(root) {
animation: none;
mix-blend-mode: normal;
}
/** ==== 表格头按钮区域 S === **/
/* 默认 */
.button-container {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
[data-theme='dark']::view-transition-old(root) {
z-index: 1;
}
[data-theme='dark']::view-transition-new(root) {
z-index: 999;
}
.button-container > button,
.button-container > span {
margin-right: 12px;
margin-bottom: 12px;
::view-transition-old(root) {
z-index: 999;
}
.button-container > button:last-child,
.button-container > span:last-child {
margin-right: 0;
::view-transition-new(root) {
z-index: 1;
}
/* 平板端 */
@media (max-width: 992px) {
.button-container {
flex-direction: row;
align-items: flex-start;
align-items: left;
}
.button-container > button,
.button-container > span {
margin-right: 12px;
margin-bottom: 12px;
}
}
/* 手机端 */
@media (max-width: 576px) {
.button-container {
flex-direction: column;
align-items: flex-start;
align-items: left;
}
.button-container > button,
.button-container > span {
margin-right: 0px;
margin-bottom: 12px;
}
}
/** ==== 表格头按钮区域 E === **/
</style>

156
src/api/auth.ts Normal file
View File

@@ -0,0 +1,156 @@
import { request } from '@/plugins/http-fetch';
import { sessionGet } from '@/utils/cache-session-utils';
/**
* 登录方法
* @param data 数据
* @returns 结果
*/
export function login(data: Record<string, string>) {
return request({
url: '/auth/login',
method: 'POST',
data: data,
whithToken: false,
});
}
/**
* 退出方法
* @returns object
*/
export function logout() {
return request({
url: '/auth/logout',
method: 'POST',
repeatSubmit: false,
});
}
/**
* 注册方法
* @param data 注册对象
* @returns object
*/
export function register(data: Record<string, any>) {
return request({
url: '/auth/register',
method: 'POST',
data: data,
whithToken: false,
});
}
/**
* 刷新登录令牌
* @param data 数据
* @returns 结果
*/
export function refreshToken(refreshToken: string) {
return request({
url: '/auth/refresh-token',
method: 'POST',
data: { refreshToken },
whithToken: false,
});
}
/**
* 获取用户详细信息
* @returns object
*/
export function getInfo() {
return request({
url: '/me',
method: 'GET',
});
}
/**
* 获取路由
* @returns object
*/
export const getRouter = () => {
return request({
url: '/router',
method: 'GET',
});
};
/**
* 获取验证码
* @returns object
*/
export function getCaptchaImage() {
return request({
url: '/captcha-image',
method: 'GET',
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,
});
}

75
src/api/cbc/cbe.ts Normal file
View File

@@ -0,0 +1,75 @@
import { request } from '@/plugins/http-fetch';
/**
* CBC列表
* @param query 查询参数
* @returns object
*/
export function listCBC(query: Record<string, any>) {
return request({
url: `/neData/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: `/neData/cbc/message?neId=${data.neId}`,
method: 'POST',
data: data,
timeout: 180_000,
});
}
export function updateCBCStatus(data:any) {
return request({
url: `/neData/cbc/message/${data.id}/${data.status}?neId=${data.neId}`,
method: 'PUT',
timeout: 180_000,
});
}
export function updateCBC(data:any) {
return request({
url: `/neData/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: `/neData/cbc/message/${id}?neId=${neId}`,
method: 'DELETE',
timeout: 180_000,
});
}

View File

@@ -1,95 +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 listNeBackup(query: Record<string, any>) {
let totalSQL = 'select count(id) as total from ne_backup ';
let rowsSQL = ' select * from ne_backup ';
// 查询
let querySQL = 'where 1=1';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` order by create_time desc limit ${pageNum},${query.pageSize} `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/ne_backup`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['ne_backup'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 删除备份信息
* @param noticeId 网元ID
* @returns object
*/
export async function delNeBackup(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/${data.neType}/neBackup/${data.fileName}`,
method: 'delete',
});
}
/**
* 获取备份信息文件
* @param menuId 网元ID
* @returns object
*/
export async function downloadNeBackup(data: Record<string, any>) {
return await request({
url: `/api/rest/systemManagement/v1/${data.neType}/neBackup/${data.fileName}`,
method: 'get',
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 修改备份说明
* @param menuId 网元ID
* @returns object
*/
export async function updateBackInfo(data:Record<string,any>){
return request({
url: `/api/rest/databaseManagement/v1/omc_db/ne_backup?WHERE=id=${data.id}`,
method: 'put',
data: { data: { comment: data.backupInfo } },
});
}

View File

@@ -1,55 +0,0 @@
import {
RESULT_CODE_ERROR,
RESULT_CODE_SUCCESS,
RESULT_MSG_ERROR,
} from '@/constants/result-constants';
import { language, request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询配置详细
* @param tag 配置ID
* @returns object
*/
export async function getConfigInfo(tag: string) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
params: {
SQL: `SELECT * FROM config WHERE config_tag = '${tag}'`,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let data = result.data.data[0];
return Object.assign(result, {
data: parseObjLineToHump(data['config'][0]),
});
}
return result;
}
/**
* 修改配置
* @param data 配置对象
* @returns object
*/
export async function updateConfig(tag: string, data: Record<string, any>) {
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='${tag}'`,
method: 'put',
data: { data },
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
let rows = result.data.data.affectedRows;
if (rows) {
delete result.data;
return result;
} else {
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
}
return result;
}

View File

@@ -1,464 +0,0 @@
import {
RESULT_CODE_ERROR,
RESULT_CODE_SUCCESS,
RESULT_MSG_ERROR,
RESULT_MSG_SUCCESS,
} from '@/constants/result-constants';
import { language, request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询配置参数标签栏
* @param neType 网元类型
* @returns object
*/
export async function getParamConfigTopTab(neType: string) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/param_config`,
method: 'get',
params: {
SQL: `SELECT top_display,top_tag,method FROM param_config WHERE ne_type = '${neType}'`,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let data = result.data.data[0];
data = data['param_config'];
if (Array.isArray(data)) {
return Object.assign(result, {
data: parseObjLineToHump(data),
});
}
return Object.assign(result, {
data: [],
});
}
return result;
}
/**
* 查询配置参数标签栏对应信息
* @param neType 网元类型
* @param topTag
* @param neId
* @returns object { wrRule, dataArr }
*/
async function getParamConfigInfo(
neType: string,
topTag: string,
neId: string
) {
return await Promise.allSettled([
// 获取参数规则
request({
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/param_config`,
method: 'get',
params: {
SQL: `SELECT param_json FROM param_config WHERE ne_type = '${neType}' AND top_tag='${topTag}'`,
},
timeout: 1_000,
}),
// 获取对应信息
request({
url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`,
method: 'get',
params: {
ne_id: neId,
},
timeout: 1_000,
}),
]).then(resArr => {
let wrRule: Record<string, any> = {};
// 规则数据
if (resArr[0].status === 'fulfilled') {
const itemV = resArr[0].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
const data = itemData[0]['param_config'];
if (Array.isArray(data)) {
const v = data[0]['param_json'];
try {
itemData = parseObjLineToHump(JSON.parse(v));
wrRule = itemData;
} catch (error) {
console.error(error);
}
}
}
}
let dataArr: Record<string, any>[] = [];
// 对应信息
if (resArr[1].status === 'fulfilled') {
const itemV = resArr[1].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
dataArr = parseObjLineToHump(itemData);
}
}
return { wrRule, dataArr };
});
}
/**
* 查询配置参数标签栏对应信息-表格处理
* @param neType 网元类型
* @param topTag
* @param neId
* @returns object
*/
export async function getParamConfigInfoTable(
neType: string,
topTag: string,
neId: string
) {
const { wrRule, dataArr } = await getParamConfigInfo(neType, topTag, neId);
// UPF参数不统一
// if (neType === 'UPF') {
// if (Reflect.has(wrRule, 'list')) {
// for (const arr of wrRule['list']) {
// arr['name'] = parseFirstLower(arr['name']);
// }
// for (const item of dataArr) {
// for (const k in item) {
// item[parseFirstLower(k)] = item[k];
// Reflect.deleteProperty(item, k);
// }
// }
// }
// if (Reflect.has(wrRule, 'array')) {
// for (const arr of wrRule['array']) {
// if (Array.isArray(arr['array'])) {
// for (const child of arr['array']) {
// child['name'] = parseFirstLower(child['name']);
// }
// }
// arr['name'] = parseFirstLower(arr['name']);
// }
// for (const item of dataArr) {
// for (const k in item) {
// // 处理子列表
// if (Array.isArray(item[k])) {
// for (const child of item[k]) {
// for (const childKey in child) {
// child[parseFirstLower(childKey)] = child[childKey];
// Reflect.deleteProperty(child, childKey);
// }
// }
// }
// item[parseFirstLower(k)] = item[k];
// Reflect.deleteProperty(item, k);
// }
// }
// }
// }
// 拼装数据
const result = {
code: RESULT_CODE_SUCCESS,
msg: RESULT_MSG_SUCCESS,
data: {
type: 'list' as 'list' | 'array',
data: [] as any[],
dataRule: {},
columns: [] as any[],
},
};
// kv单列表
if (Reflect.has(wrRule, 'list')) {
result.data.type = 'list';
const ruleArr = Object.freeze(wrRule['list']);
// 列表项数据
let dataList = [];
for (const item of dataArr) {
for (const key of Object.keys(item)) {
// 规则为准
for (const rule of ruleArr) {
if (rule['name'] === key) {
const ruleItem = Object.assign({ optional: 'true' }, rule, {
value: item[key],
});
dataList.push(ruleItem);
break;
}
}
}
}
result.data.data = dataList;
// 列表字段
result.data.columns = [
{
title: 'Key',
dataIndex: 'display',
align: 'left',
width: '30%',
},
{
title: 'Value',
dataIndex: 'value',
align: 'left',
width: '70%',
},
];
}
// 多列表
if (Reflect.has(wrRule, 'array')) {
result.data.type = 'array';
const ruleArr = Object.freeze(wrRule['array']);
// 列表项数据
const dataArray = [];
for (const item of dataArr) {
let record: Record<string, any> = {};
for (const key of Object.keys(item)) {
// 规则为准
for (const rule of ruleArr) {
if (rule['name'] === key) {
const ruleItem = Object.assign({ optional: 'true' }, rule, {
value: item[key],
});
record[ruleItem.name] = ruleItem;
break;
}
}
}
dataArray.push(record);
}
result.data.data = dataArray;
// 无数据时,用于新增
let dataRule: Record<string, any> = {};
for (const rule of ruleArr) {
dataRule[rule.name] = rule;
}
result.data.dataRule = dataRule;
// 列表字段
const columns: Record<string, any>[] = [];
for (const rule of ruleArr) {
columns.push({
title: rule.display,
dataIndex: rule.name,
align: 'left',
width: 5,
});
}
result.data.columns = columns;
}
return result;
}
/**
* 查询配置参数标签栏对应信息-表单结构处理
* @param neType 网元类型
* @param topTag
* @param neId
* @returns object
*/
export async function getParamConfigInfoForm(
neType: string,
topTag: string,
neId: string
) {
const { wrRule, dataArr } = await getParamConfigInfo(neType, topTag, neId);
// 拼装数据
const result = {
code: RESULT_CODE_SUCCESS,
msg: RESULT_MSG_SUCCESS,
data: {
type: 'list' as 'list' | 'array',
data: [] as Record<string, any>[],
dataRule: {},
},
};
// kv单列表
if (Reflect.has(wrRule, 'list')) {
result.data.type = 'list';
const ruleArr = Object.freeze(wrRule['list']);
// 列表项数据
const dataList = [];
for (const item of dataArr) {
for (const key in item) {
// 规则为准
for (const rule of ruleArr) {
if (rule['name'] === key) {
const ruleItem = Object.assign({ optional: 'true' }, rule, {
value: item[key],
});
dataList.push(ruleItem);
break;
}
}
}
}
result.data.data = dataList;
}
// 多列表
if (Reflect.has(wrRule, 'array')) {
result.data.type = 'array';
const ruleArr = Object.freeze(wrRule['array']);
// 列表项数据
const dataArray = [];
for (const item of dataArr) {
const index = item['index'];
let record: Record<string, any>[] = [];
for (const key in item) {
// 规则为准
for (const rule of ruleArr) {
if (rule['name'] === key) {
const ruleItem = Object.assign({ optional: 'true' }, rule, {
value: item[key],
});
record.push(ruleItem);
break;
}
}
}
dataArray.push({ title: `Index-${index}`, key: index, record });
}
result.data.data = dataArray;
// 无数据时,用于新增
result.data.dataRule = { title: `Index-0`, key: 0, record: ruleArr };
}
return result;
}
/**
* 查询配置参数标签栏对应信息子节点
* @param neType 网元类型
* @param topTag
* @param neId
* @param loc 子节点index/字段) 1/dnnList
* @returns
*/
export async function getParamConfigInfoChild(
neType: string,
topTag: string,
neId: string,
loc: string
) {
// 发起请求
const result = await request({
url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`,
method: 'get',
params: {
ne_id: neId,
loc: loc,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
return Object.assign(result, {
data: parseObjLineToHump(result.data.data),
});
}
return result;
}
/**
* 修改配置参数标签栏对应信息
* @param args 对象 {neType,neId,topTag,loc}
* @param data 对象 {修改的数据kv}
* @returns object
*/
export function updateParamConfigInfo(
type: 'list' | 'array',
args: Record<string, any>,
data: Record<string, any>
) {
let url = `/api/rest/systemManagement/v1/elementType/${args.neType.toLowerCase()}/objectType/config/${
args.topTag
}?ne_id=${args.neId}`;
// 多列表需要loc
if (type === 'array') {
url += `&loc=${args.loc}`;
}
return request({
url,
method: 'put',
data: data,
});
}
/**
* 新增配置参数标签栏对应信息
* @param args 对象 {neType,neId,topTag,loc}
* @param data 行记录对象
* @returns object
*/
export function addParamConfigInfo(
args: Record<string, any>,
data: Record<string, any>
) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${args.neType.toLowerCase()}/objectType/config/${
args.topTag
}?ne_id=${args.neId}&loc=${args.loc}`,
method: 'post',
data: data,
});
}
/**
* 删除配置参数标签栏对应信息
* @param args 对象 {neType,neId,topTag,loc}
* loc 多层表的定位信息{index0}/{paraName1}/{index1}
* @param data 行记录对象
* @returns object
*/
export function delParamConfigInfo(args: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${args.neType.toLowerCase()}/objectType/config/${
args.topTag
}?ne_id=${args.neId}&loc=${args.loc}`,
method: 'delete',
});
}
/**
* 更新网元配置重新载入
* @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;
}

View File

@@ -1,72 +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 listLicense(query: Record<string, any>) {
let totalSQL = 'select count(id) as total from ne_license ';
let rowsSQL = ' select * from ne_license ';
// 查询
let querySQL = 'where 1=1';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` order by created_at desc limit ${pageNum},${query.pageSize} `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/ne_license`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['ne_license'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 上传文件
* @param data 表单数据对象
* @returns object
*/
export function uploadLicense(data: FormData) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.get(
'nfType'
)}/objectType/license?neId=${data.get('nfId')}`,
method: 'post',
data,
dataType: 'form-data',
timeout: 180_000,
});
}

View File

@@ -1,301 +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 listNeInfo(query: Record<string, any>) {
let totalSQL =
'select count(*) as total from ne_info where (status=0 or status=3)';
let rowsSQL = 'select * from ne_info where (status=0 or status=3) ';
// 系统特定顺序
const specificOrder = [
'OMC',
'MME',
'AMF',
'AUSF',
'UDM',
'SMF',
'PCF',
'UPF',
'NRF',
'NSSF',
'IMS',
'N3IWF',
'NEF',
'LMF',
];
// 查询
let querySQL = '';
if (query.neType) {
querySQL += ` and ne_type = '${query.neType}' `;
}
// 分页
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/ne_info`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['ne_info'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
//通过sort进行冒泡排序
data.rows.sort((a: any, b: any) => {
const typeA = specificOrder.indexOf(a.neType);
const typeB = specificOrder.indexOf(b.neType);
if (typeA === -1) return 1; // 如果不在特定顺序中,排到后面
if (typeB === -1) return -1; // 如果不在特定顺序中,排到后面
return typeA - typeB;
});
}
}
});
return data;
}
return result;
}
/**
* 查询网元详细
* @param menuId 网元ID
* @returns object
*/
export async function getNeInfo(id: string | number) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/ne_info`,
method: 'get',
params: {
SQL: `select * from ne_info where (status=0 or status=3) and id = ${id}`,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let data = result.data.data[0];
return Object.assign(result, {
data: parseObjLineToHump(data['ne_info'][0]),
});
}
return result;
}
/**
* 新增网元
* @param data 网元对象
* @returns object
*/
export function addNeInfo(data: Record<string, any>) {
data.port = `${data.port}`;
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/neInfo?sync2ne=${
data.sync
}`,
method: 'post',
data: data,
});
}
/**
* 修改网元
* @param data 网元对象
* @returns object
*/
export function updateNeInfo(data: Record<string, any>) {
data.port = `${data.port}`;
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/neInfo?sync2ne=${data.sync}`,
method: 'put',
data: data,
});
}
/**
* 删除网元
* @param noticeId 网元ID
* @returns object
*/
export async function delNeInfo(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/neInfo?ne_id=${data.neId}`,
method: 'delete',
timeout: 60 * 1000,
});
}
/**
* 获取网元网元列表
* @returns object
*/
export async function getNelistAll() {
// 系统特定顺序
const specificOrder = [
'OMC',
'MME',
'AMF',
'AUSF',
'UDM',
'SMF',
'PCF',
'UPF',
'NRF',
'NSSF',
'IMS',
'N3IWF',
'NEF',
'LMF',
];
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/ne_info`,
method: 'get',
params: {
SQL: `SELECT ne_type,ne_name,ne_id,ip FROM ne_info WHERE status in ('0','3')`,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let data = result.data.data[0];
//通过sort进行冒泡排序
data['ne_info'].sort((a: any, b: any) => {
const typeA = specificOrder.indexOf(a.ne_type);
const typeB = specificOrder.indexOf(b.ne_type);
if (typeA === -1) return 1;
if (typeB === -1) return -1;
return typeA - typeB;
});
return Object.assign(result, {
data: parseObjLineToHump(data['ne_info']),
});
}
return result;
}
/**
* 导出网元配置文件
* @param
* @returns bolb
*/
export function exportSet(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/cm?ne_id=${data.neId}`,
method: 'get',
responseType: 'blob',
headers: {
'Content-Type': 'application/octet-stream',
},
timeout: 180_000,
});
}
/**
* 导入网元配置文件
* @param data 网元对象
* @returns object
*/
export function importFile(data: Record<string, any>) {
let dataType: 'json' | 'form-data' = 'json';
let url = `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/cm?ne_id=${data.neId}`;
let obj: any = { fileName: data.fileName };
if (data.importType === 'local') {
let formData = new FormData();
formData.append('nfType', data.neType);
formData.append('nfId', data.neId);
formData.append('file', data.file);
obj = formData;
dataType = 'form-data';
}
// 处理FormData类型的data
return request({
url,
method: 'post',
data: obj,
dataType,
timeout: 180_000,
});
}
/**
* 查询远程服务器上网元配置文件
* @param data 网元对象
* @returns object
*/
export async function listServerFile(data: Record<string, any>) {
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/ne_backup?SQL= select * from ne_backup where ne_type ='${data.neType}'`,
method: 'get',
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let data = result.data.data[0];
return Object.assign(result, {
data: parseObjLineToHump(data['ne_backup']),
});
}
return result;
}
/**
* 启动网元
* @data {neType,neId}
* @returns bolb
*/
export function startNf(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/service/start?neId=${data.neId}`,
method: 'post',
timeout: 180_000,
});
}
/**
* 重启网元
* @data {neType,neId}
* @returns bolb
*/
export function restartNf(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/service/restart?neId=${data.neId}`,
method: 'post',
timeout: 180_000,
});
}
/**
* 停止网元
* @data {neType,neId}
* @returns bolb
*/
export function stopNf(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/elementType/${data.neType}/objectType/service/stop?neId=${data.neId}`,
method: 'post',
timeout: 180_000,
});
}

View File

@@ -1,217 +0,0 @@
import {
RESULT_CODE_ERROR,
RESULT_CODE_SUCCESS,
RESULT_MSG_ERROR,
} from '@/constants/result-constants';
import { language, request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询软件列表
* @param query 查询参数
* @returns object
*/
export async function listNeSoftware(query: Record<string, any>) {
let totalSQL = 'select count(id) as total from ne_software ';
let rowsSQL = ' select * from ne_software ';
// 查询
let querySQL = 'where 1=1';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` order by update_time desc limit ${pageNum},${query.pageSize} `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/ne_software`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['ne_software'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 删除软件信息
* @param noticeId 网元ID
* @returns object
*/
export async function delNeSoftware(data: Record<string, any>) {
return request({
url: `/api/rest/systemManagement/v1/${data.neType}/software/${data.version}`,
method: 'delete',
});
}
/**
* 获取软件信息文件
* @param menuId 网元ID
* @returns object
*/
export async function downloadNeSoftware(data: Record<string, any>) {
return await request({
url: `/api/rest/systemManagement/v1/${data.neType}/software/${data.version}`,
method: 'get',
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 上传文件
* @param data 表单数据对象
* @returns object
*/
export function uploadNeSoftware(data: FormData) {
return request({
url: `/api/rest/systemManagement/v1/${data.get('nf')}/software/${data.get(
'version'
)}`,
method: 'post',
data,
dataType: 'form-data',
timeout: 180_000,
});
}
/**
* 下发文件
* @param data 数据对象
* @returns object
*/
export async function sendNeSoftware(data: Record<string, any>) {
const result = await request({
url: `/api/rest/systemManagement/v1/${data.neType}/software/${data.version}/${data.neId}`,
method: 'post',
timeout: 180_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
delete result.data;
return result;
}
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
/**
* 激活文件
* @param data 数据对象
* @returns object
*/
export async function runNeSoftware(data: Record<string, any>) {
const result = await request({
url: `/api/rest/systemManagement/v1/${data.neType}/software/${data.version}/${data.neId}`,
method: 'put',
timeout: 180_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
delete result.data;
return result;
}
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
/**
* 回退文件
* @param data 数据对象
* @returns object
*/
export async function backNeSoftware(data: Record<string, any>) {
const result = await request({
url: `/api/rest/systemManagement/v1/${data.neType}/software/${data.version}/${data.neId}`,
method: 'PATCH',
timeout: 180_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
delete result.data;
return result;
}
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
/**
* 查询版本列表
* @param query 查询参数
* @returns object
*/
export async function listNeVersion(query: Record<string, any>) {
let totalSQL = 'select count(id) as total from ne_version ';
let rowsSQL = 'select * from ne_version ';
// 查询
let querySQL = 'where 1=1';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
if (query.status) {
querySQL += ` and status = '${query.status}' `;
}
if (query.beginTime && query.endTime) {
querySQL += ` and update_time BETWEEN '${query.beginTime}' AND '${query.endTime}' `;
}
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` order by update_time desc limit ${pageNum},${query.pageSize} `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/ne_version`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['ne_version'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}

View File

@@ -1,36 +1,30 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
import { parseDateToStr } from '@/utils/date-utils';
import useUserStore from '@/store/modules/user';
/**
* 获取活动告警数
* @returns object
*/
export async function getActiveAlarmTotal() {
let totalSQL = `select count(*) as total from alarm where alarm_status='1'`;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
url: `/neData/alarm/list`,
method: 'GET',
params: {
SQL: totalSQL,
alarmStatus: 'Active',
sortField: 'event_time',
sortOrder: 'desc',
pageNum: 1,
pageSize: 1,
},
});
// 解析数据
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[0]['total'];
}
}
}
return result;
return {
code: result.code,
msg: result.msg,
data: result.data.total ?? 0,
};
}
/**
@@ -38,125 +32,28 @@ export async function getActiveAlarmTotal() {
* @param query 查询参数
* @returns object
*/
export async function listAct(query: Record<string, any>, filterSQl: string) {
let totalSQL = `select count(*) as total from alarm where alarm_status='1' ${filterSQl} `;
let rowsSQL = `select * from alarm where alarm_status='1' ${filterSQl}`;
// 查询
let querySQL = '';
if (query.alarmCode) {
querySQL += ` and alarm_code = '${query.alarmCode}' `;
}
if (query.alarmType) {
querySQL += ` and alarm_type = '${query.alarmType}' `;
}
if (query.pvFlag) {
querySQL += ` and pv_flag = '${query.pvFlag}' `;
}
if (query.origSeverity) {
querySQL += ` and orig_severity in('${query.origSeverity}' )`;
}
if (query.neId) {
querySQL += ` and ne_id like '%${query.neId}%' `;
}
if (query.neName) {
querySQL += ` and ne_name like '%${query.neName}%' `;
}
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
if (query.beginTime && query.endTime) {
querySQL += ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'`;
}
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` order by event_time desc limit ${pageNum},${query.pageSize} `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
params: {
SQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
export async function listAct(query: Record<string, any>) {
return await request({
url: `/neData/alarm/list`,
method: 'GET',
params: query,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['alarm'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 确认告警信息
* @param data 鉴权对象
* @param ids 记录ID
* @param state 状态 true确认 false取消确认
* @returns object
*/
export function updateConfirm(data: Record<string, any>) {
var time = new Date();
const userName = useUserStore().userName;
let finalData = {
alarm: {
ack_time: parseDateToStr(time),
ack_user: userName,
ack_state: '1',
},
};
export function ackAlarm(ids: number[], state: boolean) {
return request({
url: `/api/rest/databaseManagement/v1/update/omc_db/alarm?WHERE=id='${data.id}'`,
method: 'put',
data: finalData,
});
}
/**
* 取消确认告警
* @param data 鉴权对象
* @returns object
*/
export function cancelConfirm(data: (string | number)[]) {
var time = new Date();
const userName = useUserStore().userName;
let finalData = {
alarm: {
ack_time: parseDateToStr(time),
ack_user: '',
ack_state: '0',
url: `/neData/alarm/ack'`,
method: 'PUT',
data: {
ids: ids,
ackState: state,
},
};
return request({
url: `/api/rest/databaseManagement/v1/update/omc_db/alarm?WHERE=id in(${data.join(
','
)})`,
method: 'put',
data: finalData,
});
}
@@ -187,7 +84,7 @@ export function showPass(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='displayFilter'`,
method: 'put',
method: 'PUT',
data: toBackJson,
});
}
@@ -199,7 +96,7 @@ export function showPass(data: Record<string, any>) {
export function getPass() {
return request({
url: `/api/rest/databaseManagement/v1/select/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: "SELECT value_json,value FROM config WHERE config_tag ='displayFilter'",
},
@@ -208,27 +105,29 @@ export function getPass() {
/**
* 清除告警信息
* @param data 鉴权对象
* @param ids 记录ID
* @returns object
*/
export function clearAlarm(data: Record<string, any>) {
var time = new Date();
const userName = useUserStore().userName;
let finalData = {
data: {
clear_time: parseDateToStr(time),
clear_type: '2',
alarm_status: '0',
clear_user: userName,
},
};
export function clearAlarm(ids: number[]) {
return request({
url: `/api/rest/databaseManagement/v1/update/omc_db/alarm?WHERE=id in(${data.join(
','
)})`,
method: 'put',
data: finalData,
url: `/neData/alarm/clear`,
method: 'PUT',
data: { ids },
});
}
/**
* 告警信息导出
* @param params 查询列表条件
* @returns object
*/
export function exportAlarm(params: Record<string, any>) {
return request({
url: '/neData/alarm/export',
method: 'GET',
params: params,
responseType: 'blob',
timeout: 180_000,
});
}
@@ -240,7 +139,8 @@ export function clearAlarm(data: Record<string, any>) {
export function listSync() {
return request({
url: `/api/rest/faultManagement/v1/elementType/all/objectType/alarms`,
method: 'get',
method: 'GET',
timeout: 180_000,
});
}
@@ -274,7 +174,7 @@ export async function exportAll(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
method: 'GET',
params: {
rowsSQL: rowsSQL + querySQL,
},
@@ -294,33 +194,13 @@ export async function exportAll(query: Record<string, any>) {
* @returns bolb
*/
export async function origGet() {
let totalSQL = `select count(*) as value,orig_severity as name from alarm group by orig_severity`;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
return await request({
url: `/neData/alarm/count/severity`,
method: 'GET',
params: {
SQL: totalSQL,
alarmStatus: 'Active',
},
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;
}
/**
@@ -328,34 +208,13 @@ export async function origGet() {
* @param filterFlag 查询参数
* @returns object
*/
export async function top3Sel(filterFlag?: string) {
let filter = ` WHERE orig_severity='${filterFlag}'`;
if (!filterFlag) filter = '';
let top3SQL = `select count(*) as value,ne_type as name from alarm ${filter} group by ne_type ORDER BY value desc limit 0,3 `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
export async function top3Sel() {
return await request({
url: `/neData/alarm/count/ne`,
method: 'GET',
params: {
SQL: top3SQL,
alarmStatus: 'Active',
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;
}

View File

@@ -0,0 +1,60 @@
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 listAct(query: Record<string, any>) {
return await request({
url: `/neData/alarm/log/event`,
method: 'GET',
params: query,
});
}
/**
* 事件告警导出
* @param query 查询参数
* @returns bolb
*/
export async function exportAll(query: Record<string, any>) {
let rowsSQL = `select * from alarm_event where 1=1`;
// 查询
let querySQL = '';
querySQL += query.alarm_code
? ` and alarm_code = '${query.alarm_code}' `
: '';
querySQL += query.alarm_type
? ` and alarm_type = '${query.alarm_type}' `
: '';
querySQL += query.pv_flag ? ` and pv_flag = '${query.pv_flag}' ` : '';
querySQL += query.orig_severity
? ` and orig_severity in('${query.orig_severity}' )`
: '';
querySQL += query.ne_id ? ` and ne_id like '%${query.ne_id}%' ` : '';
querySQL += query.ne_name ? ` and ne_name like '%${query.ne_name}%' ` : '';
querySQL += query.ne_type ? ` and ne_type like '%${query.ne_type}%' ` : '';
querySQL +=
query.beginTime && query.endTime
? ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'`
: '';
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm_event`,
method: 'GET',
params: {
rowsSQL: rowsSQL + querySQL,
},
});
if (result.code === RESULT_CODE_SUCCESS) {
let v = result.data.data[0];
const vArr = parseObjLineToHump(v['alarm_event']);
result.data = vArr == null ? [] : vArr;
}
return result;
}

View File

@@ -18,7 +18,7 @@ export async function getAlarmSet() {
// 历史告警保存时间
const logDurationResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'historyDuration'`,
},
@@ -27,7 +27,7 @@ export async function getAlarmSet() {
// 同步设置
const logCapacityResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'syncTaskPeriod'`,
},
@@ -63,7 +63,11 @@ export async function getAlarmSet() {
}
}
if (Object.keys(resultData).length === 0) {
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language], data: {} };
return {
code: RESULT_CODE_ERROR,
msg: RESULT_MSG_ERROR[language],
data: {},
};
}
return {
code: RESULT_CODE_SUCCESS,
@@ -86,14 +90,14 @@ export async function updateAlarmSet(data: Record<string, any>) {
// 历史告警保存时间
const historyDurationResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='historyDuration'`,
method: 'put',
method: 'PUT',
data: { data: { value: data.historyDuration.toString() } },
});
arr.push(historyDurationResult);
// 同步设置
const syncTaskPeriodResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='syncTaskPeriod'`,
method: 'put',
method: 'PUT',
data: { data: { value_json: JSON.stringify(syncTaskPeriodJson) } },
});
arr.push(syncTaskPeriodResult);
@@ -117,7 +121,11 @@ export async function updateAlarmSet(data: Record<string, any>) {
}
// 无变更时
if (resultNum === 0) {
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language], data: 0 };
return {
code: RESULT_CODE_ERROR,
msg: RESULT_MSG_ERROR[language],
data: 0,
};
}
return {
code: RESULT_CODE_SUCCESS,
@@ -137,7 +145,7 @@ export async function getForwardSet() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'forwardAlarm'`,
},
@@ -166,14 +174,13 @@ export async function getForwardSet() {
*/
export async function updateForwardSet(data: Record<string, any>) {
// return false;
console.log(data)
let obj:any=[
{interface:"Email",to_user:data.emailObj},
{interface:"SMS",to_user:data.smsObj}
]
let obj: any = [
{ interface: 'Email', to_user: data.emailObj },
{ interface: 'SMS', to_user: data.smsObj },
];
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='forwardAlarm'`,
method: 'put',
method: 'PUT',
data: { data: { value_json: JSON.stringify(obj) } },
});
// 解析数据

View File

@@ -4,71 +4,6 @@ import { parseObjLineToHump } from '@/utils/parse-utils';
import { parseDateToStr } from '@/utils/date-utils';
import useUserStore from '@/store/modules/user';
/**
* 查询列表
* @param query 查询参数
* @returns object
*/
export async function listAct(query: Record<string, any>) {
let totalSQL = `select count(*) as total from alarm where alarm_status='0'`;
let rowsSQL = `select * from alarm where alarm_status='0'`;
// 查询
let querySQL = '';
querySQL += query.alarm_code
? ` and alarm_code = '${query.alarm_code}' `
: '';
querySQL += query.alarm_type
? ` and alarm_type = '${query.alarm_type}' `
: '';
querySQL += query.pv_flag ? ` and pv_flag = '${query.pv_flag}' ` : '';
querySQL += query.orig_severity
? ` and orig_severity in('${query.orig_severity}' )`
: '';
querySQL += query.ne_id ? ` and ne_id like '%${query.ne_id}%' ` : '';
querySQL += query.ne_name ? ` and ne_name like '%${query.ne_name}%' ` : '';
querySQL += query.ne_type ? ` and ne_type like '%${query.ne_type}%' ` : '';
querySQL +=
query.beginTime && query.endTime
? ` and event_time BETWEEN '${query.beginTime}' and ' ${query.endTime}'`
: '';
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` order by clear_time desc limit ${pageNum},${query.pageSize} `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
params: {
SQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['alarm'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 确认告警信息
* @param data 鉴权对象
@@ -87,7 +22,7 @@ export function updateConfirm(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/update/omc_db/alarm?WHERE=id='${data.id}'`,
method: 'put',
method: 'PUT',
data: finalData,
});
}
@@ -111,7 +46,7 @@ export function cancelConfirm(data: (string | number)[]) {
url: `/api/rest/databaseManagement/v1/update/omc_db/alarm?WHERE=id in(${data.join(
','
)})`,
method: 'put',
method: 'PUT',
data: finalData,
});
}
@@ -146,7 +81,7 @@ export async function exportAll(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
method: 'get',
method: 'GET',
params: {
rowsSQL: rowsSQL + querySQL,
},

View File

@@ -1,100 +1,15 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseDateToStr } from '@/utils/date-utils';
/**
* 查询公告列表
* @param query 查询参数
* @returns object
*/
export async function listMain() {
// 系统特定顺序
const specificOrder = [
'OMC',
'MME',
'AMF',
'AUSF',
'UDM',
'SMF',
'PCF',
'UPF',
'NRF',
'NSSF',
'IMS',
'N3IWF',
'NEF',
'LMF',
];
const result = await request({
url: '/api/rest/systemManagement/v1/elementType/all/objectType/systemState',
method: 'get',
timeout: 60_000,
});
// console.log(result);
let realData = result.data.data;
const mergedData = realData.map((obj: any) => {
// console.log(obj);
const [key, value] = Object.entries(obj)[0];
const ipAddress = (value as any).ipAddress;
const systemState = (value as any).systemState;
const serialNum = (value as any).serialNum;
const version = (value as any).version;
const errCode = systemState && systemState['errorCode'];
var time = new Date();
// console.log(key, value);
let mergedObj;
if (errCode === undefined && systemState) {
mergedObj = {
...systemState,
refresh: parseDateToStr(time),
ipAddress: ipAddress,
name: key.split('/').join('_'),
status: 'Normal',
};
} else {
mergedObj = {
version,
refresh: parseDateToStr(time),
ipAddress,
serialNum,
name: key.split('/').join('_'),
status: 'Abnormal',
};
}
return mergedObj;
});
//通过sort进行冒泡排序
mergedData.sort((a: any, b: any) => {
const typeA = specificOrder.indexOf(a.name.split('_')[0]);
const typeB = specificOrder.indexOf(b.name.split('_')[0]);
if (typeA === -1) return 1; // 如果不在特定顺序中,排到后面
if (typeB === -1) return -1; // 如果不在特定顺序中,排到后面
return typeA - typeB;
});
//console.log(mergedData);
return mergedData;
}
/**
* 获取服务器时间
* 服务器时间
* @returns object
*/
export async function getServerTime() {
// 发起请求
const result = await request({
url: `/api/rest/systemManagement/v1/elementType/OMC/objectType/time`,
method: 'get',
return request({
url: `/time`,
method: 'GET',
whithToken: false,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data) {
return Object.assign(result, {
data: result.data.data,
});
}
return result;
}
/**
@@ -104,6 +19,7 @@ export async function getServerTime() {
export function getSysConf() {
return request({
url: `/sys-conf`,
method: 'get',
method: 'GET',
whithToken: false,
});
}

View File

@@ -1,6 +1,4 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询日志列表
@@ -8,65 +6,9 @@ import { parseObjLineToHump } from '@/utils/parse-utils';
* @returns object
*/
export async function listAlarm(query: Record<string, any>) {
let totalSQL = 'select count(*) as total from alarm_log where 1=1 ';
let rowsSQL = 'select * from alarm_log where 1=1 ';
// 查询
let querySQL = '';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
if (query.status) {
querySQL += ` and alarm_status = '${query.status}' `;
}
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/alarm_log`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
},
return await request({
url: `/neData/alarm/log/list`,
method: 'GET',
params: query,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['alarm_log'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}

View File

@@ -1,6 +1,4 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询日志列表
@@ -8,62 +6,9 @@ import { parseObjLineToHump } from '@/utils/parse-utils';
* @returns object
*/
export async function listForwarding(query: Record<string, any>) {
let totalSQL = 'select count(*) as total from alarm_forward_log where 1=1 ';
let rowsSQL = 'select * from alarm_forward_log where 1=1 ';
// 查询
let querySQL = '';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
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/alarm_forward_log`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
},
return await request({
url: `/neData/alarm/forward/log/list`,
method: 'GET',
params: query,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['alarm_forward_log'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}

View File

@@ -18,7 +18,7 @@ export async function getLogSet() {
// 日志保存时间
const logDurationResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'logDuration'`,
},
@@ -27,7 +27,7 @@ export async function getLogSet() {
// 日志最大容量
const logCapacityResult = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'logCapacity'`,
},
@@ -76,7 +76,7 @@ export async function updateLogSet(data: Record<string, any>) {
const value = `${data[key]}`;
const result = request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='${key}'`,
method: 'put',
method: 'PUT',
data: { data: { value } },
});
arr.push(result);
@@ -120,7 +120,7 @@ export async function getFtpLogSet() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'ftpLogSet'`,
},
@@ -151,7 +151,7 @@ export async function getFtpLogSet() {
export async function updateFtpLogSet(data: Record<string, any>) {
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='ftpLogSet'`,
method: 'put',
method: 'PUT',
data: { data: { value_json: JSON.stringify(data) } },
});
// 解析数据
@@ -176,7 +176,7 @@ export async function getRemoteOut() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'remoteLogSet'`,
},
@@ -206,7 +206,7 @@ export async function getRemoteOut() {
export async function updateRemoteOut(data: Record<string, any>) {
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='remoteLogSet'`,
method: 'put',
method: 'PUT',
data: { data: { value_json: JSON.stringify(data) } },
});
// 解析数据
@@ -254,7 +254,7 @@ export async function exportLog(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/${query.logType}`,
method: 'get',
method: 'GET',
params: {
SQL: querySQL,
},
@@ -277,7 +277,7 @@ export async function exportLog(query: Record<string, any>) {
export async function backupLog(logType: string) {
const result = await request({
url: `/api/rest/dataManagement/v1/omc_db/${logType}/backup`,
method: 'post',
method: 'POST',
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
@@ -300,7 +300,7 @@ export async function backupLog(logType: string) {
export async function backupDownload(path: string) {
return request({
url: `/api/rest/fileManagement/v1/path/file?path=${path}`,
method: 'get',
method: 'GET',
responseType: 'blob',
timeout: 180_000,
});
@@ -314,7 +314,7 @@ export async function backupDownload(path: string) {
export function backupFileList() {
return request({
url: `/api/rest/fileManagement/v1/files/listFiles`,
method: 'post',
method: 'POST',
data: {
path: '/usr/local/omc/database',
expand: true,

View File

@@ -1,69 +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: DataList = {
total: 0,
rows: [],
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.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}

View File

@@ -41,7 +41,7 @@ export async function listOperationLog(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/operation_log`,
method: 'get',
method: 'GET',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
@@ -50,9 +50,8 @@ export async function listOperationLog(query: Record<string, any>) {
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
const data = {
data: { total: 0, rows: [] as any },
code: result.code,
msg: result.msg,
};
@@ -60,9 +59,9 @@ export async function listOperationLog(query: Record<string, any>) {
const itemData = item['operation_log'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
data.data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
data.data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});

View File

@@ -1,72 +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: DataList = {
total: 0,
rows: [],
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.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}

View File

@@ -1,59 +0,0 @@
import { request } from '@/plugins/http-fetch';
// 登录方法
export function login(data: Record<string, string>) {
return request({
url: '/login',
method: 'post',
data: data,
whithToken: false,
});
}
/**
* 注册方法
* @param data 注册对象
* @returns object
*/
export function register(data: Record<string, any>) {
return request({
url: '/register',
method: 'post',
data: data,
whithToken: false,
});
}
/**
* 获取用户详细信息
* @returns object
*/
export function getInfo() {
return request({
url: '/getInfo',
method: 'get',
});
}
/**
* 退出方法
* @returns object
*/
export function logout() {
return request({
url: '/logout',
method: 'post',
});
}
/**
* 获取验证码
* @returns object
*/
export function getCaptchaImage() {
return request({
url: '/captchaImage',
method: 'get',
whithToken: false,
});
}

View File

@@ -15,7 +15,7 @@ export async function getOperationSet() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM config WHERE config_tag = 'operationSet'`,
},
@@ -45,7 +45,7 @@ export async function getOperationSet() {
export async function updateOperationSet(data: Record<string, any>) {
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/config?WHERE=config_tag='operationSet'`,
method: 'put',
method: 'PUT',
data: { data: { value_json: JSON.stringify(data) } },
});
// 解析数据

View File

@@ -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,46 +6,42 @@ 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`,
method: 'get',
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,
});
// 解析数据
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 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/mml?ne_id=${neId}`,
method: 'post',
data: { mml: cmdArr },
return request({
url: '/tool/mml/command',
method: 'POST',
data: {
neType: neType,
neId: neId,
type: objectType,
command: cmdArr,
},
timeout: 180_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
result.data = result.data.data;
}
return result;
}

View File

@@ -10,7 +10,7 @@ export async function getMMLByOMC() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/mml_command`,
method: 'get',
method: 'GET',
params: {
SQL: `select * from mml_command where ne_type = 'OMC' and status = 'Active'`,
},
@@ -35,7 +35,7 @@ export async function sendMMlByOMC(neId: string, cmdArr: string[]) {
// 发起请求
const result = await request({
url: `/api/rest/operationManagement/v1/elementType/OMC/objectType/mml?ne_id=${neId}`,
method: 'post',
method: 'POST',
data: { mml: cmdArr },
timeout: 180_000,
});

View File

@@ -1,28 +1,21 @@
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',
return request({
url: '/tool/mml/subscriber/list',
method: 'GET',
params: {
SQL: `select * from mml_subscriber where ne_type = 'UDM' and status = 'Active'`,
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_subscriber']),
});
}
return result;
}
/**
@@ -32,16 +25,15 @@ export async function getMMLByUDM() {
* @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 },
return request({
url: '/tool/mml/command',
method: 'POST',
data: {
neType: 'UDM',
neId: neId,
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;
}

View File

@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
export function getCache() {
return request({
url: '/monitor/cache',
method: 'get',
method: 'GET',
});
}
@@ -17,8 +17,8 @@ export function getCache() {
*/
export function listCacheName() {
return request({
url: '/monitor/cache/getNames',
method: 'get',
url: '/monitor/cache/names',
method: 'GET',
});
}
@@ -29,8 +29,9 @@ export function listCacheName() {
*/
export function listCacheKey(cacheName: string) {
return request({
url: `/monitor/cache/getKeys/${cacheName}`,
method: 'get',
url: `/monitor/cache/keys`,
method: 'GET',
params: { cacheName },
});
}
@@ -42,8 +43,22 @@ export function listCacheKey(cacheName: string) {
*/
export function getCacheValue(cacheName: string, cacheKey: string) {
return request({
url: `/monitor/cache/getValue/${cacheName}/${cacheKey}`,
method: 'get',
url: `/monitor/cache/value`,
method: 'GET',
params: { cacheName, cacheKey },
});
}
/**
* 缓存名称列表安全删除
*
* 指定可清理的缓存key
* @returns object
*/
export function clearCacheSafe() {
return request({
url: '/monitor/cache/names',
method: 'DELETE',
});
}
@@ -54,8 +69,9 @@ export function getCacheValue(cacheName: string, cacheKey: string) {
*/
export function clearCacheName(cacheName: string) {
return request({
url: `/monitor/cache/clearCacheName/${cacheName}`,
method: 'delete',
url: `/monitor/cache/keys`,
method: 'DELETE',
params: { cacheName },
});
}
@@ -67,20 +83,8 @@ export function clearCacheName(cacheName: string) {
*/
export function clearCacheKey(cacheName: string, cacheKey: string) {
return request({
url: `/monitor/cache/clearCacheKey/${cacheName}/${cacheKey}`,
method: 'delete',
});
}
/**
* 安全清理缓存名称
*
* 指定可清理的缓存key
* @returns object
*/
export function clearCacheSafe() {
return request({
url: '/monitor/cache/clearCacheSafe',
method: 'delete',
url: `/monitor/cache/value`,
method: 'DELETE',
params: { cacheName, cacheKey },
});
}

View File

@@ -8,8 +8,8 @@ import { request } from '@/plugins/http-fetch';
export function exportJob(query: Record<string, any>) {
return request({
url: '/monitor/job/export',
method: 'post',
data: query,
method: 'GET',
params: query,
responseType: 'blob',
});
}
@@ -22,7 +22,7 @@ export function exportJob(query: Record<string, any>) {
export function listJob(query: Record<string, any>) {
return request({
url: '/monitor/job/list',
method: 'get',
method: 'GET',
params: query,
});
}
@@ -35,7 +35,7 @@ export function listJob(query: Record<string, any>) {
export function getJob(jobId: string | number) {
return request({
url: `/monitor/job/${jobId}`,
method: 'get',
method: 'GET',
});
}
@@ -47,7 +47,7 @@ export function getJob(jobId: string | number) {
export function addJob(data: Record<string, any>) {
return request({
url: '/monitor/job',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -60,7 +60,7 @@ export function addJob(data: Record<string, any>) {
export function updateJob(data: Record<string, any>) {
return request({
url: '/monitor/job',
method: 'put',
method: 'PUT',
data: data,
});
}
@@ -73,7 +73,7 @@ export function updateJob(data: Record<string, any>) {
export function delJob(jobId: string | number) {
return request({
url: `/monitor/job/${jobId}`,
method: 'delete',
method: 'DELETE',
});
}
@@ -85,14 +85,14 @@ export function delJob(jobId: string | number) {
*/
export function changeJobStatus(
jobId: string | number,
status: string | number
statusFlag: string | number
) {
return request({
url: '/monitor/job/changeStatus',
method: 'put',
url: '/monitor/job/status',
method: 'PUT',
data: {
jobId,
status,
statusFlag,
},
});
}
@@ -105,7 +105,7 @@ export function changeJobStatus(
export function runJob(jobId: string) {
return request({
url: `/monitor/job/run/${jobId}`,
method: 'put',
method: 'PUT',
});
}
@@ -115,7 +115,7 @@ export function runJob(jobId: string) {
*/
export function resetQueueJob() {
return request({
url: '/monitor/job/resetQueueJob',
method: 'put',
url: '/monitor/job/reset',
method: 'PUT',
});
}

View File

@@ -5,13 +5,11 @@ import { request } from '@/plugins/http-fetch';
* @param query 查询参数
* @returns bolb
*/
export function exportJobLog(
query: Record<string, any>
) {
export function exportJobLog(query: Record<string, any>) {
return request({
url: '/monitor/jobLog/export',
method: 'post',
data: query,
url: '/monitor/job/log/export',
method: 'GET',
params: query,
responseType: 'blob',
});
}
@@ -23,8 +21,8 @@ export function exportJobLog(
*/
export function listJobLog(query: Record<string, any>) {
return request({
url: '/monitor/jobLog/list',
method: 'get',
url: '/monitor/job/log/list',
method: 'GET',
params: query,
});
}
@@ -36,8 +34,8 @@ export function listJobLog(query: Record<string, any>) {
*/
export function delJobLog(jobLogId: string) {
return request({
url: `/monitor/jobLog/${jobLogId}`,
method: 'delete',
url: `/monitor/job/log/${jobLogId}`,
method: 'DELETE',
});
}
@@ -47,7 +45,7 @@ export function delJobLog(jobLogId: string) {
*/
export function cleanJobLog() {
return request({
url: '/monitor/jobLog/clean',
method: 'delete',
url: '/monitor/job/log/clean',
method: 'DELETE',
});
}

View File

@@ -4,7 +4,8 @@ import { request } from '@/plugins/http-fetch';
export function getLoad(query: Record<string, any>) {
return request({
url: '/monitor/load',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
}

View File

@@ -7,8 +7,8 @@ import { request } from '@/plugins/http-fetch';
*/
export function listOnline(query: Record<string, any>) {
return request({
url: '/monitor/online/list',
method: 'get',
url: '/monitor/user-online/list',
method: 'GET',
params: query,
});
}
@@ -20,7 +20,7 @@ export function listOnline(query: Record<string, any>) {
*/
export function forceLogout(tokenId: string) {
return request({
url: `/monitor/online/${tokenId}`,
method: 'delete',
url: `/monitor/user-online/logout/${tokenId}`,
method: 'DELETE',
});
}

View File

@@ -1,93 +0,0 @@
import {
RESULT_CODE_ERROR,
RESULT_CODE_SUCCESS,
RESULT_MSG_ERROR,
} from '@/constants/result-constants';
import { language, request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询用户会话列表
* @param query 查询参数
* @returns object
*/
export async function listSession(query: Record<string, any>) {
let totalSQL = 'select count(*) as total from session where 1=1 ';
let rowsSQL = 'select * from session where 1=1 ';
// 查询
let querySQL = '';
if (query.accountId) {
querySQL += ` and account_id like '%${query.accountId}%' `;
}
if (query.ip) {
querySQL += ` and host like '%${query.ip}%' `;
}
// 分页
const pageNum = (query.pageNum - 1) * query.pageSize;
const limtSql = ` limit ${pageNum},${query.pageSize} `;
// 排序
let sortSql = ' order by login_time ';
if (query.sortOrder === 'desc') {
sortSql += ' desc ';
} else {
sortSql += ' asc ';
}
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/session`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['session'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 强退用户会话
* @param tokenId 授权标识
* @returns object
*/
export async function logoutSession(id: string) {
const result = await request({
url: `/api/rest/databaseManagement/v1/omc_db/session?WHERE=id='${id}'`,
method: 'delete',
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data.data) {
let rows = result.data.data.affectedRows;
if (rows) {
delete result.data;
return result;
} else {
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
}
return result;
}

View File

@@ -3,7 +3,7 @@ import { request } from '@/plugins/http-fetch';
/**服务器服务信息 */
export function getSystemInfo() {
return request({
url: '/monitor/system-info',
method: 'get',
url: '/monitor/system',
method: 'GET',
});
}

View File

@@ -4,7 +4,7 @@ import { request } from '@/plugins/http-fetch';
export function getGraphGroups() {
return request({
url: '/chart/graph/groups',
method: 'get',
method: 'GET',
});
}
@@ -12,7 +12,7 @@ export function getGraphGroups() {
export function getGraphData(group: string) {
return request({
url: '/chart/graph',
method: 'get',
method: 'GET',
params: {
group,
},
@@ -23,7 +23,7 @@ export function getGraphData(group: string) {
export function saveGraphData(group: string, data: Record<string, any>) {
return request({
url: '/chart/graph',
method: 'post',
method: 'POST',
data: {
group,
data,
@@ -35,6 +35,6 @@ export function saveGraphData(group: string, data: Record<string, any>) {
export function delGraphData(group: string) {
return request({
url: `/chart/graph/${group}`,
method: 'delete',
method: 'DELETE',
});
}

View File

@@ -1,29 +0,0 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询网元列表
* @param query 查询参数
* @returns object
*/
export function listNe(query: Record<string, any>) {
return request({
url: '/ne/list',
method: 'get',
params: query,
timeout: 60_000,
});
}
/**
* 查询网元状态
* @param neType 网元类型
* @param neId 网元ID
* @returns object
*/
export function stateNe(neType: string, neId: string) {
return request({
url: '/ne/state',
method: 'get',
params: { neType, neId },
});
}

118
src/api/ne/neConfig.ts Normal file
View File

@@ -0,0 +1,118 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
/**
* 网元参数配置可用属性值列表指定网元类型全部无分页
* @param query 查询参数
* @returns object
*/
export function getAllNeConfig(neType: string, neId: string) {
return request({
url: `/ne/config/list/${neType}`,
method: 'GET',
params: { neId },
timeout: 60_000,
});
}
/**
* 网元参数配置数据信息
* @param params 数据 {neType,neId,paramName}
* @returns object
*/
export function getNeConfigData(params: Record<string, any>) {
return request({
url: `/ne/config/data`,
params,
method: 'GET',
});
}
/**
* 网元参数配置数据更新
* @param data 数据 {neType,neId,paramName:"参数名",paramData:{参数},loc:"层级index仅array"}
* @returns object
*/
export function editNeConfigData(data: Record<string, any>) {
return request({
url: `/ne/config/data`,
method: 'PUT',
data: data,
});
}
/**
* 网元参数配置数据新增array
* @param data 数据 {neType,neId,paramName:"参数名",paramData:{参数},loc:"层级index"}
* @returns object
*/
export function addNeConfigData(data: Record<string, any>) {
return request({
url: `/ne/config/data`,
method: 'POST',
data: data,
});
}
/**
* 网元参数配置数据删除array
* @param params 数据 {neType,neId,paramName:"参数名",loc:"层级index"}
* @returns object
*/
export function delNeConfigData(params: Record<string, any>) {
return request({
url: `/ne/config/data`,
method: 'DELETE',
params,
});
}
/**
* 从参数配置PCF中获取对应信息提供给PCF用户策略输入框
* @param neId
* @returns object {pccRules,sessionRules,qosTemplate,headerEnrichTemplate,serviceAreaRestriction}
*/
export async function getPCFRule(neId: any) {
const paramNameArr = [
'pccRules',
'sessionRules',
'qosTemplate',
'headerEnrichTemplate',
'serviceAreaRestriction',
];
const reqArr = [];
for (const paramName of paramNameArr) {
reqArr.push(
request({
url: `/ne/config/data`,
params: { neType: 'PCF', neId, paramName },
method: 'GET',
})
);
}
return await Promise.allSettled(reqArr).then(resArr => {
// 规则数据
const obj: any = {};
resArr.forEach((item, i: number) => {
if (item.status === 'fulfilled') {
const res = item.value;
if (res.code === RESULT_CODE_SUCCESS) {
const key = paramNameArr[i];
obj[key] = res.data.map((item: any) => {
if ('qosTemplate' === key) {
return { value: item.qosId, label: item.qosId };
}
if ('headerEnrichTemplate' === key) {
return { value: item.templateName, label: item.templateName };
}
if ('serviceAreaRestriction' === key) {
return { value: item.name, label: item.name };
}
return { value: item.ruleId, label: item.ruleId };
});
}
}
});
return obj;
});
}

View File

@@ -0,0 +1,85 @@
import { CACHE_SESSION_CRYPTO_API } from '@/constants/cache-keys-constants';
import { request } from '@/plugins/http-fetch';
import { sessionGet } from '@/utils/cache-session-utils';
/**
* 网元配置文件备份记录列表
* @param query 查询参数
* @returns object
*/
export function listNeConfigBackup(query: Record<string, any>) {
return request({
url: '/ne/config/backup/list',
method: 'GET',
params: query,
});
}
/**
* 网元配置文件备份记录修改
* @param data 数据 { id, name, remark }
* @returns object
*/
export function updateNeConfigBackup(data: Record<string, any>) {
return request({
url: '/ne/config/backup',
method: 'PUT',
data: data,
});
}
/**
* 网元配置文件备份记录下载
* @param id 记录ID
* @returns object
*/
export async function downNeConfigBackup(id: string) {
return await request({
url: '/ne/config/backup/download',
method: 'GET',
params: { id },
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 网元配置文件备份记录删除
* @param id 记录ID
* @returns object
*/
export async function delNeConfigBackup(id: string) {
return request({
url: '/ne/config/backup',
method: 'DELETE',
params: { id },
});
}
/**
* 网元配置文件备份导出
* @param data 数据 { neType, neId }
* @returns object
*/
export function exportNeConfigBackup(data: Record<string, any>) {
return request({
url: '/ne/config/backup/export',
method: 'POST',
data: data,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 网元配置文件备份导入
* @param data 数据 { neType, neId, type, path }
* @returns object
*/
export function importNeConfigBackup(data: Record<string, any>) {
return request({
url: '/ne/config/backup/import',
method: 'POST',
data: data,
});
}

103
src/api/ne/neHost.ts Normal file
View File

@@ -0,0 +1,103 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询网元主机列表
* @param query 查询参数
* @returns object
*/
export function listNeHost(query: Record<string, any>) {
return request({
url: '/ne/host/list',
method: 'GET',
params: query,
});
}
/**
* 查询网元主机详细
* @param hostId 网元主机ID
* @returns object
*/
export function getNeHost(hostId: string | number) {
return request({
url: `/ne/host/${hostId}`,
method: 'GET',
});
}
/**
* 新增网元主机
* @param data 网元主机对象
* @returns object
*/
export function addNeHost(data: Record<string, any>) {
return request({
url: '/ne/host',
method: 'POST',
data: data,
});
}
/**
* 修改网元主机
* @param data 网元主机对象
* @returns object
*/
export function updateNeHost(data: Record<string, any>) {
return request({
url: '/ne/host',
method: 'PUT',
data: data,
});
}
/**
* 删除网元主机
* @param hostId 网元主机ID
* @returns object
*/
export function delNeHost(hostId: string | number) {
return request({
url: `/ne/host/${hostId}`,
method: 'DELETE',
});
}
/**
* 测试连接网元主机
* @param data 网元主机对象
* @returns object
*/
export function testNeHost(data: Record<string, any>) {
return request({
url: '/ne/host/test',
method: 'POST',
data: data,
});
}
/**
* 网元主机SSH方式检查服务器环境
* @param data 网元主机对象
* @returns object
*/
export function neHostCheckInfo(data: Record<string, any>) {
return request({
url: '/ne/host/checkBySSH',
method: 'POST',
data: data,
});
}
/**
* 网元主机SSH方式授权免密发送
* @param data 网元主机对象
* @returns object
*/
export function neHostAuthorizedRSA(data: Record<string, any>) {
return request({
url: '/ne/host/authorizedBySSH',
method: 'POST',
data: data,
});
}

64
src/api/ne/neHostCmd.ts Normal file
View File

@@ -0,0 +1,64 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询网元主机命令列表
* @param query 查询参数
* @returns object
*/
export function listNeHostCmd(query: Record<string, any>) {
return request({
url: '/ne/hostCmd/list',
method: 'GET',
params: query,
});
}
/**
* 查询网元主机命令详细
* @param cmdId 网元主机命令ID
* @returns object
*/
export function getNeHostCmd(cmdId: string | number) {
return request({
url: `/ne/hostCmd/${cmdId}`,
method: 'GET',
});
}
/**
* 新增网元主机命令
* @param data 网元主机命令对象
* @returns object
*/
export function addNeHostCmd(data: Record<string, any>) {
return request({
url: '/ne/hostCmd',
method: 'POST',
data: data,
});
}
/**
* 修改网元主机命令
* @param data 网元主机命令对象
* @returns object
*/
export function updateNeHostCmd(data: Record<string, any>) {
return request({
url: '/ne/hostCmd',
method: 'PUT',
data: data,
});
}
/**
* 删除网元主机命令
* @param cmdId 网元主机命令ID
* @returns object
*/
export function delNeHostCmd(cmdId: string | number) {
return request({
url: `/ne/hostCmd/${cmdId}`,
method: 'DELETE',
});
}

185
src/api/ne/neInfo.ts Normal file
View File

@@ -0,0 +1,185 @@
import { CACHE_SESSION_CRYPTO_API } from '@/constants/cache-keys-constants';
import { sessionGet } from '@/utils/cache-session-utils';
import { request } from '@/plugins/http-fetch';
/**
* 查询网元列表
* @param query 查询参数
* @returns object
*/
export function listNeInfo(query: Record<string, any>) {
return request({
url: '/ne/info/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* 查询网元信息详细
* @param infoId 信息ID
* @returns object
*/
export function getNeInfo(infoId: string | number) {
return request({
url: `/ne/info/${infoId}`,
method: 'GET',
});
}
/**
* 网元信息新增
* @param data 网元对象
* @returns object
*/
export function addNeInfo(data: Record<string, any>) {
return request({
url: `/ne/info`,
method: 'POST',
data: data,
crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false',
timeout: 30_000,
});
}
/**
* 网元信息修改
* @param data 网元对象
* @returns object
*/
export function updateNeInfo(data: Record<string, any>) {
return request({
url: `/ne/info`,
method: 'PUT',
data: data,
crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false',
timeout: 30_000,
});
}
/**
* 网元信息删除
* @param id 信息ID
* @returns object
*/
export function delNeInfo(infoIds: string | number) {
return request({
url: `/ne/info/${infoIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* 查询网元列表全部无分页
* @param query 查询参数 neType neId bandStatus bandHost
* @returns object
*/
export function listAllNeInfo(query: Record<string, any>) {
return request({
url: '/ne/info/listAll',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* 查询网元状态
* @param neType 网元类型
* @param neId 网元ID
* @returns object
*/
export function stateNeInfo(neType: string, neId: string) {
return request({
url: '/ne/info/state',
method: 'GET',
params: { neType, neId },
});
}
/**
* 查询网元信息
* @param neType 网元类型
* @param neId 网元ID
* @returns object
*/
export function getNeInfoByTypeAndID(neType: string, neId: string) {
return request({
url: '/ne/info/byTypeAndID',
method: 'GET',
params: { neType, neId },
});
}
/**
* 网元端OAM配置文件读取
* @param neType 网元类型
* @param neId 网元ID
* @returns object
*/
export function getOAMFile(neType: string, neId: string) {
return request({
url: '/ne/info/oamFile',
method: 'GET',
params: { neType, neId },
});
}
/**
* 网元端配置文件写入
* @param neType 网元类型
* @param neId 网元ID
* @param content 用json对象
* @param sync 同步到网元
* @returns object
*/
export function saveOAMFile(data: Record<string, any>) {
return request({
url: `/ne/info/oamFile`,
method: 'PUT',
data: data,
timeout: 60_000,
});
}
/**
* 网元端公共配置文件读取
* @returns object
*/
export function getPara5GFilee() {
return request({
url: '/ne/info/para5GFile',
method: 'GET',
});
}
/**
* 网元端公共配置文件写入
* @param content txt内容为字符串 其他文件格式都用json对象
* @param syncNe 同步到网元端 NeType@ NeId
* @returns object
*/
export function savePara5GFile(data: Record<string, any>) {
return request({
url: `/ne/info/para5GFile`,
method: 'PUT',
data: data,
timeout: 60_000,
});
}
/**
* 网元服务操作
* @param data 对象 {neType,neId,action}
* @returns object
*/
export function serviceNeAction(data: Record<string, any>) {
return request({
url: `/ne/action/service`,
method: 'PUT',
data: data,
timeout: 60_000,
});
}

83
src/api/ne/neLicense.ts Normal file
View File

@@ -0,0 +1,83 @@
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 },
});
}

80
src/api/ne/neSoftware.ts Normal file
View File

@@ -0,0 +1,80 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询网元版本列表
* @param query 查询参数
* @returns object
*/
export function listNeSoftware(query: Record<string, any>) {
return request({
url: '/ne/software/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* 查询网元软件包详细
* @param softwareId 信息ID
* @returns object
*/
export function getNeSoftware(softwareId: string | number) {
return request({
url: `/ne/software/${softwareId}`,
method: 'GET',
});
}
/**
* 网元软件包新增
* @param data 网元对象
* @returns object
*/
export function addNeSoftware(data: Record<string, any>) {
return request({
url: `/ne/software`,
method: 'POST',
data: data,
repeatSubmit: false,
});
}
/**
* 网元软件包修改
* @param data 网元对象
* @returns object
*/
export function updateNeSoftware(data: Record<string, any>) {
return request({
url: `/ne/software`,
method: 'PUT',
data: data,
});
}
/**
* 网元软件包删除
* @param id 信息ID
* @returns object
*/
export function delNeSoftware(softwareIds: string | number) {
return request({
url: `/ne/software/${softwareIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* 网元软件包设为网元新版本
* @param data data { "version": "2.2404.18", "neType": "SMF", "name": "smf-r2.2404.18-ub22.deb"}
* @returns object
*/
export function newNeVersion(data: Record<string, any>) {
return request({
url: `/ne/software/newNeVersion`,
method: 'POST',
data: data,
});
}

41
src/api/ne/neVersion.ts Normal file
View File

@@ -0,0 +1,41 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询网元版本列表
* @param query 查询参数
* @returns object
*/
export function listNeVersion(query: Record<string, any>) {
return request({
url: '/ne/version/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* 查询网元版本详细
* @param versionId 信息ID
* @returns object
*/
export function getNeVersion(versionId: string | number) {
return request({
url: `/ne/version/${versionId}`,
method: 'GET',
});
}
/**
* 网元版本操作
* @param data {neType,neId,preinput:{参数},action:"upgrade"}
* @returns object
*/
export function operateNeVersion(data: Record<string, any>) {
return request({
url: `/ne/version/operate`,
method: 'POST',
data: data,
timeout: 180_000,
});
}

130
src/api/neData/amf.ts Normal file
View File

@@ -0,0 +1,130 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询AMF-UE会话事件列表
* @param query 查询参数
* @returns object
*/
export function listAMFDataUE(query: Record<string, any>) {
return request({
url: '/neData/amf/ue/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* AMF-UE会话删除
* @param id 信息ID
* @returns object
*/
export function delAMFDataUE(ueIds: string | number) {
return request({
url: `/neData/amf/ue/${ueIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* AMF-UE会话列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportAMFDataUE(query: Record<string, any>) {
return request({
url: '/neData/amf/ue/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* AMF-接入基站信息列表
* @param query 查询参数 neId=001&id=1
* @returns object
*/
export function listAMFNblist(query: Record<string, any>) {
return request({
url: '/neData/amf/nb/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* AMF-接入基站状态信息列表
* @param query 查询参数 neId=001&state=1
* @returns object
*/
export function listAMFNbStatelist(query: Record<string, any>) {
return request({
url: '/neData/amf/nb/list-cfg',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* AMF-接入基站状态信息新增
* @param neId 网元ID
* @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>) {
return request({
url: `/ne/config/data`,
method: 'POST',
data: {
neType: 'AMF',
neId: neId,
paramName: 'gnbList',
paramData: data,
loc: `${data.index}`,
},
});
}
/**
* AMF-接入基站状态信息修改
* @param neId 网元ID
* @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>) {
return request({
url: `/ne/config/data`,
method: 'PUT',
data: {
neType: 'AMF',
neId: neId,
paramName: 'gnbList',
paramData: data,
loc: `${data.index}`,
},
});
}
/**
* AMF-接入基站状态信息删除
* @param neId 网元ID
* @param index 数据index
* @returns object
*/
export function delAMFNbState(neId: string, index: string | number) {
return request({
url: `/ne/config/data`,
method: 'DELETE',
params: {
neType: 'AMF',
neId: neId,
paramName: 'gnbList',
loc: `${index}`,
},
});
}

68
src/api/neData/backup.ts Normal file
View File

@@ -0,0 +1,68 @@
import { request } from '@/plugins/http-fetch';
/**
* 备份文件-获取FTP配置
* @returns object
*/
export function getBackupFTP() {
return request({
url: '/neData/backup/ftp',
method: 'GET',
});
}
/**
* 备份文件-文件FTP发送
* @param data 对象
* @returns object
*/
export function pushBackupFTP(data: Record<string, any>) {
return request({
url: '/neData/backup/ftp',
method: 'POST',
data,
});
}
/**
* 备份文件-更新FTP配置
* @param data 对象
* @returns object
*/
export function updateBackupFTP(data: Record<string, any>) {
return request({
url: '/neData/backup/ftp',
method: 'PUT',
data,
});
}
/**
* 备份文件-导出OMC
* @returns object
*/
export function exportBackupOMC() {
return request({
url: '/neData/backup/export-omc',
method: 'POST',
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 备份文件-导入OMC
* @param filePath 备份文件上传返回的/upload 路径
* @returns object
*/
export function importBackupOMC(filePath: string) {
return request({
url: '/neData/backup/import-omc',
method: 'POST',
data: {
neType: 'OMC',
path: filePath,
},
timeout: 180_000,
});
}

69
src/api/neData/ims.ts Normal file
View File

@@ -0,0 +1,69 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询IMS-CDR会话事件
* @param query 查询参数
* @returns object
*/
export function listIMSDataCDR(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* IMS-CDR会话删除
* @param id 信息ID
* @returns object
*/
export function delIMSDataCDR(cdrIds: string | number) {
return request({
url: `/neData/ims/cdr/${cdrIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* IMS-CDR会话列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportIMSDataCDR(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* SMF-在线订阅用户数量
* @param query 查询参数
* @returns object
*/
export function listIMSSessionNum(neId: string) {
return request({
url: '/neData/ims/session/num',
method: 'GET',
params: { neId },
});
}
/**
* IMS-在线会话用户列表信息
* @param query 查询参数 {neId, imsi, msisdn}
* @returns objectv
*/
export function listIMSSessionList(query: Record<string, any>) {
return request({
url: '/neData/ims/session/list',
method: 'GET',
params: query,
});
}

130
src/api/neData/mme.ts Normal file
View File

@@ -0,0 +1,130 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询MME-UE会话事件列表
* @param query 查询参数
* @returns object
*/
export function listMMEDataUE(query: Record<string, any>) {
return request({
url: '/neData/mme/ue/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* MME-UE会话删除
* @param id 信息ID
* @returns object
*/
export function delMMEDataUE(ueIds: string | number) {
return request({
url: `/neData/mme/ue/${ueIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* MME-UE会话列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportMMEDataUE(query: Record<string, any>) {
return request({
url: '/neData/mme/ue/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* MME-接入基站信息列表
* @param query 查询参数 neId=001&id=1
* @returns object
*/
export function listMMENblist(query: Record<string, any>) {
return request({
url: '/neData/mme/nb/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* MME-接入基站状态信息列表
* @param query 查询参数 neId=001&state=1
* @returns object
*/
export function listMMENbStatelist(query: Record<string, any>) {
return request({
url: '/neData/mme/nb/list-cfg',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* MME-接入基站状态信息新增
* @param neId 网元ID
* @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>) {
return request({
url: `/ne/config/data`,
method: 'POST',
data: {
neType: 'MME',
neId: neId,
paramName: 'enbList',
paramData: data,
loc: `${data.index}`,
},
});
}
/**
* MME-接入基站状态信息修改
* @param neId 网元ID
* @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>) {
return request({
url: `/ne/config/data`,
method: 'PUT',
data: {
neType: 'MME',
neId: neId,
paramName: 'enbList',
paramData: data,
loc: `${data.index}`,
},
});
}
/**
* MME-接入基站状态信息删除
* @param neId 网元ID
* @param index 数据index
* @returns object
*/
export function delMMENbState(neId: string, index: string | number) {
return request({
url: `/ne/config/data`,
method: 'DELETE',
params: {
neType: 'MME',
neId: neId,
paramName: 'enbList',
loc: `${index}`,
},
});
}

View File

@@ -0,0 +1,30 @@
import { request } from '@/plugins/http-fetch';
/**
* 历史记录列表
* @param query 查询参数
* @returns object
*/
export function listNBState(query: Record<string, any>) {
return request({
url: '/neData/nb-state/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* 历史记录列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportNBState(query: Record<string, any>) {
return request({
url: '/neData/nb-state/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}

82
src/api/neData/pcf.ts Normal file
View File

@@ -0,0 +1,82 @@
import { request } from '@/plugins/http-fetch';
/**
* PCF-策略配置列表
* @param query 查询参数
* @returns object
*/
export function listPCFRule(query: Record<string, any>) {
return request({
url: '/neData/pcf/rule/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* PCF-策略配置添加
* @param data 参数
* @returns object
*/
export function addPCFRule(data: Record<string, any>) {
return request({
url: `/neData/pcf/rule`,
method: 'POST',
data,
});
}
/**
* PCF-策略配置更新
* @param data 参数
* @returns object
*/
export function editPCFRule(data: Record<string, any>) {
return request({
url: `/neData/pcf/rule`,
method: 'PUT',
data,
});
}
/**
* PCF-策略配置删除
*@param data 参数
* @returns object
*/
export function delPCFRule(data: Record<string, any>) {
return request({
url: `/neData/pcf/rule`,
method: 'DELETE',
params: data,
});
}
/**
* PCF-策略配置导出
* @param data 参数{ neId, fileType }
* @returns object
*/
export function exportPCFRule(data: Record<string, any>) {
return request({
url: '/neData/pcf/rule/export',
method: 'GET',
params: data,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* PCF-策略配置导入
* @param data 参数
* @returns object
*/
export function importPCFRule(data: Record<string, any>) {
return request({
url: '/neData/pcf/rule/import',
method: 'PUT',
data,
});
}

43
src/api/neData/sgwc.ts Normal file
View File

@@ -0,0 +1,43 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询SGWC-CDR会话事件
* @param query 查询参数
* @returns object
*/
export function listSGWCDataCDR(query: Record<string, any>) {
return request({
url: '/neData/sgwc/cdr/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* SGWC-CDR会话删除
* @param id 信息ID
* @returns object
*/
export function delSGWCDataCDR(cdrIds: string | number) {
return request({
url: `/neData/sgwc/cdr/${cdrIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* SGWC-CDR会话列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportSGWCDataCDR(query: Record<string, any>) {
return request({
url: '/neData/sgwc/cdr/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}

69
src/api/neData/smf.ts Normal file
View File

@@ -0,0 +1,69 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询SMF-CDR会话事件
* @param query 查询参数
* @returns object
*/
export function listSMFDataCDR(query: Record<string, any>) {
return request({
url: '/neData/smf/cdr/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* SMF-CDR会话删除
* @param id 信息ID
* @returns object
*/
export function delSMFDataCDR(cdrIds: string | number) {
return request({
url: `/neData/smf/cdr/${cdrIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* SMF-CDR会话列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportSMFDataCDR(query: Record<string, any>) {
return request({
url: '/neData/smf/cdr/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* SMF-在线订阅用户数量
* @param query 查询参数
* @returns object
*/
export function listSMFSubNum(neId: string) {
return request({
url: '/neData/smf/sub/num',
method: 'GET',
params: { neId },
});
}
/**
* SMF-在线订阅用户列表信息
* @param query 查询参数 {neId, pageNum, imsi, msisdn, upstate}
* @returns object
*/
export function listSMFSubList(query: Record<string, any>) {
return request({
url: '/neData/smf/sub/list',
method: 'GET',
params: query,
});
}

43
src/api/neData/smsc.ts Normal file
View File

@@ -0,0 +1,43 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询SMSC-CDR会话事件
* @param query 查询参数
* @returns object
*/
export function listSMSCDataCDR(query: Record<string, any>) {
return request({
url: '/neData/smsc/cdr/list',
method: 'GET',
params: query,
timeout: 60_000,
});
}
/**
* SMSC-CDR会话删除
* @param id 信息ID
* @returns object
*/
export function delSMSCDataCDR(cdrIds: string | number) {
return request({
url: `/neData/smsc/cdr/${cdrIds}`,
method: 'DELETE',
timeout: 60_000,
});
}
/**
* SMSC-CDR会话列表导出
* @param query 查询列表条件
* @returns object
*/
export function exportSMSCDataCDR(query: Record<string, any>) {
return request({
url: '/neData/smsc/cdr/export',
method: 'GET',
params: query,
responseType: 'blob',
timeout: 180_000,
});
}

156
src/api/neData/udm_auth.ts Normal file
View File

@@ -0,0 +1,156 @@
import { request } from '@/plugins/http-fetch';
/**
* UDM鉴权用户重载数据
* @param neId 网元ID
* @returns object
*/
export function resetUDMAuth(neId: string) {
return request({
url: `/neData/udm/auth/resetData/${neId}`,
method: 'PUT',
timeout: 180_000,
});
}
/**
* UDM鉴权用户列表
* @param query 查询参数
* @returns object
*/
export function listUDMAuth(query: Record<string, any>) {
return request({
url: '/neData/udm/auth/list',
method: 'GET',
params: query,
timeout: 30_000,
});
}
/**
* UDM鉴权用户信息
* @param neId 网元ID
* @param imsi IMSI
* @returns object
*/
export function getUDMAuth(neId: string, imsi: string) {
return request({
url: `/neData/udm/auth/${neId}/${imsi}`,
method: 'GET',
});
}
/**
* UDM鉴权用户新增
* @param data 鉴权对象
* @returns object
*/
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}`,
method: 'POST',
data: data,
timeout: 180_000,
});
}
/**
* UDM鉴权用户修改
* @param data 鉴权对象
* @returns object
*/
export function updateUDMAuth(data: Record<string, any>) {
return request({
url: `/neData/udm/auth/${data.neId}`,
method: 'PUT',
data: data,
timeout: 180_000,
});
}
/**
* UDM鉴权用户删除
* @param neId 网元ID
* @param imsi IMSI
* @returns object
*/
export function delUDMAuth(neId: string, imsi: string) {
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}`,
method: 'DELETE',
timeout: 180_000,
});
}
/**
* UDM鉴权用户导入
* @param data 表单数据对象
* @returns object
*/
export function importUDMAuth(data: Record<string, any>) {
return request({
url: `/neData/udm/auth/import`,
method: 'POST',
data,
timeout: 180_000,
});
}
/**
* UDM鉴权用户导出
* @param data 数据参数
* @returns bolb
*/
export function exportUDMAuth(data: Record<string, any>) {
return request({
url: '/neData/udm/auth/export',
method: 'GET',
params: data,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* UDM鉴权用户导出DecAuth
* @param neId 网元ID
* @returns bolb
*/
export function exportUDMDecAuth(neId: string) {
return request({
url: `/neData/udm/auth/export-dec?neId=${neId}`,
method: 'GET',
responseType: 'blob',
timeout: 180_000,
});
}

141
src/api/neData/udm_sub.ts Normal file
View File

@@ -0,0 +1,141 @@
import { request } from '@/plugins/http-fetch';
/**
* UDM签约用户重载数据
* @param neId 网元ID
* @returns object
*/
export function resetUDMSub(neId: string) {
return request({
url: `/neData/udm/sub/resetData/${neId}`,
method: 'PUT',
timeout: 180_000,
});
}
/**
* UDM签约用户列表
* @param query 查询参数
* @returns object
*/
export function listUDMSub(query: Record<string, any>) {
return request({
url: '/neData/udm/sub/list',
method: 'GET',
params: query,
timeout: 30_000,
});
}
/**
* UDM签约用户信息
* @param neId 网元ID
* @param imsi IMSI
* @returns object
*/
export function getUDMSub(neId: string, imsi: string) {
return request({
url: `/neData/udm/sub/${neId}/${imsi}`,
method: 'GET',
});
}
/**
* UDM签约用户新增
* @param data 签约对象
* @returns object
*/
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}`,
method: 'POST',
data: data,
timeout: 180_000,
});
}
/**
* UDM签约用户修改
* @param data 签约对象
* @returns object
*/
export function updateUDMSub(data: Record<string, any>) {
return request({
url: `/neData/udm/sub/${data.neId}`,
method: 'PUT',
data: data,
timeout: 180_000,
});
}
/**
* UDM签约用户删除
* @param data 签约对象
* @returns object
*/
export function delUDMSub(neId: string, imsi: string) {
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}`,
method: 'DELETE',
timeout: 180_000,
});
}
/**
* UDM签约用户导出
* @param data 数据参数
* @returns bolb
*/
export function exportUDMSub(data: Record<string, any>) {
return request({
url: '/neData/udm/sub/export',
method: 'GET',
params: data,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* UDM签约用户导入
* @param data 表单数据对象
* @returns object
*/
export function importUDMSub(data: Record<string, any>) {
return request({
url: `/neData/udm/sub/import`,
method: 'POST',
data,
timeout: 180_000,
});
}

134
src/api/neData/udm_voip.ts Normal file
View File

@@ -0,0 +1,134 @@
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,
});
}

View File

@@ -0,0 +1,137 @@
import { request } from '@/plugins/http-fetch';
/**
* UDMVolteIMS用户重载数据
* @param neId 网元ID
* @returns object
*/
export function resetUDMVolteIMS(neId: string) {
return request({
url: `/neData/udm/volte-ims/resetData/${neId}`,
method: 'PUT',
timeout: 180_000,
});
}
/**
* UDMVolteIMS用户列表
* @param query 查询参数
* @returns object
*/
export function listUDMVolteIMS(query: Record<string, any>) {
return request({
url: '/neData/udm/volte-ims/list',
method: 'GET',
params: query,
timeout: 30_000,
});
}
/**
* UDMVolteIMS用户信息
* @param neId 网元ID
* @param imsi IMSI
* @returns object
*/
export function getUDMVolteIMS(neId: string, imsi: string) {
return request({
url: `/neData/udm/volte-ims/${neId}/${imsi}`,
method: 'GET',
});
}
/**
* UDMVolteIMS用户新增
* @param data 签约对象
* @returns object
*/
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}`,
method: 'POST',
data: data,
timeout: 180_000,
});
}
/**
* 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 imsi IMSI
* @param num 数量
* @param tag 标签 0-voip 1-volte
* @returns object
*/
export function batchDelUDMVolteIMS(
neId: string,
imsi: string,
num: number,
tag: string
) {
return request({
url: `/neData/udm/volte-ims/${neId}/${imsi}/${num}`,
method: 'DELETE',
params: { volte: tag },
timeout: 180_000,
});
}
/**
* UDMVolteIMS用户导出
* @param data 数据参数
* @returns bolb
*/
export function exportUDMVolteIMS(data: Record<string, any>) {
return request({
url: '/neData/udm/volte-ims/export',
method: 'GET',
params: data,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* UDMVolteIMS用户导入
* @param data 表单数据对象
* @returns object
*/
export function importUDMVolteIMS(data: Record<string, any>) {
return request({
url: `/neData/udm/volte-ims/import`,
method: 'POST',
data,
timeout: 180_000,
});
}

View File

@@ -1,133 +0,0 @@
import { request } from '@/plugins/http-fetch';
/**
* 签约鉴权导出
* @param query 查询参数
* @returns bolb
*/
export function exportAuth(query: Record<string, any>) {
return request({
url: '/ne/udm/auth/export',
method: 'post',
data: query,
responseType: 'blob',
});
}
/**
* 导入鉴权数据
* @param neId 网元ID
* @param data 表单数据对象
* @returns object
*/
export function importAuthData(data: FormData) {
return request({
url: `/ne/udm/auth/import`,
method: 'post',
data,
dataType: 'form-data',
timeout: 180_000,
});
}
/**
* 查询鉴权列表
* @param query 查询参数
* @returns object
*/
export function listAuth(query: Record<string, any>) {
return request({
url: '/ne/udm/auth/list',
method: 'get',
params: query,
});
}
/**
* 查询重新更新加载全部
* @param neId 网元ID
* @returns object
*/
export function loadAuth(neId: string) {
return request({
url: `/ne/udm/auth/resetData/${neId}`,
method: 'put',
timeout: 180_000,
});
}
/**
* 查询鉴权详细
* @param neId 网元ID
* @returns object
*/
export function getAuth(neId: string, imsi: string) {
return request({
url: `/ne/udm/auth/${neId}/${imsi}`,
method: 'get',
});
}
/**
* 修改鉴权
* @param data 鉴权对象
* @returns object
*/
export function updateAuth(data: Record<string, any>) {
return request({
url: `/ne/udm/auth/${data.neId}`,
method: 'put',
data: data,
});
}
/**
* 新增鉴权
* @param data 鉴权对象
* @returns object
*/
export function addAuth(data: Record<string, any>) {
return request({
url: `/ne/udm/auth/${data.neId}`,
method: 'post',
data: data,
});
}
/**
* 批量新增鉴权
* @param data 鉴权对象
* @returns object
*/
export function batchAuth(data: Record<string, any>) {
return request({
url: `/ne/udm/auth/${data.neID}/${data.num}`,
method: 'post',
data: data,
});
}
/**
* 删除鉴权
* @param data 鉴权对象
* @returns object
*/
export function delAuth(neId: string, imsi: string) {
return request({
url: `/ne/udm/auth/${neId}/${imsi}`,
method: 'delete',
timeout: 180_000,
});
}
/**
* 批量删除鉴权
* @param data 鉴权对象
* @returns object
*/
export function batchDelAuth(data: Record<string, any>) {
return request({
url: `/ne/udm/auth/${data.neID}/${data.imsi}/${data.num}`,
method: 'delete',
});
}

View File

@@ -1,32 +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 listBase5G(query: Record<string, any>) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/${query.neType.toLowerCase()}/objectType/nbInfo`,
method: 'get',
params: query,
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
data.rows = rows;
}
// 模拟数据
// data.rows =[{"address":"192.168.1.137:38412","id":"217","name":"","ueNum":0}]
return data;
}

View File

@@ -1,64 +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 listUEInfoByIMS(query: Record<string, any>) {
query.nbId = query.id;
const result = await request({
url: '/api/rest/ueManagement/v1/elementType/ims/objectType/ueInfo',
method: 'get',
params: query,
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
data.rows = rows;
}
// 测试数据
// data.rows = [
// {
// activeTime: '2023-11-29 17:04:54',
// barring: 0,
// impu: 'sip:12307551232@ims.mnc000.mcc460.3gppnetwork.org',
// imsi: '460001230000002',
// msisdn: '12307551232',
// regState: 1,
// },
// ];
return data;
}
/**
* 首页查询IMS在线用户数
* @param query 查询参数
* @returns neId
*/
export async function listUENumByIMS(neId: String) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/ims/objectType/ueNum?neId=${neId}`,
method: 'get',
});
if (result.code === RESULT_CODE_SUCCESS) {
return Object.assign(result, {
data: result.data['ueNum'],
});
}
// 模拟数据
// { "ueNum": 0 }
// result.data = 0
return result;
}

View File

@@ -3,37 +3,14 @@ import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询列表
* @param query 查询参数
* N3IWF-在线订阅用户列表信息
* @param query 查询参数 {imsi}
* @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',
export function listN3IWFSubList(query: Record<string, any>) {
return request({
url: '/neData/n3iwf/sub/list',
method: 'GET',
params: query,
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
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;
}

View File

@@ -3,25 +3,24 @@ import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询列表
* NSSF-在线订阅用户列表信息
* @param query 查询参数 {imsi}
* @returns object
*/
export async function listNSSF() {
const result = await request({
url: '/api/rest/ueManagement/v1/elementType/nssf/objectType/subscriptions',
method: 'get',
export function listNSSFSubList() {
return request({
url: '/neData/nssf/sub/list',
method: 'GET',
});
}
/**
* NSSF-可用AMF列表信息
* @returns object
*/
export function listNSSFAmfList() {
return request({
url: '/neData/nssf/amf/list',
method: 'GET',
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
data.rows = rows;
}
return data;
}

View File

@@ -1,44 +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',
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
data.rows = rows;
}
// let testData = {
// total:0,
// rows: [
// {
// nfId: '001',
// amfSetId: '001',
// },
// {
// nfId: '002',
// amfSetId: '[001,002]',
// },
// ],
// code: 1,
// msg:'',
// };
//return testData;
return data;
}

View File

@@ -1,217 +0,0 @@
import {
RESULT_CODE_ERROR,
RESULT_CODE_SUCCESS,
} from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 规则导出
* @param data 表单数据对象
* @returns bolb
*/
export function exportRule(data: Record<string, any>) {
return request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo/file/export`,
method: 'get',
params: data,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 导入规则数据
* @param data 表单数据对象
* @returns object
*/
export function importRuleData(data: Record<string, any>) {
return request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo/file/import?neId=${data.neId}&filePath=${data.filePath}&fileType=${data.fileType}`,
method: 'put',
data,
timeout: 60_000,
});
}
/**
* 查询规则列表
* @param query 查询参数
* @returns object
*/
export async function listRules(query: Record<string, any>) {
const result = await request({
url: '/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo',
method: 'get',
params: query,
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
if (result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
rows: result.data,
};
}
if (Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
data.rows = rows;
}
}
// 模拟数据
// data.rows = [
// {
// "hdrEnrich": "dnn",
// "imsi": "160990100000003",
// "msisdn": "86755900011",
// "pccRules": "internet|ims_sig",
// "qosAudio": "qos_audio",
// "qosVideo": "qos_video",
// "rfsp": 0,
// "sar": "def_sar",
// "sessRules": "internet|ims_sig",
// "uePolicy": "uep_001"
// }
// ]
return data;
}
/**
* 查询规则详细
* @param neId 网元ID
* @returns object
*/
export async function getRule(neId: string, imsi: string) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo?neId=${neId}&imsi=${imsi}`,
method: 'get',
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
result.data = result.data.data[0];
}
return result;
}
/**
* 修改规则
* @param data 规则对象
* @returns object
*/
export async function updateRule(data: Record<string, any>) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo?neId=${data.neId}`,
method: 'put',
data: data,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
data: result.data,
};
}
return result;
}
/**
* 批量修改规则
* @param data 规则对象
* @returns object
*/
export async function batchUpdateRule(data: Record<string, any>) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo/batch/${data.num}?neId=${data.neId}`,
method: 'put',
data: data,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
data: result.data,
};
}
return result;
}
/**
* 新增规则
* @param data 规则对象
* @returns object
*/
export async function addRule(data: Record<string, any>) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo?neId=${data.neId}`,
method: 'post',
data: data,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
data: result.data,
};
}
return result;
}
/**
* 批量新增规则
* @param data 规则对象
* @returns object
*/
export async function batchAddRule(data: Record<string, any>) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo/batch/${data.num}?neId=${data.neId}`,
method: 'post',
data: data,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
data: result.data,
};
}
return result;
}
/**
* 删除规则
* @param data 规则对象
* @returns object
*/
export function delRule(neId: string, data: Record<string, any>) {
return request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo?neId=${neId}&imsi=${data.imsi}`,
method: 'delete',
});
}
/**
* 批量删除规则
* @param data 规则对象
* @returns object
*/
export async function batchDelRule(data: Record<string, any>) {
return request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo/batch/${data.num}?neId=${data.neId}&imsi=${data.imsi}`,
method: 'delete',
});
}

View File

@@ -1,85 +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 listUEInfoBySMF(query: Record<string, any>) {
query.nbId = query.id;
const result = await request({
url: '/api/rest/ueManagement/v1/elementType/smf/objectType/ueInfo',
method: 'get',
params: query,
});
let data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
const rows = parseObjLineToHump(result.data.data);
data.total = rows.length;
data.rows = rows;
}
// 模拟数据
// data.rows = [
// {
// imsi: 'imsi-460029004200044',
// msisdn: 'msisdn-12346002044',
// pduSessionInfo: [
// {
// activeTime: '2023-11-29 18:39:06',
// dnn: 'ims',
// ipv4: '10.10.48.97',
// ipv6: '',
// pduSessionID: 6,
// ranN3IP: '192.168.8.223',
// sstSD: '1-000001',
// tai: '46000-0001',
// upfN3IP: '192.168.1.161',
// },
// {
// activeTime: '2023-11-29 18:39:05',
// dnn: 'cmnet',
// ipv4: '10.10.48.62',
// ipv6: '',
// pduSessionID: 5,
// ranN3IP: '192.168.8.223',
// sstSD: '1-000001',
// tai: '46000-0001',
// upfN3IP: '192.168.1.163',
// },
// ],
// ratType: 'EUTRAN',
// },
// ];
return data;
}
/**
* 首页查询SMF在线用户数
* @param query 查询参数
* @returns neId
*/
export async function listUENumBySMF(neId: String) {
const result = await request({
url: `/api/rest/ueManagement/v1/elementType/smf/objectType/ueNum?neId=${neId}`,
method: 'get',
});
if (result.code === RESULT_CODE_SUCCESS) {
return Object.assign(result, {
data: result.data.data['ueNum'],
});
}
// 模拟数据
// { "data": { "ueNum": 0 } }
// result.data = 0
return result;
}

View File

@@ -1,135 +0,0 @@
import { request } from '@/plugins/http-fetch';
/**
* 签约列表导出
* @param query 查询参数
* @returns bolb
*/
export function exportSub(query: Record<string, any>) {
return request({
url: '/ne/udm/sub/export',
method: 'post',
data: query,
responseType: 'blob',
timeout: 180_000,
});
}
/**
* 导入签约数据
* @param neId 网元ID
* @param data 表单数据对象
* @returns object
*/
export function importSubData(data: FormData) {
return request({
url: `/ne/udm/sub/import`,
method: 'post',
data,
dataType: 'form-data',
timeout: 180_000,
});
}
/**
* 查询重新更新加载全部
* @param neId 网元ID
* @returns object
*/
export function loadSub(neId: string) {
return request({
url: `/ne/udm/sub/resetData/${neId}`,
method: 'put',
timeout: 180_000,
});
}
/**
* 查询签约列表
* @param query 查询参数
* @returns object
*/
export function listSub(query: Record<string, any>) {
return request({
url: '/ne/udm/sub/list',
method: 'get',
params: query,
});
}
/**
* 查询签约详细
* @param neId 网元ID
* @returns object
*/
export function getSub(neId: string, imsi: string) {
return request({
url: `/ne/udm/sub/${neId}/${imsi}`,
method: 'get',
});
}
/**
* 修改签约
* @param data 签约对象
* @param neId 网元ID
* @returns object
*/
export function updateSub(neId: string, data: Record<string, any>) {
return request({
url: `/ne/udm/sub/${neId}`,
method: 'put',
data: data,
});
}
/**
* 新增签约
* @param data 签约对象
* @returns object
*/
export function addSub(neID: string, data: Record<string, any>) {
return request({
url: `/ne/udm/sub/${neID}`,
method: 'post',
data: data,
});
}
/**
* 批量新增新增签约
* @param data 签约对象
* @returns object
*/
export function batchAddSub(data: Record<string, any>) {
return request({
url: `/ne/udm/sub/${data.neID}/${data.num}`,
method: 'post',
data: data,
});
}
/**
* 删除签约
* @param data 签约对象
* @returns object
*/
export function delSub(neId: string, imsi: string) {
return request({
url: `/ne/udm/sub/${neId}/${imsi}`,
method: 'delete',
timeout: 180_000,
});
}
/**
* 批量删除签约
* @param data 签约对象
* @returns object
*/
export function batchDelSub(data: Record<string, any>) {
return request({
url: `/ne/udm/sub/${data.neID}/${data.imsi}/${data.num}`,
method: 'delete',
});
}

View File

@@ -0,0 +1,17 @@
import { request } from '@/plugins/http-fetch';
/**
* 新 查询自定义指标数据
* @param query 查询参数
* @returns object
*/
export async function listCustomData(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/neData/kpic/data`,
method: 'GET',
params: query,
timeout: 60_000,
});
return result;
}

View File

@@ -0,0 +1,51 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询自定义指标
* @param query 查询参数
* @returns object
*/
export async function listCustom(query?: Record<string, any>) {
return await request({
url: `/neData/kpic/title/list`,
method: 'GET',
params: query,
});
}
/**
* 新增自定义指标
* @param data 网元对象
* @returns object
*/
export function addCustom(data: Record<string, any>) {
return request({
url: `/neData/kpic/title`,
method: 'POST',
data: data,
});
}
/**
* 修改自定义指标
* @param data 网元对象
* @returns object
*/
export function updateCustom(data: Record<string, any>) {
return request({
url: `/neData/kpic/title`,
method: 'PUT',
data: data,
});
}
/**
* 删除自定义指标
* @returns object
*/
export async function delCustom(data: Record<string, any>) {
return request({
url: `/neData/kpic/title?id=${data.id}`,
method: 'DELETE',
});
}

View File

@@ -1,82 +1,7 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseDateToStr } from '@/utils/date-utils';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* 查询黄金指标数据
* @param query 查询参数
* @returns object
*/
export async function listgoldData(query: Record<string, any>) {
let totalSQL = 'select count(*) as total from gold_kpi where 1=1 ';
let rowsSQL =
'SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 ';
// 查询
let querySQL = '';
if (query.neType) {
querySQL += ` and gold_kpi.ne_type like '%${query.neType}%' `;
}
if (query.beginTime) {
querySQL += ` and start_time >= '${query.beginTime}' `;
}
if (query.endTime) {
querySQL += ` and end_time <= '${query.endTime}' `;
}
// 排序
let sortSql = ' order by ';
if (query.sortField) {
sortSql += ` ${query.sortField} `;
} else {
sortSql += ` start_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/gold_kpi`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
},
timeout: 60_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
code: result.code,
msg: result.msg,
};
result.data.data.forEach((item: any) => {
const itemData = item['gold_kpi'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
return data;
}
return result;
}
/**
* 查询黄金指标数据
* @param query 查询参数
@@ -85,7 +10,7 @@ export async function listgoldData(query: Record<string, any>) {
export async function listKPIData(query: Record<string, any>) {
const result = await request({
url: `/neData/kpi/data`,
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
@@ -102,89 +27,34 @@ export async function getKPITitle(neType: string) {
// 发起请求
const result = await request({
url: `/neData/kpi/title`,
method: 'get',
method: 'GET',
params: { neType },
});
// 解析数据//
return result;
}
/**
* 查询UPF上下行速率数据
* @param query 查询参数
* @returns object
*/
export async function listUPFData(timeArr: any) {
const initTime: Date = new Date();
const twentyFourHoursAgo: Date = new Date(
initTime.getTime() - 10 * 60 * 1000
);
return await Promise.allSettled([
// 获取参数规则
request({
url: `/api/rest/databaseManagement/v1/select/omc_db/gold_kpi`,
method: 'get',
params: {
SQL: `SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 and gold_kpi.kpi_id ='UPF.03' and timestamp BETWEEN '${parseDateToStr(
twentyFourHoursAgo
)}' AND '${parseDateToStr(initTime)}' `,
},
timeout: 60_000,
}),
// 获取对应信息
request({
url: `/api/rest/databaseManagement/v1/select/omc_db/gold_kpi`,
method: 'get',
params: {
SQL: `SELECT gold_kpi.*,kpi_title.en_title FROM gold_kpi LEFT JOIN kpi_title on gold_kpi.kpi_id=kpi_title.kpi_id where 1=1 and gold_kpi.kpi_id ='UPF.06' and timestamp BETWEEN '${parseDateToStr(
twentyFourHoursAgo
)}' AND '${parseDateToStr(initTime)}' `,
},
timeout: 60_000,
}),
]).then(resArr => {
let upData: any = [];
let downData: any = [];
// 规则数据
if (resArr[0].status === 'fulfilled') {
const itemV: any = resArr[0].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
let data = itemData[0]['gold_kpi'];
if (Array.isArray(data)) {
try {
upData = data.map(v => parseObjLineToHump(v));
} catch (error) {
console.error(error);
}
}
}
}
if (resArr[1].status === 'fulfilled') {
const itemV = resArr[1].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
const data = itemData[0]['gold_kpi'];
if (Array.isArray(data)) {
try {
downData = data.map(v => parseObjLineToHump(v));
} catch (error) {
console.error(error);
}
}
}
}
return { upData, downData };
//忙时呼叫
export async function getbusyhour(query: Record<string, any>) {
return request({
url: '/neData/ims/kpi/busy-hour',
method: 'GET',
params: query,
});
}
//MOS指标
export async function getMosHour(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/mos-hour',
method: 'GET',
params: query,
});
}
//CCT指标
export async function getCctHour(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/cct-hour',
method: 'GET',
params: query,
});
}

View File

@@ -0,0 +1,51 @@
import { request } from '@/plugins/http-fetch';
/**
* 查询统计指标
* @param query 查询参数
* @returns object
*/
export async function listKPITitle(query?: Record<string, any>) {
return await request({
url: `/neData/kpi/title/list`,
method: 'GET',
params: query,
});
}
/**
* 新增统计指标
* @param data 网元对象
* @returns object
*/
export function addKPITitle(data: Record<string, any>) {
return request({
url: `/neData/kpi/title`,
method: 'POST',
data: data,
});
}
/**
* 修改统计指标
* @param data 网元对象
* @returns object
*/
export function updateKPITitle(data: Record<string, any>) {
return request({
url: `/neData/kpi/title`,
method: 'PUT',
data: data,
});
}
/**
* 删除统计指标
* @returns object
*/
export async function delKPITitle(id: string) {
return request({
url: `/neData/kpi/title?id=${id}`,
method: 'DELETE',
});
}

View File

@@ -30,10 +30,10 @@ export async function listperfData(query: Record<string, any>) {
let sortSql = ' order by ';
if (query.sortField) {
sortSql += ` ${query.sortField} `;
}else{
} else {
sortSql += ` start_time `;
}
if (query.sortOrder === 'asc') {
sortSql += ' asc ';
} else {
@@ -47,7 +47,7 @@ export async function listperfData(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/measure_data`,
method: 'get',
method: 'GET',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
@@ -56,9 +56,8 @@ export async function listperfData(query: Record<string, any>) {
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
const data = {
data: { total: 0, rows: [] as any },
code: result.code,
msg: result.msg,
};
@@ -66,9 +65,9 @@ export async function listperfData(query: Record<string, any>) {
const itemData = item['measure_data'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
data.data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
data.data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});

View File

@@ -32,7 +32,7 @@ export async function listPerfThreshold(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/measure_threshold`,
method: 'get',
method: 'GET',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
@@ -41,9 +41,8 @@ export async function listPerfThreshold(query: Record<string, any>) {
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
const data = {
data: { total: 0, rows: [] as any },
code: result.code,
msg: result.msg,
};
@@ -51,9 +50,9 @@ export async function listPerfThreshold(query: Record<string, any>) {
const itemData = item['measure_threshold'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
data.data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
data.data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
@@ -71,7 +70,7 @@ export async function getPerfThre(id: string | number) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/measure_threshold`,
method: 'get',
method: 'GET',
params: {
SQL: `select * from measure_threshold where id = ${id}`,
},
@@ -102,8 +101,8 @@ export function addPerfThre(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold`,
method: 'post',
data: { measure_task: [obj] },
method: 'POST',
data: { measure_threshold: [obj] },
});
}
@@ -115,15 +114,15 @@ export function addPerfThre(data: Record<string, any>) {
export function updatePerfThre(data: Record<string, any>) {
let obj: any = {
ne_type: data.neType,
kpi_set: data.performanceArr,
kpi_set: data.kpiSet,
status: 'Inactive',
orig_severity: data.origSeverity,
threshold: data.threshold,
threshold: ''+data.threshold,
};
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_task?WHERE=id=${data.id}`,
method: 'put',
data: { data: obj },
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold?WHERE=id=${data.id}`,
method: 'PUT',
data: { measure_threshold: obj },
});
}
@@ -135,7 +134,7 @@ export function updatePerfThre(data: Record<string, any>) {
export async function delPerfThre(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold?WHERE=id=${data.id}`,
method: 'delete',
method: 'DELETE',
});
}
@@ -147,7 +146,7 @@ export async function getNePerformanceList() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/measure_title`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM measure_title`,
},
@@ -170,7 +169,7 @@ export async function getNePerformanceList() {
export function threRun(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold?WHERE=id=${data.id}`,
method: 'put',
method: 'PUT',
data: { data: { status: 'Active' } },
});
}
@@ -183,7 +182,7 @@ export function threRun(data: Record<string, any>) {
export function threStop(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold?WHERE=id=${data.id}`,
method: 'put',
method: 'PUT',
data: { data: { status: 'Inactive' } },
});
}

View File

@@ -32,7 +32,7 @@ export async function listPerfTask(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/measure_task`,
method: 'get',
method: 'GET',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql+ limtSql,
@@ -41,9 +41,8 @@ export async function listPerfTask(query: Record<string, any>) {
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
const data: DataList = {
total: 0,
rows: [],
const data = {
data: { total: 0, rows: [] as any },
code: result.code,
msg: result.msg,
};
@@ -51,9 +50,9 @@ export async function listPerfTask(query: Record<string, any>) {
const itemData = item['measure_task'];
if (Array.isArray(itemData)) {
if (itemData.length === 1 && itemData[0]['total'] >= 0) {
data.total = itemData[0]['total'];
data.data.total = itemData[0]['total'];
} else {
data.rows = itemData.map(v => parseObjLineToHump(v));
data.data.rows = itemData.map(v => parseObjLineToHump(v));
}
}
});
@@ -71,7 +70,7 @@ export async function getPerfTask(id: string | number) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/measure_task`,
method: 'get',
method: 'GET',
params: {
SQL: `select * from measure_task where id = ${id}`,
},
@@ -120,7 +119,7 @@ export function addPerfTask(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_task`,
method: 'post',
method: 'POST',
data: { measure_task: [obj] },
});
}
@@ -158,7 +157,7 @@ export function updatePerfTask(data: Record<string, any>) {
};
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_task?WHERE=id=${data.id}`,
method: 'put',
method: 'PUT',
data: { measure_task: obj },
});
}
@@ -173,7 +172,7 @@ export async function delPerfTask(data: Record<string, any>) {
url: `/api/rest/performanceManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/measureTask?id=${
data.id
}`,
method: 'delete',
method: 'DELETE',
});
}
@@ -185,7 +184,7 @@ export async function getNePerformanceList() {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/elementType/omc_db/objectType/measure_title`,
method: 'get',
method: 'GET',
params: {
SQL: `SELECT * FROM measure_title`,
},
@@ -209,7 +208,7 @@ export async function getNePerformanceList() {
export function taskRun(data: Record<string, any>) {
return request({
url: `/api/rest/performanceManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/measureTask?id=${data.id}`,
method: 'post',
method: 'POST',
});
}
@@ -221,6 +220,6 @@ export function taskRun(data: Record<string, any>) {
export function taskStop(data: Record<string, any>) {
return request({
url: `/api/rest/performanceManagement/v1/elementType/${data.neType.toLowerCase()}/objectType/measureTask?id=${data.id}`,
method: 'PATCH',
method: 'PUT',
});
}

Some files were not shown because too many files have changed in this diff Show More