Files
ntspi-app/resources/js/Components/LegacyComponents/AdminIndexSearch.vue
T
2024-09-19 16:06:49 +05:00

68 lines
2.0 KiB
Vue

<template>
<div class="sm:col-span-1 w-full">
<label for="hs-as-table-product-review-search" class="sr-only">Поиск</label>
<div class="relative">
<input autocomplete="off" @input="search" v-model="searchInput" type="text"
id="hs-as-table-product-review-search"
name="hs-as-table-product-review-search"
class="py-2 px-3 pl-11 block flex-1 w-full border-gray-200 shadow-sm rounded-md text-sm focus:z-10 focus:border-blue-500 focus:ring-blue-500 dark:bg-slate-900 dark:border-gray-700 dark:text-gray-400"
placeholder="Поиск">
<div
class="absolute inset-y-0 left-0 flex items-center pointer-events-none pl-4">
<svg class="h-4 w-4 text-gray-400" xmlns="http://www.w3.org/2000/svg"
width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
<path
d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/>
</svg>
</div>
</div>
</div>
</template>
<script>
import { debounce } from "lodash/function.js";
export default {
name: "AdminIndexSearch",
data() {
return {
searchInput: this.$page.props.filters.search,
}
},
methods: {
search: debounce(function () {
if(this.searchInput == "") {
let url = new URL(window.location.href);
url.searchParams.delete('search');
let newUrl = url.toString();
this.$inertia.visit(newUrl,{
method: 'get',
preserveState: true,
replace: true,
});
} else {
let url = new URL(window.location.href);
url.searchParams.delete('page');
let newUrl = url.toString();
this.$inertia.visit(newUrl,{
method: 'get',
data: {
search: this.searchInput,
},
preserveState: true,
replace: true,
})
}
}, 500),
},
props: [
'filters'
],
}
</script>
<style scoped>
</style>