diff --git a/src/views/bigscreenDesigner/designer/index.vue b/src/views/bigscreenDesigner/designer/index.vue index f3273da..d7428d8 100644 --- a/src/views/bigscreenDesigner/designer/index.vue +++ b/src/views/bigscreenDesigner/designer/index.vue @@ -523,6 +523,7 @@ export default { // 判断是否松开shift键,是就把pin赋值为false if (code.keyCode === 16) { this.shiftEnt = false; + this.selectMore=[]; } }, 500, true), /** @@ -554,7 +555,9 @@ export default { }, async initEchartData() { const reportCode = this.$route.query.reportCode; + this.$showLoading(); const { code, data } = await detailDashboard(reportCode); + this.$hideLoading(); if (code != 200) return; const processData = this.handleInitEchartsData(data); const screenData = this.handleBigScreen(data.dashboard); @@ -968,13 +971,17 @@ export default { for (let i = 0; i < draggableArr.length; i++) { if (i == index) { this.$refs.widgets[i].$refs.draggable.setActive(true); + this.selectMore.push(index); } } }else{ //没有按住shift键标识编辑单个 + let selectMore = []; for (let i = 0; i < draggableArr.length; i++) { if (i == index) { this.$refs.widgets[i].$refs.draggable.setActive(true); + selectMore.push(index); + this.selectMore = selectMore; } else { this.$refs.widgets[i].$refs.draggable.setActive(false); } @@ -993,6 +1000,7 @@ export default { for (let i = 0; i < draggableArr.length; i++) { this.$refs.widgets[i].$refs.draggable.setActive(false); } + this.selectMore = []; } }, setWidgetOptionsData(val){ @@ -1101,14 +1109,30 @@ export default { arr[oldIndex] = arr.splice(newIndex, 1, arr[oldIndex])[0]; return arr; }, - // 删除 - deletelayer() { - this.widgets.splice(this.rightClickIndex, 1); + //去重 + setUnique(arr) { + let newArr = []; + arr.forEach(item => { + return newArr.includes(item) ? '' : newArr.push(item); + }); + return newArr; }, - // 复制 + // 多选复制 copylayer() { - // console.log("copylayer"); - const obj = this.deepClone(this.widgets[this.rightClickIndex]); + //首先复制右选节点,再复制其他选择节点 + this.copylayerOne(this.rightClickIndex) + // if(this.isNotBlankArray(this.selectMore)){ + // for(let i = 0; i< this.selectMore.length;i++){ + // const copyIndex = this.selectMore[i]; + // if(this.rightClickIndex != copyIndex){ + // this.copylayerOne(copyIndex); + // } + // } + // } + }, + // 复制 + copylayerOne(index) { + const obj = this.deepClone(this.widgets[index]); this.widgets.splice(this.widgets.length, 0, obj); }, // 置顶 @@ -1151,6 +1175,28 @@ export default { //输入删除键删除 entryDelete(index){ this.widgets.splice(index, 1); + //调用删除 + // this.selectMore.push(index); + // this.deletelayerOne(); + }, + deletelayer() { + this.widgets.splice(this.rightClickIndex, 1); + // this.selectMore.push(this.rightClickIndex); + // this.deletelayerOne(); + }, + // 删除 + deletelayerOne() { + this.selectMore = this.setUnique(this.selectMore); + //首先复制右选节点,再复制其他选择节点 + let widgetsCp = []; + if(this.isNotBlankArray(this.selectMore)){ + for(let i = 0; i< this.widgets.length;i++){ + if(this.selectMore.indexOf(i)<0){ + widgetsCp.push(this.widgets[i]); + } + } + } + this.widgets = widgetsCp; }, //根据上下左右键移动(因为子组件直接切换焦点事件问题,这里弥补不点大屏直接切组件移动) dragWidgetMoveByKey(code,widgetIndex){