Sfoglia il codice sorgente

搭建页面布局

liuwei 4 anni fa
parent
commit
34350700d5
100 ha cambiato i file con 576 aggiunte e 673 eliminazioni
  1. 2 2
      .electron-vue/webpack.renderer.config.js
  2. 451 565
      .idea/workspace.xml
  3. 123 106
      src/renderer/components/Admin.vue
  4. BIN
      static/images/1.png
  5. BIN
      static/images/10.png
  6. BIN
      static/images/100.png
  7. BIN
      static/images/101.png
  8. BIN
      static/images/102.png
  9. BIN
      static/images/103.png
  10. BIN
      static/images/104.png
  11. BIN
      static/images/105.png
  12. BIN
      static/images/106.png
  13. BIN
      static/images/107.png
  14. BIN
      static/images/108.png
  15. BIN
      static/images/109.png
  16. BIN
      static/images/11.png
  17. BIN
      static/images/110.png
  18. BIN
      static/images/111.png
  19. BIN
      static/images/112.png
  20. BIN
      static/images/113.png
  21. BIN
      static/images/114.png
  22. BIN
      static/images/115.png
  23. BIN
      static/images/116.png
  24. BIN
      static/images/117.png
  25. BIN
      static/images/118.png
  26. BIN
      static/images/119.png
  27. BIN
      static/images/12.png
  28. BIN
      static/images/120.png
  29. BIN
      static/images/121.png
  30. BIN
      static/images/122.png
  31. BIN
      static/images/123.png
  32. BIN
      static/images/124.png
  33. BIN
      static/images/125.png
  34. BIN
      static/images/126.png
  35. BIN
      static/images/127.png
  36. BIN
      static/images/128.png
  37. BIN
      static/images/129.png
  38. BIN
      static/images/13.png
  39. BIN
      static/images/130.png
  40. BIN
      static/images/131.png
  41. BIN
      static/images/132.png
  42. BIN
      static/images/133.png
  43. BIN
      static/images/134.png
  44. BIN
      static/images/135.png
  45. BIN
      static/images/136.png
  46. BIN
      static/images/137.png
  47. BIN
      static/images/138.png
  48. BIN
      static/images/139.png
  49. BIN
      static/images/14.png
  50. BIN
      static/images/140.png
  51. BIN
      static/images/141.png
  52. BIN
      static/images/142.png
  53. BIN
      static/images/143.png
  54. BIN
      static/images/144.png
  55. BIN
      static/images/145.png
  56. BIN
      static/images/146.png
  57. BIN
      static/images/147.png
  58. BIN
      static/images/148.png
  59. BIN
      static/images/149.png
  60. BIN
      static/images/15.png
  61. BIN
      static/images/150.png
  62. BIN
      static/images/151.png
  63. BIN
      static/images/152.png
  64. BIN
      static/images/153.png
  65. BIN
      static/images/154.png
  66. BIN
      static/images/155.png
  67. BIN
      static/images/156.png
  68. BIN
      static/images/157.png
  69. BIN
      static/images/158.png
  70. BIN
      static/images/159.png
  71. BIN
      static/images/16.png
  72. BIN
      static/images/160.png
  73. BIN
      static/images/161.png
  74. BIN
      static/images/162.png
  75. BIN
      static/images/163.png
  76. BIN
      static/images/164.png
  77. BIN
      static/images/165.png
  78. BIN
      static/images/166.png
  79. BIN
      static/images/167.png
  80. BIN
      static/images/168.png
  81. BIN
      static/images/169.png
  82. BIN
      static/images/17.png
  83. BIN
      static/images/170.png
  84. BIN
      static/images/171.png
  85. BIN
      static/images/172.png
  86. BIN
      static/images/173.png
  87. BIN
      static/images/174.png
  88. BIN
      static/images/175.png
  89. BIN
      static/images/176.png
  90. BIN
      static/images/177.png
  91. BIN
      static/images/178.png
  92. BIN
      static/images/179.png
  93. BIN
      static/images/18.png
  94. BIN
      static/images/180.png
  95. BIN
      static/images/181.png
  96. BIN
      static/images/182.png
  97. BIN
      static/images/183.png
  98. BIN
      static/images/184.png
  99. BIN
      static/images/185.png
  100. 0 0
      static/images/186.png

