廖井涛
2025-12-05 723cbdddb7d06a1d12564d8d88dfe8d4984315a3
north-glass-erp/northglass-erp/src/views/pp/glassOptimize/page/OptimizationRect.vue
@@ -253,6 +253,12 @@
  return bestFit;
};
const isSelected = (layoutIndex, rectIndex) => {
  return focusIndex.value &&
         focusIndex.value.layoutIndex === layoutIndex &&
         focusIndex.value.rectIndex === rectIndex;
};
//版图内容样式加载
const layoutContainerStyle = (layoutIndex) => {
  const layout = layouts.value[layoutIndex];
@@ -304,9 +310,10 @@
//版图内容小片样式加载
const rectStyle = (glassDetail, layoutIndex) => {
  const layout = layouts.value[layoutIndex];
  const scale = Math.min(0.25
  );
  return {
  const scale = Math.min(0.25);
  const isSelectedRect = isSelected(layoutIndex, layout.glassDetails.indexOf(glassDetail));
  let style = {
    position: 'absolute',
    left: `${glassDetail.x * scale}px`,
    top: `${glassDetail.y * scale}px`,
@@ -318,13 +325,21 @@
    draggable: !glassDetail.isRemain,
    zIndex: glassDetail.isRemain ? 1 : 2
  };
  // 如果被选中,则添加内侧红框
  if (isSelectedRect) {
    style.boxShadow = 'inset 0 0 0 2px red';
  }
  return style;
};
const rectStyle1 = (glassDetail, layoutIndex) => {
  const layout = layouts.value[layoutIndex];
  const scale = Math.min(0.25
  );
  return {
  const scale = Math.min(0.25);
  const isSelectedRect = isSelected(layoutIndex, layout.glassDetails.indexOf(glassDetail));
  let style = {
    position: 'absolute',
    left: `${glassDetail.x * scale}px`,
    top: `${glassDetail.y * scale}px`,
@@ -336,6 +351,13 @@
    draggable: !glassDetail.isRemain,
    zIndex: glassDetail.isRemain ? 1 : 2
  };
  // 如果被选中,则添加内侧红框
  if (isSelectedRect) {
    style.boxShadow = 'inset 0 0 0 2px red';
  }
  return style;
};
//点击小片
@@ -352,12 +374,13 @@
const handleRectRightClick = (layoutIndex, rectIndex) => {
  const glassDetail = layouts.value[layoutIndex].glassDetails[rectIndex];
  if (glassDetail.isRemain) return;
  document.querySelectorAll('.context-menu').forEach(el => el.remove());
  const contextMenu = document.createElement('div');
  contextMenu.className = 'context-menu';
  contextMenu.style.position = 'absolute';
  contextMenu.style.left = `${event.clientX}px`;
  contextMenu.style.bottom = `${event.clientY}px`;
  contextMenu.style.top = `${event.clientY}px`;
  contextMenu.style.backgroundColor = '#fff';
  contextMenu.style.border = '1px solid #ccc';
  contextMenu.style.padding = '5px';
@@ -488,12 +511,13 @@
const handleGrayRectRightClick = (layoutIndex, rectIndex,glassDetails) => {
  //const glassDetail = glassDetails[rectIndex];
  if (!glassDetails.isRemain) return;
  document.querySelectorAll('.context-menu').forEach(el => el.remove());
  const contextMenu = document.createElement('div');
  contextMenu.className = 'context-menu';
  contextMenu.style.position = 'absolute';
  contextMenu.style.left = `${event.clientX}px`;
  contextMenu.style.bottom = `${event.clientY}px`;
  contextMenu.style.top = `${event.clientY}px`;
  contextMenu.style.backgroundColor = '#fff';
  contextMenu.style.border = '1px solid #ccc';
  contextMenu.style.padding = '5px';