diff --git a/back/src/views/modules/ability/assignedScene/components/infrastructure-modal.vue b/back/src/views/modules/ability/assignedScene/components/infrastructure-modal.vue index ae7be4fe..caf3a71c 100644 --- a/back/src/views/modules/ability/assignedScene/components/infrastructure-modal.vue +++ b/back/src/views/modules/ability/assignedScene/components/infrastructure-modal.vue @@ -44,6 +44,11 @@ 重置 + + 清空已选择 + + @@ -115,6 +120,7 @@ export default { showKey: 0, showModal: false, selectedArray: [], // 已选择的数据id + selectedArrayCopy: [], displayList: [], // 用于展示的list btnList: ['视频资源', '云资源', '感知资源'], showText: { @@ -210,6 +216,8 @@ export default { this.displayList = JSON.parse(JSON.stringify(arr)); // 已选中 this.selectedArray = arr.map(v => v.idtCameraChannel); + this.selectedArrayCopy = JSON.parse(JSON.stringify(arr)); + this.dataList = JSON.parse(JSON.stringify(arr)); this.pageData.total = arr.length; // 默认选中复选框 @@ -303,24 +311,38 @@ export default { this.searchData.parentId = parentId; this.getData(parentId) }, + clearSelectArray() { + this.selectedArrayCopy = [] + this.selectedArray = [] + this.getData() + }, confirmSubmitHandle() { - if (this.selectedArray.length > this.maxNum) { + // 新选择的 + let idtCameraChannelArray = this.selectedArray.map(v => v.idtCameraChannel) + // 选过的 + let newIdArray = this.selectedArrayCopy.map(v => v.idtCameraChannel) + let idArray = [...new Set(newIdArray.concat(idtCameraChannelArray))] + if (idArray.length > this.maxNum) { return this.$message.error('最多选择十条数据!'); } - this.showModal = false; - this.displayList = [] - let idtCameraChannelArray = this.selectedArray.map(v => v.idtCameraChannel) - this.dataList.map(v => { - if (idtCameraChannelArray.includes(v.idtCameraChannel)) { + + let listArray = [].concat(this.selectedArrayCopy, this.dataList); + this.displayList = []; + idArray.map(v => { + let obj = listArray.find(k => k.idtCameraChannel === v) + if (obj) { this.displayList.push({ - channelName: v.channelName + channelName: obj.channelName }) } + }) + this.$emit('update', { title: this.type, - list: idtCameraChannelArray + list: idArray, }) + this.showModal = false; }, close() { this.showModal = false;