Compare 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
simonzhangsz 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
396 changed files with 248140 additions and 22985 deletions

No files matched your search

+4 -4
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.240704"
VITE_APP_VERSION = "local-dev"
# 接口基础URL地址-不带/后缀
VITE_API_BASE_URL = "/omc-api"
+3 -3
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.240704"
VITE_APP_VERSION = "local-prod"
# 接口基础URL地址-不带/后缀
VITE_API_BASE_URL = "/omc-api"
+206
View File
@@ -1,5 +1,211 @@
# 版本发布日志
## 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
- 新增 网元安装流程相关页面与操作相关接口联调
+1 -25
View File
@@ -5,19 +5,6 @@
- 图标来源 [@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:33030
新网管:192.168.5.13
旧网管:192.168.5.14
登录账户:manager/manager
```
## 程序命令
项目目录下 `.env.[环境]` 文件对应环境的一些配置,启动前请检查文件内是否配置正确。
@@ -59,16 +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
admin / admin
```
+8 -4
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>
+39 -35
View File
@@ -12,47 +12,51 @@
"preview": "vite preview"
},
"dependencies": {
"@ant-design/icons-vue": "^7.0.1",
"@antv/g6": "~4.8.24",
"@codemirror/lang-javascript": "^6.2.2",
"@codemirror/lang-yaml": "^6.1.1",
"@codemirror/merge": "^6.6.3",
"@codemirror/theme-one-dark": "^6.1.2",
"@tato30/vue-pdf": "~1.9.7",
"@vueuse/core": "~10.10.1",
"@xterm/addon-fit": "^0.10.0",
"@xterm/xterm": "^5.5.0",
"ant-design-vue": "^3.2.20",
"antdv-pro-layout": "~3.3.5",
"antdv-pro-modal": "^3.1.0",
"codemirror": "^6.0.1",
"dayjs": "^1.11.11",
"echarts": "~5.5.0",
"file-saver": "^2.0.5",
"intl-tel-input": "~23.0.12",
"@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-i18n": "^9.13.1",
"vue-router": "^4.4.0",
"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.5",
"less": "^4.2.0",
"typescript": "~5.4.5",
"unplugin-vue-components": "~0.26.0",
"vite": "~5.3.1",
"vite-plugin-compression": "~0.5.1",
"vue-tsc": "~2.0.22"
"@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"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

File renamed without changes.
+13 -5
View File
@@ -10,11 +10,19 @@
*
*/
(function () {
// host = ip:port
const host = '192.168.8.100:33030';
// 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}`);
})();
Binary file not shown.
Binary file not shown.
+2
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
+2
View File
@@ -0,0 +1,2 @@
001011100001157,1234567890ABCDEF1234567890ABCDEF,0,8000,11111111111111111111111111111111
001011100001158,1234567890ABCDEF1234567890ABCDEF,0,8000,11111111111111111111111111111111
+2
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,-
+3
View File
@@ -0,0 +1,3 @@
#username,password
62357000580,123456
62357000581,123456
@@ -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
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
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

File renamed without changes.
Binary file not shown.
File diff suppressed because it is too large. Load diff
Binary file not shown.
File diff suppressed because it is too large. Load diff
+166
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
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' });
}
};
+51 -68
View File
@@ -1,22 +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 advancedFormat from 'dayjs/plugin/advancedFormat';
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.extend(advancedFormat);
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) {
@@ -37,26 +61,18 @@ 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 lang="css">
#app {
height: 100%;
}
body .ant-pro-basicLayout {
display: flex;
flex-direction: column;
@@ -86,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
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
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,
});
}
-95
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 } },
});
}
-55
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;
}
-483
View File
@@ -1,483 +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 id,top_display,top_tag,method FROM param_config WHERE ne_type = '${neType}' ORDER BY id ASC`,
},
});
// 解析数据
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 getParamConfigInfoAndRule(
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}'`,
},
}),
// 获取对应信息
request({
url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`,
method: 'get',
params: {
ne_id: neId,
},
}),
]).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 getParamConfigInfoForm(
neType: string,
topTag: string,
neId: string
) {
const { wrRule, dataArr } = await getParamConfigInfoAndRule(
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
* @returns object
*/
export async function getParamConfigInfo(
neType: string,
topTag: string,
neId: string
) {
// 发起请求
const result = await request({
url: `/api/rest/systemManagement/v1/elementType/${neType.toLowerCase()}/objectType/config/${topTag}`,
method: 'get',
params: {
ne_id: neId,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
return Object.assign(result, {
data: parseObjLineToHump(result.data.data),
});
}
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;
}
/**
* 从参数配置PCF中获取对应信息提供给PCC用户策略输入框
* @param neType 网元类型
* @param topTag
* @param neId
* @returns object { wrRule, dataArr }
*/
export async function getPCCRule(neId: any) {
return await Promise.allSettled([
// 获取参数规则
request({
url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/pccRules`,
method: 'get',
params: {
ne_id: neId,
},
timeout: 1_000,
}),
// 获取对应信息
request({
url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/sessionRules`,
method: 'get',
params: {
ne_id: neId,
},
timeout: 1_000,
}),
request({
url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/qosTemplate`,
method: 'get',
params: {
ne_id: neId,
},
timeout: 1_000,
}),
request({
url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/headerEnrichTemplate`,
method: 'get',
params: {
ne_id: neId,
},
timeout: 1_000,
}),
request({
url: `/api/rest/systemManagement/v1/elementType/pcf/objectType/config/serviceAreaRestriction`,
method: 'get',
params: {
ne_id: neId,
},
timeout: 1_000,
}),
]).then(resArr => {
let pccJson: any = new Map();
let sessJson: any = new Map();
let qosJson: any = new Map();
let headerJson: any = new Map();
let sarJson: any = new Map();
// 规则数据
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;
itemData.forEach((item: any) => {
pccJson.set(item.ruleId, { value: item.ruleId, label: item.ruleId });
});
}
}
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;
itemData.forEach((item: any) => {
sessJson.set(item.ruleId, { value: item.ruleId, label: item.ruleId });
});
}
}
if (resArr[2].status === 'fulfilled') {
const itemV = resArr[2].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
itemData.forEach((item: any) => {
qosJson.set(item.qosId, { value: item.qosId, label: item.qosId });
});
}
}
if (resArr[3].status === 'fulfilled') {
const itemV = resArr[3].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
itemData.forEach((item: any) => {
headerJson.set(item.templateName, {
value: item.templateName,
label: item.templateName,
});
});
}
}
if (resArr[4].status === 'fulfilled') {
const itemV = resArr[4].value;
// 解析数据
if (
itemV.code === RESULT_CODE_SUCCESS &&
Array.isArray(itemV.data?.data)
) {
let itemData = itemV.data.data;
itemData.forEach((item: any) => {
sarJson.set(item.name, { value: item.name, label: item.name });
});
}
}
pccJson = Array.from(pccJson.values());
sessJson = Array.from(sessJson.values());
qosJson = Array.from(qosJson.values());
headerJson = Array.from(headerJson.values());
sarJson = Array.from(sarJson.values());
return { pccJson, sessJson, qosJson, headerJson, sarJson };
});
}
-72
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 create_time 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,
});
}
-242
View File
@@ -1,242 +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';
import { NE_TYPE_LIST } from '@/constants/ne-constants';
/**
* 查询网元列表
* @param query 查询参数
* @returns object
*/
export async function listNeInfo(query: Record<string, any>) {
let totalSQL = 'select count(*) as total from ne_info where 1=1 ';
let rowsSQL = 'select * from ne_info where 1=1 ';
// 查询
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 = NE_TYPE_LIST.indexOf(a.neType);
const typeB = NE_TYPE_LIST.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 id = ${id}`,
},
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && Array.isArray(result.data.data)) {
let neInfo = result.data.data[0]['ne_info'];
if (neInfo) {
return Object.assign(result, {
data: parseObjLineToHump(neInfo[0]),
});
}
return { code: RESULT_CODE_ERROR, msg: RESULT_MSG_ERROR[language] };
}
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,
});
}
/**
* 导出网元配置文件
* @param data data {neType neId}
* @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,
});
}
-220
View File
@@ -1,220 +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,
repeatSubmit: false,
});
// 解析数据
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,
repeatSubmit: false,
});
// 解析数据
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,
repeatSubmit: false,
});
// 解析数据
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;
}
+60 -201
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 WHERE alarm_status='1' and orig_severity!='Event' group by orig_severity`;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
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 alarm_status='1'and orig_severity='${filterFlag}'`;
if (!filterFlag) filter = "WHERE alarm_status='1'";
let top3SQL = `select count(*) as value,ne_type as name from alarm ${filter} and orig_severity!='Event' group by ne_type ORDER BY value desc limit 0,3 `;
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm`,
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;
}
+5 -84
View File
@@ -1,10 +1,6 @@
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';
/**
* 查询列表
@@ -12,84 +8,13 @@ import useUserStore from '@/store/modules/user';
* @returns object
*/
export async function listAct(query: Record<string, any>) {
let totalSQL = `select count(*) as total from alarm_event where 1=1 `;
let rowsSQL = `select * from alarm_event where 1=1 `;
// 查询
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.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_event`,
method: 'get',
params: {
SQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + limtSql,
},
return await request({
url: `/neData/alarm/log/event`,
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) => {
console.log(item)
const itemData = item['alarm_event'];
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 查询参数
@@ -120,7 +45,7 @@ export async function exportAll(query: Record<string, any>) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/alarm_event`,
method: 'get',
method: 'GET',
params: {
rowsSQL: rowsSQL + querySQL,
},
@@ -133,7 +58,3 @@ export async function exportAll(query: Record<string, any>) {
}
return result;
}
+20 -13
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) } },
});
// 解析数据
+3 -68
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,
},
+6 -74
View File
@@ -1,83 +1,15 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseDateToStr } from '@/utils/date-utils';
import { NE_TYPE_LIST } from '@/constants/ne-constants';
/**
* 查询公告列表
* @param query 查询参数
* @returns object
*/
export async function listMain() {
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('_'),
expiryDate: '-',
status: 'Abnormal',
};
}
return mergedObj;
});
//通过sort进行冒泡排序
mergedData.sort((a: any, b: any) => {
const typeA = NE_TYPE_LIST.indexOf(a.name.split('_')[0]);
const typeB = NE_TYPE_LIST.indexOf(b.name.split('_')[0]);
if (typeA === -1) return 1; // 如果不在特定顺序中,排到后面
if (typeB === -1) return -1; // 如果不在特定顺序中,排到后面
return typeA - typeB;
});
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;
}
/**
@@ -87,7 +19,7 @@ export async function getServerTime() {
export function getSysConf() {
return request({
url: `/sys-conf`,
method: 'get',
method: 'GET',
whithToken: false,
});
}
+4 -62
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;
}
+4 -59
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;
}
+11 -11
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,
-69
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;
}
+5 -6
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));
}
}
});
-72
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;
}
-59
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,
});
}
+2 -2
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) } },
});
// 解析数据
+17 -25
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,22 +6,17 @@ 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;
}
/**
@@ -40,16 +33,15 @@ export async function sendMMlByNE(
objectType: string,
cmdArr: string[]
) {
// 发起请求
const result = await request({
url: `/api/rest/operationManagement/v1/elementType/${neType}/objectType/${objectType}?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;
}
+2 -2
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,
});
+17 -25
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;
}
+28 -24
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 },
});
}
+14 -14
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',
});
}
+10 -12
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',
});
}
+2 -1
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,
});
}
+4 -4
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',
});
}
+2 -2
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',
});
}
+4 -4
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',
});
}
+118
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;
});
}
+85
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,
});
}
+8 -8
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function listNeHost(query: Record<string, any>) {
return request({
url: '/ne/host/list',
method: 'get',
method: 'GET',
params: query,
});
}
@@ -21,7 +21,7 @@ export function listNeHost(query: Record<string, any>) {
export function getNeHost(hostId: string | number) {
return request({
url: `/ne/host/${hostId}`,
method: 'get',
method: 'GET',
});
}
@@ -33,7 +33,7 @@ export function getNeHost(hostId: string | number) {
export function addNeHost(data: Record<string, any>) {
return request({
url: '/ne/host',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -46,7 +46,7 @@ export function addNeHost(data: Record<string, any>) {
export function updateNeHost(data: Record<string, any>) {
return request({
url: '/ne/host',
method: 'put',
method: 'PUT',
data: data,
});
}
@@ -59,7 +59,7 @@ export function updateNeHost(data: Record<string, any>) {
export function delNeHost(hostId: string | number) {
return request({
url: `/ne/host/${hostId}`,
method: 'delete',
method: 'DELETE',
});
}
@@ -71,7 +71,7 @@ export function delNeHost(hostId: string | number) {
export function testNeHost(data: Record<string, any>) {
return request({
url: '/ne/host/test',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -84,7 +84,7 @@ export function testNeHost(data: Record<string, any>) {
export function neHostCheckInfo(data: Record<string, any>) {
return request({
url: '/ne/host/checkBySSH',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -97,7 +97,7 @@ export function neHostCheckInfo(data: Record<string, any>) {
export function neHostAuthorizedRSA(data: Record<string, any>) {
return request({
url: '/ne/host/authorizedBySSH',
method: 'post',
method: 'POST',
data: data,
});
}
+5 -5
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function listNeHostCmd(query: Record<string, any>) {
return request({
url: '/ne/hostCmd/list',
method: 'get',
method: 'GET',
params: query,
});
}
@@ -21,7 +21,7 @@ export function listNeHostCmd(query: Record<string, any>) {
export function getNeHostCmd(cmdId: string | number) {
return request({
url: `/ne/hostCmd/${cmdId}`,
method: 'get',
method: 'GET',
});
}
@@ -33,7 +33,7 @@ export function getNeHostCmd(cmdId: string | number) {
export function addNeHostCmd(data: Record<string, any>) {
return request({
url: '/ne/hostCmd',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -46,7 +46,7 @@ export function addNeHostCmd(data: Record<string, any>) {
export function updateNeHostCmd(data: Record<string, any>) {
return request({
url: '/ne/hostCmd',
method: 'put',
method: 'PUT',
data: data,
});
}
@@ -59,6 +59,6 @@ export function updateNeHostCmd(data: Record<string, any>) {
export function delNeHostCmd(cmdId: string | number) {
return request({
url: `/ne/hostCmd/${cmdId}`,
method: 'delete',
method: 'DELETE',
});
}
+19 -13
View File
@@ -1,3 +1,5 @@
import { CACHE_SESSION_CRYPTO_API } from '@/constants/cache-keys-constants';
import { sessionGet } from '@/utils/cache-session-utils';
import { request } from '@/plugins/http-fetch';
/**
@@ -8,7 +10,7 @@ import { request } from '@/plugins/http-fetch';
export function listNeInfo(query: Record<string, any>) {
return request({
url: '/ne/info/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
@@ -22,7 +24,7 @@ export function listNeInfo(query: Record<string, any>) {
export function getNeInfo(infoId: string | number) {
return request({
url: `/ne/info/${infoId}`,
method: 'get',
method: 'GET',
});
}
@@ -34,8 +36,10 @@ export function getNeInfo(infoId: string | number) {
export function addNeInfo(data: Record<string, any>) {
return request({
url: `/ne/info`,
method: 'post',
method: 'POST',
data: data,
crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false',
timeout: 30_000,
});
}
@@ -47,8 +51,10 @@ export function addNeInfo(data: Record<string, any>) {
export function updateNeInfo(data: Record<string, any>) {
return request({
url: `/ne/info`,
method: 'put',
method: 'PUT',
data: data,
crypto: sessionGet(CACHE_SESSION_CRYPTO_API) !== 'false',
timeout: 30_000,
});
}
@@ -60,7 +66,7 @@ export function updateNeInfo(data: Record<string, any>) {
export function delNeInfo(infoIds: string | number) {
return request({
url: `/ne/info/${infoIds}`,
method: 'delete',
method: 'DELETE',
timeout: 60_000,
});
}
@@ -73,7 +79,7 @@ export function delNeInfo(infoIds: string | number) {
export function listAllNeInfo(query: Record<string, any>) {
return request({
url: '/ne/info/listAll',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
@@ -88,7 +94,7 @@ export function listAllNeInfo(query: Record<string, any>) {
export function stateNeInfo(neType: string, neId: string) {
return request({
url: '/ne/info/state',
method: 'get',
method: 'GET',
params: { neType, neId },
});
}
@@ -102,7 +108,7 @@ export function stateNeInfo(neType: string, neId: string) {
export function getNeInfoByTypeAndID(neType: string, neId: string) {
return request({
url: '/ne/info/byTypeAndID',
method: 'get',
method: 'GET',
params: { neType, neId },
});
}
@@ -116,7 +122,7 @@ export function getNeInfoByTypeAndID(neType: string, neId: string) {
export function getOAMFile(neType: string, neId: string) {
return request({
url: '/ne/info/oamFile',
method: 'get',
method: 'GET',
params: { neType, neId },
});
}
@@ -132,7 +138,7 @@ export function getOAMFile(neType: string, neId: string) {
export function saveOAMFile(data: Record<string, any>) {
return request({
url: `/ne/info/oamFile`,
method: 'put',
method: 'PUT',
data: data,
timeout: 60_000,
});
@@ -145,7 +151,7 @@ export function saveOAMFile(data: Record<string, any>) {
export function getPara5GFilee() {
return request({
url: '/ne/info/para5GFile',
method: 'get',
method: 'GET',
});
}
@@ -158,7 +164,7 @@ export function getPara5GFilee() {
export function savePara5GFile(data: Record<string, any>) {
return request({
url: `/ne/info/para5GFile`,
method: 'put',
method: 'PUT',
data: data,
timeout: 60_000,
});
@@ -172,7 +178,7 @@ export function savePara5GFile(data: Record<string, any>) {
export function serviceNeAction(data: Record<string, any>) {
return request({
url: `/ne/action/service`,
method: 'put',
method: 'PUT',
data: data,
timeout: 60_000,
});
+6 -6
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function listNeLicense(query: Record<string, any>) {
return request({
url: '/ne/license/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
@@ -22,7 +22,7 @@ export function listNeLicense(query: Record<string, any>) {
export function getNeLicense(licenseId: string | number) {
return request({
url: `/ne/license/${licenseId}`,
method: 'get',
method: 'GET',
});
}
@@ -35,7 +35,7 @@ export function getNeLicense(licenseId: string | number) {
export function getNeLicenseByTypeAndID(neType: string, neId: string) {
return request({
url: `/ne/license/byTypeAndID`,
method: 'get',
method: 'GET',
params: { neType, neId },
});
}
@@ -49,7 +49,7 @@ export function getNeLicenseByTypeAndID(neType: string, neId: string) {
export function codeNeLicense(neType: string, neId: string) {
return request({
url: `/ne/license/code`,
method: 'get',
method: 'GET',
params: { neType, neId },
});
}
@@ -62,7 +62,7 @@ export function codeNeLicense(neType: string, neId: string) {
export function changeNeLicense(data: Record<string, any>) {
return request({
url: `/ne/license/change`,
method: 'post',
method: 'POST',
data: data,
timeout: 180_000,
});
@@ -77,7 +77,7 @@ export function changeNeLicense(data: Record<string, any>) {
export function stateNeLicense(neType: string, neId: string) {
return request({
url: `/ne/license/state`,
method: 'get',
method: 'GET',
params: { neType, neId },
});
}
+6 -6
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function listNeSoftware(query: Record<string, any>) {
return request({
url: '/ne/software/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
@@ -22,7 +22,7 @@ export function listNeSoftware(query: Record<string, any>) {
export function getNeSoftware(softwareId: string | number) {
return request({
url: `/ne/software/${softwareId}`,
method: 'get',
method: 'GET',
});
}
@@ -34,7 +34,7 @@ export function getNeSoftware(softwareId: string | number) {
export function addNeSoftware(data: Record<string, any>) {
return request({
url: `/ne/software`,
method: 'post',
method: 'POST',
data: data,
repeatSubmit: false,
});
@@ -48,7 +48,7 @@ export function addNeSoftware(data: Record<string, any>) {
export function updateNeSoftware(data: Record<string, any>) {
return request({
url: `/ne/software`,
method: 'put',
method: 'PUT',
data: data,
});
}
@@ -61,7 +61,7 @@ export function updateNeSoftware(data: Record<string, any>) {
export function delNeSoftware(softwareIds: string | number) {
return request({
url: `/ne/software/${softwareIds}`,
method: 'delete',
method: 'DELETE',
timeout: 60_000,
});
}
@@ -74,7 +74,7 @@ export function delNeSoftware(softwareIds: string | number) {
export function newNeVersion(data: Record<string, any>) {
return request({
url: `/ne/software/newNeVersion`,
method: 'post',
method: 'POST',
data: data,
});
}
+3 -3
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function listNeVersion(query: Record<string, any>) {
return request({
url: '/ne/version/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
@@ -22,7 +22,7 @@ export function listNeVersion(query: Record<string, any>) {
export function getNeVersion(versionId: string | number) {
return request({
url: `/ne/version/${versionId}`,
method: 'get',
method: 'GET',
});
}
@@ -34,7 +34,7 @@ export function getNeVersion(versionId: string | number) {
export function operateNeVersion(data: Record<string, any>) {
return request({
url: `/ne/version/operate`,
method: 'post',
method: 'POST',
data: data,
timeout: 180_000,
});
+94 -6
View File
@@ -8,8 +8,9 @@ import { request } from '@/plugins/http-fetch';
export function listAMFDataUE(query: Record<string, any>) {
return request({
url: '/neData/amf/ue/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
}
@@ -21,22 +22,109 @@ export function listAMFDataUE(query: Record<string, any>) {
export function delAMFDataUE(ueIds: string | number) {
return request({
url: `/neData/amf/ue/${ueIds}`,
method: 'delete',
method: 'DELETE',
timeout: 60_000,
});
}
/**
* AMF-UE会话列表导出
* @param data 查询列表条件
* @param query 查询列表条件
* @returns object
*/
export function exportAMFDataUE(data: Record<string, any>) {
export function exportAMFDataUE(query: Record<string, any>) {
return request({
url: '/neData/amf/ue/export',
method: 'post',
data,
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
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,
});
}
+34 -7
View File
@@ -8,8 +8,9 @@ import { request } from '@/plugins/http-fetch';
export function listIMSDataCDR(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
}
@@ -21,22 +22,48 @@ export function listIMSDataCDR(query: Record<string, any>) {
export function delIMSDataCDR(cdrIds: string | number) {
return request({
url: `/neData/ims/cdr/${cdrIds}`,
method: 'delete',
method: 'DELETE',
timeout: 60_000,
});
}
/**
* IMS-CDR会话列表导出
* @param data 查询列表条件
* @param query 查询列表条件
* @returns object
*/
export function exportIMSDataCDR(data: Record<string, any>) {
export function exportIMSDataCDR(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/export',
method: 'post',
data,
method: 'GET',
params: query,
responseType: 'blob',
timeout: 60_000,
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,
});
}
+94 -6
View File
@@ -8,8 +8,9 @@ import { request } from '@/plugins/http-fetch';
export function listMMEDataUE(query: Record<string, any>) {
return request({
url: '/neData/mme/ue/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
}
@@ -21,22 +22,109 @@ export function listMMEDataUE(query: Record<string, any>) {
export function delMMEDataUE(ueIds: string | number) {
return request({
url: `/neData/mme/ue/${ueIds}`,
method: 'delete',
method: 'DELETE',
timeout: 60_000,
});
}
/**
* MME-UE会话列表导出
* @param data 查询列表条件
* @param query 查询列表条件
* @returns object
*/
export function exportMMEDataUE(data: Record<string, any>) {
export function exportMMEDataUE(query: Record<string, any>) {
return request({
url: '/neData/mme/ue/export',
method: 'post',
data,
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}`,
},
});
}
+30
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
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
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,
});
}
+34 -7
View File
@@ -8,8 +8,9 @@ import { request } from '@/plugins/http-fetch';
export function listSMFDataCDR(query: Record<string, any>) {
return request({
url: '/neData/smf/cdr/list',
method: 'get',
method: 'GET',
params: query,
timeout: 60_000,
});
}
@@ -21,22 +22,48 @@ export function listSMFDataCDR(query: Record<string, any>) {
export function delSMFDataCDR(cdrIds: string | number) {
return request({
url: `/neData/smf/cdr/${cdrIds}`,
method: 'delete',
method: 'DELETE',
timeout: 60_000,
});
}
/**
* SMF-CDR会话列表导出
* @param data 查询列表条件
* @param query 查询列表条件
* @returns object
*/
export function exportSMFDataCDR(data: Record<string, any>) {
export function exportSMFDataCDR(query: Record<string, any>) {
return request({
url: '/neData/smf/cdr/export',
method: 'post',
data,
method: 'GET',
params: query,
responseType: 'blob',
timeout: 60_000,
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
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,
});
}
+26 -12
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function resetUDMAuth(neId: string) {
return request({
url: `/neData/udm/auth/resetData/${neId}`,
method: 'put',
method: 'PUT',
timeout: 180_000,
});
}
@@ -21,8 +21,9 @@ export function resetUDMAuth(neId: string) {
export function listUDMAuth(query: Record<string, any>) {
return request({
url: '/neData/udm/auth/list',
method: 'get',
method: 'GET',
params: query,
timeout: 30_000,
});
}
@@ -35,7 +36,7 @@ export function listUDMAuth(query: Record<string, any>) {
export function getUDMAuth(neId: string, imsi: string) {
return request({
url: `/neData/udm/auth/${neId}/${imsi}`,
method: 'get',
method: 'GET',
});
}
@@ -47,7 +48,7 @@ export function getUDMAuth(neId: string, imsi: string) {
export function addUDMAuth(data: Record<string, any>) {
return request({
url: `/neData/udm/auth/${data.neId}`,
method: 'post',
method: 'POST',
data: data,
timeout: 180_000,
});
@@ -62,7 +63,7 @@ export function addUDMAuth(data: Record<string, any>) {
export function batchAddUDMAuth(data: Record<string, any>, num: number) {
return request({
url: `/neData/udm/auth/${data.neId}/${num}`,
method: 'post',
method: 'POST',
data: data,
timeout: 180_000,
});
@@ -76,7 +77,7 @@ export function batchAddUDMAuth(data: Record<string, any>, num: number) {
export function updateUDMAuth(data: Record<string, any>) {
return request({
url: `/neData/udm/auth/${data.neId}`,
method: 'put',
method: 'PUT',
data: data,
timeout: 180_000,
});
@@ -91,7 +92,7 @@ export function updateUDMAuth(data: Record<string, any>) {
export function delUDMAuth(neId: string, imsi: string) {
return request({
url: `/neData/udm/auth/${neId}/${imsi}`,
method: 'delete',
method: 'DELETE',
timeout: 180_000,
});
}
@@ -106,21 +107,20 @@ export function delUDMAuth(neId: string, imsi: string) {
export function batchDelUDMAuth(neId: string, imsi: string, num: number) {
return request({
url: `/neData/udm/auth/${neId}/${imsi}/${num}`,
method: 'delete',
method: 'DELETE',
timeout: 180_000,
});
}
/**
* UDM鉴权用户导入
* @param neId 网元ID
* @param data 表单数据对象
* @returns object
*/
export function importUDMAuth(data: Record<string, any>) {
return request({
url: `/neData/udm/auth/import`,
method: 'post',
method: 'POST',
data,
timeout: 180_000,
});
@@ -134,8 +134,22 @@ export function importUDMAuth(data: Record<string, any>) {
export function exportUDMAuth(data: Record<string, any>) {
return request({
url: '/neData/udm/auth/export',
method: 'post',
data,
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,
});
+12 -11
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function resetUDMSub(neId: string) {
return request({
url: `/neData/udm/sub/resetData/${neId}`,
method: 'put',
method: 'PUT',
timeout: 180_000,
});
}
@@ -21,8 +21,9 @@ export function resetUDMSub(neId: string) {
export function listUDMSub(query: Record<string, any>) {
return request({
url: '/neData/udm/sub/list',
method: 'get',
method: 'GET',
params: query,
timeout: 30_000,
});
}
@@ -35,7 +36,7 @@ export function listUDMSub(query: Record<string, any>) {
export function getUDMSub(neId: string, imsi: string) {
return request({
url: `/neData/udm/sub/${neId}/${imsi}`,
method: 'get',
method: 'GET',
});
}
@@ -47,7 +48,7 @@ export function getUDMSub(neId: string, imsi: string) {
export function addUDMSub(data: Record<string, any>) {
return request({
url: `/neData/udm/sub/${data.neId}`,
method: 'post',
method: 'POST',
data: data,
timeout: 180_000,
});
@@ -62,7 +63,7 @@ export function addUDMSub(data: Record<string, any>) {
export function batchAddUDMSub(data: Record<string, any>, num: number) {
return request({
url: `/neData/udm/sub/${data.neId}/${num}`,
method: 'post',
method: 'POST',
data: data,
timeout: 180_000,
});
@@ -76,7 +77,7 @@ export function batchAddUDMSub(data: Record<string, any>, num: number) {
export function updateUDMSub(data: Record<string, any>) {
return request({
url: `/neData/udm/sub/${data.neId}`,
method: 'put',
method: 'PUT',
data: data,
timeout: 180_000,
});
@@ -90,7 +91,7 @@ export function updateUDMSub(data: Record<string, any>) {
export function delUDMSub(neId: string, imsi: string) {
return request({
url: `/neData/udm/sub/${neId}/${imsi}`,
method: 'delete',
method: 'DELETE',
timeout: 180_000,
});
}
@@ -105,7 +106,7 @@ export function delUDMSub(neId: string, imsi: string) {
export function batchDelUDMSub(neId: string, imsi: string, num: number) {
return request({
url: `/neData/udm/sub/${neId}/${imsi}/${num}`,
method: 'delete',
method: 'DELETE',
timeout: 180_000,
});
}
@@ -118,8 +119,8 @@ export function batchDelUDMSub(neId: string, imsi: string, num: number) {
export function exportUDMSub(data: Record<string, any>) {
return request({
url: '/neData/udm/sub/export',
method: 'post',
data,
method: 'GET',
params: data,
responseType: 'blob',
timeout: 180_000,
});
@@ -133,7 +134,7 @@ export function exportUDMSub(data: Record<string, any>) {
export function importUDMSub(data: Record<string, any>) {
return request({
url: `/neData/udm/sub/import`,
method: 'post',
method: 'POST',
data,
timeout: 180_000,
});
+134
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,
});
}
+137
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,
});
}
-34
View File
@@ -1,34 +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":"attach-enb-100000-20","ueNum":0}]
// data.rows = [{address: "192.168.8.223", id: 257, name: "SmallCell", ueNum: 0}]
return data;
}
-64
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;
}
+6 -29
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;
}
+17 -18
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;
}
-44
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;
}
-234
View File
@@ -1,234 +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,
timeout: 60_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
if (result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
data: result.data,
};
}
if (result.data?.data) {
result.data = result.data.data;
return result;
}
}
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,
timeout: 60_000,
});
// 解析数据
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,
timeout: 60_000,
});
// 解析数据
if (result.code === RESULT_CODE_SUCCESS) {
if (result.data?.status) {
return {
code: RESULT_CODE_ERROR,
msg: result.data?.cause,
data: result.data,
};
}
if (result.data?.data) {
result.data = result.data.data;
return result;
}
}
return result;
}
/**
* 删除规则
* @param data 规则对象
* @returns object
*/
export function delRule(neId: string, imsi: string) {
return request({
url: `/api/rest/ueManagement/v1/elementType/pcf/objectType/ueInfo?neId=${neId}&imsi=${imsi}`,
method: 'delete',
timeout: 60_000,
});
}
/**
* 批量删除规则
* @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',
timeout: 60_000,
});
}
-111
View File
@@ -1,111 +0,0 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
/**
* 查询列表
* @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 && result.data) {
if (Array.isArray(result.data.data)) {
const rows = result.data.data;
data.total = rows.length;
data.rows = rows;
} else {
Object.assign(data, result.data);
}
}
// 模拟数据
// data.code = RESULT_CODE_SUCCESS;
// data.total = 2;
// data.rows = [
// {
// imsi: 'imsi-460000100000090',
// msisdn: 'msisdn-12307550090',
// pduSessionInfo: [
// {
// activeTime: '2024-06-19 14:35:26',
// dnn: 'ims',
// ipv4: '10.10.48.8',
// ipv6: '',
// pduSessionID: 6,
// ranN3IP: '192.168.1.137',
// sstSD: '1-000001',
// tai: '46000-001124',
// upState: 'Active',
// upfN3IP: '192.168.1.161',
// },
// {
// activeTime: '2024-06-19 14:35:26',
// dnn: 'cmnet',
// ipv4: '10.10.48.9',
// ipv6: '2001:4860:4860::/64',
// pduSessionID: 7,
// ranN3IP: '192.168.1.137',
// sstSD: '1-000001',
// tai: '46000-001124',
// upState: 'Active',
// upfN3IP: '192.168.1.161',
// },
// ],
// ratType: 'NR',
// },
// {
// imsi: 'imsi-460602072701180',
// msisdn: 'msisdn-123460600080',
// pduSessionInfo: [
// {
// activeTime: '2024-06-19 14:31:09',
// dnn: 'cmnet',
// ipv4: '10.10.48.4',
// ipv6: '',
// pduSessionID: 5,
// ranN3IP: '192.168.8.223',
// sstSD: '1-000001',
// tai: '46060-0001',
// upState: 'Active',
// upfN3IP: '192.168.1.161',
// },
// ],
// 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;
}
+17
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;
}
+13 -108
View File
@@ -1,89 +1,16 @@
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';
/**
* 查询自定义指标
* @param query 查询参数
* @returns object
*/
export async function listCustom(query: Record<string, any>) {
let totalSQL = 'select count(*) as total from pm_custom_title where 1=1 ';
let rowsSQL = 'select * from pm_custom_title where 1=1 ';
// 查询
let querySQL = '';
if (query.neType) {
querySQL += ` and ne_type like '%${query.neType}%' `;
}
// 排序
let sortSql = ' order by update_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/pm_custom_title`,
method: 'get',
params: {
totalSQL: totalSQL + querySQL,
rowsSQL: rowsSQL + querySQL + sortSql + limtSql,
},
export async function listCustom(query?: Record<string, any>) {
return await request({
url: `/neData/kpic/title/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['pm_custom_title'];
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 id 网元ID
* @returns object
*/
export async function getCustom(id: string | number) {
// 发起请求
const result = await request({
url: `/api/rest/databaseManagement/v1/select/omc_db/pm_custom_title`,
method: 'get',
params: {
SQL: `select * from pm_custom_title where 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['pm_custom_title'][0]),
});
}
return result;
}
/**
@@ -92,21 +19,10 @@ export async function getCustom(id: string | number) {
* @returns object
*/
export function addCustom(data: Record<string, any>) {
let obj: any = {
title: data.title,
ne_type: data.neType,
kpi_id: data.kpiId,
object_type: data.objectType,
expression: data.expression,
period: data.period,
description: data.description,
kpi_set: data.kpiSet,
};
return request({
url: `/api/rest/databaseManagement/v1/omc_db/pm_custom_title`,
method: 'post',
data: { 'data': [obj] },
url: `/neData/kpic/title`,
method: 'POST',
data: data,
});
}
@@ -116,20 +32,10 @@ export function addCustom(data: Record<string, any>) {
* @returns object
*/
export function updateCustom(data: Record<string, any>) {
let obj: any = {
title: data.title,
ne_type: data.neType,
kpi_id: data.kpiId,
object_type: data.objectType,
expression: data.expression,
period: data.period,
description: data.description,
kpi_set: data.kpiSet,
};
return request({
url: `/api/rest/databaseManagement/v1/omc_db/pm_custom_title?WHERE=id=${data.id}`,
method: 'put',
data: { data: obj },
url: `/neData/kpic/title`,
method: 'PUT',
data: data,
});
}
@@ -139,8 +45,7 @@ export function updateCustom(data: Record<string, any>) {
*/
export async function delCustom(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/pm_custom_title?WHERE=id=${data.id}`,
method: 'delete',
url: `/neData/kpic/title?id=${data.id}`,
method: 'DELETE',
});
}
+24 -151
View File
@@ -2,81 +2,6 @@ import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch';
import { parseObjLineToHump } from '@/utils/parse-utils';
/**
* Todo 废弃
* 查询黄金指标数据
* @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,86 +27,34 @@ export async function getKPITitle(neType: string) {
// 发起请求
const result = await request({
url: `/neData/kpi/title`,
method: 'get',
method: 'GET',
params: { neType },
});
// 解析数据//
return result;
}
//忙时呼叫
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,
});
}
/**
* Todo 废弃
* 查询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 DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND NOW()`,
},
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 DATE_SUB(NOW(), INTERVAL 10 MINUTE) AND NOW()`,
},
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 };
//CCT指标
export async function getCctHour(query: Record<string, any>) {
return request({
url: '/neData/ims/cdr/cct-hour',
method: 'GET',
params: query,
});
}
+51
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',
});
}
+7 -8
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));
}
}
});
+12 -13
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,7 +101,7 @@ export function addPerfThre(data: Record<string, any>) {
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold`,
method: 'post',
method: 'POST',
data: { measure_threshold: [obj] },
});
}
@@ -122,7 +121,7 @@ export function updatePerfThre(data: Record<string, any>) {
};
return request({
url: `/api/rest/databaseManagement/v1/omc_db/measure_threshold?WHERE=id=${data.id}`,
method: 'put',
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' } },
});
}
+12 -13
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',
});
}
+9 -26
View File
@@ -7,7 +7,7 @@ import { request } from '@/plugins/http-fetch';
export function getUserProfile() {
return request({
url: '/system/user/profile',
method: 'get',
method: 'GET',
});
}
@@ -19,38 +19,21 @@ export function getUserProfile() {
export function updateUserProfile(data: Record<string, any>) {
return request({
url: '/system/user/profile',
method: 'put',
method: 'PUT',
data: data,
});
}
/**
* 用户密码重置
* @param userId 用户ID
* @param status 变更状态值
* 用户个人密码重置
* @param oldPassword 旧密码
* @param newPassword 新密码
* @returns object
*/
export function updateUserPwd(oldPassword: string, newPassword: string) {
export function updateUserPassword(oldPassword: string, newPassword: string) {
return request({
url: '/system/user/profile/updatePwd',
method: 'put',
data: {
oldPassword,
newPassword,
},
});
}
/**
* 用户头像上传
* @param data 表单数据对象
* @returns object
*/
export function uploadAvatar(data: FormData) {
return request({
url: '/system/user/profile/avatar',
method: 'post',
data,
dataType: 'form-data',
url: '/system/user/profile/password',
method: 'PUT',
data: { oldPassword, newPassword },
});
}
-12
View File
@@ -1,12 +0,0 @@
import { request } from '@/plugins/http-fetch';
/**
* 获取路由
* @returns object
*/
export const getRouters = () => {
return request({
url: '/getRouters',
method: 'get',
});
};
+13 -13
View File
@@ -8,8 +8,8 @@ import { request } from '@/plugins/http-fetch';
export function exportConfig(query: Record<string, any>) {
return request({
url: '/system/config/export',
method: 'post',
data: query,
method: 'GET',
params: query,
responseType: 'blob',
});
}
@@ -22,7 +22,7 @@ export function exportConfig(query: Record<string, any>) {
export function listConfig(query: Record<string, any>) {
return request({
url: '/system/config/list',
method: 'get',
method: 'GET',
params: query,
});
}
@@ -35,7 +35,7 @@ export function listConfig(query: Record<string, any>) {
export function getConfig(configId: string | number) {
return request({
url: `/system/config/${configId}`,
method: 'get',
method: 'GET',
});
}
@@ -46,8 +46,8 @@ export function getConfig(configId: string | number) {
*/
export function getConfigKey(configKey: string) {
return request({
url: `/system/config/configKey/${configKey}`,
method: 'get',
url: `/system/config/config-key/${configKey}`,
method: 'GET',
});
}
@@ -59,7 +59,7 @@ export function getConfigKey(configKey: string) {
export function addConfig(data: Record<string, any>) {
return request({
url: '/system/config',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -72,7 +72,7 @@ export function addConfig(data: Record<string, any>) {
export function updateConfig(data: Record<string, any>) {
return request({
url: '/system/config',
method: 'put',
method: 'PUT',
data: data,
});
}
@@ -85,7 +85,7 @@ export function updateConfig(data: Record<string, any>) {
export function delConfig(configId: string | number) {
return request({
url: `/system/config/${configId}`,
method: 'delete',
method: 'DELETE',
});
}
@@ -95,8 +95,8 @@ export function delConfig(configId: string | number) {
*/
export function refreshCache() {
return request({
url: '/system/config/refreshCache',
method: 'put',
url: '/system/config/refresh',
method: 'PUT',
});
}
@@ -107,8 +107,8 @@ export function refreshCache() {
*/
export function changeValue(data: Record<string, string>) {
return request({
url: '/system/config/changeValue',
method: 'put',
url: '/system/config/change-value',
method: 'PUT',
data: data,
});
}
+12 -12
View File
@@ -8,7 +8,7 @@ import { request } from '@/plugins/http-fetch';
export function listDept(query: Record<string, any>) {
return request({
url: '/system/dept/list',
method: 'get',
method: 'GET',
params: query,
});
}
@@ -21,7 +21,7 @@ export function listDept(query: Record<string, any>) {
export function listDeptExcludeChild(deptId: string | number) {
return request({
url: `/system/dept/list/exclude/${deptId}`,
method: 'get',
method: 'GET',
});
}
@@ -33,7 +33,7 @@ export function listDeptExcludeChild(deptId: string | number) {
export function getDept(deptId: string | number) {
return request({
url: `/system/dept/${deptId}`,
method: 'get',
method: 'GET',
});
}
@@ -45,7 +45,7 @@ export function getDept(deptId: string | number) {
export function addDept(data: Record<string, any>) {
return request({
url: '/system/dept',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -58,7 +58,7 @@ export function addDept(data: Record<string, any>) {
export function updateDept(data: Record<string, any>) {
return request({
url: '/system/dept',
method: 'put',
method: 'PUT',
data: data,
});
}
@@ -71,7 +71,7 @@ export function updateDept(data: Record<string, any>) {
export function delDept(deptId: string | number) {
return request({
url: `/system/dept/${deptId}`,
method: 'delete',
method: 'DELETE',
});
}
@@ -79,10 +79,10 @@ export function delDept(deptId: string | number) {
* 查询部门下拉树结构
* @returns object
*/
export function deptTreeSelect() {
export function deptTree() {
return request({
url: '/system/dept/treeSelect',
method: 'get',
url: '/system/dept/tree',
method: 'GET',
});
}
@@ -91,9 +91,9 @@ export function deptTreeSelect() {
* @param roleId 角色ID
* @returns object
*/
export function roleDeptTreeSelect(roleId: string | number) {
export function deptTreeRole(roleId: string | number) {
return request({
url: `/system/dept/roleDeptTreeSelect/${roleId}`,
method: 'get',
url: `/system/dept/tree/role/${roleId}`,
method: 'GET',
});
}
+14 -14
View File
@@ -8,8 +8,8 @@ import { request } from '@/plugins/http-fetch';
export function exportData(query: Record<string, any>) {
return request({
url: '/system/dict/data/export',
method: 'post',
data: query,
method: 'GET',
params: query,
responseType: 'blob',
});
}
@@ -22,20 +22,20 @@ export function exportData(query: Record<string, any>) {
export function listData(query: Record<string, any>) {
return request({
url: '/system/dict/data/list',
method: 'get',
method: 'GET',
params: query,
});
}
/**
* 查询字典数据详细
* @param dictCode 字典代码值
* @param id 字典代码值
* @returns object
*/
export function getData(dictCode: string | number) {
export function getData(id: string | number) {
return request({
url: `/system/dict/data/${dictCode}`,
method: 'get',
url: `/system/dict/data/${id}`,
method: 'GET',
});
}
@@ -47,7 +47,7 @@ export function getData(dictCode: string | number) {
export function addData(data: Record<string, any>) {
return request({
url: '/system/dict/data',
method: 'post',
method: 'POST',
data: data,
});
}
@@ -60,20 +60,20 @@ export function addData(data: Record<string, any>) {
export function updateData(data: Record<string, any>) {
return request({
url: '/system/dict/data',
method: 'put',
method: 'PUT',
data: data,
});
}
/**
* 删除字典数据
* @param dictCode 字典代码值
* @param id 字典代码值
* @returns object
*/
export function delData(dictCode: string | number) {
export function delData(id: string | number) {
return request({
url: `/system/dict/data/${dictCode}`,
method: 'delete',
url: `/system/dict/data/${id}`,
method: 'DELETE',
});
}
@@ -85,6 +85,6 @@ export function delData(dictCode: string | number) {
export function getDictDataType(dictType: string) {
return request({
url: `/system/dict/data/type/${dictType}`,
method: 'get',
method: 'GET',
});
}
Loaded 100 of 396 files, more files were not shown because too many files have changed in this diff. Show more