-
+
{{ card.name }}
diff --git a/src/pages/Ticket/Negative/TicketLackDetail.vue b/src/pages/Ticket/Negative/TicketLackDetail.vue
index 0dd099dad..d1dfce79d 100644
--- a/src/pages/Ticket/Negative/TicketLackDetail.vue
+++ b/src/pages/Ticket/Negative/TicketLackDetail.vue
@@ -101,6 +101,12 @@ const itemProposalSelected = ref(null);
// itemProposalSelected.value.available;
// }
// };
+function onBuysFetched(data) {
+ Object.assign(item.value, data[0]);
+}
+function onTicketLackFetched(data) {
+ itemLack.value = data[0];
+}
@@ -119,17 +125,13 @@ const itemProposalSelected = ref(null);
:url="`Buys/latestBuysFilter`"
:fields="['longName']"
:filter="{ where: { 'i.id': '2' } }"
- @on-fetch="(data) => Object.assign(item.value, data[0])"
+ @on-fetch="onBuysFetched"
auto-load
/>
{
- itemLack = data[0];
- }
- "
+ @on-fetch="onTicketLackFetched"
auto-load
/>
@@ -232,7 +234,7 @@ const itemProposalSelected = ref(null);
{{ item.longName }}
-
+
diff --git a/src/pages/Ticket/Negative/TicketLackFilter.vue b/src/pages/Ticket/Negative/TicketLackFilter.vue
index 6482052a3..a3f8a8def 100644
--- a/src/pages/Ticket/Negative/TicketLackFilter.vue
+++ b/src/pages/Ticket/Negative/TicketLackFilter.vue
@@ -13,10 +13,17 @@ const props = defineProps({
required: true,
},
});
+// const arrayData = useArrayData(props.dataKey);
+// const warehouse = ref(null);
+// onMounted(async () => {
+// warehouse.value = arrayData.store?.userParams?.warehouse;
+// });
const to = Date.vnNew();
to.setDate(to.getDate() + 1);
+const warehouses = ref();
+const categoriesOptions = ref([]);
const itemTypesRef = ref(null);
const itemTypesOptions = ref([]);
@@ -26,9 +33,27 @@ const itemTypesFilter = {
order: 'name ASC',
where: {},
};
+const onCategoryChange = async (categoryFk, search) => {
+ if (!categoryFk) {
+ itemTypesFilter.where.categoryFk = null;
+ delete itemTypesFilter.where.categoryFk;
+ } else {
+ itemTypesFilter.where.categoryFk = categoryFk;
+ }
+ search();
+ await itemTypesRef.value.fetch();
+};
+ (warehouses = data)" auto-load />
+ (categoriesOptions = data)"
+ auto-load
+ />
+
+
+
+ onCategoryChange($event, searchFn)
+ "
+ :options="categoriesOptions"
+ option-value="id"
+ option-label="name"
+ hide-selected
+ dense
+ outlined
+ rounded
+ />
+
diff --git a/src/pages/Ticket/Negative/TicketLackList.vue b/src/pages/Ticket/Negative/TicketLackList.vue
index b42881051..ac4529f32 100644
--- a/src/pages/Ticket/Negative/TicketLackList.vue
+++ b/src/pages/Ticket/Negative/TicketLackList.vue
@@ -11,6 +11,7 @@ import { useRole } from 'src/composables/useRole';
import ItemDescriptorProxy from 'src/pages/Item/Card/ItemDescriptorProxy.vue';
const router = useRouter();
import TicketLackFilter from './TicketLackFilter.vue';
+import { markRaw } from 'vue';
const stateStore = useStateStore();
const { t } = useI18n();
@@ -67,16 +68,7 @@ const columns = computed(() => [
align: 'left',
label: t('negative.longName'),
field: ({ longName }) => longName,
- columnField: {
- component: 'descriptor',
- attrs: {
- label: ({ longName }) => longName,
- proxy: {
- key: 'itemFk',
- component: ItemDescriptorProxy,
- },
- },
- },
+
sortable: true,
headerStyle: 'width: 350px',
cardVisible: true,
@@ -153,61 +145,73 @@ onBeforeMount(() => {
-
-
-
-
-
-
-
- {{ t('negative.negativeAction') }}
-
-
-
-
-
-
-
-
-
-
- {{ row.itemFk }}
+
+
+
+
+
+
+ {{ t('negative.negativeAction') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.longName }}
+
+
+
+
+
+ {{ row.itemFk }}
-
-
-
+
+
+