From 658bec3ecc0453fce36b083bf6cbe03ee495d611 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期日, 10 一月 2021 20:14:11 +0800 Subject: [PATCH] 国标级联--选择通道003-前端页面 --- web_src/src/components/gb28181/chooseChannel.vue | 119 +++++------- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 18 + src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java | 2 web_src/src/components/ParentPlatformList.vue | 5 src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/UpdateChannelParam.java | 24 ++ src/main/resources/wvp.sqlite | 0 web_src/src/components/gb28181/chooseChannelForGb.vue | 120 +++++++++++++ src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java | 18 ++ src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java | 18 ++ src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 16 + src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java | 7 src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java | 78 ++++++++ src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java | 7 src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java | 35 +++ src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 20 ++ 15 files changed, 397 insertions(+), 90 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java b/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java index 990f003..e3a82ec 100644 --- a/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java +++ b/src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java @@ -8,7 +8,7 @@ @SpringBootApplication public class VManageBootstrap extends LogManager { - public static void main(String[] args) { + public static void main(String[] args) { SpringApplication.run(VManageBootstrap.class, args); } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index dd6ac9d..4a76e9a 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -77,6 +77,9 @@ @Value("${media.seniorSdp}") private boolean seniorSdp; + @Value("${media.autoApplyPlay}") + private boolean autoApplyPlay; + @Autowired private ZLMHttpHookSubscribe subscribe; @@ -287,8 +290,12 @@ @Override public void playStreamCmd(Device device, String channelId, ZLMHttpHookSubscribe.Event event, SipSubscribe.Event errorEvent) { try { - - String ssrc = streamSession.createPlaySsrc(); + String ssrc = ""; + if (rtpEnable) { + ssrc = String.format("gb_play_%s_%s", device.getDeviceId(), channelId); + }else { + ssrc = streamSession.createPlaySsrc(); + } String streamId = null; if (rtpEnable) { streamId = String.format("gb_play_%s_%s", device.getDeviceId(), channelId); @@ -408,7 +415,12 @@ , SipSubscribe.Event errorEvent) { try { MediaServerConfig mediaInfo = redisCatchStorage.getMediaInfo(); - String ssrc = streamSession.createPlayBackSsrc(); + String ssrc = null; + if (rtpEnable) { + ssrc = String.format("gb_playback_%s_%s", device.getDeviceId(), channelId); + }else { + ssrc = streamSession.createPlayBackSsrc(); + } String streamId = String.format("%08x", Integer.parseInt(ssrc)).toUpperCase(); // 娣诲姞璁㈤槄 JSONObject subscribeKey = new JSONObject(); diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index 66ee1b0..9fc64c7 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -82,13 +82,10 @@ @ResponseBody @PostMapping(value = "/on_flow_report", produces = "application/json;charset=UTF-8") public ResponseEntity<String> onFlowReport(@RequestBody JSONObject json){ - - if (logger.isDebugEnabled()) { - logger.debug("ZLM HOOK on_flow_report API璋冪敤锛屽弬鏁帮細" + json.toString()); - } + + logger.debug("ZLM HOOK on_flow_report API璋冪敤锛屽弬鏁帮細" + json.toString()); // TODO Auto-generated method stub - JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); @@ -234,8 +231,13 @@ if (logger.isDebugEnabled()) { logger.debug("ZLM HOOK on_shell_login API璋冪敤锛屽弬鏁帮細" + json.toString()); } - // TODO Auto-generated method stub - + // TODO 濡傛灉鏄甫鏈塺tpstream鍒欏紑鍚寜闇�鎷夋祦 + String app = json.getString("app"); + String stream = json.getString("stream"); + + ZLMHttpHookSubscribe.Event subscribe = this.subscribe.getSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, json); + if (subscribe != null) subscribe.response(json); + JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java index 99ff837..b4d0c9b 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/IVideoManagerStorager.java @@ -7,7 +7,11 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; +import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; import com.github.pagehelper.PageInfo; +import gov.nist.javax.sip.stack.NioTcpMessageProcessor; + +import javax.swing.event.ChangeEvent; /** * @Description:瑙嗛璁惧鏁版嵁瀛樺偍鎺ュ彛 @@ -200,4 +204,18 @@ * 鎵�鏈夊钩鍙扮绾� */ void outlineForAllParentPlatform(); + + /** + * 鏌ヨ閫氶亾淇℃伅锛� 涓嶅尯鍒嗚澶� + */ + PageInfo<ChannelReduce> queryChannelListInAll(int page, int count, String query, Boolean online, Boolean channelType, String parentChannelId); + + + /** + * 鏇存柊涓婄骇骞冲彴鐨勯�氶亾淇℃伅 + * @param platformId + * @param channelReduces + * @return + */ + int updateChannelForGB(String platformId, List<ChannelReduce> channelReduces); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index 24a3f84..115cacb 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -1,6 +1,8 @@ package com.genersoft.iot.vmp.storager.dao; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; +import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; +import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; import org.apache.ibatis.annotations.*; import java.util.List; @@ -82,4 +84,22 @@ @Update(value = {"UPDATE device_channel SET streamId=#{streamId} WHERE deviceId=#{deviceId} AND channelId=#{channelId}"}) void startPlay(String deviceId, String channelId, String streamId); + + + @Select(value = {" <script>" + + "SELECT * FROM ( "+ + " SELECT dc.channelId, dc.deviceId, dc.name, de.manufacturer, de.hostAddress, " + + "(SELECT count(0) FROM device_channel WHERE parentId=dc.channelId) as subCount " + + "FROM device_channel dc LEFT JOIN device de ON dc.deviceId = de.deviceId" + + " WHERE 1=1 " + + " <if test=\"query != null\"> AND (dc.channelId LIKE '%${query}%' OR dc.name LIKE '%${query}%' OR dc.name LIKE '%${query}%')</if> " + + " <if test=\"parentChannelId != null\"> AND dc.parentId=#{parentChannelId} </if> " + + " <if test=\"online == true\" > AND dc.status=1</if>" + + " <if test=\"online == false\" > AND dc.status=0</if>) dcr" + + " WHERE 1=1 " + + " <if test=\"hasSubChannel == true\" > AND subCount >0</if>" + + " <if test=\"hasSubChannel == false\" > AND subCount=0</if>" + + " </script>"}) + + List<ChannelReduce> queryChannelListInAll(String query, Boolean online, Boolean hasSubChannel, String parentChannelId); } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java new file mode 100644 index 0000000..9b10ece --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/patformChannelMapper.java @@ -0,0 +1,7 @@ +package com.genersoft.iot.vmp.storager.dao; + +import org.mapstruct.Mapper; + +@Mapper +public interface patformChannelMapper { +} diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java index b783238..546a3e4 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStoragerImpl.java @@ -9,6 +9,7 @@ import com.genersoft.iot.vmp.storager.dao.DeviceChannelMapper; import com.genersoft.iot.vmp.storager.dao.DeviceMapper; import com.genersoft.iot.vmp.storager.dao.ParentPlatformMapper; +import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; @@ -16,6 +17,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import org.springframework.transaction.annotation.Transactional; /** * @Description:瑙嗛璁惧鏁版嵁瀛樺偍-jdbc瀹炵幇 @@ -270,4 +272,20 @@ public void outlineForAllParentPlatform() { platformMapper.outlineForAllParentPlatform(); } + + + @Override + public PageInfo<ChannelReduce> queryChannelListInAll(int page, int count, String query, Boolean online, + Boolean channelType, String parentChannelId) { + PageHelper.startPage(page, count); + List<ChannelReduce> all = deviceChannelMapper.queryChannelListInAll(query, online, channelType, parentChannelId); + return new PageInfo<>(all); + } + + + @Transactional + @Override + public int updateChannelForGB(String platformId, List<ChannelReduce> channelReduces) { + return 0; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java index d64b632..17d1e7d 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/device/DeviceController.java @@ -63,13 +63,6 @@ /** * 鍒嗛〉鏌ヨ閫氶亾鏁� - * @param deviceId 璁惧id - * @param page 褰撳墠椤� - * @param count 姣忛〉鏉℃暟 - * @return 閫氶亾鍒楄〃 - */ - /** - * 鍒嗛〉鏌ヨ閫氶亾鏁� * * @param deviceId 璁惧id * @param page 褰撳墠椤� diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java index ee77f01..0823c49 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/PlatformController.java @@ -1,10 +1,13 @@ package com.genersoft.iot.vmp.vmanager.platform; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; +import com.genersoft.iot.vmp.vmanager.platform.bean.UpdateChannelParam; import com.github.pagehelper.PageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,6 +17,9 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import com.genersoft.iot.vmp.conf.SipConfig; + +import java.util.List; +import java.util.Map; @CrossOrigin @@ -142,5 +148,34 @@ return new ResponseEntity<>(String.valueOf(parentPlatform != null), HttpStatus.OK); } + @RequestMapping("/platforms/channelList") + @ResponseBody + public PageInfo<ChannelReduce> channelList(int page, int count, + @RequestParam(required = false) String query, + @RequestParam(required = false) Boolean online, + @RequestParam(required = false) Boolean channelType){ + + if (logger.isDebugEnabled()) { + logger.debug("鏌ヨ鎵�鏈夋墍鏈夐�氶亾API璋冪敤"); + } + + PageInfo<ChannelReduce> channelReduces = storager.queryChannelListInAll(page, count, query, online, channelType, null); + + return channelReduces; + } + + + @RequestMapping("/platforms/updateChannelForGB") + @ResponseBody + public ResponseEntity<String> updateChannelForGB(@RequestBody UpdateChannelParam param){ + + if (logger.isDebugEnabled()) { + logger.debug("缁欎笂绾у钩鍙版坊鍔犲浗鏍囬�氶亾API璋冪敤"); + } + int result = storager.updateChannelForGB(param.getPlatformId(), param.getChannelReduces()); + + return new ResponseEntity<>(String.valueOf(result > 0), HttpStatus.OK); + } + } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java new file mode 100644 index 0000000..275e0f7 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/ChannelReduce.java @@ -0,0 +1,78 @@ +package com.genersoft.iot.vmp.vmanager.platform.bean; + +/** + * 绮剧畝鐨刢hannel淇℃伅灞曠ず锛屼富瑕佹槸閫夋嫨閫氶亾鐨勬椂鍊欏睍绀哄垪琛ㄤ娇鐢� + */ +public class ChannelReduce { + + /** + * 閫氶亾id + */ + private String channelId; + + /** + * 璁惧id + */ + private String deviceId; + + /** + * 閫氶亾鍚� + */ + private String name; + + /** + * 鐢熶骇鍘傚晢 + */ + private String manufacturer; + + /** + * wan鍦板潃 + */ + private String hostAddress; + + /** + * 瀛愯妭鐐规暟 + */ + private int subCount; + + + public String getChannelId() { + return channelId; + } + + public void setChannelId(String channelId) { + this.channelId = channelId; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer; + } + + public String getHostAddress() { + return hostAddress; + } + + public void setHostAddress(String hostAddress) { + this.hostAddress = hostAddress; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/UpdateChannelParam.java b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/UpdateChannelParam.java new file mode 100644 index 0000000..34192ca --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/platform/bean/UpdateChannelParam.java @@ -0,0 +1,24 @@ +package com.genersoft.iot.vmp.vmanager.platform.bean; + +import java.util.List; + +public class UpdateChannelParam { + private String platformId; + private List<ChannelReduce> channelReduces; + + public String getPlatformId() { + return platformId; + } + + public void setPlatformId(String platformId) { + this.platformId = platformId; + } + + public List<ChannelReduce> getChannelReduces() { + return channelReduces; + } + + public void setChannelReduces(List<ChannelReduce> channelReduces) { + this.channelReduces = channelReduces; + } +} diff --git a/src/main/resources/wvp.sqlite b/src/main/resources/wvp.sqlite index f31609f..b72a373 100644 --- a/src/main/resources/wvp.sqlite +++ b/src/main/resources/wvp.sqlite Binary files differ diff --git a/web_src/src/components/ParentPlatformList.vue b/web_src/src/components/ParentPlatformList.vue index 39aeb3c..98907db 100644 --- a/web_src/src/components/ParentPlatformList.vue +++ b/web_src/src/components/ParentPlatformList.vue @@ -95,7 +95,6 @@ } }, mounted() { - this.$refs.chooseChannelDialog.openDialog() this.initData(); this.updateLooper = setInterval(this.initData, 10000); }, @@ -138,7 +137,9 @@ }); }, chooseChannel: function(platform) { - this.$refs.chooseChannelDialog.openDialog() + this.$refs.chooseChannelDialog.openDialog(platform.deviceGBId, ()=>{ + this.initData() + }) }, initData: function() { this.getPlatformList(); diff --git a/web_src/src/components/gb28181/chooseChannel.vue b/web_src/src/components/gb28181/chooseChannel.vue index e5cb09c..9796eb4 100644 --- a/web_src/src/components/gb28181/chooseChannel.vue +++ b/web_src/src/components/gb28181/chooseChannel.vue @@ -1,63 +1,36 @@ <template> <div id="chooseChannel" v-loading="isLoging"> - <el-dialog title="閫夋嫨閫氶亾" top="0" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()"> - <el-container> - <el-main style="background-color: #FFF;"> - <el-tabs v-model="tabActiveName" > + <el-dialog title="閫夋嫨閫氶亾" top="2rem" width="70%" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()"> + <el-tabs v-model="tabActiveName" > + <el-tab-pane label="鍥芥爣閫氶亾" name="gbChannel"> - <el-tab-pane label="鍥芥爣閫氶亾" name="gbChannel"> - <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;"> - 鎼滅储: <el-input @input="search" style="margin-right: 1rem; width: auto;" size="mini" placeholder="鍏抽敭瀛�" prefix-icon="el-icon-search" v-model="searchSrt" clearable> </el-input> - - 閫氶亾绫诲瀷: <el-select size="mini" @change="search" style="margin-right: 1rem;" v-model="channelType" placeholder="璇烽�夋嫨" default-first-option> - <el-option label="鍏ㄩ儴" value=""></el-option> - <el-option label="璁惧" value="false"></el-option> - <el-option label="瀛愮洰褰�" value="true"></el-option> - </el-select> - 鍦ㄧ嚎鐘舵��: <el-select size="mini" style="margin-right: 1rem;" @change="search" v-model="online" placeholder="璇烽�夋嫨" default-first-option> - <el-option label="鍏ㄩ儴" value=""></el-option> - <el-option label="鍦ㄧ嚎" value="true"></el-option> - <el-option label="绂荤嚎" value="false"></el-option> - </el-select> - </div> - <el-table :data="gbChannels" border style="width: 100%" @selection-change="handleGBSelectionChange" > - <el-table-column type="selection" width="55" align="center" fixed> </el-table-column> - <el-table-column prop="devicelId" label="璁惧缂栧彿" width="210" > - </el-table-column> - <el-table-column prop="channelId" label="閫氶亾缂栧彿" width="210"> - </el-table-column> - <el-table-column prop="channelName" label="閫氶亾鍚嶇О"> - </el-table-column> - <el-table-column label="鍦板潃" width="180" align="center"> - <template slot-scope="scope"> - <div slot="reference" class="name-wrapper"> - <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag> - </div> - </template> - </el-table-column> - <el-table-column prop="manufacturer" label="鍘傚" align="center"> - </el-table-column> - </el-table> - </el-tab-pane> - <el-tab-pane label="鐩存挱娴侀�氶亾" name="streamchannel"> - <!-- TODO --> - </el-tab-pane> - </el-tabs> - - </el-main> - </el-container> + <el-container> + <el-main style="background-color: #FFF;"> + <chooseChannelForGb :chooseChanage=chooseChanage ></chooseChannelForGb> + </el-main> + <el-footer> + <el-button size="mini" type="primary" style="float: right" @click="save()">淇濆瓨</el-button> + </el-footer> + </el-container> + + + </el-tab-pane> + <el-tab-pane label="鐩存挱娴侀�氶亾" name="streamchannel"> + <!-- TODO --> + </el-tab-pane> + </el-tabs> </el-dialog> </div> </template> <script> -// import player from './player.vue' +import chooseChannelForGb from './chooseChannelForGb.vue' export default { name: 'chooseChannel', props: {}, components: { - // player, + chooseChannelForGb, }, computed: { // getPlayerShared: function () { @@ -73,37 +46,20 @@ return { isLoging: false, tabActiveName: "gbChannel", + platformId: "", isLoging: false, showDialog: false, - chooseChanageCallback: null, - closeCallback: null, - gbChannels: [ - { - devicelId: "34000000000200001", - channelId: "34000000000200001", - channelName: "test", - hostAddress: "192.168.1.1:5060", - manufacturer: "澶у崕" - },{ - devicelId: "34000000000200001", - channelId: "34000000000200001", - channelName: "test", - hostAddress: "192.168.1.1:5060", - manufacturer: "澶у崕" - } - ], - searchSrt: "", - channelType: "", - online: "", + chooseData: [] }; }, methods: { - openDialog: function (chooseChanageCallback, closeCallback) { + openDialog: function (platformId, closeCallback) { + console.log(platformId) + this.platformId = platformId this.showDialog = true this.closeCallback = closeCallback - this.chooseChanageCallback = chooseChanageCallback }, close: function() { @@ -111,8 +67,31 @@ search: function() { }, - handleGBSelectionChange: function() { + save: function() { + var that = this; + this.$axios({ + method:"post", + url:"/api/platforms/updateChannelForGB", + data:{ + platformId: that.platformId, + channelReduces: that.chooseData + } + }).then((res)=>{ + if (res.data == true) { + that.$message({ + showClose: true, + message: '淇濆瓨鎴愬姛,', + type: 'success' + }); + } + }).catch(function (error) { + console.log(error); + }); + }, + chooseChanage: function(val) { + console.log(val) + this.chooseData = val; } } }; diff --git a/web_src/src/components/gb28181/chooseChannelForGb.vue b/web_src/src/components/gb28181/chooseChannelForGb.vue new file mode 100644 index 0000000..3e488fe --- /dev/null +++ b/web_src/src/components/gb28181/chooseChannelForGb.vue @@ -0,0 +1,120 @@ +<template> +<div id="chooseChannelForGb" > + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;"> + 鎼滅储: <el-input @input="search" style="margin-right: 1rem; width: auto;" size="mini" placeholder="鍏抽敭瀛�" prefix-icon="el-icon-search" v-model="searchSrt" clearable> </el-input> + + 閫氶亾绫诲瀷: <el-select size="mini" @change="search" style="margin-right: 1rem;" v-model="channelType" placeholder="璇烽�夋嫨" default-first-option> + <el-option label="鍏ㄩ儴" value=""></el-option> + <el-option label="璁惧" value="false"></el-option> + <el-option label="瀛愮洰褰�" value="true"></el-option> + </el-select> + 鍦ㄧ嚎鐘舵��: <el-select size="mini" style="margin-right: 1rem;" @change="search" v-model="online" placeholder="璇烽�夋嫨" default-first-option> + <el-option label="鍏ㄩ儴" value=""></el-option> + <el-option label="鍦ㄧ嚎" value="true"></el-option> + <el-option label="绂荤嚎" value="false"></el-option> + </el-select> + </div> + <el-table ref="gbChannelsTable" :data="gbChannels" border style="width: 100%" @selection-change="chooseChanage" > + <el-table-column type="selection" width="55" align="center" fixed> </el-table-column> + <el-table-column prop="channelId" label="閫氶亾缂栧彿" width="210"> + </el-table-column> + <el-table-column prop="name" label="閫氶亾鍚嶇О"> + </el-table-column> + <el-table-column prop="deviceId" label="璁惧缂栧彿" width="210" > + </el-table-column> + <el-table-column label="璁惧鍦板潃" width="180" align="center"> + <template slot-scope="scope"> + <div slot="reference" class="name-wrapper"> + <el-tag size="medium">{{ scope.row.hostAddress }}</el-tag> + </div> + </template> + </el-table-column> + <el-table-column prop="manufacturer" label="鍘傚" align="center"> + </el-table-column> + </el-table> + <el-pagination style="float: right;margin-top: 1rem;" @size-change="handleSizeChange" @current-change="currentChange" :current-page="currentPage" :page-size="count" :page-sizes="[15, 20, 30, 50]" layout="total, sizes, prev, pager, next" :total="total"> + </el-pagination> +</div> +</template> + +<script> +export default { + name: 'chooseChannelForGb', + props: {}, + computed: { + // getPlayerShared: function () { + // return { + // sharedUrl: window.location.host + '/' + this.videoUrl, + // sharedIframe: '<iframe src="' + window.location.host + '/' + this.videoUrl + '"></iframe>', + // sharedRtmp: this.videoUrl + // }; + // } + }, + props: ['chooseChanage'], + created() { + this.initData(); + }, + data() { + return { + gbChannels: [], + searchSrt: "", + channelType: "", + online: "", + currentPage: parseInt(this.$route.params.page), + count: parseInt(this.$route.params.count), + total: 0 + + }; + }, + methods: { + initData: function() { + this.getChannelList(); + }, + currentChange: function (val) { + this.currentPage = val; + this.initData(); + }, + handleSizeChange: function (val) { + this.count = val; + this.initData(); + + }, + getChannelList: function () { + let that = this; + + this.$axios.get(`/api/platforms/channelList`, { + params: { + page: that.currentPage - 1, + count: that.count, + query: that.searchSrt, + online: that.online, + channelType: that.channelType + } + }) + .then(function (res) { + console.log(res); + that.total = res.data.total; + that.gbChannels = res.data.list; + // 闃叉鍑虹幇琛ㄦ牸閿欎綅 + that.$nextTick(() => { + that.$refs.gbChannelsTable.doLayout(); + }) + }) + .catch(function (error) { + console.log(error); + }); + + }, + search: function() { + this.initData(); + }, + handleGBSelectionChange: function() { + this.initData(); + }, + } +}; +</script> + +<style> + +</style> -- Gitblit v1.8.0