瀏覽代碼

Merge branch 'dev'

VicCG.Lin 11 月之前
父節點
當前提交
dd12a8f3c1

+ 38
- 588
src/fe/healthpassport/css/all.css
文件差異過大導致無法顯示
查看文件


+ 1
- 1
src/fe/healthpassport/css/all.css.map
文件差異過大導致無法顯示
查看文件


+ 1
- 0
src/fe/healthpassport/css/all.scss 查看文件

7
 @import "module/img-scale";
7
 @import "module/img-scale";
8
 @import "module/px2em";
8
 @import "module/px2em";
9
 @import "module/frosted";
9
 @import "module/frosted";
10
+@import "module/transition";
10
 
11
 
11
 @import "variable/base";
12
 @import "variable/base";
12
 
13
 

+ 5
- 0
src/fe/healthpassport/css/component/_section.scss 查看文件

1
 .section {
1
 .section {
2
     opacity: 0;
2
     opacity: 0;
3
     visibility: hidden;
3
     visibility: hidden;
4
+    pointer-events: none;
4
     position: absolute;
5
     position: absolute;
5
     overflow-y: auto;
6
     overflow-y: auto;
6
     overflow-x: hidden;
7
     overflow-x: hidden;
15
         padding-top: 0;
16
         padding-top: 0;
16
         transform-origin: center top;
17
         transform-origin: center top;
17
     }
18
     }
19
+    &.--is-active {
20
+        visibility: visible;
21
+        pointer-events: auto;
22
+    }
18
 }
23
 }

+ 5
- 3
src/fe/healthpassport/css/layout/_body.scss 查看文件

24
     top: 0;
24
     top: 0;
25
     left: 50%;
25
     left: 50%;
26
     transform: translateX(-50%);
26
     transform: translateX(-50%);
27
-    overflow-x: hidden;
28
-    overflow-y: auto;
27
+    overflow: hidden;
29
     width: 100%;
28
     width: 100%;
30
     height: 100%;
29
     height: 100%;
31
     max-width: 640px;
30
     max-width: 640px;
35
 }
34
 }
36
 
35
 
37
 .wrapper__line-scroll-fixed {
36
 .wrapper__line-scroll-fixed {
38
-    position: relative;
37
+    position: absolute;
38
+    left: 0;
39
+    top: 0;
39
     width: 100%;
40
     width: 100%;
40
     height: calc(100% + 10px);
41
     height: calc(100% + 10px);
41
     z-index: 1;
42
     z-index: 1;
47
     left: 0;
48
     left: 0;
48
     width: 100%;
49
     width: 100%;
49
     height: 100%;
50
     height: 100%;
51
+    overflow: hidden;
50
     z-index: 1;
52
     z-index: 1;
51
 }
53
 }
52
 
54
 

+ 12
- 0
src/fe/healthpassport/css/module/_transition.scss 查看文件

1
+.fade-enter-active, 
2
+.fade-leave-active {
3
+  transition: opacity .25s;
4
+}
5
+  
6
+.fade-enter {
7
+  opacity: 1!important;
8
+}
9
+.fade-leave-to {
10
+  opacity: 0!important;
11
+}
12
+  

+ 2
- 1
src/fe/healthpassport/css/page/_passport.scss 查看文件

130
         position: fixed;
130
         position: fixed;
131
         left: 50%;
131
         left: 50%;
132
         transform: translateX(-50%);
132
         transform: translateX(-50%);
133
-        bottom: 5em;
133
+        // bottom: 5em;
134
+        bottom: 3em;
134
         width: 89%;
135
         width: 89%;
135
         margin: 0 auto;
136
         margin: 0 auto;
