|
@@ -6,7 +6,6 @@
|
|
element="div"
|
|
element="div"
|
|
v-model="signalPreList"
|
|
v-model="signalPreList"
|
|
:options="dragOptions2"
|
|
:options="dragOptions2"
|
|
- :move="onMove"
|
|
|
|
@change="log"
|
|
@change="log"
|
|
v-for="item in bigScreenJson"
|
|
v-for="item in bigScreenJson"
|
|
:class="['split_screen', splitScreenStatus === 0 ? 'split_screen_one' : splitScreenStatus === 1 ? 'split_screen_four' : splitScreenStatus === 2 ? 'split_screen_nine' : 'split_screen_sixteen']"
|
|
:class="['split_screen', splitScreenStatus === 0 ? 'split_screen_one' : splitScreenStatus === 1 ? 'split_screen_four' : splitScreenStatus === 2 ? 'split_screen_nine' : 'split_screen_sixteen']"
|
|
@@ -114,22 +113,14 @@
|
|
},
|
|
},
|
|
|
|
|
|
methods: {
|
|
methods: {
|
|
- // 移动信号源
|
|
|
|
- onMove({relatedContext, draggedContext}) {
|
|
|
|
- const relatedElement = relatedContext.element
|
|
|
|
- const draggedElement = draggedContext.element
|
|
|
|
- return (
|
|
|
|
- (!relatedElement || !relatedElement.fixed) && !draggedElement.fixed
|
|
|
|
- )
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
// 改变信号源
|
|
// 改变信号源
|
|
log(value) {
|
|
log(value) {
|
|
const signalList = this.$store.state.signalPreList
|
|
const signalList = this.$store.state.signalPreList
|
|
const currentElement = signalList.filter(item => item.sourceId === value.added.element.sourceId)
|
|
const currentElement = signalList.filter(item => item.sourceId === value.added.element.sourceId)
|
|
const otherElement = signalList.filter(item => item.sourceId !== value.added.element.sourceId)
|
|
const otherElement = signalList.filter(item => item.sourceId !== value.added.element.sourceId)
|
|
|
|
|
|
- this.newIndex = value.added.newIndex-signalList.length+1
|
|
|
|
|
|
+ // this.newIndex = value.added.newIndex-signalList.length+1
|
|
|
|
+ this.newIndex = this.$store.state.positionNum
|
|
|
|
|
|
const signalList2 = signalList.filter(item => item.newIndex)
|
|
const signalList2 = signalList.filter(item => item.newIndex)
|
|
// 考虑多种情况
|
|
// 考虑多种情况
|
|
@@ -208,7 +199,7 @@
|
|
},
|
|
},
|
|
|
|
|
|
computed: {
|
|
computed: {
|
|
- ...mapState(['splitScreenStatus', 'bigScale']),
|
|
|
|
|
|
+ ...mapState(['splitScreenStatus', 'bigScale','positionNum']),
|
|
|
|
|
|
signalPreList: {
|
|
signalPreList: {
|
|
get() {
|
|
get() {
|
|
@@ -218,13 +209,14 @@
|
|
set(arr) {
|
|
set(arr) {
|
|
let len = arr.length
|
|
let len = arr.length
|
|
if(len>0){
|
|
if(len>0){
|
|
|
|
+ // 对监视的信号源数组进行深度克隆,解决赋加Id一样的问题
|
|
const arr2 = []
|
|
const arr2 = []
|
|
arr.forEach(item => {arr2.push(JSON.parse(JSON.stringify(item)))})
|
|
arr.forEach(item => {arr2.push(JSON.parse(JSON.stringify(item)))})
|
|
|
|
+ // 删除数据的最后一项,重新赋值再添加
|
|
arr2.pop()
|
|
arr2.pop()
|
|
|
|
|
|
- const signalObj = arr[len-1]
|
|
|
|
-
|
|
|
|
// 给新增的信号源进行赋值
|
|
// 给新增的信号源进行赋值
|
|
|
|
+ const signalObj = arr[len-1]
|
|
signalObj.Id = guId()
|
|
signalObj.Id = guId()
|
|
signalObj.splitScreenStatus = this.$store.state.splitScreenStatus + 1
|
|
signalObj.splitScreenStatus = this.$store.state.splitScreenStatus + 1
|
|
signalObj.width = this.currentBigshow[0].Width * this.$store.state.bigScale / (this.$store.state.splitScreenStatus+1)
|
|
signalObj.width = this.currentBigshow[0].Width * this.$store.state.bigScale / (this.$store.state.splitScreenStatus+1)
|
|
@@ -233,15 +225,13 @@
|
|
signalObj.heightScale = signalObj.height / (this.currentBigshow[0].Height * this.$store.state.bigScale)
|
|
signalObj.heightScale = signalObj.height / (this.currentBigshow[0].Height * this.$store.state.bigScale)
|
|
this.$store.dispatch('updateSignalPreList', [...arr2,signalObj])
|
|
this.$store.dispatch('updateSignalPreList', [...arr2,signalObj])
|
|
|
|
|
|
|
|
+ // 添加定时器是为了得到最新的newIndex
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
let width = this.currentBigshow[0].Width*this.$store.state.bigScale/(signalObj.splitScreenStatus)
|
|
let width = this.currentBigshow[0].Width*this.$store.state.bigScale/(signalObj.splitScreenStatus)
|
|
let height = this.currentBigshow[0].Height*this.$store.state.bigScale/(signalObj.splitScreenStatus)
|
|
let height = this.currentBigshow[0].Height*this.$store.state.bigScale/(signalObj.splitScreenStatus)
|
|
-
|
|
|
|
const res = elePosition(width,height,this.newIndex,this.screenPosition.top,this.screenPosition.left,this.$store.state.splitScreenStatus+1)
|
|
const res = elePosition(width,height,this.newIndex,this.screenPosition.top,this.screenPosition.left,this.$store.state.splitScreenStatus+1)
|
|
-
|
|
|
|
signalObj.top = res.top
|
|
signalObj.top = res.top
|
|
signalObj.left = res.left
|
|
signalObj.left = res.left
|
|
-
|
|
|
|
this.$store.dispatch('updateSignalPreList', [...arr2,signalObj])
|
|
this.$store.dispatch('updateSignalPreList', [...arr2,signalObj])
|
|
})
|
|
})
|
|
}else {
|
|
}else {
|