{{ notification.message }}
端末セットアップ
このデバイスを登録してください
招待コード
*
デバイス名
*
{{ isLoading ? '登録中...' : '登録' }}
検知アプリ
未同期 {{ unsyncedCount }}
↻
⚙
+ 新規伝票を作成
📚 はい管理(土場の在庫)
すべて({{ slipStatusCounts.all }})
中断中({{ slipStatusCounts.paused }})
未同期({{ slipStatusCounts.completed }})
同期済({{ slipStatusCounts.synced }})
伝票がありません
{{ formatDateShort(slip.createdAt) }}
{{ slip.lengthM }}m
{{ slip.status === 'paused' ? '中断中' : slip.status === 'completed' ? '未同期' : '同期済' }}
{{ getDestinationName(slip.destinationId) }}
{{ slip.siteName || '—' }}
{{ getSlipTotalCount(slip) }}
本
{{ getSlipTotalVolume(slip) }}
m³
🗑 削除
伝票を削除
{{ deleteTargetSlip ? formatDateShort(deleteTargetSlip.createdAt) + ' / ' + deleteTargetSlip.lengthM + 'm / ' + getSlipTotalCount(deleteTargetSlip) + '本' : '' }}
この操作は取り消せません
{{ isLoading ? '処理中...' : '削除する' }}
キャンセル
← 戻る
📚 はい管理
↻
+ 新規はい作成
使用中
アーカイブ
はいがありません
{{ pile.name }}
{{ pile.lengthM }}m
未同期
在庫
{{ getPileTotalCount(pile) }}
本
{{ getPileTotalVolume(pile) }}
m³
数える(追加/差分)
📦 アーカイブ
🗑 削除
↩ 使用中に戻す
新規はい作成
はいの名前
*
材長
*
{{ len.length_m }}m
作成して数える
キャンセル
{{ pileOpModal.pile ? pileOpModal.pile.name : '' }}
どちらの操作をしますか?
➕ 追加(積み足す)
今の在庫の上から数えて足す
🔍 差分検知(棚卸し・出荷)
今 残っている数を数え直す→出荷分を自動計算
キャンセル
{{ pileConfirm.title }}
{{ pileConfirm.message }}
はい
やめる
はいが競合しました
他の端末がこのはいを先に更新しました。どちらの内容で確定しますか?
サーバー側の在庫:
{{ pileConflictModal.server.pile.totalCount }}
本
自分の再カウントで確定
サーバー側を採用
材長を選択
新規伝票の材長を選んでください
材長マスタが未取得です。オンラインで同期してください
{{ len.length_m }} m
キャンセル
{{ selectedLength }}m
で伝票を作成しますか?
確定
戻る
← 戻る
{{ currentEntity ? currentEntity.lengthM : '—' }}
m
{{ voice.loading ? '…' : (voice.active ? '■ 停止' : '🎤 音声') }}
📋 履歴
{{ voiceCorrectionCount }}
✓ 完了
合計
{{ totalCount }}
本
{{ totalVolume.toFixed(3) }}
㎥
📚 {{ currentPile ? currentPile.name : '' }} /
➕ 追加中(在庫に積み足す)
🔍 差分検知中(今 残っている数を数える)
{{ voice.status }}
{{ voice.last }}
{{ diameter }}
+
{{ currentCounts[diameter] || 0 }}
−
追加
+
72〜
📋 音声履歴
まだ音声操作はありません
{{ formatLogTime(e.timestamp) }}
🔁 修正: {{ e.diameter }}cm −{{ e.count }}本
+ {{ e.diameter }}cm ×{{ e.count }}本
閉じる
← 戻る
伝票情報を入力
検知日
{{ formatDateFull(currentSlip ? currentSlip.createdAt : null) }}
材長
{{ currentSlip ? currentSlip.lengthM + ' m' : '—' }}
ドライバー
{{ settings.deviceName || '—' }}
納材場所
*
選択してください
{{ dest.name }}
現場名
*
納材日
(任意 / 後から入力可)
保存
← 戻る
設定
ドライバー(この端末)
{{ settings.deviceName || '(未取得)' }}
ドライバー名=端末名です。変更はWeb管理画面(端末管理)で行ってください。
音声の感度(周りの会話を拾わない)
自分の声より小さい音(遠くの会話など)を無視する音量のしきい値です。
マイクテスト
で「自分の声」と「周りの音」を見比べ、その間に合わせてください。屋外で周りがうるさい現場ほど高めに。
{{ settings.rmsMin.toFixed(3) }}
{{ voice.meterOn ? '■ マイクテスト停止' : '🎤 マイクテスト開始' }}
現在
{{ voice.meterLevel.toFixed(3) }}
{{ voice.meterLevel >= settings.rmsMin ? '✅ 拾う' : '🔇 無視' }}
しきい値
{{ settings.rmsMin.toFixed(3) }}
自分の声で話すとバーが緑(拾う)、周りの会話だけのとき灰色(無視)になるよう、スライダーで赤線を調整してください。
音声診断ログ(不具合調査用)
音声カウントを使うと、拾えた/捨てたの内訳がここに記録されます。うまく拾わないイヤホンで少し使ってから、
コピー
して送ってください(イヤホンのメーカー名も添えて)。
マイク:
{{ voiceDiag.mic.label || '(名称なし)' }}
error: {{ voiceDiag.mic.error }}
sampleRate={{ voiceDiag.mic.sampleRate }} / ch={{ voiceDiag.mic.channelCount }} / NR={{ voiceDiag.mic.noiseSuppression }} / AGC={{ voiceDiag.mic.autoGainControl }} / EC={{ voiceDiag.mic.echoCancellation }}
マイク情報は「マイクテスト開始」または音声カウント開始で取得されます。
{{ k }}:
{{ n }}
(まだ記録なし)
{{ e.outcome }}
{{ e.relaxAccept ? ' ⚑緩和' : '' }}
· {{ e.txt }}
· fd:「{{ e.fdTxt }}」
rms={{ e.rms }} gap={{ e.nullGap }} mgn={{ e.margin }} cm={{ e.countMargin }} vad={{ e.vadMax }}/{{ e.vadMean }} sw={{ e.speechWins }} {{ e.segMs }}ms
コピー
クリア
データ管理
データをエクスポート
バージョン: 1.0.0
デバイスID: {{ settings.deviceId ? String(settings.deviceId).substring(0, 12) + '...' : '—' }}
⚙️
処理中
お待ちください