|
|
@@ -68,7 +68,7 @@
|
|
|
</div>
|
|
|
<div
|
|
|
v-else-if="isSpecialCell(cell) && cell.label && !shouldHideNonLocationCells"
|
|
|
- :class="['special-cell-label', `special-cell-label-${cell.type}`]"
|
|
|
+ :class="['special-cell-label', ...getSpecialCellLabelClasses(cell)]"
|
|
|
>
|
|
|
{{ cell.label }}
|
|
|
</div>
|
|
|
@@ -538,9 +538,43 @@ const getWorkingHighlightClass = (cell: GridCell) => {
|
|
|
return null
|
|
|
}
|
|
|
|
|
|
+const getSpecialCellClasses = (cell: WarehouseLayoutSpecialCell) => {
|
|
|
+ if (cell.type !== 'workpoint') {
|
|
|
+ return [cell.type]
|
|
|
+ }
|
|
|
+
|
|
|
+ const normalizedLabel = String(cell.label || '')
|
|
|
+ .trim()
|
|
|
+ .toUpperCase()
|
|
|
+ if (normalizedLabel.startsWith('A')) {
|
|
|
+ return ['workpoint', 'workpoint-a']
|
|
|
+ }
|
|
|
+ if (normalizedLabel.startsWith('B')) {
|
|
|
+ return ['workpoint', 'workpoint-b']
|
|
|
+ }
|
|
|
+ return ['workpoint']
|
|
|
+}
|
|
|
+
|
|
|
+const getSpecialCellLabelClasses = (cell: WarehouseLayoutSpecialCell) => {
|
|
|
+ const classNames = [`special-cell-label-${cell.type}`]
|
|
|
+ if (cell.type !== 'workpoint') {
|
|
|
+ return classNames
|
|
|
+ }
|
|
|
+
|
|
|
+ const normalizedLabel = String(cell.label || '')
|
|
|
+ .trim()
|
|
|
+ .toUpperCase()
|
|
|
+ if (normalizedLabel.startsWith('A')) {
|
|
|
+ classNames.push('special-cell-label-workpoint-a')
|
|
|
+ } else if (normalizedLabel.startsWith('B')) {
|
|
|
+ classNames.push('special-cell-label-workpoint-b')
|
|
|
+ }
|
|
|
+ return classNames
|
|
|
+}
|
|
|
+
|
|
|
const getCellClass = (cell: MapCell) => {
|
|
|
if (isSpecialCell(cell)) {
|
|
|
- return shouldHideNonLocationCells.value ? ['hidden-cell'] : [cell.type]
|
|
|
+ return shouldHideNonLocationCells.value ? ['hidden-cell'] : getSpecialCellClasses(cell)
|
|
|
}
|
|
|
|
|
|
if (!isLocationCell(cell)) {
|
|
|
@@ -998,6 +1032,9 @@ onBeforeUnmount(() => {
|
|
|
--aisle-bg: #050505;
|
|
|
--wall-bg: #151515;
|
|
|
--elevator-bg: #101010;
|
|
|
+ --charger-bg: #231b06;
|
|
|
+ --workpoint-a-bg: #12311b;
|
|
|
+ --workpoint-b-bg: #3b102a;
|
|
|
--cell-category-a: rgba(31, 122, 63, 0.18);
|
|
|
--cell-category-b: rgba(47, 95, 215, 0.18);
|
|
|
--cell-category-c: rgba(184, 146, 31, 0.2);
|
|
|
@@ -1024,6 +1061,9 @@ onBeforeUnmount(() => {
|
|
|
--aisle-bg: #e9edf2;
|
|
|
--wall-bg: #d9dee6;
|
|
|
--elevator-bg: #e2e6ec;
|
|
|
+ --charger-bg: #f0e4b8;
|
|
|
+ --workpoint-a-bg: #cfe9d5;
|
|
|
+ --workpoint-b-bg: #f4d2e2;
|
|
|
--cell-category-a: rgba(31, 122, 63, 0.12);
|
|
|
--cell-category-b: rgba(47, 95, 215, 0.12);
|
|
|
--cell-category-c: rgba(184, 146, 31, 0.18);
|
|
|
@@ -1116,6 +1156,26 @@ onBeforeUnmount(() => {
|
|
|
cursor: default;
|
|
|
}
|
|
|
|
|
|
+.grid-cell.charger {
|
|
|
+ background: var(--charger-bg);
|
|
|
+ cursor: default;
|
|
|
+}
|
|
|
+
|
|
|
+.grid-cell.workpoint-a {
|
|
|
+ background: var(--workpoint-a-bg);
|
|
|
+ cursor: default;
|
|
|
+}
|
|
|
+
|
|
|
+.grid-cell.workpoint-b {
|
|
|
+ background: var(--workpoint-b-bg);
|
|
|
+ cursor: default;
|
|
|
+}
|
|
|
+
|
|
|
+.grid-cell.workpoint:not(.workpoint-a):not(.workpoint-b) {
|
|
|
+ background: var(--charger-bg);
|
|
|
+ cursor: default;
|
|
|
+}
|
|
|
+
|
|
|
.grid-cell.hidden-cell {
|
|
|
background: transparent;
|
|
|
cursor: default;
|
|
|
@@ -1167,7 +1227,7 @@ onBeforeUnmount(() => {
|
|
|
0 0 18px var(--working-container-outbound);
|
|
|
}
|
|
|
|
|
|
-.grid-cell:not(.aisle):not(.wall):not(.elevator):hover {
|
|
|
+.grid-cell:not(.aisle):not(.wall):not(.elevator):not(.charger):not(.workpoint):hover {
|
|
|
transform: scale(1.03);
|
|
|
box-shadow: var(--hover-shadow);
|
|
|
z-index: 10;
|
|
|
@@ -1291,6 +1351,22 @@ onBeforeUnmount(() => {
|
|
|
color: var(--special-label-strong);
|
|
|
}
|
|
|
|
|
|
+.special-cell-label-charger {
|
|
|
+ color: var(--special-label-strong);
|
|
|
+}
|
|
|
+
|
|
|
+.special-cell-label-workpoint {
|
|
|
+ color: var(--special-label-strong);
|
|
|
+}
|
|
|
+
|
|
|
+.special-cell-label-workpoint-a {
|
|
|
+ color: var(--special-label-strong);
|
|
|
+}
|
|
|
+
|
|
|
+.special-cell-label-workpoint-b {
|
|
|
+ color: var(--special-label-strong);
|
|
|
+}
|
|
|
+
|
|
|
.cell-tooltip {
|
|
|
position: fixed;
|
|
|
z-index: 1000;
|