| | |
| | | "echarts": "^4.8.0", |
| | | "echarts-liquidfill": "^2.0.6", |
| | | "element-ui": "^2.13.2", |
| | | "html2canvas": "^1.0.0-rc.5", |
| | | "less-loader": "^6.2.0", |
| | | "moment": "^2.27.0", |
| | | "pug": "^3.0.0", |
| | |
| | | <div class="d-frame-title" v-drag @click="frameClick()"> |
| | | <div class="d-frame-title-operation"> |
| | | <i class="fa fa-circle d-frame-operation-close" @click="closeFrame()"></i> |
| | | <i class="fa fa-circle d-frame-operation-minus" @click="minFrame()"></i> |
| | | <i class="fa fa-circle d-frame-operation-minus" @click="minFrame(data)"></i> |
| | | <i class="fa fa-circle d-frame-operation-full" @click="changeFullScreen()"></i> |
| | | </div> |
| | | <slot name="d-frame-title-content"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import html2canvas from 'html2canvas' |
| | | export default { |
| | | name: "DFrame", |
| | | props: { |
| | |
| | | frameClick: function () { |
| | | this.$store.commit('desktop/refreshFrame', this.data); |
| | | }, |
| | | minFrame: function () { |
| | | this.$store.commit('desktop/addMinDock', { |
| | | id: this.data.id, |
| | | src: this.data.icon, |
| | | alt: this.data.title, |
| | | type: "3" |
| | | }); |
| | | minFrame: function (data) { |
| | | debugger |
| | | //找到当前的iframe |
| | | let curIframe = Array.from(document.querySelectorAll('iframe')).find(iframe => iframe.src.indexOf(data.url) >= 0); |
| | | debugger |
| | | //保存当前应用快照 |
| | | html2canvas(curIframe.contentWindow.document.body,{ |
| | | dpi: window.devicePixelRatio*4, |
| | | logging: true, //查看html2canvas内部执行流程 |
| | | removeContainer: true, |
| | | imageTimeout : 0, |
| | | useCORS : true //开启跨域配置 |
| | | }).then(canvas => { |
| | | let shotSrc = canvas.toDataURL(); |
| | | debugger; |
| | | this.$store.commit('desktop/addMinDock', { |
| | | id: this.data.id, |
| | | src: this.data.icon, |
| | | alt: this.data.title, |
| | | type: "3", |
| | | screenshot: shotSrc |
| | | }); |
| | | }) |
| | | |
| | | //this.refreshDock(); |
| | | }, |
| | | refreshDock: function () { |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | html,body{ |
| | | heiht: 100%; |
| | | } |
| | | .d-frame { |
| | | position: fixed; |
| | | } |
| | |
| | | </div> |
| | | <div class="tools-middle"> |
| | | <div v-for="dock in this.$store.state.desktop.minDocks" :key="dock.id" class="dock-item-wrap"> |
| | | <a @click="dockClick(dock)"> |
| | | <a @click="dockClick(dock)" > |
| | | <img class="dock-item" :src="dock.src" :alt="dock.alt" /> |
| | | <img class="dock-shot" :src="dock.screenshot" :alt="dock.name"> |
| | | </a> |
| | | </div> |
| | | </div> |
| | |
| | | .tools .tools-middle { |
| | | float: left; |
| | | position: relative; |
| | | |
| | | } |
| | | .tools .tools-middle::before { |
| | | width: 1px; |
| | |
| | | line-height: 54px; |
| | | margin-right: 1px; |
| | | border-bottom: 2px solid transparent; |
| | | position: relative; |
| | | } |
| | | .tools .tools-middle .dock-item-wrap:hover, |
| | | .tools .tools-middle .dock-item-wrap.clicked { |
| | |
| | | width: auto; |
| | | height: 70%; |
| | | } |
| | | .dock-item-wrap .dock-shot{ |
| | | visibility: hidden; |
| | | width: 100px; |
| | | height: 46px; |
| | | position: absolute; |
| | | top: 44px; |
| | | left: -50%; |
| | | } |
| | | .tools .tools-middle .dock-item-wrap:hover .dock-shot, |
| | | .tools .tools-middle .dock-item-wrap.clicked .dock-shot{ |
| | | visibility: visible; |
| | | } |
| | | .tools-icon { |
| | | text-align: center; |
| | | height: 100%; |