diff --git a/js/components/main.vue b/js/components/main.vue index c0242d2..82f9be4 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() { @@ -194,19 +195,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, @@ -292,6 +304,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" >