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 @@
-
+