summaryrefslogtreecommitdiff
path: root/components/form-data
diff options
context:
space:
mode:
Diffstat (limited to 'components/form-data')
-rw-r--r--components/form-data/form-data-table.tsx6
-rw-r--r--components/form-data/spreadJS-dialog.tsx63
2 files changed, 66 insertions, 3 deletions
diff --git a/components/form-data/form-data-table.tsx b/components/form-data/form-data-table.tsx
index 591ba66a..3d8b1438 100644
--- a/components/form-data/form-data-table.tsx
+++ b/components/form-data/form-data-table.tsx
@@ -1,7 +1,7 @@
"use client";
import * as React from "react";
-import { useParams, useRouter } from "next/navigation";
+import { useParams, useRouter, usePathname } from "next/navigation";
import { useTranslation } from "@/i18n/client";
import { ClientDataTable } from "../client-data-table/data-table";
@@ -99,6 +99,7 @@ export default function DynamicTable({
const router = useRouter();
const lng = (params?.lng as string) || "ko";
const { t } = useTranslation(lng, "engineering");
+ const pathname = usePathname();
const [rowAction, setRowAction] =
React.useState<DataTableRowAction<GenericData> | null>(null);
@@ -114,6 +115,7 @@ export default function DynamicTable({
const [formStats, setFormStats] = React.useState<FormStatusByVendor | null>(null);
const [isLoadingStats, setIsLoadingStats] = React.useState(true);
+ const isEVCPPath = pathname.includes('evcp');
React.useEffect(() => {
const fetchFormStats = async () => {
@@ -672,6 +674,7 @@ export default function DynamicTable({
return (
<>
+ {!isEVCPPath && (
<div className="mb-6">
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-6">
{/* Tag Count */}
@@ -807,6 +810,7 @@ export default function DynamicTable({
</Card>
</div>
</div>
+ )}
<ClientDataTable
data={tableData}
diff --git a/components/form-data/spreadJS-dialog.tsx b/components/form-data/spreadJS-dialog.tsx
index 91d5672c..af1a3dca 100644
--- a/components/form-data/spreadJS-dialog.tsx
+++ b/components/form-data/spreadJS-dialog.tsx
@@ -197,7 +197,38 @@ export function TemplateViewDialog({
}, []);
React.useEffect(() => {
- if (!templateData) return;
+ // 템플릿 데이터가 없거나 빈 배열인 경우 기본 GRD_LIST 템플릿 생성
+ if (!templateData || (Array.isArray(templateData) && templateData.length === 0)) {
+ // columnsJSON이 있으면 기본 GRD_LIST 템플릿 생성
+ if (columnsJSON && columnsJSON.length > 0) {
+ const defaultGrdTemplate: TemplateItem = {
+ TMPL_ID: 'DEFAULT_GRD_LIST',
+ NAME: 'Default Grid View',
+ TMPL_TYPE: 'GRD_LIST',
+ SPR_LST_SETUP: {
+ ACT_SHEET: '',
+ HIDN_SHEETS: [],
+ DATA_SHEETS: []
+ },
+ GRD_LST_SETUP: {
+ REG_TYPE_ID: 'DEFAULT',
+ SPR_ITM_IDS: [],
+ ATTS: []
+ },
+ SPR_ITM_LST_SETUP: {
+ ACT_SHEET: '',
+ HIDN_SHEETS: [],
+ DATA_SHEETS: []
+ }
+ };
+
+ setAvailableTemplates([defaultGrdTemplate]);
+ setSelectedTemplateId('DEFAULT_GRD_LIST');
+ setTemplateType('GRD_LIST');
+ console.log('📋 Created default GRD_LIST template');
+ }
+ return;
+ }
let templates: TemplateItem[];
if (Array.isArray(templateData)) {
@@ -207,6 +238,34 @@ export function TemplateViewDialog({
}
const validTemplates = templates.filter(isValidTemplate);
+
+ // 유효한 템플릿이 없지만 columnsJSON이 있으면 기본 GRD_LIST 추가
+ if (validTemplates.length === 0 && columnsJSON && columnsJSON.length > 0) {
+ const defaultGrdTemplate: TemplateItem = {
+ TMPL_ID: 'DEFAULT_GRD_LIST',
+ NAME: 'Default Grid View',
+ TMPL_TYPE: 'GRD_LIST',
+ SPR_LST_SETUP: {
+ ACT_SHEET: '',
+ HIDN_SHEETS: [],
+ DATA_SHEETS: []
+ },
+ GRD_LST_SETUP: {
+ REG_TYPE_ID: 'DEFAULT',
+ SPR_ITM_IDS: [],
+ ATTS: []
+ },
+ SPR_ITM_LST_SETUP: {
+ ACT_SHEET: '',
+ HIDN_SHEETS: [],
+ DATA_SHEETS: []
+ }
+ };
+
+ validTemplates.push(defaultGrdTemplate);
+ console.log('📋 Added default GRD_LIST template to empty template list');
+ }
+
setAvailableTemplates(validTemplates);
if (validTemplates.length > 0 && !selectedTemplateId) {
@@ -215,7 +274,7 @@ export function TemplateViewDialog({
setSelectedTemplateId(firstTemplate.TMPL_ID);
setTemplateType(templateTypeToSet);
}
- }, [templateData, selectedTemplateId, isValidTemplate, determineTemplateType]);
+ }, [templateData, selectedTemplateId, isValidTemplate, determineTemplateType, columnsJSON]);
const handleTemplateChange = (templateId: string) => {
const template = availableTemplates.find(t => t.TMPL_ID === templateId);