Я боюсь, что вам все равно придется использовать данные, как в документации. (Я пробовал метод вычисления вычислительных свойств, но он не будет работать)
Чтобы интегрировать его с магазином, вы можете использовать следующее решение: https://codepen.io/woothu/pen/VwLXzNQ?editors=1011
data () {
return {
columns: [
{ name: 'desc', align: 'left', label: 'Data Element', field: 'desc', sortable: true, style: 'min-width: 180px; max-width: 180px;' },
{ name: 'property', align: 'center', label: 'Property', field: 'property', sortable: true, style: 'min-width: 20px; max-width: 20px;' },
{ name: 'value', align: 'left', label: 'Value', field: 'value', sortable: true, style: 'min-width: 300px; max-width: 300px; word-wrap: break-word; font-family: Consolas; font-size: 13px' }
],
tableRows: null
}
},
beforeMount () {
this.tableRows = this.$store.state.tableData.reduce((acc, item) => {
Object.keys(item).forEach(name => {
Object.keys(item[name]).forEach(property => {
acc.push({ name, property, value: item[name][property]})
})
})
return acc
}, [])
},
watch: {
tableRows: {
deep: true,
handler (val) {
this.$store.commit('saveUpdatedData', val)
}
}
}
Btw. Я думаю, что компонент QTable должен генерировать событие при изменении данных с обновленной структурой данных. (Или сделайте некоторые другие функции, чтобы включить обработку Vuex) Вероятно, стоит открыть PR с упоминанием этого обсуждения.