From 0187673aed8ba72058ee74fbb7538cf040a43606 Mon Sep 17 00:00:00 2001
From: hanbaoshan <hanbaoshan@aiotlink.com>
Date: 星期四, 23 七月 2020 20:09:07 +0800
Subject: [PATCH] 桌面添加交互(打开/最小化应用,显示桌面最小化已打开的应用,显示隐藏通知)
---
public/index.html | 2
src/pages/desktop/index/components/NotificationCenter.vue | 3
src/pages/desktop/index/components/ToolsEntry.vue | 35 ++++
src/pages/desktop/index/mock/userData-copy.json | 69 ++++++++
public/favicon.png | 0
src/pages/desktop/index/components/DFrame.vue | 12
src/pages/desktop/index/App.vue | 11
src/pages/desktop/index/components/Tools.vue | 115 ++++++++++---
src/pages/algorithmManage/index/store/modules/algorithm.js | 79 +++++++++
src/pages/desktop/index/mock/userData.json | 139 +++++++++++++---
src/pages/algorithmManage/index/store/index.ts | 0
11 files changed, 392 insertions(+), 73 deletions(-)
diff --git a/public/favicon.png b/public/favicon.png
new file mode 100644
index 0000000..39454d9
--- /dev/null
+++ b/public/favicon.png
Binary files differ
diff --git a/public/index.html b/public/index.html
index fb92cd4..d11d0ca 100644
--- a/public/index.html
+++ b/public/index.html
@@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
- <link rel="icon" href="<%= BASE_URL %>favicon.ico">
+ <link rel="icon" type="image/png" href="<%= BASE_URL %>favicon.png" sizes="32x32" >
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
diff --git a/src/pages/algorithmManage/index/store/index.ts b/src/pages/algorithmManage/index/store/index.ts
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/pages/algorithmManage/index/store/index.ts
diff --git a/src/pages/algorithmManage/index/store/modules/algorithm.js b/src/pages/algorithmManage/index/store/modules/algorithm.js
new file mode 100644
index 0000000..e7735dc
--- /dev/null
+++ b/src/pages/algorithmManage/index/store/modules/algorithm.js
@@ -0,0 +1,79 @@
+const state = {
+ list1 = [],
+ list2 = [
+ {
+ id: "001",
+ name: "浠诲姟1",
+ child: [
+ {
+ id: "1",
+ sdk_name: "浜鸿劯妫�娴�",
+ isSelect: false
+ },
+ {
+ id: "2",
+ sdk_name: "浜鸿劯瀵规瘮",
+ isSelect: false
+ }
+ ],
+ isSetting: false,
+ isShowSetAlgo: false
+ }
+ ],
+ argsList : [],
+ baseObject : {
+ id: '',
+ algoId: '',
+ options1: [],
+ options2: [],
+ options3: [],
+ value1: '',
+ value2: '',
+ value3: '',
+ unit: ''
+ },
+ currentAlgoId : '',
+ currentTaskId : ''
+};
+
+const getters = {};
+
+const mutations = {
+ findAllSdk(state, data){
+ state.list1 = data;
+ },
+ findByType(state, data){
+ state.baseObject.options2 = data;
+ }
+};
+const actions = {
+ findAllSdk({commit},params) {
+ let res = await findAllSdk({});
+ if (res && res.success) {
+ commit('findAllSdk',res.data)
+ }
+ },
+
+ findByType({commit},params) {
+ let res = await findByType({});
+ console.log(res,'findByType')
+ if (res && res.success) {
+ let list = res.data.RULECOMPUTEBETWEEN.map((i) => {
+ let obj = {}
+ obj.name = i.name
+ obj.value = i.value
+ return obj
+ })
+ //this.baseObject.options2 = [...list]
+ commit('findByType',[...list]);
+ }
+ },
+
+
+};
+export default{
+ state,
+ getters,
+ actions,
+ mutations
+}
\ No newline at end of file
diff --git a/src/pages/desktop/index/App.vue b/src/pages/desktop/index/App.vue
index aaa21d5..d87fecd 100644
--- a/src/pages/desktop/index/App.vue
+++ b/src/pages/desktop/index/App.vue
@@ -1,10 +1,9 @@
<template>
<div id="app">
<tools></tools>
- <preference></preference>
<desktop></desktop>
- <tools-entry></tools-entry>
- <dock ref="dock_model"></dock>
+ <tools-entry ref="dock_model"></tools-entry>
+ <!-- <dock ref="dock_model"></dock> -->
<notice-tip ref="notice_tip_model"></notice-tip>
<notification-center></notification-center>
</div>
@@ -35,9 +34,9 @@
});
}
- setTimeout(function () {
- _that.$refs.dock_model.initDockItem();
- }, 100);
+ // setTimeout(function () {
+ // _that.$refs.dock_model.initDockItem();
+ // }, 100);
// axios.get(process.env.VUE_APP_USER_DATA_URL).then(function (res) {
// });
diff --git a/src/pages/desktop/index/components/DFrame.vue b/src/pages/desktop/index/components/DFrame.vue
index 7e78066..ae56e08 100644
--- a/src/pages/desktop/index/components/DFrame.vue
+++ b/src/pages/desktop/index/components/DFrame.vue
@@ -57,7 +57,7 @@
alt: this.data.title,
type: "3"
});
- this.refreshDock();
+ //this.refreshDock();
},
refreshDock: function () {
setTimeout(function () {
@@ -66,7 +66,7 @@
for (let i = 0; i < dockItems.length; i++) {
dockItems[i].width = 60;
}
- dockMask.style.width = dockItems.length * 60 + 40 + 'px';
+ //dockMask.style.width = dockItems.length * 60 + 40 + 'px';
}, 10);
}
},
@@ -170,15 +170,17 @@
}
.d-frame-title-content img {
- width: 25px;
- height: 25px;
+ width: auto;
+ height: 18px;
position: relative;
top: 3px;
+ margin-right: 6px;
}
.d-frame-title-content span {
position: relative;
- top: -3px;
+ top: -1px;
+ /* font-family: '榛戜綋'; */
}
.d-frame-content {
diff --git a/src/pages/desktop/index/components/NotificationCenter.vue b/src/pages/desktop/index/components/NotificationCenter.vue
index 777175a..32e2fdb 100644
--- a/src/pages/desktop/index/components/NotificationCenter.vue
+++ b/src/pages/desktop/index/components/NotificationCenter.vue
@@ -74,10 +74,11 @@
.notification-center {
position: absolute;
right: 0;
- top: 30px;
+ top: 40px;
height: calc(100% - 30px);
width: 300px;
background-color: rgba(200, 200, 200, 0.7);
+ box-shadow: -1px 1px 2px rgba(0,0,0,.3);
z-index: 140;
}
diff --git a/src/pages/desktop/index/components/Tools.vue b/src/pages/desktop/index/components/Tools.vue
index 385e1d2..a874279 100644
--- a/src/pages/desktop/index/components/Tools.vue
+++ b/src/pages/desktop/index/components/Tools.vue
@@ -3,44 +3,52 @@
<div class="center">
<div class="tools-left">
<div
- :class="['tools-icon', {clicked:this.$store.state.desktop.preferenceVisiable}]"
+ :class="['tools-icon','tools-show-desktop', {clicked:this.$store.state.desktop.preferenceVisiable}]"
@click="togglePreference()"
>
<img class="system" :src="`${publicPath}images/header-icon/system.png`" />
<!-- <span class="fa fa-apple"></span> -->
</div>
- <div class="tools-icon" @click="openSafari()">
+ <div class="tools-icon" >
<!-- <span class="fa fa-safari"></span> -->
- <img class="smart-ai" :src="`${publicPath}images/header-icon/SmartAI.png`" alt="">
+ <img class="smart-ai" :src="`${publicPath}images/header-icon/SmartAI.png`" alt />
</div>
</div>
- <div class="tools-middle"></div>
+ <div class="tools-middle">
+ <div
+ v-for="dock in this.$store.state.desktop.minDocks"
+ :key="dock.id"
+ class="dock-item-wrap"
+
+ >
+ <a @click="dockClick(dock)">
+ <img class="dock-item" :src="dock.src" :alt="dock.alt" />
+ </a>
+ </div>
+ </div>
<div class="tools-right">
<div class="tools-icon">
<!-- <span class="fa fa-battery-full"></span> -->
- <img :src="`${publicPath}images/header-icon/search.png`" alt="">
+ <img :src="`${publicPath}images/header-icon/search.png`" alt />
</div>
<div class="tools-icon">
<!-- <span class="fa fa-battery-full"></span> -->
- <img :src="`${publicPath}images/header-icon/help.png`" alt="">
+ <img :src="`${publicPath}images/header-icon/help.png`" alt />
+ </div>
+ <div class="tools-icon" @click="notificationCenterClick()">
+ <!-- <span class="fa fa-battery-full"></span> -->
+ <img :src="`${publicPath}images/header-icon/notice.png`" alt />
</div>
<div class="tools-icon">
<!-- <span class="fa fa-battery-full"></span> -->
- <img :src="`${publicPath}images/header-icon/notice.png`" alt="">
- </div>
- <div class="tools-icon">
- <!-- <span class="fa fa-battery-full"></span> -->
- <img :src="`${publicPath}images/header-icon/user.png`" alt="">
+ <img :src="`${publicPath}images/header-icon/user.png`" alt />
</div>
<!-- <timer></timer> -->
- <div class="tools-icon tools-notification-center" @click="notificationCenterClick()">
+ <!-- <div class="tools-icon tools-notification-center" @click="notificationCenterClick()">
<span
:class="['fa', {'fa-list-ul':notificationCenterNoMessage()}, {'fa-comment-o on-new-msg':!notificationCenterNoMessage()},{'fa-commenting-o':notificationCenterMessageFlicker()}]"
></span>
- </div>
- <div class="tools-icon tools-show-desktop">
- <span> </span>
- </div>
+ </div> -->
</div>
</div>
</div>
@@ -89,11 +97,33 @@
!this.notificationCenterNoMessage()
);
},
- openSafari: function() {
- this.$store.commit("desktop/openSafari");
+
+ togglePreference() {
+ //this.$store.commit("desktop/togglePreference");
+ //鏄剧ず妗岄潰,鏈�灏忓寲宸叉墦寮�鐨勫簲鐢�
+ debugger;
+ this.$store.state.desktop.frames.forEach(frame=>{
+ this.$store.commit('desktop/addMinDock', {
+ id: frame.id,
+ src: frame.icon,
+ alt: frame.title,
+ type: "3"
+ });
+ })
},
- togglePreference: function() {
- this.$store.commit("desktop/togglePreference");
+ dockClick(dock) {
+ if (dock.type === "1") {
+ window.open(dock.url);
+ } else if (dock.type === "2") {
+ this.$store.dispatch("desktop/addFrame", {
+ id: dock.id,
+ icon: dock.src,
+ title: dock.name,
+ url: dock.url
+ });
+ } else if (dock.type === "3") {
+ this.$store.commit("desktop/resetMinFrame", dock.id);
+ }
}
}
};
@@ -121,16 +151,49 @@
height: 100%;
float: left;
margin-left: 8px;
-
}
-
+.tools .tools-middle{
+ float: left;
+ position: relative;
+}
+.tools .tools-middle::before{
+ width: 1px;
+ height: 20px;
+ content: '';
+ position: absolute;
+ top: 10px;
+ left: 0;
+ background: rgba(0, 0, 0, 0.2);
+}
+.tools .tools-middle .dock-item-wrap {
+ display: inline-block;
+ padding: 0 10px;
+ height: 38px;
+ line-height: 54px;
+ margin-right: 1px;
+ border-bottom: 2px solid transparent;
+}
+.tools .tools-middle .dock-item-wrap:hover,
+.tools .tools-middle .dock-item-wrap.clicked{
+ color: white;
+ background-color: #98aabe;
+ border-color: #40C3FF;
+ cursor: pointer;
+}
+.dock-item-wrap a {
+ height: 100%;
+}
+.dock-item-wrap img {
+ width: auto;
+ height: 70%;
+}
.tools-icon {
text-align: center;
height: 100%;
display: inline-block;
vertical-align: top;
line-height: 56px;
- margin-right: 28px;
+ padding: 0 15px;
}
.tools .tools-icon:hover,
@@ -143,11 +206,5 @@
.tools .tools-right {
float: right;
height: 100%;
-}
-
-.tools .tools-right .tools-show-desktop {
- border-left: grey 1px solid;
- width: 5px;
- margin-left: 3px;
}
</style>
\ No newline at end of file
diff --git a/src/pages/desktop/index/components/ToolsEntry.vue b/src/pages/desktop/index/components/ToolsEntry.vue
index adbba7c..ea7b7cd 100644
--- a/src/pages/desktop/index/components/ToolsEntry.vue
+++ b/src/pages/desktop/index/components/ToolsEntry.vue
@@ -2,12 +2,12 @@
<div class="tools-entry">
<div class="entry-wrap">
<div class="app-list clearFix">
- <div class="app" v-for="(item,index) in applist" :key="index">
+ <div class="app" v-for="dock in this.$store.state.desktop.docks" :key="dock.id" @click="dockClick(dock)">
<div class="wrap">
<div class="app-icon">
- <img :src="item.src" alt="">
+ <img :src="dock.src" :alt="dock.alt">
</div>
- <div class="app-name">{{item.name}}</div>
+ <div class="app-name">{{dock.name}}</div>
</div>
</div>
</div>
@@ -42,6 +42,35 @@
{src: `/images/app-mid/vindicate.png`, name:'绯荤粺缁存姢'}
]
}
+ },
+ methods:{
+
+ dockClick(dock) {
+ if (dock.type === '1') {
+ window.open(dock.url);
+ } else if (dock.type === '2') {
+ this.$store.dispatch('desktop/addFrame', {
+ id: dock.id,
+ icon: dock.src,
+ title: dock.name,
+ url: dock.url
+ });
+ } else if (dock.type === '3') {
+ this.$store.commit('desktop/resetMinFrame', dock.id);
+ this.resetDockItem();
+ }
+ },
+ resetDockItem() {
+ const dockItems = document.getElementsByClassName('dock-item');
+ const dockMask = document.getElementsByClassName('dock-mask')[0];
+ for (let i = 0; i < dockItems.length; i++) {
+ dockItems[i].width = 60;
+ if (dockItems[i].parentNode.nextElementSibling) {
+ dockItems[i].parentNode.nextElementSibling.style.marginLeft = "-35px";
+ }
+ }
+ dockMask.style.width = dockItems.length * 60 + 40 + 'px';
+ },
}
};
</script>
diff --git a/src/pages/desktop/index/mock/userData-copy.json b/src/pages/desktop/index/mock/userData-copy.json
new file mode 100644
index 0000000..c5040fd
--- /dev/null
+++ b/src/pages/desktop/index/mock/userData-copy.json
@@ -0,0 +1,69 @@
+{
+ "code": "0000",
+ "success": true,
+ "data": {
+ "docks": [
+ {
+ "id": "1",
+ "src": "../../images/finder.png",
+ "alt": "finder",
+ "type": "0"
+ },
+ {
+ "id": "2",
+ "src": "../../images/launchpad.png",
+ "alt": "launchpad",
+ "type": "0"
+ },
+ {
+ "id": "3",
+ "src": "../../images/gitee.png",
+ "alt": "gitee",
+ "type": "1",
+ "url": "https://gitee.com/justlive1"
+ },
+ {
+ "id": "4",
+ "src": "../../images/github.png",
+ "alt": "github",
+ "type": "1",
+ "url": "https://github.com/justlive1"
+ },
+ {
+ "id": "5",
+ "src": "../../images/maps.png",
+ "alt": "maps",
+ "type": "2",
+ "url": "https://map.baidu.com"
+ },
+ {
+ "id": "6",
+ "src": "../../images/blog.png",
+ "alt": "blog",
+ "type": "2",
+ "url": "http://www.justlive.vip/blog"
+ },
+ {
+ "id": "7",
+ "src": "../../images/iBooks.png",
+ "alt": "GB28181",
+ "type": "2",
+ "url": "/view/gb28181"
+ },
+ {
+ "id": "8",
+ "src": "../../images/frost.png",
+ "alt": "鍒嗗竷寮忚皟搴�",
+ "type": "2",
+ "url": "http://www.justlive.vip/center/"
+ },
+ {
+ "id": "9",
+ "src": "../../images/gitee.png",
+ "alt": "绠楁硶绠$悊",
+ "type": "2",
+ "url": "/view/algorithmManage"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/src/pages/desktop/index/mock/userData.json b/src/pages/desktop/index/mock/userData.json
index c5040fd..6630892 100644
--- a/src/pages/desktop/index/mock/userData.json
+++ b/src/pages/desktop/index/mock/userData.json
@@ -5,64 +5,147 @@
"docks": [
{
"id": "1",
- "src": "../../images/finder.png",
- "alt": "finder",
- "type": "0"
+ "src": "../../images/app-mid/camera-access.png",
+ "alt": "camera-access",
+ "type": "2",
+ "url": "/view/camera",
+ "name":"鎽勫儚鏈烘帴鍏�"
},
{
"id": "2",
- "src": "../../images/launchpad.png",
- "alt": "launchpad",
- "type": "0"
+ "src": "../../images/app-mid/datastack-config.png",
+ "alt": "datastack-config",
+ "type": "2",
+ "url": "/view/datastack",
+ "name":"鏁版嵁鏍堥厤缃�"
},
{
"id": "3",
- "src": "../../images/gitee.png",
- "alt": "gitee",
- "type": "1",
- "url": "https://gitee.com/justlive1"
+ "src": "../../images/app-mid/DVR-access.png",
+ "alt": "DVR",
+ "type": "2",
+ "url": "/view/DVR",
+ "name": "纭洏褰曞儚鏈烘帴鍏�"
},
{
"id": "4",
- "src": "../../images/github.png",
- "alt": "github",
- "type": "1",
- "url": "https://github.com/justlive1"
+ "src": "../../images/app-mid/data-push.png",
+ "alt": "data-push",
+ "type": "2",
+ "url": "/view/datapush",
+ "name": "鏁版嵁鎺ㄩ��"
},
{
"id": "5",
- "src": "../../images/maps.png",
- "alt": "maps",
+ "src": "../../images/app-mid/GB-config.png",
+ "alt": "GB28281閰嶇疆",
"type": "2",
- "url": "https://map.baidu.com"
+ "url": "/view/gb28181",
+ "name": "GB28281閰嶇疆"
},
{
"id": "6",
- "src": "../../images/blog.png",
- "alt": "blog",
+ "src": "../../images/app-mid/scene-config.png",
+ "alt": "鍦烘櫙閰嶇疆",
"type": "2",
- "url": "http://www.justlive.vip/blog"
+ "url": "/view/scene",
+ "name": "鍦烘櫙閰嶇疆"
},
{
"id": "7",
- "src": "../../images/iBooks.png",
- "alt": "GB28181",
+ "src": "../../images/app-mid/library.png",
+ "alt": "姣斿搴撶鐞�",
"type": "2",
- "url": "/view/gb28181"
+ "url": "/view/gb28181",
+ "name": "姣斿搴撶鐞�"
},
{
"id": "8",
- "src": "../../images/frost.png",
- "alt": "鍒嗗竷寮忚皟搴�",
+ "src": "../../images/app-mid/poll.png",
+ "alt": "杞绠$悊",
"type": "2",
- "url": "http://www.justlive.vip/center/"
+ "url": "/view/poll",
+ "name": "杞绠$悊"
},
{
"id": "9",
- "src": "../../images/gitee.png",
+ "src": "../../images/app-mid/algorithm-manage.png",
"alt": "绠楁硶绠$悊",
"type": "2",
- "url": "/view/algorithmManage"
+ "url": "/view/algorithmManage",
+ "name": "绠楁硶绠$悊"
+ },
+ {
+ "id": "10",
+ "src": "../../images/app-mid/algorithm-store.png",
+ "alt": "绠楁硶鍟嗗煄",
+ "type": "2",
+ "url": "/view/algorithmStore",
+ "name": "绠楁硶鍟嗗煄"
+ },
+ {
+ "id": "11",
+ "src": "../../images/app-mid/hashrate-manage.png",
+ "alt": "绠楀姏绠$悊",
+ "type": "2",
+ "url": "/view/hashrateManage",
+ "name": "绠楀姏绠$悊"
+ },
+ {
+ "id": "12",
+ "src": "../../images/app-mid/monitor.png",
+ "alt": "瀹炴椂鐩戞帶-鍦ㄧ嚎鎾斁",
+ "type": "2",
+ "url": "/view/monitor",
+ "name": "瀹炴椂鐩戞帶-鍦ㄧ嚎鎾斁"
+ },
+ {
+ "id": "13",
+ "src": "../../images/app-mid/search.png",
+ "alt": "妫�绱�-缁熻鏌ヨ",
+ "type": "2",
+ "url": "/view/search",
+ "name": "妫�绱�-缁熻鏌ヨ"
+ },
+ {
+ "id": "14",
+ "src": "../../images/app-mid/360.png",
+ "alt": "鍏ㄦ櫙瑙嗛",
+ "type": "2",
+ "url": "/view/panoramicVideo",
+ "name": "鍏ㄦ櫙瑙嗛"
+ },
+ {
+ "id": "14",
+ "src": "../../images/app-mid/log-manage.png",
+ "alt": "鏃ュ織绠$悊",
+ "type": "2",
+ "url": "/view/logManage",
+ "name": "鏃ュ織绠$悊"
+ },
+ {
+ "id": "14",
+ "src": "../../images/app-mid/device.png",
+ "alt": "璁惧绠$悊",
+ "type": "2",
+ "url": "/view/device",
+ "name": "璁惧绠$悊"
+ },
+ {
+ "id": "15",
+ "src": "../../images/app-mid/settings.png",
+ "alt": "绯荤粺璁剧疆",
+ "type": "2",
+ "url": "/view/settings",
+ "name": "绯荤粺璁剧疆"
+ },
+ {
+ "id": "16",
+ "src": "../../images/app-mid/vindicate.png",
+ "alt": "绯荤粺缁存姢",
+ "type": "2",
+ "url": "/view/vindicate",
+ "name": "绯荤粺缁存姢"
}
]
}
--
Gitblit v1.8.0