修复轮询资源无法开窗的BUG,添加轮询资源删除协议

This commit is contained in:
fangxiang 2022-02-25 16:30:12 +08:00
parent cd968f9cbe
commit e65352d757
5 changed files with 170 additions and 103 deletions

View File

@ -365,6 +365,26 @@ export default class ClientConnection {
}
}
public async deletePollingGroup(uuid: string) {
try {
return await this.doRpc<Protocol.DeletePollingGroupResponseEntity>(
new Protocol.DeletePollingGroupRequestEntity(0, uuid)
);
} catch (e) {
console.error(e);
}
}
public async deletePolling(uuid: string) {
try {
return await this.doRpc<Protocol.DeletePollingResponseEntity>(
new Protocol.DeletePollingRequestEntity(0, uuid)
);
} catch (e) {
console.error(e);
}
}
public async getCurrentRunningPlan() {
try {
return await this.doRpc<Protocol.GetCurrentRunningPlanResponseEntity>(

View File

@ -80,7 +80,7 @@
clickable
v-ripple
v-close-popup
v-if="prop.node.item_data"
v-if="prop.node.item_data && false"
@click="
() =>
(prop.node.is_group
@ -176,30 +176,30 @@ export default defineComponent({
is_group: boolean,
uuid: string
) {
// let success = false;
// if (is_group) {
// let response = await GlobalData.getInstance()
// .getCurrentClient()
// ?.deletePlanGroup(uuid);
// if (response) {
// success = response.success;
// }
// } else {
// let response = await GlobalData.getInstance()
// .getCurrentClient()
// ?.deletePlan(uuid);
// if (response) {
// success = response.success;
// }
// }
// $q.notify({
// color: success ? "positive" : "negative",
// icon: success ? "done" : "warning",
// message:
// $t.t("delete") + (success ? $t.t("success") : $t.t("fail")) + "!",
// position: "top",
// timeout: 1500,
// });
let success = false;
if (is_group) {
let response = await GlobalData.getInstance()
.getCurrentClient()
?.deletePollingGroup(uuid);
if (response) {
success = response.success;
}
} else {
let response = await GlobalData.getInstance()
.getCurrentClient()
?.deletePolling(uuid);
if (response) {
success = response.success;
}
}
$q.notify({
color: success ? "positive" : "negative",
icon: success ? "done" : "warning",
message:
$t.t("delete") + (success ? $t.t("success") : $t.t("fail")) + "!",
position: "top",
timeout: 1500,
});
},
onDragStart(e: DragEvent, node: PollingTreeItemEntity) {
e.dataTransfer?.setData("uuid", node.uuid);

View File

@ -5,7 +5,7 @@
<q-item
class="full-width"
clickable
:draggable="!prop.node.is_group"
:draggable="!prop.node.is_group && !prop.node.local_file_flag"
@dragstart="(evt) => onDragStart(evt, prop.node)"
@click="
$store.commit(

View File

@ -1146,6 +1146,45 @@ export namespace Protocol {
}
}
export class DeletePollingGroupRequestEntity extends Protocol.PacketEntity {
uuid = "";
constructor(rcp_id?: number, uuid?: string) {
super();
this.rpc_id = rcp_id ?? 0;
this.command = Protocol.Commands.kRpcDeletePollingGroup;
this.uuid = uuid ?? "";
}
}
export class DeletePollingGroupResponseEntity extends Protocol.PacketEntity {
success = false;
constructor() {
super();
this.command = Protocol.Commands.kRpcDeletePollingGroup;
}
}
export class DeletePollingRequestEntity extends Protocol.PacketEntity {
uuid: string = "";
constructor(rcp_id?: number, uuid?: string) {
super();
this.rpc_id = rcp_id ?? 0;
this.command = Protocol.Commands.kRpcDeletePolling;
this.uuid = uuid ?? "";
}
}
export class DeletePollingResponseEntity extends Protocol.PacketEntity {
success = false;
constructor() {
super();
this.command = Protocol.Commands.kRpcDeletePolling;
}
}
export class AddPlanRequestEntity extends Protocol.PacketEntity {
entity: PlanEntity = new PlanEntity();
constructor(rcp_id?: number, entity?: PlanEntity) {

View File

@ -663,90 +663,98 @@ export default defineComponent({
(item) => (item as any)?.uuid == uuid
);
if (signal_sources.length) {
const signal_source = signal_sources[0];
if (signal_source) {
const dom: HTMLElement | null = e.target as HTMLElement;
if (wall.value && dom) {
if (dom.classList.contains("wall_item_flag")) {
//
const x = dom.offsetLeft / wall.value.clientWidth;
const y = dom.offsetTop / wall.value.clientHeight;
const width = dom.offsetWidth / wall.value.clientWidth;
const height = dom.offsetHeight / wall.value.clientHeight;
switch (type) {
case "polling":
GlobalData.getInstance()
.getCurrentClient()
?.openPolling(
new Protocol.OpenPollingRequestEntity(
uuid,
x,
y,
width,
height
)
);
break;
case "signal_source" /**OpenPollingRequestEntity */:
GlobalData.getInstance()
.getCurrentClient()
?.openWindow(
new Protocol.OpenWindowRequestEntity(
signal_source.uuid,
x,
y,
width,
height
)
);
break;
}
} else if (dom.classList.contains("window_flag")) {
//
const rep_uuid = dom.getAttribute("uuid");
if (rep_uuid) {
let window = $store.state.windows.find(
(item) => item.uuid == rep_uuid
);
if (window) {
let client = GlobalData.getInstance().getCurrentClient();
if (client) {
let x = window.x;
let y = window.y;
let width = window.width;
let height = window.height;
{
const dom: HTMLElement | null = e.target as HTMLElement;
if (wall.value && dom) {
if (dom.classList.contains("wall_item_flag")) {
//
const x = dom.offsetLeft / wall.value.clientWidth;
const y = dom.offsetTop / wall.value.clientHeight;
const width = dom.offsetWidth / wall.value.clientWidth;
const height = dom.offsetHeight / wall.value.clientHeight;
console.log(type);
switch (type) {
case "polling":
GlobalData.getInstance()
.getCurrentClient()
?.openPolling(
new Protocol.OpenPollingRequestEntity(
uuid,
x,
y,
width,
height
)
);
break;
case "signal_source" /**OpenPollingRequestEntity */:
if (signal_sources.length) {
const signal_source = signal_sources[0];
if (signal_source) {
GlobalData.getInstance()
.getCurrentClient()
?.openWindow(
new Protocol.OpenWindowRequestEntity(
signal_source.uuid,
x,
y,
width,
height
)
);
}
}
break;
}
} else if (dom.classList.contains("window_flag")) {
//
const rep_uuid = dom.getAttribute("uuid");
if (rep_uuid) {
let window = $store.state.windows.find(
(item) => item.uuid == rep_uuid
);
if (window) {
let client = GlobalData.getInstance().getCurrentClient();
if (client) {
let x = window.x;
let y = window.y;
let width = window.width;
let height = window.height;
client.closeWindow(window.window_id);
setTimeout(() => {
switch (type) {
case "polling":
GlobalData.getInstance()
.getCurrentClient()
?.openPolling(
new Protocol.OpenPollingRequestEntity(
uuid,
x,
y,
width,
height
)
);
break;
case "signal_source":
client?.openWindow(
new Protocol.OpenWindowRequestEntity(
signal_source.uuid,
client.closeWindow(window.window_id);
setTimeout(() => {
switch (type) {
case "polling":
GlobalData.getInstance()
.getCurrentClient()
?.openPolling(
new Protocol.OpenPollingRequestEntity(
uuid,
x,
y,
width,
height
)
);
break;
}
}, 100);
}
break;
case "signal_source":
if (signal_sources.length) {
const signal_source = signal_sources[0];
if (signal_source) {
client?.openWindow(
new Protocol.OpenWindowRequestEntity(
signal_source.uuid,
x,
y,
width,
height
)
);
}
}
break;
}
}, 100);
}
}
}