136
         box-shadow: 0 0.2em 0.5em rgba(#000, 0.2);
137
         box-shadow: 0 0.2em 0.5em rgba(#000, 0.2);

+ 8
- 7
src/fe/healthpassport/index.html 查看文件

20
   <meta property="og:description" content="" />
20
   <meta property="og:description" content="" />
21
   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.1.3/dist/css/bootstrap.min.css"
21
   <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.1.3/dist/css/bootstrap.min.css"
22
     integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
22
     integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
23
-  <link rel="stylesheet" href="./css/all.css?v=202310121821">
23
+  <link rel="stylesheet" href="./css/all.css?2bfccafdcea738f81dfd47159974209c4bb34e27">
24
 
24
 
25
 </head>
25
 </head>
26
 
26
 
379
       </section>
379
       </section>
380
       <!-- 活動辦法 methods -->
380
       <!-- 活動辦法 methods -->
381
       <section class="section methods wrapper__line-scroll-fixed">
381
       <section class="section methods wrapper__line-scroll-fixed">
382
-        <div class="backform"><span>
383
-            << /span>
384
-              <p>回上一頁</p>
382
+        <div class="backform">
383
+          <span>
384
+            <p>回上一頁</p>
385
+          </span>
385
         </div>
386
         </div>
386
         <div class="section__container methods__container">
387
         <div class="section__container methods__container">
387
           <p>
388
           <p>
503
   <script defer src="./js/utlis.js?7cbe65f53be79cd4b77a5eb4a8276309636ce117"></script>
504
   <script defer src="./js/utlis.js?7cbe65f53be79cd4b77a5eb4a8276309636ce117"></script>
504
   <script defer src="./js/services/userModel.js"></script>
505
   <script defer src="./js/services/userModel.js"></script>
505
   <script defer src="./js/services/index.js?94e36845bbde69677cfe04ccd35e1cab693f8bfd"></script>
506
   <script defer src="./js/services/index.js?94e36845bbde69677cfe04ccd35e1cab693f8bfd"></script>
506
-  <script defer src="./js/register.js?9d81090955cff53a869bf5bbddb30fbca297fc41"></script>
507
-  <script defer src="./js/passport.js?5d68a597e0db4dfda46a82ae1ac395ee680dd7df"></script>
508
-  <script defer src="./js/base.js?9fb825c8551ab8f7975d17a190781d6d5e38182a"></script>
507
+  <script defer src="./js/register.js?773e635dd81c36c2ba24f139b95017c8512eb9f7"></script>
508
+  <script defer src="./js/passport.js?7077ad7a5eb513e7ddd4288761f1a77b55a5d75f"></script>
509
+  <script defer src="./js/base.js?40b7843a8fd152309d08b4fd1e3ac8bc737c2884"></script>
509
   <!-- <script>
510
   <!-- <script>
510
     // init vConsole
511
     // init vConsole
511
     var vConsole = new VConsole();
512
     var vConsole = new VConsole();

+ 66
- 20
src/fe/healthpassport/js/base.js 查看文件

1
-base = function () {
1
+function useBase() {
2
 	//private menbers
2
 	//private menbers
3
 	let isActivityOver = false;
3
 	let isActivityOver = false;
4
 	let userProfile = null;
4
 	let userProfile = null;
5
 	let userData = null;
5
 	let userData = null;
6
-
6
+	let passport;
7
+	let register;
7
 
8
 
8
 	//private methods
9
 	//private methods
9
 	function init() {
10
 	function init() {
10
 
11
 
11
 		console.log('base init')
12
 		console.log('base init')
12
 
13
 
14
+		passport = new usePassport({
15
+			goToRegister,
16
+			insertFromData
17
+		});
18
+	
19
+		register = new useRegister({
20
+			myAlert,
21
+			sectionFadeOut,
22
+			sectionFadeIn,
23
+			buildPassportHandler,
24
+		});
25
+
13
 		// 判斷是否活動已結束
26
 		// 判斷是否活動已結束
14
 		// entranceTimer();
27
 		// entranceTimer();
15
 
28
 
37
 					console.log("userData: ",userData)
50
 					console.log("userData: ",userData)
38
 					
51
 					
39
 					if(userData === null) {
52
 					if(userData === null) {
40
-						console.log('LinePicHandler');
41
-						register.LinePicHandler(profile.pictureUrl);
42
 						console.log('goToRegister');
53
 						console.log('goToRegister');
43
 						goToRegister();
54
 						goToRegister();
55
+						console.log('LinePicHandler');
56
+						register.LinePicHandler(profile.pictureUrl);
44
 					}else {
57
 					}else {
58
+						console.log('goToPassport');
59
+						goToPassport();
45
 						console.log('buildPassportHandler');
60
 						console.log('buildPassportHandler');
46
 						passport.buildPassportHandler(userData);
61
 						passport.buildPassportHandler(userData);
47
 						console.log('insertFromData');
62
 						console.log('insertFromData');
48
 						register.insertFromData(userData);
63
 						register.insertFromData(userData);
49
-						console.log('goToPassport');
50
-						goToPassport();
51
 						console.log('sendCompleteMessage');
64
 						console.log('sendCompleteMessage');
52
 						GameService.getInstanse().sendCompleteMessage();
65
 						GameService.getInstanse().sendCompleteMessage();
53
 					}
66
 					}
80
 			// console.log("goToActivity click");
93
 			// console.log("goToActivity click");
81
 			goToMethods();
94
 			goToMethods();
82
 		});
95
 		});
96
+	}
83
 
97
 
84
-		
98
+	function insertFromData(theUserData) {
99
+		if (register) {
100
+			register.insertFromData(theUserData);
101
+		}
102
+	}
103
+
104
+	function buildPassportHandler(theUserData) {
105
+		if (passport) {
106
+			passport.buildPassportHandler(theUserData);
107
+		}
85
 	}
108
 	}
