📝 修改文档.

This commit is contained in:
lijiahangmax
2024-03-22 01:46:18 +08:00
parent 1e9805c99f
commit 5d9fcf7265
31 changed files with 7236 additions and 4542 deletions

View File

@@ -3,7 +3,7 @@
</h1>
`orion-ops-pro` 是一款现代化、高颜值的一站式智能运维管理平台集资产管理、资产授权、批量执行、Web终端、WebSftp、角色管理、系统管理等功能于一体致力于简化运维团队的治理工作。它是基于 `orion-ops`
的产品思路进行重构,技术架构升级,并优化了交互逻辑,让操作更快捷友好。
的产品思路进行重构,技术架构升级,并优化了交互逻辑,让操作更快捷友好。
<p style="text-align: left">
<a target="_blank" style="text-decoration: none" href="https://app.codacy.com/gh/lijiahangmax/orion-ops-pro/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade">
@@ -77,32 +77,38 @@ roadmap: https://lijiahangmax.gitee.io/orion-ops-pro/#/about/roadmap
> 工作台
![工作台](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/69328bb3-8a8d-47ca-8a5b-d16c56be704b.png "工作台")
![工作台](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/13d79a89-aadf-4100-8bb3-afb03758001f.png "工作台")
> 资产管理
![主机列表](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/8ca59a20-09b6-48e5-b511-c01319d963df.png "主机列表")
![资产授权](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/a6e48de3-5145-4c48-a6a2-b99208cb1ae1.png "资产授权")
![主机列表](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/d9954335-9afa-4579-b040-a1c3006cb1f0.png "主机列表")
![资产授权](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/ffbdd0e2-4811-4776-a96c-7b5d9b4f3e89.png "资产授权")
> 主机终端
![主机终端](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/7264f870-45c7-4037-9179-6473d254c231.png "主机终端")
![命令片段](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/0803bb07-3776-4de3-bd4a-02931fab7ca7.png "命令片段")
![主题设置](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/89f75025-b0d4-4ccf-b1a7-de311c576ab4.png "主题设置")
![终端设置](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/b6d2da7a-5aaf-4790-b4e9-d8e8428e2122.png "终端设置")
![sftp](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/9c096d5e-3a1c-40e3-b047-1e8725f27726.png "sftp")
![传输列表](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/cebee39c-d5f6-4d82-b4b8-f2734c9a49bf.png "传输列表")
![主机终端](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/de6ae2bb-3d9a-44d6-b530-664febee7dbc.png "主机终端")
![命令片段](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/0a2a8077-fb47-4c87-8327-9d6b93ecc552.png "命令片段")
![主题设置](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/20741d51-af62-40f0-bd6f-6e954d9b0398.png "主题设置")
![终端设置](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/a3bf32bc-26b5-4ec7-b429-54c17ccd136b.png "终端设置")
![sftp](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/0ae07072-1740-4f84-aaf7-c18a8074ce61.png "sftp")
![传输列表](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/ccf880a4-c393-4a35-9f35-fe7572256edd.png "传输列表")
> 批量执行
![批量执行](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/0a222b64-d2c1-481c-99b8-c3a0616d2fab.png "批量执行")
![执行日志](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/06d02d38-70ef-43c2-950c-9f8c73a105ba.png "执行日志")
![执行记录](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/0e474cc2-f7cf-49bc-be3c-f6445783ad7c.png "执行记录")
> 用户管理
![用户列表](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/b9ca5bb6-f88a-43e6-888f-b7259df02521.png "用户列表")
![个人中心](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/6a4985c6-e828-4eb3-96b2-b1ca48df7579.png "个人中心")
![操作日志](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/304c6e12-755e-4ce7-8d37-051676ff6fe9.png "操作日志")
![用户列表](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/0d5f26e0-de4e-4342-800c-30a0d5d3078e.png "用户列表")
![个人中心](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/ed1e5e02-f854-44ee-bb37-ea6e45526457.png "个人中心")
![操作日志](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/ba6f1526-da00-4a3d-a550-470a6b3d2803.png "操作日志")
> 系统管理
![系统菜单](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/89dcd816-7f76-4bed-be4c-79a412dbeba4.png "系统菜单")
![分配菜单](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/2/27/ac5ca3da-6874-4655-b192-b88bad6cfa06.png "分配菜单")
![系统菜单](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/5087cd35-6a65-4338-bc87-c81969cdb947.png "系统菜单")
![分配菜单](https://bjuimg.obs.cn-north-4.myhuaweicloud.com/images/2024/3/22/5a7804ed-179c-4d25-820f-af2af1aabbba.png "分配菜单")
## 联系我

View File

@@ -2,8 +2,9 @@
<img style="margin-right: 8px;" src="./assert/logo.svg" width="32px" height="32px"/> orion-ops-pro 是什么
</h1>
`orion-ops-pro` 是一款现代化、高颜值的一站式智能运维管理平台集资产管理、资产授权、批量执行、Web终端、WebSftp、角色管理、系统管理等功能于一体致力于简化运维团队的治理工作。它是基于 `orion-ops`
的产品思路进行重构,技术架构升级,并优化了交互逻辑,让操作更快捷友好。
`orion-ops-pro`
是一款现代化、高颜值的一站式智能运维管理平台集资产管理、资产授权、批量执行、Web终端、WebSftp、角色管理、系统管理等功能于一体致力于简化运维团队的治理工作。它是基于 `orion-ops`
的产品思路进行重构,技术架构升级,并优化了交互逻辑,让操作更快捷更友好。
<p style="text-align: left">
<a target="_blank" style="text-decoration: none" href="https://app.codacy.com/gh/lijiahangmax/orion-ops-pro/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade">
@@ -91,6 +92,12 @@ roadmap: https://lijiahangmax.gitee.io/orion-ops-pro/#/about/roadmap
![sftp](./assert/img/terminal_sftp.png "sftp")
![传输列表](./assert/img/terminal_transfer.png "传输列表")
> 批量执行
![批量执行](./assert/img/batch_exec.png "批量执行")
![执行日志](./assert/img/batch_exec_log.png "执行日志")
![执行记录](./assert/img/batch_exec_record.png "执行记录")
> 用户管理
![用户列表](./assert/img/user_list.png "用户列表")

View File

@@ -2,8 +2,9 @@
## v1.0.2
`2024-03-22` `release`
`2024-03-2` `release`
* 🚀 升级 `arco design` `2.55.0`
* 🐞 修复 SFTP 加载失败后一直 loading
* 🐞 修复 主机终端搜索框报错
* 🐞 修复 SSH 配置未启用还可以连接

View File

@@ -1,7 +1,8 @@
## 功能排期 ⏳
* 批量执行
* 定时执行
* 批量上传
* 文件夹书签
* 站内消息
* 终端背景图片
* 资产授权 UI 改版

Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 530 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 KiB

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 504 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 563 KiB

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 524 KiB

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 582 KiB

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 552 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 KiB

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 613 KiB

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 606 KiB

After

Width:  |  Height:  |  Size: 136 KiB

View File

@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<title>关于orion-ops-pro</title>
<title>关于 orion-ops-pro</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="description" content="Description">
<link rel="icon" href="./assert/logo.svg">

View File

@@ -3,7 +3,7 @@
在主机终端页面打开的 `SSH` `SFTP` 连接都会记录下来。
* 详情: 查看连接详情
* 断开: 断开连接
* 断开: 断开会话连接
* 删除: 删除连接记录
* 清理: 根据条件清理数据

View File

@@ -37,17 +37,55 @@
> SFTP
* 预览: 默认只能预览 2MB 以内的普通文件, 这个大小可以在前端 env 文件中修改 `VITE_SFTP_PREVIEW_MB`
* 上传: 如果文件已存在则自动重命名之前的文件
> 终端面板
⭐ 双击终端标签可快速复制会话
### 批量执行
批量执行 ssh 主机 shell 脚本。
##### 日志面板中有几个内置的快捷键
* 回车: `Enter`
* 向上滚动: `↑`
* 向上滚动一页: `ctrl` `↑`
* 向下滚动: `↓`
* 向下滚动一页: `ctrl` `↓`
* 全选: `ctrl` `A`
* 复制: `ctrl` `C`
* 搜索: `ctrl` `F`
* 清空: `ctrl` `L`
⭐ 内置参数同执行模板参数
* 重置: 重置全部参数
* 执行: 执行所输入的命令
* 返回: 返回到执行命令页面
* 从模板中选择: 从模板中选择需要执行的命令
* 执行历史: 点击历史命令可以快速填入
### 执行记录
查看批量执行任务记录。
* 执行命令: 跳转到批量执行页面
* 清空: 清空执行记录
* 删除: 删除执行记录
* 重新执行: 重新执行此命令
* 命令: 查看执行时的命令
* 参数: 查看执行时的参数
* 日志: 查看执行日志, ctrl + 左键点击会用新页面打开
* 下载: 下载执行日志
### 执行模板
用来维护批量执行的命令模板, 支持动态参数, 使用 `@{{ xxx }}` 来替换命令参数。
* 新增: 新增执行模板
* 执行: 使用此命令模板批量执行主机命令
* 执行: 打开命令执行框并且带入模板参数
* 修改: 修改执行模板
* 删除: 删除执行模板

View File

@@ -1,4 +1,4 @@
VITE_API_BASE_URL= 'http://127.0.0.1:9200/orion/api'
VITE_WS_BASE_URL= 'ws://127.0.0.1:9200/orion/keep-alive'
VITE_APP_VERSION= '1.0.1'
VITE_APP_VERSION= '1.0.2'
VITE_SFTP_PREVIEW_MB= 2

View File

@@ -1,4 +1,4 @@
VITE_API_BASE_URL= '/orion/api'
VITE_WS_BASE_URL= '/orion/keep-alive'
VITE_APP_VERSION= '1.0.1'
VITE_APP_VERSION= '1.0.2'
VITE_SFTP_PREVIEW_MB= 2

View File

@@ -35,6 +35,7 @@ export default defineConfig({
},
define: {
'process.env': {},
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: JSON.stringify(true),
},
css: {
preprocessorOptions: {

View File

@@ -1,7 +1,7 @@
{
"name": "orion-ops-pro-ui",
"description": "Orion Ops Pro for Vue",
"version": "1.0.1",
"version": "1.0.2",
"private": true,
"author": "Jiahang Li",
"license": "Apache 2.0",
@@ -29,7 +29,7 @@
]
},
"dependencies": {
"@arco-design/web-vue": "^2.53.3",
"@arco-design/web-vue": "^2.55.0",
"@dangojs/a-query-header": "^0.0.31",
"@sanqi377/arco-vue-icon-picker": "^1.0.7",
"@vueuse/core": "^9.3.0",

11622
orion-ops-ui/pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
import type { IDisposable, ITerminalInitOnlyOptions, ITerminalOptions, Terminal } from 'xterm';
import type { FitAddon } from 'xterm-addon-fit';
import type { SearchAddon } from 'xterm-addon-search';
import type { CanvasAddon } from 'xterm-addon-canvas';
import type { WebLinksAddon } from 'xterm-addon-web-links';
import type { WebglAddon } from 'xterm-addon-webgl';
// appender 配置
export const AppenderOptions: ITerminalOptions & ITerminalInitOnlyOptions = {
@@ -42,7 +42,7 @@ export interface LogAppenderConf {
// appender 插件
export interface LogAddons extends Record<string, IDisposable> {
fit: FitAddon;
canvas: CanvasAddon;
webgl: WebglAddon;
search: SearchAddon;
weblink: WebLinksAddon;
}

View File

@@ -11,8 +11,8 @@ import { copy as copyText } from '@/hooks/copy';
import { Terminal } from 'xterm';
import { FitAddon } from 'xterm-addon-fit';
import { SearchAddon } from 'xterm-addon-search';
import { CanvasAddon } from 'xterm-addon-canvas';
import { WebLinksAddon } from 'xterm-addon-web-links';
import { WebglAddon } from 'xterm-addon-webgl';
// 执行日志 appender 实现
export default class LogAppender implements ILogAppender {
@@ -76,26 +76,48 @@ export default class LogAppender implements ILogAppender {
if (e.type !== 'keydown') {
return true;
}
if (e.ctrlKey && e.code === 'KeyC') {
// 复制
if (e.code === 'Enter') {
// 新起一行
e.preventDefault();
this.copy();
return false;
} else if (e.ctrlKey && e.code === 'KeyL') {
// 清空
terminal.write('\r\n');
} else if (e.code === 'ArrowUp') {
e.preventDefault();
this.clear();
return false;
if (e.ctrlKey) {
// 上移一页
terminal.scrollPages(-1);
} else {
// 上移
terminal.scrollLines(-1);
}
} else if (e.code === 'ArrowDown') {
e.preventDefault();
if (e.ctrlKey) {
// 下移一页
terminal.scrollPages(1);
} else {
// 下移
terminal.scrollLines(1);
}
} else if (e.ctrlKey && e.code === 'KeyA') {
// 全选
e.preventDefault();
this.selectAll();
return false;
} else if (e.ctrlKey && e.code === 'KeyC') {
// 复制
e.preventDefault();
this.copy();
return false;
} else if (e.ctrlKey && e.code === 'KeyF') {
// 搜索
e.preventDefault();
this.current.openSearch();
return false;
} else if (e.ctrlKey && e.code === 'KeyL') {
// 清空
e.preventDefault();
this.clear();
return false;
}
return true;
});
@@ -105,16 +127,16 @@ export default class LogAppender implements ILogAppender {
initAddons(terminal: Terminal): LogAddons {
const fit = new FitAddon();
const search = new SearchAddon();
const canvas = new CanvasAddon();
const webgl = new WebglAddon();
const weblink = new WebLinksAddon();
terminal.loadAddon(fit);
terminal.loadAddon(search);
terminal.loadAddon(canvas);
terminal.loadAddon(webgl);
terminal.loadAddon(weblink);
return {
fit,
search,
canvas,
webgl,
weblink
};
}