diff --git a/js/components/coursesList.vue b/js/components/coursesList.vue index cb1b469..d4063a7 100644 --- a/js/components/coursesList.vue +++ b/js/components/coursesList.vue @@ -43,13 +43,8 @@ var coursesList = { this.selectedTime = temp }, 'find_name': function () { - var temp = [] - for (var c of this.courses) { - if (c.name.indexOf(this.find_name) != -1) { - temp.push(c) - } - } - this.foundedCourses = temp + const target = this.find_name.toLowerCase(); + this.foundedCourses = this.courses.filter((c) => c.name.toLowerCase().includes(target)); } }, template: ` @@ -64,7 +59,7 @@ var coursesList = {
- {{ course.name }} () + {{ course.name }} () —— {{ (course.department.indexOf(', ')!=-1) ?(course.department.split(', ')[1]) :(course.department) }}
@@ -86,7 +81,7 @@ var coursesList = {
- {{ course.name }} () + {{ course.name }} ()
{{ course.teacher }} ‧ {{ course.time }} diff --git a/js/components/main.vue b/js/components/main.vue index 093ff93..ae3a01e 100644 --- a/js/components/main.vue +++ b/js/components/main.vue @@ -7,7 +7,8 @@ var mainWindow = { 'selectDepartment': '', 'foundName': "", "user": "", - 'token': "" + 'token': "", + 'is_print': false, } }, created() { @@ -192,19 +193,30 @@ var mainWindow = { } }, 'generatePic': function () { - html2canvas(document.getElementById('course-table-div')).then(function (canvas) { - var a = document.createElement('a'); - a.href = canvas.toDataURL("image/jpeg").replace("image/jpeg", "image/octet-stream"); - a.download = '課表.jpg'; - a.click(); + var main = this + const doPrint = new Promise((resolve, reject) => { + main.is_print = true; + resolve(); }); + doPrint + .then(() =>{ + html2canvas(document.getElementById('course-table-div')).then(function (canvas) { + var a = document.createElement('a'); + a.href = canvas.toDataURL("image/jpeg").replace("image/jpeg", "image/octet-stream"); + a.download = '課表.jpg'; + a.click(); + }); + }) + .then(() => { + main.is_print = false; + }) }, 'share': function () { if (this.user != "") $('#share').modal('show'); else this.login() - } + }, }, components: { 'course-table': courseTable, @@ -290,6 +302,7 @@ var mainWindow = { id="course-table-div" v-bind:selectCourses="selectCourses" v-bind:select_c="selectCourses" + v-bind:is_print="is_print" v-bind:is_shared="false" v-on:remove-course="removeCourse" > diff --git a/js/components/table.vue b/js/components/table.vue index 936594a..999c6b1 100644 --- a/js/components/table.vue +++ b/js/components/table.vue @@ -1,5 +1,5 @@ var courseDiv = { - props: ['course', 'is_shared'], + props: ['course', 'is_shared', 'is_print'], template: `
{{ course.name }} @@ -7,6 +7,7 @@ var courseDiv = { v-if="!is_shared" v-on:click="$emit('remove-course', course.name)" class="btn btn-danger btn-sm" + :style="{'display': is_print ? 'none' : 'inline-block'}" > 刪 @@ -22,7 +23,7 @@ var tempDiv = { ` } var courseTable = { - props: ['select_c', 'is_shared'], + props: ['select_c', 'is_shared', 'is_print'], data: function(){ return { 'courses': {}, @@ -112,6 +113,7 @@ var courseTable = { v-if="exist(week+String.fromCharCode(97+((hour<5)?(hour-1):(hour-2)))) && !courses[week+String.fromCharCode(97+((hour<5)?(hour-1):(hour-2)))].temp" v-bind:course="courses[week+String.fromCharCode(97+((hour<5)?(hour-1):(hour-2)))]" v-bind:is_shared="is_shared" + v-bind:is_print="is_print" v-on:remove-course="removeCourseHandler" >