拼接命令.
This commit is contained in:
@@ -101,7 +101,8 @@ public class HostConnectLogServiceImpl implements HostConnectLogService {
|
|||||||
.like(HostConnectLogDO::getToken, request.getToken())
|
.like(HostConnectLogDO::getToken, request.getToken())
|
||||||
.eq(HostConnectLogDO::getStatus, request.getStatus())
|
.eq(HostConnectLogDO::getStatus, request.getStatus())
|
||||||
.ge(HostConnectLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 0))
|
.ge(HostConnectLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 0))
|
||||||
.le(HostConnectLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 1));
|
.le(HostConnectLogDO::getStartTime, Arrays1.getIfPresent(request.getStartTimeRange(), 1))
|
||||||
|
.orderByDesc(HostConnectLogDO::getId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,8 +93,8 @@
|
|||||||
const session = ref<ITerminalSession>();
|
const session = ref<ITerminalSession>();
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
// sftp
|
|
||||||
// 代码片段
|
// 代码片段
|
||||||
|
// sftp
|
||||||
|
|
||||||
// 发送命令
|
// 发送命令
|
||||||
const writeCommandInput = async (e: KeyboardEvent) => {
|
const writeCommandInput = async (e: KeyboardEvent) => {
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ export default class TerminalSessionHandler implements ITerminalSessionHandler {
|
|||||||
case 'interrupt':
|
case 'interrupt':
|
||||||
case 'enter':
|
case 'enter':
|
||||||
case 'commandEditor':
|
case 'commandEditor':
|
||||||
|
case 'checkAppendMissing':
|
||||||
return this.session.canWrite;
|
return this.session.canWrite;
|
||||||
case 'disconnect':
|
case 'disconnect':
|
||||||
return this.session.connected;
|
return this.session.connected;
|
||||||
@@ -181,6 +182,36 @@ export default class TerminalSessionHandler implements ITerminalSessionHandler {
|
|||||||
this.session.disconnect();
|
this.session.disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查追加缺失的部分
|
||||||
|
checkAppendMissing(value: string): void {
|
||||||
|
// 获取最后一行数据
|
||||||
|
const buffer = this.inst.buffer?.active;
|
||||||
|
let lastLine = (buffer?.getLine(buffer?.viewportY + buffer?.cursorY)?.translateToString() || '').trimEnd();
|
||||||
|
// 边界检查
|
||||||
|
const lastLineLen = lastLine.length;
|
||||||
|
const spinPartLen = value.length;
|
||||||
|
let checkEnd;
|
||||||
|
if (spinPartLen >= lastLineLen) {
|
||||||
|
checkEnd = lastLineLen;
|
||||||
|
} else {
|
||||||
|
checkEnd = spinPartLen;
|
||||||
|
}
|
||||||
|
// 获取缺失的数据
|
||||||
|
let append = undefined;
|
||||||
|
for (let i = 0; i < checkEnd; i++) {
|
||||||
|
if (lastLine.endsWith(value.substring(0, checkEnd - i))) {
|
||||||
|
append = value.substring(checkEnd - i, spinPartLen);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 全部缺失
|
||||||
|
if (append == undefined) {
|
||||||
|
append = value;
|
||||||
|
}
|
||||||
|
// 追加
|
||||||
|
this.pasteTrimEnd(append);
|
||||||
|
}
|
||||||
|
|
||||||
// 截图
|
// 截图
|
||||||
async screenshot() {
|
async screenshot() {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -240,6 +240,8 @@ export interface ITerminalSessionHandler {
|
|||||||
disconnect: () => void;
|
disconnect: () => void;
|
||||||
// 截图
|
// 截图
|
||||||
screenshot: () => void;
|
screenshot: () => void;
|
||||||
|
// 检查追加缺失的部分
|
||||||
|
checkAppendMissing: (value: string) => void;
|
||||||
// 关闭 tab
|
// 关闭 tab
|
||||||
closeTab: () => void;
|
closeTab: () => void;
|
||||||
// 切换到前一个 tab
|
// 切换到前一个 tab
|
||||||
|
|||||||
Reference in New Issue
Block a user