1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-10 20:18:54 +08:00

Pivot implementation and redesign (#69)

- Pivot support implementation 
- Rename queries into inquiries
- Rename editor into workspace
- Change result set format
- New JSON format for inquiries
- Redesign panels
This commit is contained in:
lana-k
2021-08-04 22:20:51 +02:00
committed by GitHub
parent 8d0bc6affe
commit 5017b55944
105 changed files with 4659 additions and 2021 deletions

View File

@@ -10,29 +10,26 @@ export default {
getResult (source) {
const result = {}
if (source.meta.fields) {
result.columns = source.meta.fields.map(col => col.trim())
result.values = source.data.map(row => {
const resultRow = []
source.meta.fields.forEach(col => {
source.meta.fields.forEach(col => {
result[col.trim()] = source.data.map(row => {
let value = row[col]
if (value instanceof Date) {
value = value.toISOString()
}
resultRow.push(value)
return value
})
return resultRow
})
} else {
result.values = source.data.map(row => row.map(value =>
value instanceof Date ? value.toISOString() : value
))
result.columns = []
for (let i = 1; i <= source.data[0].length; i++) {
result.columns.push(`col${i}`)
for (let i = 0; i <= source.data[0].length - 1; i++) {
result[`col${i + 1}`] = source.data.map(row => {
let value = row[i]
if (value instanceof Date) {
value = value.toISOString()
}
return value
})
}
}
return result
},
@@ -55,7 +52,8 @@ export default {
const res = {
data: this.getResult(results),
delimiter: results.meta.delimiter,
hasErrors: false
hasErrors: false,
rowCount: results.data.length
}
res.messages = results.errors.map(msg => {
msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'

View File

@@ -55,9 +55,10 @@
:disabled="disableDialog"
/>
<sql-table
v-if="previewData && (previewData.values.length > 0 || previewData.columns.length > 0)"
v-if="previewData
&& (previewData.rowCount > 0 || Object.keys(previewData).length > 0)
"
:data-set="previewData"
height="160"
class="preview-table"
:preview="true"
/>
@@ -255,7 +256,7 @@ export default {
let end = new Date()
if (!parseResult.hasErrors) {
const rowCount = parseResult.data.values.length
const rowCount = parseResult.rowCount
let period = time.getPeriod(start, end)
parseCsvMsg.type = 'success'