2026-07-31 16:55:52 +08:00
|
|
|
import{C as e,D as t,F as n,N as r,O as i,P as a,S as o,T as s,_ as c,g as l,i as u,j as d,k as f,m as p,n as m,r as h,s as g,x as _,y as v}from"./index-Dngmm__P.js";import{t as y}from"./useInventory-CrXJ8kdd.js";var b={class:`inventory-tab`},x={class:`table-header`},S=m(e({__name:`InventoryTab`,setup(e){let{state:m,loadInventory:S,ensureStockBaseData:C}=y(),w=a(!1),T=a(null),E=a(!1),D=r({product_id:null,warehouse_id:null,quantity:0,locked_quantity:0,batch_no:``,location:``});function O(){C(),T.value=null,D.product_id=null,D.warehouse_id=null,D.quantity=0,D.locked_quantity=0,D.batch_no=``,D.location=``,w.value=!0}function k(e){C(),T.value=e,D.product_id=e.product_id??null,D.warehouse_id=e.warehouse_id??null,D.quantity=e.quantity??0,D.locked_quantity=e.locked_quantity??0,D.batch_no=e.batch_no??``,D.location=e.location??``,w.value=!0}async function A(){if(!E.value){if(!D.product_id){h(`请选择物料`,`warning`);return}if(!D.warehouse_id){h(`请选择仓库`,`warning`);return}if(D.quantity<0){h(`数量不能为负数`,`warning`);return}if(D.locked_quantity>D.quantity){h(`锁定数量不能大于库存数量`,`warning`);return}E.value=!0;try{let e={product_id:D.product_id,warehouse_id:D.warehouse_id,quantity:D.quantity,locked_quantity:D.locked_quantity,batch_no:D.batch_no||null,location:D.location||null};T.value?(await g(`/api/inventory/${T.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),h(`物料库存更新成功`,`success`)):(await g(`/api/inventory`,{method:`POST`,body:JSON.stringify(e)}),h(`物料库存已创建`,`success`)),w.value=!1,S()}catch(e){u(e,`保存物料库存`)}finally{E.value=!1}}}async function j(e){if(confirm(`确定要删除这个物料库存记录吗?`))try{await g(`/api/inventory/${e}`,{method:`DELETE`}),h(`物料库存已删除`,`success`),S()}catch(e){u(e,`删除物料库存`)}}return s(()=>{S()}),(e,r)=>{let a=f(`t-button`),s=f(`t-table-column`),u=f(`t-table`),h=f(`t-option`),g=f(`t-select`),y=f(`t-form-item`),S=f(`t-input-number`),C=f(`t-input`),M=f(`t-form`),N=f(`t-dialog`);return t(),v(`div`,b,[l(`div`,x,[o(a,{type:`primary`,onClick:O},{default:d(()=>[...r[8]||=[_(`+ 新增物料库存`,-1)]]),_:1})]),o(u,{data:n(m).inventory,style:{width:`100%`},loading:n(m).loading,"empty-text":`暂无库存数据`},{default:d(()=>[o(s,{prop:`product_sku`,label:`SKU`}),o(s,{prop:`product_name`,label:`物料`}),o(s,{prop:`warehouse_name`,label:`仓库`}),o(s,{prop:`quantity`,label:`数量`}),o(s,{prop:`available_quantity`,label:`可用`}),o(s,{label:`操作`,width:`180`},{default:d(({row:e})=>[o(a,{size:`small`,onClick:t=>k(e)},{default:d(()=>[...r[9]||=[_(`编辑`,-1)]]),_:1},8,[`onClick`]),o(a,{size:`small`,type:`danger`,onClick:t=>j(e.id)},{default:d(()=>[...r[10]||=[_(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(N,{modelValue:w.value,"onUpdate:modelValue":r[7]||=e=>w.value=e,title:T.value?`编辑物料库存`:`新增物料库存`,width:`520px`,"close-on-click-modal":!1},{footer:d(()=>[o(a,{onClick:r[6]||=e=>w.value=!1,disabled:E.value},{default:d(()=>[...r[11]||=[_(`取消`,-1)]]),_:1},8,[`disabled`]),o(a,{type:`primary`,loading:E.value,disabled:E.value,onClick:A},{default:d(()=>[...r[12]||=[_(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:d(()=>[o(M,{model:D,"label-width":`80px`},{default:d(()=>[o(y,{label:`物料`,required:``},{default:d(()=>[o(g,{modelValue:D.product_id,"onUpdate:modelValue":r[0]||=e=>D.product_id=e,placeholder:`请选择物料`,style:{width:`100%`}},{default:d(()=>[(t(!0),v(p,null,i(n(m).materials,e=>(t(),c(h,{key:e.id,label:e.name+(e.sku?` (`+e.sku+`)`:``),value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),o(y,{label:`仓库`,required:``},{default:d(()=>[o(g,{modelValue:D.warehouse_id,"onUpdate:modelValue":r[1]||=e=>D.warehouse_id=e,placeholder:`请选择仓库`,style:{width:`100%`}},{default:d(()=>[(t(!0),v(p,null,i(n(m).warehouses,e=>(t(),c(h,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),o(y,{label:`数量`,required:``},{default:d(()=>[o(S,{modelValue:D.q
|