printedparts: kiosk tag prefix + labels use the gage lab tag

Kiosk item lookup shows a fixed "WJ" prefix addon so operators type only the
number off the label. The label page - and the detail "Part Label" button,
renamed from "Bin Label" - now barcodes and prints the gage lab tag, falling
back to the internal item code when a part has no tag assigned.
This commit is contained in:
cproudlock
2026-07-20 11:18:16 -04:00
parent 31139267d1
commit 108d4d396c
3 changed files with 43 additions and 10 deletions

View File

@@ -15,9 +15,14 @@
<!-- one visible field: keyboard-wedge scanners, a plugged-in keyboard or
numpad, and the on-screen keypad all type into it. -->
<div class="entry-panel">
<input ref="entryInput" v-model="manualCode" class="entry-input"
inputmode="none" autocomplete="off" placeholder="label number"
@keydown.enter.prevent="lookupItem(manualCode)" />
<!-- The tag prefix is shown as a fixed addon so operators type only
the number part off the label. -->
<div class="entry-input-group">
<span class="entry-prefix">{{ LABEL_PREFIX }}</span>
<input ref="entryInput" v-model="manualCode" class="entry-input has-prefix"
inputmode="none" autocomplete="off" placeholder="number"
@keydown.enter.prevent="lookupItem(manualCode)" />
</div>
<TouchKeypad @digit="manualCode += $event"
@clear="manualCode = ''"
@backspace="manualCode = manualCode.slice(0, -1)" />
@@ -88,6 +93,10 @@ import { printedpartsApi } from '@/api'
import { withBase } from '@/utils/basePath'
import TouchKeypad from '@/components/TouchKeypad.vue'
// Fixed tag prefix shown before the label number at the kiosk. Change here if
// the gage lab tags use a different leading string.
const LABEL_PREFIX = 'WJ'
const step = ref('item')
const item = ref(null)
const badge = ref('')
@@ -255,6 +264,29 @@ function reset() {
outline: none;
}
.entry-input:focus { border-color: var(--primary); }
.entry-input-group {
display: flex;
align-items: stretch;
width: 16.9rem;
}
.entry-prefix {
display: flex;
align-items: center;
padding: 0 0.7rem;
font-size: 2rem;
font-weight: 700;
color: var(--text-light);
background: var(--bg-card);
border: 1px solid var(--border);
border-right: none;
border-radius: 0.75rem 0 0 0.75rem;
}
.entry-input.has-prefix {
width: auto;
flex: 1;
min-width: 0;
border-radius: 0 0.75rem 0.75rem 0;
}
.entry-input::placeholder {
color: var(--text-light);
font-weight: 400;