From 4a800a8fc83c6bd1f86a8e847b079a51a7532c09 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 20 七月 2022 15:05:58 +0800 Subject: [PATCH] 修复国标配置的bug --- src/pages/desktop/index/App.vue | 210 +++++++++++++++++++++++++++++++++------------------- 1 files changed, 132 insertions(+), 78 deletions(-) diff --git a/src/pages/desktop/index/App.vue b/src/pages/desktop/index/App.vue index 42219eb..023e7ee 100644 --- a/src/pages/desktop/index/App.vue +++ b/src/pages/desktop/index/App.vue @@ -1,103 +1,130 @@ <template> <div id="app" @contextmenu.prevent> - <tools @jumpToDock="onJumpToDock"></tools> - <desktop></desktop> - <tools-entry @changeBg="onChangeBg" ref="dock_model"></tools-entry> + <tools ref="tools" @jumpToDock="onJumpToDock"></tools> + <desktop @quit="quit" ref="desktop"></desktop> + <tools-entry @changeBackground="onChangeBg" 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 NotificationCenter from './components/NotificationCenter'; -import NoticeTip from './components/NoticeTip'; -import Tools from './components/Tools'; -import ToolsEntry from './components/ToolsEntry'; -import axios from 'axios' +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 { findAllSdk } from '@/api/taskMange' +import { getApps } from "@/api/app"; +import { getDevInfo } from "@/api/login"; -import config from '../../../../package.json' +import config from "../../../../package.json"; export default { - name: 'app', + name: "app", components: { - Desktop, NotificationCenter, NoticeTip, Tools, ToolsEntry + Desktop, + NotificationCenter, + NoticeTip, + Tools, + ToolsEntry, }, data() { return { - buttonAuthority: sessionStorage.getItem('buttonAuthoritys') || [], - defaultBgUrl:"/images/desktop/background.png" - } + buttonAuthority: sessionStorage.getItem("buttonAuthoritys") || [], + // defaultBgUrl:"/images/desktop/background.png" + }; }, computed: { isAdmin() { if ( - sessionStorage.getItem('userInfo') && - sessionStorage.getItem('userInfo') !== '' + sessionStorage.getItem("userInfo") && + sessionStorage.getItem("userInfo") !== "" ) { - let loginName = JSON.parse(sessionStorage.getItem('userInfo')).username - return ( - loginName === 'superadmin' || loginName === 'basic' - ) + 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 ""; + }, + }, + created() { + this.getServerName(); + this.getDevInfo(); }, mounted() { - // document.getElementById('app').style.backgroundImage = process.env.VUE_APP_MAIN_URL; - document.getElementById('app').style.backgroundImage = `url(${this.defaultBgUrl})` - + document.getElementById("app").style.backgroundImage = `url(${ + this.defaultBgUrl || "/images/desktop/background.png" + })`; this.showApps(); - let _that = this; - let msgResp = require("./mock/messages.json") + let msgResp = require("./mock/messages.json"); if (msgResp.success) { 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); } setTimeout(function () { - _that.addMessage({ - id: 'N2', - icon: '/images/desktop/message.png', - tip: '娑堟伅', - title: 'SmartAI', - body: 'V' + config.version, - time: new Date() - }, true); + _that.addMessage( + { + id: "N2", + icon: "/images/desktop/message.png", + tip: "娑堟伅", + title: "SmartAI", + body: "V" + config.version, + time: new Date(), + }, + true + ); }, 1000); - window.addEventListener('message', (e) => { - if (e.data.msg == 'AppUpdate') { + window.addEventListener("message", (e) => { + if (e.data.msg == "AppUpdate") { this.showApps(); + } + if (e.data.msg == "checkSN") { + debugger; + this.$refs.desktop.validateSn(); + } + if (e.data.msg === "changeColor") { + const iframeArr = document.querySelectorAll("iframe"); + iframeArr.forEach((item) => { + item.contentWindow.postMessage( + { msg: "changeColor", color: e.data.color }, + "*" + ); + }); } }); }, methods: { - onJumpToDock(item){ - debugger - this.$refs.dock_model.onJumpToDock(item) + quit() { + this.$refs.tools.toLogout(); }, - onChangeBg(v){ - document.getElementById('app').style.backgroundImage = "url(" + v + ")" - this.defaultBgUrl = v + onJumpToDock(name) { + this.$refs.dock_model.onJumpToDock(name); + }, + onChangeBg(v) { + document.getElementById("app").style.backgroundImage = "url(" + v + ")"; }, showApps() { let _that = this; - getApps().then(rsp => { + getApps().then((rsp) => { if (rsp && rsp.success) { _that.$store.state.desktop.docks = []; let installedApps = []; - rsp.data + rsp.data; rsp.data.forEach(function (item) { if (item.installed) { let temp = { @@ -106,7 +133,9 @@ 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, @@ -119,12 +148,15 @@ url: item.url, version: item.version, width: item.width, - isDefault: item.isDefault - } + isDefault: item.isDefault, + }; // 鍒ゆ柇鏉冮檺 - if (_that.isAdmin || _that.buttonAuthority.indexOf(item.package) >= 0) { - _that.$store.commit('desktop/addDock', temp); + if ( + _that.isAdmin || + _that.buttonAuthority.indexOf(item.package) >= 0 + ) { + _that.$store.commit("desktop/addDock", temp); } installedApps.push(item.package); @@ -133,21 +165,23 @@ sessionStorage.setItem("apps", installedApps.join(",")); } - }) + }); }, addMessage: function (message, ding) { - this.$store.dispatch('desktop/addMessage', message); + this.$store.dispatch("desktop/addMessage", message); // if (ding) { // new Audio('sounds/ping.mp3').play(); // } this.$refs.notice_tip_model.showTip(message); }, addWeather: function (weather) { - this.$store.commit('desktop/addWeather', 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); + let curIframe = Array.from(document.querySelectorAll("iframe")).find( + (iframe) => iframe.src.indexOf(dock.url) >= 0 + ); //淇濆瓨褰撳墠搴旂敤蹇収 html2canvas(curIframe.contentWindow.document.body, { dpi: window.devicePixelRatio * 4, @@ -156,23 +190,43 @@ 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: '' }); - }); - } - } -} + }) + .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: "" }); + }); + }, + async 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); + } + }, + async getDevInfo() { + const res = await getDevInfo(); + if (res && res.success && res.data.deviceType.substr(0, 2) === "DS") { + sessionStorage.setItem("isShowPolling", "show"); + } + }, + }, +}; </script> <style> -- Gitblit v1.8.0