yjryu / KERIS star
youngsuk 2023-10-31
231031 서영석 ts -> js 로 수정
@cb1674fef2d489ac1afc2c2c4e08f4b51d3a8fbf
Global.js
--- Global.js
+++ Global.js
@@ -1,4 +1,4 @@
-const PROJECT_NAME = 'NodeJS Web Server Framework(Vue)';
+const PROJECT_NAME = 'KERIS';
 const PROJECT_VERSION = '1.0';
 const BASE_DIR = __dirname;
 const LOG_BASE_DIR = `${__dirname}/server/logs`;
client/resources/js/commonUtil.js (Renamed from client/resources/js/commonUtil.ts)
--- client/resources/js/commonUtil.ts
+++ client/resources/js/commonUtil.js
@@ -9,241 +9,25 @@
 const COMMON_UTIL = (function () {
 
 	var _utils = {
-
-
-		engNum: function(value : any) {
-			let engNum =  /^[a-zA-Z0-9]*$/;
-			if(engNum.test(value)) {
-				return true
-			} else {
-				return false
-			}
-		},
-
-		/**
-		 * 오늘 년-월-일 구하기
-		 */
-		today: function() {
-			let date = new Date();
-			let today = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().substring(0, 10);
-			return today;
-		},
-
-		/**
-		 * 오늘 년-월-일 구하기
-		 */
-		dateTime: function() {
-			let date = new Date();
-			let today = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().substring(0, 16);
-			return today;
-		},
-
-		/**
-		 * 한달전 년-월-일 구하기
-		 */
-		oneMonthAgo: function() {
-			let date = new Date();
-			let oneMonthAgo = new Date(date.setMonth(date.getMonth() - 1) - (date.getTimezoneOffset() * 60000)).toISOString().substring(0, 10);
-			return oneMonthAgo;
-		},
-
-		/**
-		 * null값 '-' 으로 치환
-		 */
-		nullHyphen: function(data : any) {
-			if(data === null || data === "") {
-				return "-";
-			} else {
-				return data;
-			}
-		},
-
-		/**
-		 * 일자에 '-' 넣기
-		 */
-		dateHyphen: function(data : any) {
-			if(data === null || data === "") return "-";
-			let formatDate = '';
-			// 공백제거
-			data = data.replace(/\s/gi, "");
-			if(data.length == 8) {
-				formatDate = data.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3');
-			} else {
-				formatDate = data;
-			}
-			 
-			return formatDate;
-		},
-
-		/**
-		 * 일시에서 시,분,초 자르기
-		 */
-		yyyymmdd: function(data : any) {
-			if(data === null || data === "") {
-				return "-";
-			} else {
-				let date = data.substr(0,10);
-				return date;
-			}
-		},
-
-		/**
-		 * 전화번호 출력 시 '-'을 추가하여 출력
-		 */
-		HyphenMinus: function( phoneNumber : any ) {
-			if(!phoneNumber) return phoneNumber
-
-			phoneNumber = phoneNumber.replace(/[^0-9]/g, '')
-		
-			let tmp = ''
-			if( phoneNumber.length < 4){
-				return phoneNumber;
-			}
-			else if(phoneNumber.length < 7)
-			{
-				tmp += phoneNumber.substr(0, 3);
-				tmp += '-';
-				tmp += phoneNumber.substr(3);
-				return tmp;
-			}
-			else if(phoneNumber.length == 8)
-			{
-				tmp += phoneNumber.substr(0, 4);
-				tmp += '-';
-				tmp += phoneNumber.substr(4);
-				return tmp;
-			}
-			else if(phoneNumber.length < 10)
-			{
-				if(phoneNumber.substr(0, 2) =='02') { //02-123-5678            
-					tmp += phoneNumber.substr(0, 2);
-					tmp += '-';
-					tmp += phoneNumber.substr(2, 3);
-					tmp += '-';
-					tmp += phoneNumber.substr(5);
-					return tmp;
-				}
-			}
-			else if(phoneNumber.length < 11)
-			{
-				if(phoneNumber.substr(0, 2) =='02') { //02-1234-5678            
-					tmp += phoneNumber.substr(0, 2);
-					tmp += '-';
-					tmp += phoneNumber.substr(2, 4);
-					tmp += '-';
-					tmp += phoneNumber.substr(6);
-					return tmp;
-				} else {                        //010-123-4567            
-					tmp += phoneNumber.substr(0, 3);
-					tmp += '-';
-					tmp += phoneNumber.substr(3, 3);
-					tmp += '-';
-					tmp += phoneNumber.substr(6);
-					return tmp;
-				}
-			}
-			else { //010-1234-5678        
-				tmp += phoneNumber.substr(0, 3);
-				tmp += '-';
-				tmp += phoneNumber.substr(3, 4);
-				tmp += '-';
-				tmp += phoneNumber.substr(7);
-				return tmp;
-			}
-		},
-
-		/**
-		 * 전화번호 자동 '-' 삽입
-		 */
-		//전화번호 입력 시 자동 '-' 삽입  
-		getMask: function( phoneNumber : any ) {
-			if(!phoneNumber) return phoneNumber
-				phoneNumber = phoneNumber.replace(/[^0-9]/g, '')
-		
-			let res = ''
-			if(phoneNumber.length < 3) {
-				res = phoneNumber
-			}
-			else {
-				if(phoneNumber.substr(0, 2) =='02') {
-					if(phoneNumber.length <= 5) {//02-123-5678
-						res = phoneNumber.substr(0, 2) + '-' + phoneNumber.substr(2, 3)
-					}
-					else if(phoneNumber.length > 5 && phoneNumber.length <= 9) {//02-123-5678
-						res = phoneNumber.substr(0, 2) + '-' + phoneNumber.substr(2, 3) + '-' + phoneNumber.substr(5)
-					}
-					else if(phoneNumber.length > 9) {//02-1234-5678
-						res = phoneNumber.substr(0, 2) + '-' + phoneNumber.substr(2, 4) + '-' + phoneNumber.substr(6)
-					}
-					} else {
-					if(phoneNumber.length < 8) {
-						res = phoneNumber
-					}
-					else if(phoneNumber.length == 8)
-					{
-						res = phoneNumber.substr(0, 4) + '-' + phoneNumber.substr(4)
-					}
-					else if(phoneNumber.length == 9)
-					{
-						res = phoneNumber.substr(0, 3) + '-' + phoneNumber.substr(3, 3) + '-' + phoneNumber.substr(6)
-					}
-					else if(phoneNumber.length == 10)
-					{
-						res = phoneNumber.substr(0, 3) + '-' + phoneNumber.substr(3, 3) + '-' + phoneNumber.substr(6)
-					}
-					else if(phoneNumber.length > 10) { //010-1234-5678
-						res = phoneNumber.substr(0, 3) + '-' + phoneNumber.substr(3, 4) + '-' + phoneNumber.substr(7)
-					}
-				}
-			}
-		return res
-		},
-
-		/**
-		 * 비밀번호 일치 체크
-		 */
-		checkPassword: function(pw : any, pwC : any) {
-			if (pw != pwC) return false;
-			return true;
-		},
-		/**
-		 * 휴대폰 번호 정규식
-		 */
-		checkPhone: function(data : any) {
-			let regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
-			if (regExp.test(data) === true) return true;
-			return false;
-		},
-
-		/**
-		 * 이메일 정규식
-		 */
-		checkEmail: function (data : any) {
-		  	// 이메일 형식 검사
-			let validateEmail = /^[A-Za-z0-9_\\.\\-]+@[A-Za-z0-9\\-]+\.[A-Za-z0-9\\-\\.]+$/;
-			if (validateEmail.test(data) === true) return true;
-			return false;
-		},
-
 		/**
 		 * 빈 객체 여부
 		 */
-		isEmpty: function (data : any) {
-			if (data === undefined || data === null || data === "null" || data === "" || data.length === 0 || (data.constructor == Object && Object.keys(data).length === 0)) {
+		isEmpty: function (data) {
+			if (data === undefined || data === null || data === "" || data.length === 0 || (data.constructor == Object && Object.keys(data).length === 0)) {
 				if ((typeof data) === "number") {
-					return true
+					return false
 				} else {
-					return false;
+					return true;
 				}
 			} else {
-				return true;
+				return false;
 			}
 		},
 
 		/**
 		 * empty to null
 		 */
-		toNull: function ( data : any) {
+		toNull: function (data) {
 			if(data === undefined || data === "") {
 				try {
 					data = null;
@@ -260,7 +44,23 @@
 		/**
 		 * string to JSON
 		 */
-		toJson: function (data : any) {
+		toJson: function (data) {
+			if ("string" === (typeof data)) {
+				try {
+					return JSON.parse(data);
+				} catch (e) {
+					console.log("commonUtil.js - string to json convert error : ", e);
+					return data;
+				}
+			} else {
+				return data;
+			}
+		},
+
+		/**
+		 * string to JSON
+		 */
+		toJson: function (data) {
 			if ("string" === (typeof data)) {
 				try {
 					return JSON.parse(data);
@@ -276,7 +76,7 @@
 		/**
 		 * JSON to string
 		 */
-		toString: function (data : any) {
+		toString: function (data) {
 			try {
 				return JSON.parse(data);
 			} catch (e) {
@@ -288,12 +88,12 @@
 		/**
 		 * 다중 separator split
 		 */
-		split: function (text : any, separator : any) {
+		split: function (text, separator) {
 			var words = [];
 			if (this.isEmpty(text) == false && this.isEmpty(separator) == false && separator.length > 0) {
 				words.push(text);
 				for (var i = 0; i < separator.length; i++) {
-					var subWords : any = [];
+					var subWords = [];
 					for (var j = 0; j < words.length; j++) {
 						if (this.isEmpty(words[j]) == false && this.isEmpty(separator[i]) == false) {
 							subWords = subWords.concat(words[j].split(separator[i]));
@@ -319,7 +119,7 @@
 		/**
 		 * 객체 깊은 복사
 		 */
-		copyObject: function (obj : any) {
+		copyObject: function (obj) {
 			if (obj === null || typeof(obj) !== 'object') return obj;
 
 			try {
@@ -336,7 +136,7 @@
 
 		 */
 		getDateTime : function () {
-			return  this.getDate(null) as String + " " + this.getFullTime(null);
+			return this.getDate()+ " " + this.getFullTime();
 		},
 
 		/**
@@ -351,7 +151,7 @@
 		 *   separator(String)
 		 * }
 		 */
-		getDate: function (options : any) {
+		getDate: function (options) {
 
 			if (this.isEmpty(options) == true) {
 				options = {
@@ -455,7 +255,7 @@
 		 *   separator(String)
 		 * }
 		 */
-		getFullTime: function (options : any) {
+		getFullTime: function (options) {
 			if (this.isEmpty(options) == true) {
 				options = {
 					addHour: 0,
@@ -493,7 +293,7 @@
 		 *   separator(String)
 		 * }
 		 */
-		getTime: function (options : any) {
+		getTime: function (options) {
 			if (this.isEmpty(options) == true) {
 				options = {
 					addHour: 0,
@@ -526,7 +326,7 @@
 		 * ex) this.prefixZero(2, 5) => 00002, this.prefixZero(20, 5) => 00020
 		 *
 		 */
-		prefixZero: function (text : any, length : any) {
+		prefixZero: function (text, length) {
 			var zero = '';
 			var suffix = text;
 
@@ -546,7 +346,7 @@
 		/**
 		 * Date => text
 		 */
-		dateToText: function (date : any) {
+		dateToText: function (date) {
 			var d = new Date(date);
 			var yyyy = d.getFullYear();
 			var mm = d.getMonth() + 1;
@@ -564,7 +364,7 @@
 		 *
 		 * ex) getRandomInt(2, 5) => 2~5사이의 정수 난수 값 리턴
 		 */
-		getRandomInt: function (min : any, max : any) {
+		getRandomInt: function (min, max) {
 			min = Math.ceil(min);
 			max = Math.floor(max);
 			return Math.floor(Math.random() * (max - min)) + min;
@@ -596,7 +396,7 @@
 		 *
 		 * ex) 10000 => 10,000
 		 */
-		comma: function (text : any) {
+		comma: function (text) {
 			try {
 				return text.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 			} catch (e) {
@@ -613,7 +413,7 @@
 		 *
 		 * ex) 10,000 => 10000
 		 */
-		removeComma: function (text : any) {
+		removeComma: function (text) {
 			try {
 				return text.toString().replace(/,/g, "");;
 			} catch (e) {
@@ -628,7 +428,7 @@
 		/**
 		 * json 데이터 가지고 오기 (외부 JSON 파일 PATH or URL) (동기 요청)
 		 */
-		getJsonByPromise: function (url : any, isAsync : any) {
+		getJsonByPromise: function (url, isAsync) {
 			if (this.isEmpty(url) == true) {
 				new Error('COMMON_UTIL - getJson(url, isAsync) Error : url(parameter) is empty')
 			}
@@ -659,7 +459,7 @@
 		/**
 		 * json 데이터 가지고 오기 (동기 요청) (외부 JSON 파일 PATH or URL)
 		 */
-		getJsonBySync: function (url : any) {
+		getJsonBySync: function (url) {
 			var result = {};
 			if (this.isEmpty(url) == true) {
 				new Error('COMMON_UTIL - getJson(url, isAsync) Error : url(parameter) is empty')
client/views/index.js
--- client/views/index.js
+++ client/views/index.js
@@ -1,17 +1,29 @@
-// /**
-//  * @author : 최정우
-//  * @since : 2022.10.19
-//  * @dscription : Vue를 활용한 Client단 구현의 시작점(Index) Component 입니다.
-//  */
-// import { createApp } from 'vue';
+/**
+ * @author : 최정우
+ * @since : 2022.10.19
+ * @dscription : Vue를 활용한 Client단 구현의 시작점(Index) Component 입니다.
+ */
+import Vue, { createApp } from 'vue';
 
-// import AppRouter from './pages/AppRouter.js';
-// import App from './pages/App.vue';
-// import AppStore from './pages/AppStore.js';
+//Router
+import AppRouter from './pages/AppRouter.js';
+import AppStore from './pages/AppStore.js';
+import AppFilters from './pages/AppFilters.js';
+//Application Root Vue Component
+import App from './pages/App.vue';
 
-// const vue = createApp(App).use(AppRouter).use(AppStore).mount('#root');
 
+
+const app = createApp(App);
+app.use(AppStore)
+app.use(AppRouter)
+
+app.config.globalProperties.$filters = AppFilters
+app.mount('#root');
+
+// //index.html에 정의된 window.AppUserHttpRequestURL을 활용하여, 사용자가 요청한 초기 페이지로 이동
 // if (!APP_USER_HTTP_REQUEST_URL && APP_USER_HTTP_REQUEST_URL != '/') {
 //     console.log('index.js APP_USER_HTTP_REQUEST_URL : ', APP_USER_HTTP_REQUEST_URL);
 //     AppRouter.push({ path: APP_USER_HTTP_REQUEST_URL, query: {}})
 // }
+
 
client/views/index.ts (deleted)
--- client/views/index.ts
@@ -1,22 +0,0 @@
-/**
- * @author : 최정우
- * @since : 2022.10.19
- * @dscription : Vue를 활용한 Client단 구현의 시작점(Index) Component 입니다.
- */
-import { createApp } from 'vue';
-
-import AppRouter from './pages/AppRouter';
-import AppStore from './pages/AppStore';
-import AppFilters from './AppFilters';
-import App from './pages/App.vue';
-
-
-// const vue = createApp(App).use(AppRouter).mount('#root');
-const vue = createApp(App)
-vue.use(AppStore);
-vue.use(AppRouter);
-vue.config.globalProperties.$filters = AppFilters
-
-
-vue.mount('#root');
-
client/views/pages/AppFilters.js (Renamed from client/views/AppFilters.ts)
--- client/views/AppFilters.ts
+++ client/views/pages/AppFilters.js
@@ -4,18 +4,18 @@
  * @returns
  */
 
- const AppFilters = (function () {
+const AppFilters = (function () {
 
 	var _filters = {
 		
 		/*전화번호*/
-		phone: function (phone : any) {
+		phone: function (phone) {
 			return phone.replace(/[^0-9]/g, '')
 						.replace(/(\d{3})(\d{4})(\d{4})/, '($1) $2-$3');
 		},
 
 		/* 반올림  */
-		math: function (param : any) {
+		math: function (param) {
 			if(param == 0){
 				return "-";
 			}
@@ -23,7 +23,7 @@
 		},
 
 		/* 특수문자 변형 */
-		specialCharacter: function (arr : any) {
+		specialCharacter: function (arr) {
 			arr = arr.replace(/&lt;/g, '<');
 			arr = arr.replace(/&gt;/g, '>');
 			arr = arr.replace(/&quot;/g, '"');
@@ -34,7 +34,7 @@
 		},
 
 		/* input text 제한 */
-		comma: function (text : any) {
+		comma: function (text) {
 			try {
 				return text.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
 			} catch (e) {
@@ -47,7 +47,7 @@
 		},
 
 		/* html text 제한 */
-		textLimit: function (text : any, limit : any) {
+		textLimit: function (text, limit) {
 			if (text === undefined || text === null || text === "" || text.length === 0) {
 				return text;
 			} else {
@@ -56,7 +56,7 @@
 		},
 
 		/* 파일 사이즈  */
-		fileSize: function (size : any) {
+		fileSize: function (size) {
 			var result = size + " bytes";
 			// optional code for multiples approximation
 			var type = ["KB", "MB", "GB"];
@@ -67,7 +67,7 @@
 		},
 
 		/* 숫자 한글 표현  */
-		numberSize: function (number : any) {
+		numberSize: function (number) {
 			var result = number;
 			// optional code for multiples approximation
 			var type = ["만", "억", "조", "경", "해"];
@@ -82,7 +82,7 @@
 			//return result;
 		},
 
-		isEmpty: function (data : any) {
+		isEmpty: function (data) {
 			if (data === undefined || data === null || data === "" || data.length === 0 || (data.constructor == Object && Object.keys(data).length === 0)) {
 				if ((typeof data) === "number") {
 					return false
@@ -95,7 +95,7 @@
 		},
 
 		/* 빈 데이터 표현 => '-'  */
-		emptyText: function (text : any) {
+		emptyText: function (text) {
 			if (text === undefined || text === null || text === "" || text.length === 0) {
 				return '-';
 			} else {
@@ -105,19 +105,16 @@
 
 		//클라이언트의 현재 일짜와 비교해서 더 작은 지에 대한 여부 확인
 		//param - dateText : yyyy-mm-dd (String)
-		isSmallerClientDate: function (dateText : any) {
+		isSmallerClientDate: function (dateText) {
 			const date = new Date(dateText);
 			let clientDate = new Date();
 
 			let yyyy = clientDate.getFullYear();
-			let mm : any = clientDate.getMonth() + 1;
+			let mm = clientDate.getMonth() + 1;
 			if (mm < 10) {
-				let MM : String;
-				MM = "0" +  mm;
-				mm=String(mm);
+				mm = "0" + mm;
 			}
-			
-			let dd : any = clientDate.getDate();
+			let dd = clientDate.getDate();
 			if (dd < 10) {
 				dd = "0" + dd;
 			}
@@ -134,7 +131,7 @@
 		DEFAULT_REPAIR_SIZE: -5,
 
 		/* 인하 횟수 => 인하 수치 */
-		repairMillimeter: function(repairCount : any) {
+		repairMillimeter: function(repairCount) {
 			const newRepairCount = !repairCount ? 0 : Number(repairCount);
 			const repairSize = this.DEFAULT_REPAIR_SIZE * newRepairCount;
 			return repairSize;
@@ -145,6 +142,7 @@
 
 	//초기화
 	function init() {
+        //console.info('commonUtil.js initialized.');
         return _filters;
     }
 
client/views/pages/admin/user/UserSelectList.vue
--- client/views/pages/admin/user/UserSelectList.vue
+++ client/views/pages/admin/user/UserSelectList.vue
@@ -126,7 +126,7 @@
 import { useStore } from "vuex";
 import axios from "axios";
 import crypto from "crypto-js";
-import COMMON_UTIL from '../../../../resources/js/commonUtil.ts';
+import COMMON_UTIL from '../../../../resources/js/commonUtil.js';
 
 
 export default {
client/views/pages/user/join/Join.vue
--- client/views/pages/user/join/Join.vue
+++ client/views/pages/user/join/Join.vue
@@ -5,17 +5,17 @@
         </section>
         <section class="join-b">
             <div class="join-b-button">
-                <input type="radio" id="one" v-model="selectedMembership" value="one">
-                <label for="one" class="radio-t t1"
-                    :style="{ backgroundColor: selectedMembership === 'one' ? '#86868644' : '#e2ecfc' }">기관회원
+                <input type="radio" id="company" v-model="selectedMembership" value="company">
+                <label for="company" class="radio-t t1"
+                    :style="{ backgroundColor: selectedMembership === 'company' ? '#86868644' : '#e2ecfc' }">기관회원
                     <img src="../../../../resources/jpg/join-bt2.png" alt=""></label>
                 <input type="radio" id="two" v-model="selectedMembership" value="two">
                 <label for="two" class="radio-t t2"
-                    :style="{ backgroundColor: selectedMembership === 'two' ? '#86868644' : '#e6fff1' }">일반회원
+                    :style="{ backgroundColor: selectedMembership === 'common' ? '#86868644' : '#e6fff1' }">일반회원
                     <img src="../../../../resources/jpg/join-bt.png" alt=""></label>
             </div>
         </section>
-        <div v-if="selectedMembership === 'one'">
+        <div v-if="selectedMembership === 'company'">
             <div class="login-info2">
                 <div>
                     <h3>회사소개</h3>
@@ -176,7 +176,7 @@
                         <input type="text" v-model="user['user_id']" placeholder="아이디를 입력하세요.">
                     </div>
                     <div>
-                        <button>중복확인</button>
+                        <button @click="userIdCheck">중복확인</button>
                     </div>
                 </section>
                 <!-- <section class="join-sec2 joinsub">
@@ -195,7 +195,7 @@
                         <span>비밀번호</span>
                     </div>
                     <div class="join-sub-input">
-                        <input type="text" v-model="user['user_pw']">
+                        <input type="text" v-model="user['user_pw']" @change="passwordSyncCheck()" placeholder="비밀번호 입력">
 
                     </div>
                 </section>
@@ -204,8 +204,10 @@
                         <span>비밀번호 확인</span>
                     </div>
                     <div class="join-sub-input">
-                        <input type="text">
+                        <input type="text" v-model="pwCheck" @change="passwordSyncCheck()" placeholder="비밀번호 확인">
                     </div>
+                    <div v-if="this.passwordCheckFlag" style="color:chartreuse">비밀번호 일치</div>
+                    <div v-else style="color:red">비밀번호 불일치</div>
                 </section>
                 <section class="join-sec5 joinsub">
                     <div class="join-sec-sub">
@@ -213,7 +215,6 @@
                     </div>
                     <div>
                         <input type="text" v-model="user['user_nm']">
-
                     </div>
                 </section>
                 <section class="join-sec6">
@@ -226,14 +227,14 @@
                         </div>
                         <div>@</div>
                         <div>
-                            <input type="text" name="email_dns" id="email_dns" v-model="email_dns">
-                        </div>
+                            <input v-if="select_email_dns==null" type="text" name="email_dns" id="email_dns" v-model="email_dns">
+                            <input v-else type="text" name="email_dns" id="email_dns" v-model="select_email_dns">                        </div>
                         <div>
-                            <select name="email_sel" id="email_sel">
+                            <select name="email_sel" id="email_sel" v-model="select_email_dns">
                                 <option value="">직접 입력</option>
-                                <option value="naver.com">naver</option>
-                                <option value="hanmail.net">daum</option>
-                                <option value="gmail.com">google</option>
+                                <option value="naver.com">naver.com</option>
+                                <option value="hanmail.net">hanmail.net</option>
+                                <option value="gmail.com">google.com</option>
                             </select>
                         </div>
                     </div>
@@ -257,7 +258,8 @@
             <section class="join-end-bt">
                 <button>이전</button>
 
-                <button @click="commonFileInsert">회원가입</button>
+                <button v-if="selectedMembership === 'company'" @click="commonFileInsert">회원가입</button>
+                <button v-else @click="userInsert">회원가입</button>
             </section>
         </div>
 
@@ -323,7 +325,7 @@
             email_id:null,
             email_dns:null,
             select_email_dns:null,
-            selectedMembership: 'one',
+            selectedMembership: 'company',
             isVisible: false,
         }
     },
@@ -391,6 +393,7 @@
         },
 
         userInsert: function () {
+            this.user.user_auth=this.selectedMembership;
             const vm = this;
             axios({
                 url: "/user/userInsert.json",
@@ -426,7 +429,7 @@
             });
         },
         joinInsert:function(){
-            if(this.selectedMembership=="one"){
+            if(this.selectedMembership=="company"){
                 this.companyInsert();
             }
             else{
 
client/views/vue-shim.d.ts (deleted)
--- client/views/vue-shim.d.ts
@@ -1,5 +0,0 @@
-declare module '*.vue' {
-    import type { DefineComponent } from 'vue'
-    const component: DefineComponent<{}, {}, any>
-    export default component
-}(No newline at end of file)
package-lock.json
--- package-lock.json
+++ package-lock.json
@@ -37,13 +37,6 @@
         "vuex": "^4.1.0",
         "webpack": "5.74.0",
         "webpack-cli": "4.10.0"
-      },
-      "devDependencies": {
-        "less": "^4.2.0",
-        "less-loader": "^11.1.3",
-        "ts-loader": "^9.5.0",
-        "ts-node": "^10.9.1",
-        "typescript": "^5.2.2"
       }
     },
     "node_modules/@ampproject/remapping": {
package.json
--- package.json
+++ package.json
@@ -42,12 +42,5 @@
     "linux-dev": "export NODE_ENV=development&&node ./server/modules/web/server.js",
     "webpack-build": "webpack",
     "webpack-build-watch": "webpack --watch"
-  },
-  "devDependencies": {
-    "less": "^4.2.0",
-    "less-loader": "^11.1.3",
-    "ts-loader": "^9.5.0",
-    "ts-node": "^10.9.1",
-    "typescript": "^5.2.2"
   }
 }
 
tsconfig.json (deleted)
--- tsconfig.json
@@ -1,22 +0,0 @@
-{
-    "compilerOptions": {
-        /* "composite": true,
-        "target": "esnext",
-        "module": "esnext",
-        "strict": true,
-        "jsx": "preserve",
-        "moduleResolution": "node",
-        "allowImportingTsExtensions": true,
-        "emitDeclarationOnly": true */
-        /* "outDir": "./client/build/", */
-        "outDir": "./built/",
-        "strict": true,
-        "noImplicitAny": true,
-        "module": "es6",
-        "target": "es5",
-        "jsx": "preserve",
-        "allowJs": true,
-        "moduleResolution": "node",
-        
-    }
-}(No newline at end of file)
webpack.config.js
--- webpack.config.js
+++ webpack.config.js
@@ -1,6 +1,5 @@
 const { VueLoaderPlugin } = require("vue-loader");
-
-const {PROJECT_NAME, BASE_DIR, SERVICE_STATUS} = require('./Global.js');
+const {PROJECT_NAME, BASE_DIR, SERVICE_STATUS} = require('./Global');
 
 module.exports = {
   name: PROJECT_NAME,
@@ -8,7 +7,7 @@
   devtool: 'eval',
 
   entry: {
-    app: [`${BASE_DIR}/client/views/index.ts`]
+    app: [`${BASE_DIR}/client/views/index.js`]
   },
 
   module: {
@@ -18,9 +17,6 @@
     }, {
       test: /\.(js|jsx)?$/,
       loader: 'babel-loader',
-      options: {
-        compact: true,
-      },
     }, {
       test: /\.css$/,
       use: ['vue-style-loader', 'css-loader']
@@ -33,21 +29,10 @@
           fallback:require.resolve('file-loader')
         }
       }]
-    },{
-      test: /\.(ts|tsx)$/,
-      exclude: /node_modules/,
-      loader: 'ts-loader',
-      options: { appendTsSuffixTo: [/\.vue$/] }
     }],
   },
 
   plugins: [new VueLoaderPlugin()],
-
-  resolve: {
-    //확장자를 순서대로 해석, 여러 파일에서 이름이 동일하지만 다른 확장자를 가진 경우, webpack은 배열의 앞에서부터 파일을 해석하고 남은 것은 해석하지 않음
-    //import 시, 확장자 생략 가능
-    extensions: [ '.tsx', '.ts', '.jsx', '.js', '.vue', 'json' ],
-  },
 
   output: {
     path: `${BASE_DIR}/client/build`,	// __dirname: webpack.config.js 파일이 위치한 경로
Add a comment
List