diff --git a/src/common/ClientConnection.ts b/src/common/ClientConnection.ts index a5b2991..34174c6 100644 --- a/src/common/ClientConnection.ts +++ b/src/common/ClientConnection.ts @@ -1,4 +1,5 @@ import NormalWindowRequestEntity from "src/entities/NormalWindowRequestEntity"; +import { SignalSourceEntity } from "src/entities/SignalSourceEntity"; import { Protocol } from "src/entities/WSProtocol"; import EventBus, { EventNamesDefine } from "./EventBus"; @@ -322,10 +323,30 @@ export default class ClientConnection { } } + public async addSignalSource(item: SignalSourceEntity) { + try { + return await this.doRpc( + new Protocol.AddSignalSourcesRequestEntity(0, item) + ); + } catch (e) { + console.error(e); + } + } + + public async editSignalSource(item: SignalSourceEntity) { + try { + return await this.doRpc( + new Protocol.EditSignalSourcesRequestEntity(0, item) + ); + } catch (e) { + console.error(e); + } + } + public async deleteSignalSource(uuid: string) { try { - return await this.doRpc( - new Protocol.DeleteSignalSourcesGroupRequestEntity(0, uuid) + return await this.doRpc( + new Protocol.DeleteSignalSourcesRequestEntity(0, uuid) ); } catch (e) { console.error(e); diff --git a/src/components/GroupDialog.vue b/src/components/GroupDialog.vue index cbbed7f..f23d450 100644 --- a/src/components/GroupDialog.vue +++ b/src/components/GroupDialog.vue @@ -1,137 +1,139 @@ @@ -145,19 +147,11 @@ diff --git a/src/entities/SignalSourceEntity.ts b/src/entities/SignalSourceEntity.ts index 7f611d0..4bb46f3 100644 --- a/src/entities/SignalSourceEntity.ts +++ b/src/entities/SignalSourceEntity.ts @@ -2,7 +2,7 @@ import BaseEntity from "./BaseEntity"; export class SignalSourceEntity extends BaseEntity { name: string = ""; - window_type: string = ""; + window_type: string = "EwindowType::Normal"; media_url: string = ""; user_name: string = ""; password: string = ""; diff --git a/src/entities/WSProtocol.ts b/src/entities/WSProtocol.ts index 01ed29e..26b7f02 100644 --- a/src/entities/WSProtocol.ts +++ b/src/entities/WSProtocol.ts @@ -77,6 +77,18 @@ export namespace Protocol { return Commands.PROTOCOL_PREFIX + "RpcEditSignalSourceGroup"; } + public static get kRpcAddSignalSource() { + return Commands.PROTOCOL_PREFIX + "RpcAddSignalSource"; + } + + public static get kRpcDeleteSignalSource() { + return Commands.PROTOCOL_PREFIX + "RpcDeleteSignalSource"; + } + + public static get kRpcEditSignalSource() { + return Commands.PROTOCOL_PREFIX + "RpcEditSignalSource"; + } + static _all_commands = new Set([ Commands.kUnKnowCommand, Commands.kSearchDevice, @@ -96,6 +108,9 @@ export namespace Protocol { Commands.kRpcAddSignalSourceGroup, Commands.kRpcDeleteSignalSourceGroup, Commands.kRpcEditSignalSourceGroup, + Commands.kRpcAddSignalSource, + Commands.kRpcDeleteSignalSource, + Commands.kRpcEditSignalSource, ]); public static get AllCommands() { @@ -365,7 +380,70 @@ export namespace Protocol { constructor() { super(); - this.command = Protocol.Commands.kRpcDeleteSignalSourceGroup; + this.command = Protocol.Commands.kRpcDeleteSignalSource; + } + } + + export class AddSignalSourcesRequestEntity extends Protocol.PacketEntity { + entity: SignalSourceEntity | null = null; + constructor(rcp_id?: number, entity?: SignalSourceEntity) { + super(); + this.rpc_id = rcp_id ?? 0; + this.command = Protocol.Commands.kRpcAddSignalSource; + this.entity = entity ?? new SignalSourceEntity(); + } + } + + export class AddSignalSourcesResponseEntity extends Protocol.PacketEntity { + success = false; + + constructor() { + super(); + this.command = Protocol.Commands.kRpcAddSignalSourceGroup; + } + } + + export class EditSignalSourcesRequestEntity extends Protocol.PacketEntity { + entity: SignalSourceEntity | null = null; + parent_uuid: string = ""; + constructor( + rcp_id?: number, + entity?: SignalSourceEntity, + parent_uuid?: string + ) { + super(); + this.rpc_id = rcp_id ?? 0; + this.command = Protocol.Commands.kRpcEditSignalSource; + this.entity = entity ?? new SignalSourceEntity(); + this.parent_uuid = parent_uuid ?? ""; + } + } + + export class EditSignalSourcesResponseEntity extends Protocol.PacketEntity { + success = false; + + constructor() { + super(); + this.command = Protocol.Commands.kRpcEditSignalSource; + } + } + + export class DeleteSignalSourcesRequestEntity extends Protocol.PacketEntity { + uuid: string = ""; + constructor(rcp_id?: number, uuid?: string) { + super(); + this.rpc_id = rcp_id ?? 0; + this.command = Protocol.Commands.kRpcDeleteSignalSource; + this.uuid = uuid ?? ""; + } + } + + export class DeleteSignalSourcesResponseEntity extends Protocol.PacketEntity { + success = false; + + constructor() { + super(); + this.command = Protocol.Commands.kRpcDeleteSignalSource; } } } diff --git a/src/entities/WindowModelType.ts b/src/entities/WindowModelType.ts new file mode 100644 index 0000000..9549865 --- /dev/null +++ b/src/entities/WindowModelType.ts @@ -0,0 +1,12 @@ +export enum EWindowType { + Normal = 0, + Multimedia, + Web, + Image, + Pdf, + Ppt, + Rtsp, + Subtitles, + Weather, + HdmiIn, +} diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts index 80ca0b8..acda918 100644 --- a/src/i18n/zh-CN/index.ts +++ b/src/i18n/zh-CN/index.ts @@ -47,4 +47,20 @@ export default { "group name": "组名", "please input group name": "请输入组名", + "add signal source": "添加信号源", + "edit signal source": "修改信号源", + "signal source name": "信号源名称", + "please input signal source name": "请输入信号源名称", + "signal source type": "信号源类型", + "please select signal source type": "请选择信号源类型", + "multimedia file": "多媒体文件", + Web: "网页", + image: "图片", + rtsp: "RTSP视频流", + "media url": "媒体 RUL", + "please input media url": "请输入媒体 RUL", + "please input": "请输入", + "http url": "HTTP超链接", + "RTSP url": "RTSP链接", + "file path": "文件路径", }; diff --git a/src/pages/LeftToolBar.vue b/src/pages/LeftToolBar.vue index 5003c2f..cdeb6da 100644 --- a/src/pages/LeftToolBar.vue +++ b/src/pages/LeftToolBar.vue @@ -38,6 +38,12 @@ clickable v-close-popup v-ripple + @click=" + $refs.signal_source_dialog.showDialog({ + type: 1, + parent_node: prop.node.uuid, + }) + " > {{ @@ -76,7 +82,10 @@ " @click=" () => - $refs.group_dialog.showDialog({ + (prop.node.is_group + ? $refs.group_dialog + : $refs.signal_source_dialog + ).showDialog({ type: 2, data: prop.node, }) @@ -109,6 +118,7 @@ +