4242 <div class =" columns" >
4343 <div class =" column is-6" >
4444 <VField :label =" $t('searchTermLabel')" rules =" required" >
45- <b-input v-model =" searchTerm " />
45+ <b-input v-model =" searchInput " />
4646 </VField >
4747 </div >
4848 <div class =" column is-6" >
5454 </div >
5555 </div >
5656
57- <BaseTable :data =" searchResults" :fields =" fields.results" />
57+ <BaseCard v-for =" searchTable in searchTables" :title =" searchTable.name" :key =" 'searchResults'+searchTable.id" >
58+ <!-- <div>{{ searchTableResults[searchTable.id] }}</div> -->
59+ <BaseTableAsync
60+ :table =" searchTable"
61+ :tableEntries =" searchTableResults[searchTable.id] || {}"
62+ @update =" updateTableEntries(searchTable.id)"
63+ tableActionsComponent =" ActionsTableSearch"
64+ />
65+ </BaseCard >
66+
5867 </BaseCard >
5968 </ValidationObserver >
6069
6372
6473<script >
6574import { FilterQuery } from ' @/utils/helpers'
66- import { DataService , SearchService } from ' @/services/data'
75+ import { DataService , SearchService , TableService } from ' @/services/data'
6776import { mapState } from ' vuex'
6877import BaseCardChart from ' @/components/charts/BaseCardChart'
6978
@@ -72,8 +81,12 @@ export default {
7281 components: { BaseCardChart },
7382 data () {
7483 return {
84+ searchInput: ' ' ,
7585 searchTerm: ' ' ,
76- searchResults: null ,
86+ searchTables: [],
87+ searchTableIds: [],
88+ searchTableResults: {},
89+ searchFilterMode: false ,
7790 cards: [],
7891 fields: {
7992 charts: [
@@ -173,20 +186,41 @@ export default {
173186 })
174187 })
175188 },
189+ updateTableEntries (tableId ) {
190+ TableService .getEntries (tableId, {search: this .searchTerm }).then (response => {
191+ this .searchTableResults [tableId] = response
192+ })
193+ },
176194 submitSearch () {
195+ this .searchTables = []
196+ this .searchTableIds = []
197+ this .searchTableResults = {}
198+ this .searchTerm = this .searchInput
199+
177200 SearchService .searchEntries ({
178201 query: this .searchTerm
179202 }).then (response => {
180- let results = []
181- for (const item of response .results ) {
182- results .push ({
183- data: {
184- context: JSON .stringify (item .data )
185- }
186- })
203+ let resultTableIds = []
204+ for (const item of response) {
205+ resultTableIds .push (item .table )
187206 }
188- this .searchResults = results
189- console .log (this .searchResults )
207+ this .searchTableIds = resultTableIds
208+
209+ let resultTables = []
210+ // let results = {}
211+ this .searchTableIds .forEach (tableId => {
212+ TableService .getTable (tableId).then (response => {
213+ resultTables .push (response)
214+ })
215+ // TableService.getEntries(tableId, {search: this.searchTerm}).then(response => {
216+ // results[tableId] = response
217+ // })
218+ this .updateTableEntries (tableId)
219+ })
220+ // this.searchTableResults = results
221+ // console.log('Search table results', this.searchTableResults)
222+ this .searchTables = resultTables
223+ console .log (' Search tables' , this .searchTables )
190224 })
191225 }
192226 }
0 commit comments