2 lines
7.6 KiB
JavaScript
2 lines
7.6 KiB
JavaScript
import{_ as Y,I as Z,c as ee,d as B,a as e,w as t,D as A,l as E,p as Q,F as te,r as i,h as f,o as R,f as d,t as p,H as K,e as D,L as le,g as L,E as g,N as ae}from"./index-I7IvEW25.js";import{r as V}from"./request-CgQy1jz7.js";import{b as M}from"./format-C9Ok6skr.js";import{d as oe,P as ne}from"./help-CGfNBMNA.js";const se={__name:"Stocktake",setup(re){const U=Z(),I=f(!1),s=L({no:"",totalTargets:0});async function P(){I.value=!0;try{const o=await V.post("/stocktake/start",{operator:U});s.no=(o==null?void 0:o.stocktakeNo)||"",s.totalTargets=(o==null?void 0:o.totalTargets)||0,g.success(`盘点已发起:盘点单号 ${s.no},目标 ${s.totalTargets} 项`),await v()}finally{I.value=!1}}const _=L({targetId:"",scanQty:1}),N=f(!1),F=f(),b=f([]);async function x(){if(!s.no){g.warning("请先发起或填写盘点单号");return}const o=_.targetId.trim();if(!o){g.warning("请扫入目标编号(批次号或 SN)");return}const l=Number(_.scanQty);if(!Number.isInteger(l)||l<0){g.warning("实盘数量需为非负整数");return}N.value=!0;try{const n=await V.post("/stocktake/record",{stocktakeNo:s.no,targetId:o,scanQty:l}),h=b.value.findIndex(c=>c.targetId===(n==null?void 0:n.targetId)),u={targetId:(n==null?void 0:n.targetId)??o,bookQty:(n==null?void 0:n.bookQty)??"-",scannedQty:(n==null?void 0:n.scannedQty)??l,diffQty:(n==null?void 0:n.diffQty)??l-((n==null?void 0:n.bookQty)??0)};h>=0?b.value.splice(h,1,u):b.value.unshift(u),g.success(`已记录 ${u.targetId}:账面 ${u.bookQty},实盘 ${u.scannedQty},差异 ${u.diffQty}`),_.targetId="",ae(()=>{var c;return(c=F.value)==null?void 0:c.focus()})}finally{N.value=!1}}const k=f(!0),$=f(!1),m=f(null);async function G(){if(!s.no){g.warning("请先发起盘点");return}$.value=!0;try{const o=await V.post("/stocktake/finish",{stocktakeNo:s.no,adjust:k.value});m.value=o||{},g.success(`盘点完成:已盘 ${(o==null?void 0:o.counted)??0} 项,未盘 ${(o==null?void 0:o.uncounted)??0} 项`+(k.value?",差异已写回库存":"")),b.value=[],await v()}finally{$.value=!1}}const w=f(""),H=f([]),S=f(!1);async function v(){S.value=!0;try{const o={};w.value.trim()&&(o.stocktakeNo=w.value.trim());const l=await V.get("/stocktake/query",{params:o});H.value=(l==null?void 0:l.list)||[]}finally{S.value=!1}}return(o,l)=>{const n=i("el-descriptions-item"),h=i("el-descriptions"),u=i("el-button"),c=i("el-card"),J=i("el-switch"),y=i("el-form-item"),T=i("el-form"),j=i("el-col"),C=i("el-input"),O=i("el-input-number"),r=i("el-table-column"),z=i("el-table"),W=i("el-row"),X=i("el-alert"),q=i("el-tag");return R(),ee(te,null,[B("div",null,[e(W,{gutter:12},{default:t(()=>[e(j,{span:10},{default:t(()=>[e(c,{shadow:"never",class:"mb12",header:"发起盘点"},{default:t(()=>[e(h,{column:1,border:"",size:"small"},{default:t(()=>[e(n,{label:"操作人"},{default:t(()=>[d(p(Q(U)||"-"),1)]),_:1}),e(n,{label:"盘点单号"},{default:t(()=>[d(p(s.no||"未发起"),1)]),_:1}),e(n,{label:"目标数量"},{default:t(()=>[d(p(s.no?`${s.totalTargets} 项`:"-"),1)]),_:1})]),_:1}),e(u,{type:"primary",class:"mt12",loading:I.value,disabled:!!s.no&&!m.value,onClick:P},{default:t(()=>[...l[5]||(l[5]=[d(" 发起盘点(冻结库存快照) ",-1)])]),_:1},8,["loading","disabled"])]),_:1}),e(c,{shadow:"never",header:"完成盘点"},{default:t(()=>[e(T,{"label-width":"120px"},{default:t(()=>[e(y,{label:"差异写回库存"},{default:t(()=>[e(J,{modelValue:k.value,"onUpdate:modelValue":l[0]||(l[0]=a=>k.value=a)},null,8,["modelValue"]),l[6]||(l[6]=B("span",{class:"tip"},"开启后按实盘差异修正库存",-1))]),_:1}),e(y,null,{default:t(()=>[e(u,{type:"warning",loading:$.value,onClick:G},{default:t(()=>[...l[7]||(l[7]=[d("完成并生成差异",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})]),_:1}),e(j,{span:14},{default:t(()=>[e(c,{shadow:"never",class:"mb12",header:"扫码快速盘点(回车即提交并清空)"},{default:t(()=>[s.no?E("",!0):(R(),A(C,{key:0,modelValue:s.no,"onUpdate:modelValue":l[1]||(l[1]=a=>s.no=a),placeholder:"也可粘贴已有进行中的盘点单号",clearable:""},{prepend:t(()=>[...l[8]||(l[8
|