1078-添加部标通道页面
This commit is contained in:
@@ -20,7 +20,7 @@ public class JTChannel {
|
||||
* 设备的数据库ID
|
||||
*/
|
||||
@Schema(description = "设备的数据库ID")
|
||||
private int deviceId;
|
||||
private int terminalId;
|
||||
|
||||
/**
|
||||
* 通道ID
|
||||
@@ -51,12 +51,12 @@ public class JTChannel {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public int getDeviceId() {
|
||||
return deviceId;
|
||||
public int getTerminalId() {
|
||||
return terminalId;
|
||||
}
|
||||
|
||||
public void setDeviceId(int deviceId) {
|
||||
this.deviceId = deviceId;
|
||||
public void setTerminalId(int terminalId) {
|
||||
this.terminalId = terminalId;
|
||||
}
|
||||
|
||||
public String getCreateTime() {
|
||||
@@ -88,7 +88,7 @@ public class JTChannel {
|
||||
return "JTChannel{" +
|
||||
"id=" + id +
|
||||
", name='" + name + '\'' +
|
||||
", deviceId=" + deviceId +
|
||||
", terminalId=" + terminalId +
|
||||
", channelId=" + channelId +
|
||||
", createTime='" + createTime + '\'' +
|
||||
", updateTime='" + updateTime + '\'' +
|
||||
|
||||
@@ -44,7 +44,7 @@ public class JTDevice {
|
||||
* 终端型号
|
||||
*/
|
||||
@Schema(description = "终端型号")
|
||||
private String deviceModel;
|
||||
private String model;
|
||||
|
||||
/**
|
||||
* 终端手机号
|
||||
@@ -89,6 +89,10 @@ public class JTDevice {
|
||||
private Double latitude;
|
||||
|
||||
|
||||
@Schema(description = "注册时间")
|
||||
private String registerTime;
|
||||
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
private String createTime;
|
||||
|
||||
@@ -146,12 +150,12 @@ public class JTDevice {
|
||||
this.makerId = makerId;
|
||||
}
|
||||
|
||||
public String getDeviceModel() {
|
||||
return deviceModel;
|
||||
public String getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public void setDeviceModel(String deviceModel) {
|
||||
this.deviceModel = deviceModel;
|
||||
public void setModel(String model) {
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
public String getPhoneNumber() {
|
||||
@@ -234,6 +238,14 @@ public class JTDevice {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getRegisterTime() {
|
||||
return registerTime;
|
||||
}
|
||||
|
||||
public void setRegisterTime(String registerTime) {
|
||||
this.registerTime = registerTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "JTDevice{" +
|
||||
@@ -242,11 +254,12 @@ public class JTDevice {
|
||||
", 市县域ID='" + cityId + '\'' +
|
||||
", 市县域文字描述='" + cityText + '\'' +
|
||||
", 制造商ID='" + makerId + '\'' +
|
||||
", 终端型号='" + deviceModel + '\'' +
|
||||
", 终端型号='" + model + '\'' +
|
||||
", 终端手机号='" + phoneNumber + '\'' +
|
||||
", 设备ID='" + terminalId + '\'' +
|
||||
", 车牌颜色=" + plateColor +
|
||||
", 车牌='" + plateNo + '\'' +
|
||||
", 注册时间='" + registerTime + '\'' +
|
||||
", 鉴权码='" + authenticationCode + '\'' +
|
||||
", status=" + status +
|
||||
'}';
|
||||
|
||||
@@ -81,7 +81,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object startLive(String devId, J9101 j9101, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9101)
|
||||
.setRespId(H0001)
|
||||
@@ -98,7 +98,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object stopLive(String devId, J9102 j9102, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9102)
|
||||
.setRespId(H0001)
|
||||
@@ -115,7 +115,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object queryBackTime(String devId, J9205 j9205, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9205)
|
||||
.setRespId(H1205)
|
||||
@@ -132,7 +132,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object startBackLive(String devId, J9201 j9201, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9201)
|
||||
.setRespId(H1205)
|
||||
@@ -149,7 +149,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object controlBackLive(String devId, J9202 j9202, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9202)
|
||||
.setRespId(H0001)
|
||||
@@ -166,7 +166,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object fileUpload(String devId, J9206 j9206, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9206)
|
||||
.setRespId(H0001)
|
||||
@@ -183,7 +183,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object fileUploadControl(String devId, J9207 j9207, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9207)
|
||||
.setRespId(H0001)
|
||||
@@ -200,7 +200,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object ptzRotate(String devId, J9301 j9301, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9301)
|
||||
.setRespId(H0001)
|
||||
@@ -217,7 +217,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object ptzFocal(String devId, J9302 j9302, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9302)
|
||||
.setRespId(H0001)
|
||||
@@ -234,7 +234,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object ptzIris(String devId, J9303 j9303, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9303)
|
||||
.setRespId(H0001)
|
||||
@@ -251,7 +251,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object ptzWiper(String devId, J9304 j9304, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9304)
|
||||
.setRespId(H0001)
|
||||
@@ -268,7 +268,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object ptzSupplementaryLight(String devId, J9305 j9305, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9305)
|
||||
.setRespId(H0001)
|
||||
@@ -285,7 +285,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object ptzZoom(String devId, J9306 j9306, Integer timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9306)
|
||||
.setRespId(H0001)
|
||||
@@ -302,7 +302,7 @@ public class JT1078Template {
|
||||
public Object getDeviceConfig(String devId, J8104 j8104, Integer timeOut) {
|
||||
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8104)
|
||||
.setRespId(H0104)
|
||||
@@ -319,7 +319,7 @@ public class JT1078Template {
|
||||
public Object getDeviceSpecifyConfig(String devId, J8106 j8106, Integer timeOut) {
|
||||
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8106)
|
||||
.setRespId(H0104)
|
||||
@@ -336,7 +336,7 @@ public class JT1078Template {
|
||||
public Object setDeviceSpecifyConfig(String devId, J8103 j8103, Integer timeOut) {
|
||||
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8103)
|
||||
.setRespId(H0001)
|
||||
@@ -354,7 +354,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object deviceControl(String devId, J8105 j8105, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8105)
|
||||
.setRespId(H0001)
|
||||
@@ -368,7 +368,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object deviceAttribute(String devId, J8107 j8107, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8107)
|
||||
.setRespId(H0107)
|
||||
@@ -382,7 +382,7 @@ public class JT1078Template {
|
||||
*/
|
||||
public Object queryPositionInfo(String devId, J8201 j8201, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8201)
|
||||
.setRespId(H0201)
|
||||
@@ -393,7 +393,7 @@ public class JT1078Template {
|
||||
|
||||
public Object tempPositionTrackingControl(String devId, J8202 j8202, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8202)
|
||||
.setRespId(H0001)
|
||||
@@ -404,7 +404,7 @@ public class JT1078Template {
|
||||
|
||||
public Object confirmationAlarmMessage(String devId, J8203 j8203, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8203)
|
||||
.setRespId(H0001)
|
||||
@@ -415,7 +415,7 @@ public class JT1078Template {
|
||||
|
||||
public Object linkDetection(String devId, J8204 j8204, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8204)
|
||||
.setRespId(H0001)
|
||||
@@ -426,7 +426,7 @@ public class JT1078Template {
|
||||
|
||||
public Object textMessage(String devId, J8300 j8300, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8300)
|
||||
.setRespId(H0001)
|
||||
@@ -437,7 +437,7 @@ public class JT1078Template {
|
||||
|
||||
public Object telephoneCallback(String devId, J8400 j8400, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8400)
|
||||
.setRespId(H0001)
|
||||
@@ -448,7 +448,7 @@ public class JT1078Template {
|
||||
|
||||
public Object setPhoneBook(String devId, J8401 j8401, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8401)
|
||||
.setRespId(H0001)
|
||||
@@ -459,7 +459,7 @@ public class JT1078Template {
|
||||
|
||||
public Object vehicleControl(String devId, J8500 j8500, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8500)
|
||||
.setRespId(H0500)
|
||||
@@ -470,7 +470,7 @@ public class JT1078Template {
|
||||
|
||||
public Object setAreaForCircle(String devId, J8600 j8600, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8600)
|
||||
.setRespId(H0001)
|
||||
@@ -481,7 +481,7 @@ public class JT1078Template {
|
||||
|
||||
public Object deleteAreaForCircle(String devId, J8601 j8601, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8601)
|
||||
.setRespId(H0001)
|
||||
@@ -492,7 +492,7 @@ public class JT1078Template {
|
||||
|
||||
public Object setAreaForRectangle(String devId, J8602 j8602, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8602)
|
||||
.setRespId(H0001)
|
||||
@@ -503,7 +503,7 @@ public class JT1078Template {
|
||||
|
||||
public Object deleteAreaForRectangle(String devId, J8603 j8603, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8603)
|
||||
.setRespId(H0001)
|
||||
@@ -514,7 +514,7 @@ public class JT1078Template {
|
||||
|
||||
public Object setAreaForPolygon(String devId, J8604 j8604, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8604)
|
||||
.setRespId(H0001)
|
||||
@@ -525,7 +525,7 @@ public class JT1078Template {
|
||||
|
||||
public Object deleteAreaForPolygon(String devId, J8605 j8605, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8605)
|
||||
.setRespId(H0001)
|
||||
@@ -536,7 +536,7 @@ public class JT1078Template {
|
||||
|
||||
public Object setRoute(String devId, J8606 j8606, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8606)
|
||||
.setRespId(H0001)
|
||||
@@ -547,7 +547,7 @@ public class JT1078Template {
|
||||
|
||||
public Object deleteRoute(String devId, J8607 j8607, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8607)
|
||||
.setRespId(H0001)
|
||||
@@ -558,7 +558,7 @@ public class JT1078Template {
|
||||
|
||||
public Object queryAreaOrRoute(String devId, J8608 j8608, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8608)
|
||||
.setRespId(H0608)
|
||||
@@ -569,7 +569,7 @@ public class JT1078Template {
|
||||
|
||||
public Object queryDriverInformation(String devId, J8702 j8702, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8702)
|
||||
.setRespId(H0702)
|
||||
@@ -580,7 +580,7 @@ public class JT1078Template {
|
||||
|
||||
public Object shooting(String devId, J8801 j8801, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8801)
|
||||
.setRespId(H0805)
|
||||
@@ -591,7 +591,7 @@ public class JT1078Template {
|
||||
|
||||
public Object queryMediaData(String devId, J8802 j8802, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8802)
|
||||
.setRespId(H0802)
|
||||
@@ -602,7 +602,7 @@ public class JT1078Template {
|
||||
|
||||
public Object uploadMediaData(String devId, J8803 j8803, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8803)
|
||||
.setRespId(H0801)
|
||||
@@ -613,7 +613,7 @@ public class JT1078Template {
|
||||
|
||||
public Object record(String devId, J8804 j8804, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8804)
|
||||
.setRespId(H0001)
|
||||
@@ -624,7 +624,7 @@ public class JT1078Template {
|
||||
|
||||
public Object uploadMediaDataForSingle(String devId, J8805 j8805, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H8805)
|
||||
.setRespId(H0801)
|
||||
@@ -635,7 +635,7 @@ public class JT1078Template {
|
||||
|
||||
public Object queryMediaAttribute(String devId, J9003 j9003, int timeOut) {
|
||||
Cmd cmd = new Cmd.Builder()
|
||||
.setDevId(devId)
|
||||
.setPhoneNumber(devId)
|
||||
.setPackageNo(randomInt())
|
||||
.setMsgId(H9003)
|
||||
.setRespId(H1003)
|
||||
|
||||
@@ -12,7 +12,6 @@ import com.genersoft.iot.vmp.service.bean.InviteErrorCode;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
|
||||
@@ -21,11 +21,11 @@ import java.util.List;
|
||||
|
||||
@ConditionalOnProperty(value = "jt1078.enable", havingValue = "true")
|
||||
@RestController
|
||||
@Tag(name = "部标设备管理")
|
||||
@RequestMapping("/api/jt1078/device")
|
||||
public class JT1078DeviceController {
|
||||
@Tag(name = "部标终端以及通道管理")
|
||||
@RequestMapping("/api/jt1078/terminal")
|
||||
public class JT1078TerminalController {
|
||||
|
||||
private final static Logger logger = LoggerFactory.getLogger(JT1078DeviceController.class);
|
||||
private final static Logger logger = LoggerFactory.getLogger(JT1078TerminalController.class);
|
||||
|
||||
@Resource
|
||||
Ijt1078Service service;
|
||||
@@ -71,18 +71,21 @@ public class JT1078DeviceController {
|
||||
|
||||
|
||||
@Operation(summary = "1078-查询部标通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
||||
@Parameter(name = "page", description = "当前页", required = true)
|
||||
@Parameter(name = "count", description = "每页查询数量", required = true)
|
||||
@Parameter(name = "deviceId", description = "设备ID", required = true)
|
||||
@Parameter(name = "query", description = "查询内容")
|
||||
@GetMapping("/channel/list")
|
||||
public List<JTChannel> getChannels(@RequestParam(required = true) Integer deviceId,
|
||||
@RequestParam(required = false) String query) {
|
||||
public PageInfo<JTChannel> getChannels(int page, int count,
|
||||
@RequestParam(required = true) Integer deviceId,
|
||||
@RequestParam(required = false) String query) {
|
||||
assert deviceId != null;
|
||||
return service.getChannelList(deviceId, query);
|
||||
return service.getChannelList(page, count, deviceId, query);
|
||||
}
|
||||
|
||||
@Operation(summary = "1078-更新通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
||||
@Parameter(name = "channel", description = "通道", required = true)
|
||||
@PostMapping("/update")
|
||||
@PostMapping("/channel/update")
|
||||
public void updateChannel(JTChannel channel){
|
||||
assert channel.getId() > 0;
|
||||
assert channel.getChannelId() != null;
|
||||
@@ -91,14 +94,14 @@ public class JT1078DeviceController {
|
||||
|
||||
@Operation(summary = "1078-新增通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
||||
@Parameter(name = "channel", description = "通道", required = true)
|
||||
@PostMapping("/add")
|
||||
@PostMapping("/channel/add")
|
||||
public void addChannel(JTChannel channel){
|
||||
assert channel.getChannelId() != null;
|
||||
service.addChannel(channel);
|
||||
}
|
||||
@Operation(summary = "1078-删除通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
|
||||
@Parameter(name = "id", description = "通道的数据库ID", required = true)
|
||||
@DeleteMapping("/delete")
|
||||
@DeleteMapping("/channel/delete")
|
||||
public void deleteChannel(Integer id){
|
||||
service.deleteChannelById(id);
|
||||
}
|
||||
@@ -9,7 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@Schema(description = "人工确认报警消息参数")
|
||||
public class ConfirmationAlarmMessageParam {
|
||||
|
||||
@Schema(description = "设备")
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
@Schema(description = "报警消息流水号")
|
||||
private int alarmPackageNo;
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
package com.genersoft.iot.vmp.jt1078.controller.bean;
|
||||
|
||||
import com.genersoft.iot.vmp.jt1078.bean.JTDeviceConnectionControl;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
public class ConnectionControlParam {
|
||||
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
private JTDeviceConnectionControl control;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@Schema(description = "存储多媒体数据参数")
|
||||
public class QueryMediaDataParam {
|
||||
|
||||
@Schema(description = "设备")
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
|
||||
@Schema(description = "多媒体 ID, 单条存储多媒体数据检索上传时有效")
|
||||
|
||||
@@ -8,7 +8,7 @@ import java.util.List;
|
||||
@Schema(description = "设置区域参数")
|
||||
public class SetAreaParam {
|
||||
|
||||
@Schema(description = "设备")
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
|
||||
@Schema(description = "圆形区域项")
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
package com.genersoft.iot.vmp.jt1078.controller;
|
||||
package com.genersoft.iot.vmp.jt1078.controller.bean;
|
||||
|
||||
import com.genersoft.iot.vmp.jt1078.bean.JTDeviceConfig;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
@Schema(description = "终端参数设置")
|
||||
public class SetConfigParam {
|
||||
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
|
||||
@Schema(description = "终端参数设置")
|
||||
private JTDeviceConfig config;
|
||||
|
||||
public String getPhoneNumber() {
|
||||
@@ -9,7 +9,7 @@ import java.util.List;
|
||||
@Schema(description = "设置电话本")
|
||||
public class SetPhoneBookParam {
|
||||
|
||||
@Schema(description = "设备手机号")
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
|
||||
@Schema(description = "设置类型:\n" +
|
||||
|
||||
@@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@Schema(description = "摄像头立即拍摄命令参数")
|
||||
public class ShootingParam {
|
||||
|
||||
@Schema(description = "设备")
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
|
||||
@Schema(description = "拍摄命令参数")
|
||||
|
||||
@@ -9,7 +9,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@Schema(description = "人工确认报警消息参数")
|
||||
public class TextMessageParam {
|
||||
|
||||
@Schema(description = "设备手机号")
|
||||
@Schema(description = "终端手机号")
|
||||
private String phoneNumber;
|
||||
@Schema(description = "标志")
|
||||
private JTTextSign sign;
|
||||
|
||||
@@ -14,18 +14,18 @@ public interface JTChannelMapper {
|
||||
"from " +
|
||||
"wvp_jt_channel jc " +
|
||||
"WHERE " +
|
||||
"device_id = #{deviceId}" +
|
||||
"terminal_id = #{terminalId}" +
|
||||
" <if test='query != null'> AND " +
|
||||
"jc.name LIKE concat('%',#{query},'%') " +
|
||||
"</if> " +
|
||||
"ORDER BY jc.update_time " +
|
||||
" </script>"})
|
||||
List<JTChannel> getAll(@Param("deviceId") int deviceId, @Param("query") String query);
|
||||
List<JTChannel> getAll(@Param("terminalId") int terminalId, @Param("query") String query);
|
||||
|
||||
@Update(value = {" <script>" +
|
||||
"UPDATE wvp_jt_channel " +
|
||||
"SET update_time=#{updateTime}" +
|
||||
"<if test=\"deviceId != null\">, device_id=#{deviceId}</if>" +
|
||||
"<if test=\"terminalId != null\">, terminal_id=#{terminalId}</if>" +
|
||||
"<if test=\"name != null\">, name=#{name}</if>" +
|
||||
"<if test=\"channelId != null\">, channelId=#{channelId}</if>" +
|
||||
"WHERE id=#{id}"+
|
||||
@@ -33,13 +33,13 @@ public interface JTChannelMapper {
|
||||
void update(JTChannel channel);
|
||||
|
||||
@Insert("INSERT INTO wvp_jt_channel (" +
|
||||
"device_id,"+
|
||||
"terminal_id,"+
|
||||
"channel_id,"+
|
||||
"name,"+
|
||||
"create_time,"+
|
||||
"update_time"+
|
||||
") VALUES (" +
|
||||
"#{deviceId}," +
|
||||
"#{terminalId}," +
|
||||
"#{channelId}," +
|
||||
"#{name}," +
|
||||
"#{createTime}," +
|
||||
|
||||
@@ -14,18 +14,19 @@ public interface JTTerminalMapper {
|
||||
@Update(value = {" <script>" +
|
||||
"UPDATE wvp_jt_terminal " +
|
||||
"SET update_time=#{updateTime}" +
|
||||
"<if test=\"terminalId != null\">, terminal_id=#{terminalId}</if>" +
|
||||
"<if test=\"provinceId != null\">, province_id=#{provinceId}</if>" +
|
||||
"<if test=\"terminalId != null\">, terminal_id=#{terminalId}</if>" +
|
||||
"<if test=\"provinceText != null\">, province_text=#{provinceText}</if>" +
|
||||
"<if test=\"cityId != null\">, city_id=#{cityId}</if>" +
|
||||
"<if test=\"cityText != null\">, city_text=#{cityText}</if>" +
|
||||
"<if test=\"makerId != null\">, maker_id=#{makerId}</if>" +
|
||||
"<if test=\"deviceModel != null\">, device_model=#{deviceModel}</if>" +
|
||||
"<if test=\"model != null\">, model=#{model}</if>" +
|
||||
"<if test=\"plateColor != null\">, plate_color=#{plateColor}</if>" +
|
||||
"<if test=\"plateNo != null\">, plate_no=#{plateNo}</if>" +
|
||||
"<if test=\"authenticationCode != null\">, authentication_code=#{authenticationCode}</if>" +
|
||||
"<if test=\"longitude != null\">, longitude=#{longitude}</if>" +
|
||||
"<if test=\"latitude != null\">, latitude=#{latitude}</if>" +
|
||||
"<if test=\"registerTime != null\">, register_time=#{registerTime}</if>" +
|
||||
"<if test=\"status != null\">, status=#{status}</if>" +
|
||||
"WHERE phone_number=#{phoneNumber}"+
|
||||
" </script>"})
|
||||
@@ -38,11 +39,12 @@ public interface JTTerminalMapper {
|
||||
"1=1" +
|
||||
" <if test='query != null'> AND (" +
|
||||
"jd.phone_number LIKE concat('%',#{query},'%') " +
|
||||
"jd.terminal_id LIKE concat('%',#{query},'%') " +
|
||||
"jd.province_id LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.city_id LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.maker_id LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.device_model LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.terminal_id LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.model LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.phone_number LIKE concat('%',#{query},'%') " +
|
||||
"OR jd.plate_no LIKE concat('%',#{query},'%')" +
|
||||
")</if> " +
|
||||
" <if test='online == true' > AND jd.status= true</if>" +
|
||||
@@ -52,36 +54,38 @@ public interface JTTerminalMapper {
|
||||
List<JTDevice> getDeviceList(@Param("query") String query, @Param("online") Boolean online);
|
||||
|
||||
@Insert("INSERT INTO wvp_jt_terminal (" +
|
||||
"phone_number,"+
|
||||
"terminal_id,"+
|
||||
"province_id,"+
|
||||
"province_text,"+
|
||||
"city_id,"+
|
||||
"city_text,"+
|
||||
"maker_id,"+
|
||||
"terminal_id,"+
|
||||
"device_model,"+
|
||||
"phone_number,"+
|
||||
"model,"+
|
||||
"plate_color,"+
|
||||
"plate_no,"+
|
||||
"authentication_code,"+
|
||||
"longitude,"+
|
||||
"latitude,"+
|
||||
"create_time,"+
|
||||
"register_time,"+
|
||||
"update_time"+
|
||||
") VALUES (" +
|
||||
"#{phoneNumber}," +
|
||||
"#{terminalId}," +
|
||||
"#{provinceId}," +
|
||||
"#{provinceText}," +
|
||||
"#{cityId}," +
|
||||
"#{cityText}," +
|
||||
"#{makerId}," +
|
||||
"#{terminalId}," +
|
||||
"#{deviceModel}," +
|
||||
"#{phoneNumber}," +
|
||||
"#{model}," +
|
||||
"#{plateColor}," +
|
||||
"#{plateNo}," +
|
||||
"#{authenticationCode}," +
|
||||
"#{longitude}," +
|
||||
"#{latitude}," +
|
||||
"#{createTime}," +
|
||||
"#{registerTime}," +
|
||||
"#{updateTime}" +
|
||||
")")
|
||||
void addDevice(JTDevice device);
|
||||
|
||||
@@ -20,7 +20,6 @@ public class Header {
|
||||
// 消息体流水号
|
||||
Integer sn;
|
||||
|
||||
|
||||
// 协议版本号
|
||||
Short version = -1;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.genersoft.iot.vmp.jt1078.proc.response.Rs;
|
||||
* @email qingtaij@163.com
|
||||
*/
|
||||
public class Cmd {
|
||||
String devId;
|
||||
String phoneNumber;
|
||||
Long packageNo;
|
||||
String msgId;
|
||||
String respId;
|
||||
@@ -18,19 +18,19 @@ public class Cmd {
|
||||
}
|
||||
|
||||
public Cmd(Builder builder) {
|
||||
this.devId = builder.devId;
|
||||
this.phoneNumber = builder.phoneNumber;
|
||||
this.packageNo = builder.packageNo;
|
||||
this.msgId = builder.msgId;
|
||||
this.respId = builder.respId;
|
||||
this.rs = builder.rs;
|
||||
}
|
||||
|
||||
public String getDevId() {
|
||||
return devId;
|
||||
public String getPhoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public void setDevId(String devId) {
|
||||
this.devId = devId;
|
||||
public void setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
}
|
||||
|
||||
public Long getPackageNo() {
|
||||
@@ -66,14 +66,14 @@ public class Cmd {
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
String devId;
|
||||
String phoneNumber;
|
||||
Long packageNo;
|
||||
String msgId;
|
||||
String respId;
|
||||
Rs rs;
|
||||
|
||||
public Builder setDevId(String devId) {
|
||||
this.devId = devId.replaceFirst("^0*", "");
|
||||
public Builder setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber.replaceFirst("^0*", "");
|
||||
return this;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class Cmd {
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Cmd{" +
|
||||
"devId='" + devId + '\'' +
|
||||
"devId='" + phoneNumber + '\'' +
|
||||
", packageNo=" + packageNo +
|
||||
", msgId='" + msgId + '\'' +
|
||||
", respId='" + respId + '\'' +
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.genersoft.iot.vmp.jt1078.proc.response.Rs;
|
||||
import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service;
|
||||
import com.genersoft.iot.vmp.jt1078.session.Session;
|
||||
import com.genersoft.iot.vmp.utils.CivilCodeUtil;
|
||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -43,7 +44,7 @@ public class J0100 extends Re {
|
||||
device.setMakerId(buf.readCharSequence(11, Charset.forName("GBK"))
|
||||
.toString().trim());
|
||||
|
||||
device.setDeviceModel(buf.readCharSequence(30, Charset.forName("GBK"))
|
||||
device.setModel(buf.readCharSequence(30, Charset.forName("GBK"))
|
||||
.toString().trim());
|
||||
|
||||
device.setTerminalId(buf.readCharSequence(30, Charset.forName("GBK"))
|
||||
@@ -62,7 +63,7 @@ public class J0100 extends Re {
|
||||
|
||||
byte[] bytes20 = new byte[20];
|
||||
buf.readBytes(bytes20);
|
||||
device.setDeviceModel(new String(bytes20).trim());
|
||||
device.setModel(new String(bytes20).trim());
|
||||
|
||||
byte[] bytes7 = new byte[7];
|
||||
buf.readBytes(bytes7);
|
||||
@@ -93,6 +94,7 @@ public class J0100 extends Re {
|
||||
deviceInDb.setAuthenticationCode(authenticationCode);
|
||||
deviceInDb.setStatus(true);
|
||||
deviceInDb.setProvinceId(device.getProvinceId());
|
||||
deviceInDb.setRegisterTime(DateUtil.getNow());
|
||||
CivilCodePo provinceCivilCodePo = CivilCodeUtil.INSTANCE.get(device.getProvinceId());
|
||||
if (provinceCivilCodePo != null) {
|
||||
deviceInDb.setProvinceText(provinceCivilCodePo.getName());
|
||||
@@ -103,7 +105,7 @@ public class J0100 extends Re {
|
||||
if (cityCivilCodePo != null) {
|
||||
deviceInDb.setCityText(cityCivilCodePo.getName());
|
||||
}
|
||||
deviceInDb.setDeviceModel(device.getDeviceModel());
|
||||
deviceInDb.setModel(device.getModel());
|
||||
deviceInDb.setMakerId(device.getMakerId());
|
||||
deviceInDb.setTerminalId(device.getTerminalId());
|
||||
// TODO 支持直接展示车牌颜色的描述
|
||||
|
||||
@@ -118,7 +118,7 @@ public interface Ijt1078Service {
|
||||
|
||||
void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback<String> fileCallback);
|
||||
|
||||
List<JTChannel> getChannelList(int deviceId, String query);
|
||||
PageInfo<JTChannel> getChannelList(int page, int count, int deviceId, String query);
|
||||
|
||||
void updateChannel(JTChannel channel);
|
||||
|
||||
|
||||
@@ -113,6 +113,10 @@ public class jt1078ServiceImpl implements Ijt1078Service {
|
||||
|
||||
@Override
|
||||
public void addDevice(JTDevice device) {
|
||||
JTDevice deviceInDb = jtDeviceMapper.getDevice(device.getPhoneNumber());
|
||||
if (deviceInDb != null) {
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), "设备" + device.getPhoneNumber() + "已存在");
|
||||
}
|
||||
device.setCreateTime(DateUtil.getNow());
|
||||
device.setUpdateTime(DateUtil.getNow());
|
||||
jtDeviceMapper.addDevice(device);
|
||||
@@ -1006,17 +1010,22 @@ public class jt1078ServiceImpl implements Ijt1078Service {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<JTChannel> getChannelList(int deviceId, String query) {
|
||||
return jtChannelMapper.getAll(deviceId, query);
|
||||
public PageInfo<JTChannel> getChannelList(int page, int count, int deviceId, String query) {
|
||||
PageHelper.startPage(page, count);
|
||||
List<JTChannel> all = jtChannelMapper.getAll(deviceId, query);
|
||||
return new PageInfo<>(all);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateChannel(JTChannel channel) {
|
||||
channel.setUpdateTime(DateUtil.getNow());
|
||||
jtChannelMapper.update(channel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addChannel(JTChannel channel) {
|
||||
channel.setCreateTime(DateUtil.getNow());
|
||||
channel.setUpdateTime(DateUtil.getNow());
|
||||
jtChannelMapper.add(channel);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ import io.netty.channel.Channel;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.SynchronousQueue;
|
||||
@@ -75,16 +73,16 @@ public enum SessionManager {
|
||||
}
|
||||
|
||||
public Object request(Cmd cmd, Integer timeOut) {
|
||||
Session session = this.get(cmd.getDevId());
|
||||
Session session = this.get(cmd.getPhoneNumber());
|
||||
if (session == null) {
|
||||
log.error("DevId: {} not online!", cmd.getDevId());
|
||||
log.error("DevId: {} not online!", cmd.getPhoneNumber());
|
||||
return null;
|
||||
}
|
||||
String requestKey = requestKey(cmd.getDevId(), cmd.getRespId(), cmd.getPackageNo());
|
||||
String requestKey = requestKey(cmd.getPhoneNumber(), cmd.getRespId(), cmd.getPackageNo());
|
||||
System.out.println("requestKey==" + requestKey);
|
||||
SynchronousQueue<Object> subscribe = subscribe(requestKey);
|
||||
if (subscribe == null) {
|
||||
log.error("DevId: {} key:{} send repaid", cmd.getDevId(), requestKey);
|
||||
log.error("DevId: {} key:{} send repaid", cmd.getPhoneNumber(), requestKey);
|
||||
return null;
|
||||
}
|
||||
session.writeObject(cmd);
|
||||
|
||||
544
web_src/src/components/JTChannelList.vue
Executable file
544
web_src/src/components/JTChannelList.vue
Executable file
@@ -0,0 +1,544 @@
|
||||
<template>
|
||||
<div id="channelList" style="width: 100%">
|
||||
<div class="page-header">
|
||||
<div class="page-title">
|
||||
<el-button icon="el-icon-back" size="mini" style="font-size: 20px; color: #000;" type="text" @click="showDevice" ></el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
通道列表
|
||||
</div>
|
||||
<div class="page-header-btn">
|
||||
<div style="display: inline;">
|
||||
搜索:
|
||||
<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-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="add">添加通道</el-button>
|
||||
<el-button icon="el-icon-refresh-right" circle size="mini" @click="refresh()"></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<devicePlayer ref="devicePlayer"></devicePlayer>
|
||||
<el-container v-loading="isLoging" style="height: 82vh;">
|
||||
<el-main style="padding: 5px;">
|
||||
<el-table ref="channelListTable" :data="deviceChannelList" :height="winHeight" style="width: 100%"
|
||||
header-row-class-name="table-header">
|
||||
<el-table-column prop="channelId" label="通道编号" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column prop="name" label="名称" min-width="180">
|
||||
</el-table-column>
|
||||
<el-table-column label="快照" min-width="100">
|
||||
<template v-slot:default="scope">
|
||||
<el-image
|
||||
:src="getSnap(scope.row)"
|
||||
:preview-src-list="getBigSnap(scope.row)"
|
||||
@error="getSnapErrorEvent(scope.row.deviceId, scope.row.channelId)"
|
||||
:fit="'contain'"
|
||||
style="width: 60px">
|
||||
<div slot="error" class="image-slot">
|
||||
<i class="el-icon-picture-outline"></i>
|
||||
</div>
|
||||
</el-image>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开启音频" min-width="100">
|
||||
<template slot-scope="scope">
|
||||
<el-switch @change="updateChannel(scope.row)" v-model="scope.row.hasAudio" active-color="#409EFF">
|
||||
</el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="340" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-video-play"
|
||||
type="text" @click="sendDevicePush(scope.row)">播放
|
||||
</el-button>
|
||||
<el-button size="medium" v-bind:disabled="device == null || device.online === 0"
|
||||
icon="el-icon-switch-button"
|
||||
type="text" style="color: #f56c6c" v-if="!!scope.row.streamId"
|
||||
@click="stopDevicePush(scope.row)">停止
|
||||
</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button
|
||||
v-if="scope.row.edit"
|
||||
size="medium"
|
||||
type="text"
|
||||
icon="el-icon-edit-outline"
|
||||
@click="handleSave(scope.row)"
|
||||
>
|
||||
保存
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
size="medium"
|
||||
type="text"
|
||||
icon="el-icon-edit"
|
||||
@click="handleEdit(scope.row)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button size="medium" icon="el-icon-s-open" type="text"
|
||||
v-if="scope.row.subCount > 0 || scope.row.parental === 1"
|
||||
@click="changeSubchannel(scope.row)">查看
|
||||
</el-button>
|
||||
<el-divider v-if="scope.row.subCount > 0 || scope.row.parental === 1" direction="vertical"></el-divider>
|
||||
<!-- <el-button size="medium" v-bind:disabled="device == null || device.online === 0"-->
|
||||
<!-- icon="el-icon-video-camera"-->
|
||||
<!-- type="text" @click="queryRecords(scope.row)">设备录像-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-cloudy"-->
|
||||
<!-- type="text" @click="queryCloudRecords(scope.row)">云端录像-->
|
||||
<!-- </el-button>-->
|
||||
<el-dropdown @command="(command)=>{moreClick(command, scope.row)}">
|
||||
<el-button size="medium" type="text" >
|
||||
更多功能<i class="el-icon-arrow-down el-icon--right"></i>
|
||||
</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item command="records" v-bind:disabled="device == null || device.online === 0">
|
||||
设备录像</el-dropdown-item>
|
||||
<el-dropdown-item command="cloudRecords" v-bind:disabled="device == null || device.online === 0" >
|
||||
云端录像</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
style="float: right"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="currentChange"
|
||||
:current-page="currentPage"
|
||||
:page-size="count"
|
||||
:page-sizes="[15, 25, 35, 50]"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
:total="total">
|
||||
</el-pagination>
|
||||
</el-main>
|
||||
</el-container>
|
||||
<channelEdit ref="channelEdit"></channelEdit>
|
||||
<!--设备列表-->
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import devicePlayer from './dialog/devicePlayer.vue'
|
||||
import uiHeader from '../layout/UiHeader.vue'
|
||||
import DeviceService from "./service/DeviceService";
|
||||
import DeviceTree from "./common/DeviceTree";
|
||||
import channelEdit from "./dialog/jtChannelEdit.vue";
|
||||
|
||||
export default {
|
||||
name: 'channelList',
|
||||
components: {
|
||||
channelEdit,
|
||||
devicePlayer,
|
||||
uiHeader,
|
||||
DeviceTree
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
deviceService: new DeviceService(),
|
||||
device: null,
|
||||
deviceId: this.$route.params.deviceId,
|
||||
parentChannelId: this.$route.params.parentChannelId,
|
||||
deviceChannelList: [],
|
||||
videoComponentList: [],
|
||||
currentPlayerInfo: {}, //当前播放对象
|
||||
updateLooper: 0, //数据刷新轮训标志
|
||||
searchSrt: "",
|
||||
channelType: "",
|
||||
online: "",
|
||||
subStream: "",
|
||||
winHeight: window.innerHeight - 200,
|
||||
currentPage: 1,
|
||||
count: 15,
|
||||
total: 0,
|
||||
beforeUrl: "/jtDeviceList",
|
||||
isLoging: false,
|
||||
loadSnap: {},
|
||||
ptzTypes: {
|
||||
0: "未知",
|
||||
1: "球机",
|
||||
2: "半球",
|
||||
3: "固定枪机",
|
||||
4: "遥控枪机"
|
||||
}
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
if (this.deviceId) {
|
||||
this.deviceService.getDevice(this.deviceId, (result) => {
|
||||
this.device = result;
|
||||
|
||||
}, (error) => {
|
||||
console.log("获取设备信息失败")
|
||||
console.error(error)
|
||||
})
|
||||
}
|
||||
this.initData();
|
||||
|
||||
},
|
||||
destroyed() {
|
||||
this.$destroy('videojs');
|
||||
clearTimeout(this.updateLooper);
|
||||
},
|
||||
methods: {
|
||||
initData: function () {
|
||||
this.getDeviceChannelList();
|
||||
},
|
||||
initParam: function () {
|
||||
this.deviceId = this.$route.params.deviceId;
|
||||
this.parentChannelId = this.$route.params.parentChannelId;
|
||||
this.currentPage = 1;
|
||||
this.count = 15;
|
||||
if (this.parentChannelId == "" || this.parentChannelId == 0) {
|
||||
this.beforeUrl = "/deviceList"
|
||||
}
|
||||
|
||||
},
|
||||
currentChange: function (val) {
|
||||
this.currentPage = val;
|
||||
this.initData();
|
||||
},
|
||||
handleSizeChange: function (val) {
|
||||
this.count = val;
|
||||
this.getDeviceChannelList();
|
||||
},
|
||||
getDeviceChannelList: function () {
|
||||
let that = this;
|
||||
if (typeof (this.$route.params.deviceId) == "undefined") return;
|
||||
this.$axios({
|
||||
method: 'get',
|
||||
url: `/api/jt1078/terminal/channel/list`,
|
||||
params: {
|
||||
page: that.currentPage,
|
||||
count: that.count,
|
||||
query: that.searchSrt,
|
||||
deviceId: this.$route.params.deviceId,
|
||||
}
|
||||
}).then(function (res) {
|
||||
if (res.data.code === 0) {
|
||||
that.total = res.data.data.total;
|
||||
that.deviceChannelList = res.data.data.list;
|
||||
// 防止出现表格错位
|
||||
that.$nextTick(() => {
|
||||
that.$refs.channelListTable.doLayout();
|
||||
})
|
||||
}
|
||||
|
||||
}).catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
|
||||
//通知设备上传媒体流
|
||||
sendDevicePush: function (itemData) {
|
||||
let deviceId = this.deviceId;
|
||||
this.isLoging = true;
|
||||
let channelId = itemData.channelId;
|
||||
console.log("通知设备推流1:" + deviceId + " : " + channelId);
|
||||
let that = this;
|
||||
this.$axios({
|
||||
method: 'get',
|
||||
url: '/api/play/start/' + deviceId + '/' + channelId,
|
||||
params: {
|
||||
isSubStream: this.isSubStream
|
||||
}
|
||||
}).then(function (res) {
|
||||
console.log(res)
|
||||
that.isLoging = false;
|
||||
if (res.data.code === 0) {
|
||||
|
||||
setTimeout(() => {
|
||||
|
||||
let snapId = deviceId + "_" + channelId;
|
||||
that.loadSnap[deviceId + channelId] = 0;
|
||||
that.getSnapErrorEvent(snapId)
|
||||
}, 5000)
|
||||
itemData.streamId = res.data.data.stream;
|
||||
that.$refs.devicePlayer.openDialog("media", deviceId, channelId, {
|
||||
streamInfo: res.data.data,
|
||||
hasAudio: itemData.hasAudio
|
||||
});
|
||||
setTimeout(() => {
|
||||
that.initData();
|
||||
}, 1000)
|
||||
|
||||
} else {
|
||||
that.$message.error(res.data.msg);
|
||||
}
|
||||
}).catch(function (e) {
|
||||
console.error(e)
|
||||
that.isLoging = false;
|
||||
// that.$message.error("请求超时");
|
||||
});
|
||||
},
|
||||
moreClick: function (command, itemData) {
|
||||
if (command === "records") {
|
||||
this.queryRecords(itemData)
|
||||
}else if (command === "cloudRecords") {
|
||||
this.queryCloudRecords(itemData)
|
||||
}
|
||||
},
|
||||
queryRecords: function (itemData) {
|
||||
let deviceId = this.deviceId;
|
||||
let channelId = itemData.channelId;
|
||||
|
||||
this.$router.push(`/gbRecordDetail/${deviceId}/${channelId}`)
|
||||
},
|
||||
queryCloudRecords: function (itemData) {
|
||||
let deviceId = this.deviceId;
|
||||
let channelId = itemData.channelId;
|
||||
|
||||
this.$router.push(`/cloudRecordDetail/rtp/${deviceId}_${channelId}`)
|
||||
},
|
||||
stopDevicePush: function (itemData) {
|
||||
var that = this;
|
||||
this.$axios({
|
||||
method: 'get',
|
||||
url: '/api/play/stop/' + this.deviceId + "/" + itemData.channelId,
|
||||
params: {
|
||||
isSubStream: this.isSubStream
|
||||
}
|
||||
}).then(function (res) {
|
||||
that.initData();
|
||||
}).catch(function (error) {
|
||||
if (error.response.status === 402) { // 已经停止过
|
||||
that.initData();
|
||||
} else {
|
||||
console.log(error)
|
||||
}
|
||||
});
|
||||
},
|
||||
getSnap: function (row) {
|
||||
let baseUrl = window.baseUrl ? window.baseUrl : "";
|
||||
return ((process.env.NODE_ENV === 'development') ? process.env.BASE_API : baseUrl) + '/api/device/query/snap/' + row.deviceId + '/' + row.channelId;
|
||||
},
|
||||
getBigSnap: function (row) {
|
||||
return [this.getSnap(row)]
|
||||
},
|
||||
getSnapErrorEvent: function (deviceId, channelId) {
|
||||
|
||||
if (typeof (this.loadSnap[deviceId + channelId]) != "undefined") {
|
||||
console.log("下载截图" + this.loadSnap[deviceId + channelId])
|
||||
if (this.loadSnap[deviceId + channelId] > 5) {
|
||||
delete this.loadSnap[deviceId + channelId];
|
||||
return;
|
||||
}
|
||||
setTimeout(() => {
|
||||
let url = (process.env.NODE_ENV === 'development' ? "debug" : "") + '/api/device/query/snap/' + deviceId + '/' + channelId
|
||||
this.loadSnap[deviceId + channelId]++
|
||||
document.getElementById(deviceId + channelId).setAttribute("src", url + '?' + new Date().getTime())
|
||||
}, 1000)
|
||||
|
||||
}
|
||||
},
|
||||
showDevice: function () {
|
||||
this.$router.push(this.beforeUrl).then(() => {
|
||||
this.initParam();
|
||||
this.initData();
|
||||
})
|
||||
},
|
||||
changeSubchannel(itemData) {
|
||||
this.beforeUrl = this.$router.currentRoute.path;
|
||||
|
||||
var url = `/${this.$router.currentRoute.name}/${this.$router.currentRoute.params.deviceId}/${itemData.channelId}`
|
||||
this.$router.push(url).then(() => {
|
||||
this.searchSrt = "";
|
||||
this.channelType = "";
|
||||
this.online = "";
|
||||
this.initParam();
|
||||
this.initData();
|
||||
})
|
||||
},
|
||||
search: function () {
|
||||
this.currentPage = 1;
|
||||
this.total = 0;
|
||||
this.initData();
|
||||
},
|
||||
updateChannel: function (row) {
|
||||
this.$axios({
|
||||
method: 'post',
|
||||
url: `/api/device/query/channel/update/${this.deviceId}`,
|
||||
params: row
|
||||
}).then(function (res) {
|
||||
console.log(JSON.stringify(res));
|
||||
});
|
||||
},
|
||||
subStreamChange: function () {
|
||||
this.$confirm('确定重置所有通道的码流类型?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.$axios({
|
||||
method: 'post',
|
||||
url: `/api/device/query/channel/stream/identification/update/`,
|
||||
params: {
|
||||
deviceId: this.deviceId,
|
||||
streamIdentification: this.subStream
|
||||
}
|
||||
}).then((res)=> {
|
||||
console.log(JSON.stringify(res));
|
||||
this.initData()
|
||||
}).finally(()=>{
|
||||
this.subStream = ""
|
||||
})
|
||||
}).catch(() => {
|
||||
this.subStream = ""
|
||||
});
|
||||
|
||||
},
|
||||
channelSubStreamChange: function (row) {
|
||||
this.$axios({
|
||||
method: 'post',
|
||||
url: `/api/device/query/channel/stream/identification/update/`,
|
||||
params: {
|
||||
deviceId: this.deviceId,
|
||||
channelId: row.channelId,
|
||||
streamIdentification: row.streamIdentification
|
||||
}
|
||||
}).then(function (res) {
|
||||
console.log(JSON.stringify(res));
|
||||
});
|
||||
},
|
||||
refresh: function () {
|
||||
this.initData();
|
||||
},
|
||||
add: function () {
|
||||
this.$refs.channelEdit.openDialog(null, this.deviceId, () => {
|
||||
this.$refs.channelEdit.close();
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: "添加成功",
|
||||
type: "success",
|
||||
});
|
||||
setTimeout(this.getList, 200)
|
||||
|
||||
})
|
||||
},
|
||||
treeNodeClickEvent: function (device, data, isCatalog) {
|
||||
console.log(device)
|
||||
if (!!!data.channelId) {
|
||||
this.parentChannelId = device.deviceId;
|
||||
} else {
|
||||
this.parentChannelId = data.channelId;
|
||||
}
|
||||
this.initData();
|
||||
},
|
||||
// 保存
|
||||
handleSave(row) {
|
||||
if (row.location) {
|
||||
const segements = row.location.split(",");
|
||||
if (segements.length !== 2) {
|
||||
this.$message.warning("位置信息格式有误,例:117.234,36.378");
|
||||
return;
|
||||
} else {
|
||||
row.customLongitude = parseFloat(segements[0]);
|
||||
row.custom_latitude = parseFloat(segements[1]);
|
||||
if (!(row.longitude && row.latitude)) {
|
||||
this.$message.warning("位置信息格式有误,例:117.234,36.378");
|
||||
return;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
delete row.longitude;
|
||||
delete row.latitude;
|
||||
}
|
||||
Object.keys(row).forEach(key => {
|
||||
const value = row[key];
|
||||
if (value === null || value === undefined || (typeof value === "string" && value.trim() === "")) {
|
||||
delete row[key];
|
||||
}
|
||||
});
|
||||
this.$axios({
|
||||
method: 'post',
|
||||
url: `/api/device/query/channel/update/${this.deviceId}`,
|
||||
params: row
|
||||
}).then(response => {
|
||||
if (response.data.code === 0) {
|
||||
this.$message.success("修改成功!");
|
||||
this.initData();
|
||||
} else {
|
||||
this.$message.error("修改失败!");
|
||||
}
|
||||
}).catch(_ => {
|
||||
this.$message.error("修改失败!");
|
||||
})
|
||||
},
|
||||
// 是否正在编辑
|
||||
isEdit() {
|
||||
let editing = false;
|
||||
this.deviceChannelList.forEach(e => {
|
||||
if (e.edit) {
|
||||
editing = true;
|
||||
}
|
||||
});
|
||||
|
||||
return editing;
|
||||
},
|
||||
// 编辑
|
||||
handleEdit(row) {
|
||||
if (this.isEdit()) {
|
||||
this.$message.warning('请保存当前编辑项!');
|
||||
} else {
|
||||
row.edit = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.videoList {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
}
|
||||
|
||||
.video-item {
|
||||
position: relative;
|
||||
width: 15rem;
|
||||
height: 10rem;
|
||||
margin-right: 1rem;
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
.video-item-img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.video-item-img:after {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: auto;
|
||||
width: 3rem;
|
||||
height: 3rem;
|
||||
background-image: url("../assets/loading.png");
|
||||
background-size: cover;
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
.video-item-title {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
color: #000000;
|
||||
background-color: #ffffff;
|
||||
line-height: 1.5rem;
|
||||
padding: 0.3rem;
|
||||
width: 14.4rem;
|
||||
}
|
||||
</style>
|
||||
@@ -3,25 +3,25 @@
|
||||
<div class="page-header">
|
||||
<div class="page-title">设备列表</div>
|
||||
<div class="page-header-btn">
|
||||
<el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="add">添加设备
|
||||
<el-button icon="el-icon-plus" size="mini" style="margin-right: 1rem;" type="primary" @click="add">接入新设备
|
||||
</el-button>
|
||||
<el-button icon="el-icon-refresh-right" circle size="mini" :loading="getDeviceListLoading"
|
||||
@click="getDeviceList()"></el-button>
|
||||
<el-button icon="el-icon-refresh-right" circle size="mini" :loading="getListLoading"
|
||||
@click="getList()"></el-button>
|
||||
</div>
|
||||
</div>
|
||||
<!--设备列表-->
|
||||
<el-table :data="deviceList" style="width: 100%;font-size: 12px;" :height="winHeight" header-row-class-name="table-header">
|
||||
<el-table-column prop="terminalId" label="终端ID" min-width="160">
|
||||
<el-table-column prop="phoneNumber" label="终端手机号" min-width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="terminalId" label="终端ID" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column prop="provinceText" label="省域" min-width="160">
|
||||
</el-table-column>
|
||||
<el-table-column prop="cityText" label="市县域" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column prop="makerId" label="制造商ID" min-width="160" >
|
||||
<el-table-column prop="makerId" label="制造商" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column prop="deviceModel" label="终端型号" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column prop="deviceId" label="设备ID" min-width="160" >
|
||||
<el-table-column prop="model" label="型号" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column label="车牌颜色" min-width="160" >
|
||||
<template slot-scope="scope">
|
||||
@@ -41,6 +41,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column prop="plateNo" label="车牌" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column prop="registerTime" label="注册时间" min-width="160" >
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" min-width="160">
|
||||
<template slot-scope="scope">
|
||||
<div slot="reference" class="name-wrapper">
|
||||
@@ -51,6 +53,10 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" min-width="450" fixed="right">
|
||||
<template slot-scope="scope">
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button type="text" size="medium" icon="el-icon-video-camera"
|
||||
@click="showChannelList(scope.row)">通道
|
||||
</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<el-button size="medium" icon="el-icon-edit" type="text" @click="edit(scope.row)">编辑</el-button>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
@@ -97,7 +103,7 @@ export default {
|
||||
currentPage: 1,
|
||||
count: 15,
|
||||
total: 0,
|
||||
getDeviceListLoading: false,
|
||||
getListLoading: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -123,21 +129,21 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
initData: function () {
|
||||
this.getDeviceList();
|
||||
this.getList();
|
||||
},
|
||||
currentChange: function (val) {
|
||||
this.currentPage = val;
|
||||
this.getDeviceList();
|
||||
this.getList();
|
||||
},
|
||||
handleSizeChange: function (val) {
|
||||
this.count = val;
|
||||
this.getDeviceList();
|
||||
this.getList();
|
||||
},
|
||||
getDeviceList: function () {
|
||||
this.getDeviceListLoading = true;
|
||||
getList: function () {
|
||||
this.getListLoading = true;
|
||||
this.$axios({
|
||||
method: 'get',
|
||||
url: `/api/jt1078/device/list`,
|
||||
url: `/api/jt1078/terminal/list`,
|
||||
params: {
|
||||
page: this.currentPage,
|
||||
count: this.count
|
||||
@@ -147,10 +153,10 @@ export default {
|
||||
this.total = res.data.data.total;
|
||||
this.deviceList = res.data.data.list;
|
||||
}
|
||||
this.getDeviceListLoading = false;
|
||||
this.getListLoading = false;
|
||||
}).catch( (error)=> {
|
||||
console.error(error);
|
||||
this.getDeviceListLoading = false;
|
||||
this.getListLoading = false;
|
||||
});
|
||||
},
|
||||
deleteDevice: function (row) {
|
||||
@@ -163,12 +169,12 @@ export default {
|
||||
}).then(() => {
|
||||
this.$axios({
|
||||
method: 'delete',
|
||||
url: '/api/jt1078/device/delete',
|
||||
url: '/api/jt1078/terminal/delete',
|
||||
params: {
|
||||
deviceId: row.deviceId
|
||||
}
|
||||
}).then((res) => {
|
||||
this.getDeviceList();
|
||||
this.getList();
|
||||
}).catch((error) => {
|
||||
console.error(error);
|
||||
});
|
||||
@@ -184,10 +190,13 @@ export default {
|
||||
message: "设备修改成功,通道字符集将在下次更新生效",
|
||||
type: "success",
|
||||
});
|
||||
setTimeout(this.getDeviceList, 200)
|
||||
setTimeout(this.getList, 200)
|
||||
|
||||
})
|
||||
},
|
||||
showChannelList: function (row) {
|
||||
this.$router.push(`/jtChannelList/${row.id}`);
|
||||
},
|
||||
add: function () {
|
||||
this.$refs.deviceEdit.openDialog(null, () => {
|
||||
this.$refs.deviceEdit.close();
|
||||
@@ -196,7 +205,7 @@ export default {
|
||||
message: "添加成功",
|
||||
type: "success",
|
||||
});
|
||||
setTimeout(this.getDeviceList, 200)
|
||||
setTimeout(this.getList, 200)
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
97
web_src/src/components/dialog/jtChannelEdit.vue
Executable file
97
web_src/src/components/dialog/jtChannelEdit.vue
Executable file
@@ -0,0 +1,97 @@
|
||||
<template>
|
||||
<div id="deviceEdit" v-loading="isLoging">
|
||||
<el-dialog
|
||||
title="通道编辑"
|
||||
width="40%"
|
||||
top="2rem"
|
||||
:close-on-click-modal="false"
|
||||
:visible.sync="showDialog"
|
||||
:destroy-on-close="true"
|
||||
@close="close()"
|
||||
>
|
||||
<div id="shared" style="margin-top: 1rem;margin-right: 100px;">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="100px" >
|
||||
<el-form-item label="编号" prop="channelId">
|
||||
<el-input v-model="form.channelId" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<div style="float: right;">
|
||||
<el-button type="primary" @click="onSubmit" >确认</el-button>
|
||||
<el-button @click="close">取消</el-button>
|
||||
</div>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "deviceEdit",
|
||||
props: {},
|
||||
computed: {},
|
||||
created() {},
|
||||
data() {
|
||||
return {
|
||||
listChangeCallback: null,
|
||||
showDialog: false,
|
||||
isLoging: false,
|
||||
form: {},
|
||||
deviceId: "",
|
||||
isEdit: false,
|
||||
rules: {
|
||||
deviceId: [{ required: true, message: "请输入设备编号", trigger: "blur" }]
|
||||
},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
openDialog: function (row, deviceId, callback) {
|
||||
console.log(row)
|
||||
this.showDialog = true;
|
||||
this.isEdit = false;
|
||||
if (row) {
|
||||
this.isEdit = true;
|
||||
}
|
||||
this.form = {};
|
||||
this.deviceId = deviceId;
|
||||
this.listChangeCallback = callback;
|
||||
if (row != null) {
|
||||
this.form = row;
|
||||
}
|
||||
},
|
||||
onSubmit: function () {
|
||||
console.log("onSubmit");
|
||||
this.$axios({
|
||||
method: 'post',
|
||||
url:`/api/jt1078/terminal/channel/${this.isEdit?'update':'add'}/`,
|
||||
params: {
|
||||
terminalId: this.deviceId,
|
||||
name: this.form.name,
|
||||
channelId: this.form.channelId,
|
||||
}
|
||||
}).then((res) => {
|
||||
console.log(res.data)
|
||||
if (res.data.code === 0) {
|
||||
this.listChangeCallback()
|
||||
}else {
|
||||
this.$message({
|
||||
showClose: true,
|
||||
message: res.data.msg,
|
||||
type: "error",
|
||||
});
|
||||
}
|
||||
}).catch(function (error) {
|
||||
console.log(error);
|
||||
});
|
||||
},
|
||||
close: function () {
|
||||
this.showDialog = false;
|
||||
this.$refs.form.resetFields();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@@ -11,8 +11,8 @@
|
||||
>
|
||||
<div id="shared" style="margin-top: 1rem;margin-right: 100px;">
|
||||
<el-form ref="form" :rules="rules" :model="form" label-width="200px" >
|
||||
<el-form-item label="终端ID" prop="terminalId">
|
||||
<el-input v-model="form.terminalId" clearable></el-input>
|
||||
<el-form-item label="终端手机号" prop="phoneNumber">
|
||||
<el-input v-model="form.phoneNumber" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<div style="float: right;">
|
||||
@@ -62,7 +62,7 @@ export default {
|
||||
console.log("onSubmit");
|
||||
this.$axios({
|
||||
method: 'post',
|
||||
url:`/api/jt1078/device/${this.isEdit?'update':'add'}/`,
|
||||
url:`/api/jt1078/terminal/${this.isEdit?'update':'add'}/`,
|
||||
params: this.form
|
||||
}).then((res) => {
|
||||
console.log(res.data)
|
||||
|
||||
@@ -5,6 +5,7 @@ import Layout from "../layout/index.vue"
|
||||
import console from '../components/console.vue'
|
||||
import deviceList from '../components/DeviceList.vue'
|
||||
import jtDeviceList from '../components/JTDeviceList.vue'
|
||||
import jtChannelList from '../components/JTChannelList.vue'
|
||||
import channelList from '../components/channelList.vue'
|
||||
import gbRecordDetail from '../components/GBRecordDetail.vue'
|
||||
import pushVideoList from '../components/PushVideoList.vue'
|
||||
@@ -58,6 +59,10 @@ export default new VueRouter({
|
||||
path: '/jtDeviceList',
|
||||
component: jtDeviceList,
|
||||
},
|
||||
{
|
||||
path: '/jtChannelList/:deviceId',
|
||||
component: jtChannelList,
|
||||
},
|
||||
{
|
||||
path: '/pushVideoList',
|
||||
component: pushVideoList,
|
||||
|
||||
@@ -317,21 +317,21 @@ create table wvp_resources_tree (
|
||||
|
||||
create table wvp_jt_terminal (
|
||||
id serial primary key,
|
||||
device_id character varying(50),
|
||||
phone_number character varying(50),
|
||||
terminal_id character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
device_model character varying(50),
|
||||
model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) not null,
|
||||
register_time character varying(50) default null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
@@ -339,7 +339,7 @@ create table wvp_jt_terminal (
|
||||
create table wvp_jt_channel (
|
||||
id serial primary key,
|
||||
channel_id integer,
|
||||
device_id integer,
|
||||
terminal_id integer,
|
||||
name character varying(255),
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
|
||||
@@ -316,30 +316,30 @@ create table wvp_resources_tree (
|
||||
);
|
||||
|
||||
create table wvp_jt_terminal (
|
||||
id serial primary key,
|
||||
device_id character varying(50),
|
||||
phone_number character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
device_model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) not null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
id serial primary key,
|
||||
phone_number character varying(50),
|
||||
terminal_id character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) default null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
);
|
||||
create table wvp_jt_channel (
|
||||
id serial primary key,
|
||||
channel_id integer,
|
||||
device_id integer,
|
||||
terminal_id integer,
|
||||
name character varying(255),
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
create table wvp_jt_terminal (
|
||||
id serial primary key,
|
||||
device_id character varying(50),
|
||||
phone_number character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
device_model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) not null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
id serial primary key,
|
||||
phone_number character varying(50),
|
||||
terminal_id character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) default null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
);
|
||||
|
||||
create table wvp_jt_channel (
|
||||
id serial primary key,
|
||||
device_id integer,
|
||||
terminal_id integer,
|
||||
channel_id integer,
|
||||
name character varying(255),
|
||||
update_time character varying(50) not null,
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
create table wvp_jt_terminal (
|
||||
id serial primary key,
|
||||
device_id character varying(50),
|
||||
phone_number character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
device_model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) not null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
id serial primary key,
|
||||
phone_number character varying(50),
|
||||
terminal_id character varying(50),
|
||||
province_id character varying(50),
|
||||
province_text character varying(100),
|
||||
city_id character varying(50),
|
||||
city_text character varying(100),
|
||||
maker_id character varying(50),
|
||||
model character varying(50),
|
||||
plate_color character varying(50),
|
||||
plate_no character varying(50),
|
||||
authentication_code character varying(255),
|
||||
longitude double precision,
|
||||
latitude double precision,
|
||||
status bool default false,
|
||||
register_time character varying(50) default null,
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
constraint uk_jt_device_id_device_id unique (id, phone_number)
|
||||
);
|
||||
create table wvp_jt_channel (
|
||||
id serial primary key,
|
||||
channel_id integer,
|
||||
device_id integer,
|
||||
terminal_id integer,
|
||||
name character varying(255),
|
||||
update_time character varying(50) not null,
|
||||
create_time character varying(50) not null,
|
||||
|
||||
Reference in New Issue
Block a user