+ 2 - 2
.electron-vue/webpack.renderer.config.js

@@ -130,9 +130,9 @@ let rendererConfig = {
         removeAttributeQuotes: true,
         removeComments: true
       },
-      /*nodeModules: process.env.NODE_ENV !== 'production'
+      nodeModules: process.env.NODE_ENV !== 'production'
         ? path.resolve(__dirname, '../node_modules')
-        : false*/
+        : false
     }),
     new webpack.HotModuleReplacementPlugin(),
     new webpack.NoEmitOnErrorsPlugin()

File diff suppressed because it is too large
+ 451 - 565
.idea/workspace.xml


+ 123 - 106
src/renderer/components/Admin.vue

@@ -1,104 +1,122 @@
 <!--管理界面-->
 <template>
     <div class="containers">
-        <div class="leftblank">
-            <img class="avator" src="../assets/images/avatar.jpg" alt="头像">
-            <div class="userinfo">
-                <p>{{user.username}}</p>
-                <el-link type="primary" @click="logout" :underline="false">退出</el-link>
-            </div>
+        <!--大屏显示-->
+        <div v-for="item in bigScreenJson"
+            :style="{
+                position:'absolute',
+                left:item.Left+'px',
+                top:item.Top+'px',
+                width:item.Width + 'px',
+                height:item.Height + 'px',
+                zIndex:item.ZIndex,
+                visibility:item.IsVisibility ? 'visible' : 'hidden',
+                backgroundColor:'#000000',
+                color:'#ffffff'
+            }"
+        >
+            {{item.Name}}
+        </div>
+
+        <!--按钮-->
+        <button v-for="item in buttonJson"
+                :style="{
+                position:'absolute',
+                left:item.Left+'px',
+                top:item.Top+'px',
+                width:item.Width + 'px',
+                height:item.Height + 'px',
+                zIndex:item.ZIndex,
+                visibility:item.IsVisibility ? 'visible' : 'hidden',
+                backgroundColor:`#${item.BrackgroupStr.slice(3)}`,
+                fontSize:item.FontSize + 'px',
+                backgroundImage:'url('+require(`../../../static/images/${item.BackIcon}`)+')',
+                backgroundRepeat:'no-repeat',
+                backgroundSize:'cover',
+                color:`#${item.ForegroundStr.slice(3)}`,
+            }"
+        >
+            {{item.Name}}
+        </button>
+
+        <!--图片-->
+        <div v-for="item in imageJson"
+            :style="{
+                position:'absolute',
+                left:item.Left+'px',
+                top:item.Top+'px',
+                width:item.Width + 'px',
+                height:item.Height + 'px',
+                zIndex:item.ZIndex,
+                visibility:item.IsVisibility ? 'visible' : 'hidden',
+                backgroundImage:'url('+require(`../../../static/images/${item.BackIcon}`)+')',
+                backgroundRepeat:'no-repeat',
+                backgroundSize:'cover',
+            }"
+        >
         </div>
