SGC Mobile (Ionic Vue)
- Service Api Docs (/docs/api/index.html)
Install - required
# https://nodejs.org/ko/download/
# node install
npm uninstall -g ionic # uninstall if ionic is installed
npm install -g @ionic/cli@latest # install
npm install -g @vue/cli # Vue Cli
Install - optional
npm install --save-dev node-sass sass-loader # Scss Loader optional
npm install -g http-server # http server optional
npm install --save-dev colors # for deploy command optional
npm install --save-dev iconv-lite # for deploy command optional
Project Run & Build
ionic serve # run server
ionic serve -lab # run server for ios and android
ionic build --prod # Build the application for production
ionic build --aot # Perform ahead-of-time compilation for this build
ionic build --minifyjs # Minify JS for this build
ionic build --minifycss # Minify CSS for this build
ionic build --optimizejs # Perform JS optimizations for this build
# change package.json version
npm install # if need when change the package
ionic build --prod --minifyjs --minifycss --optimizejs # default origial command
npm run format # file formatter not need. (if need run)
npm run db2file # DB SQL(docs/DB_SQL.sql) to java, mapper, interface. (if need run)
npm run translate # translate json file to other language.
npm run compile # comple source to dist (ts to javascript)
npm run deploy # copy dist folder to src/main/webapp/mobile. need npm install -g colors , npm install -g iconv-lite
ENV-Development
- portal (임직원)
- ./.env.development (change this file and run ionic serve again)
- VUE_APP_TYPE=portal
- _VUE_APP_TYPE=as
- as (협력업체)
- ./.env.development (change this file and run ionic serve again)
- _VUE_APP_TYPE=portal
- VUE_APP_TYPE=as
Push Test
VSCode Extension
- Name: Beautify css/sass/scss/less
- Name: Comments in Typescript
- Name: Git Graph
- Name: Prettier - Code formatter
- Name: SCSS IntelliSense
- Name: Vue 3 Snippets
- Name: Vue Language Features (Volar)
- Name: Vue VSCode Snippets
Menu Struct
모바일(공통)
- 로그인 (views/common/LoginPage.vue)
- 아이디 찾기 (views/common/modals/FindIdModal.vue)
- 비밀번호 찾기 (views/common/modals/FindPwModal.vue)
- 메인(홈) (views/common/HomePage.vue)
모바일(임직원)
- 하자관리
- 하자작업지시 (views/po/PoDeftMangPage.vue - MO03010001U)
- 하자작업지시 상세(views/po/PoDeftMangViewPage.vue - MO03010001U)
- 하자조회 (views/po/PoDeftQuePage.vue - MO03020001U)
- 하자조회 상세(views/po/PoDeftQueViewPage.vue - MO03020001U)
- 회의실관리
- 회의실예약 (views/po/PoRoomRevPage.vue - MO01010001U)
- 회의실예약승인 (views/po/PoRoomAppPage.vue - MO01020001)
- 현장 주소록(views/common/SiteAddressPage.vue)
- 현장 주소록 지도보기(views/common/modals/SiteAddressMapModal.vue)
모바일(협력업체)
- 하자관리
- 하자처리 (views/as/AsDeftIngPage.vue - MO02010001U)
- 하자처리 상세 (views/as/AsDeftIngViewPage.vue - MO02010001U)
- 하자완료조회 (views/as/AsDeftDonePage.vue - MO02020001U)
- 하자완료조회 상세(views/as/AsDeftDoneViewPage.vue - MO02020001U)
SRC File Struct
mobile-src/src/
├── App.vue
├── assets
│ ├── SGC-CI.svg (로그인 페이지 하단 로고)
│ ├── SGC.svg (페이지 홈 로고)
│ ├── calendar-number-outline.svg (날자 선택 우측 아이콘)
│ ├── checkmark-circle-outline.svg (라디오 박스)
│ ├── checkmark-outline.svg (체크박스)
│ ├── mobile-main-01.svg (홈 하자 권한이 없을 경우 대체 이미지)
│ └── mobile-main.svg (홈 하자 권한이 없을 경우 대체 이미지)
├── main.ts (메인 index - 진입시 작동됨)
├── registerServiceWorker.ts (Service Worker)
├── router
│ └── index.ts (Router - 라우터 패스 정보 관리 및 권한 체크)
├── services
│ ├── api.service.ts (Api Service - WAS 와 통신을 위한 서비스)
│ ├── code.service.ts (Code Service for checkbox, radio, select)
│ ├── common.interface.ts (Interfaces)
│ ├── common.service.ts (Common Service - 공통 작업 서비스)
│ ├── i18n.ts (Translate text for multi localization)
│ ├── icon.ts (Icons - 페이지에서 사용되는 아이콘을 적재하고 있음)
│ ├── index.ts
│ ├── shared.service.ts (Shared Data Service for login info, site info etc)
│ └── utils.service.ts (Template Util)
├── shims-vue.d.ts
├── theme
│ ├── global.scss ( Global style)
│ └── variables.css ( Css Color variables)
└── views
├── as (협력업체)
│ ├── AsDeftDonePage.vue (하자완료조회)
│ ├── AsDeftDoneViewPage.vue (하자완료조회 상세)
│ ├── AsDeftIngPage.vue (하자처리)
│ ├── AsDeftIngViewPage.vue (하자처리 상세)
│ └── modals
│ └── index.ts
├── common
│ ├── ErrorPage.vue (오류 페이지)
│ ├── HomePage.vue (홈, 메인)
│ ├── LoginPage.vue (로그인)
│ ├── PushDevPage.vue (푸시 테스트)
│ ├── SamplePage.vue (디자인 가이드)
│ ├── SiteAddressPage.vue (현장 주소록)
│ └── modals
│ ├── DeftCustsignModal.vue (고객 서명 모달)
│ ├── DeftElpsRegModal.vue (하자 경과 등록 모달)
│ ├── DeftElpsSmsModal.vue (하자 작업 지시 SMS&PUSH 전송 모달)
│ ├── DeftElpsViewModal.vue (하자 작업 지시 보기 모달)
│ ├── DeftPhotoModal.vue (하자 이미지 보기 모달)
│ ├── FindIdModal.vue (아이디 찾기 모달)
│ ├── FindPwModal.vue (암호 찾기 모달)
│ ├── SettingModal.vue (설정 모달)
│ ├── SiteAddressMapModal.vue (현장 지도보기 모달)
│ └── index.ts
├── components
│ ├── SgcCheckbox.vue (체크 박스)
│ ├── SgcConsole.vue (콘솔 로그)
│ ├── SgcDatetime.vue (날자 선택)
│ ├── SgcDatetimeRange.vue (기간 범위)
│ ├── SgcHourRange.vue (시간 범위)
│ ├── SgcItemInput.vue (아이템 입력)
│ ├── SgcItemView.vue (아이템 보기)
│ ├── SgcLoading.vue (페이지 로딩)
│ ├── SgcModal.vue (모달 외곽 템플릿)
│ ├── SgcPage.vue (페이지 외곽 템플릿)
│ ├── SgcRadio.vue (라디오 박스)
│ ├── SgcSearchId.vue (현장 검색)
│ ├── SgcSelect.vue (콤보 박스)
│ ├── index.ts
│ └── modals
│ └── SearchCovendModal.vue (현장 검색)
└── po
├── PoDeftMangPage.vue (하자작업지시)
├── PoDeftMangViewPage.vue (하자작업지시 상세)
├── PoDeftQuePage.vue (하자조회및완료처리)
├── PoDeftQueViewPage.vue (하자조회및완료처리 상세)
├── PoRoomAppPage.vue (회의실예약승인)
├── PoRoomRevPage.vue (회의실예약)
└── modals
├── PoRoomRevRegModal.vue (회의실예약)
├── PoRoomRevViewModal.vue (회의실예약 상세)
└── index.ts
Public File Struct
mobile-src/public/
├── firebase-messaging-sw.js (구글 파이어 베이스 푸시 알림 정보)
├── img
│ └── icons (어플 아이콘)
│ ├── android-chrome-144x144.png (어플 아이콘)
│ ├── android-chrome-167x167.png (어플 아이콘)
│ ├── android-chrome-180x180.png (어플 아이콘)
│ ├── android-chrome-192x192.png (어플 아이콘)
│ ├── android-chrome-20x20.png (어플 아이콘)
│ ├── android-chrome-29x29.png (어플 아이콘)
│ ├── android-chrome-40x40.png (어플 아이콘)
│ ├── android-chrome-512x512.png (로딩 아이콘)
│ ├── android-chrome-76x76.png (어플 아이콘)
│ ├── android-chrome-maskable-192x192.png (어플 아이콘)
│ ├── android-chrome-maskable-512x512.png (어플 아이콘)
│ ├── favicon-16x16.png (파비콘)
│ ├── favicon-20x20.png (파비콘)
│ ├── favicon-32x32.png (파비콘)
│ ├── favicon.ico (파비콘)
│ ├── favicon.svg (파비콘)
│ ├── icon-messages-27x20.png (푸시 메세지 아이콘)
│ ├── icon-messages-54x40.png (푸시 메세지 아이콘)
│ ├── icon-messages-81x60.png (푸시 메세지 아이콘)
│ ├── icon-messages-96x96.png (푸시 메세지 아이콘)
│ ├── marker_blue.png (현장 지도 마크 아이콘)
│ ├── marker_gray.png (현장 지도 마크 아이콘)
│ ├── marker_green.png (현장 지도 마크 아이콘)
│ ├── marker_orange.png (현장 지도 마크 아이콘)
│ ├── marker_purple.png (현장 지도 마크 아이콘)
│ ├── marker_red.png (현장 지도 마크 아이콘)
│ ├── marker_yellow.png (현장 지도 마크 아이콘)
│ ├── menu-deftdone-96x96.png (어플 간편 진입 아이콘)
│ ├── menu-defting-96x96.png (어플 간편 진입 아이콘)
│ ├── menu-deftmang-96x96.png (어플 간편 진입 아이콘)
│ ├── menu-deftque-96x96.png (어플 간편 진입 아이콘)
│ ├── menu-home-96x96.png (어플 간편 진입 아이콘)
│ ├── menu-roomapp-96x96.png (어플 간편 진입 아이콘)
│ ├── menu-roomrev-96x96.png (어플 간편 진입 아이콘)
│ └── safari-pinned-tab.svg (사파리 아이콘)
└── index.html (메인 index)