하석형 하석형 05-30
250530 하석형 @mdi 전역에서 호출
@e370d603d8471a98f5034aecdff601ac00c3e7c0
client/resources/js/common.js
--- client/resources/js/common.js
+++ client/resources/js/common.js
@@ -1,35 +1,38 @@
 // commonUtils.js
 import {
-  mdiCalendarBlank,
   mdiArrowRight,
-  mdiTable,
-  mdiPlay,
-  mdiKeyVariant,
-  mdiTrashCan,
   mdiMagnify,
+  mdiChevronRight,
+  mdiChevronDown,
+  mdiPin,
+  mdiLock,
+  mdiClose,
+  mdiDrag,
+  mdiAccountKey,
+  mdiRefresh,
+  mdiDownload,
+  mdiArrowRightDropCircleOutline
 } from "@mdi/js";
+
+const iconMap = {
+  mdiArrowRight,
+  mdiMagnify,
+  mdiChevronRight,
+  mdiChevronDown,
+  mdiPin,
+  mdiLock,
+  mdiClose,
+  mdiDrag,
+  mdiAccountKey,
+  mdiRefresh,
+  mdiDownload,
+  mdiArrowRightDropCircleOutline
+};
 
 export default {
   install(Vue) {
     Vue.config.globalProperties.$iconPath = function (icon) {
-      if (icon == null) {
-        icon = "mdiMagnify";
-      }
-      if (icon === "mdiCalendarBlank") {
-        return mdiCalendarBlank;
-      } else if (icon === "mdiArrowRight") {
-        return mdiArrowRight;
-      } else if (icon === "mdiTable") {
-        return mdiTable;
-      } else if (icon === "mdiPlay") {
-        return mdiPlay;
-      } else if (icon === "mdiKeyVariant") {
-        return mdiKeyVariant;
-      } else if (icon === "mdiTrashCan") {
-        return mdiTrashCan;
-      } else {
-        return mdiMagnify;
-      }
+      return iconMap[icon] || iconMap["mdiMagnify"];
     };
   },
-};
+};
(파일 끝에 줄바꿈 문자 없음)
client/resources/js/defaultFileSystem.js
--- client/resources/js/defaultFileSystem.js
+++ client/resources/js/defaultFileSystem.js
@@ -1,10 +1,6 @@
-import { mdiClose } from "@mdi/js";
-
 export default {
   data() {
     return {
-      path: mdiClose,
-
       viewFiles: null,
 
       fileList: [],
client/views/component/ckeditor5/ckeditorComponent.vue
--- client/views/component/ckeditor5/ckeditorComponent.vue
+++ client/views/component/ckeditor5/ckeditorComponent.vue
@@ -2,7 +2,6 @@
     <textarea name="editor5" id="editor5" style="width:50%" ref="editorContainer"></textarea>
 </template>
 <script>
-import { mdiBorderColor } from '@mdi/js';
 import UploadAdapter from './UploadAdapter.js'
     export default{
         props: {
client/views/component/hierachy/Hierachy.vue
--- client/views/component/hierachy/Hierachy.vue
+++ client/views/component/hierachy/Hierachy.vue
@@ -24,7 +24,6 @@
 </template>
 
 <script>
-import { mdiChevronRight, mdiChevronDown } from "@mdi/js";
 export default {
   name: "Hierachy",
   props: {
@@ -50,7 +49,7 @@
       this.$emit("changeSelected", node);
     },
     iconPath() {
-      return this.isOpen ? mdiChevronDown : mdiChevronRight;
+      return this.isOpen ? this.$iconPath("mdiChevronDown") : this.$iconPath("mdiChevronRight");
     },
     findByChildNode(node) {
       this.$emit("changeSelected", node);
client/views/component/hierachy/HierachyDraggable.vue
--- client/views/component/hierachy/HierachyDraggable.vue
+++ client/views/component/hierachy/HierachyDraggable.vue
@@ -45,7 +45,6 @@
 
 <script>
 import draggable from "vuedraggable";
-import { mdiChevronRight, mdiChevronDown, mdiDrag } from "@mdi/js";
 
 export default {
   name: "Hierachy",
@@ -72,10 +71,10 @@
       this.$emit("changeSelected", node);
     },
     iconPath() {
-      return this.isOpen ? mdiChevronDown : mdiChevronRight;
+      return this.isOpen ? this.$iconPath("mdiChevronDown") : this.$iconPath("mdiChevronRight");
     },
     iconDrag() {
-      return mdiDrag;
+      return this.$iconPath("mdiDrag");
     },
     findByChildNode(node) {
       this.$emit("changeSelected", node);
client/views/component/table/ListTable.vue
--- client/views/component/table/ListTable.vue
+++ client/views/component/table/ListTable.vue
@@ -47,7 +47,6 @@
 </template>
 
 <script>
-import { mdiPin,mdiLock  } from '@mdi/js';
 export default {
   props: {
     colgroup: {
@@ -81,8 +80,8 @@
   },
   data() {
     return {
-      pinPath: mdiPin,
-      lockPath: mdiLock,
+      // pinPath: mdiPin,
+      // lockPath: mdiLock,
     };
   },
   methods: {
@@ -94,7 +93,14 @@
     },
   },
   watch: {},
-  computed: {},
+  computed: {
+    pinPath() {
+      return this.$iconPath('mdiPin');
+    },
+    lockPath() {
+      return this.$iconPath('mdiLock');
+    }
+  },
   components: {},
   mounted() {},
 };
client/views/component/userInfo/UserAuthorList.vue
--- client/views/component/userInfo/UserAuthorList.vue
+++ client/views/component/userInfo/UserAuthorList.vue
@@ -17,7 +17,6 @@
                 class="btn-ico sm ico-close"
                 @click="fnAuthDelete(index)"
               >
-                <!-- <svg-icon type="mdi" :width="15" :height="15" :path="path"></svg-icon> -->
               </button>
             </div>
           </div>
@@ -82,7 +81,6 @@
 </template>
 
 <script>
-import { mdiClose } from "@mdi/js";
 
 // COMPONENT
 import Modal from "../modal/Modal.vue";
@@ -103,8 +101,6 @@
   },
   data() {
     return {
-      path: mdiClose,
-
       pageRole: this.$store.state.userType, // 유저 권한
 
       isOpen: false,
client/views/index.js
--- client/views/index.js
+++ client/views/index.js
@@ -8,7 +8,7 @@
 // import AppRouter from "./pages/AppRouter.js";
 import createAppRouter from "./pages/AppRouter.js";
 import App from "./pages/App.vue";
-import Store from "./pages/AppStore.js";
+import store from "./pages/AppStore.js";
 import COMMON_UTIL from "../resources/js/common.js";
 import filters from './common/filters.js';
 import cmmnPlugin from './common/commonPlugin.js';
@@ -22,13 +22,13 @@
 async function initVueApp() {
   const savedLoginMode = localStorage.getItem("loginMode");
   if (savedLoginMode) {
-    Store.commit("setLoginMode", savedLoginMode);
+    store.commit("setLoginMode", savedLoginMode);
   }
 
   const router = await createAppRouter()
   const vue = createApp(App)
     .use(router)
-    .use(Store)
+    .use(store)
     .use(VueDaumPostcode)
     .use(COMMON_UTIL)
     .use(cmmnPlugin)
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -28,7 +28,6 @@
 import { findAll, accessCheck } from "../../resources/api/router";
 import { getCntxtPth } from "../../resources/api/cntxtPth";
 import { save } from "../../resources/api/cntnStats";
-import { mdiConsoleLine } from "@mdi/js";
 
 // Context Path 정보 호출
 async function getContextPath() {
client/views/pages/adm/authority/menuAuthority/MenuAuthority.vue
--- client/views/pages/adm/authority/menuAuthority/MenuAuthority.vue
+++ client/views/pages/adm/authority/menuAuthority/MenuAuthority.vue
@@ -101,7 +101,6 @@
 
 <script>
 import Hierachy from "../../../../component/hierachy/Hierachy.vue";
-import { mdiAccountKey } from "@mdi/js";
 
 // api
 import { findAllSystem } from "../../../../../resources/api/author.js"; // 권한
@@ -119,7 +118,6 @@
       // 페이지 권한 객체
  //     pageAuth: JSON.parse(localStorage.getItem("vuex")).pageAuth,
 
-      iconPath: mdiAccountKey,
       authorList: [], // 권한 목록
       selectedAuthrtCd: null, // 선택된 메뉴
       menuList: [], // 메뉴 목록
@@ -222,7 +220,11 @@
     },
   },
   watch: {},
-  computed: {},
+  computed: {
+    iconPath() {
+      return this.$iconPath('mdiAccountKey');
+    },
+  },
   components: {
     Hierachy: Hierachy,
   },
client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert copy.vue
--- client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert copy.vue
+++ client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert copy.vue
@@ -253,7 +253,6 @@
 </template>
 
 <script>
-import { mdiClose } from "@mdi/js";
 import { findByBbsCn } from "../../../../../../resources/api/bbsCn.js";
 import queryParams from "../../../../../../resources/js/queryParams";
 import defaultAxios from "../../../../../../resources/js/defaultAxios";
@@ -265,7 +264,6 @@
   data() {
     return {
       file: null,
-      iconPath: mdiClose,
       pageRole: this.$store.state.userType,
       path: this.$store.state.path,
       pageAuth: this.$store.state.pageAuth,
@@ -646,7 +644,11 @@
       }
     },
   },
-  computed: {},
+  computed: {
+    iconPath() {
+      return this.$iconPath("mdiClose");
+    },
+  },
   components: {
     ckeditorComponent,
   },
client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert.vue
--- client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert.vue
+++ client/views/pages/adm/boardManagement/template/commonTemplate/CommonInsert.vue
@@ -184,7 +184,6 @@
 </template>
 
 <script>
-import { mdiClose } from "@mdi/js";
 import { findByBbsCn } from "../../../../../../resources/api/bbsCn.js";
 import queryParams from "../../../../../../resources/js/queryParams";
 import defaultAxios from "../../../../../../resources/js/defaultAxios";
@@ -196,7 +195,6 @@
   data() {
     return {
       file: null,
-      iconPath: mdiClose,
       pageRole: this.$store.state.userType,
       path: this.$store.state.path,
       pageAuth: this.$store.state.pageAuth,
@@ -654,7 +652,11 @@
       deep: true,
     },
   },
-  computed: {},
+  computed: {
+    iconPath() {
+      return this.$iconPath("mdiClose");
+    },
+  },
   components: {
     ckeditorComponent,
   },
client/views/pages/adm/boardManagement/template/commonTemplate/CommonSelectList.vue
--- client/views/pages/adm/boardManagement/template/commonTemplate/CommonSelectList.vue
+++ client/views/pages/adm/boardManagement/template/commonTemplate/CommonSelectList.vue
@@ -139,7 +139,6 @@
 import { toRaw } from "vue";
 import queryParams from "../../../../../../resources/js/queryParams.js";
 import { defaultSearchParams } from "../../../../../../resources/js/defaultSearchParams.js";
-import { mdiRefresh } from "@mdi/js";
 
 export default {
   mixins: [queryParams],
@@ -170,7 +169,6 @@
       bbsMng: {}, // 게시판 관리
       lockList: [],
       ntcList: [],
-      refreshPath: mdiRefresh,
     };
   },
   created() {
@@ -309,7 +307,11 @@
       // }
     },
   },
-  computed: {},
+  computed: {
+    refreshPath() {
+      return this.$iconPath("mdiRefresh");
+    },
+  },
   mounted() {},
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/adm/boardManagement/template/commonTemplate/CommonSelectListOne.vue
--- client/views/pages/adm/boardManagement/template/commonTemplate/CommonSelectListOne.vue
+++ client/views/pages/adm/boardManagement/template/commonTemplate/CommonSelectListOne.vue
@@ -270,7 +270,6 @@
 } from "../../../../../../resources/api/cmnt.js";
 import queryParams from "../../../../../../resources/js/queryParams.js";
 import CommentItem from "../../../../../component/comment/CommentItem.vue";
-import { mdiDownload } from "@mdi/js";
 import DOMPurify from "dompurify";
 import "../../../../../component/ckeditor5/ckeditor.css";
 
@@ -290,8 +289,6 @@
       wrtrNm: "",
       pageId: "",
       fileList: {},
-
-      downloadFilePath: mdiDownload,
 
       // 이전글 다음글
       prevBbsCn: {},
@@ -559,6 +556,9 @@
         ADD_ATTR: ["url"],
       });
     },
+    downloadFilePath() {
+      return this.$iconPath("mdiDownload");
+    },
   },
   components: {
     CommentItem: CommentItem,
client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
--- client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
+++ client/views/pages/adm/boardManagement/template/faqTemplate/FaqInsert.vue
@@ -163,7 +163,6 @@
 </template>
 
 <script>
-import { mdiClose } from "@mdi/js";
 import { findByBbsCn, fnqSave } from "../../../../../../resources/api/bbsCn.js";
 import queryParams from "../../../../../../resources/js/queryParams";
 import defaultAxios from "../../../../../../resources/js/defaultAxios";
@@ -172,7 +171,6 @@
   mixins: [queryParams],
   data() {
     return {
-      iconPath: mdiClose,
       pageRole: this.$store.state.userType,
       path: this.$store.state.path,
       pageAuth: this.$store.state.pageAuth,
client/views/pages/adm/boardManagement/template/faqTemplate/FaqSelectList.vue
--- client/views/pages/adm/boardManagement/template/faqTemplate/FaqSelectList.vue
+++ client/views/pages/adm/boardManagement/template/faqTemplate/FaqSelectList.vue
@@ -381,7 +381,6 @@
 </template>
 
 <script>
-import { mdiLock  } from '@mdi/js';
 import PaginationButton from "../../../../../component/pagination/PaginationButton.vue";
 import {
   findAll,
@@ -391,13 +390,11 @@
 import { toRaw } from "vue";
 import queryParams from "../../../../../../resources/js/queryParams";
 import { defaultSearchParams } from "../../../../../../resources/js/defaultSearchParams";
-import { mdiRefresh } from "@mdi/js";
 
 export default {
   mixins: [queryParams],
   data() {
     return {
-      lockPath: mdiLock,
       pageRole: this.$store.state.userType,
       path: this.$store.state.path,
       pageAuth: this.$store.state.pageAuth,
@@ -416,7 +413,6 @@
       ], // 검색 조건
       bbsMng: {}, // 게시판 관리
       isOpen: null, //답변 토글
-      refreshPath: mdiRefresh,
     };
   },
   created() {
@@ -557,7 +553,14 @@
       // }
     },
   },
-  computed: {},
+  computed: {
+    refreshPath() {
+      return this.$iconPath('mdiRefresh');
+    },
+    lockPath() {
+      return this.$iconPath('mdiLock');
+    }
+  },
   components: {
     PaginationButton: PaginationButton,
   },
client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
--- client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
+++ client/views/pages/adm/boardManagement/template/galleryTemplate/GalleryInsert.vue
@@ -168,7 +168,6 @@
 </template>
 
 <script>
-import { mdiClose } from "@mdi/js";
 import { findByBbsCn } from "../../../../../../resources/api/bbsCn.js";
 import queryParams from "../../../../../../resources/js/queryParams";
 import defaultAxios from "../../../../../../resources/js/defaultAxios";
@@ -180,7 +179,6 @@
   data() {
     return {
       file: null,
-      iconPath: mdiClose,
       pageRole: this.$store.state.userType,
       path: this.$store.state.path,
       pageAuth: this.$store.state.pageAuth,
client/views/pages/adm/boardManagement/template/galleryTemplate/GallerySelectList.vue
--- client/views/pages/adm/boardManagement/template/galleryTemplate/GallerySelectList.vue
+++ client/views/pages/adm/boardManagement/template/galleryTemplate/GallerySelectList.vue
@@ -175,7 +175,6 @@
 import { toRaw } from 'vue'
 import queryParams from '../../../../../../resources/js/queryParams';
 import { defaultSearchParams } from '../../../../../../resources/js/defaultSearchParams';
-import { mdiPin, mdiLock,mdiRefresh } from '@mdi/js';
 export default {
     mixins: [queryParams],
     components: {
@@ -195,9 +194,6 @@
             bbsMngId: '', // 게시판 관리 아이디
             codeList: [{cd: 'bbsNm', cdNm: '제목'},{cd: 'bbsCn', cdNm: '내용'},{cd: 'mbrNm', cdNm: '작성자'}], // 검색 조건
             bbsMng: {}, // 게시판 관리
-            pinPath: mdiPin,
-            lockPath: mdiLock,
-            refreshPath: mdiRefresh
         }
     },
     created() {
@@ -280,7 +276,15 @@
 
     },
     computed: {
-
+        pinPath() {
+            return this.$iconPath('mdiPin');
+        },
+        lockPath() {
+            return this.$iconPath('mdiLock');
+        },
+        refreshPath() {
+            return this.$iconPath('mdiRefresh');
+        }
     },
     mounted() {
 
client/views/pages/adm/boardManagement/template/galleryTemplate/GallerySelectListOne.vue
--- client/views/pages/adm/boardManagement/template/galleryTemplate/GallerySelectListOne.vue
+++ client/views/pages/adm/boardManagement/template/galleryTemplate/GallerySelectListOne.vue
@@ -60,7 +60,6 @@
                     >
                       <p>{{ item.fileNm + "." + item.extnNm }}</p>
                       <button class="btn-ico sm ico-download" @click="downloadFile(item)"></button>
-                      <!-- <svg-icon type="mdi" :path="downloadFilePath"></svg-icon> -->
                     </li>
                   </ul>
                 </div>
@@ -162,7 +161,6 @@
 import CommentItem from "../../../../../component/comment/CommentItem.vue";
 import DOMPurify from "dompurify";
 import "../../../../../component/ckeditor5/ckeditor.css";
-import { mdiDownload } from "@mdi/js";
 import Swiper from 'swiper/bundle';
 
 export default {
@@ -181,8 +179,6 @@
       pageId: "",
       fileList: {},
       imgFileList: {},
-
-      downloadFilePath: mdiDownload,
 
       // 이전글 다음글
       prevBbsCn: {},
client/views/pages/adm/boardManagement/template/videoTemplate/VideoSelectList.vue
--- client/views/pages/adm/boardManagement/template/videoTemplate/VideoSelectList.vue
+++ client/views/pages/adm/boardManagement/template/videoTemplate/VideoSelectList.vue
@@ -128,7 +128,6 @@
 import { toRaw } from 'vue'
 import queryParams from '../../../../../../resources/js/queryParams';
 import { defaultSearchParams } from '../../../../../../resources/js/defaultSearchParams';
-import { mdiPin, mdiLock, mdiRefresh } from '@mdi/js';
 
 export default {
     mixins: [queryParams],
@@ -149,9 +148,6 @@
             bbsMngId: '', // 게시판 관리 아이디
             codeList: [{cd: 'bbsNm', cdNm: '제목'},{cd: 'bbsCn', cdNm: '내용'},{cd: 'mbrNm', cdNm: '작성자'}], // 검색 조건
             bbsMng: {}, // 게시판 관리
-            pinPath: mdiPin,
-            lockPath: mdiLock,
-            refreshPath: mdiRefresh
         }
     },
     created() {
@@ -239,7 +235,15 @@
         }
     },
     computed: {
-
+        pinPath() {
+            return this.$iconPath('mdiPin');
+        },
+        lockPath() {
+            return this.$iconPath('mdiLock');
+        },
+        refreshPath() {
+            return this.$iconPath('mdiRefresh');
+        }
     },
     mounted() {
         
client/views/pages/adm/boardManagement/template/videoTemplate/VideoSelectListOne.vue
--- client/views/pages/adm/boardManagement/template/videoTemplate/VideoSelectListOne.vue
+++ client/views/pages/adm/boardManagement/template/videoTemplate/VideoSelectListOne.vue
@@ -87,7 +87,6 @@
                   >
                     <p>{{ item.fileNm + "." + item.extnNm }}</p>
                     <button class="btn-ico sm ico-download"></button>
-                    <!-- <svg-icon type="mdi" :path="downloadFilePath"></svg-icon> -->
                   </li>
                 </ul>
               </td>
@@ -250,7 +249,6 @@
                     >
                       <p>{{ item.fileNm + "." + item.extnNm }}</p>
                       <button class="btn-ico sm ico-download" @click="downloadFile(item)"></button>
-                      <!-- <svg-icon type="mdi" :path="downloadFilePath"></svg-icon> -->
                     </li>
                   </ul>
                 </div>
@@ -345,7 +343,6 @@
 import CommentItem from "../../../../../component/comment/CommentItem.vue";
 import DOMPurify from "dompurify";
 import "../../../../../component/ckeditor5/ckeditor.css";
-import { mdiDownload } from "@mdi/js";
 export default {
   mixins: [queryParams],
   data() {
@@ -361,8 +358,6 @@
       wrtrNm: "",
       pageId: "",
       fileList: {},
-
-      downloadFilePath: mdiDownload,
 
       // 이전글 다음글
       prevBbsCn: {},
client/views/pages/adm/popup/PopupManagementInsert.vue
--- client/views/pages/adm/popup/PopupManagementInsert.vue
+++ client/views/pages/adm/popup/PopupManagementInsert.vue
@@ -125,12 +125,6 @@
                     </p>
                     <p v-else>{{ file.name }}</p>
                     <button class="icon-btn"  @click="fnFileDelete(file, index)">X
-                      <!-- <svg-icon
-                        type="mdi"
-                        :width="15"
-                        :height="15"
-                        :path="path"
-                      ></svg-icon> -->
                     </button>
                   </div>
                   <div v-if="fileList.length < 1">
@@ -240,7 +234,6 @@
 
 <script>
 import defaultAxios from "../../../../resources/js/defaultAxios";
-import { mdiClose } from "@mdi/js";
 
 // API
 import { detailProc } from "../../../../resources/api/popup";
@@ -248,8 +241,6 @@
 export default {
   data() {
     return {
-      path: mdiClose,
-
       file: null,
 
       // 팝업 객체
client/views/pages/adm/popup/PopupManagementSelectListOne.vue
--- client/views/pages/adm/popup/PopupManagementSelectListOne.vue
+++ client/views/pages/adm/popup/PopupManagementSelectListOne.vue
@@ -257,7 +257,6 @@
 </template>
 
 <script>
-import { mdiClose, mdiTrayArrowDown } from "@mdi/js";
 import pageAuthMixin from "../../../common/pageAuthMixin.js";
 
 // API
@@ -270,9 +269,6 @@
     return {
       // 페이지 권한 객체
  //     pageAuth: JSON.parse(localStorage.getItem("vuex")).pageAuth,
-
-      path: mdiClose,
-      downPath: mdiTrayArrowDown,
 
       file: null,
 
client/views/pages/user/portal/search/Search.vue
--- client/views/pages/user/portal/search/Search.vue
+++ client/views/pages/user/portal/search/Search.vue
@@ -255,7 +255,6 @@
 <script>
 import { toRaw } from 'vue'
 import store from "../../../AppStore";
-import { mdiArrowRightDropCircleOutline } from '@mdi/js';
 import queryParams from '../../../../../resources/js/queryParams';
 import { defaultTotalSearchParams } from "../../../../../resources/js/defaultTotalSearchParams.js"
 import { searchAll } from "../../../../../resources/api/search.js";
@@ -266,7 +265,6 @@
     mixins: [queryParams],
     data() {
         return {
-            path: mdiArrowRightDropCircleOutline,
             search: { ...defaultTotalSearchParams },
             pageSearch: { ...defaultSearchParams },
             mbrId: store.state.mbrId || null, // 사용자 아이디
@@ -357,7 +355,9 @@
 
     },
     computed: {
-
+        path() {
+            return this.$iconPath('mdiArrowRightDropCircleOutline');
+        }
     },
     components: {
     },
Add a comment
List