zhangyu 5 лет назад
Родитель
Сommit
11ef6ed0fa

+ 1 - 8
config/index.js

@@ -94,14 +94,7 @@ module.exports = {
                 pathRewrite: {
                     "^/modelapi": "/"
                 }
-            },
-            '/messageapi': {
-                target: 'http://192.168.20.153:8080',
-                changeOrigin: true,
-                pathRewrite: {
-                    "^/messageapi": "/"
-                }
-            },
+            }
         },
 
         // Various Dev Server settings

+ 1 - 1
src/api/msgsever.js

@@ -1,5 +1,5 @@
 import http from './scan/httpUtil'
-const baseUrl = '/messageapi';
+const baseUrl = '/api';
 
 /*************************消息中心接口****************************/
 

+ 25 - 1
src/framework/layout/PageHeader.vue

@@ -27,6 +27,9 @@
                 </el-dropdown-menu>
             </el-dropdown>
             <ul class="header-nav">
+                <li class="header-nav-Splitscreen">
+                    <a href="/splitScreen" target="_blank"><i class="el-icon-s-platform"></i></a>
+                </li>
                 <li class="header-nav-notification">
                     <message-sever></message-sever>
                 </li>
@@ -87,4 +90,25 @@ export default {
         MessageSever
     }
 }
-</script>
+</script>
+<style lang="scss" scoped>
+.header-nav-Splitscreen>a{
+    display: flex;
+    width: 100%;
+    height: 100%;
+    position: relative;
+    padding: 16px 10px 10px;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+    color: #79869a;
+    font-size: 24px;
+    text-decoration: none;
+    cursor: pointer;
+    i{transition:all 0ms ease 0ms}
+}
+.header-nav-Splitscreen>a:hover{
+    text-decoration: none;
+    color: #d3d8e2;
+    background-color: #3f4f62;
+}
+</style>

+ 2 - 0
src/framework/layout/layout-store.js

@@ -1,5 +1,6 @@
 import frameworkApi from '@/api/framework'
 import storage from '@/framework/utils/storage'
+import localStorage from '@/utils/localStorage'
 import axios from 'axios'
 import authutils from '../../utils/authutils'
 
@@ -61,6 +62,7 @@ export default {
         setSidebarSelected: (state, val) => {
             state.sidebarSelected = val
             storage.set(KEY_MENU_SELECTED, val)
+            localStorage.set('screen_data', {path: val,data: {}})
         },
         setprojectId: (state, val) => {
             let cacheInfo = JSON.parse(localStorage.getItem('_sagacloud_admin_store_cacheInfo'))?JSON.parse(localStorage.getItem('_sagacloud_admin_store_cacheInfo')):{}

+ 15 - 0
src/router/system.js

@@ -75,6 +75,11 @@ import overView from '@/views/relation/overview'
 /**  厂家库 */
 import supplier from '@/views/manufactor/supplier'
 
+/**  辅助屏 */
+import splitScreen from '@/views/screen/splitScreen'
+import spaceLedger from '@/views/screen/splitScreen/spaceledger'
+import integrateResults from '@/views/screen/splitScreen/integrateresults'
+
 /**  业务空间数据导入工具 */
 import dataUtil from '@/views/business_space/dataUtil'
 
@@ -89,6 +94,16 @@ export default [
     { path: '/noUser', name: 'noUser', component: noUser },
     // 业务空间数据导入工具
     { path: '/dataUtil', name: 'dataUtil', component: LayoutMain,children:[{path:'index',component: dataUtil}] },
+    // 辅助屏
+    {
+        path: '/splitScreen', 
+        name: 'splitScreen', 
+        component: splitScreen,
+        children: [
+            {path: 'spaceledger', name: 'spaceLedger', component: spaceLedger},
+            {path: 'integrateresults', name: 'integrateResults', component: integrateResults}
+        ]
+     },
     // 平台管理
     {
         path: '/platform',

+ 33 - 0
src/utils/localStorage.js

@@ -0,0 +1,33 @@
+const PREFIX = '_sagacloud_admin_store_'
+const loaclStorage = window.localStorage
+
+export default {
+    set(key, value, fn) {
+        let _value = null
+        try {
+            _value = JSON.stringify(value)
+        } catch (e) {
+            _value = value
+        }
+        loaclStorage.setItem(PREFIX + key, _value)
+        fn && fn()
+    },
+    get(key, fn) {
+        if (!key) {
+            return null
+        }
+        if (typeof key === 'object') {
+            throw new Error('key不能是一个对象。')
+        }
+        var _value = loaclStorage.getItem(PREFIX + key)
+        if (_value !== null) {
+            try {
+                return JSON.parse(_value)
+            } catch (e) {}
+        }
+        return _value
+    },
+    remove(key) {
+        loaclStorage.removeItem(PREFIX + key)
+    }
+}

+ 77 - 0
src/views/screen/splitscreen/index.vue

@@ -0,0 +1,77 @@
+<!--
+ * @Author: zhangyu
+ * @Date: 2019-11-05 15:36:21
+ * @Info: 
+ * @LastEditTime: 2019-11-06 19:09:20
+ -->
+<template>
+  <div id="screenBox">
+    <router-view class="screen-router"></router-view>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+import localStorage from '@/utils/localStorage'
+
+export default {
+  data() {
+    return {
+      
+    }
+  },
+  created() {
+    localStorage.set('screen_data', {})
+  },
+  mounted() {
+    window.addEventListener("storage", event =>{
+      if(event.key == '_sagacloud_admin_store_screen_data'){
+        let data
+        try {
+          data = JSON.parse(event.newValue)
+        } catch (error) {
+          data = event.newValue
+        }
+        this.handleChangeRouter(data)
+      }
+    });
+  },
+  destroyed() {
+    window.removeEventListener("storage", event => {})
+    localStorage.remove('screen_data')
+  },
+  computed: {
+    ...mapGetters('layout', ['userInfo', 'projectId', 'projects', 'userId'])
+  },
+  methods:{
+    handleChangeRouter(data) {
+      console.log(data)
+      if(data.path && data.path == '/ledger/spacelist'){//业务空间台账
+        this.$router.push({
+          path:'/splitScreen/spaceledger',
+          query: data.data
+        })
+      } else if (data.path && data.path == '/point/report') {//系统集成成果管理
+        this.$router.push({
+          path:'/splitScreen/integrateresults',
+          query: data.data
+        })
+      } else {
+        this.$router.push({
+          path:'/splitScreen'
+        })
+      }
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+#screenBox{
+  width: 100%;
+  height: 100%;
+  .screen-router{
+    margin: 10px;
+  }
+}
+</style>

+ 34 - 0
src/views/screen/splitscreen/integrateresults/index.vue

@@ -0,0 +1,34 @@
+
+<template>
+  <div>
+    <h1>系统集成成果辅助屏</h1>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+
+export default {
+  data() {
+    return {
+      
+    }
+  },
+  created() {
+
+  },
+  mounted() {
+
+  },
+  computed: {
+    ...mapGetters('layout', ['userInfo', 'projectId', 'projects', 'userId'])
+  },
+  methods:{
+    
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 33 - 0
src/views/screen/splitscreen/spaceledger/index.vue

@@ -0,0 +1,33 @@
+
+<template>
+  <div>
+    <h1>业务空间台账辅助屏</h1>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from 'vuex'
+
+export default {
+  data() {
+    return {
+      
+    }
+  },
+  created() {
+
+  },
+  mounted() {
+  },
+  computed: {
+    ...mapGetters('layout', ['userInfo', 'projectId', 'projects', 'userId'])
+  },
+  methods:{
+    
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>