|
@@ -4,7 +4,7 @@
|
|
|
<draggable
|
|
|
v-for="item in currentBigshow"
|
|
|
element="div"
|
|
|
- v-model="curSignalArr"
|
|
|
+ v-model="bigScreenObj[item.ID].signalArr"
|
|
|
:options="dragOptions2"
|
|
|
:class="['split_screen', bigScreenObj[item.ID].splitStatus === 0 ? 'split_screen_one' : bigScreenObj[item.ID].splitStatus === 1 ? 'split_screen_four' : bigScreenObj[item.ID].splitStatus === 2 ? 'split_screen_nine' : 'split_screen_sixteen']"
|
|
|
:style="{
|
|
@@ -111,15 +111,6 @@
|
|
|
},
|
|
|
|
|
|
updated() {
|
|
|
- // 监视当前变动的大屏
|
|
|
- const bigScreenObj = this.$store.state.bigScreenObj
|
|
|
- const curOpeBigscreenId = this.$store.state.curOpeBigscreenId
|
|
|
- if(curOpeBigscreenId){
|
|
|
- const curSignalArr = bigScreenObj[curOpeBigscreenId].signalArr
|
|
|
- this.$store.dispatch('updateCurSignalArr',curSignalArr)
|
|
|
- // this.currentSignalArr = bigScreenObj[curOpeBigscreenId].signalArr
|
|
|
- }
|
|
|
-
|
|
|
// 获取大屏在视口中的位置
|
|
|
this.currentBigshow.forEach(item => {
|
|
|
const screenDiv = document.getElementById(item.ID)
|
|
@@ -128,6 +119,13 @@
|
|
|
left:getElementLeft(screenDiv)
|
|
|
}
|
|
|
})
|
|
|
+
|
|
|
+ // 获取当前操作大屏的信号源数组
|
|
|
+ const bigScreenObj = this.$store.state.bigScreenObj
|
|
|
+ const curOpeBigscreenId = this.$store.state.curOpeBigscreenId
|
|
|
+ if(curOpeBigscreenId){
|
|
|
+ this.signals = bigScreenObj[curOpeBigscreenId].signalArr
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
@@ -196,7 +194,7 @@
|
|
|
},
|
|
|
|
|
|
computed: {
|
|
|
- ...mapState(['splitScreenStatus', 'bigScale','positionNum','bigScreenObj','curOpeBigscreenId','curSignalArr']),
|
|
|
+ ...mapState(['splitScreenStatus', 'bigScale','positionNum','bigScreenObj','curOpeBigscreenId']),
|
|
|
|
|
|
signalPreList: {
|
|
|
get() {
|
|
@@ -234,41 +232,39 @@
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- // 当前变动的信号源数组
|
|
|
- curSignalArr: {
|
|
|
+ signals: {
|
|
|
get() {
|
|
|
- return this.$store.state.curSignalArr
|
|
|
+ return this.signals
|
|
|
},
|
|
|
-
|
|
|
+
|
|
|
set(arr) {
|
|
|
- const bigScreenObj = this.$store.state.bigScreenObj
|
|
|
- const curOpeBigscreenId = this.$store.state.curOpeBigscreenId
|
|
|
- const positionNum = this.$store.state.positionNum
|
|
|
- const bigScale = this.$store.state.bigScale
|
|
|
- const curBigScreen = bigScreenObj[curOpeBigscreenId]
|
|
|
+ const val = this.$store.state.bigScreenObj
|
|
|
+ const bigscreenId = this.$store.state.curOpeBigscreenId
|
|
|
+
|
|
|
let len = arr.length
|
|
|
- if(len>0){
|
|
|
- // 重新定义一个数组,对监视的信号源数组进行深度克隆,解决赋加Id一样的问题
|
|
|
- const arr2 = []
|
|
|
- arr.forEach(item => {arr2.push(JSON.parse(JSON.stringify(item)))})
|
|
|
+ if(len){
|
|
|
+ const signals = []
|
|
|
+ arr.forEach(item => {signals.push(JSON.parse(JSON.stringify(item)))})
|
|
|
+ // 删除数据的最后一项,重新赋值再添加
|
|
|
+ signals.pop()
|
|
|
|
|
|
// 给新增的信号源进行赋值
|
|
|
- arr2[len-1].Id = guId()
|
|
|
- arr2[len-1].splitScreenStatus = curBigScreen.splitStatus + 1
|
|
|
- arr2[len-1].width = curBigScreen.width * bigScale / arr2[len-1].splitScreenStatus
|
|
|
- arr2[len-1].height = curBigScreen.height * bigScale / arr2[len-1].splitScreenStatus
|
|
|
- arr2[len-1].widthScale = arr2[len-1].width / (curBigScreen.width * bigScale)
|
|
|
- arr2[len-1].heightScale = arr2[len-1].height / (curBigScreen.height * bigScale)
|
|
|
- // 获取每个信号源的位置
|
|
|
- const res = elePosition(arr2[len-1].width,arr2[len-1].height,positionNum,this.screenPosition[curOpeBigscreenId].top,this.screenPosition[curOpeBigscreenId].left,arr2[len-1].splitScreenStatus)
|
|
|
- arr2[len-1].top = res.top - this.screenPosition[curOpeBigscreenId].top
|
|
|
- arr2[len-1].left = res.left - this.screenPosition[curOpeBigscreenId].left
|
|
|
+ const signalObj = arr[len-1]
|
|
|
+ signalObj.Id = guId()
|
|
|
+ signalObj.splitScreenStatus = val[bigscreenId].splitStatus + 1
|
|
|
+ signalObj.width = val[bigscreenId].width * bigScale / signalObj.splitScreenStatus
|
|
|
+ signalObj.height = val[bigscreenId].height * bigScale / signalObj.splitScreenStatus
|
|
|
+ signalObj.widthScale = signalObj.width / (val[bigscreenId].width * bigScale)
|
|
|
+ signalObj.heightScale = signalObj.height / (val[bigscreenId].height * bigScale)
|
|
|
+ const positionInfo = elePosition(signalObj.width,signalObj.height,positionNum,this.screenPosition[bigscreenId].top,this.screenPosition[bigscreenId].left,val[bigscreenId].splitStatus+1)
|
|
|
+ signalObj.top = positionInfo.top - this.screenPosition[bigscreenId].top
|
|
|
+ signalObj.left = positionInfo.left- this.screenPosition[bigscreenId].left
|
|
|
|
|
|
- console.log(arr2)
|
|
|
- this.$store.dispatch('updateCurSignalArr',arr2)
|
|
|
+ console.log([...signals,signalObj],val)
|
|
|
+ // this.$store.dispatch('secondUpdateBigscreenObj',[...signals,signalObj])
|
|
|
}
|
|
|
}
|
|
|
- },
|
|
|
+ },
|
|
|
|
|
|
// 拖拽选线配置
|
|
|
dragOptions1() {
|
|
@@ -299,24 +295,38 @@
|
|
|
watch: {
|
|
|
// 监视大屏对象的变化(深度监视)
|
|
|
bigScreenObj: {
|
|
|
- handler: function (val, oldVal) {
|
|
|
- /*const bigScale = this.$store.state.bigScale
|
|
|
+ /*handler: function (val, oldVal) {
|
|
|
+ const bigscreenId = this.$store.state.curOpeBigscreenId
|
|
|
+ const bigScale = this.$store.state.bigScale
|
|
|
const positionNum = this.$store.state.positionNum
|
|
|
- for (const key in val) {
|
|
|
- let len = val[key].signalArr.length
|
|
|
+ if(bigscreenId){
|
|
|
+ const arr = val[bigscreenId].signalArr
|
|
|
+ let len = arr.length
|
|
|
+
|
|
|
if(len){
|
|
|
- const lastObj = val[key].signalArr[len-1]
|
|
|
- lastObj.Id = guId()
|
|
|
- lastObj.width = val[key].width*bigScale/(val[key].splitStatus+1)
|
|
|
- lastObj.height = val[key].height*bigScale/(val[key].splitStatus+1)
|
|
|
- const positionInfo = elePosition(lastObj.width,lastObj.height,positionNum,this.screenPosition[key].top,this.screenPosition[key].left,val[key].splitStatus+1)
|
|
|
- lastObj.top = positionInfo.top - this.screenPosition[key].top
|
|
|
- lastObj.left = positionInfo.left- this.screenPosition[key].left
|
|
|
+ const signals = []
|
|
|
+ arr.forEach(item => {signals.push(JSON.parse(JSON.stringify(item)))})
|
|
|
+ // 删除数据的最后一项,重新赋值再添加
|
|
|
+ signals.pop()
|
|
|
+
|
|
|
+ // 给新增的信号源进行赋值
|
|
|
+ const signalObj = arr[len-1]
|
|
|
+ signalObj.Id = guId()
|
|
|
+ signalObj.splitScreenStatus = val[bigscreenId].splitStatus + 1
|
|
|
+ signalObj.width = val[bigscreenId].width * bigScale / signalObj.splitScreenStatus
|
|
|
+ signalObj.height = val[bigscreenId].height * bigScale / signalObj.splitScreenStatus
|
|
|
+ signalObj.widthScale = signalObj.width / (val[bigscreenId].width * bigScale)
|
|
|
+ signalObj.heightScale = signalObj.height / (val[bigscreenId].height * bigScale)
|
|
|
+ const positionInfo = elePosition(signalObj.width,signalObj.height,positionNum,this.screenPosition[bigscreenId].top,this.screenPosition[bigscreenId].left,val[bigscreenId].splitStatus+1)
|
|
|
+ signalObj.top = positionInfo.top - this.screenPosition[bigscreenId].top
|
|
|
+ signalObj.left = positionInfo.left- this.screenPosition[bigscreenId].left
|
|
|
+
|
|
|
+ // console.log([...signals,signalObj],val)
|
|
|
+ // this.$store.dispatch('secondUpdateBigscreenObj',[...signals,signalObj])
|
|
|
}
|
|
|
}
|
|
|
- this.$store.dispatch('updateBigscreenObj',val)*/
|
|
|
},
|
|
|
- deep: true
|
|
|
+ deep:true*/
|
|
|
},
|
|
|
|
|
|
// 监视大屏中的信号源,只要变动,就调用回调函数
|