diff --git a/src/components/FetchData.vue b/src/components/FetchData.vue index 137f751db..4f5d7a57d 100644 --- a/src/components/FetchData.vue +++ b/src/components/FetchData.vue @@ -45,7 +45,7 @@ onMounted(async () => { async function fetch(fetchFilter = {}) { try { const filter = Object.assign(fetchFilter, $props.filter); // eslint-disable-line vue/no-dupe-keys - if ($props.where) filter.where = $props.where; + if ($props.where && !fetchFilter.where) filter.where = $props.where; if ($props.sortBy) filter.order = $props.sortBy; if ($props.limit) filter.limit = $props.limit; @@ -54,6 +54,7 @@ async function fetch(fetchFilter = {}) { }); emit('onFetch', data); + return data; } catch (e) { // } diff --git a/src/components/common/VnSelectFilter.vue b/src/components/common/VnSelectFilter.vue index 182ec8e16..5735bf370 100644 --- a/src/components/common/VnSelectFilter.vue +++ b/src/components/common/VnSelectFilter.vue @@ -1,8 +1,8 @@ setOptions(data)" - auto-load + :where="where || { [optionValue]: value }" + :limit="limit || 30" + :order-by="orderBy" + :fields="fields" /> [ - - + s diff --git a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue index 75c93694d..2f8435166 100644 --- a/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue +++ b/src/pages/InvoiceIn/Card/InvoiceInBasicData.vue @@ -4,10 +4,12 @@ import { useRoute } from 'vue-router'; import { useI18n } from 'vue-i18n'; import { useQuasar } from 'quasar'; import { useArrayData } from 'src/composables/useArrayData'; - import { downloadFile } from 'src/composables/downloadFile'; + import FormModel from 'components/FormModel.vue'; import VnSelectFilter from 'src/components/common/VnSelectFilter.vue'; +import FetchData from 'src/components/FetchData.vue'; + import axios from 'axios'; const quasar = useQuasar(); @@ -20,9 +22,6 @@ const arrayData = useArrayData('InvoiceIn'); const invoiceIn = computed(() => arrayData.store.data); const userConfig = ref(null); -const suppliers = ref([]); -const suppliersRef = ref(); -const suppliersRefFilter = ref({ fields: ['id', 'nickname'], limit: 30 }); const currencies = ref([]); const currenciesRef = ref(); const companies = ref([]); @@ -130,31 +129,13 @@ async function upsert() { }); } } - -function supplierRefFilter(val) { - let where = { limit: 30 }; - let params = {}; - let key = 'nickname'; - - if (new RegExp(/\d/g).test(val)) { - key = 'id'; - } - params = { [key]: { like: `%${val}%` } }; - where = Object.assign(where, params); - suppliersRef.value.fetch({ where }); -} - - + /> @@ -200,12 +181,11 @@ function supplierRefFilter(val) { (suppliersRef = data)" + :fields="['id', 'nickname']" + sort-by="nickname" > @@ -416,7 +396,6 @@ function supplierRefFilter(val) {