86
 
109
 
87
 	// 活動期間判斷
110
 	// 活動期間判斷
135
 
158
 
136
 	// page進入動態
159
 	// page進入動態
137
 	function sectionFadeIn(el) {
160
 	function sectionFadeIn(el) {
138
-		$(el).show();
139
-		gsap.to(el, {
140
-			duration: 0.3,
141
-			autoAlpha: 1
142
-		})
161
+		const elememt = document.querySelector(el);
162
+		if (elememt) {
163
+			elememt.classList.remove('fade-leave-active');
164
+			elememt.classList.remove('fade-leave-to');
165
+			elememt.classList.add('--is-active');
166
+			elememt.classList.add('fade-enter-active');
167
+			sleep(300).then(() => {
168
+				elememt.classList.add('fade-enter');
169
+			});
170
+		}
171
+		// $(el).show();
172
+		// gsap.to(el, {
173
+		// 	duration: 0.3,
174
+		// 	autoAlpha: 1
175
+		// })
143
 	}
176
 	}
144
 
177
 
145
 	// page離開動態
178
 	// page離開動態
146
 	function sectionFadeOut(el) {
179
 	function sectionFadeOut(el) {
147
-		gsap.to(el, {
148
-			duration: 0.3,
149
-			autoAlpha: 0,
150
-			onComplete: function() {
151
-				$(el).hide();
152
-			}
153
-		})
180
+		const elememt = document.querySelector(el);
181
+		if (elememt) {
182
+			elememt.classList.add('fade-leave-active');
183
+			elememt.classList.add('fade-leave-to');
184
+			sleep(300).then(() => {
185
+				elememt.classList.remove('fade-enter');
186
+				elememt.classList.remove('fade-enter-active');
187
+				elememt.classList.remove('fade-leave-active');
188
+				elememt.classList.remove('fade-leave-active');
189
+				elememt.classList.remove('fade-leave-to');
190
+				elememt.classList.remove('--is-active');
191
+			});
192
+		}
193
+		// gsap.to(el, {
194
+		// 	duration: 0.3,
195
+		// 	autoAlpha: 0,
196
+		// 	onComplete: function() {
197
+		// 		$(el).hide();
198
+		// 	}
199
+		// })
154
 	}
200
 	}
155
 
201
 
156
 	{
202
 	{
177
 	};
223
 	};
178
 };
224
 };
179
 
225
 
180
-window.base = new base();
226
+window.base = new useBase();

+ 9
- 9
src/fe/healthpassport/js/passport.js 查看文件

1
-passport = function () {
1
+function usePassport(delegate) {
2
+	
3
+	const options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
4
+
2
 	//private menbers
5
 	//private menbers
3
 	let tagData = null;
6
 	let tagData = null;
4
-	let convertData = {}
5
-
6
-
7
-
7
+	let convertData = {};
8
 
8
 
9
 	//private methods
9
 	//private methods
10
 	function init() {
10
 	function init() {
11
 
11
 
12
-		console.log('passport init')
12
+		console.log('passport init');
13
 
13
 
14
 		getTagData();
14
 		getTagData();
15
 
15
 
27
 
27
 
28
 		$(".passport__edit").on("click", function(){
28
 		$(".passport__edit").on("click", function(){
29
 			userData = GameService.getInstanse().getUserData();
29
 			userData = GameService.getInstanse().getUserData();
30
-			register.insertFromData(userData);
31
-			window.base.goToRegister();
30
+			delegate.insertFromData(userData);
31
+			delegate.goToRegister();
32
 		});
32
 		});
33
 	}
33
 	}
34
 
34
 
190
 	};
190
 	};
191
 };
191
 };
192
 
192
 
193
-var passport = new passport();
193
+// var passport = new usePassport();

+ 18
- 21
src/fe/healthpassport/js/register.js 查看文件

1
 
1
 
