|
|
@@ -70,7 +70,13 @@
|
|
|
v-else-if="isSpecialCell(cell) && cell.label && !shouldHideNonLocationCells"
|
|
|
:class="['special-cell-label', ...getSpecialCellLabelClasses(cell)]"
|
|
|
>
|
|
|
- {{ cell.label }}
|
|
|
+ <span class="special-cell-label-primary">{{ cell.label }}</span>
|
|
|
+ <span
|
|
|
+ v-if="getSpecialCellTypeText(cell)"
|
|
|
+ class="special-cell-label-secondary"
|
|
|
+ >
|
|
|
+ {{ getSpecialCellTypeText(cell) }}
|
|
|
+ </span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -539,14 +545,14 @@ const getSpecialCellClasses = (cell: WarehouseLayoutSpecialCell) => {
|
|
|
return [cell.type]
|
|
|
}
|
|
|
|
|
|
- const normalizedLabel = String(cell.label || '')
|
|
|
- .trim()
|
|
|
- .toUpperCase()
|
|
|
- if (normalizedLabel.startsWith('A')) {
|
|
|
- return ['workpoint', 'workpoint-a']
|
|
|
+ if (cell.stationType === 'inbound') {
|
|
|
+ return ['workpoint', 'workpoint-inbound']
|
|
|
+ }
|
|
|
+ if (cell.stationType === 'outbound') {
|
|
|
+ return ['workpoint', 'workpoint-outbound']
|
|
|
}
|
|
|
- if (normalizedLabel.startsWith('B')) {
|
|
|
- return ['workpoint', 'workpoint-b']
|
|
|
+ if (cell.stationType === 'picking') {
|
|
|
+ return ['workpoint', 'workpoint-picking']
|
|
|
}
|
|
|
return ['workpoint']
|
|
|
}
|
|
|
@@ -557,17 +563,32 @@ const getSpecialCellLabelClasses = (cell: WarehouseLayoutSpecialCell) => {
|
|
|
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')
|
|
|
+ if (cell.stationType === 'inbound') {
|
|
|
+ classNames.push('special-cell-label-workpoint-inbound')
|
|
|
+ } else if (cell.stationType === 'outbound') {
|
|
|
+ classNames.push('special-cell-label-workpoint-outbound')
|
|
|
+ } else if (cell.stationType === 'picking') {
|
|
|
+ classNames.push('special-cell-label-workpoint-picking')
|
|
|
}
|
|
|
return classNames
|
|
|
}
|
|
|
|
|
|
+const getSpecialCellTypeText = (cell: WarehouseLayoutSpecialCell) => {
|
|
|
+ if (cell.type !== 'workpoint') {
|
|
|
+ return ''
|
|
|
+ }
|
|
|
+ if (cell.stationType === 'inbound') {
|
|
|
+ return '入库站'
|
|
|
+ }
|
|
|
+ if (cell.stationType === 'outbound') {
|
|
|
+ return '出库站'
|
|
|
+ }
|
|
|
+ if (cell.stationType === 'picking') {
|
|
|
+ return '拣货站'
|
|
|
+ }
|
|
|
+ return ''
|
|
|
+}
|
|
|
+
|
|
|
const getCellClass = (cell: MapCell) => {
|
|
|
if (isSpecialCell(cell)) {
|
|
|
return shouldHideNonLocationCells.value ? ['hidden-cell'] : getSpecialCellClasses(cell)
|
|
|
@@ -1039,8 +1060,9 @@ onBeforeUnmount(() => {
|
|
|
--wall-bg: #151515;
|
|
|
--elevator-bg: #101010;
|
|
|
--charger-bg: #231b06;
|
|
|
- --workpoint-a-bg: #12311b;
|
|
|
- --workpoint-b-bg: #3b102a;
|
|
|
+ --workpoint-inbound-bg: #173524;
|
|
|
+ --workpoint-outbound-bg: #3a2410;
|
|
|
+ --workpoint-picking-bg: #2a153a;
|
|
|
--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);
|
|
|
@@ -1068,8 +1090,9 @@ onBeforeUnmount(() => {
|
|
|
--wall-bg: #d9dee6;
|
|
|
--elevator-bg: #e2e6ec;
|
|
|
--charger-bg: #f0e4b8;
|
|
|
- --workpoint-a-bg: #cfe9d5;
|
|
|
- --workpoint-b-bg: #f4d2e2;
|
|
|
+ --workpoint-inbound-bg: #d7efe0;
|
|
|
+ --workpoint-outbound-bg: #f4dec6;
|
|
|
+ --workpoint-picking-bg: #ead8f4;
|
|
|
--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);
|
|
|
@@ -1167,17 +1190,22 @@ onBeforeUnmount(() => {
|
|
|
cursor: default;
|
|
|
}
|
|
|
|
|
|
-.grid-cell.workpoint-a {
|
|
|
- background: var(--workpoint-a-bg);
|
|
|
+.grid-cell.workpoint-inbound {
|
|
|
+ background: var(--workpoint-inbound-bg);
|
|
|
cursor: default;
|
|
|
}
|
|
|
|
|
|
-.grid-cell.workpoint-b {
|
|
|
- background: var(--workpoint-b-bg);
|
|
|
+.grid-cell.workpoint-outbound {
|
|
|
+ background: var(--workpoint-outbound-bg);
|
|
|
cursor: default;
|
|
|
}
|
|
|
|
|
|
-.grid-cell.workpoint:not(.workpoint-a):not(.workpoint-b) {
|
|
|
+.grid-cell.workpoint-picking {
|
|
|
+ background: var(--workpoint-picking-bg);
|
|
|
+ cursor: default;
|
|
|
+}
|
|
|
+
|
|
|
+.grid-cell.workpoint:not(.workpoint-inbound):not(.workpoint-outbound):not(.workpoint-picking) {
|
|
|
background: var(--charger-bg);
|
|
|
cursor: default;
|
|
|
}
|
|
|
@@ -1345,12 +1373,38 @@ onBeforeUnmount(() => {
|
|
|
}
|
|
|
|
|
|
.special-cell-label {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ gap: 2px;
|
|
|
font-size: calc(var(--cell-id-font-size, 11px) - 1px);
|
|
|
font-weight: 700;
|
|
|
color: var(--special-label);
|
|
|
- letter-spacing: 1px;
|
|
|
+ letter-spacing: 0.5px;
|
|
|
user-select: none;
|
|
|
padding: 1px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+
|
|
|
+.special-cell-label-primary {
|
|
|
+ font-size: var(--cell-id-font-size, 11px);
|
|
|
+ font-weight: bold;
|
|
|
+ line-height: 1;
|
|
|
+ white-space: normal;
|
|
|
+ word-break: break-all;
|
|
|
+ padding: 0 1px;
|
|
|
+}
|
|
|
+
|
|
|
+.special-cell-label-secondary {
|
|
|
+ max-width: 100%;
|
|
|
+ font-size: calc(var(--cell-id-font-size, 11px) - 2px);
|
|
|
+ font-weight: 600;
|
|
|
+ line-height: 1.05;
|
|
|
+ letter-spacing: 0;
|
|
|
+ opacity: 0.88;
|
|
|
+ white-space: normal;
|
|
|
+ word-break: break-all;
|
|
|
}
|
|
|
|
|
|
.special-cell-label-wall {
|
|
|
@@ -1377,11 +1431,15 @@ onBeforeUnmount(() => {
|
|
|
letter-spacing: 0;
|
|
|
}
|
|
|
|
|
|
-.special-cell-label-workpoint-a {
|
|
|
+.special-cell-label-workpoint-inbound {
|
|
|
+ color: var(--special-label-strong);
|
|
|
+}
|
|
|
+
|
|
|
+.special-cell-label-workpoint-outbound {
|
|
|
color: var(--special-label-strong);
|
|
|
}
|
|
|
|
|
|
-.special-cell-label-workpoint-b {
|
|
|
+.special-cell-label-workpoint-picking {
|
|
|
color: var(--special-label-strong);
|
|
|
}
|
|
|
|