ZZJ
2021-10-13 878ce80ef3ca88a2c108fbc713cd6ea461c44de1
src/pages/desktop/index/App.vue
@@ -1,8 +1,8 @@
<template>
  <div id="app" @contextmenu.prevent>
    <tools></tools>
    <desktop></desktop>
    <tools-entry ref="dock_model"></tools-entry>
    <tools @jumpToDock="onJumpToDock"></tools>
    <desktop 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>
@@ -15,21 +15,41 @@
import NoticeTip from './components/NoticeTip';
import Tools from './components/Tools';
import ToolsEntry from './components/ToolsEntry';
import axios from 'axios'
import { getApps } from '@/api/app'
import { findAllSdk } from '@/api/taskMange'
import config from '../../../../package.json'
export default {
  name: 'app',
  components: {
    Desktop, NotificationCenter, NoticeTip, Tools, ToolsEntry
  },
  data() {
    return {
      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'
        )
      }
      return false
    }
  },
  mounted() {
    document.getElementById('app').style.backgroundImage = process.env.VUE_APP_MAIN_URL;
    // document.getElementById('app').style.backgroundImage = process.env.VUE_APP_MAIN_URL;
    const url = localStorage.getItem("backgroundPic")
    document.getElementById('app').style.backgroundImage = `url(${url||this.defaultBgUrl})`
    this.showApps();
    let _that = this;
    let msgResp = require("./mock/messages.json")
    if (msgResp.success) {
@@ -37,7 +57,6 @@
        _that.addMessage(item);
      })
    }
    let weather = require("./mock/weather.json")
    if (weather.success) {
      _that.addWeather(weather.data.data);
@@ -47,37 +66,53 @@
        id: 'N2',
        icon: '/images/desktop/message.png',
        tip: '消息',
        title: 'SmartAi',
        body: 'v1.0.0',
        title: 'SmartAI',
        body: 'V' + config.version,
        time: new Date()
      }, true);
    }, 1000);
    window.addEventListener('message',(e) => {
      if(e.data.msg == 'AppUpdate'){
        console.log('应用更新')
    window.addEventListener('message', (e) => {
      if (e.data.msg == 'AppUpdate') {
        this.showApps();
      }
    });
    findAllSdk().then(() => {
      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(name){
      this.$refs.dock_model.onJumpToDock(name)
    },
    onChangeBg(v){
       document.getElementById('app').style.backgroundImage = "url(" + v + ")"
       this.defaultBgUrl = v
      localStorage.setItem("backgroundPic", v)
    },
    showApps() {
      let _that = this;
      getApps().then(rsp => {
        if (rsp && rsp.success) {
          _that.$store.state.desktop.docks = [];
          let installedApps = [];
          rsp.data
          rsp.data.forEach(function (item) {
            if(item.installed){
            if (item.installed) {
              let temp = {
                id: item.id,
                create_by: item.create_by,
                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,
@@ -92,14 +127,17 @@
                width: item.width,
                isDefault: item.isDefault
              }
              _that.$store.commit('desktop/addDock', temp);
              console.log(item)
              console.log('apps update')
              //console.log(this.$store.state.desktop.docks)
              // 判断权限
              if (_that.isAdmin || _that.buttonAuthority.indexOf(item.package) >= 0) {
                _that.$store.commit('desktop/addDock', temp);
              }
              installedApps.push(item.package);
            }
          });
          sessionStorage.setItem("apps", installedApps.join(","));
        }
      })
    },