| | |
| | | <template> |
| | | <div id="app"> |
| | | <div id="app" @contextmenu.prevent=""> |
| | | <tools></tools> |
| | | <preference></preference> |
| | | <desktop></desktop> |
| | | <dock ref="dock_model"></dock> |
| | | <tools-entry ref="dock_model"></tools-entry> |
| | | <notice-tip ref="notice_tip_model"></notice-tip> |
| | | <notification-center></notification-center> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import html2canvas from 'html2canvas'; |
| | | import Desktop from './components/Desktop'; |
| | | import Dock from './components/Dock'; |
| | | import Preference from './components/Preference'; |
| | | import NotificationCenter from './components/NotificationCenter'; |
| | | import NoticeTip from './components/NoticeTip'; |
| | | import Tools from './components/Tools'; |
| | | import ToolsEntry from './components/ToolsEntry'; |
| | | import axios from 'axios' |
| | | |
| | | export default { |
| | | name: 'app', |
| | | components: { |
| | | Desktop, Dock, Preference, NotificationCenter, NoticeTip, Tools |
| | | Desktop, NotificationCenter, NoticeTip, Tools, ToolsEntry |
| | | }, |
| | | |
| | | mounted() { |
| | | document.getElementById('app').style.backgroundImage = process.env.VUE_APP_MAIN_URL; |
| | | let _that = this; |
| | |
| | | }); |
| | | } |
| | | |
| | | setTimeout(function () { |
| | | _that.$refs.dock_model.initDockItem(); |
| | | }, 100); |
| | | // axios.get(process.env.VUE_APP_USER_DATA_URL).then(function (res) { |
| | | |
| | | // }); |
| | | |
| | | let msgResp = require("./mock/messages.json") |
| | | if (msgResp.success) { |
| | | msgResp.data.forEach(function (item) { |
| | | _that.addMessage(item); |
| | | }) |
| | | } |
| | | // axios.get(process.env.VUE_APP_MESSAGE_URL).then(function (res) { |
| | | |
| | | // }); |
| | | |
| | | let weather = require("./mock/weather.json") |
| | | if (weather.success) { |
| | | _that.addWeather(weather.data.data); |
| | | } |
| | | // axios.get(process.env.VUE_APP_WEATHER_URL).then(function (res) { |
| | | |
| | | // }); |
| | | |
| | | setTimeout(function () { |
| | | _that.addMessage({ |
| | | id: 'N1', |
| | | icon: 'images/frost.png', |
| | | tip: '分布式任务调度', |
| | | title: '默认账号', |
| | | body: '账号:frost 密码:frost', |
| | | time: new Date() |
| | | }, true); |
| | | }, 3000); |
| | | |
| | | setTimeout(function () { |
| | | _that.addMessage({ |
| | | id: 'N2', |
| | | icon: 'images/message.png', |
| | | icon: '/images/desktop/message.png', |
| | | tip: '消息', |
| | | title: '官方QQ', |
| | | body: '1106088328', |
| | | title: 'SmartAi', |
| | | body: 'v1.0.0', |
| | | time: new Date() |
| | | }, true); |
| | | }, 6000); |
| | | |
| | | console.log(this.$store.state.desktop) |
| | | }, 1000); |
| | | }, |
| | | methods: { |
| | | addMessage: function (message, ding) { |
| | |
| | | }, |
| | | addWeather: function (weather) { |
| | | this.$store.commit('desktop/addWeather', weather); |
| | | }, |
| | | screenShot(dock){ |
| | | //找到当前的iframe |
| | | let curIframe = Array.from(document.querySelectorAll('iframe')).find(iframe => iframe.src.indexOf(dock.url) >= 0); |
| | | //保存当前应用快照 |
| | | html2canvas(curIframe.contentWindow.document.body, { |
| | | dpi: window.devicePixelRatio * 4, |
| | | logging: true, //查看html2canvas内部执行流程 |
| | | removeContainer: true, |
| | | imageTimeout: 0, |
| | | useCORS: true, //开启跨域配置 |
| | | //allowTaint: true |
| | | }).then(canvas => { |
| | | let shotSrc = canvas.toDataURL(); |
| | | // this.$store.commit('desktop/addMinDock', { |
| | | // id: dock.id, |
| | | // src: dock.icon, |
| | | // alt: dock.title, |
| | | // type: "3", |
| | | // screenshot: shotSrc |
| | | // }); |
| | | this.$store.commit('desktop/shotscreen', {id:dock.id, src:shotSrc}); |
| | | |
| | | }).catch(e => { |
| | | this.$store.commit('desktop/shotscreen', {id:dock.id, src:''}); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | |
| | | width: 100%; |
| | | height: 100%; |
| | | background-size: 100% 100%; |
| | | background-image: url("../../../assets/img/desktop/main.jpg"); |
| | | background-image: url("/images/desktop/background.png"); |
| | | background-attachment: fixed; |
| | | } |
| | | |
| | | .clearFix:after { |
| | | content: ""; |
| | | display: block; |
| | | height: 0; |
| | | clear: both; |
| | | } |
| | | </style> |