From f034cc33fa17f1620ccc496adae079694715e64a Mon Sep 17 00:00:00 2001 From: aipaw Date: Mon, 12 Jul 2021 08:41:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8A=BD=E5=B1=89=E5=BC=B9?= =?UTF-8?q?=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/components/LuckySheet.vue | 2 +- resources/assets/js/components/OnlyOffice.vue | 12 +++- resources/assets/js/pages/manage/file.vue | 18 ++++- resources/assets/sass/pages/page-file.scss | 71 ++++++++++++++++++- 4 files changed, 98 insertions(+), 5 deletions(-) diff --git a/resources/assets/js/components/LuckySheet.vue b/resources/assets/js/components/LuckySheet.vue index 686f3390..4fa9f05b 100644 --- a/resources/assets/js/components/LuckySheet.vue +++ b/resources/assets/js/components/LuckySheet.vue @@ -107,7 +107,7 @@ export default { loading: { image: 'image://' + $A.originUrl('js/luckysheet/css/loading.gif') }, - data: value ? $A.cloneJSON(value) : [ + data: $A.isArray(value) ? $A.cloneJSON(value) : [ { "name": "Sheet1", } diff --git a/resources/assets/js/components/OnlyOffice.vue b/resources/assets/js/components/OnlyOffice.vue index 143a4412..a26ae75d 100644 --- a/resources/assets/js/components/OnlyOffice.vue +++ b/resources/assets/js/components/OnlyOffice.vue @@ -52,10 +52,18 @@ export default { docEditor: null, } }, + mounted() { // }, + beforeDestroy() { + if (this.docEditor !== null) { + this.docEditor.destroyEditor(); + this.docEditor = null; + } + }, + computed: { ...mapState(['userToken', 'userInfo']), }, @@ -135,7 +143,9 @@ export default { "callbackUrl": this.serverUrl + 'api/file/content/office?id=' + this.value.id + '&token=' + this.userToken, } }; - this.docEditor = new DocsAPI.DocEditor(this.id, config); + this.$nextTick(() => { + this.docEditor = new DocsAPI.DocEditor(this.id, config); + }) } } } diff --git a/resources/assets/js/pages/manage/file.vue b/resources/assets/js/pages/manage/file.vue index 1d8f2438..03e0a1f5 100644 --- a/resources/assets/js/pages/manage/file.vue +++ b/resources/assets/js/pages/manage/file.vue @@ -195,7 +195,21 @@ - +
+
+ +
+
+ + + + + + + + + diff --git a/resources/assets/sass/pages/page-file.scss b/resources/assets/sass/pages/page-file.scss index 1871ac8e..476d3522 100644 --- a/resources/assets/sass/pages/page-file.scss +++ b/resources/assets/sass/pages/page-file.scss @@ -525,9 +525,78 @@ } } - .page-file-drawer { .ivu-drawer-content { border-radius: 20px 20px 0 0 !important; } } + +.shot-overlay { + top: 0; + left: 0; + z-index: 1000; + width: 0; + height: 0; + position: fixed; + -webkit-box-sizing: border-box; + box-sizing: border-box; + opacity: 0; + pointer-events: none; + background: rgba(0, 0, 0, 0.8); + overflow-y: hidden; + -webkit-overflow-scrolling: auto; + cursor: pointer; + &.overlay-visible { + pointer-events: auto; + opacity: 1; + width: 100%; + height: 100%; + transition: opacity 0.2s ease; + .overlay-content { + opacity: 1; + transform: translateY(0) scale(1); + transition: opacity 0.2s ease, transform 0.3s ease; + } + } + &.overlay-hide { + transition: opacity 0.2s ease; + .overlay-content { + transform: translateY(15%) scale(0.98); + transition: opacity 0.2s ease, transform 0.2s ease + } + } + &:focus { + outline: none + } + .overlay-content { + position: relative; + background: #fff; + margin-top: 40px; + border-radius: 12px 12px 0 0; + height: calc(100vh - 40px); + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + opacity: 0; + transform: translateY(15%) scale(0.98); + cursor: default + } + .close-overlay { + display: flex; + align-items: center; + justify-content: center; + position: absolute; + top: 0; + right: 0; + width: 40px; + height: 40px; + color: #dbdbde; + z-index: 1; + &:hover { + color: #fff + } + .icon { + width: 24px; + height: 24px + } + } +}