diff --git a/console/atest-ui/src/components/HistoryInput.vue b/console/atest-ui/src/components/HistoryInput.vue index 0eebf5b..0b10f7b 100644 --- a/console/atest-ui/src/components/HistoryInput.vue +++ b/console/atest-ui/src/components/HistoryInput.vue @@ -28,7 +28,7 @@ const props = defineProps({ type: Number, default: 10 }, - key: { + group: { type: String, default: 'history' }, @@ -74,7 +74,7 @@ const handleEnter = async () => { return; } - const history = JSON.parse(getStorage().getItem(props.key) || '[]') + const history = JSON.parse(getStorage().getItem(props.group) || '[]') const existingItem = history.find((item: HistoryItem) => item.value === input.value) if (existingItem) { @@ -89,18 +89,18 @@ const handleEnter = async () => { history.shift() } - getStorage().setItem(props.key, JSON.stringify(history)) + getStorage().setItem(props.group, JSON.stringify(history)) suggestions.value = history } const loadHistory = () => { - suggestions.value = JSON.parse(getStorage().getItem('history') || '[]') + suggestions.value = JSON.parse(getStorage().getItem(props.group) || '[]') } const deleteHistoryItem = (item: HistoryItem) => { - const history = JSON.parse(getStorage().getItem(props.key) || '[]') + const history = JSON.parse(getStorage().getItem(props.group) || '[]') const updatedHistory = history.filter((historyItem: HistoryItem) => historyItem.value !== item.value) - getStorage().setItem(props.key, JSON.stringify(updatedHistory)) + getStorage().setItem(props.group, JSON.stringify(updatedHistory)) suggestions.value = updatedHistory } diff --git a/console/atest-ui/src/views/DataManager.vue b/console/atest-ui/src/views/DataManager.vue index 39654dc..0de1f50 100644 --- a/console/atest-ui/src/views/DataManager.vue +++ b/console/atest-ui/src/views/DataManager.vue @@ -7,6 +7,7 @@ import { ElMessage } from 'element-plus' import { Codemirror } from 'vue-codemirror' import HistoryInput from '../components/HistoryInput.vue' import type { Ref } from 'vue' +import { Refresh, Document } from '@element-plus/icons-vue' const stores: Ref = ref([]) const kind = ref('') @@ -57,6 +58,10 @@ const queryDataFromTable = (data: QueryData) => { sqlQuery.value = `@selectTableLImit100_${data.label}` executeQuery() } +const describeTable = (data: QueryData) => { + sqlQuery.value = `@describeTable_${data.label}` + executeQuery() +} const queryTables = () => { sqlQuery.value = `` executeQuery() @@ -138,6 +143,9 @@ const keyValueDataHandler = (data: QueryData) => { } const executeQuery = async () => { + return executeWithQuery(sqlQuery.value) +} +const executeWithQuery = async (sql: string) => { switch (kind.value) { case 'atest-store-etcd': sqlQuery.value = '*' @@ -146,7 +154,7 @@ const executeQuery = async () => { let success = false try { - const data = await API.DataQueryAsync(store.value, kind.value, queryDataMeta.value.currentDatabase, sqlQuery.value); + const data = await API.DataQueryAsync(store.value, kind.value, queryDataMeta.value.currentDatabase, sql); switch (kind.value) { case 'atest-store-orm': case 'atest-store-iotdb': @@ -184,11 +192,21 @@ const executeQuery = async () => { + - + + + diff --git a/console/atest-ui/src/views/TestSuite.vue b/console/atest-ui/src/views/TestSuite.vue index 3489d8c..0410fc4 100644 --- a/console/atest-ui/src/views/TestSuite.vue +++ b/console/atest-ui/src/views/TestSuite.vue @@ -6,6 +6,7 @@ import type { FormInstance, FormRules } from 'element-plus' import type { Suite, TestCase, Pair } from './types' import { NewSuggestedAPIsQuery, GetHTTPMethods, SwaggerSuggestion } from './types' import EditButton from '../components/EditButton.vue' +import HistoryInput from '../components/HistoryInput.vue' import { Cache } from './cache' import { useI18n } from 'vue-i18n' import { API } from './net' @@ -301,12 +302,7 @@ const renameTestSuite = (name: string) => { {{ t('tip.testsuite') }} - +