diff --git a/components.d.ts b/components.d.ts index 032d8a5..e769ff9 100644 --- a/components.d.ts +++ b/components.d.ts @@ -17,10 +17,11 @@ declare module 'vue' { IconDownloadBtn: typeof import('./src/components/button/IconDownloadBtn.vue')['default'] IconInfoBtn: typeof import('./src/components/button/IconInfoBtn.vue')['default'] IconModifyBtn: typeof import('./src/components/button/IconModifyBtn.vue')['default'] + IconSettingBtn: typeof import('./src/components/button/IconSettingBtn.vue')['default'] LayoutComponent: typeof import('./src/components/common/LayoutComponent.vue')['default'] ListComponent: typeof import('./src/components/home/ListComponent.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] - ViewComponent: typeof import('./src/components/run/experiment/ViewComponent.vue')['default'] + ViewComponent: typeof import('./src/components/run/executions/ViewComponent.vue')['default'] } } diff --git a/package-lock.json b/package-lock.json index ff10a4f..4919381 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@fontsource/roboto": "5.2.5", "@mdi/font": "7.4.47", + "monaco-editor": "^0.52.2", "plotly.js-dist-min": "^3.0.1", "prettier": "^3.5.3", "vue": "^3.5.13", @@ -4166,6 +4167,12 @@ "pathe": "^2.0.1" } }, + "node_modules/monaco-editor": { + "version": "0.52.2", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz", + "integrity": "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", diff --git a/package.json b/package.json index 9507b67..9fd5be0 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "@fontsource/roboto": "5.2.5", "@mdi/font": "7.4.47", + "monaco-editor": "^0.52.2", "plotly.js-dist-min": "^3.0.1", "prettier": "^3.5.3", "vue": "^3.5.13", diff --git a/src/components/button/IconSettingBtn.vue b/src/components/button/IconSettingBtn.vue new file mode 100644 index 0000000..858592f --- /dev/null +++ b/src/components/button/IconSettingBtn.vue @@ -0,0 +1,27 @@ + + + diff --git a/src/components/run/excutions/ListComponent.vue b/src/components/run/executions/ListComponent.vue similarity index 53% rename from src/components/run/excutions/ListComponent.vue rename to src/components/run/executions/ListComponent.vue index 2bbce78..c0702d1 100644 --- a/src/components/run/excutions/ListComponent.vue +++ b/src/components/run/executions/ListComponent.vue @@ -3,9 +3,10 @@ import IconDeleteBtn from "@/components/button/IconDeleteBtn.vue"; import { onMounted, ref, watch } from "vue"; import FormComponent from "../experiment/FormComponent.vue"; import IconDownloadBtn from "@/components/button/IconDownloadBtn.vue"; - +import ViewComponent from "@/components/run/executions/ViewComponent.vue"; // const store = commonStore(); +const openView = ref(false); const tableHeader = [ { label: "No", width: "5%", style: "word-break: keep-all;" }, { label: "Execution Name", width: "20%", style: "word-break: keep-all;" }, @@ -273,8 +274,9 @@ const changePageNum = (page) => { getData(); }; -const openInfoModal = (selectedItem) => { +const openInfoModal = () => { data.value.modalMode = "info"; + openView.value = true; }; const openModifyModal = (selectedItem) => { data.value.selectedData = selectedItem; @@ -285,7 +287,10 @@ const openDownloadModal = () => { data.value.selectedData = null; data.value.modalMode = "download"; }; - +const closeDetail = () => { + openView.value = false; + selectedExperiment.value = null; +}; const closeModal = () => { data.value.isModalVisible = false; data.value.selectedData = null; @@ -308,7 +313,8 @@ onMounted(() => { diff --git a/src/components/run/executions/ViewComponent.vue b/src/components/run/executions/ViewComponent.vue new file mode 100644 index 0000000..1cf10d3 --- /dev/null +++ b/src/components/run/executions/ViewComponent.vue @@ -0,0 +1,372 @@ + + + + + diff --git a/src/components/run/experiment/ListComponent.vue b/src/components/run/experiment/ListComponent.vue index 39a0807..7eed1b7 100644 --- a/src/components/run/experiment/ListComponent.vue +++ b/src/components/run/experiment/ListComponent.vue @@ -7,7 +7,7 @@ import ViewComponent from "@/components/run/experiment/ViewComponent.vue"; // const store = commonStore(); const detailDialog = ref(false); -const viewComponent = ref(false); +const openView = ref(false); const selectedExperiment = ref<{ name: string; description: string; @@ -260,10 +260,10 @@ const openDetail = (item: { createdID: string; }) => { selectedExperiment.value = item; - viewComponent.value = true; + openView.value = true; }; const closeDetail = () => { - viewComponent.value = false; + openView.value = false; selectedExperiment.value = null; }; const openCreateModal = () => { @@ -294,23 +294,7 @@ onMounted(() => {