深蓝工程码生成器

Run Settings
LanguageBash
Language Version
Run Command
cat << 'EOF' <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8" /> <title>深蓝工程码生成器</title> <meta name="viewport" content="width=device-width,initial-scale=1" /> <style> body{font-family:"Microsoft Yahei",sans-serif;background:#f3f5f9;margin:0;padding:28px;color:#222} .wrap{max-width:760px;margin:0 auto;background:#fff;border-radius:14px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:28px} h1{text-align:center;margin:0 0 20px;color:#1543c6} label.block{display:block;font-weight:700;margin:12px 0 8px} input[type="text"],input[type="date"]{width:100%;padding:12px;border:1px solid #dcdfe6;border-radius:10px;font-size:15px} .models{display:flex;gap:14px;flex-wrap:wrap;margin:8px 0 10px} .model-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e6e8ef;border-radius:10px;cursor:pointer} .custom-wrap{display:none;margin-top:8px} .row{margin:10px 0 18px} button{width:100%;padding:14px;border:0;border-radius:12px;background:#0b63ff;color:#fff;font-weight:700;font-size:16px;cursor:pointer} table{width:100%;border-collapse:collapse;margin-top:18px} th,td{padding:10px 8px;border-bottom:1px solid #eef0f5;text-align:center;font-size:14px} th{background:#0b63ff;color:#fff} .code{font-family:Consolas,Menlo,monospace;color:#c7254e} </style> </head> <body> <div class="wrap"> <h1>深蓝工程码生成器</h1> <label class="block">VIN:</label> <input id="vin" type="text" placeholder="如:LS6XXXXXXXXXXXXXX (17位)" /> <label class="block">车型:</label> <div class="models" id="modelGroup"> <label class="model-item"><input type="radio" name="model" value="C385" checked /> 深蓝 SL03</label> <label class="model-item"><input type="radio" name="model" value="C385_MCA" /> 深蓝 L07</label> <label class="model-item"><input type="radio" name="model" value="C673" /> 深蓝 S7</label> <label class="model-item"><input type="radio" name="model" value="C673_ICA" /> 深蓝 S07</label> <label class="model-item"><input type="radio" name="model" value="C673 solvang" /> 深蓝 S07i</label> <label class="model-item"><input type="radio" name="model" value="custom" /> 自定义型号</label> </div> <div class="custom-wrap" id="customWrap"> <input id="customModel" type="text" placeholder="请输入其它车型代号" /> </div> <div class="row"> <label class="block">开始日期:</label> <input id="startDate" type="date" /> </div> <button id="btnGen">生成 10 天工程码</button> <div id="result"></div> </div> <script> (function(){ const today=new Date(); document.getElementById("startDate").value=today.toISOString().split("T")[0]; document.getElementById("modelGroup").addEventListener("change",()=>{ const val=document.querySelector('input[name="model"]:checked')?.value; document.getElementById("customWrap").style.display=(val==="custom")?"block":"none"; }); document.getElementById("btnGen").addEventListener("click",generate); })(); async function sha256Hex(s){ const buf=new TextEncoder("utf-8").encode(s); const dig=await crypto.subtle.digest("SHA-256",buf); return Array.from(new Uint8Array(dig)).map(b=>b.toString(16).padStart(2,"0")).join(""); } function displayName(code){ if(code==="C385")return"深蓝 SL03"; if(code==="C385_MCA")return"深蓝 L07"; if(code==="C673")return"深蓝 S7"; if(code==="C673_ICA")return"深蓝 S07"; return code; } function parseISODate(v){ if(!v)return null; v=v.trim().replace(/\//g,"-"); if(/^\d{4}-\d{2}-\d{2}$/.test(v))return new Date(v+"T00:00:00"); return new Date(v); } async function generate(){ const vin=document.getElementById("vin").value.trim(); if(!vin){alert("请输入 VIN");return;} let model=document.querySelector('input[name="model"]:checked')?.value; if(!model){alert("请选择车型");return;} if(model==="custom"){ const custom=document.getElementById("customModel").value.trim(); if(!custom){alert("请输入自定义车型");return;} model=custom; } const dateVal=document.getElementById("startDate").value; const start=parseISODate(dateVal); if(isNaN(start)){alert("无效日期");return;} const vinTail=vin.slice(-4); let html=`<table><thead><tr><th>日期</th><th>车型</th><th>工程码</th></tr></thead><tbody>`; for(let i=0;i<10;i++){ const d=new Date(start.getTime()+i*86400000); const y=d.getFullYear(); const m=String(d.getMonth()+1).padStart(2,'0'); const day=String(d.getDate()).padStart(2,'0'); const mmdd=m+day; const plain=model+vinTail+mmdd; const hash=await sha256Hex(plain); const startIdx=d.getDate()+1; const code=hash.substring(startIdx,startIdx+12); html+=`<tr><td>${y}-${m}-${day}</td><td>${displayName(model)}</td><td class="code">${code}</td></tr>`; } html+=`</tbody></table>`; document.getElementById("result").innerHTML=html; } </script> </body> </html> EOF
{ "out":"html" }
Editor Settings
Theme
Key bindings
Full width
Lines