Commit fa346513db53567f6fb610b18889afc2ebbb1670
1 parent
385fdb95
优化级联选择通道页面添加方式
Showing
10 changed files
with
137 additions
and
32 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/event/subscribe/catalog/CatalogEventLister.java
| ... | ... | @@ -92,7 +92,7 @@ public class CatalogEventLister implements ApplicationListener<CatalogEvent> { |
| 92 | 92 | if (event.getDeviceChannels() != null) { |
| 93 | 93 | deviceChannelList.addAll(event.getDeviceChannels()); |
| 94 | 94 | } |
| 95 | - if (event.getGbStreams().size() > 0){ | |
| 95 | + if (event.getGbStreams() != null && event.getGbStreams().size() > 0){ | |
| 96 | 96 | for (GbStream gbStream : event.getGbStreams()) { |
| 97 | 97 | DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform.getDeviceGBId()); |
| 98 | 98 | deviceChannelList.add(deviceChannelByStream); |
| ... | ... | @@ -131,7 +131,7 @@ public class CatalogEventLister implements ApplicationListener<CatalogEvent> { |
| 131 | 131 | if (event.getDeviceChannels() != null) { |
| 132 | 132 | deviceChannelList.addAll(event.getDeviceChannels()); |
| 133 | 133 | } |
| 134 | - if (event.getGbStreams().size() > 0){ | |
| 134 | + if (event.getGbStreams() != null && event.getGbStreams().size() > 0){ | |
| 135 | 135 | for (GbStream gbStream : event.getGbStreams()) { |
| 136 | 136 | DeviceChannel deviceChannelByStream = gbStreamService.getDeviceChannelListByStream(gbStream, gbStream.getCatalogId(), parentPlatform.getDeviceGBId()); |
| 137 | 137 | deviceChannelList.add(deviceChannelByStream); | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java
| ... | ... | @@ -466,4 +466,8 @@ public interface IVideoManagerStorager { |
| 466 | 466 | List<ParentPlatform> queryPlatFormListForStreamWithGBId(String app, String stream, List<String> platforms); |
| 467 | 467 | |
| 468 | 468 | GbStream getGbStream(String app, String streamId); |
| 469 | + | |
| 470 | + void delCatalogByPlatformId(String serverGBId); | |
| 471 | + | |
| 472 | + void delRelationByPlatformId(String serverGBId); | |
| 469 | 473 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformChannelMapper.java
| ... | ... | @@ -88,4 +88,9 @@ public interface PlatformChannelMapper { |
| 88 | 88 | "<foreach collection='platforms' item='item' open='(' separator=',' close=')' > #{item}</foreach>" + |
| 89 | 89 | "</script> ") |
| 90 | 90 | List<ParentPlatform> queryPlatFormListForGBWithGBId(String channelId, List<String> platforms); |
| 91 | + | |
| 92 | + @Delete("<script> " + | |
| 93 | + "DELETE FROM platform_gb_channel WHERE platformId=#{serverGBId}" + | |
| 94 | + "</script>") | |
| 95 | + void delByPlatformId(String serverGBId); | |
| 91 | 96 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/dao/PlatformGbStreamMapper.java
| ... | ... | @@ -52,7 +52,7 @@ public interface PlatformGbStreamMapper { |
| 52 | 52 | "from gb_stream gs\n" + |
| 53 | 53 | " left join platform_gb_stream pgs\n" + |
| 54 | 54 | " on gs.app = pgs.app and gs.stream = pgs.stream\n" + |
| 55 | - "where and pgs.platformId=#{platformId} and pgs.catalogId=#{catalogId}") | |
| 55 | + "where pgs.platformId=#{platformId} and pgs.catalogId=#{catalogId}") | |
| 56 | 56 | List<PlatformCatalog> queryChannelInParentPlatformAndCatalogForCatalog(String platformId, String catalogId); |
| 57 | 57 | |
| 58 | 58 | @Delete("DELETE FROM platform_gb_stream WHERE catalogId=#{id}") | ... | ... |
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java
| ... | ... | @@ -1044,4 +1044,15 @@ public class VideoManagerStoragerImpl implements IVideoManagerStorager { |
| 1044 | 1044 | public GbStream getGbStream(String app, String streamId) { |
| 1045 | 1045 | return gbStreamMapper.selectOne(app, streamId); |
| 1046 | 1046 | } |
| 1047 | + | |
| 1048 | + @Override | |
| 1049 | + public void delCatalogByPlatformId(String serverGBId) { | |
| 1050 | + catalogMapper.delByPlatformId(serverGBId); | |
| 1051 | + } | |
| 1052 | + | |
| 1053 | + @Override | |
| 1054 | + public void delRelationByPlatformId(String serverGBId) { | |
| 1055 | + platformGbStreamMapper.delByPlatformId(serverGBId); | |
| 1056 | + platformChannelMapper.delByPlatformId(serverGBId); | |
| 1057 | + } | |
| 1047 | 1058 | } | ... | ... |
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java
| ... | ... | @@ -172,6 +172,8 @@ public class PlatformController { |
| 172 | 172 | })); |
| 173 | 173 | |
| 174 | 174 | boolean deleteResult = storager.deleteParentPlatform(parentPlatform); |
| 175 | + storager.delCatalogByPlatformId(parentPlatform.getServerGBId()); | |
| 176 | + storager.delRelationByPlatformId(parentPlatform.getServerGBId()); | |
| 175 | 177 | |
| 176 | 178 | |
| 177 | 179 | if (deleteResult) { | ... | ... |
web_src/src/components/dialog/chooseChannel.vue
| ... | ... | @@ -131,11 +131,9 @@ export default { |
| 131 | 131 | this.$refs.chooseChannelFoStream.catalogIdChange(id); |
| 132 | 132 | } |
| 133 | 133 | }, |
| 134 | - updateChooseChannelCallback (id, nodeIds){ | |
| 134 | + updateChooseChannelCallback (id){ | |
| 135 | 135 | console.log("中间模块收到选择通道变化: " + id) |
| 136 | - console.log("中间模块收到选择通道变化: " + nodeIds) | |
| 137 | - console.log("中间模块收到选择通道变化: " + typeof (nodeIds)) | |
| 138 | - this.$refs.chooseChannelForCatalog.refreshCatalogById(id, nodeIds) | |
| 136 | + this.$refs.chooseChannelForCatalog.refreshCatalogById(id) | |
| 139 | 137 | } |
| 140 | 138 | } |
| 141 | 139 | }; | ... | ... |
web_src/src/components/dialog/chooseChannelForCatalog.vue
| ... | ... | @@ -121,25 +121,23 @@ export default { |
| 121 | 121 | node.loaded = false |
| 122 | 122 | node.expand(); |
| 123 | 123 | }, |
| 124 | - refreshCatalogById: function (id, nodeIds) { | |
| 124 | + refreshCatalogById: function (id) { | |
| 125 | 125 | if (id) { |
| 126 | - console.log("refreshCatalogById: " + id) | |
| 127 | 126 | let node = this.$refs.tree.getNode(id); |
| 128 | - console.log(node) | |
| 129 | 127 | this.refreshCatalog(node); |
| 130 | 128 | } |
| 131 | - if (nodeIds !== null) { | |
| 132 | - let refreshNode = {} | |
| 133 | - for (let i = 0; i < nodeIds.length; i++) { | |
| 134 | - let node = this.$refs.tree.getNode(nodeIds[i]); | |
| 135 | - refreshNode[node.parent.data.id] = node.parent | |
| 136 | - } | |
| 137 | - if (Object.values(refreshNode).length > 0) { | |
| 138 | - for (let j = 0; j < Object.values(refreshNode).length; j++) { | |
| 139 | - this.refreshCatalog(Object.values(refreshNode)[j]); | |
| 140 | - } | |
| 141 | - } | |
| 142 | - } | |
| 129 | + // if (nodeIds !== null) { | |
| 130 | + // let refreshNode = {} | |
| 131 | + // for (let i = 0; i < nodeIds.length; i++) { | |
| 132 | + // let node = this.$refs.tree.getNode(nodeIds[i]); | |
| 133 | + // refreshNode[node.parent.data.id] = node.parent | |
| 134 | + // } | |
| 135 | + // if (Object.values(refreshNode).length > 0) { | |
| 136 | + // for (let j = 0; j < Object.values(refreshNode).length; j++) { | |
| 137 | + // this.refreshCatalog(Object.values(refreshNode)[j]); | |
| 138 | + // } | |
| 139 | + // } | |
| 140 | + // } | |
| 143 | 141 | }, |
| 144 | 142 | editCatalog: function (data, node){ |
| 145 | 143 | let that = this; | ... | ... |
web_src/src/components/dialog/chooseChannelForGb.vue
| ... | ... | @@ -21,10 +21,9 @@ |
| 21 | 21 | <el-option label="离线" value="false"></el-option> |
| 22 | 22 | </el-select> |
| 23 | 23 | |
| 24 | - <el-checkbox @change="shareAllCheckedChange">全部共享</el-checkbox> | |
| 24 | +<!-- <el-checkbox @change="shareAllCheckedChange">全部共享</el-checkbox>--> | |
| 25 | 25 | </div> |
| 26 | - <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" @selection-change="checkedChange" :height="winHeight"> | |
| 27 | - <el-table-column type="selection" width="55" align="center" fixed > </el-table-column> | |
| 26 | + <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" :height="winHeight"> | |
| 28 | 27 | <el-table-column prop="channelId" label="通道编号" width="210"> |
| 29 | 28 | </el-table-column> |
| 30 | 29 | <el-table-column prop="name" label="通道名称" show-overflow-tooltip> |
| ... | ... | @@ -40,6 +39,14 @@ |
| 40 | 39 | </el-table-column> |
| 41 | 40 | <el-table-column prop="manufacturer" label="厂家" align="center"> |
| 42 | 41 | </el-table-column> |
| 42 | + <el-table-column label="操作" width="100" align="center" fixed="right"> | |
| 43 | + <template slot-scope="scope"> | |
| 44 | + <el-button-group> | |
| 45 | + <el-button size="mini" icon="el-icon-plus" v-if="!scope.row.platformId" @click="add(scope.row)">添加</el-button> | |
| 46 | + <el-button size="mini" icon="el-icon-delete" v-if="scope.row.platformId" type="danger" @click="remove(scope.row)">移除</el-button> | |
| 47 | + </el-button-group> | |
| 48 | + </template> | |
| 49 | + </el-table-column> | |
| 43 | 50 | </el-table> |
| 44 | 51 | <el-pagination style="float: right;margin-top: 1rem;" @size-change="handleSizeChange" @current-change="currentChange" :current-page="currentPage" :page-size="count" :page-sizes="[10, 20, 30, 50]" layout="total, sizes, prev, pager, next" :total="total"> |
| 45 | 52 | </el-pagination> |
| ... | ... | @@ -108,6 +115,45 @@ export default { |
| 108 | 115 | // return false; |
| 109 | 116 | // } |
| 110 | 117 | // }, |
| 118 | + add: function (row) { | |
| 119 | + console.log(row) | |
| 120 | + row.catalogId = this.catalogId | |
| 121 | + row.platformId = this.platformId | |
| 122 | + this.$axios({ | |
| 123 | + method:"post", | |
| 124 | + url:"/api/platform/update_channel_for_gb", | |
| 125 | + data:{ | |
| 126 | + platformId: this.platformId, | |
| 127 | + channelReduces: [row], | |
| 128 | + catalogId: this.catalogId | |
| 129 | + } | |
| 130 | + }).then((res)=>{ | |
| 131 | + console.log("保存成功") | |
| 132 | + if(this.updateChoosedCallback)this.updateChoosedCallback(this.catalogId) | |
| 133 | + }).catch(function (error) { | |
| 134 | + console.log(error); | |
| 135 | + }); | |
| 136 | + }, | |
| 137 | + remove: function (row) { | |
| 138 | + console.log(row) | |
| 139 | + | |
| 140 | + this.$axios({ | |
| 141 | + method:"delete", | |
| 142 | + url:"/api/platform/del_channel_for_gb", | |
| 143 | + data:{ | |
| 144 | + platformId: this.platformId, | |
| 145 | + channelReduces: [row] | |
| 146 | + } | |
| 147 | + }).then((res)=>{ | |
| 148 | + console.log("移除成功") | |
| 149 | + let nodeIds = new Array(); | |
| 150 | + if(this.updateChoosedCallback)this.updateChoosedCallback(row.catalogId) | |
| 151 | + row.platformId = null; | |
| 152 | + row.catalogId = null | |
| 153 | + }).catch(function (error) { | |
| 154 | + console.log(error); | |
| 155 | + }); | |
| 156 | + }, | |
| 111 | 157 | checkedChange: function (val) { |
| 112 | 158 | let that = this; |
| 113 | 159 | if (!that.eventEnanle) { |
| ... | ... | @@ -182,10 +228,9 @@ export default { |
| 182 | 228 | console.log(error); |
| 183 | 229 | }); |
| 184 | 230 | } |
| 185 | - | |
| 186 | 231 | }, |
| 187 | 232 | shareAllCheckedChange: function (val) { |
| 188 | - this.chooseChanage(null, val) | |
| 233 | + | |
| 189 | 234 | }, |
| 190 | 235 | getChannelList: function () { |
| 191 | 236 | let that = this; | ... | ... |
web_src/src/components/dialog/chooseChannelForStream.vue
| 1 | 1 | <template> |
| 2 | 2 | <div id="chooseChannelFoStream" > |
| 3 | - <el-table ref="gbStreamsTable" :data="gbStreams" border style="width: 100%" @selection-change="checkedChanage" :height="winHeight"> | |
| 4 | - <el-table-column type="selection" width="55" align="center" fixed > </el-table-column> | |
| 3 | + <el-table ref="gbStreamsTable" :data="gbStreams" border style="width: 100%" :height="winHeight"> | |
| 5 | 4 | <el-table-column prop="name" label="名称" show-overflow-tooltip> |
| 6 | 5 | </el-table-column> |
| 7 | 6 | <el-table-column prop="app" label="应用名" show-overflow-tooltip> |
| ... | ... | @@ -18,6 +17,14 @@ |
| 18 | 17 | </div> |
| 19 | 18 | </template> |
| 20 | 19 | </el-table-column> |
| 20 | + <el-table-column label="操作" width="100" align="center" fixed="right"> | |
| 21 | + <template slot-scope="scope"> | |
| 22 | + <el-button-group> | |
| 23 | + <el-button size="mini" icon="el-icon-plus" v-if="!scope.row.platformId" @click="add(scope.row)">添加</el-button> | |
| 24 | + <el-button size="mini" icon="el-icon-delete" v-if="scope.row.platformId" type="danger" @click="remove(scope.row)">移除</el-button> | |
| 25 | + </el-button-group> | |
| 26 | + </template> | |
| 27 | + </el-table-column> | |
| 21 | 28 | </el-table> |
| 22 | 29 | <el-pagination style="float: right;margin-top: 1rem;" @size-change="handleSizeChange" @current-change="currentChange" :current-page="currentPage" :page-size="count" :page-sizes="[10, 20, 30, 50]" layout="total, sizes, prev, pager, next" :total="total"> |
| 23 | 30 | </el-pagination> |
| ... | ... | @@ -82,14 +89,49 @@ export default { |
| 82 | 89 | console.log(val) |
| 83 | 90 | console.log(row) |
| 84 | 91 | }, |
| 92 | + add: function (row) { | |
| 93 | + console.log(row) | |
| 94 | + row.catalogId = this.catalogId | |
| 95 | + row.platformId = this.platformId | |
| 96 | + this.$axios({ | |
| 97 | + method:"post", | |
| 98 | + url:"/api/gbStream/add", | |
| 99 | + data:{ | |
| 100 | + platformId: this.platformId, | |
| 101 | + catalogId: this.catalogId, | |
| 102 | + gbStreams: [row], | |
| 103 | + } | |
| 104 | + }).then((res)=>{ | |
| 105 | + console.log("保存成功") | |
| 106 | + if(this.updateChoosedCallback)this.updateChoosedCallback(this.catalogId) | |
| 107 | + }).catch(function (error) { | |
| 108 | + console.log(error); | |
| 109 | + }); | |
| 110 | + }, | |
| 111 | + remove: function (row) { | |
| 112 | + console.log(row) | |
| 113 | + | |
| 114 | + this.$axios({ | |
| 115 | + method:"delete", | |
| 116 | + url:"/api/gbStream/del", | |
| 117 | + data:{ | |
| 118 | + platformId: this.platformId, | |
| 119 | + gbStreams: [row], | |
| 120 | + } | |
| 121 | + }).then((res)=>{ | |
| 122 | + console.log("移除成功") | |
| 123 | + if(this.updateChoosedCallback)this.updateChoosedCallback(row.catalogId) | |
| 124 | + row.platformId = null; | |
| 125 | + row.catalogId = null | |
| 126 | + }).catch(function (error) { | |
| 127 | + console.log(error); | |
| 128 | + }); | |
| 129 | + }, | |
| 85 | 130 | checkedChanage: function (val) { |
| 86 | 131 | var that = this; |
| 87 | 132 | if (!that.eventEnanle) { |
| 88 | 133 | return; |
| 89 | 134 | } |
| 90 | - var tabelData = JSON.parse(JSON.stringify(this.$refs.gbStreamsTable.data)); | |
| 91 | - console.log("checkedChanage") | |
| 92 | - console.log(val) | |
| 93 | 135 | |
| 94 | 136 | var newData = {}; |
| 95 | 137 | var addData = []; | ... | ... |