summaryrefslogtreecommitdiff
path: root/lib/bidding/vendor/partners-bidding-list.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-02 10:30:58 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-02 10:30:58 +0000
commit581b415e6707d9f1d0d0b667b84c4314461bfe37 (patch)
tree5476543a290ada5c3f29a0cba24ee86fc9c215b2 /lib/bidding/vendor/partners-bidding-list.tsx
parentd5ddafa4276b0031538261400e431009b0734be9 (diff)
(최겸) 입찰 등록, 협력업체 응찰 기능 개발
Diffstat (limited to 'lib/bidding/vendor/partners-bidding-list.tsx')
-rw-r--r--lib/bidding/vendor/partners-bidding-list.tsx47
1 files changed, 41 insertions, 6 deletions
diff --git a/lib/bidding/vendor/partners-bidding-list.tsx b/lib/bidding/vendor/partners-bidding-list.tsx
index c0356e22..aa185c3a 100644
--- a/lib/bidding/vendor/partners-bidding-list.tsx
+++ b/lib/bidding/vendor/partners-bidding-list.tsx
@@ -13,6 +13,8 @@ import { DataTable } from '@/components/data-table/data-table'
import { DataTableAdvancedToolbar } from '@/components/data-table/data-table-advanced-toolbar'
import { getPartnersBiddingListColumns } from './partners-bidding-list-columns'
import { getBiddingListForPartners, PartnersBiddingListItem } from '../detail/service'
+import { PartnersBiddingToolbarActions } from './partners-bidding-toolbar-actions'
+import { PartnersBiddingAttendanceDialog } from './partners-bidding-attendance-dialog'
interface PartnersBiddingListProps {
companyId: number
@@ -133,6 +135,19 @@ export function PartnersBiddingList({ companyId }: PartnersBiddingListProps) {
clearOnDefault: true,
})
+ // 데이터 새로고침 함수
+ const refreshData = React.useCallback(async () => {
+ try {
+ setIsLoading(true)
+ const result = await getBiddingListForPartners(companyId)
+ setData(result)
+ } catch (error) {
+ console.error('Failed to refresh bidding list:', error)
+ } finally {
+ setIsLoading(false)
+ }
+ }, [companyId])
+
if (isLoading) {
return (
<div className="flex items-center justify-center py-12">
@@ -145,12 +160,32 @@ export function PartnersBiddingList({ companyId }: PartnersBiddingListProps) {
}
return (
- <DataTable table={table}>
- <DataTableAdvancedToolbar
- table={table}
- filterFields={advancedFilterFields}
- shallow={false}
+ <>
+ <DataTable table={table}>
+ <DataTableAdvancedToolbar
+ table={table}
+ filterFields={advancedFilterFields}
+ shallow={false}
+ >
+ <PartnersBiddingToolbarActions table={table} onRefresh={refreshData} setRowAction={setRowAction} />
+ </DataTableAdvancedToolbar>
+ </DataTable>
+
+ <PartnersBiddingAttendanceDialog
+ open={rowAction?.type === "attendance"}
+ onOpenChange={() => setRowAction(null)}
+ biddingDetail={rowAction?.row.original ? {
+ id: rowAction.row.original.biddingId,
+ biddingNumber: rowAction.row.original.biddingNumber,
+ title: rowAction.row.original.title,
+ preQuoteDate: null,
+ biddingRegistrationDate: rowAction.row.original.submissionStartDate?.toISOString() || null,
+ evaluationDate: null,
+ } : null}
+ biddingCompanyId={rowAction?.row.original?.biddingCompanyId || 0}
+ isAttending={rowAction?.row.original?.isAttendingMeeting || null}
+ onSuccess={refreshData}
/>
- </DataTable>
+ </>
)
}