@@ -68,8 +68,8 @@ a-card.editor-card(:bordered="false")
68
68
TimeAssistance( ref ="tsRef" : cm= "currentView" )
69
69
.query-select
70
70
a-space( size ="medium" )
71
- a-tooltip( v-if = "queryType === 'sql'" mini :content ="$t('dashboard.format')" )
72
- a-button( type ="outline" : disabled= "isButtonDisabled" @click ="formatSql" )
71
+ a-tooltip( mini :content ="$t('dashboard.format')" )
72
+ a-button( type ="outline" : disabled= "isButtonDisabled" @click ="formatSql() " )
73
73
template( #icon )
74
74
icon-code-block.icon-18
75
75
a-tooltip( mini :content ="$t('dashboard.clearCode')" )
@@ -162,7 +162,7 @@ a-card.editor-card(:bordered="false")
162
162
import { acceptCompletion } from ' @codemirror/autocomplete'
163
163
import type { PromForm } from ' @/store/modules/code-run/types'
164
164
import { useStorage } from ' @vueuse/core'
165
- import { sqlFormatter , parseSqlStatements , findStatementAtPosition } from ' @/utils/sql'
165
+ import { sqlFormatter , parseSqlStatements , findStatementAtPosition , promqlFormatter } from ' @/utils/sql'
166
166
import { Message } from ' @arco-design/web-vue'
167
167
import fileDownload from ' js-file-download'
168
168
@@ -357,9 +357,15 @@ a-card.editor-card(:bordered="false")
357
357
secondaryCodeRunning .value = false
358
358
}
359
359
360
- const formatSql = () => {
360
+ const formatSql = async () => {
361
361
if (queryType .value === ' sql' && codes .value .sql .trim ().length > 0 ) {
362
362
codes .value .sql = sqlFormatter (codes .value .sql )
363
+ } else if (queryType .value === ' promql' && codes .value .promql .trim ().length > 0 ) {
364
+ try {
365
+ codes .value .promql = await promqlFormatter (codes .value .promql )
366
+ } catch (error ) {
367
+ //
368
+ }
363
369
}
364
370
}
365
371
@@ -422,11 +428,33 @@ a-card.editor-card(:bordered="false")
422
428
}
423
429
424
430
window .addEventListener (' beforeunload' , () => {
425
- localStorage .setItem (' queryCode' , JSON .stringify (codes .value ))
431
+ localStorage .setItem (
432
+ ' queryCode' ,
433
+ JSON .stringify ({
434
+ sql: codes .value .sql ,
435
+ promql: codes .value .promql ,
436
+ type: queryType .value ,
437
+ })
438
+ )
426
439
})
427
440
428
441
onMounted (() => {
429
- codes .value = useStorage (' queryCode' , { sql: ' ' , promql: ' ' }).value
442
+ const stored = useStorage (' queryCode' , { sql: ' ' , promql: ' ' , type: ' sql' }).value
443
+ codes .value .sql = stored .sql || ' '
444
+ codes .value .promql = stored .promql || ' '
445
+ queryType .value = stored .type || ' sql'
446
+ })
447
+
448
+ // Watch queryType changes and save to localStorage immediately
449
+ watch (queryType , () => {
450
+ localStorage .setItem (
451
+ ' queryCode' ,
452
+ JSON .stringify ({
453
+ sql: codes .value .sql ,
454
+ promql: codes .value .promql ,
455
+ type: queryType .value ,
456
+ })
457
+ )
430
458
})
431
459
432
460
// TODO: i18n config
0 commit comments