summaryrefslogtreecommitdiff
path: root/lib/vendor-pool/table/vendor-pool-table-columns.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-pool/table/vendor-pool-table-columns.tsx')
-rw-r--r--lib/vendor-pool/table/vendor-pool-table-columns.tsx851
1 files changed, 51 insertions, 800 deletions
diff --git a/lib/vendor-pool/table/vendor-pool-table-columns.tsx b/lib/vendor-pool/table/vendor-pool-table-columns.tsx
index 5676250b..9d6c506f 100644
--- a/lib/vendor-pool/table/vendor-pool-table-columns.tsx
+++ b/lib/vendor-pool/table/vendor-pool-table-columns.tsx
@@ -23,7 +23,7 @@ interface VendorPoolTableMeta {
// Vendor Pool 데이터 타입 - 스키마 기반 + 테이블용 추가 필드
import type { VendorPool } from "@/db/schema/avl/vendor-pool"
-import { DisciplineCode, EngineeringDisciplineSelector } from "@/components/common/discipline"
+import { DisciplineHardcodedSelector } from "@/components/common/discipline-hardcoded"
import { MaterialGroupSelectorDialogSingle } from "@/components/common/material/material-group-selector-dialog-single"
import type { MaterialSearchItem } from "@/lib/material/material-group-service"
import { VendorTierSelector } from "@/components/common/selectors/vendor-tier/vendor-tier-selector"
@@ -64,10 +64,12 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
),
enableSorting: false,
enableHiding: false,
+ enableColumnFilter: false,
size: 40,
},
{
accessorKey: "id",
+ accessorFn: (row) => String(row.id),
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="ID" />
),
@@ -82,7 +84,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
// 실제 ID 표시
return <div className="text-sm font-mono">{id}</div>
},
- size: 60,
+ size: 120,
},
{
accessorKey: "constructionSector",
@@ -120,7 +122,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 100,
+ size: 160,
},
{
accessorKey: "htDivision",
@@ -156,46 +158,37 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 80,
+ size: 120,
},
{
- accessorKey: "designCategory",
+ accessorKey: "discipline",
header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title={<span className="text-red-600 font-medium">설계기능(공종) *</span>} />
+ <DataTableColumnHeaderSimple column={column} title={<span className="text-red-600 font-medium">설계공종 *</span>} />
),
cell: ({ row, table }) => {
- const designCategoryCode = row.original.designCategoryCode as string
- const designCategory = row.original.designCategory as string
+ const discipline = row.original.discipline as string
- // 현재 선택된 discipline 구성
- const selectedDiscipline: DisciplineCode | undefined = designCategoryCode && designCategory ? {
- CD: designCategoryCode,
- USR_DF_CHAR_18: designCategory
- } : undefined
-
- const onDisciplineSelect = async (discipline: DisciplineCode) => {
- console.log('선택된 설계공종:', discipline)
+ const onDisciplineSelect = async (newDiscipline: string) => {
+ console.log('선택된 설계공종:', newDiscipline)
console.log('행 ID:', row.original.id)
- // 설계기능코드와 설계기능(공종) 필드 모두 업데이트
if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "designCategoryCode", discipline.CD)
- await table.options.meta.onCellUpdate(row.original.id, "designCategory", discipline.USR_DF_CHAR_18)
+ await table.options.meta.onCellUpdate(row.original.id, "discipline", newDiscipline)
} else {
console.error('onCellUpdate가 정의되지 않음')
}
}
return (
- <EngineeringDisciplineSelector
- selectedDiscipline={selectedDiscipline}
+ <DisciplineHardcodedSelector
+ selectedDiscipline={discipline}
onDisciplineSelect={onDisciplineSelect}
disabled={false}
placeholder="설계공종을 선택하세요"
/>
)
},
- size: 260,
+ size: 200,
},
{
accessorKey: "equipBulkDivision",
@@ -225,72 +218,17 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 120,
- },
- {
- accessorKey: "packageCode",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="패키지 코드" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("packageCode")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "packageCode", newValue)
- }
- }
-
- // 수정 여부 확인
- const isModified = getIsModified(table, row.original.id, "packageCode")
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="패키지 코드 입력"
- maxLength={50}
- autoSave={false}
- isModified={isModified}
- />
- )
- },
- size: 120,
+ size: 180,
},
{
- accessorKey: "packageName",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="패키지 명" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("packageName")
- const isEmptyRow = String(row.original.id).startsWith('temp-')
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "packageName", newValue)
- }
+ // accessorKey: "materialGroupName",
+ id: "materialGroupName",
+ accessorFn: (row) => {
+ if (row.materialGroupCode && row.materialGroupName) {
+ return `${row.materialGroupCode} - ${row.materialGroupName}`
}
-
- // 수정 여부 확인
- const isModified = getIsModified(table, row.original.id, "packageName")
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="패키지 명 입력"
- maxLength={100}
- autoSave={false}
- initialEditMode={isEmptyRow}
- isModified={isModified}
- />
- )
+ return row.materialGroupName || row.materialGroupCode || ""
},
- size: 200,
- },
- {
- accessorKey: "materialGroupName",
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title={<span className="text-red-600 font-medium">자재그룹 *</span>} />
),
@@ -338,31 +276,6 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
size: 400,
},
{
- accessorKey: "smCode",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="SM Code" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("smCode")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "smCode", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="SM Code 입력"
- maxLength={50}
- />
- )
- },
- size: 200,
- },
- {
accessorKey: "similarMaterialNamePurchase",
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="자재명 (검색 키워드)" />
@@ -390,32 +303,6 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
size: 250,
},
{
- accessorKey: "similarMaterialNameOther",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="유사자재명(구매외)" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("similarMaterialNameOther")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "similarMaterialNameOther", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="유사자재명(구매외) 입력"
- maxLength={100}
- autoSave={false}
- />
- )
- },
- size: 140,
- },
- {
accessorKey: "vendorSelector",
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="협력업체 선택" />
@@ -465,7 +352,8 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 150,
+ enableColumnFilter: false,
+ size: 200,
},
{
accessorKey: "vendorCode",
@@ -495,15 +383,22 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 130,
+ size: 200,
},
{
- accessorKey: "vendorName",
+ // accessorKey: "vendorName",
+ id: "vendorName",
+ accessorFn: (row) => {
+ if (row.vendorCode && row.vendorName) {
+ return `${row.vendorCode} - ${row.vendorName}`
+ }
+ return row.vendorName || row.vendorCode || ""
+ },
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title={<span className="text-red-600 font-medium">협력업체 명 *</span>} />
),
cell: ({ row, table }) => {
- const value = row.getValue("vendorName")
+ const value = row.original.vendorName // accessorFn을 썼으므로 getValue() 대신 original 참조가 더 안전
const isEmptyRow = String(row.original.id).startsWith('temp-')
const onSave = async (newValue: any) => {
if (table.options.meta?.onCellUpdate) {
@@ -527,7 +422,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 130,
+ size: 200,
},
{
accessorKey: "faTarget",
@@ -554,53 +449,8 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
)
},
enableSorting: false,
- size: 80,
- },
- {
- accessorKey: "faStatus",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="FA현황" />
- ),
- cell: ({ row }) => {
- const value = row.original.faStatus as string
-
- // 'O'인 경우에만 'O'를 표시, 그 외에는 빈 셀
- const displayValue = value === "O" ? "O" : ""
-
- return (
- <div className="px-2 py-1 text-sm text-center">
- {displayValue}
- </div>
- )
- },
size: 120,
},
- // {
- // accessorKey: "faRemark",
- // header: ({ column }) => (
- // <DataTableColumnHeaderSimple column={column} title="FA상세" />
- // ),
- // cell: ({ row, table }) => {
- // const value = row.getValue("faRemark")
- // const onSave = async (newValue: any) => {
- // if (table.options.meta?.onCellUpdate) {
- // await table.options.meta.onCellUpdate(row.original.id, "faRemark", newValue)
- // }
- // }
-
- // return (
- // <EditableCell
- // value={value}
- // type="textarea"
- // onSave={onSave}
- // placeholder="FA상세 입력"
- // maxLength={500}
- // autoSave={false}
- // />
- // )
- // },
- // size: 120,
- // },
{
accessorKey: "tier",
header: ({ column }) => (
@@ -624,144 +474,9 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 120,
- },
- {
- accessorKey: "isAgent",
- header: "Agent 여부",
- cell: ({ row, table }) => {
- const value = row.getValue("isAgent") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "isAgent", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- enableSorting: false,
- size: 100,
- },
- {
- accessorKey: "contractSignerCode",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="계약서명주체 코드" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("contractSignerCode")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "contractSignerCode", newValue)
- }
- }
-
- // 수정 여부 확인
- const isModified = getIsModified(table, row.original.id, "contractSignerCode")
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="계약서명주체 코드 입력"
- maxLength={50}
- autoSave={false}
- isModified={isModified}
- />
- )
- },
- size: 120,
- },
- {
- accessorKey: "contractSignerSelector",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="계약서명주체 선택" />
- ),
- cell: ({ row, table }) => {
- const contractSignerCode = row.original.contractSignerCode as string
- const contractSignerName = row.original.contractSignerName as string
-
- // 현재 선택된 contract signer 구성
- const selectedVendor: VendorSearchItem | null = contractSignerCode && contractSignerName ? {
- id: 0, // 실제로는 vendorId가 있어야 하지만 여기서는 임시로 0 사용
- vendorName: contractSignerName,
- vendorCode: contractSignerCode || null,
- taxId: null, // 사업자번호는 vendor-pool에서 관리하지 않음
- status: "ACTIVE", // 임시 값
- displayText: contractSignerName + (contractSignerCode ? ` (${contractSignerCode})` : "")
- } : null
-
- const onVendorSelect = async (vendor: VendorSearchItem | null) => {
- console.log('선택된 계약서명주체:', vendor)
-
- if (vendor) {
- // 계약서명주체코드와 계약서명주체명 필드 업데이트
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "contractSignerCode", vendor.vendorCode || "")
- await table.options.meta.onCellUpdate(row.original.id, "contractSignerName", vendor.vendorName)
- }
- } else {
- // 선택 해제 시 빈 값으로 설정
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "contractSignerCode", "")
- await table.options.meta.onCellUpdate(row.original.id, "contractSignerName", "")
- }
- }
- }
-
- return (
- <VendorSelectorDialogSingle
- selectedVendor={selectedVendor}
- onVendorSelect={onVendorSelect}
- disabled={false}
- triggerLabel="계약서명주체 선택"
- placeholder="계약서명주체를 검색하세요..."
- title="계약서명주체 선택"
- description="계약서명주체를 검색하고 선택해주세요."
- statusFilter="ACTIVE"
- />
- )
- },
size: 150,
},
{
- accessorKey: "contractSignerName",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title={<span className="text-red-600 font-medium">계약서명주체 명 *</span>} />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("contractSignerName")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "contractSignerName", newValue)
- }
- }
-
- // 수정 여부 확인
- const isModified = getIsModified(table, row.original.id, "contractSignerName")
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="계약서명주체 명 입력"
- maxLength={100}
- autoSave={false}
- isModified={isModified}
- />
- )
- },
- size: 120,
- },
- {
accessorKey: "headquarterLocation",
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title={<span className="text-red-600 font-medium">본사 위치 *</span>} />
@@ -792,7 +507,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 180,
+ size: 220,
},
{
accessorKey: "manufacturingLocation",
@@ -850,7 +565,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 140,
+ size: 220,
},
{
accessorKey: "similarVendorName",
@@ -876,30 +591,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
/>
)
},
- size: 130,
- },
- {
- accessorKey: "hasAvl",
- header: "AVL",
- cell: ({ row, table }) => {
- const value = row.getValue("hasAvl") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "hasAvl", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- enableSorting: false,
- size: 60,
+ size: 280,
},
{
accessorKey: "isBlacklist",
@@ -922,7 +614,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
)
},
enableSorting: false,
- size: 60,
+ size: 100,
},
{
accessorKey: "isBcc",
@@ -945,7 +637,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
)
},
enableSorting: false,
- size: 60,
+ size: 100,
},
{
accessorKey: "purchaseOpinion",
@@ -972,448 +664,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
},
size: 300,
},
- {
- accessorKey: "shipTypeCommon",
- header: "공통",
- cell: ({ row, table }) => {
- const value = row.getValue("shipTypeCommon") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "shipTypeCommon", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- enableSorting: false,
- size: 80,
- },
- {
- accessorKey: "shipTypeAmax",
- header: "A-max",
- cell: ({ row, table }) => {
- const value = row.getValue("shipTypeAmax") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "shipTypeAmax", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- enableSorting: false,
- size: 60,
- },
- {
- accessorKey: "shipTypeSmax",
- header: "S-max",
- cell: ({ row, table }) => {
- const value = row.getValue("shipTypeSmax") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "shipTypeSmax", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- enableSorting: false,
- size: 60,
- },
- {
- accessorKey: "shipTypeVlcc",
- header: "VLCC",
- cell: ({ row, table }) => {
- const value = row.getValue("shipTypeVlcc") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "shipTypeVlcc", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- enableSorting: false,
- size: 60,
- },
- {
- accessorKey: "shipTypeLngc",
- header: "LNGC",
- cell: ({ row, table }) => {
- const value = row.getValue("shipTypeLngc") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "shipTypeLngc", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "shipTypeCont",
- header: "CONT",
- cell: ({ row, table }) => {
- const value = row.getValue("shipTypeCont") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "shipTypeCont", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypeCommon",
- header: "공통",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypeCommon") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypeCommon", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypeFpso",
- header: "FPSO",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypeFpso") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypeFpso", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypeFlng",
- header: "FLNG",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypeFlng") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypeFlng", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypeFpu",
- header: "FPU",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypeFpu") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypeFpu", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypePlatform",
- header: "Platform",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypePlatform") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypePlatform", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypeWtiv",
- header: "WTIV",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypeWtiv") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypeWtiv", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "offshoreTypeGom",
- header: "GOM",
- cell: ({ row, table }) => {
- const value = row.getValue("offshoreTypeGom") as boolean
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "offshoreTypeGom", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="checkbox"
- onSave={onSave}
- autoSave={false}
- />
- )
- },
- size: 60,
- },
- {
- accessorKey: "picName",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="협력업체담당자" />
- // 이전에는 컬럼명이 PIC(담당자) 였음.
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("picName")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "picName", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="입력가능"
- maxLength={50}
- />
- )
- },
- size: 120,
- },
- {
- accessorKey: "picEmail",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="협력업체담당자(E-mail)" />
- // 이전에는 컬럼명이 PIC(E-mail) 였음.
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("picEmail")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "picEmail", newValue)
- }
- }
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="입력가능"
- maxLength={100}
- />
- )
- },
- size: 140,
- },
- {
- accessorKey: "picPhone",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="협력업체담당자(Phone)" />
- // 이전에는 컬럼명이 PIC(Phone) 였음.
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("picPhone")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "picPhone", newValue)
- }
- }
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="입력가능"
- maxLength={20}
- />
- )
- },
- size: 120,
- },
- {
- accessorKey: "agentName",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="Agent(담당자)" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("agentName")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "agentName", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="입력가능"
- maxLength={50}
- />
- )
- },
- size: 120,
- },
- {
- accessorKey: "agentEmail",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="Agent(E-mail)" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("agentEmail")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "agentEmail", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="입력가능"
- maxLength={100}
- />
- )
- },
- size: 140,
- },
- {
- accessorKey: "agentPhone",
- header: ({ column }) => (
- <DataTableColumnHeaderSimple column={column} title="Agent(Phone)" />
- ),
- cell: ({ row, table }) => {
- const value = row.getValue("agentPhone")
- const onSave = async (newValue: any) => {
- if (table.options.meta?.onCellUpdate) {
- await table.options.meta.onCellUpdate(row.original.id, "agentPhone", newValue)
- }
- }
-
- return (
- <EditableCell
- value={value}
- type="text"
- onSave={onSave}
- placeholder="입력가능"
- maxLength={20}
- />
- )
- },
- size: 120,
- },
{
accessorKey: "recentQuoteDate",
header: ({ column }) => (
@@ -1427,7 +678,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
</div>
)
},
- size: 120,
+ size: 200,
},
{
accessorKey: "recentQuoteNumber",
@@ -1442,7 +693,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
</div>
)
},
- size: 130,
+ size: 200,
},
{
accessorKey: "recentOrderDate",
@@ -1457,7 +708,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
</div>
)
},
- size: 120,
+ size: 150,
},
{
accessorKey: "recentOrderNumber",
@@ -1472,14 +723,14 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
</div>
)
},
- size: 130,
+ size: 200,
},
{
accessorKey: "registrationDate",
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="등록일" />
),
- size: 120,
+ size: 150,
},
{
accessorKey: "registrant",
@@ -1490,14 +741,14 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
const value = row.getValue("registrant") as string
return <div className="text-sm">{value || ""}</div>
},
- size: 100,
+ size: 150,
},
{
accessorKey: "lastModifiedDate",
header: ({ column }) => (
<DataTableColumnHeaderSimple column={column} title="최종변경일" />
),
- size: 120,
+ size: 150,
},
{
accessorKey: "lastModifier",
@@ -1508,7 +759,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
const value = row.getValue("lastModifier") as string
return <div className="text-sm">{value || ""}</div>
},
- size: 120,
+ size: 150,
},
// 액션 그룹
{
@@ -1530,7 +781,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
onSaveEmptyRow?.(data.id)
}}
title="저장"
- className="bg-green-600 hover:bg-green-700"
+ className="bg-green-600 hover:bg-green-700 whitespace-normal h-auto"
>
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M5 13l4 4L19 7" />
@@ -1544,7 +795,7 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
onCancelEmptyRow?.(data.id)
}}
title="취소"
- className="border-red-300 text-red-600 hover:bg-red-50"
+ className="border-red-300 text-red-600 hover:bg-red-50 whitespace-normal h-auto"
>
<svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12" />
@@ -1574,6 +825,6 @@ export const columns: ColumnDef<VendorPoolItem>[] = [
size: 120,
enableSorting: false,
enableHiding: false,
+ enableColumnFilter: false,
},
]
-