From c0c034b3ef0fdf0fd9c802d5984dbd717db6817a Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 06 九月 2023 17:54:55 +0800 Subject: [PATCH] 定制桌面. --- src/pages/desktop/index/App.vue | 179 +++++++++++++++++++++++++++-------------------------------- 1 files changed, 82 insertions(+), 97 deletions(-) diff --git a/src/pages/desktop/index/App.vue b/src/pages/desktop/index/App.vue index 97d9b3d..84e9b57 100644 --- a/src/pages/desktop/index/App.vue +++ b/src/pages/desktop/index/App.vue @@ -9,18 +9,18 @@ </template> <script> -import html2canvas from "html2canvas"; -import Desktop from "./components/Desktop"; -import NotificationCenter from "./components/NotificationCenter"; -import NoticeTip from "./components/NoticeTip"; -import Tools from "./components/Tools"; -import ToolsEntry from "./components/ToolsEntry"; -import { getServerName } from "./api.ts"; +import html2canvas from "html2canvas" +import Desktop from "./components/Desktop" +import NotificationCenter from "./components/NotificationCenter" +import NoticeTip from "./components/NoticeTip" +import Tools from "./components/Tools" +import ToolsEntry from "./components/ToolsEntry" +import { getServerName } from "./api.ts" -import { getApps } from "@/api/app"; -import { getDevInfo } from "@/api/login"; +import { getApps } from "@/api/app" +import { getDevInfo } from "@/api/login" -import config from "../../../../package.json"; +import config from "../../../../package.json" export default { name: "app", @@ -29,53 +29,49 @@ NotificationCenter, NoticeTip, Tools, - ToolsEntry, + ToolsEntry }, data() { return { - buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [], + buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [] // defaultBgUrl:"/images/desktop/background.png" - }; + } }, computed: { isAdmin() { - if ( - sessionStorage.getItem("userInfo") && - sessionStorage.getItem("userInfo") !== "" - ) { - let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username; - return loginName === "superadmin" || loginName === "basic"; + if (sessionStorage.getItem("userInfo") && sessionStorage.getItem("userInfo") !== "") { + let loginName = JSON.parse(sessionStorage.getItem("userInfo")).username + return loginName === "superadmin" || loginName === "basic" } - return false; + return false }, defaultBgUrl() { if (JSON.parse(sessionStorage.getItem("userInfo"))) { - return JSON.parse(sessionStorage.getItem("userInfo")).backgroundpic; + return JSON.parse(sessionStorage.getItem("userInfo")).backgroundpic } - return ""; - }, + return "" + } }, created() { - this.getServerName(); - this.getDevInfo(); + this.getServerName() + this.getDevInfo() }, mounted() { - document.getElementById("app").style.backgroundImage = `url(${ - this.defaultBgUrl || "/images/desktop/background.png" - })`; - this.showApps(); - let _that = this; - let msgResp = require("./mock/messages.json"); + document.getElementById("app").style.backgroundImage = `url(${this.defaultBgUrl || + "/images/desktop/background.png"})` + this.showApps() + let _that = this + let msgResp = require("./mock/messages.json") if (msgResp.success) { - msgResp.data.forEach(function (item) { - _that.addMessage(item); - }); + msgResp.data.forEach(function(item) { + _that.addMessage(item) + }) } - let weather = require("./mock/weather.json"); + let weather = require("./mock/weather.json") if (weather.success) { - _that.addWeather(weather.data.data); + _that.addWeather(weather.data.data) } - setTimeout(function () { + setTimeout(function() { _that.addMessage( { id: "N2", @@ -83,48 +79,45 @@ tip: "娑堟伅", title: "SmartAI", body: "V" + config.version, - time: new Date(), + time: new Date() }, true - ); - }, 1000); + ) + }, 1000) window.addEventListener("message", (e) => { if (e.data.msg == "AppUpdate") { - this.showApps(); + this.showApps() } if (e.data.msg == "checkSN") { - this.$refs.desktop.validateSn(); + this.$refs.desktop.validateSn() } if (e.data.msg === "changeColor") { - const iframeArr = document.querySelectorAll("iframe"); + const iframeArr = document.querySelectorAll("iframe") iframeArr.forEach((item) => { - item.contentWindow.postMessage( - { msg: "changeColor", color: e.data.color }, - "*" - ); - }); + item.contentWindow.postMessage({ msg: "changeColor", color: e.data.color }, "*") + }) } - }); + }) }, methods: { quit() { - this.$refs.tools.toLogout(); + this.$refs.tools.toLogout() }, onJumpToDock(name) { - this.$refs.dock_model.onJumpToDock(name); + this.$refs.dock_model.onJumpToDock(name) }, onChangeBg(v) { - document.getElementById("app").style.backgroundImage = "url(" + v + ")"; + document.getElementById("app").style.backgroundImage = "url(" + v + ")" }, showApps() { - let _that = this; + let _that = this getApps().then((rsp) => { if (rsp && rsp.success) { - _that.$store.state.desktop.docks = []; - let installedApps = []; - rsp.data; - rsp.data.forEach(function (item) { + _that.$store.state.desktop.docks = [] + let installedApps = [] + rsp.data + rsp.data.forEach(function(item) { if (item.installed) { let temp = { id: item.id, @@ -132,9 +125,7 @@ create_time: item.create_time, height: item.height, icon: item.icon, - src: item.iconBlob - ? "data:image/png;base64," + item.iconBlob - : item.icon, + src: item.iconBlob ? "data:image/png;base64," + item.iconBlob : item.icon, installed: item.installed, isDelete: item.isDelete, isUpgrade: item.isUpgrade, @@ -147,51 +138,47 @@ url: item.url, version: item.version, width: item.width, - isDefault: item.isDefault, - }; - - // 鍒ゆ柇鏉冮檺 - if ( - _that.isAdmin || - _that.buttonAuthority.indexOf(item.package) >= 0 - ) { - _that.$store.commit("desktop/addDock", temp); + isDefault: item.isDefault } - installedApps.push(item.package); - } - }); + // 鍒ゆ柇鏉冮檺 + // if (_that.isAdmin || _that.buttonAuthority.indexOf(item.package) >= 0) { + _that.$store.commit("desktop/addDock", temp) + // } - sessionStorage.setItem("apps", installedApps.join(",")); + installedApps.push(item.package) + } + }) + sessionStorage.setItem("apps", installedApps.join(",")) } - }); + }) }, - addMessage: function (message, ding) { - this.$store.dispatch("desktop/addMessage", message); + addMessage: function(message, ding) { + this.$store.dispatch("desktop/addMessage", message) // if (ding) { // new Audio('sounds/ping.mp3').play(); // } - this.$refs.notice_tip_model.showTip(message); + this.$refs.notice_tip_model.showTip(message) }, - addWeather: function (weather) { - this.$store.commit("desktop/addWeather", weather); + addWeather: function(weather) { + this.$store.commit("desktop/addWeather", weather) }, screenShot(dock) { //鎵惧埌褰撳墠鐨刬frame 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, //寮�鍚法鍩熼厤缃� + useCORS: true //寮�鍚法鍩熼厤缃� //allowTaint: true }) .then((canvas) => { - let shotSrc = canvas.toDataURL(); + let shotSrc = canvas.toDataURL() // this.$store.commit('desktop/addMinDock', { // id: dock.id, // src: dock.icon, @@ -201,31 +188,29 @@ // }); this.$store.commit("desktop/shotscreen", { id: dock.id, - src: shotSrc, - }); + src: shotSrc + }) }) .catch((e) => { - this.$store.commit("desktop/shotscreen", { id: dock.id, src: "" }); - }); + this.$store.commit("desktop/shotscreen", { id: dock.id, src: "" }) + }) }, async getServerName() { - let res = await getServerName(); + let res = await getServerName() if (res && res.success) { - this.serverTitle = res.data.serverName; - window.document.title = res.data.serverName - ? res.data.serverName - : "SmartAI"; - sessionStorage.setItem("title", res.data.serverName); + this.serverTitle = res.data.serverName + window.document.title = res.data.serverName ? res.data.serverName : "SmartAI" + sessionStorage.setItem("title", res.data.serverName) } }, async getDevInfo() { - const res = await getDevInfo(); + const res = await getDevInfo() if (res && res.success && res.data.deviceType.substr(0, 2) === "DS") { - sessionStorage.setItem("isShowPolling", "show"); + sessionStorage.setItem("isShowPolling", "show") } - }, - }, -}; + } + } +} </script> <style> -- Gitblit v1.8.0