|
|
@ -2,7 +2,7 @@
|
|
|
|
* @Author: donghao donghao@supervision.ltd
|
|
|
|
* @Author: donghao donghao@supervision.ltd
|
|
|
|
* @Date: 2024-08-26 11:32:07
|
|
|
|
* @Date: 2024-08-26 11:32:07
|
|
|
|
* @LastEditors: donghao donghao@supervision.ltd
|
|
|
|
* @LastEditors: donghao donghao@supervision.ltd
|
|
|
|
* @LastEditTime: 2024-08-30 10:56:13
|
|
|
|
* @LastEditTime: 2024-08-30 14:16:10
|
|
|
|
* @FilePath: \General-AI-Platform-Web-Client\src\views\deviceSetting\components\previewCurrent.vue
|
|
|
|
* @FilePath: \General-AI-Platform-Web-Client\src\views\deviceSetting\components\previewCurrent.vue
|
|
|
|
* @Description: 预览组件
|
|
|
|
* @Description: 预览组件
|
|
|
|
-->
|
|
|
|
-->
|
|
|
@ -12,7 +12,7 @@ import { useDeviceObject } from "../hooks/useDeviceObject";
|
|
|
|
import device_video_bg_gray from "@/assets/modelSetting/device_video_bg_gray.png";
|
|
|
|
import device_video_bg_gray from "@/assets/modelSetting/device_video_bg_gray.png";
|
|
|
|
import device_video_bg from "@/assets/modelSetting/device_video_bg.png";
|
|
|
|
import device_video_bg from "@/assets/modelSetting/device_video_bg.png";
|
|
|
|
|
|
|
|
|
|
|
|
const { initDeviceGroupObjects } = useDeviceObject();
|
|
|
|
const { initDeviceGroupObjects, isInCurrViewBoundaries } = useDeviceObject();
|
|
|
|
const props = defineProps({
|
|
|
|
const props = defineProps({
|
|
|
|
picture: {
|
|
|
|
picture: {
|
|
|
|
type: String
|
|
|
|
type: String
|
|
|
@ -36,40 +36,19 @@ const canvasRef = ref<any>(null);
|
|
|
|
const cvs = ref<any>(null);
|
|
|
|
const cvs = ref<any>(null);
|
|
|
|
|
|
|
|
|
|
|
|
// 获取边界的几个坐标
|
|
|
|
// 获取边界的几个坐标
|
|
|
|
function getBoundaryPoints() {
|
|
|
|
|
|
|
|
const canvasObject = cvs.value;
|
|
|
|
|
|
|
|
const { backgroundImage } = canvasObject;
|
|
|
|
|
|
|
|
const startLeft =
|
|
|
|
|
|
|
|
(viewData.value.width - backgroundImage.width * backgroundImage.scaleX) / 2;
|
|
|
|
|
|
|
|
const startTop =
|
|
|
|
|
|
|
|
(viewData.value.height - backgroundImage.height * backgroundImage.scaleY) /
|
|
|
|
|
|
|
|
2;
|
|
|
|
|
|
|
|
const endLeft = startLeft + backgroundImage.width * backgroundImage.scaleX;
|
|
|
|
|
|
|
|
const endTop = startTop + backgroundImage.height * backgroundImage.scaleY;
|
|
|
|
|
|
|
|
return { startLeft, startTop, endLeft, endTop };
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 在切换图片后重新计算元素位置并标记
|
|
|
|
// 在切换图片后重新计算元素位置并标记
|
|
|
|
function refreshDevicePosition() {
|
|
|
|
function refreshDevicePosition() {
|
|
|
|
// const { scale } = toRaw(viewPicOptions.value);
|
|
|
|
// const { scale } = toRaw(viewPicOptions.value);
|
|
|
|
const canvasObject = cvs.value;
|
|
|
|
const canvasObject = cvs.value;
|
|
|
|
const { startLeft, startTop, endLeft, endTop } = getBoundaryPoints();
|
|
|
|
|
|
|
|
const notInVisableIds = [];
|
|
|
|
const notInVisableIds = [];
|
|
|
|
canvasObject.getObjects().forEach(deviceItem => {
|
|
|
|
canvasObject.getObjects().forEach(deviceItem => {
|
|
|
|
const objLeft = deviceItem.left;
|
|
|
|
const targetBgImage = deviceItem.getObjects()[0]; // 设备背景图片
|
|
|
|
const objTop = deviceItem.top;
|
|
|
|
const targetTextBox = deviceItem.getObjects()[2]; // 设备文本
|
|
|
|
const targetBgImage = deviceItem.getObjects()[0];
|
|
|
|
const targetDelIcon = deviceItem.getObjects()[3]; // 设备待删图标
|
|
|
|
const targetTextBox = deviceItem.getObjects()[2];
|
|
|
|
|
|
|
|
const targetDelIcon = deviceItem.getObjects()[3];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
console.log(targetBgImage, "notInVisableIds", deviceItem);
|
|
|
|
console.log(targetBgImage, "notInVisableIds", deviceItem);
|
|
|
|
let notInVisable = false; // 默认在边界内
|
|
|
|
let notInVisable = false; // 默认在边界内
|
|
|
|
if (
|
|
|
|
if (isInCurrViewBoundaries(canvasObject, deviceItem)) {
|
|
|
|
objLeft < startLeft ||
|
|
|
|
|
|
|
|
objTop < startTop ||
|
|
|
|
|
|
|
|
objLeft + deviceItem.width * deviceItem.scaleX > endLeft ||
|
|
|
|
|
|
|
|
objTop + deviceItem.heigth * deviceItem.scaleY > endTop
|
|
|
|
|
|
|
|
) {
|
|
|
|
|
|
|
|
// 在边界外
|
|
|
|
// 在边界外
|
|
|
|
notInVisable = true;
|
|
|
|
notInVisable = true;
|
|
|
|
notInVisableIds.push(Number(deviceItem?.deviceInfo?.id));
|
|
|
|
notInVisableIds.push(Number(deviceItem?.deviceInfo?.id));
|
|
|
|