+
+ {{ item.id + 1 }}
{
show_windows_flag.value = true;
});
+ if (wall.value) {
+ let teph = wall.value?.clientHeight / offsetHeight;
+ let tepw = wall.value?.clientWidth / offsetWidth;
+ }
}, 100);
-
};
EventBus.getInstance().on(
@@ -355,7 +357,8 @@ export default defineComponent({
const last_context_menu_pos_x = ref(0);
const last_context_menu_pos_y = ref(0);
-
+ let offsetHeight = 0;
+ let offsetWidth = 0;
const plan_running = computed(
() => $store.state.current_running_plan.trim() != ""
);
@@ -712,16 +715,9 @@ export default defineComponent({
}
};
- const magic_height = (h: number) => {
- const wall_dom = wall.value;
- if (wall_dom?.parentElement) {
- h = wall_dom.parentElement.offsetHeight * 0.6;
- }
- return 500;
- };
+
const show_magic_wall = async () => {
- console.log( $store.state.windows_sort)
// $store.state.windows_sort.findIndex((element) => element == item.uuid)
let client = GlobalData.getInstance().getCurrentClient();
if (client) {
@@ -731,6 +727,8 @@ export default defineComponent({
const wall_dom = wall.value;
let monitorList: any = [];
if (a && wall_dom) {
+ offsetHeight = wall_dom.clientHeight;
+ offsetWidth = wall_dom.clientHeight;
a.forEach((element) => {
let item: test_monitor = new test_monitor(0, 0, 0);
item.h = element.h;
@@ -1063,7 +1061,6 @@ export default defineComponent({
};
return {
- magic_height,
windows,
wall,
window_rect_edit_dialog,
From 6864213d673c977bf571b54bf666797a34e0752c Mon Sep 17 00:00:00 2001
From: miao <2514145421@qq.com>
Date: Mon, 30 Jan 2023 14:37:53 +0800
Subject: [PATCH 31/35] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9B=B4=E6=96=B0?=
=?UTF-8?q?=E9=AD=94=E5=A2=99=E7=BF=BB=E8=AF=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/i18n/en-US/index.ts | 1 +
src/i18n/zh-CN/index.ts | 1 +
2 files changed, 2 insertions(+)
diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts
index f1e9110..ada3458 100644
--- a/src/i18n/en-US/index.ts
+++ b/src/i18n/en-US/index.ts
@@ -403,6 +403,7 @@ export default {
"Please Input Vaild Host. Example: 192.168.1.1 or 192.168.1.1:8080",
"equipment data": "Equipment Data",
"set magic wall":"Set Magic wall",
+ "update magic wall":"Update Magic Wall",
"magic wall":"Magic Wall",
"angle":"Angle",
"topology diagram":"Topology Diagram",
diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts
index f038641..e2a6a65 100644
--- a/src/i18n/zh-CN/index.ts
+++ b/src/i18n/zh-CN/index.ts
@@ -669,6 +669,7 @@ export default {
"edit user or password": "修改用户名和密码",
"old password error": "旧密码不匹配",
"set magic wall":"设置魔墙",
+ "update magic wall":"更新魔墙",
"magic wall":"魔墙",
"angle":"角度",
"topology diagram":"拓扑图",
From 9c211e13bf3e261e0b04108a69764b8bfb87387a Mon Sep 17 00:00:00 2001
From: miao <2514145421@qq.com>
Date: Tue, 31 Jan 2023 14:17:21 +0800
Subject: [PATCH 32/35] =?UTF-8?q?=E9=AD=94=E5=A2=99=EF=BC=9A=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E5=AF=BC=E5=87=BA=E5=9D=90=E6=A0=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ControlPanelDialog.vue | 214 ++++++++++++++++++--------
1 file changed, 149 insertions(+), 65 deletions(-)
diff --git a/src/components/ControlPanelDialog.vue b/src/components/ControlPanelDialog.vue
index 052d0df..512b3b9 100644
--- a/src/components/ControlPanelDialog.vue
+++ b/src/components/ControlPanelDialog.vue
@@ -553,7 +553,16 @@
-
+
+
+
{
- // if (element.isShow&&wall_dom) {
- // monitorList.push({
- // id: element.id,
- // currentx: element.currentx / wall_dom.offsetWidth,
- // currenty: element.currenty / wall_dom.offsetHeight,
- // h: element.h / wall_dom.offsetHeight,
- // w: element.w / wall_dom.offsetWidth,
- // angle: parseInt(element.angle.toString()),
- // centerx: element.centerx/ wall_dom.offsetWidth,
- // centery: element.centery / wall_dom.offsetHeight,
- // });
- // }
- // });
- // $store.commit("setShowMonitorList", monitorList);
- // }
- // if(!setMagic?.success){
- // $q.notify({
- // color: "negative",
- // icon: "warning",
- // message:
- // $t.t("update magic wall") +
- // $t.t("fail") +
- // "!",
- // position: "top",
- // timeout: 2500,
- // });
- // }
- // }
+ if (client) {
+ const setMagic = await client.setMagicWallConfig(cloud_monitor_list);
+ if (setMagic?.success) {
+ let monitorList:any=[]
+ test_monitor_wall.value.forEach((element, index) => {
+ if (element.isShow&&wall_dom) {
+ monitorList.push({
+ id: element.id,
+ currentx: element.currentx / wall_dom.offsetWidth,
+ currenty: element.currenty / wall_dom.offsetHeight,
+ h: element.h / wall_dom.offsetHeight,
+ w: element.w / wall_dom.offsetWidth,
+ angle: parseInt(element.angle.toString()),
+ centerx: element.centerx/ wall_dom.offsetWidth,
+ centery: element.centery / wall_dom.offsetHeight,
+ });
+ }
+ });
+ $store.commit("setShowMonitorList", monitorList);
+ }
+ if(!setMagic?.success){
+ $q.notify({
+ color: "negative",
+ icon: "warning",
+ message:
+ $t.t("update magic wall") +
+ $t.t("fail") +
+ "!",
+ position: "top",
+ timeout: 2500,
+ });
+ }
+ }
};
const getpx = () => {
const wall_dom = wall.value;
@@ -895,26 +934,29 @@ export default defineComponent({
});
}
};
- const radians = () => {
- const item = test_monitor_wall.value[current_index.value];
+ const radians = (item: test_monitor) => {
return /*a*/ (item.angle * Math.PI) / 180;
};
const calculateCoordinates = (
px: number,
py: number,
cx: number,
- cy: number
+ cy: number,
+ item: test_monitor
) => {
const x =
- cx + (px - cx) * Math.cos(radians()) - (py - cy) * Math.sin(radians());
+ cx +
+ (px - cx) * Math.cos(radians(item)) -
+ (py - cy) * Math.sin(radians(item));
const y =
- cy + (px - cx) * Math.sin(radians()) + (py - cy) * Math.cos(radians());
+ cy +
+ (px - cx) * Math.sin(radians(item)) +
+ (py - cy) * Math.cos(radians(item));
return { x, y };
};
- const four_point = () => {
- const item = test_monitor_wall.value[current_index.value];
+ const four_point = (item: test_monitor) => {
item.centerx = parseInt(item.centerx.toString());
item.centery = parseInt(item.centery.toString());
const x2: number = item.currentx + item.w;
@@ -924,25 +966,29 @@ export default defineComponent({
item.currentx,
item.currenty,
item.centerx,
- item.centery
+ item.centery,
+ item
);
const point_left_bootom = calculateCoordinates(
item.currentx,
y2,
item.centerx,
- item.centery
+ item.centery,
+ item
);
const point_right_top = calculateCoordinates(
x2,
item.currenty,
item.centerx,
- item.centery
+ item.centery,
+ item
);
const point_right_bottom = calculateCoordinates(
x2,
y2,
item.centerx,
- item.centery
+ item.centery,
+ item
);
const point_list = [
point_left_top,
@@ -976,7 +1022,7 @@ export default defineComponent({
item: test_monitor = test_monitor_wall.value[current_index.value]
) => {
const wall_dom = wall.value;
- const point_list = four_point();
+ const point_list = four_point(item);
if (wall_dom) {
if (item.angle != 0 && point_list) {
let minx = 0;
@@ -999,7 +1045,7 @@ export default defineComponent({
item: test_monitor = test_monitor_wall.value[current_index.value]
) => {
const wall_dom = wall.value;
- const point_list = four_point();
+ const point_list = four_point(item);
if (wall_dom) {
if (item.angle != 0 && point_list) {
let maxx = 0;
@@ -1040,7 +1086,7 @@ export default defineComponent({
item: test_monitor = test_monitor_wall.value[current_index.value]
) => {
const wall_dom = wall.value;
- const point_list = four_point();
+ const point_list = four_point(item);
if (wall_dom) {
if (item.angle != 0 && point_list) {
let miny = 0;
@@ -1063,7 +1109,7 @@ export default defineComponent({
item: test_monitor = test_monitor_wall.value[current_index.value]
) => {
const wall_dom = wall.value;
- const point_list = four_point();
+ const point_list = four_point(item);
if (wall_dom) {
if (item.angle != 0 && point_list) {
let maxy = 0;
@@ -1141,7 +1187,7 @@ export default defineComponent({
const exceedrange = (item: test_monitor) => {
const wall_dom = wall.value;
let a = 0;
- const point_list = four_point();
+ const point_list = four_point(item);
if (wall_dom && point_list) {
let maxx = 0;
let maxy = 0;
@@ -1212,16 +1258,16 @@ export default defineComponent({
test_monitor_wall.value.forEach(async (element) => {
let teph = element.InitialH;
let tepw = element.InitialW;
- element.InitialH = wall_dom.offsetHeight * element.resizeh;
- element.InitialW = wall_dom.offsetWidth * element.resizew;
- element.h = element.InitialH * percenter.value;
- element.w = element.InitialW * percenter.value;
- let sizeh = element.InitialH / teph;
- let sizew = element.InitialW / tepw;
- element.currentx = element.currentx * sizew;
- element.currenty = element.currenty * sizeh;
- element.centerx = Math.floor(element.currentx + element.w / 2);
- element.centery = Math.floor(element.currenty + element.h / 2);
+ element.InitialH = wall_dom.offsetHeight * element.resizeh;
+ element.InitialW = wall_dom.offsetWidth * element.resizew;
+ element.h = element.InitialH * percenter.value;
+ element.w = element.InitialW * percenter.value;
+ let sizeh = element.InitialH / teph;
+ let sizew = element.InitialW / tepw;
+ element.currentx = element.currentx * sizew;
+ element.currenty = element.currenty * sizeh;
+ element.centerx = Math.floor(element.currentx + element.w / 2);
+ element.centery = Math.floor(element.currenty + element.h / 2);
});
}
});
@@ -1315,8 +1361,7 @@ export default defineComponent({
extend(true, item, test_monitor_list.value[element.index]);
let sizeh = wall_dom.offsetHeight / element.background_h;
let sizew = wall_dom.offsetWidth / element.background_w;
- item.resizew = element.w ;
- item.resizeh = element.h ;
+
item.currentx = element.lt.x * wall_dom.offsetWidth;
item.currenty = element.lt.y * wall_dom.offsetHeight;
percenter.value = parseFloat(element.percenter.toString());
@@ -1325,7 +1370,8 @@ export default defineComponent({
item.InitialW = element.initial_w * sizew;
item.h = item.InitialH * percenter.value;
item.w = item.InitialW * percenter.value;
-
+ item.resizew = item.InitialW / wall_dom.offsetWidth;
+ item.resizeh = item.InitialH / wall_dom.offsetHeight;
item.centerx = Math.floor(item.currentx + item.w / 2);
item.centery = Math.floor(item.currenty + item.h / 2);
item.angle = element.angle;
@@ -1827,6 +1873,44 @@ export default defineComponent({
});
realtime_upload();
},
+ export_magic_wall() {
+ let export_list: any = [];
+ let res:string="";
+ test_monitor_wall.value.forEach((ele, index) => {
+ const point_list = four_point(ele);
+ if (wall.value && point_list && ele.isShow) {
+ point_list?.forEach((element) => {
+ if(wall.value ){
+ element.x =Math.round((element.x / wall.value.offsetWidth) * 3840);
+ element.y = Math.round((element.y / wall.value.offsetHeight) * 2160);
+ }
+
+ });
+ let item: exporttxt = new exporttxt(0, 0, 0, 0, {}, {}, {}, {});
+ item.id = ele.id;
+ item.point_left_top = [point_list[0]];
+ item.point_left_bootom = [point_list[1]];
+ item.point_right_top = [point_list[2]];
+ item.point_right_bottom = [point_list[3]];
+ item.w = Math.round((ele.w / wall.value?.offsetWidth) * 3840);
+ item.h = Math.round((ele.h / wall.value.offsetHeight) * 2160);
+ item.angle = ele.angle;
+ export_list.push(JSON.parse(JSON.stringify(item)));
+ res=res+JSON.stringify(item)+"\r\n"
+ }
+ });
+
+ const status = exportFile("important.txt", res);
+ if (status === true) {
+ } else {
+ $q.notify({
+ type: "warning",
+ message: $t.t("data export ") + $t.t("fail") + "!",
+ position: "top",
+ timeout: 1500,
+ });
+ }
+ },
};
},
});
From 939ce286f3c77c3f8dffe41f53bbe898df1f89cf Mon Sep 17 00:00:00 2001
From: miao <2514145421@qq.com>
Date: Tue, 31 Jan 2023 14:26:51 +0800
Subject: [PATCH 33/35] =?UTF-8?q?=E9=AD=94=E5=A2=99=EF=BC=9A=E5=AF=BC?=
=?UTF-8?q?=E5=87=BA=E6=A0=BC=E5=BC=8F=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ControlPanelDialog.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/components/ControlPanelDialog.vue b/src/components/ControlPanelDialog.vue
index 512b3b9..a401388 100644
--- a/src/components/ControlPanelDialog.vue
+++ b/src/components/ControlPanelDialog.vue
@@ -1899,7 +1899,7 @@ export default defineComponent({
res=res+JSON.stringify(item)+"\r\n"
}
});
-
+ res=res.replace(/\"/g,"");
const status = exportFile("important.txt", res);
if (status === true) {
} else {
From 17118497e2bfce86c551b6f2f63da9a8508c61b8 Mon Sep 17 00:00:00 2001
From: miao <2514145421@qq.com>
Date: Tue, 31 Jan 2023 14:30:55 +0800
Subject: [PATCH 34/35] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BF=BB=E8=AF=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ControlPanelDialog.vue | 4 +---
src/i18n/en-US/index.ts | 4 +++-
src/i18n/zh-CN/index.ts | 1 +
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/components/ControlPanelDialog.vue b/src/components/ControlPanelDialog.vue
index a401388..ad8c2b4 100644
--- a/src/components/ControlPanelDialog.vue
+++ b/src/components/ControlPanelDialog.vue
@@ -557,7 +557,7 @@
{
const point_list = four_point(ele);
@@ -1895,7 +1894,6 @@ export default defineComponent({
item.w = Math.round((ele.w / wall.value?.offsetWidth) * 3840);
item.h = Math.round((ele.h / wall.value.offsetHeight) * 2160);
item.angle = ele.angle;
- export_list.push(JSON.parse(JSON.stringify(item)));
res=res+JSON.stringify(item)+"\r\n"
}
});
diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts
index ada3458..532da18 100644
--- a/src/i18n/en-US/index.ts
+++ b/src/i18n/en-US/index.ts
@@ -409,5 +409,7 @@ export default {
"topology diagram":"Topology Diagram",
"physical central location":"Central Location",
"monitors list":"Monitors List",
- "resize":"Resize"
+ "resize":"Resize",
+ "export magic":"Export"
+
};
diff --git a/src/i18n/zh-CN/index.ts b/src/i18n/zh-CN/index.ts
index e2a6a65..657da36 100644
--- a/src/i18n/zh-CN/index.ts
+++ b/src/i18n/zh-CN/index.ts
@@ -679,4 +679,5 @@ export default {
"请输入合法地址. 例: 192.168.1.1 或 192.168.1.1:8080",
"equipment data": "联动设备",
"resize":"缩放",
+ "export magic":"导出"
};
From 3accecee65d68660696d9f33589c2e3d9875f69c Mon Sep 17 00:00:00 2001
From: miao <2514145421@qq.com>
Date: Wed, 1 Feb 2023 09:26:29 +0800
Subject: [PATCH 35/35] =?UTF-8?q?=E9=AD=94=E5=A2=99=EF=BC=9A=E5=B0=86?=
=?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8C=89=E9=92=AE=E6=8D=A2=E6=88=90shift+s?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/components/ControlPanelDialog.vue | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/src/components/ControlPanelDialog.vue b/src/components/ControlPanelDialog.vue
index ad8c2b4..6ec2246 100644
--- a/src/components/ControlPanelDialog.vue
+++ b/src/components/ControlPanelDialog.vue
@@ -57,6 +57,11 @@
//右
alignRight();
}
+ //保存魔墙配置
+ if (evt.keyCode==83&&evt.shiftKey) {
+ //右
+ export_magic_wall();
+ }
}
"
@keyup="
@@ -555,6 +560,7 @@
= ref(null);
let current_index = ref(-1);
@@ -997,6 +1001,14 @@ export default defineComponent({
point_right_bottom,
];
return point_list;
+ }else{
+ const point_list =[
+ {x:item.currentx,y:item.currenty},//左上
+ {x:x2,y:item.currenty},//右上
+ {x:item.currentx,y:y2},//左下
+ {x:x2,y:y2}//右下
+ ]
+ return point_list;
}
};
let offsetHeight = ref(0.0);
@@ -1272,6 +1284,7 @@ export default defineComponent({
}
});
return {
+ magic_isbutton,
refresh_all,
getpx,
lcm,
@@ -1361,7 +1374,6 @@ export default defineComponent({
extend(true, item, test_monitor_list.value[element.index]);
let sizeh = wall_dom.offsetHeight / element.background_h;
let sizew = wall_dom.offsetWidth / element.background_w;
-
item.currentx = element.lt.x * wall_dom.offsetWidth;
item.currenty = element.lt.y * wall_dom.offsetHeight;
percenter.value = parseFloat(element.percenter.toString());
@@ -1622,6 +1634,7 @@ export default defineComponent({
test_monitor_wall.value[index].isShow = true;
realtime_upload();
},
+ //cache和与主存间的地址映射由硬件自动完成
closeAllWindows() {
current_index.value = -1;
test_monitor_wall.value.forEach((ele) => {
@@ -1898,7 +1911,7 @@ export default defineComponent({
}
});
res=res.replace(/\"/g,"");
- const status = exportFile("important.txt", res);
+ const status = exportFile("magic_wall.txt", res);
if (status === true) {
} else {
$q.notify({