@@ -26,7 +26,6 @@ const cypherQuery = ref('')
2626const textQuery = ref (' ' )
2727const queryType = ref (' ' )
2828const tab = ref (' graph' )
29- const splitter = ref (110 )
3029const loading = ref (false )
3130const nodes = ref ([])
3231const relationships = ref ([])
@@ -117,6 +116,10 @@ const handleNodeUnexpanded = ({ newNodes, newRels }) => {
117116 relationships .value = newRels
118117}
119118
119+ const changeTab = (tabName ) => {
120+ tab .value = tabName
121+ }
122+
120123onMounted (() => {
121124 run (props .query , props .queryTypeInput )
122125 if (! props .disableResizer ) {
@@ -174,37 +177,36 @@ onMounted(() => {
174177 />
175178 <q-skeleton v-if =" loading" class =" output-skeleton" animation =" wave" />
176179 <div v-else class =" output-container" >
177- <q-splitter v-model =" splitter" disable unit =" px" class =" output-tabs" >
178- <template v-slot :before >
179- <q-tabs v-model =" tab" dense vertical >
180- <q-tab name =" graph" label =" Graph" v-if =" nodes.length" />
181- <q-tab name =" table" label =" Table" v-if =" rows.length" />
182- <q-tab name =" explanation" label =" Explanation" v-if =" textQuery !== ''" />
183- <q-tab name =" error" label =" Error" v-if =" errorText !== ''" />
184- </q-tabs >
185- </template >
186- <template v-slot :after >
187- <q-tab-panels v-model =" tab" vertical class =" output-panels" >
188- <q-tab-panel name =" graph" v-if =" nodes.length" class =" output-tab-panel" >
189- <GraphOutput
190- :nodes =" nodes"
191- :relationships =" relationships"
192- @nodeExpanded =" handleNodeExpanded"
193- @nodeUnexpanded =" handleNodeUnexpanded"
194- />
195- </q-tab-panel >
196- <q-tab-panel name =" table" v-if =" rows.length" class =" output-tab-panel" >
197- <TableOutput :rows =" rows" :columns =" columns" />
198- </q-tab-panel >
199- <q-tab-panel name =" explanation" v-if =" textQuery !== ''" class =" output-tab-panel" >
200- <ExplanationOutput :text =" explanationText" />
201- </q-tab-panel >
202- <q-tab-panel name =" error" v-if =" errorText !== ''" class =" output-tab-panel" >
203- <p >{{ errorText }}</p >
204- </q-tab-panel >
205- </q-tab-panels >
206- </template >
207- </q-splitter >
180+ <q-btn-group outline class =" output-tabs q-ml-md q-pt-sm" >
181+ <q-btn outline label =" Graph" v-if =" nodes.length" @click =" changeTab('graph')" />
182+ <q-btn outline label =" Table" v-if =" rows.length" @click =" changeTab('table')" />
183+ <q-btn
184+ outline
185+ label =" Explanation"
186+ v-if =" textQuery !== ''"
187+ @click =" changeTab('explanation')"
188+ />
189+ <q-btn outline label =" Error" v-if =" errorText !== ''" @click =" changeTab('error')" />
190+ </q-btn-group >
191+ <q-tab-panels v-model =" tab" vertical class =" output-panels" >
192+ <q-tab-panel name =" graph" v-if =" nodes.length" class =" output-tab-panel" >
193+ <GraphOutput
194+ :nodes =" nodes"
195+ :relationships =" relationships"
196+ @nodeExpanded =" handleNodeExpanded"
197+ @nodeUnexpanded =" handleNodeUnexpanded"
198+ />
199+ </q-tab-panel >
200+ <q-tab-panel name =" table" v-if =" rows.length" class =" output-tab-panel" >
201+ <TableOutput :rows =" rows" :columns =" columns" />
202+ </q-tab-panel >
203+ <q-tab-panel name =" explanation" v-if =" textQuery !== ''" class =" output-tab-panel" >
204+ <ExplanationOutput :text =" explanationText" />
205+ </q-tab-panel >
206+ <q-tab-panel name =" error" v-if =" errorText !== ''" class =" output-tab-panel" >
207+ <div class =" text-body2 q-pt-xl" >{{ errorText }}</div >
208+ </q-tab-panel >
209+ </q-tab-panels >
208210 </div >
209211 <div class =" footer" >
210212 <div class =" row" >
@@ -272,7 +274,8 @@ onMounted(() => {
272274}
273275.output-tabs {
274276 background-color : #ffffff ;
275- height : 100% ;
277+ position : absolute ;
278+ z-index : 1 ;
276279}
277280.footer {
278281 width : 100% ;
0 commit comments