feat: 机器终端支持文件&文件夹上传、支持选中文件下载

This commit is contained in:
meilin.huang
2026-05-14 21:29:13 +08:00
parent 847f5c7c90
commit 9b7e569b3a
27 changed files with 1666 additions and 218 deletions

View File

@@ -0,0 +1,56 @@
import ProgressNotify from './DbSqlExecProgress.vue';
import { ElNotification } from 'element-plus';
import { h, reactive } from 'vue';
import syssocket from '@/common/syssocket';
const sqlExecNotifyMap: Map<string, any> = new Map();
// 构建 props私有函数不导出
const buildProgressProps = (): any => {
return {
progress: {
title: {
type: String,
},
executedStatements: {
type: Number,
},
},
};
};
export async function registerDbSqlExecProgress() {
await syssocket.registerMsgHandler('sqlScriptRunProgress', function (message: any) {
const content = message.params;
const id = content.id;
let progress = sqlExecNotifyMap.get(id);
if (content.terminated) {
if (progress != undefined) {
progress.notification?.close();
sqlExecNotifyMap.delete(id);
progress = undefined;
}
return;
}
if (progress == undefined) {
progress = {
props: reactive(buildProgressProps()),
notification: undefined,
};
}
progress.props.progress.title = content.title;
progress.props.progress.executedStatements = content.executedStatements;
if (!sqlExecNotifyMap.has(id)) {
progress.notification = ElNotification({
duration: 0,
title: message.title,
message: h(ProgressNotify, progress.props),
type: 'info',
showClose: false,
});
sqlExecNotifyMap.set(id, progress);
}
});
}