add: header labels and filter

v0.3
rrr-marble 3 years ago
parent c48199276c
commit a3033ba7b6

@ -4,12 +4,8 @@
<map-component @mapClick="$emit('mapClick', $event)" /> <map-component @mapClick="$emit('mapClick', $event)" />
</va-card> </va-card>
<va-card class="content-container"> <va-card class="content-container">
<va-data-table <va-data-table :items="items" :columns="columns" :hoverable="true" :clickable="true"
:items="items" @row:click="(e) => $router.push(`/items/${e.item.id}`)" />
:hoverable="true"
:clickable="true"
@row:click="(e) => $router.push(`/items/${e.item.id}`)"
/>
</va-card> </va-card>
</div> </div>
</template> </template>
@ -24,15 +20,14 @@ export default {
items: { items: {
type: Array, type: Array,
required: true, required: true,
} },
columns: {
type: Array,
required: true,
},
}, },
data() { data() {
return { return {}
// columns: [
// { key: 'gis_category', label: 'cat4gis', sortable: true },
// { key: 'category', sortable: true },
// ],
}
}, },
methods: {}, methods: {},

@ -6,7 +6,7 @@
</sidebar> </sidebar>
<div class="main-view"> <div class="main-view">
<va-input v-model="searchQuery"></va-input> <va-input v-model="searchQuery"></va-input>
<overview-screen :items="filteredAndSearchedItems" @mapClick="applyFilters" /> <overview-screen :items="filteredAndSearchedItems" :columns="filteredColumns" @mapClick="applyFilters" />
</div> </div>
</div> </div>
</template> </template>
@ -23,6 +23,7 @@ export default {
data() { data() {
return { return {
items: [], items: [],
columns: [],
currentFilters: {}, currentFilters: {},
searchQuery: '', searchQuery: '',
searchColumns: [ searchColumns: [
@ -37,10 +38,19 @@ export default {
"datalist", "datalist",
"resolution", "resolution",
], ],
showColumns: [
"basin",
"category",
"description",
"deposit",
"well",
"stratum",
"org",
],
} }
}, },
methods: { methods: {
fetchAllItems() { async fetchAllItems() {
const baseURL = "http://localhost:8080/api/v1"; const baseURL = "http://localhost:8080/api/v1";
fetch(`${baseURL}/items/?limit=10000`) fetch(`${baseURL}/items/?limit=10000`)
@ -49,6 +59,16 @@ export default {
.catch((e) => console.log(e)) .catch((e) => console.log(e))
}, },
async fetchColumns(){
const baseURL = "http://localhost:8080/api/v1";
fetch(`${baseURL}/headers/`)
.then(res => res.json())
.then(data => this.columns = data)
.catch((e) => console.log(e))
},
applyFilters(filter) { applyFilters(filter) {
for (let key in filter) { for (let key in filter) {
if (Array.isArray(filter[key]) && filter[key].length) { if (Array.isArray(filter[key]) && filter[key].length) {
@ -60,7 +80,8 @@ export default {
}, },
}, },
mounted () { mounted () {
this.fetchAllItems() this.fetchAllItems();
this.fetchColumns();
}, },
computed: { computed: {
filteredItems() { filteredItems() {
@ -96,6 +117,18 @@ export default {
return result; return result;
}) })
}, },
filteredColumns(){
return this.columns
.filter(header => this.showColumns.includes(header.database))
.map(header => {
return {
key: header.database,
label: header.spreadsheet,
sortable: true,
}
})
},
}, },
} }

Loading…
Cancel
Save