2
-register = function () {
2
+function useRegister(delegate) {
3
 	let _noteScrollTop = 0;
3
 	let _noteScrollTop = 0;
4
 	let linePicUrl = null;
4
 	let linePicUrl = null;
5
 	let lineBase64Data = null;
5
 	let lineBase64Data = null;
69
 			if(checkRegister()) {
69
 			if(checkRegister()) {
70
 				sendRegister();
70
 				sendRegister();
71
 			}else {
71
 			}else {
72
-				window.base.myAlert(registerAlert);
72
+				delegate.myAlert(registerAlert);
73
 				$(this).removeClass("disable");
73
 				$(this).removeClass("disable");
74
                 $(".form-submit p").text("下一步");
74
                 $(".form-submit p").text("下一步");
75
 			}
75
 			}
80
 	function LinePicHandler(url) {
80
 	function LinePicHandler(url) {
81
 
81
 
82
 		linePicUrl = url;
82
 		linePicUrl = url;
83
-		$(".photo__img").html("");
84
-		$(".photo__img").append(`
85
-			<img src="${linePicUrl}"/>
86
-		`);
87
-		
88
-		$(".photo .load-wrapp ").hide();
89
-
90
 		const imageURL = linePicUrl;
83
 		const imageURL = linePicUrl;
91
 		if(imageURL.trim() !== '') {
84
 		if(imageURL.trim() !== '') {
92
 			const img = new Image();
85
 			const img = new Image();
93
-			img.src = imageURL;
86
+			img.crossOrigin = 'anonymous';
87
+			img.onload = function() {
94
 
88
 
95
-			const canvas = document.createElement("canvas");
96
-			const ctx = canvas.getContext("2d");
97
-			img.crossOrigin = 'Anonymous';
89
+				$(".photo__img").html("");
90
+				$(".photo__img").append(`
91
+					<img src="${linePicUrl}"/>
92
+				`);
93
+				
94
+				$(".photo .load-wrapp ").hide();
98
 
95
 
99
-			img.onload = function() {
96
+				const canvas = document.createElement("canvas");
97
+				const ctx = canvas.getContext("2d");
100
 				canvas.width = img.width;
98
 				canvas.width = img.width;
101
 				canvas.height = img.height;
99
 				canvas.height = img.height;
102
 				ctx.drawImage(img, 0, 0);
100
 				ctx.drawImage(img, 0, 0);
106
 				finalase64Data = lineBase64Data;
104
 				finalase64Data = lineBase64Data;
107
 
105
 
108
 				// console.log(finalase64Data)
106
 				// console.log(finalase64Data)
109
-
110
 			}
107
 			}
108
+			img.src = imageURL;
111
 		}
109
 		}
112
 	}
110
 	}
113
 
111
 
193
 
191
 
194
 		GameService.getInstanse().userUpdatePhoto(finalase64Data).then(res => {
192
 		GameService.getInstanse().userUpdatePhoto(finalase64Data).then(res => {
195
 			console.log('userUpdatePhoto:', res);
193
 			console.log('userUpdatePhoto:', res);
196
-			// base.myAlert('成功上傳。');
197
 		});
194
 		});
198
 		
195
 		
199
 	}
196
 	}
368
 	
365
 	
369
 						console.log("userData: ",userData)
366
 						console.log("userData: ",userData)
370
 						
367
 						
371
-						window.base.sectionFadeOut(".register");
372
-						window.base.sectionFadeIn(".passport");
373
-						passport.buildPassportHandler(userData)
368
+						delegate.sectionFadeOut(".register");
369
+						delegate.sectionFadeIn(".passport");
370
+						delegate.buildPassportHandler(userData)
374
 
371
 
375
 						GameService.getInstanse().sendCompleteMessage();
372
 						GameService.getInstanse().sendCompleteMessage();
376
 					})
373
 					})
380
 			.catch(_err => {
377
 			.catch(_err => {
381
 				console.log(_err);
378
 				console.log(_err);
382
 				// let msg = err.message.replaceAll("Error:", "");
379
 				// let msg = err.message.replaceAll("Error:", "");
383
-				window.base.myAlert(_err);
380
+				delegate.myAlert(_err);
384
 				$(".register .form-submit").removeClass("disable");
381
 				$(".register .form-submit").removeClass("disable");
385
                 $(".register .form-submit p").text("下一步");
382
                 $(".register .form-submit p").text("下一步");
386
 			})
383
 			})
424
 	};
421
 	};
425
 };
422
 };
426
 
423
 
427
-var register = new register();
424
+// var register = new useRegister();