diff --git a/src/components/ui/VnSearchbar.vue b/src/components/ui/VnSearchbar.vue
index 4e90245d6..4e284d8e4 100644
--- a/src/components/ui/VnSearchbar.vue
+++ b/src/components/ui/VnSearchbar.vue
@@ -63,6 +63,10 @@ const props = defineProps({
type: Function,
default: undefined,
},
+ searchRemoveParams: {
+ type: Boolean,
+ default: true,
+ },
});
const searchText = ref();
@@ -96,17 +100,25 @@ onMounted(() => {
});
async function search() {
- const staticParams = Object.entries(store.userParams);
- arrayData.reset(['skip', 'page']);
+ const staticParams = Object.keys(store.userParams ?? {}).length
+ ? store.userParams
+ : store.defaultParams;
+ arrayData.resetPagination();
const filter = {
params: {
- ...Object.fromEntries(staticParams),
search: searchText.value,
},
- ...{ filter: props.filter },
+ filter: props.filter,
};
+ if (!props.searchRemoveParams || !searchText.value) {
+ filter.params = {
+ ...staticParams,
+ search: searchText.value,
+ };
+ }
+
if (props.whereFilter) {
filter.filter = {
where: props.whereFilter(searchText.value),
diff --git a/test/vitest/__tests__/components/Paginate.spec.js b/src/components/ui/__tests__/Paginate.spec.js
similarity index 100%
rename from test/vitest/__tests__/components/Paginate.spec.js
rename to src/components/ui/__tests__/Paginate.spec.js
diff --git a/test/vitest/__tests__/components/common/VnLinkPhone.spec.js b/src/components/ui/__tests__/VnLinkPhone.spec.js
similarity index 100%
rename from test/vitest/__tests__/components/common/VnLinkPhone.spec.js
rename to src/components/ui/__tests__/VnLinkPhone.spec.js
diff --git a/test/vitest/__tests__/components/common/VnSms.spec.js b/src/components/ui/__tests__/VnSms.spec.js
similarity index 100%
rename from test/vitest/__tests__/components/common/VnSms.spec.js
rename to src/components/ui/__tests__/VnSms.spec.js
diff --git a/test/vitest/__tests__/composables/downloadFile.spec.js b/src/composables/__tests__/downloadFile.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/downloadFile.spec.js
rename to src/composables/__tests__/downloadFile.spec.js
diff --git a/test/vitest/__tests__/composables/getExchange.spec.js b/src/composables/__tests__/getExchange.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/getExchange.spec.js
rename to src/composables/__tests__/getExchange.spec.js
diff --git a/test/vitest/__tests__/composables/getTotal.spec.js b/src/composables/__tests__/getTotal.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/getTotal.spec.js
rename to src/composables/__tests__/getTotal.spec.js
diff --git a/test/vitest/__tests__/composables/useAccountShortToStandard.spec.js b/src/composables/__tests__/useAccountShortToStandard.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/useAccountShortToStandard.spec.js
rename to src/composables/__tests__/useAccountShortToStandard.spec.js
diff --git a/test/vitest/__tests__/composables/useAcl.spec.js b/src/composables/__tests__/useAcl.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/useAcl.spec.js
rename to src/composables/__tests__/useAcl.spec.js
diff --git a/test/vitest/__tests__/composables/useArrayData.spec.js b/src/composables/__tests__/useArrayData.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/useArrayData.spec.js
rename to src/composables/__tests__/useArrayData.spec.js
diff --git a/test/vitest/__tests__/composables/useRole.spec.js b/src/composables/__tests__/useRole.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/useRole.spec.js
rename to src/composables/__tests__/useRole.spec.js
diff --git a/test/vitest/__tests__/composables/useSession.spec.js b/src/composables/__tests__/useSession.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/useSession.spec.js
rename to src/composables/__tests__/useSession.spec.js
diff --git a/test/vitest/__tests__/composables/useTokenConfig.spec.js b/src/composables/__tests__/useTokenConfig.spec.js
similarity index 100%
rename from test/vitest/__tests__/composables/useTokenConfig.spec.js
rename to src/composables/__tests__/useTokenConfig.spec.js
diff --git a/src/composables/useArrayData.js b/src/composables/useArrayData.js
index 6e685ee20..1a91cc50b 100644
--- a/src/composables/useArrayData.js
+++ b/src/composables/useArrayData.js
@@ -25,11 +25,14 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
const searchUrl = store.searchUrl;
if (query[searchUrl]) {
const params = JSON.parse(query[searchUrl]);
- const filter = params?.filter && JSON.parse(params?.filter ?? '{}');
+ const filter =
+ params?.filter && typeof params?.filter == 'object'
+ ? params?.filter
+ : JSON.parse(params?.filter ?? '{}');
delete params.filter;
store.userParams = { ...store.userParams, ...params };
- store.userFilter = { ...filter, ...store.userFilter };
+ store.filter = { ...filter, ...store.userFilter };
if (filter?.order) store.order = filter.order;
}
});
@@ -61,6 +64,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
store[option] = userOptions.keepOpts?.includes(option)
? Object.assign(defaultOpts, store[option])
: defaultOpts;
+ if (option === 'userParams') store.defaultParams = store[option];
}
}
}
@@ -75,7 +79,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
const filter = {
limit: store.limit,
};
-
let userParams = { ...store.userParams };
Object.assign(filter, store.userFilter);
@@ -143,6 +146,10 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
if (arrayDataStore.get(key)) arrayDataStore.reset(key, opts);
}
+ function resetPagination() {
+ if (arrayDataStore.get(key)) arrayDataStore.resetPagination(key);
+ }
+
function cancelRequest() {
if (canceller) {
canceller.abort();
@@ -166,7 +173,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
userParams = sanitizerParams(userParams, store?.exprBuilder);
store.userParams = userParams;
- reset(['skip', 'filter.skip', 'page']);
+ resetPagination();
await fetch({});
return { filter, params };
@@ -193,7 +200,7 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
}
store.order = order;
- reset(['skip', 'filter.skip', 'page']);
+ resetPagination();
fetch({});
index++;
@@ -276,7 +283,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
const pushUrl = { path: to };
if (to.endsWith('/list') || to.endsWith('/'))
pushUrl.query = newUrl.query;
- else destroy();
return router.push(pushUrl);
}
}
@@ -328,5 +334,6 @@ export function useArrayData(key = useRoute().meta.moduleName, userOptions) {
isLoading,
deleteOption,
reset,
+ resetPagination,
};
}
diff --git a/src/composables/useFilterParams.js b/src/composables/useFilterParams.js
new file mode 100644
index 000000000..2878e4b76
--- /dev/null
+++ b/src/composables/useFilterParams.js
@@ -0,0 +1,65 @@
+import { useArrayData } from 'src/composables/useArrayData';
+import { onBeforeMount, ref, watch } from 'vue';
+
+export function useFilterParams(key) {
+ if (!key) throw new Error('ArrayData: A key is required to use this composable');
+ const params = ref({});
+ const orders = ref({});
+ const arrayData = ref({});
+
+ onBeforeMount(() => {
+ arrayData.value = useArrayData(key);
+ });
+
+ watch(
+ () => arrayData.value.store?.currentFilter,
+ (val, oldValue) => (val || oldValue) && setUserParams(val),
+ { immediate: true, deep: true }
+ );
+
+ function parseOrder(urlOrders) {
+ const orderObject = {};
+ if (urlOrders) {
+ if (typeof urlOrders == 'string') urlOrders = [urlOrders];
+ for (const [index, orders] of urlOrders.entries()) {
+ const [name, direction] = orders.split(' ');
+ orderObject[name] = { direction, index: index + 1 };
+ }
+ }
+ orders.value = orderObject;
+ }
+
+ function setUserParams(watchedParams) {
+ if (!watchedParams || Object.keys(watchedParams).length == 0) return;
+
+ if (typeof watchedParams == 'string') watchedParams = JSON.parse(watchedParams);
+ if (typeof watchedParams?.filter == 'string')
+ watchedParams.filter = JSON.parse(watchedParams.filter);
+
+ watchedParams = { ...watchedParams, ...watchedParams.filter?.where };
+ parseOrder(watchedParams.filter?.order);
+
+ delete watchedParams.filter;
+ params.value = sanitizer(watchedParams);
+ }
+
+ function sanitizer(params) {
+ for (const [key, value] of Object.entries(params)) {
+ if (key === 'and' && Array.isArray(value)) {
+ value.forEach((item) => {
+ Object.assign(params, item);
+ });
+ delete params[key];
+ } else if (value && typeof value === 'object') {
+ const param = Object.values(value)[0];
+ if (typeof param == 'string') params[key] = param.replaceAll('%', '');
+ }
+ }
+ return params;
+ }
+
+ return {
+ params,
+ orders,
+ };
+}
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index 67d7a2bee..4a78811e6 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -861,6 +861,7 @@ components:
ended: To
mine: For me
hasMinPrice: Minimum price
+ warehouseFk: Warehouse
# LatestBuysFilter
salesPersonFk: Buyer
from: From
diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml
index 4fa8699c9..2bfe7ec4b 100644
--- a/src/i18n/locale/es.yml
+++ b/src/i18n/locale/es.yml
@@ -853,6 +853,7 @@ components:
ended: Hasta
mine: Para mi
hasMinPrice: Precio mínimo
+ wareHouseFk: Almacén
# LatestBuysFilter
salesPersonFk: Comprador
active: Activo
diff --git a/src/pages/Account/AccountAcls.vue b/src/pages/Account/AccountAcls.vue
index d80f835ec..6d3571661 100644
--- a/src/pages/Account/AccountAcls.vue
+++ b/src/pages/Account/AccountAcls.vue
@@ -1,16 +1,15 @@
-
-
-
(roles = data)"
/>
-
+ prefix="acls"
+ :array-data-props="{
+ url: 'ACLs',
+ order: 'id DESC',
+ exprBuilder,
+ }"
+ >
+
+
+
+
diff --git a/src/pages/Account/AccountAliasList.vue b/src/pages/Account/AccountAliasList.vue
index c67283297..f6016fb6c 100644
--- a/src/pages/Account/AccountAliasList.vue
+++ b/src/pages/Account/AccountAliasList.vue
@@ -2,21 +2,12 @@
import { useI18n } from 'vue-i18n';
import { ref, computed } from 'vue';
import VnTable from 'components/VnTable/VnTable.vue';
-import VnSearchbar from 'components/ui/VnSearchbar.vue';
-import { useStateStore } from 'stores/useStateStore';
+import VnSection from 'src/components/common/VnSection.vue';
const tableRef = ref();
const { t } = useI18n();
-const stateStore = useStateStore();
+const dataKey = 'AccountAliasList';
-const exprBuilder = (param, value) => {
- switch (param) {
- case 'search':
- return /^\d+$/.test(value)
- ? { id: value }
- : { alias: { like: `%${value}%` } };
- }
-};
const columns = computed(() => [
{
align: 'left',
@@ -40,40 +31,45 @@ const columns = computed(() => [
create: true,
},
]);
+
+const exprBuilder = (param, value) => {
+ switch (param) {
+ case 'search':
+ return /^\d+$/.test(value)
+ ? { id: value }
+ : { alias: { like: `%${value}%` } };
+ }
+};
-
-
-
-
-
-
+ prefix="mailAlias"
+ :array-data-props="{ url: 'MailAliases', order: 'id DESC', exprBuilder }"
+ >
+
+
+
+
-
es:
Id: Id
diff --git a/src/pages/Account/AccountList.vue b/src/pages/Account/AccountList.vue
index 341dd92a2..c1c75fcee 100644
--- a/src/pages/Account/AccountList.vue
+++ b/src/pages/Account/AccountList.vue
@@ -1,19 +1,20 @@
-
-
-
-
-
-
- (roles = data)" auto-load />
+
-
-
-
-
+
+
+
+
+
+
+
+
-
+
diff --git a/src/pages/Account/Alias/Card/AliasCard.vue b/src/pages/Account/Alias/Card/AliasCard.vue
index 65951b3bf..3a814edc0 100644
--- a/src/pages/Account/Alias/Card/AliasCard.vue
+++ b/src/pages/Account/Alias/Card/AliasCard.vue
@@ -1,12 +1,12 @@
-
-import { useI18n } from 'vue-i18n';
-import VnCard from 'components/common/VnCard.vue';
+import VnCardBeta from 'components/common/VnCardBeta.vue';
import AccountDescriptor from './AccountDescriptor.vue';
-
-const { t } = useI18n();
-
+
diff --git a/src/pages/Account/Card/AccountDescriptor.vue b/src/pages/Account/Card/AccountDescriptor.vue
index 3156f8e1e..4e10e1366 100644
--- a/src/pages/Account/Card/AccountDescriptor.vue
+++ b/src/pages/Account/Card/AccountDescriptor.vue
@@ -41,7 +41,7 @@ const hasAccount = ref(false);
/>
$props.id || route.params.id);
-const { viewSummary } = useSummaryDialog();
const columns = computed(() => [
{
align: 'left',
@@ -81,30 +85,32 @@ const exprBuilder = (param, value) => {
-
-
+ prefix="role"
+ :array-data-props="{ url, exprBuilder, order: 'id ASC' }"
+ >
+
+
+
+
diff --git a/src/pages/Account/Role/Card/RoleCard.vue b/src/pages/Account/Role/Card/RoleCard.vue
index a2d5710f4..7664deca8 100644
--- a/src/pages/Account/Role/Card/RoleCard.vue
+++ b/src/pages/Account/Role/Card/RoleCard.vue
@@ -1,20 +1,7 @@
-
+
diff --git a/src/pages/Account/Role/Card/RoleDescriptor.vue b/src/pages/Account/Role/Card/RoleDescriptor.vue
index 693fcdf48..b4b4fe316 100644
--- a/src/pages/Account/Role/Card/RoleDescriptor.vue
+++ b/src/pages/Account/Role/Card/RoleDescriptor.vue
@@ -43,7 +43,7 @@ const removeRole = async () => {
:filter="filter"
module="Role"
@on-fetch="setData"
- data-key="accountData"
+ data-key="Role"
:title="data.title"
:subtitle="data.subtitle"
:summary="$props.summary"
diff --git a/src/pages/Account/Role/Card/RoleSummary.vue b/src/pages/Account/Role/Card/RoleSummary.vue
index fef85f919..f0daa77fb 100644
--- a/src/pages/Account/Role/Card/RoleSummary.vue
+++ b/src/pages/Account/Role/Card/RoleSummary.vue
@@ -27,10 +27,10 @@ const filter = {
(role = data)"
- data-key="RoleSummary"
+ data-key="Role"
>
{{ role.id }} - {{ role.name }}
diff --git a/src/pages/Account/locale/en.yml b/src/pages/Account/locale/en.yml
index f2f563923..88a6b11e9 100644
--- a/src/pages/Account/locale/en.yml
+++ b/src/pages/Account/locale/en.yml
@@ -66,7 +66,7 @@ account:
mailInputInfo: All emails will be forwarded to the specified address.
role:
newRole: New role
- searchRoles: Search role
+ search: Search role
searchInfo: Search role by id or name
description: Description
id: Id
diff --git a/test/vitest/__tests__/pages/Claims/ClaimDescriptorMenu.spec.js b/src/pages/Claim/Card/__tests__/ClaimDescriptorMenu.spec.js
similarity index 100%
rename from test/vitest/__tests__/pages/Claims/ClaimDescriptorMenu.spec.js
rename to src/pages/Claim/Card/__tests__/ClaimDescriptorMenu.spec.js
diff --git a/test/vitest/__tests__/pages/Claims/ClaimLines.spec.js b/src/pages/Claim/Card/__tests__/ClaimLines.spec.js
similarity index 100%
rename from test/vitest/__tests__/pages/Claims/ClaimLines.spec.js
rename to src/pages/Claim/Card/__tests__/ClaimLines.spec.js
diff --git a/test/vitest/__tests__/pages/Claims/ClaimLinesImport.spec.js b/src/pages/Claim/Card/__tests__/ClaimLinesImport.spec.js
similarity index 100%
rename from test/vitest/__tests__/pages/Claims/ClaimLinesImport.spec.js
rename to src/pages/Claim/Card/__tests__/ClaimLinesImport.spec.js
diff --git a/test/vitest/__tests__/pages/Claims/ClaimPhoto.spec.js b/src/pages/Claim/Card/__tests__/ClaimPhoto.spec.js
similarity index 100%
rename from test/vitest/__tests__/pages/Claims/ClaimPhoto.spec.js
rename to src/pages/Claim/Card/__tests__/ClaimPhoto.spec.js
diff --git a/src/pages/Claim/ClaimFilter.vue b/src/pages/Claim/ClaimFilter.vue
index f7e2ffbf6..c28e95cb8 100644
--- a/src/pages/Claim/ClaimFilter.vue
+++ b/src/pages/Claim/ClaimFilter.vue
@@ -30,7 +30,7 @@ defineExpose({ states });
{{ formatFn(tag.value) }}
-
+
+
@@ -153,6 +146,7 @@ en:
created: Created
myTeam: My team
itemFk: Item
+ zoneFk: Zone
es:
params:
search: Contiene
@@ -165,6 +159,7 @@ es:
created: Creada
myTeam: Mi equipo
itemFk: Artículo
+ zoneFk: Zona
Client Name: Nombre del cliente
Salesperson: Comercial
Item: Artículo
diff --git a/src/pages/Claim/ClaimList.vue b/src/pages/Claim/ClaimList.vue
index 5f61db5c0..bb97162d8 100644
--- a/src/pages/Claim/ClaimList.vue
+++ b/src/pages/Claim/ClaimList.vue
@@ -10,6 +10,7 @@ import ClaimSummary from './Card/ClaimSummary.vue';
import { useSummaryDialog } from 'src/composables/useSummaryDialog';
import RightMenu from 'src/components/common/RightMenu.vue';
import VnTable from 'src/components/VnTable/VnTable.vue';
+import ZoneDescriptorProxy from '../Zone/Card/ZoneDescriptorProxy.vue';
const { t } = useI18n();
const { viewSummary } = useSummaryDialog();
@@ -95,7 +96,12 @@ const columns = computed(() => [
optionLabel: 'description',
},
},
- orderBy: 'priority',
+ orderBy: 'cs.priority',
+ },
+ {
+ align: 'left',
+ label: t('claim.zone'),
+ name: 'zoneFk',
},
{
align: 'right',
@@ -132,7 +138,7 @@ const STATE_COLOR = {
+
+
+ {{ row.zoneName }}
+
+
+
diff --git a/src/pages/Customer/Card/CustomerBasicData.vue b/src/pages/Customer/Card/CustomerBasicData.vue
index 768c66f32..e9a349e0b 100644
--- a/src/pages/Customer/Card/CustomerBasicData.vue
+++ b/src/pages/Customer/Card/CustomerBasicData.vue
@@ -16,14 +16,17 @@ const { t } = useI18n();
const businessTypes = ref([]);
const contactChannels = ref([]);
-const handleSalesModelValue = (val) => ({
- or: [
- { id: val },
- { name: val },
- { nickname: { like: '%' + val + '%' } },
- { code: { like: `${val}%` } },
- ],
-});
+const handleSalesModelValue = (val) => {
+ if (!val) val = '';
+ return {
+ or: [
+ { id: val },
+ { name: val },
+ { nickname: { like: '%' + val + '%' } },
+ { code: { like: `${val}%` } },
+ ],
+ };
+};
const exprBuilder = (param, value) => {
return {
diff --git a/src/pages/Customer/CustomerFilter.vue b/src/pages/Customer/CustomerFilter.vue
index 96f670542..c62ec7dbb 100644
--- a/src/pages/Customer/CustomerFilter.vue
+++ b/src/pages/Customer/CustomerFilter.vue
@@ -12,14 +12,17 @@ defineProps({
required: true,
},
});
-const handleSalesModelValue = (val) => ({
- or: [
- { id: val },
- { name: val },
- { nickname: { like: '%' + val + '%' } },
- { code: { like: `${val}%` } },
- ],
-});
+const handleSalesModelValue = (val) => {
+ if (!val) val = '';
+ return {
+ or: [
+ { id: val },
+ { name: val },
+ { nickname: { like: '%' + val + '%' } },
+ { code: { like: `${val}%` } },
+ ],
+ };
+};
const exprBuilder = (param, value) => {
return {
diff --git a/test/vitest/__tests__/pages/Customer/CustomerPayments.spec.js b/src/pages/Customer/Payments/__tests__/CustomerPayments.spec.js
similarity index 100%
rename from test/vitest/__tests__/pages/Customer/CustomerPayments.spec.js
rename to src/pages/Customer/Payments/__tests__/CustomerPayments.spec.js
diff --git a/src/pages/Customer/components/CustomerSamplesCreate.vue b/src/pages/Customer/components/CustomerSamplesCreate.vue
index a75dfa1b2..665e136e4 100644
--- a/src/pages/Customer/components/CustomerSamplesCreate.vue
+++ b/src/pages/Customer/components/CustomerSamplesCreate.vue
@@ -107,7 +107,7 @@ const setParams = (params) => {
const getPreview = async () => {
const params = {
- recipientId: entityId,
+ recipientId: entityId.value,
};
const validationMessage = validateMessage();
if (validationMessage) return notify(t(validationMessage), 'negative');
diff --git a/src/pages/Item/ItemFixedPriceFilter.vue b/src/pages/Item/ItemFixedPriceFilter.vue
index a8f7d0c5f..531c7e09e 100644
--- a/src/pages/Item/ItemFixedPriceFilter.vue
+++ b/src/pages/Item/ItemFixedPriceFilter.vue
@@ -32,7 +32,7 @@ const itemTypeWorkersOptions = ref([]);
+
+en:
+ params:
+ buyerFk: Buyer
+ warehouseFk: Warehouse
+ started: Started
+ ended: Ended
+ mine: Mine
+ showBadDates: Show future items
+ hasMinPrice: Has Min Price
+es:
+ params:
+ buyerFk: Comprador
+ warehouseFk: Almacén
+ started: Desde
+ ended: Hasta
+ mine: Para mi
+ showBadDates: Ver items a futuro
+ hasMinPrice: Precio mínimo
+
diff --git a/test/vitest/__tests__/pages/Login/Login.spec.js b/src/pages/Login/__tests__/Login.spec.js
similarity index 100%
rename from test/vitest/__tests__/pages/Login/Login.spec.js
rename to src/pages/Login/__tests__/Login.spec.js
diff --git a/src/pages/Monitor/Ticket/MonitorTicketFilter.vue b/src/pages/Monitor/Ticket/MonitorTicketFilter.vue
index 82578a61f..48710d696 100644
--- a/src/pages/Monitor/Ticket/MonitorTicketFilter.vue
+++ b/src/pages/Monitor/Ticket/MonitorTicketFilter.vue
@@ -281,6 +281,7 @@ en:
problems: With problems
pending: Pending
alertLevel: Grouped State
+ department: Department
FREE: Free
DELIVERED: Delivered
ON_PREPARATION: On preparation
@@ -300,6 +301,7 @@ es:
problems: Con problemas
pending: Pendiente
alertLevel: Estado agrupado
+ department: Departamento
FREE: Libre
DELIVERED: Servido
ON_PREPARATION: En preparación
diff --git a/src/pages/Order/Card/OrderCatalog.vue b/src/pages/Order/Card/OrderCatalog.vue
index 4ad009133..da2e88aa9 100644
--- a/src/pages/Order/Card/OrderCatalog.vue
+++ b/src/pages/Order/Card/OrderCatalog.vue
@@ -86,6 +86,7 @@ watch(
url="Orders/CatalogFilter"
:label="t('Search items')"
:info="t('You can search items by name or id')"
+ :search-remove-params="false"
/>
(stateStore.rightDrawer = false));
auto-load
/>
-
+
@@ -111,12 +113,12 @@ onMounted(async () => (stateStore.rightDrawer = false));
-