diff --git a/src/frontend/src/App.vue b/src/frontend/src/App.vue index b6194415..1fa270da 100644 --- a/src/frontend/src/App.vue +++ b/src/frontend/src/App.vue @@ -1,12 +1,11 @@ diff --git a/src/frontend/src/components/QuantDatePicker.vue b/src/frontend/src/components/QuantDatePicker.vue index dce94e7c..b69a3660 100644 --- a/src/frontend/src/components/QuantDatePicker.vue +++ b/src/frontend/src/components/QuantDatePicker.vue @@ -41,7 +41,7 @@ const dateValue = computed(() => { return isNaN(d.getTime()) ? null : d; }); -const onDateChange = (val: Date | null) => { +const onDateChange = (val: any) => { if (!val) { emit('update:modelValue', ''); emit('change', ''); diff --git a/src/frontend/src/components/QuantGridAdapter.vue b/src/frontend/src/components/QuantGridAdapter.vue index e997d59a..99c351dd 100644 --- a/src/frontend/src/components/QuantGridAdapter.vue +++ b/src/frontend/src/components/QuantGridAdapter.vue @@ -65,7 +65,7 @@ (); -const emit = defineEmits(['selection-change', 'update:selection']); +const emit = defineEmits(['selection-change', 'update:selection', 'row-selected', 'cell-double-clicked']); const dt = ref(); const globalSearchQuery = ref(''); const selectedRows = ref(null); +const activeColumns = computed(() => { + if (props.columns) return props.columns; + if (props.columnDefs) { + return props.columnDefs.map(c => ({ + key: c.field || c.colId || '', + label: c.headerName || c.field || '', + width: c.width ? `${c.width}px` : undefined, + align: 'left' + })); + } + return []; +}); + +const activeItems = computed(() => props.items || props.rowData || []); + const filteredItems = computed(() => { - if (!props.items) return []; - if (!globalSearchQuery.value) return props.items; + if (!activeItems.value) return []; + if (!globalSearchQuery.value) return activeItems.value; const q = globalSearchQuery.value.toLowerCase(); - return props.items.filter(item => { + return activeItems.value.filter(item => { return Object.values(item).some(val => String(val ?? '').toLowerCase().includes(q)); }); }); diff --git a/src/frontend/src/components/business-composites/AISuggestedField.vue b/src/frontend/src/components/business-composites/AISuggestedField.vue index 16663247..c7ec3a74 100644 --- a/src/frontend/src/components/business-composites/AISuggestedField.vue +++ b/src/frontend/src/components/business-composites/AISuggestedField.vue @@ -8,8 +8,8 @@
신뢰도: - - {{ confidenceScore }}% + + {{ confidenceScore || 90 }}%
diff --git a/src/frontend/src/components/business-composites/OrderLineEditor.vue b/src/frontend/src/components/business-composites/OrderLineEditor.vue index f8971299..c98685a5 100644 --- a/src/frontend/src/components/business-composites/OrderLineEditor.vue +++ b/src/frontend/src/components/business-composites/OrderLineEditor.vue @@ -79,13 +79,18 @@ import { ref, computed } from 'vue'; export interface OrderLineItem { - id: number; - itemCode: string; - itemName: string; - quantity: number; + id: number | string; + itemCode?: string; + ticker?: string; + itemName?: string; + name?: string; + side?: string; + quantity?: number; + qty?: number; price: number; amount: number; selected?: boolean; + status?: string; } const props = defineProps<{ @@ -117,7 +122,7 @@ const recalculateLine = (line: OrderLineItem) => { }; const addLine = () => { - const newId = lines.value.length > 0 ? Math.max(...lines.value.map(l => l.id)) + 1 : 1; + const newId = lines.value.length > 0 ? Math.max(...lines.value.map(l => Number(l.id) || 0)) + 1 : 1; lines.value.push({ id: newId, itemCode: `ITEM-00${newId}00`, diff --git a/src/frontend/src/components/domain-fields/BarcodeInput.vue b/src/frontend/src/components/domain-fields/BarcodeInput.vue index a76eb368..94f6710f 100644 --- a/src/frontend/src/components/domain-fields/BarcodeInput.vue +++ b/src/frontend/src/components/domain-fields/BarcodeInput.vue @@ -1,6 +1,5 @@