From 4f2d13e6de729a08bf96a391fdd21f1cc8f48453 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期五, 20 九月 2024 13:03:28 +0800
Subject: [PATCH] 自动加注释

---
 src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue |   48 ++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue b/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue
index 973c4d4..08b1351 100644
--- a/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue
+++ b/src/views/project/yw/lowCode/sqlAmis/edit/SqlAmisEdit.vue
@@ -40,14 +40,14 @@
 							<el-button type="primary" @click="addArg">娣诲姞</el-button>
 						</div>
 						<el-table class="flex-auto" :data="args" border>
-							<el-table-column prop="name" label="鍚嶇О" show-overflow-tooltip>
+							<el-table-column prop="name" width="150" label="鍚嶇О" show-overflow-tooltip>
 								<template #default="scope">
 									<el-input v-model="scope.row.name" @input="argsInput"></el-input>
 								</template>
 							</el-table-column>
-							<el-table-column prop="prompt" label="鎻愮ず璇�" show-overflow-tooltip>
+							<el-table-column prop="prompt" width="450" label="鎻愮ず璇�" show-overflow-tooltip>
 								<template #default="scope">
-									<el-input v-model="scope.row.prompt" @input="argsInput"></el-input>
+									<el-input type="textarea" :rows="2" v-model="scope.row.prompt" @input="argsInput"></el-input>
 								</template>
 							</el-table-column>
 							<el-table-column prop="check" label="缂虹渷鍊�" show-overflow-tooltip>
@@ -82,7 +82,6 @@
 									</el-select>
 								</div>
 								<codemirror
-									ref="sqlCodemirrorRef"
 									class="overflow-auto"
 									style="height: calc(100% - 36px)"
 									v-model="currentDockConfig.sql"
@@ -155,6 +154,39 @@
 	emit('backLastPage');
 };
 const currentRs = ref<AmisDockConfig>(null);
+
+const getWithTemplateDataCommentSql = (sql: string, data: any) => {
+	if (!Array.isArray(data)) {
+		return sql;
+	}
+	const first = data[0];
+	if (!_.isObjectLike(first)) {
+		return sql;
+	}
+	const firstKeyList = Object.keys(first);
+	// 鍊间负瀵硅薄
+	if (_.isObjectLike(first[firstKeyList[0]])) {
+		return sql;
+	}
+
+	
+
+	let comment = '';
+	firstKeyList.map((key, index, array) => {
+		const value = JSON.stringify(first[key]);
+		comment += `-- "${key}": ${value}\n`;
+	});
+
+	const reg = new RegExp(`^\\s*(\\s*--\\s*".*"\\s*:.*\\n)+`)
+	// 宸茬粡瀛樺湪锛屼竴瀹氳鏇挎崲鎴愭渶鏂扮殑
+	if (reg.test(sql)) {
+		const replaceStr =  sql.replace(reg,comment);
+		return replaceStr;
+	}
+
+	const result = comment+sql;
+	return result;
+};
 const dockRowChange = (row) => {
 	currentRs.value = row;
 	currentDockConfig.value = dockConfigList.value.find((item) => item.id === currentRs.value.recordId) ?? {
@@ -163,6 +195,9 @@
 		sql: '',
 		database: defaultSelectDatabase ?? databaseList.value[0]?.id ?? null,
 	};
+	const templateData = extraInfoMap.value.get(row.recordId).templateData;
+
+	currentDockConfig.value.sql =  getWithTemplateDataCommentSql(currentDockConfig.value.sql,templateData)
 };
 const currentDockConfig = ref(null);
 /** @description 璺緞鍒嗛殧绗� */
@@ -444,10 +479,7 @@
 		updateSqlAndRs();
 	}
 });
-const sqlCodemirrorRef= useCompRef(Codemirror);
-const beforeChange = (cm,change) => {
-	
-};
+
 // watch(() => sqlCodemirrorRef.value, (codeMirrorRef) => {
 // 	codeMirrorRef.
 // })

--
Gitblit v1.9.3