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