diff options
| -rw-r--r-- | config/menuConfig.ts | 2 | ||||
| -rw-r--r-- | config/vendorRfqShipColumnsConfig.ts | 141 |
2 files changed, 141 insertions, 2 deletions
diff --git a/config/menuConfig.ts b/config/menuConfig.ts index 32af0776..0a445526 100644 --- a/config/menuConfig.ts +++ b/config/menuConfig.ts @@ -319,8 +319,6 @@ export const mainNavVendor: MenuSection[] = [ ]; - - export const additionalNavVendor: MenuItem[] = [ { diff --git a/config/vendorRfqShipColumnsConfig.ts b/config/vendorRfqShipColumnsConfig.ts new file mode 100644 index 00000000..7cd62c96 --- /dev/null +++ b/config/vendorRfqShipColumnsConfig.ts @@ -0,0 +1,141 @@ +export interface RfqShipVendorRow {
+ /** 주요 식별 정보 */
+ id: number
+ vendorId: number
+ rfqId: number
+
+ /** Vendor 기본정보 */
+ vendorName: string
+ vendorCode: string | null
+ vendorStatus: string | null
+
+ /** 프로젝트 정보 */
+ projectId: number | null
+ projectCode: string | null
+ projectName: string | null
+
+ /** RFQ 정보 */
+ rfqCode: string | null
+ rfqDescription: string | null
+
+ /** CBE 응답 정보 */
+ commercialResponseStatus: string | null
+ totalPrice: number | null
+ currency: string | null
+ paymentTerms: string | null
+ incoterms: string | null
+ deliveryPeriod: string | null
+ warrantyPeriod: string | null
+ validityPeriod: string | null
+ commercialNotes: string | null
+ respondedAt: Date | null
+
+ /** 첨부파일 개수 */
+ attachmentCount: number | null
+ commercialAttachmentCount: number | null
+
+ /** 댓글 목록 */
+ comments: Array<{
+ id: number
+ commentText: string
+ vendorId?: number
+ createdAt: Date
+ commentedBy?: number
+ }>
+}
+
+export interface RfqShipColumnConfig {
+ /** 객체의 어느 필드를 표시할지 */
+ id: keyof RfqShipVendorRow;
+
+ /** 화면에서 보여줄 컬럼명 */
+ label: string;
+
+ /** (선택) 그룹핑/카테고리 */
+ group?: string;
+
+ /** (선택) Excel에서의 헤더 */
+ excelHeader?: string;
+
+ /** (선택) 데이터 타입(예: date, string, number 등), 포맷 지정용 */
+ type?: string;
+}
+
+/**
+ * 프로젝트 정보, 벤더 정보, CBE 정보가 결합된 컬럼 구성
+ */
+export const rfqShipColumnsConfig: RfqShipColumnConfig[] = [
+ // 프로젝트 정보
+ {
+ id: "projectCode",
+ label: "Project Code",
+ excelHeader: "Project Code",
+ group: "Project Info",
+ },
+ {
+ id: "projectName",
+ label: "Project Name",
+ excelHeader: "Project Name",
+ group: "Project Info",
+ },
+ {
+ id: "rfqCode",
+ label: "RFQ Code",
+ excelHeader: "RFQ Code",
+ group: "Project Info",
+ },
+
+ // 벤더 정보
+ {
+ id: "vendorName",
+ label: "Vendor Name",
+ excelHeader: "Vendor Name",
+ group: "Vendor Info",
+ },
+ {
+ id: "vendorCode",
+ label: "Vendor Code",
+ excelHeader: "Vendor Code",
+ group: "Vendor Info",
+ },
+
+ // 상업 응답 정보
+ {
+ id: "commercialResponseStatus",
+ label: "Status",
+ excelHeader: "Status",
+ group: "Commercial Response",
+ type: "text",
+ },
+ {
+ id: "totalPrice",
+ label: "Total Price",
+ excelHeader: "Total Price",
+ group: "Commercial Response",
+ type: "number",
+ },
+ {
+ id: "currency",
+ label: "Currency",
+ excelHeader: "Currency",
+ group: "Commercial Response",
+ },
+ {
+ id: "paymentTerms",
+ label: "Payment Terms",
+ excelHeader: "Payment Terms",
+ group: "Commercial Response",
+ },
+ {
+ id: "incoterms",
+ label: "Incoterms",
+ excelHeader: "Incoterms",
+ group: "Commercial Response",
+ },
+ {
+ id: "deliveryPeriod",
+ label: "Delivery Period",
+ excelHeader: "Delivery Period",
+ group: "Commercial Response",
+ }
+]
\ No newline at end of file |