-        <div class="maincontent">
-            <div class="title">
-                <p>分布式视频管理系统</p>
-            </div>
-            <div class="screenmanage">
-                <div class="pre_planmanage">
-                    <h2>预案管理</h2>
-                    <el-button type="primary" size="small" @click="addSignal">添加信号源</el-button>
-                    <el-button type="primary" size="small" @click="settingBackground">设置背景</el-button>
-                    <el-button type="primary" size="small" @click="addPrePlan">新建预案</el-button>
-                    <el-button type="primary" size="small" @click="loadPrePlan">加载预案</el-button>
-                    <el-button type="primary" size="small" @click="running">跑马灯</el-button>
-                    <el-button type="primary" size="small" @click="playertest">播放器测试</el-button>
-                    <el-button type="primary" size="small">send</el-button>
-                    <el-button type="primary" size="small">dummy</el-button>
-                    <el-button type="primary" size="small">clear device</el-button>
-                    <el-button type="primary" size="small">rebuild DB</el-button>
-                </div>
-                <div class="bigscreen_control">
-                    <draggable
-                            :class="['split_screen', splitScreenStatus === 0 ? 'split_screen_one' : splitScreenStatus === 1 ? 'split_screen_four' : splitScreenStatus === 2 ? 'split_screen_nine' : 'split_screen_sixteen']"
-                            element="div"
-                            v-model="signalList"
-                            :options="dragOptions2"
-                            :move="onMove"
-                            @start="isDragging=true"
-                            @end="isDragging=false"
-                    >
-                        <div v-for="(item,key) in signalList" :key="key" class="item">
-                            {{item.name}}
-                        </div>
-                    </draggable>
-
-                    <div class="control_btns">
-                        <!--分屏按钮-->
-                        <div class="split_btns">
-                            <el-button type="success" @click="spiltScreenOperation(0)">自由屏</el-button>
-                            <el-button type="success" @click="spiltScreenOperation(1)">四分屏</el-button>
-                            <el-button type="success" @click="spiltScreenOperation(2)">九分屏</el-button>
-                            <el-button type="success" @click="spiltScreenOperation(3)">十六分屏</el-button>
-                            <el-button type="success" @click="clearScreen">清屏</el-button>
-                        </div>
-
-                        <!--其他按钮-->
-                        <div class="other_btns">
-
-                        </div>
-                    </div>
-                </div>
-                <div class="signal_source">
-                    <div class="signal_title">
-                        <h2>信号源列表</h2>
-                    </div>
-                    <draggable
-                            class="signal_body"
-                            element="div"
-                            v-model="deviceList"
-                            :options="dragOptions1"
-                            :move="onMove"
-                            @start="isDragging=true"
-                            @end="isDragging=false"
-                    >
-                        <div class="signal_item" v-for="(item,index) in deviceList" :key="index">
-                            <div class="signal_item_bg">
-                                <div class="signal_item_bg_body">
-                                    <div class="signal_item_bg_body_space"></div>
-                                    <div class="signal_item_bg_body_font">{{item.name}}</div>
-                                </div>
-                            </div>
-                        </div>
-                    </draggable>
-                </div>
-            </div>
-            <div class="footmenu">
 
+        <!--label标签-->
+        <label v-for="item in lableJson"
+               :style="{
+             fontSize:item.FontSize + 'px',
+             position:'absolute',
+             left:item.Left+'px',
+             top:item.Top+'px',
+             width:item.Width + 'px',
+             height:item.Height + 'px',
+             zIndex:item.ZIndex,
+             visibility:item.IsVisibility ? 'visible' : 'hidden',
+             color:`#${item.ForegroundStr.slice(3)}`,
+        }">
+            {{item.Text}}
+        </label>
+
+        <!--信号源列表-->
+        <div
+            :style="{
+                position:'absolute',
+                left:signalList[0].Left+'px',
+                top:signalList[0].Top+'px',
+                width:signalList[0].Width + 'px',
+                height:signalList[0].Height + 'px',
+                zIndex:signalList[0].ZIndex,
+                visibility:signalList[0].IsVisibility ? 'visible' : 'hidden',
+                fontSize:signalList[0].FontSize + 'px',
+                color:`#${signalList[0].ForegroundStr.slice(3)}`,
+            }"
+        >
+            {{signalList[0].Name}}
+            <!--列表项-->
+            <div v-for="item in signalList[0].PreviewList" style="color:#ffffff">
+                {{item.DeviceName}}
             </div>
         </div>
-        <div class="rightblank">
 
+        <!--滑块-->
+        <div v-for="item in sliderJson"
+            :style="{
+                position:'absolute',
+                left:item.Left+'px',
+                top:item.Top+'px',
+                width:item.Width + 'px',
+                height:item.Height + 'px',
+                zIndex:item.ZIndex,
+                visibility:item.IsVisibility ? 'visible' : 'hidden',
+            }"
+        >
+            {{item.Name}}
         </div>
-        <addSignalModal />
-        <settingBackground />
-        <addPrePlan />
-        <loadPrePlan />
-        <running />
-        <playertest />
     </div>
 </template>
 
 <script>
-    import '../assets/less/admin.less'
+    import lableJson from '../../../static/EnityLable'
+    import bigScreenJson from '../../../static/EnityBigScreen'
+    import buttonJson from '../../../static/EnityButton'
+    import signalList from '../../../static/EnitySignalPreviewList'
+    import sliderJson from '../../../static/EnitySlider'
+    import imageJson from '../../../static/EnityImage'
     import storageUtils from "../../utils/storageUtils"
     import {mapState} from 'vuex'
     import draggable from 'vuedraggable'
