73 lines
2.4 KiB
Diff
73 lines
2.4 KiB
Diff
diff --git a/quasar.config.js b/quasar.config.js
|
|
index 2d828950..80ddc375 100644
|
|
--- a/quasar.config.js
|
|
+++ b/quasar.config.js
|
|
@@ -29,7 +29,7 @@ module.exports = configure(function (/* ctx */) {
|
|
// app boot file (/src/boot)
|
|
// --> boot files are part of "main.js"
|
|
// https://v2.quasar.dev/quasar-cli/boot-files
|
|
- boot: ['i18n', 'axios', 'vnDate', 'validations'],
|
|
+ boot: ['i18n', 'axios', 'vnDate', 'validations', 'quasar'],
|
|
|
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
|
|
css: ['app.scss'],
|
|
diff --git a/src/boot/qformMixin.js b/src/boot/qformMixin.js
|
|
new file mode 100644
|
|
index 00000000..7130b071
|
|
--- /dev/null
|
|
+++ b/src/boot/qformMixin.js
|
|
@@ -0,0 +1,28 @@
|
|
+import { QForm } from 'quasar';
|
|
+import { getCurrentInstance } from 'vue';
|
|
+
|
|
+export default {
|
|
+ inject: { QForm },
|
|
+ component: { QForm },
|
|
+ components: { QForm },
|
|
+ extends: { QForm },
|
|
+ mounted: function () {
|
|
+ const vm = getCurrentInstance();
|
|
+ if (vm.type.name === 'QForm')
|
|
+ if (![ 'searchbarForm'].includes(this.$el?.id)) {
|
|
+ let that = this;
|
|
+ const elementsArray = Array.from(this.$el.elements);
|
|
+ const index = elementsArray.findIndex(element => element.classList.contains('q-field__native'));
|
|
+
|
|
+ if (index !== -1) {
|
|
+ const firstInputElement = elementsArray[index];
|
|
+ firstInputElement.focus();
|
|
+ }
|
|
+ document.addEventListener('keyup', function (evt) {
|
|
+ if (evt.keyCode === 13) {
|
|
+ that.onSubmit();
|
|
+ }
|
|
+ });
|
|
+ }
|
|
+ },
|
|
+};
|
|
diff --git a/src/boot/quasar.js b/src/boot/quasar.js
|
|
new file mode 100644
|
|
index 00000000..a8d9b7ad
|
|
--- /dev/null
|
|
+++ b/src/boot/quasar.js
|
|
@@ -0,0 +1,6 @@
|
|
+import { boot } from 'quasar/wrappers';
|
|
+import qFormMixin from './qformMixin';
|
|
+
|
|
+export default boot(({ app }) => {
|
|
+ app.mixin(qFormMixin);
|
|
+});
|
|
diff --git a/src/components/ui/VnSearchbar.vue b/src/components/ui/VnSearchbar.vue
|
|
index baab4829..a8065948 100644
|
|
--- a/src/components/ui/VnSearchbar.vue
|
|
+++ b/src/components/ui/VnSearchbar.vue
|
|
@@ -108,7 +108,7 @@ async function search() {
|
|
</script>
|
|
|
|
<template>
|
|
- <QForm @submit="search">
|
|
+ <QForm @submit="search" id="searchbarForm">
|
|
<VnInput
|
|
id="searchbar"
|
|
v-model="searchText"
|