@@ -15,12 +15,10 @@ const queryResult = ref([] as any[])
1515const queryResultAsJSON= ref (' ' )
1616const columns = ref ([] as string [])
1717const queryTip = ref (' ' )
18- const databases = ref ([])
19- const tables = ref ([])
20- const currentDatabase = ref (' ' )
2118const loadingStores = ref (true )
2219const dataFormat = ref (' table' )
2320const dataFormatOptions = [' table' , ' json' ]
21+ const queryDataMeta = ref ({} as QueryDataMeta )
2422
2523const tablesTree = ref ([])
2624watch (store , (s ) => {
@@ -31,20 +29,27 @@ watch(store, (s) => {
3129 return
3230 }
3331 })
34- currentDatabase . value = ' '
32+ queryDataMeta . currentDatabase = ' '
3533 sqlQuery .value = ' '
3634 executeQuery ()
3735})
3836
37+ interface QueryDataMeta {
38+ databases: string []
39+ tables: string []
40+ currentDatabase: string
41+ duration: string
42+ }
43+
3944interface QueryData {
4045 items: any []
4146 data: any []
4247 label: string
43- meta: any
48+ meta: QueryDataMeta
4449}
4550
4651const queryDataFromTable = (data : QueryData ) => {
47- sqlQuery .value = ` select * from ${data .label } limit 10 `
52+ sqlQuery .value = ` select * from ${data .label } limit 100 `
4853 executeQuery ()
4954}
5055const queryTables = () => {
@@ -89,9 +94,7 @@ const ormDataHandler = (data: QueryData) => {
8994 result .push (obj )
9095 })
9196
92- databases .value = data .meta .databases
93- tables .value = data .meta .tables
94- currentDatabase .value = data .meta .currentDatabase
97+ queryDataMeta .value = data .meta
9598 queryResult .value = result
9699 queryResultAsJSON .value = JSON .stringify (result , null , 2 )
97100 columns .value = Array .from (cols ).sort ((a , b ) => {
@@ -101,7 +104,7 @@ const ormDataHandler = (data: QueryData) => {
101104 })
102105
103106 tablesTree .value = []
104- tables .value .forEach ((i ) => {
107+ queryDataMeta .value . tables .forEach ((i ) => {
105108 tablesTree .value .push ({
106109 label: i ,
107110 })
@@ -129,7 +132,7 @@ const executeQuery = async () => {
129132
130133 let success = false
131134 try {
132- const data = await API .DataQueryAsync (store .value , kind .value , currentDatabase .value , sqlQuery .value );
135+ const data = await API .DataQueryAsync (store .value , kind .value , queryDataMeta .value . currentDatabase , sqlQuery .value );
133136 switch (kind .value ) {
134137 case ' atest-store-orm' :
135138 ormDataHandler (data )
@@ -164,8 +167,8 @@ const executeQuery = async () => {
164167 <el-container style =" height : calc (100vh - 50px );" >
165168 <el-aside v-if =" kind === 'atest-store-orm'" >
166169 <el-scrollbar >
167- <el-select v-model =" currentDatabase" placeholder =" Select database" @change =" queryTables" filterable >
168- <el-option v-for =" item in databases" :key =" item" :label =" item"
170+ <el-select v-model =" queryDataMeta. currentDatabase" placeholder =" Select database" @change =" queryTables" filterable >
171+ <el-option v-for =" item in queryDataMeta. databases" :key =" item" :label =" item"
169172 :value =" item" ></el-option >
170173 </el-select >
171174 <el-tree :data =" tablesTree" node-key =" label" @node-click =" queryDataFromTable" highlight-current draggable />
@@ -202,6 +205,8 @@ const executeQuery = async () => {
202205 </el-form >
203206 </el-header >
204207 <el-main >
208+ <el-tag type =" primary" v-if =" queryResult.length > 0" >{{ queryResult.length }} rows</el-tag >
209+ <el-tag type =" primary" v-if =" queryDataMeta.duration" >{{ queryDataMeta.duration }}</el-tag >
205210 <el-table :data =" queryResult" stripe v-if =" dataFormat === 'table'" >
206211 <el-table-column v-for =" col in columns" :key =" col" :prop =" col" :label =" col" sortable />
207212 </el-table >
0 commit comments