diff --git a/Dockerfile.sourcebuild b/Dockerfile.sourcebuild index cd6d0253..787bd6b5 100644 --- a/Dockerfile.sourcebuild +++ b/Dockerfile.sourcebuild @@ -1,5 +1,5 @@ # 构建前端资源 -FROM m.daocloud.io/docker.io/node:18-bookworm-slim as fe-builder +FROM m.daocloud.io/docker.io/node:18-bookworm-slim AS fe-builder WORKDIR /mayfly @@ -10,7 +10,7 @@ RUN yarn config set registry 'https://registry.npmmirror.com' && \ yarn build # 构建后端资源 -FROM m.daocloud.io/docker.io/golang:1.23 as be-builder +FROM m.daocloud.io/docker.io/golang:1.23 AS be-builder ENV GOPROXY https://goproxy.cn WORKDIR /mayfly diff --git a/build_release.sh b/build_release.sh index 6c678bee..6948760a 100755 --- a/build_release.sh +++ b/build_release.sh @@ -56,6 +56,7 @@ function build() { if [ "${os}" == "windows" ];then execFileName="${execFileName}.exe" fi + go mod tidy CGO_ENABLE=0 GOOS=${os} GOARCH=${arch} go build -ldflags=-w -o ${execFileName} main.go if [ -d ${toFolder} ] ; then diff --git a/frontend/package.json b/frontend/package.json index d15cfe7f..874ecfe5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.3.1", - "@vueuse/core": "^11.2.0", + "@vueuse/core": "^11.3.0", "asciinema-player": "^3.8.1", "axios": "^1.6.2", "clipboard": "^2.0.11", @@ -28,7 +28,7 @@ "monaco-sql-languages": "^0.12.2", "monaco-themes": "^0.4.4", "nprogress": "^0.2.0", - "pinia": "^2.2.6", + "pinia": "^2.2.7", "qrcode.vue": "^3.5.1", "screenfull": "^6.0.2", "sortablejs": "^1.15.3", @@ -38,7 +38,7 @@ "uuid": "^9.0.1", "vue": "^3.5.13", "vue-i18n": "^10.0.4", - "vue-router": "^4.4.5", + "vue-router": "^4.5.0", "xterm": "^5.3.0", "xterm-addon-fit": "^0.8.0", "xterm-addon-search": "^0.13.0", @@ -52,16 +52,16 @@ "@types/sortablejs": "^1.15.8", "@typescript-eslint/eslint-plugin": "^6.7.4", "@typescript-eslint/parser": "^6.7.4", - "@vitejs/plugin-vue": "^5.2.0", + "@vitejs/plugin-vue": "^5.2.1", "@vue/compiler-sfc": "^3.5.13", "code-inspector-plugin": "^0.4.5", "dotenv": "^16.3.1", "eslint": "^8.35.0", - "eslint-plugin-vue": "^9.28.0", + "eslint-plugin-vue": "^9.31.0", "prettier": "^3.2.5", "sass": "^1.81.0", - "typescript": "^5.6.3", - "vite": "^5.4.11", + "typescript": "^5.7.2", + "vite": "^6.0.1", "vue-eslint-parser": "^9.4.3" }, "browserslist": [ diff --git a/frontend/src/components/monaco/MonacoEditor.vue b/frontend/src/components/monaco/MonacoEditor.vue index 897a07fe..2caf8fd6 100644 --- a/frontend/src/components/monaco/MonacoEditor.vue +++ b/frontend/src/components/monaco/MonacoEditor.vue @@ -196,6 +196,9 @@ watch( (newValue: any) => { if (!monacoEditorIns.hasTextFocus()) { state.languageMode = props.language; + if (newValue == null) { + newValue = ''; + } monacoEditorIns?.setValue(newValue); } } diff --git a/frontend/src/i18n/en/common.ts b/frontend/src/i18n/en/common.ts index 551e91fc..dfcfa202 100644 --- a/frontend/src/i18n/en/common.ts +++ b/frontend/src/i18n/en/common.ts @@ -47,7 +47,7 @@ export default { copy: 'Copy', pleaseInput: 'Please enter {label}', pleaseSelect: 'Please select {label}', - formValidationError: 'Please fill in the form information correctly', + formValidationError: 'Please check the form', createTitle: 'Create {name}', editTitle: 'Edit {name}', detailTitle: '{name} Details', diff --git a/frontend/src/i18n/en/redis.ts b/frontend/src/i18n/en/redis.ts index 6f7b029d..6f96dbcc 100644 --- a/frontend/src/i18n/en/redis.ts +++ b/frontend/src/i18n/en/redis.ts @@ -19,7 +19,6 @@ export default { newTabOpen: 'New tab opens', redisSelectErr: 'Select redis first', flushDbTips: 'Make sure to clear all keys of the [{db}] library?', - keyNotEmpty: 'The Key cannot be empty', // info redisInfoTitle: 'Redis server information', diff --git a/frontend/src/i18n/zh-cn/common.ts b/frontend/src/i18n/zh-cn/common.ts index 008c9398..76384b25 100644 --- a/frontend/src/i18n/zh-cn/common.ts +++ b/frontend/src/i18n/zh-cn/common.ts @@ -47,7 +47,7 @@ export default { copy: '复制', pleaseInput: '请输入{label}', pleaseSelect: '请选择{label}', - formValidationError: '请正确填写表单信息', + formValidationError: '信息填写有误,请检查', createTitle: '创建{name}', editTitle: '编辑{name}', detailTitle: '{name}详情', diff --git a/frontend/src/i18n/zh-cn/redis.ts b/frontend/src/i18n/zh-cn/redis.ts index 524f2906..8ee0cbff 100644 --- a/frontend/src/i18n/zh-cn/redis.ts +++ b/frontend/src/i18n/zh-cn/redis.ts @@ -17,7 +17,6 @@ export default { newTabOpen: '新tab打开', redisSelectErr: '请先选择redis', flushDbTips: '确定清空[{db}]库的所有key?', - keyNotEmpty: 'Key不能为空', // info redisInfoTitle: 'Redis服务器信息', diff --git a/frontend/src/views/ops/db/component/sqleditor/DbSqlEditor.vue b/frontend/src/views/ops/db/component/sqleditor/DbSqlEditor.vue index f862ee53..d14682b8 100644 --- a/frontend/src/views/ops/db/component/sqleditor/DbSqlEditor.vue +++ b/frontend/src/views/ops/db/component/sqleditor/DbSqlEditor.vue @@ -303,17 +303,17 @@ const onRunSql = async (newTab = false) => { const sqls = splitSql(sql); - // 简单截取前十个字符 - const sqlPrefix = sql.slice(0, 10).toLowerCase(); - const nonQuery = - sqlPrefix.startsWith('update') || - sqlPrefix.startsWith('insert') || - sqlPrefix.startsWith('delete') || - sqlPrefix.startsWith('alter') || - sqlPrefix.startsWith('drop') || - sqlPrefix.startsWith('create'); - if (sqls.length == 1) { + const oneSql = sqls[0]; + // 简单截取前十个字符 + const sqlPrefix = oneSql.slice(0, 10).toLowerCase(); + const nonQuery = + sqlPrefix.startsWith('update') || + sqlPrefix.startsWith('insert') || + sqlPrefix.startsWith('delete') || + sqlPrefix.startsWith('alter') || + sqlPrefix.startsWith('drop') || + sqlPrefix.startsWith('create'); let execRemark; if (nonQuery) { const res: any = await ElMessageBox.prompt(t('db.enterExecRemarkTips'), 'Tip', { @@ -323,7 +323,7 @@ const onRunSql = async (newTab = false) => { }); execRemark = res.value; } - runSql(sql, execRemark, newTab); + runSql(oneSql, execRemark, newTab); } else { let isFirst = true; for (let s of sqls) { diff --git a/frontend/src/views/ops/db/component/table/DbTableData.vue b/frontend/src/views/ops/db/component/table/DbTableData.vue index 78025a03..a2e31428 100644 --- a/frontend/src/views/ops/db/component/table/DbTableData.vue +++ b/frontend/src/views/ops/db/component/table/DbTableData.vue @@ -483,7 +483,6 @@ const setTableColumns = (columns: any) => { x.dataType = dbDialect.getDataType(x.columnType); x.dataTypeSubscript = ColumnTypeSubscript[x.dataType]; x.remark = `${x.columnType} ${x.columnComment ? ' | ' + x.columnComment : ''}`; - console.log(x); return { ...x, key: columnName, diff --git a/frontend/src/views/ops/machine/MachineOp.vue b/frontend/src/views/ops/machine/MachineOp.vue index 00d712a8..3b678dd4 100644 --- a/frontend/src/views/ops/machine/MachineOp.vue +++ b/frontend/src/views/ops/machine/MachineOp.vue @@ -6,7 +6,7 @@ @@ -168,7 +168,7 @@ import { useRouter } from 'vue-router'; import { getMachineTerminalSocketUrl, machineApi } from './api'; import { formatDate } from '@/common/utils/format'; import { hasPerms } from '@/components/auth/auth'; -import { TagResourceTypeEnum } from '@/common/commonEnum'; +import { TagResourceTypeEnum, TagResourceTypePath } from '@/common/commonEnum'; import { NodeType, TagTreeNode, getTagTypeCodeByPath } from '../component/tag'; import TagTree from '../component/TagTree.vue'; import { Pane, Splitpanes } from 'splitpanes'; diff --git a/frontend/src/views/ops/redis/DataOperation.vue b/frontend/src/views/ops/redis/DataOperation.vue index 915e51ee..e02659f5 100644 --- a/frontend/src/views/ops/redis/DataOperation.vue +++ b/frontend/src/views/ops/redis/DataOperation.vue @@ -160,7 +160,7 @@
- + @@ -187,9 +187,9 @@