mirror of
https://github.com/chaos-zhu/easynode.git
synced 2026-10-07 13:18:34 +08:00
feat: 重命名执行模式为编码模式等、修复全屏模式显示问题等
- 统一controller方法,使用{res}/ {res, request}参数,移除非必要的uid参数和package-lock.json文件
- 将"执行模式"改为"编码方式",避免与"脚本执行开关"(手动/自动)产生歧义
- 在脚本编辑器中新增同样的编码方式选择功能
- 修复footerbar传递的执行脚本没有判断useBase64问题
- 修复全屏状态下规则编辑对话框、颜色选择器、以及所有下拉菜单不显示的问题,现在使用Teleport将规则编辑对话框动态挂载到全屏的document.fullscreenElement中,原来的下拉菜单和颜色选择器默认也会用 teleport 挂到 body,需要设置:teleported="false"以禁用
This commit is contained in:
@@ -20,24 +20,14 @@ const DEFAULT_TERMINAL_CONFIG = {
|
||||
const terminalConfigDB = new TerminalConfigDB().getInstance()
|
||||
|
||||
// 获取用户的终端配置
|
||||
async function getTerminalConfig(ctx) {
|
||||
const { uid } = ctx.request.query
|
||||
|
||||
if (!uid || typeof uid !== 'string' || uid.trim() === '') {
|
||||
ctx.body = { success: false, message: '无效的uid参数' }
|
||||
return
|
||||
}
|
||||
|
||||
async function getTerminalConfig({ res }) {
|
||||
try {
|
||||
// 查找用户配置
|
||||
let userConfig = await terminalConfigDB.findOneAsync({ uid, isDefault: { $ne: true } })
|
||||
let userConfig = await terminalConfigDB.findOneAsync({ isDefault: { $ne: true } })
|
||||
|
||||
if (!userConfig) {
|
||||
// 如果没有用户配置,直接返回默认配置
|
||||
userConfig = {
|
||||
...DEFAULT_TERMINAL_CONFIG,
|
||||
uid
|
||||
}
|
||||
userConfig = DEFAULT_TERMINAL_CONFIG
|
||||
} else {
|
||||
// 合并默认配置和用户配置
|
||||
userConfig = {
|
||||
@@ -46,28 +36,22 @@ async function getTerminalConfig(ctx) {
|
||||
}
|
||||
}
|
||||
|
||||
ctx.body = { success: true, data: userConfig }
|
||||
res.success({ data: userConfig })
|
||||
} catch (error) {
|
||||
console.error('Error in getTerminalConfig:', error)
|
||||
ctx.body = { success: false, message: '服务器内部错误,请稍后重试' }
|
||||
res.fail({ msg: '服务器内部错误,请稍后重试' })
|
||||
}
|
||||
}
|
||||
|
||||
// 保存用户的终端配置
|
||||
async function saveTerminalConfig(ctx) {
|
||||
const { uid, isDefault, name, _id, createTime, ...configData } = ctx.request.body
|
||||
|
||||
if (!uid || typeof uid !== 'string' || uid.trim() === '') {
|
||||
ctx.body = { success: false, message: '无效的uid参数' }
|
||||
return
|
||||
}
|
||||
async function saveTerminalConfig({ res, request }) {
|
||||
const { isDefault, name, _id, createTime, ...configData } = request.body
|
||||
|
||||
try {
|
||||
const existingConfig = await terminalConfigDB.findOneAsync({ uid, isDefault: { $ne: true } })
|
||||
const existingConfig = await terminalConfigDB.findOneAsync({ isDefault: { $ne: true } })
|
||||
|
||||
const updateData = {
|
||||
...configData,
|
||||
uid,
|
||||
updateTime: new Date().toISOString()
|
||||
}
|
||||
|
||||
@@ -83,10 +67,10 @@ async function saveTerminalConfig(ctx) {
|
||||
await terminalConfigDB.insertAsync(updateData)
|
||||
}
|
||||
|
||||
ctx.body = { success: true, message: '配置保存成功' }
|
||||
res.success({ msg: '配置保存成功' })
|
||||
} catch (error) {
|
||||
console.error('Error in saveTerminalConfig:', error)
|
||||
ctx.body = { success: false, message: '服务器内部错误,请稍后重试' }
|
||||
res.fail({ msg: '服务器内部错误,请稍后重试' })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -204,17 +204,6 @@ module.exports.FileTransferDB = class FileTransferDB {
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.HighlightConfigDB = class HighlightConfigDB {
|
||||
constructor() {
|
||||
if (!HighlightConfigDB.instance) {
|
||||
HighlightConfigDB.instance = new Datastore({ filename: terminalConfigDBPath, autoload: true })
|
||||
}
|
||||
}
|
||||
getInstance() {
|
||||
return HighlightConfigDB.instance
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.TerminalConfigDB = class TerminalConfigDB {
|
||||
constructor() {
|
||||
if (!TerminalConfigDB.instance) {
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
"crypto-js": "^4.2.0",
|
||||
"dotenv": "^16.4.5",
|
||||
"fs-extra": "^11.2.0",
|
||||
"get-intrinsic": "^1.3.0",
|
||||
"global": "^4.4.0",
|
||||
"iconv-lite": "^0.6.3",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
|
||||
Reference in New Issue
Block a user