diff --git a/components.d.ts b/components.d.ts index 9ce08d3..bc7634c 100644 --- a/components.d.ts +++ b/components.d.ts @@ -28,12 +28,15 @@ declare module 'vue' { ListComponent: typeof import('./src/components/home/ListComponent.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SidebarHeader: typeof import('./src/components/common/SidebarHeader.vue')['default'] StapComfigDialog: typeof import('./src/components/atoms/organisms/StapComfigDialog.vue')['default'] + StepComfigDialog: typeof import('./src/components/atoms/organisms/StepComfigDialog.vue')['default'] TrainingScriptBaseDoalog: typeof import('./src/components/atoms/organisms/TrainingScriptBaseDoalog.vue')['default'] ViewComponent: typeof import('./src/components/templates/Datasets/ViewComponent.vue')['default'] WorkflowDialog: typeof import('./src/components/atoms/organisms/WorkflowDialog.vue')['default'] WorkflowsBaseDialog: typeof import('./src/components/atoms/organisms/WorkflowsBaseDialog.vue')['default'] WorkflowsCreateDialog: typeof import('./src/components/atoms/organisms/WorkflowsCreateDialog.vue')['default'] WorkflowsUploadDialog: typeof import('./src/components/atoms/organisms/WorkflowsUploadDialog.vue')['default'] + WorklfowStepBaseDialog: typeof import('./src/components/atoms/organisms/WorklfowStepBaseDialog.vue')['default'] } } diff --git a/src/components/atoms/organisms/StapComfigDialog.vue b/src/components/atoms/organisms/StapComfigDialog.vue deleted file mode 100644 index 0f9e8ef..0000000 --- a/src/components/atoms/organisms/StapComfigDialog.vue +++ /dev/null @@ -1,99 +0,0 @@ - - - diff --git a/src/components/atoms/organisms/WorkflowsBaseDialog.vue b/src/components/atoms/organisms/WorkflowsBaseDialog.vue index 0ab00e2..2b4c3c3 100644 --- a/src/components/atoms/organisms/WorkflowsBaseDialog.vue +++ b/src/components/atoms/organisms/WorkflowsBaseDialog.vue @@ -4,9 +4,9 @@ import IconArrowUp from "@/components/atoms/button/IconArrowUp.vue"; import IconDeleteBtn from "@/components/atoms/button/IconDeleteBtn.vue"; import IconModifyBtn from "@/components/atoms/button/IconModifyBtn.vue"; import { computed, onBeforeUnmount, onMounted, watch, ref } from "vue"; -import { AutoflowService } from "@/components/service/management/AutoflowService"; +import { WorkflowService } from "@/components/service/management/workflowService"; import { storage } from "@/utils/storage"; -import type { Workflow } from "@/components/models/management/Autoflow"; +import type { Workflow } from "@/components/models/management/Workflow"; import { storeToRefs } from "pinia"; import { useAutoflowStore } from "@/stores/autoflowStore"; @@ -122,12 +122,12 @@ async function submit() { return; } - const { data } = await AutoflowService.update(id, payload); + const { data } = await WorkflowService.update(id, payload); emit("saved", data); emit("close-modal"); } else { // 생성 - const { data } = await AutoflowService.add(payload); + const { data } = await WorkflowService.add(payload); emit("saved", data); emit("close-modal"); } diff --git a/src/components/atoms/organisms/WorklfowStepBaseDialog.vue b/src/components/atoms/organisms/WorklfowStepBaseDialog.vue new file mode 100644 index 0000000..ea509cd --- /dev/null +++ b/src/components/atoms/organisms/WorklfowStepBaseDialog.vue @@ -0,0 +1,207 @@ + + + diff --git a/src/components/common/DrawerComponent.vue b/src/components/common/DrawerComponent.vue index 4d5ed09..c026f39 100644 --- a/src/components/common/DrawerComponent.vue +++ b/src/components/common/DrawerComponent.vue @@ -3,16 +3,21 @@ import { ref, onMounted, computed } from "vue"; import { useRoute, useRouter } from "vue-router"; import { menuUtils } from "@/utils/menuUtils"; import { storage } from "@/utils/storage"; -import logo from "@/assets/iteration (1).png"; +import SidebarHeader from "@/components/common/SidebarHeader.vue"; const route = useRoute(); const router = useRouter(); +const isAdminRoute = computed(() => + route.matched.some((r) => r.meta?.requiresAdmin), +); +const menuItems = computed(() => + isAdminRoute.value ? menuUtils.adminMenuItem : menuUtils.menuItem, +); const isShowAuth = ref(false); function readRolesFromStorage(): string[] { try { - // storage.get(...) 이 문자열일 수도, 객체일 수도 있어서 분기 const raw = storage.get?.("autoflow-auth") ?? localStorage.getItem("autoflow-auth") ?? @@ -20,8 +25,6 @@ function readRolesFromStorage(): string[] { const auth = typeof raw === "string" ? JSON.parse(raw) : raw; let roles = auth?.userInfo?.roles ?? auth?.roles ?? []; - - // "ROLE_USER,ROLE_ADMIN" 처럼 문자열로 오는 경우 if (typeof roles === "string") { roles = roles.split(",").map((s: string) => s.trim()); } @@ -33,7 +36,6 @@ function readRolesFromStorage(): string[] { } } -// ADMIN 인지 계산 (ROLE_ADMIN 또는 ADMIN 둘 다 허용) const isAdmin = computed(() => { const roles = readRolesFromStorage(); return roles.some((r) => r === "ROLE_ADMIN" || r === "ADMIN"); @@ -43,10 +45,6 @@ const isLinkActive = (link) => { return route.path.includes(link); }; -const goMain = () => { - router.push("/home"); -}; - onMounted(() => { isShowAuth.value = true; //storage.getAuth().auth === "ADMIN"; @@ -55,19 +53,6 @@ onMounted(() => {