|
@@ -1,129 +1,233 @@
|
|
|
<template>
|
|
|
- <!-- 右侧固定栏 -->
|
|
|
- <div class="v-widget-window syno-sds-widget v-window"
|
|
|
- style="position: absolute; width: 344px; height: 466px; bottom: 10px; right: 10px;min-height: 164px !important;"
|
|
|
- :style="{zIndex:zIndex}"
|
|
|
- :class="cls"
|
|
|
- @click ="clickFixWindow">
|
|
|
- <div class="v-window-header-wrapper draggable">
|
|
|
- <div class="v-widget-header">
|
|
|
- <div class="v-widget-header-left"><button type="button"
|
|
|
- class="v-btn v-btn-styleless v-btn-grey v-btn-dropdown"><span>
|
|
|
- <div class="v-widget-header-tool-icon add" @click.stop="selectWidgetItem"></div>
|
|
|
- </span>
|
|
|
- </button></div>
|
|
|
- <div class="v-widget-header-right">
|
|
|
- <div class="v-widget-header-tool-icon minimize"></div>
|
|
|
- <div class="v-widget-header-tool-icon pin"></div> <button type="button"
|
|
|
- class="v-btn v-btn-styleless v-btn-grey v-btn-dropdown"><span>
|
|
|
- <div class="v-widget-header-tool-icon dock active"></div>
|
|
|
- </span>
|
|
|
- </button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <!-- 右侧固定栏 -->
|
|
|
+ <div
|
|
|
+ class="v-widget-window syno-sds-widget v-window"
|
|
|
+ style="
|
|
|
+ position: absolute;
|
|
|
+ width: 344px;
|
|
|
+ height: 466px;
|
|
|
+ bottom: 10px;
|
|
|
+ right: 10px;
|
|
|
+ min-height: 164px !important;
|
|
|
+ "
|
|
|
+ :style="{ zIndex: zIndex, display: display }"
|
|
|
+ :class="cls"
|
|
|
+ @click="clickFixWindow"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="v-window-header-wrapper draggable"
|
|
|
+ @mousedown="mousedownWidgetHeader"
|
|
|
+ >
|
|
|
+ <div class="v-widget-header">
|
|
|
+ <div class="v-widget-header-left">
|
|
|
+ <button
|
|
|
+ type="button"
|
|
|
+ class="v-btn v-btn-styleless v-btn-grey v-btn-dropdown"
|
|
|
+ >
|
|
|
+ <span>
|
|
|
+ <div
|
|
|
+ class="v-widget-header-tool-icon add"
|
|
|
+ @click.stop="selectWidgetItem"
|
|
|
+ ></div>
|
|
|
+ </span>
|
|
|
+ </button>
|
|
|
+ </div>
|
|
|
+ <div class="v-widget-header-right">
|
|
|
+ <div
|
|
|
+ class="v-widget-header-tool-icon minimize"
|
|
|
+ @click.stop="minimizeFixWndow"
|
|
|
+ ></div>
|
|
|
+ <div class="v-widget-header-tool-icon pin"></div>
|
|
|
+ <button
|
|
|
+ type="button"
|
|
|
+ class="v-btn v-btn-styleless v-btn-grey v-btn-dropdown"
|
|
|
+ >
|
|
|
+ <span>
|
|
|
+ <div
|
|
|
+ class="v-widget-header-tool-icon dock active"
|
|
|
+ @click.stop="selectWidgetPosition"
|
|
|
+ ></div>
|
|
|
+ </span>
|
|
|
+ </button>
|
|
|
</div>
|
|
|
-
|
|
|
- <div tabindex="-1" class="v-window-body">
|
|
|
- <div tabindex="0" class="v-trap-focus-indicator"></div>
|
|
|
- <div class="v-trap-focus-body">
|
|
|
- <div tabindex="0" role="application" class="v-trap-focus-indicator"></div>
|
|
|
- <div class="v-widget-items-wrapper">
|
|
|
- <div class="v-ps show ps--active-y">
|
|
|
- <!-- <div class="v-widget-list" style="overflow-y:scroll;height:100%" @scroll="scrollList"> -->
|
|
|
- <div class="v-widget-list" @scroll="scrollList">
|
|
|
- <RunningState></RunningState>
|
|
|
- <ResourceMonitor></ResourceMonitor>
|
|
|
- <Storage></Storage>
|
|
|
- <ConnectedUser></ConnectedUser>
|
|
|
- <ScheduledTask></ScheduledTask>
|
|
|
- <ChangeLog></ChangeLog>
|
|
|
- <NewLog></NewLog>
|
|
|
- <Copy></Copy>
|
|
|
- </div>
|
|
|
- <div class="ps__rail-x" style="left: 0px; bottom: 0px;">
|
|
|
- <div class="ps__thumb-x" tabindex="0" style="left: 0px; width: 0px;"></div>
|
|
|
- </div>
|
|
|
- <div class="ps__rail-y" style="top: 0px; right: 0px; height: 424px;">
|
|
|
- <div class="ps__thumb-y" tabindex="0" style="top: 0px;height: 104px;display:none;" @mousedown="mousedownProgress"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div tabindex="-1" class="v-window-body">
|
|
|
+ <div tabindex="0" class="v-trap-focus-indicator"></div>
|
|
|
+ <div class="v-trap-focus-body">
|
|
|
+ <div
|
|
|
+ tabindex="0"
|
|
|
+ role="application"
|
|
|
+ class="v-trap-focus-indicator"
|
|
|
+ ></div>
|
|
|
+ <div class="v-widget-items-wrapper">
|
|
|
+ <div class="v-ps show ps--active-y">
|
|
|
+ <!-- <div class="v-widget-list" style="overflow-y:scroll;height:100%" @scroll="scrollList"> -->
|
|
|
+ <div class="v-widget-list" @scroll="scrollList">
|
|
|
+ <RunningState></RunningState>
|
|
|
+ <ResourceMonitor></ResourceMonitor>
|
|
|
+ <Storage></Storage>
|
|
|
+ <ConnectedUser></ConnectedUser>
|
|
|
+ <ScheduledTask></ScheduledTask>
|
|
|
+ <ChangeLog></ChangeLog>
|
|
|
+ <NewLog></NewLog>
|
|
|
+ <Copy></Copy>
|
|
|
+
|
|
|
+ <!-- 当打开窗口个数为零时显示 -->
|
|
|
+ <div class="v-widget-list-empty" v-show="!selectedNum">
|
|
|
+ <div class="v-widget-list-empty-img"></div>
|
|
|
+ <div class="v-widget-list-empty-content">
|
|
|
+ 单击 + 按钮可添加小工具。
|
|
|
</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div tabindex="0" class="v-trap-focus-indicator"></div>
|
|
|
- </div>
|
|
|
- <div class="v-window-resizable">
|
|
|
- <div class="handler v-window-resizable-n"></div>
|
|
|
- <div class="handler v-window-resizable-s"></div>
|
|
|
+ <div class="ps__rail-x" style="left: 0px; bottom: 0px">
|
|
|
+ <div
|
|
|
+ class="ps__thumb-x"
|
|
|
+ tabindex="0"
|
|
|
+ style="left: 0px; width: 0px"
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
+ <div class="ps__rail-y" style="top: 0px; right: 0px; height: 424px">
|
|
|
+ <div
|
|
|
+ class="ps__thumb-y"
|
|
|
+ tabindex="0"
|
|
|
+ style="top: 0px; height: 104px; display: none"
|
|
|
+ @mousedown="mousedownProgress"
|
|
|
+ ></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
+ <div tabindex="0" class="v-trap-focus-indicator"></div>
|
|
|
</div>
|
|
|
+ <div class="v-window-resizable">
|
|
|
+ <div class="handler v-window-resizable-n"></div>
|
|
|
+ <div class="handler v-window-resizable-s"></div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <!-- 弹出小窗口选择框 -->
|
|
|
+ <PortalSelectDialogWindow></PortalSelectDialogWindow>
|
|
|
+ <!-- 弹出位置选择框 -->
|
|
|
+ <PortaSelectPosition></PortaSelectPosition>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import RunningState from './RunningState'
|
|
|
-import ResourceMonitor from './ResourceMonitor'
|
|
|
-import Storage from './Storage'
|
|
|
-import ConnectedUser from './ConnectedUser'
|
|
|
-import ScheduledTask from './ScheduledTask'
|
|
|
-import ChangeLog from './ChangeLog'
|
|
|
-import NewLog from './NewLog'
|
|
|
-import Copy from './Copy'
|
|
|
+import RunningState from "./RunningState";
|
|
|
+import ResourceMonitor from "./ResourceMonitor";
|
|
|
+import Storage from "./Storage";
|
|
|
+import ConnectedUser from "./ConnectedUser";
|
|
|
+import ScheduledTask from "./ScheduledTask";
|
|
|
+import ChangeLog from "./ChangeLog";
|
|
|
+import NewLog from "./NewLog";
|
|
|
+import Copy from "./Copy";
|
|
|
+
|
|
|
+// 弹出小窗口选择框
|
|
|
+import PortalSelectDialogWindow from "../PortalSelectDialogWindow";
|
|
|
+// 弹出位置选择框
|
|
|
+import PortaSelectPosition from "../PortaSelectPosition";
|
|
|
export default {
|
|
|
data() {
|
|
|
return {
|
|
|
zIndex: 9040,
|
|
|
- cls:'',
|
|
|
- clickMouseY:0,
|
|
|
- lastY:0,
|
|
|
- nextY:0,
|
|
|
- html:'<RunningState></RunningState>',
|
|
|
- portalDetail:{
|
|
|
- display: 'none',
|
|
|
- detailMessageList:[
|
|
|
- {
|
|
|
- id:0,
|
|
|
- title:'系统状况',
|
|
|
- cls:'v-menu-item-select-selected selected active',
|
|
|
- },
|
|
|
- {
|
|
|
- id:1,
|
|
|
- title:'资源监控',
|
|
|
- cls:'v-menu-item-select-selected selected',
|
|
|
- },
|
|
|
- {
|
|
|
- id:2,
|
|
|
- title:'存储',
|
|
|
- cls:'',
|
|
|
- },
|
|
|
- {
|
|
|
- id:3,
|
|
|
- title:'已连接用户',
|
|
|
- cls:'',
|
|
|
- },
|
|
|
- {
|
|
|
- id:4,
|
|
|
- title:'计划的任务',
|
|
|
- cls:'',
|
|
|
- },
|
|
|
- {
|
|
|
- id:5,
|
|
|
- title:'文件更改日志',
|
|
|
- cls:'',
|
|
|
- },
|
|
|
- {
|
|
|
- id:6,
|
|
|
- title:'最新日志',
|
|
|
- cls:'',
|
|
|
- },{
|
|
|
- id:7,
|
|
|
- title:'备份',
|
|
|
- cls:'',
|
|
|
- }
|
|
|
-
|
|
|
- ]
|
|
|
- }
|
|
|
- }
|
|
|
+ cls: "",
|
|
|
+ selectedNum: 2,
|
|
|
+ display: "block",
|
|
|
+ progrecssFirstClick: {
|
|
|
+ lastY: 0,
|
|
|
+ clickY: 0,
|
|
|
+ clientY: 0,
|
|
|
+ moveY: 0,
|
|
|
+ },
|
|
|
+ widgetFirstClick: {
|
|
|
+ lastX: 0,
|
|
|
+ lastY: 0,
|
|
|
+ clickX: 0,
|
|
|
+ clickY: 0,
|
|
|
+ clientX: 0,
|
|
|
+ clientY: 0,
|
|
|
+ offsetX: 0,
|
|
|
+ offsetY: 0,
|
|
|
+ screenX: 0,
|
|
|
+ screenY: 0,
|
|
|
+ moveX: 0,
|
|
|
+ moveY: 0,
|
|
|
+ },
|
|
|
+ portalDetail: {
|
|
|
+ display: "none",
|
|
|
+ detailMessageList: [
|
|
|
+ {
|
|
|
+ id: 0,
|
|
|
+ title: "系统状况",
|
|
|
+ cls: "v-menu-item-select-selected selected active",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ title: "资源监控",
|
|
|
+ cls: "v-menu-item-select-selected selected",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 2,
|
|
|
+ title: "存储",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 3,
|
|
|
+ title: "已连接用户",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 4,
|
|
|
+ title: "计划的任务",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 5,
|
|
|
+ title: "文件更改日志",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 6,
|
|
|
+ title: "最新日志",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 7,
|
|
|
+ title: "备份",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ portalDetail1: {
|
|
|
+ display: "none",
|
|
|
+ detailMessageList: [
|
|
|
+ {
|
|
|
+ id: 0,
|
|
|
+ title: "右上角",
|
|
|
+ cls: "active",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 1,
|
|
|
+ title: "右下角",
|
|
|
+ cls: "v-menu-item-select-selected selected",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 2,
|
|
|
+ title: "左上角",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id: 3,
|
|
|
+ title: "左下角",
|
|
|
+ cls: "",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ };
|
|
|
},
|
|
|
- components:{
|
|
|
+ components: {
|
|
|
RunningState,
|
|
|
ResourceMonitor,
|
|
|
Storage,
|
|
@@ -133,149 +237,251 @@ export default {
|
|
|
NewLog,
|
|
|
Copy,
|
|
|
|
|
|
+ // 弹出小窗口选择框
|
|
|
+ PortalSelectDialogWindow,
|
|
|
+ // 弹出位置选择框
|
|
|
+ PortaSelectPosition,
|
|
|
},
|
|
|
- mounted(){
|
|
|
- this.$bus.on("changeFixWindowZIndex",this.changeFixWindowZIndex)
|
|
|
- let el = document.querySelector('.ps__thumb-y')
|
|
|
- let el1 = document.querySelector('.v-widget-list')
|
|
|
- el.addEventListener('mouseup',this.mouseupProgress)
|
|
|
- this.$bus.on("showOrHiddenWidgetItem",this.showOrHiddenWidgetItem)
|
|
|
- this.$bus.on("changeThumbHeight",this.changeThumbHeight)
|
|
|
+ mounted() {
|
|
|
+ this.$bus.on("changeFixWindowZIndex", this.changeFixWindowZIndex);
|
|
|
+ this.$bus.on("showOrHiddenWidgetItem", this.showOrHiddenWidgetItem);
|
|
|
+ this.$bus.on("changeThumbHeight", this.changeThumbHeight);
|
|
|
+ this.$bus.on("showOrHiddenWidget", this.showOrHiddenWidget);
|
|
|
+ this.$bus.on("changeOrHiddenWidgetPosition",this.changeOrHiddenWidgetPosition)
|
|
|
+ let el = document.querySelector(".ps__thumb-y");
|
|
|
+ let el2 = document.querySelector(".v-window-header-wrapper");
|
|
|
+ el.addEventListener("mouseup", this.mouseupProgress);
|
|
|
+ el2.addEventListener("mouseup", this.mouseupWidgetHeader);
|
|
|
},
|
|
|
- methods:{
|
|
|
+ methods: {
|
|
|
//点击固定窗口
|
|
|
- clickFixWindow(){
|
|
|
- if(this.zIndex == 9040) this.zIndex = 13000
|
|
|
- this.cls = 'active-win'
|
|
|
+ clickFixWindow() {
|
|
|
+ if (this.zIndex == 9040) this.zIndex = 13000;
|
|
|
+ this.cls = "active-win";
|
|
|
},
|
|
|
// 修改changeFixWindow
|
|
|
- changeFixWindowZIndex(){
|
|
|
- this.zIndex = 9040
|
|
|
- if(this.cls != '') this.cls = ''
|
|
|
+ changeFixWindowZIndex() {
|
|
|
+ this.zIndex = 9040;
|
|
|
+ if (this.cls != "") this.cls = "";
|
|
|
},
|
|
|
//点击进度条
|
|
|
- mousedownProgress(e){
|
|
|
- this.clickMouseY = e.offsetY
|
|
|
- let el = document.querySelector('.ps__thumb-y')
|
|
|
- el.addEventListener("mousemove",this.moveProgress)
|
|
|
+ mousedownProgress(e) {
|
|
|
+ let el = document.querySelector(".ps__thumb-y");
|
|
|
+ let el1 = document.querySelector(".v-widget-window");
|
|
|
+ el.addEventListener("mousemove", this.moveProgress);
|
|
|
+
|
|
|
+ this.progrecssFirstClick.lastY = el1.offsetTop + 31;
|
|
|
+ this.progrecssFirstClick.clickY = e.offsetY;
|
|
|
},
|
|
|
//移动进度条
|
|
|
- moveProgress(e){
|
|
|
- let el = document.querySelector('.ps__thumb-y')
|
|
|
- let el1 = document.querySelector('.ps__rail-y')
|
|
|
- let el2 = document.querySelector('.v-widget-list')
|
|
|
- let moveY
|
|
|
- if (e.clientY < this.lastY){
|
|
|
- moveY = this.nextY + (e.clientY - this.lastY)
|
|
|
- }else{
|
|
|
- moveY = e.clientY - e.offsetY -71
|
|
|
- }
|
|
|
- if(moveY < 0 ) moveY = 0
|
|
|
- console.log(el.style.top,e.offsetY,el2.offsetHeight)
|
|
|
- if(moveY > (el2.offsetHeight -this.clickMouseY)){
|
|
|
- moveY = el2.offsetHeight -this.clickMouseY
|
|
|
- }
|
|
|
- // if(el.style.height === '280px'){
|
|
|
- // if(moveY > 143.5){
|
|
|
- // moveY = 143.5
|
|
|
- // }
|
|
|
- // }else if(el.style.height === '210px'){
|
|
|
- // if(moveY > 214){
|
|
|
- // moveY = 214
|
|
|
- // }
|
|
|
- // }else if(el.style.height === '167px'){
|
|
|
- // if(moveY > 265){
|
|
|
- // moveY = 265
|
|
|
- // }
|
|
|
- // }else if(el.style.height === '139px'){
|
|
|
- // // if(moveY > 284.5){
|
|
|
- // // moveY = 284.5
|
|
|
- // // }
|
|
|
- // }
|
|
|
-
|
|
|
- let moveY2 = - (el2.offsetHeight / el1.offsetHeight ) * moveY
|
|
|
- // console.log(moveY,moveY2,el2.offsetHeight / el1.offsetHeight)
|
|
|
- el.style.top = moveY +'px'
|
|
|
- el2.style.top = moveY2 +'px'
|
|
|
- el.addEventListener('mouseup',this.mouseupProgress)
|
|
|
- // el.addEventListener('mouseleave',this.mouseupProgress)
|
|
|
- el1.addEventListener('mouseleave',this.mouseupProgress)
|
|
|
- this.lastY = e.clientY
|
|
|
- this.nextY = moveY
|
|
|
+ moveProgress(e) {
|
|
|
+ let el = document.querySelector(".ps__thumb-y");
|
|
|
+ let el1 = document.querySelector(".ps__rail-y");
|
|
|
+ let el2 = document.querySelector(".v-widget-list");
|
|
|
+ let moveY;
|
|
|
+ if (e.clientY > this.progrecssFirstClick.clientY) {
|
|
|
+ moveY = e.clientY - e.offsetY - this.progrecssFirstClick.lastY;
|
|
|
+ } else {
|
|
|
+ moveY = this.moveY + (e.clientY - this.progrecssFirstClick.clientY);
|
|
|
+ }
|
|
|
+ if (moveY < 0) {
|
|
|
+ moveY = 0;
|
|
|
+ } else if (moveY > el1.offsetHeight - el.offsetHeight) {
|
|
|
+ moveY = el1.offsetHeight - el.offsetHeight;
|
|
|
+ }
|
|
|
+ let moveY2 =
|
|
|
+ -(
|
|
|
+ (el2.offsetHeight - el1.offsetHeight) /
|
|
|
+ (el1.offsetHeight - el.offsetHeight)
|
|
|
+ ) * moveY;
|
|
|
+ el.style.top = moveY + "px";
|
|
|
+ el2.style.top = moveY2 + "px";
|
|
|
+ el.addEventListener("mouseup", this.mouseupProgress);
|
|
|
+ el1.addEventListener("mouseleave", this.mouseupProgress);
|
|
|
+ this.progrecssFirstClick.clientY = e.clientY;
|
|
|
+ this.moveY = moveY;
|
|
|
},
|
|
|
// 进度条鼠标抬起/离开
|
|
|
- mouseupProgress(){
|
|
|
- let el = document.querySelector('.ps__thumb-y')
|
|
|
- let el2 = document.querySelector('.v-widget-list')
|
|
|
- el.removeEventListener('mousemove',this.moveProgress)
|
|
|
- el.style.top = '0px'
|
|
|
- el2.style.top = '0px'
|
|
|
+ mouseupProgress() {
|
|
|
+ let el = document.querySelector(".ps__thumb-y");
|
|
|
+ let el2 = document.querySelector(".v-widget-list");
|
|
|
+ el.removeEventListener("mousemove", this.moveProgress);
|
|
|
+ el.style.top = "0px";
|
|
|
+ el2.style.top = "0px";
|
|
|
+ this.clearProgressMArk();
|
|
|
},
|
|
|
// 滚动窗口列表
|
|
|
- scrollList(){
|
|
|
- console.log(1111)
|
|
|
+ scrollList() {
|
|
|
+ console.log(1111);
|
|
|
},
|
|
|
// 点击勾选小窗口的加号
|
|
|
- selectWidgetItem(){
|
|
|
- this.$bus.emit('showOrHiddenSelectWidgetItem',this.portalDetail)
|
|
|
- window.onclick = (e)=>{
|
|
|
- e.stopPropagation()
|
|
|
- this.$bus.emit('showOrHiddenSelectWidgetItem','none')
|
|
|
- }
|
|
|
+ selectWidgetItem() {
|
|
|
+ this.$bus.emit("showOrHiddenSelectWidgetItem", this.portalDetail);
|
|
|
+ window.onclick = (e) => {
|
|
|
+ e.stopPropagation();
|
|
|
+ this.$bus.emit("showOrHiddenSelectWidgetItem", "none");
|
|
|
+ };
|
|
|
},
|
|
|
- // 点击选择框的每一项
|
|
|
- showOrHiddenWidgetItem(obj){
|
|
|
- // cls:'v-widget-item sds-window-v5 syno-sds-widget-item',
|
|
|
- // index: detailMessageIndex
|
|
|
- let widgetItemArray = document.querySelectorAll('.v-widget-item')
|
|
|
- Array.from(widgetItemArray)[obj.index].className = obj.cls
|
|
|
- // Array.from(widgetItemArray).forEach((item,index)=>{
|
|
|
- this.portalDetail.detailMessageList[obj.index].cls = obj.cls1
|
|
|
- this.portalDetail.detailMessageList.forEach(item=>{
|
|
|
- if(item.cls === 'v-menu-item-select-selected selected active'){
|
|
|
- item.cls = 'v-menu-item-select-selected selected'
|
|
|
- }
|
|
|
- })
|
|
|
- let index = this.portalDetail.detailMessageList.findIndex(item=>{
|
|
|
- return item.cls === 'v-menu-item-select-selected selected'
|
|
|
- })
|
|
|
- if(index != -1){
|
|
|
- this.portalDetail.detailMessageList[index].cls = 'v-menu-item-select-selected selected active'
|
|
|
+ // 点击小窗口选择框的每一项
|
|
|
+ showOrHiddenWidgetItem(obj) {
|
|
|
+ let widgetItemArray = document.querySelectorAll(".v-widget-item");
|
|
|
+ Array.from(widgetItemArray)[obj.index].className = obj.cls;
|
|
|
+ this.portalDetail.detailMessageList[obj.index].cls = obj.cls1;
|
|
|
+ this.portalDetail.detailMessageList.forEach((item) => {
|
|
|
+ if (item.cls === "v-menu-item-select-selected selected active") {
|
|
|
+ item.cls = "v-menu-item-select-selected selected";
|
|
|
+ } else if (item.cls === "active") {
|
|
|
+ item.cls = "";
|
|
|
}
|
|
|
- // })
|
|
|
+ });
|
|
|
+ if (
|
|
|
+ this.portalDetail.detailMessageList[0].cls ===
|
|
|
+ "v-menu-item-select-selected selected"
|
|
|
+ ) {
|
|
|
+ this.portalDetail.detailMessageList[0].cls =
|
|
|
+ "v-menu-item-select-selected selected active";
|
|
|
+ } else if (this.portalDetail.detailMessageList[0].cls === "") {
|
|
|
+ this.portalDetail.detailMessageList[0].cls = "active";
|
|
|
+ }
|
|
|
},
|
|
|
// 跟随可视小窗口的个数改变进度条高度
|
|
|
changeThumbHeight(selectedNum) {
|
|
|
- let el = document.querySelector('.ps__thumb-y')
|
|
|
- if(selectedNum > 2){
|
|
|
- el.style.display = 'block'
|
|
|
- console.log(selectedNum)
|
|
|
- if(selectedNum >= 6) {
|
|
|
- selectedNum = 6
|
|
|
+ let el = document.querySelector(".ps__thumb-y");
|
|
|
+ if (selectedNum > 2) {
|
|
|
+ el.style.display = "block";
|
|
|
+ if (selectedNum >= 6) {
|
|
|
+ selectedNum = 6;
|
|
|
+ }
|
|
|
+ el.style.height = (7 - selectedNum) * 70 + "px";
|
|
|
+ } else {
|
|
|
+ el.style.display = "none";
|
|
|
+ }
|
|
|
+ this.selectedNum = selectedNum;
|
|
|
+ },
|
|
|
+ // 将记住的进度条坐标重置
|
|
|
+ clearProgressMArk() {
|
|
|
+ (this.progrecssFirstClick.clientY = 0),
|
|
|
+ (this.moveY = 0),
|
|
|
+ (this.progrecssFirstClick = {
|
|
|
+ lastY: 0,
|
|
|
+ clickY: 0,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //点击固定窗口头部
|
|
|
+ mousedownWidgetHeader(e) {
|
|
|
+ let el = document.querySelector(".v-window-header-wrapper");
|
|
|
+ let el1 = document.querySelector(".v-widget-window");
|
|
|
+ this.widgetFirstClick.clientX = e.clientX;
|
|
|
+ this.widgetFirstClick.offsetX = e.offsetX;
|
|
|
+ this.widgetFirstClick.screenX = document.documentElement.clientWidth;
|
|
|
+ this.widgetFirstClick.clientY = e.clientY;
|
|
|
+ this.widgetFirstClick.offsetY = e.offsetY;
|
|
|
+ this.widgetFirstClick.screenY = document.documentElement.clientHeight;
|
|
|
+ el.addEventListener("mousemove", this.mousemoveWidgetHeader);
|
|
|
+ console.dir(el1);
|
|
|
+ },
|
|
|
+ //移动固定窗口头部
|
|
|
+ mousemoveWidgetHeader(e) {
|
|
|
+ let el = document.querySelector(".v-window-header-wrapper");
|
|
|
+ let el1 = document.querySelector(".v-widget-window");
|
|
|
+ let el2 = document.querySelector(".v-widget-list");
|
|
|
+ el2.style.display = "none";
|
|
|
+ // X轴
|
|
|
+ let moveX = 0;
|
|
|
+ moveX = e.clientX - this.widgetFirstClick.offsetX;
|
|
|
+ if (moveX < 0) {
|
|
|
+ moveX = 0;
|
|
|
+ }
|
|
|
+ if (moveX > this.widgetFirstClick.screenX - el1.offsetWidth) {
|
|
|
+ moveX = this.widgetFirstClick.screenX - el1.offsetWidth;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Y轴
|
|
|
+ let moveY = 0;
|
|
|
+ moveY = e.clientY - this.widgetFirstClick.offsetY;
|
|
|
+ if (moveY < 0) {
|
|
|
+ moveY = 0;
|
|
|
+ }
|
|
|
+ if (moveY > this.widgetFirstClick.screenY - el1.offsetHeight) {
|
|
|
+ moveY = this.widgetFirstClick.screenY - el1.offsetHeight;
|
|
|
+ }
|
|
|
+ el1.style.left = moveX + "px";
|
|
|
+ el1.style.top = moveY + "px";
|
|
|
+ el1.className = "v-widget-window syno-sds-widget v-window active";
|
|
|
+ el.addEventListener("mouseleave", this.mouseupWidgetHeader);
|
|
|
+ },
|
|
|
+ //鼠标抬起固定窗口头部
|
|
|
+ mouseupWidgetHeader() {
|
|
|
+ let el = document.querySelector(".v-window-header-wrapper");
|
|
|
+ let el1 = document.querySelector(".v-widget-list");
|
|
|
+ let el2 = document.querySelector(".v-widget-window");
|
|
|
+ el.removeEventListener("mousemove", this.mousemoveWidgetHeader);
|
|
|
+ el1.style.display = "block";
|
|
|
+ el2.className = "v-widget-window syno-sds-widget v-window";
|
|
|
+ },
|
|
|
+ //显示或隐藏固定窗口
|
|
|
+ showOrHiddenWidget() {
|
|
|
+ if (this.display === "block") {
|
|
|
+ console.log("block");
|
|
|
+ this.display = "none";
|
|
|
+ } else {
|
|
|
+ this.display = "block";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //最小化固定窗口
|
|
|
+ minimizeFixWndow() {
|
|
|
+ this.display = "none";
|
|
|
+ },
|
|
|
+ // 显示或隐藏位置选择框
|
|
|
+ selectWidgetPosition() {
|
|
|
+ this.$bus.emit("showOrHiddenSelectWidgetPosition", this.portalDetail1);
|
|
|
+ window.onclick = (e) => {
|
|
|
+ e.stopPropagation();
|
|
|
+ this.$bus.emit("showOrHiddenSelectWidgetPosition", "none");
|
|
|
+ };
|
|
|
+ },
|
|
|
+ //改变固定弹出框的位置
|
|
|
+ changeOrHiddenWidgetPosition(obj){
|
|
|
+ console.log(obj)
|
|
|
+ // let widgetItemArray = document.querySelectorAll(".v-widget-item");
|
|
|
+ // Array.from(widgetItemArray)[obj.index].className = obj.cls;
|
|
|
+ this.portalDetail1.detailMessageList[obj.index].cls = obj.cls1;
|
|
|
+ this.portalDetail1.detailMessageList.forEach((item) => {
|
|
|
+ if (item.cls === "v-menu-item-select-selected selected active") {
|
|
|
+ item.cls = "v-menu-item-select-selected selected";
|
|
|
+ } else if (item.cls === "active") {
|
|
|
+ item.cls = "";
|
|
|
}
|
|
|
- console.log(selectedNum)
|
|
|
- el.style.height = (7 - selectedNum) * 70 + 'px'
|
|
|
- console.log((7 - selectedNum) * 70)
|
|
|
- // if(selectedNum == 3){
|
|
|
- // el.style.height = '280px'
|
|
|
- // }else if(selectedNum == 4){
|
|
|
- // el.style.height = '210px'
|
|
|
- // }else if(selectedNum == 5){
|
|
|
- // el.style.height = '167px'
|
|
|
- // }else if(selectedNum >= 6){
|
|
|
- // el.style.height = '139px'
|
|
|
- // }
|
|
|
- }else{
|
|
|
- el.style.display = 'none'
|
|
|
+ });
|
|
|
+ if (
|
|
|
+ this.portalDetail1.detailMessageList[0].cls ===
|
|
|
+ "v-menu-item-select-selected selected"
|
|
|
+ ) {
|
|
|
+ this.portalDetail1.detailMessageList[0].cls =
|
|
|
+ "v-menu-item-select-selected selected active";
|
|
|
+ } else if (this.portalDetail1.detailMessageList[0].cls === "") {
|
|
|
+ this.portalDetail1.detailMessageList[0].cls = "active";
|
|
|
}
|
|
|
- }
|
|
|
+ },
|
|
|
+
|
|
|
+ //节流函数
|
|
|
+ throttle(fn, time, e) {
|
|
|
+ var lastTime = 0;
|
|
|
+ console.log("throttle");
|
|
|
+ return function () {
|
|
|
+ var nowTime = Date.now();
|
|
|
+ if (nowTime - lastTime > time) {
|
|
|
+ fn.call(this, e);
|
|
|
+ lastTime = nowTime;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ },
|
|
|
},
|
|
|
- beforeDestroy() {
|
|
|
- this.$bus.off("changeFixWindowZIndex",this.changeFixWindowZIndex)
|
|
|
+ beforeDestroy() {
|
|
|
+ this.$bus.off("changeFixWindowZIndex", this.changeFixWindowZIndex);
|
|
|
},
|
|
|
- name:'FixWindow',
|
|
|
-}
|
|
|
+ name: "FixWindow",
|
|
|
+};
|
|
|
</script>
|
|
|
<style scoped>
|
|
|
-
|
|
|
</style>
|