员工操作中心 / 退件处理
仓
仓库员工今日
内部号(拆包前先贴这张)

实测尺寸重量会回填给客户,客户按这个数自己出标发货。处理完记得量一下再点完成。

做了哪些操作

加载中…

客户的文件

扫到包裹后显示

跟客户沟通(这票包裹)

扫到包裹后显示

退货标签申请

加载中…

等待操作区

加载中…

封存待指令

加载中…

认领区

加载中…
`); w.document.close(); w.focus(); w.print(); } async function loadLists() { try { const w = await api("GET", "/api/returns/waiting"); const wp = (w.data && w.data.parcels) || []; $("waitList").innerHTML = wp.length ? "" : '没有等着做的包裹。'; for (const p of wp) { const div = document.createElement("div"); div.className = "witem"; div.textContent = `${p.internal_no || ""} ${p.tracking_no}。${p.customer_code || ""}。点开接着做。`; div.addEventListener("click", () => doScan(p.tracking_no)); $("waitList").appendChild(div); } const sd = await api("GET", "/api/returns/sealed"); const sp = (sd.data && sd.data.parcels) || []; $("sealedList").innerHTML = sp.length ? "" : '没有封存等指令的包裹。'; for (const p of sp) { const div = document.createElement("div"); div.className = "witem"; div.textContent = `${p.internal_no || ""} ${p.tracking_no}。${p.customer_code || ""}。库位 ${p.location || "未登记"}。日期标签 ${p.hold_date || ""}。客户给了指令再按库位取出。`; div.addEventListener("click", () => doScan(p.tracking_no)); $("sealedList").appendChild(div); } const c = await api("GET", "/api/returns/claims"); const cp = (c.data && c.data.parcels) || []; $("claimList").innerHTML = cp.length ? "" : '认领区是空的。'; for (const p of cp) { const div = document.createElement("div"); div.className = "witem"; div.textContent = `${p.tracking_no}。收件人:${p.recipient || "没写"}。在 ${p.location || ""}。`; $("claimList").appendChild(div); } } catch (e) {} } async function loadLabelReqs() { let r; try { r = await api("GET", "/api/shipping/label-requests"); } catch (e) { return; } const box = $("lrList"); if (!box) return; const reqs = r.data.requests || []; $("lrCount").textContent = reqs.length ? `(${reqs.length} 条待出标)` : ""; if (!reqs.length) { box.innerHTML = "现在没有待出标的申请。"; return; } box.innerHTML = ""; for (const q of reqs) { const d = document.createElement("div"); d.className = "order"; d.style.cursor = "default"; d.innerHTML = `
${q.customer_code || ""} ${q.customer_name || ""}
买家:${q.buyer_name || ""},${q.buyer_street || ""} ${q.buyer_city || ""} ${q.buyer_state || ""} ${q.buyer_zip || ""}${q.note ? " · " + q.note : ""}
`; box.appendChild(d); } } async function doFulfill(id) { const w = parseFloat(($("lrw-" + id) || {}).value) || 2; const out = $("lrr-" + id); let r; try { r = await api("POST", "/api/shipping/label-request-fulfill", { id, weight_lb: w }); } catch (e) { out.textContent = "网络不通,没出成,再点一次。"; return; } if (!r.data.ok) { out.textContent = r.data.error || "没出成"; return; } const q = r.data.request; out.innerHTML = `已出标:${q.tracking_no || ""}${q.label_url ? ` 打印标签` : ""}。运费已从客户余额扣。`; setTimeout(loadLabelReqs, 1500); } function init() { $("opInput").value = localStorage.getItem("bbw_wms_op") || ""; $("opInput").addEventListener("change", (e) => localStorage.setItem("bbw_wms_op", e.target.value.trim())); $("scanBtn").addEventListener("click", () => doScan()); $("scanInput").addEventListener("keydown", (e) => { if (e.key === "Enter") doScan(); }); $("claimBtn").addEventListener("click", doClaim); $("doneBtn").addEventListener("click", doComplete); $("waitBtn").addEventListener("click", doWait); $("printBtn").addEventListener("click", printLabel); document.querySelectorAll("#dispRow button").forEach((b) => b.addEventListener("click", () => { disposition = b.dataset.d; document.querySelectorAll("#dispRow button").forEach((x) => x.classList.toggle("sel", x === b)); })); document.querySelectorAll("#afterRow button").forEach((b) => b.addEventListener("click", () => { afterMode = b.dataset.a; document.querySelectorAll("#afterRow button").forEach((x) => x.classList.toggle("sel", x === b)); })); loadFees(); loadLabelReqs(); loadLists(); $("scanInput").focus(); } init();