@@ -118,14 +136,19 @@
             addPrePlan,
             loadPrePlan,
             running,
-            playertest
+            playertest,
         },
         data() {
             return {
                 user:storageUtils.getUser(),
-                signalList:[],  // 被拖到大屏中的信号源列表
                 isDragging:false,
                 splitScreenStatus:0,// 分屏状态(默认0: 自由屏,1: 4分屏  2:9分屏  3: 16分屏)
+                lableJson, // label标签配置
+                bigScreenJson,// 大屏显示配置
+                buttonJson, // button按钮配置
+                signalList, // 信号源列表配置
+                sliderJson, // 滑块配置
+                imageJson, // 图片配置
             }
         },
         methods: {
@@ -207,23 +230,17 @@
     }
 </script>
 
-<style>
-    .leftblank {
+<style lang="less">
+    .containers {
+        position: relative;
+        top: 0;
+        left: 0;
+        width: 100%;
+        height: 980px;
+        background-color: #333;
         display: flex;
-    }
-    .avator {
-        width: 50px;
-        height: 50px;
-        border-radius: 50%;
-        padding:15px;
-        cursor: pointer;
-    }
-    .userinfo {
-        padding-left:4px;
-    }
-    .userinfo p {
-        color:#fff;
-        margin-bottom:10px;
+        justify-content: center;
+        align-items: center;
     }
 </style>
 

BIN
static/images/1.png


BIN
static/images/10.png


BIN
static/images/100.png


BIN
static/images/101.png


BIN
static/images/102.png


BIN
static/images/103.png


BIN
static/images/104.png


BIN
static/images/105.png


BIN
static/images/106.png


BIN
static/images/107.png


BIN
static/images/108.png


BIN
static/images/109.png


BIN
static/images/11.png


BIN
static/images/110.png


BIN
static/images/111.png


BIN
static/images/112.png


BIN
static/images/113.png


BIN
static/images/114.png


BIN
static/images/115.png


BIN
static/images/116.png


BIN
static/images/117.png


BIN
static/images/118.png


BIN
static/images/119.png


BIN
static/images/12.png


BIN
static/images/120.png


BIN
static/images/121.png


BIN
static/images/122.png


BIN
static/images/123.png


BIN
static/images/124.png


BIN
static/images/125.png


BIN
static/images/126.png


BIN
static/images/127.png


BIN
static/images/128.png


BIN
static/images/129.png


BIN
static/images/13.png


BIN
static/images/130.png


BIN
static/images/131.png


BIN
static/images/132.png


BIN
static/images/133.png


BIN
static/images/134.png


BIN
static/images/135.png


BIN
static/images/136.png


BIN
static/images/137.png


BIN
static/images/138.png


BIN
static/images/139.png


BIN
static/images/14.png


BIN
static/images/140.png


BIN
static/images/141.png


BIN
static/images/142.png


BIN
static/images/143.png


BIN
static/images/144.png


BIN
static/images/145.png


BIN
static/images/146.png


BIN
static/images/147.png


BIN
static/images/148.png


BIN
static/images/149.png


BIN
static/images/15.png


BIN
static/images/150.png


BIN
static/images/151.png


BIN
static/images/152.png


BIN
static/images/153.png


BIN
static/images/154.png


BIN
static/images/155.png


BIN
static/images/156.png


BIN
static/images/157.png


BIN
static/images/158.png


BIN
static/images/159.png


BIN
static/images/16.png


BIN
static/images/160.png


BIN
static/images/161.png


BIN
static/images/162.png


BIN
static/images/163.png


BIN
static/images/164.png


BIN
static/images/165.png


BIN
static/images/166.png


BIN
static/images/167.png


BIN
static/images/168.png


BIN
static/images/169.png


BIN
static/images/17.png


BIN
static/images/170.png


BIN
static/images/171.png


BIN
static/images/172.png


BIN
static/images/173.png


BIN
static/images/174.png


BIN
static/images/175.png


BIN
static/images/176.png


BIN
static/images/177.png


BIN
static/images/178.png


BIN
static/images/179.png


BIN
static/images/18.png


BIN
static/images/180.png


BIN
static/images/181.png


BIN
static/images/182.png


BIN
static/images/183.png


BIN
static/images/184.png


BIN
static/images/185.png


+ 0 - 0
static/images/186.png


Some files were not shown because too many files changed in this diff