Skip to content

Commit 8d87986

Browse files
committed
support to show database and tables
1 parent 35c828f commit 8d87986

File tree

1 file changed

+61
-26
lines changed

1 file changed

+61
-26
lines changed

console/atest-ui/src/views/DataManager.vue

Lines changed: 61 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,25 @@ const sqlQuery = ref('')
1010
const queryResult = ref([])
1111
const columns = ref([])
1212
const queryTip = ref('')
13+
const databases = ref([])
14+
const tables = ref([])
15+
const currentDatabase = ref('')
1316
17+
interface Tree {
18+
label: string
19+
children?: Tree[]
20+
}
21+
const tablesTree: Tree[] = []
22+
watch(tables, (t) => {
23+
// clear tablesTree
24+
tablesTree.splice(0, tablesTree.length)
25+
t.forEach((i) => {
26+
tablesTree.push({
27+
label: i,
28+
})
29+
})
30+
console.log(tablesTree)
31+
})
1432
watch(store, (s) => {
1533
stores.value.forEach((e: Store) => {
1634
if (e.name === s) {
@@ -46,7 +64,7 @@ const ormDataHandler = (data) => {
4664
const result = []
4765
const cols = new Set()
4866
49-
data.Rows.forEach(e => {
67+
data.items.forEach(e => {
5068
const obj = {}
5169
e.data.forEach(item => {
5270
obj[item.key] = item.value
@@ -55,6 +73,8 @@ const ormDataHandler = (data) => {
5573
result.push(obj)
5674
})
5775
76+
databases.value = data.meta.databases
77+
tables.value = data.meta.tables
5878
queryResult.value = result
5979
columns.value = Array.from(cols).sort((a, b) => {
6080
if (a === 'id') return -1;
@@ -103,30 +123,45 @@ const executeQuery = async () => {
103123

104124
<template>
105125
<div>
106-
<el-form @submit.prevent="executeQuery">
107-
<el-row :gutter="10">
108-
<el-col :span="2">
109-
<el-form-item>
110-
<el-select v-model="store" placeholder="Select store">
111-
<el-option v-for="item in stores" :key="item.name" :label="item.name"
112-
:value="item.name" :disabled="!item.ready" :kind="item.kind.name"></el-option>
113-
</el-select>
114-
</el-form-item>
115-
</el-col>
116-
<el-col :span="18">
117-
<el-form-item>
118-
<el-input v-model="sqlQuery" :placeholder="queryTip" @keyup.enter="executeQuery"></el-input>
119-
</el-form-item>
120-
</el-col>
121-
<el-col :span="2">
122-
<el-form-item>
123-
<el-button type="primary" @click="executeQuery">Execute</el-button>
124-
</el-form-item>
125-
</el-col>
126-
</el-row>
127-
</el-form>
128-
<el-table :data="queryResult">
129-
<el-table-column v-for="col in columns" :key="col" :prop="col" :label="col"></el-table-column>
130-
</el-table>
126+
<el-container>
127+
<el-aside width="200px">
128+
<el-select v-model="currentDatabase" placeholder="Select database">
129+
<el-option v-for="item in databases" :key="item" :label="item"
130+
:value="item"></el-option>
131+
</el-select>
132+
<el-tree :data="tablesTree" />
133+
</el-aside>
134+
<el-container>
135+
<el-header>
136+
<el-form @submit.prevent="executeQuery">
137+
<el-row :gutter="10">
138+
<el-col :span="2">
139+
<el-form-item>
140+
<el-select v-model="store" placeholder="Select store">
141+
<el-option v-for="item in stores" :key="item.name" :label="item.name"
142+
:value="item.name" :disabled="!item.ready" :kind="item.kind.name"></el-option>
143+
</el-select>
144+
</el-form-item>
145+
</el-col>
146+
<el-col :span="18">
147+
<el-form-item>
148+
<el-input v-model="sqlQuery" :placeholder="queryTip" @keyup.enter="executeQuery"></el-input>
149+
</el-form-item>
150+
</el-col>
151+
<el-col :span="2">
152+
<el-form-item>
153+
<el-button type="primary" @click="executeQuery">Execute</el-button>
154+
</el-form-item>
155+
</el-col>
156+
</el-row>
157+
</el-form>
158+
</el-header>
159+
<el-main>
160+
<el-table :data="queryResult">
161+
<el-table-column v-for="col in columns" :key="col" :prop="col" :label="col"></el-table-column>
162+
</el-table>
163+
</el-main>
164+
</el-container>
165+
</el-container>
131166
</div>
132167
</template>

0 commit comments

Comments
 (0)