========================================================== 2026-06-01 drive/ コース変更画面の不具合修正・テストデータ整理 ========================================================== 【背景・目的】 先日追加した「コース変更」機能(配送途中の拠点で、その地点まで経路が 同一の別ルートへ切り替える機能)の画面に表示不具合があったため修正。 【不具合と対応】 1) コース変更一覧がスクロールできない - 原因: .coverlayer が position:fixed; height:100svh で overflow 指定が無く、 画面外にあふれた項目に到達できなかった。さらに表示時に drivesheet.js がインライン display:block を設定しており、 CSS の display:flex を上書きしてレイアウトが効かなかった。 - 対応(drivesheet.html): #changecourseview を flex 縦並びにし、 #changecoursearea に flex:1; overflow-y:auto を追加。 ヘッダー(< 戻る / コース変更)を上部固定、一覧部のみスクロール。 - 対応(drivesheet.js:1299): 表示時の style.display を 'block' → 'flex' に変更。 2) 便名が長いとボタン下にはみ出す - 原因: #changecoursearea .butt が height:96px; line-height:96px で 1行前提の縦中央寄せだったため、2行折り返し時に2行目がボックス外へ。 - 対応(drivesheet.html): line-height:1.3 + display:flex; align-items/justify-content center; box-sizing:border-box; padding:0 12px に変更。複数行でも ボタン内に中央寄せで収まるようにした。 ※ ヘッドレスChromeでレンダリング検証し、スクロール固定・折り返し収まりを確認。 【デプロイ】 drivesheet.html, drivesheet.js を本番 /home/singroup/public_html/drive/ へ 個別 scp で反映。md5 でローカル一致を確認済み。 【テストデータ整理(DB: singroup_exp / truckCourse)】 コース変更機能の動作確認で作成したテストインスタンスを確認。 - id 1461 ❌️テストA8F (長嶋/TEST1) … コース変更前、changeCourseで deleted=1 済 - id 1462 Z3茨城夜便(Z4古河追加) (長嶋/TEST1) … コース変更後の現行インスタンス - id 1465 ❌️テストA8F (法月/TEST1) … 単発テスト → 本日 deleted=1 に更新 ※ 論理削除(deleted フラグ)。truckCourseRecords / truckCourseSlips は未削除のまま残置。 ========================================================== 2026-06-03 hino/ 便名の省略表示ロジック修正(フルコード対応・マーカー連動修復) ========================================================== 【背景・目的】 hino/ の運行概況画面(overview)で、便名を省略表示している処理が、 3文字コード(例 Z3a)に未対応で省略名が崩れていた。また地図マーカーの 表示名・ルート線連動にも不具合があったため、表示仕様を整理して修正。 【対象ファイル】 hino/index.php : getDriveTitles() 内の便名省略ロジック(114行目周辺) hino/overview.js: マーカー表示・routeMark 算出 【修正内容】 1) 便名コードの抽出を先頭2文字固定 → 先頭の英数字コード全体に変更 - 旧: preg_match('/^[A-Z][A-Z,0-9]/') + mb_strcut($courseName,0,2)."便" → "Z3a 茨城夜便..." が "Z3便..." になり 'a' が脱落していた。 さらにカンマを含む誤った文字クラス [A-Z,0-9] だった。 - 新: preg_match('/^([A-Z][A-Za-z0-9+\-#.]+)/') でフルコード $code を取得し、 表示名 = $code."便".$suffix とした(Z3a便 等に対応)。 2) 「便」の後部の表示を ①〜⑩(U+2460〜U+2469)の丸数字のみに限定 - "Z5 群馬夜便①" → "Z5便①"、"Z9 群馬夜便②" → "Z9便②" は維持。 - "Z3a 茨城夜便(Z4古河追加)"・"Z3 茨城夜便( Z4古河)" 等の記号付きは 後部を除去し "Z3a便"・"Z3便" と表示。 - 実装: 「便」の後を取得後 preg_match('/^([\x{2460}-\x{2469}]+)/u') で判定。 3) マーカーの「内部キー」と「表示ラベル」を分離(index.php / overview.js 両方) - 問題: マーカーのキー(truck$i)とルート線の参照キー(routeMark, overview.js)が 一致して初めて連動する設計。旧コードは省略名が常に "XX便"(3文字)で 偶然一致していたが、後部記号や長い便名でフォント縮小が入ると 不一致になり、特に truck$i=mb_strcut(HTML文字列,0,2)="