류윤주 류윤주 06-30
250630 류윤주 수정
@606d0d825092b28af95cddf7cbcea2342029dddb
client/resources/scss/admin/content.scss
--- client/resources/scss/admin/content.scss
+++ client/resources/scss/admin/content.scss
@@ -356,6 +356,13 @@
             }
         }
 
+        .palette-picker{
+            position: absolute;
+            top: 50%;
+            right: 5rem;
+
+        }
+
     }
 
     &.feedback-detail-zone{
@@ -691,3 +698,15 @@
 
 
 }
+
+.custom-modal{
+    position: absolute;
+    top: 185%;
+    left: 50%;
+    transform: translateX(-50%);
+    width: 200px;
+    height: auto;
+    z-index: 10;
+    background-color: #ffffff;
+    border-radius: 2rem;
+}
client/views/pages/subPage/Modeling.vue
--- client/views/pages/subPage/Modeling.vue
+++ client/views/pages/subPage/Modeling.vue
@@ -77,11 +77,18 @@
                             v-for="tool in subTolls.slice(-4)"
                             :key="tool.id"
                             :class="{ active: activeToolId === tool.id && !activeSubToolId }"
-                        >
-                            <button :title="tool.title" @click="toggleTool(tool)">
+                            style="position: relative;">
+                            <button :title="tool.title" @click="toggleTool(tool)" >
                                 <img :src="tool.icon" :alt="tool.title + ' 아이콘'" style="vertical-align: middle;"/>
                             </button>
+                            <div v-if="activeModalTool?.id === tool.id" class="custom-modal">
+                                <div class="modal-content">
+                                    <p>{{ activeModalTool.title }}</p>
+                                    <button @click="closeModal">닫기</button>
+                                </div>
+                            </div>
                         </li>
+                        
                     </ul>
                 </div>
                 <div class="bottom-zone"></div>
@@ -92,6 +99,7 @@
                         <li
                             v-for="tool in tools"
                             :key="tool.id"
+                              :data-tool-id="tool.id"
                             :class="{ active: activeToolId === tool.id }"
                             style="position: relative;">
                             <button
@@ -101,7 +109,7 @@
                                 <img :src="getToolIcon(tool)" :alt="tool.title + ' 아이콘'" />
                                 <input
                                         type="color"
-                                        ref="colorInput"
+                                        :ref="'colorInput_' + tool.id"
                                         v-model="selectedColor"
                                         @input.stop
                                         v-if="tool.type === 'palette' && openedToolId === tool.id" class="palette-picker"
@@ -284,11 +292,13 @@
                     id: 400,
                     icon: require('../../../resources/img/content/ico_user_w.svg'),
                     title: '참여자',
+                     type: 'modal'
                 },
                                 {
                     id: 500,
                     icon: require('../../../resources/img/content/ico_comment_w.svg'),
                     title: '코멘트',
+                     type: 'modal'
                 },
                                 {
                     id: 600,
@@ -304,7 +314,8 @@
             activeToolId: 1,
             activeSubToolId: null,
             openedToolId: null,
-            selectedColor: '#000000'
+            selectedColor: '#000000',
+            activeModalTool : false
         };
     },
     methods: {
@@ -322,22 +333,27 @@
         this.zoom = Number(event.target.value)
         },
         toggleTool(tool) {
-            this.activeToolId = tool.id; // 항상 설정
+            if (tool.type === 'modal') {
+                this.openModal(tool);
+                return;
+            }
+
+            // 기존 도구(tool) 처리 로직
+            this.activeToolId = tool.id;
 
             if (tool.children && tool.children.length) {
                 this.openedToolId = this.openedToolId === tool.id ? null : tool.id;
-                // 서브도구를 연 경우에는 subTool 선택 초기화
                 this.activeSubToolId = null;
             } else {
                 this.activeSubToolId = null;
                 this.openedToolId = tool.id;
+            }
 
-                // 팔레트 도구일 경우 input을 강제 클릭
-                if (tool.type === 'palette') {
-                    this.$nextTick(() => {
-                        this.$refs.colorInput?.click();
-                    });
-                }
+            if (tool.type === 'palette') {
+                this.$nextTick(() => {
+                     console.log('colorInput ref:', this.$refs.colorInput);
+                    this.$refs.colorInput?.click();
+                });
             }
         },
         selectSubTool(tool, child) {
@@ -345,6 +361,12 @@
             this.activeSubToolId = child.id;
             this.openedToolId = tool.id;
         },
+        openModal(tool) {
+            this.activeModalTool = tool; // or tool.id
+        },
+        closeModal() {
+            this.activeModalTool = null;
+        },
     },
     watch: {},
     computed: {
Add a comment
List