From daa2ef52030dbbc01a7b8c6c0728dfba0dcb8148 Mon Sep 17 00:00:00 2001 From: "meilin.huang" <954537473@qq.com> Date: Wed, 27 Jul 2022 15:36:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=95=B0=E6=8D=AE=E5=BA=93=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=89=E4=B8=AD=E6=95=B0=E6=8D=AE=E7=94=9F=E6=88=90?= =?UTF-8?q?insert=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mayfly_go_web/package.json | 2 +- mayfly_go_web/src/views/ops/db/SqlExec.vue | 45 +++++++++++++++++++ .../src/views/ops/machine/FileManage.vue | 2 +- mayfly_go_web/yarn.lock | 8 ++-- server/config.yml | 3 +- .../machine/ws_shell_session.go | 2 +- server/pkg/config/jwt.go | 1 - server/pkg/ctx/token.go | 8 +++- server/pkg/utils/rand.go | 25 +++++++++++ 9 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 server/pkg/utils/rand.go diff --git a/mayfly_go_web/package.json b/mayfly_go_web/package.json index 52c95bf9..dce3bf01 100644 --- a/mayfly_go_web/package.json +++ b/mayfly_go_web/package.json @@ -13,7 +13,7 @@ "countup.js": "^2.0.7", "cropperjs": "^1.5.11", "echarts": "^5.3.3", - "element-plus": "^2.2.10", + "element-plus": "2.2.9", "jsencrypt": "^3.2.1", "jsoneditor": "^9.9.0", "lodash": "^4.17.21", diff --git a/mayfly_go_web/src/views/ops/db/SqlExec.vue b/mayfly_go_web/src/views/ops/db/SqlExec.vue index aa96672a..93dd6dd7 100644 --- a/mayfly_go_web/src/views/ops/db/SqlExec.vue +++ b/mayfly_go_web/src/views/ops/db/SqlExec.vue @@ -152,6 +152,10 @@ + + + gi + + + + + @@ -353,6 +361,10 @@ export default defineComponent({ condition: '=', value: null, }, + genSqlDialog: { + visible: false, + sql: '', + }, cmOptions: { tabSize: 4, mode: 'text/x-sql', @@ -1016,6 +1028,38 @@ export default defineComponent({ }); }; + const onGenerateInsertSql = async () => { + const queryTab = isQueryTab(); + const datas = queryTab ? state.queryTab.selectionDatas : state.dataTabs[state.activeName].selectionDatas; + isTrue(datas && datas.length > 0, '请先选择要生成insert语句的数据'); + const tableName = state.nowTableName; + const columns: any = await getColumns(tableName); + + const sqls = []; + for (let data of datas) { + let colNames = []; + let values = []; + for (let column of columns) { + const colName = column.columnName; + colNames.push(colName); + values.push(wrapValueByType(data[colName])); + } + sqls.push(`INSERT INTO ${tableName} (${colNames.join(', ')}) VALUES(${values.join(', ')})`); + } + state.genSqlDialog.sql = sqls.join(';\n') + ';'; + state.genSqlDialog.visible = true; + }; + + const wrapValueByType = (val: any) => { + if (val == null) { + return 'NULL'; + } + if (typeof val == 'number') { + return val; + } + return `'${val}'`; + }; + /** * 是否为查询tab */ @@ -1192,6 +1236,7 @@ export default defineComponent({ onDataSelectionChange, onDeleteData, onTableSortChange, + onGenerateInsertSql, showExecBtns, closeExecBtns, }; diff --git a/mayfly_go_web/src/views/ops/machine/FileManage.vue b/mayfly_go_web/src/views/ops/machine/FileManage.vue index 00d6d30d..54188b40 100755 --- a/mayfly_go_web/src/views/ops/machine/FileManage.vue +++ b/mayfly_go_web/src/views/ops/machine/FileManage.vue @@ -57,7 +57,7 @@ - +