2 lines
8.2 KiB
JavaScript
2 lines
8.2 KiB
JavaScript
import{q as L,s as oe,r as b,_ as ue,u as ie,j as re,c as S,a as i,b as t,w as o,m as x,g as _,o as V,h as s,t as k,n as D,e as P,F as E,x as F,p as se,E as A}from"./index-BKY3gHB2.js";import{u as de}from"./materials-CCO44TCM.js";import{_ as me}from"./BaseTable-BUsuzGI9.js";import{_ as N}from"./StatusBadge-GSjUKTY1.js";import{_ as pe}from"./DeleteConfirm-D3Hh604n.js";const T={getAll(p={}){return L.get("/inbound",{params:p})},getById(p){return L.get(`/inbound/${p}`)},create(p){return L.post("/inbound",p)},update(p,d){return L.put(`/inbound/${p}`,d)},delete(p){return L.delete(`/inbound/${p}`)}},fe=oe("inbound",()=>{const p=b([]),d=b(!1),f=b({currentPage:1,pageSize:20,total:0,totalPages:0});async function w(v=1){var c,y;d.value=!0;try{const I=f.value.pageSize,m=(v-1)*I,n=await T.getAll({limit:I,offset:m});p.value=((c=n.data)==null?void 0:c.items)||n.data||[],f.value.total=((y=n.data)==null?void 0:y.total)||p.value.length,f.value.currentPage=v,f.value.totalPages=Math.ceil(f.value.total/I)||1}finally{d.value=!1}}async function C(v){const c=await T.create(v);return await w(1),c}async function h(v,c){const y=await T.update(v,c);return await w(f.value.currentPage),y}async function $(v){const c=await T.delete(v);return await w(f.value.currentPage),c}return{inboundList:p,loading:d,page:f,fetchInboundList:w,createInbound:C,updateInbound:h,deleteInbound:$}}),ge={class:"inbound-page"},ve={class:"page-header"},ce={key:0},be={key:0,class:"mt-3"},_e={__name:"Inbound",setup(p){const d=fe(),f=de(),w=ie(),C=b(!1),h=b(!1),$=b(!1),v=b("新增入库单"),c=b(!1),y=b(null),I=b(null),m=b(null),n=se({handler:"",supplier:"",remark:"",items:[{material_id:null,materialSearchText:"",quantity:1}]});re(()=>{d.fetchInboundList(),f.fetchMaterials()});function j(a){d.fetchInboundList(a)}function O(){y.value=null,v.value="新增入库单",Object.assign(n,{handler:"",supplier:"",remark:"",items:[{material_id:null,materialSearchText:"",quantity:1}]}),C.value=!0}function R(a){y.value=a.id,v.value="编辑入库单";const e=a.items&&a.items.length>0?a.items.map(u=>{const r=f.materials.find(q=>q.id===u.material_id);return{material_id:u.material_id,materialSearchText:r?`${r.material_code} - ${r.name}`:"",quantity:u.quantity}}):[{material_id:null,materialSearchText:"",quantity:1}];Object.assign(n,{handler:a.handler||"",supplier:a.supplier||"",remark:a.remark||"",items:e}),C.value=!0}function G(a){m.value=a,h.value=!0}function H(){n.items.push({material_id:null,materialSearchText:"",quantity:1})}function J(a){n.items.splice(a,1)}function K(a,e){e.materialSearchText=a}function Q(a){const e=(a.materialSearchText||"").toLowerCase();return e?f.materials.filter(u=>u.material_code.toLowerCase().includes(e)||u.name.toLowerCase().includes(e)):f.materials}function W(a,e){const u=n.items.indexOf(a);u!==-1&&n.items.splice(u,1,{...a})}async function X(){c.value=!0;try{const a=n.items.filter(u=>u.material_id&&u.quantity>0);if(a.length===0){A.warning("请至少添加一个物料");return}const e={handler:n.handler,supplier:n.supplier,remark:n.remark,items:a};y.value?await d.updateInbound(y.value,e):await d.createInbound(e),A.success("保存成功"),C.value=!1}finally{c.value=!1}}function Y(a){I.value=a,$.value=!0}async function Z(){await d.deleteInbound(I.value),A.success("删除成功")}function U(a){return a?new Date(a).toLocaleString("zh-CN"):"-"}return(a,e)=>{const u=_("el-button"),r=_("el-table-column"),q=_("el-input"),M=_("el-form-item"),ee=_("el-option"),te=_("el-select"),le=_("el-input-number"),ae=_("el-form"),B=_("el-dialog"),ne=_("el-table");return V(),S("div",ge,[i("div",ve,[e[8]||(e[8]=i("h2",null,"入库管理",-1)),t(u,{type:"primary",onClick:O},{default:o(()=>[...e[7]||(e[7]=[s("新增入库单",-1)])]),_:1})]),t(me,{data:x(d).inboundList,loading:x(d).loading,"current-page":x(d).page.currentPage,"page-size":x(d).page.pageSize,total:x(d).page.total,onPageChange:j},{default:o(()=>[t(r,{type:"index",label:"ID",width:"60"}),t(r,{prop:"inbound_no",label:"入库单号"}),t(r,{prop:"status",label:"状态"},{default:o(({row:l})=>[t(N,{status:l.status},null,8,["status"])]),_:1}),t(r,{prop:"operator",label:"操作人"}),t(r,{prop:"handler",label:"经手人"}),t(r,{prop:"supplier",label:"供应商"}),t(r,{prop:"remark",label:"备注"}),t(r,{prop:"created_at",label:"创建时间",width:"160"},{default:o(({row:l})=>[s(k(U(l.created_at)),1)]),_:1}),t(r,{prop:"updated_at",label:"更新时间",width:"160"},{default:o(({row:l})=>[s(k(U(l.updated_at)),1)]),_:1}),t(r,{label:"操作",width:"240",fixed:"right"},{default:o(({row:l})=>[t(u,{size:"small",onClick:z=>G(l)},{default:o(()=>[...e[9]||(e[9]=[s("详情",-1)])]),_:1},8,["onClick"]),x(w).isAdmin?(V(),D(u,{key:0,size:"small",type:"primary",onClick:z=>R(l)},{default:o(()=>[...e[10]||(e[10]=[s("编辑",-1)])]),_:1},8,["onClick"])):P("",!0),x(w).isAdmin?(V(),D(u,{key:1,size:"small",type:"danger",onClick:z=>Y(l.id)},{default:o(()=>[...e[11]||(e[11]=[s("删除",-1)])]),_:1},8,["onClick"])):P("",!0)]),_:1})]),_:1},8,["data","loading","current-page","page-size","total"]),t(B,{modelValue:C.value,"onUpdate:modelValue":e[4]||(e[4]=l=>C.value=l),title:v.value,width:"700px"},{footer:o(()=>[t(u,{onClick:e[3]||(e[3]=l=>C.value=!1)},{default:o(()=>[...e[14]||(e[14]=[s("取消",-1)])]),_:1}),t(u,{type:"primary",onClick:X,loading:c.value},{default:o(()=>[...e[15]||(e[15]=[s("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[t(ae,{model:n,"label-width":"100px"},{default:o(()=>[t(M,{label:"经手人"},{default:o(()=>[t(q,{modelValue:n.handler,"onUpdate:modelValue":e[0]||(e[0]=l=>n.handler=l),placeholder:"请输入经手人"},null,8,["modelValue"])]),_:1}),t(M,{label:"供应商"},{default:o(()=>[t(q,{modelValue:n.supplier,"onUpdate:modelValue":e[1]||(e[1]=l=>n.supplier=l),placeholder:"请输入供应商"},null,8,["modelValue"])]),_:1}),t(M,{label:"备注"},{default:o(()=>[t(q,{modelValue:n.remark,"onUpdate:modelValue":e[2]||(e[2]=l=>n.remark=l),type:"textarea",rows:"3"},null,8,["modelValue"])]),_:1}),t(M,{label:"入库物料"},{default:o(()=>[(V(!0),S(E,null,F(n.items,(l,z)=>(V(),S("div",{key:z,class:"item-row"},[t(te,{modelValue:l.material_id,"onUpdate:modelValue":g=>l.material_id=g,placeholder:"输入物料编码或名称搜索",filterable:"","filter-method":g=>K(g,l),style:{width:"280px"},onChange:g=>W(l,g)},{default:o(()=>[(V(!0),S(E,null,F(Q(l),g=>(V(),D(ee,{key:g.id,label:`${g.material_code} - ${g.name}`,value:g.id},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","filter-method","onChange"]),t(le,{modelValue:l.quantity,"onUpdate:modelValue":g=>l.quantity=g,min:1},null,8,["modelValue","onUpdate:modelValue"]),t(u,{onClick:g=>J(z),disabled:n.items.length<=1},{default:o(()=>[...e[12]||(e[12]=[s("删除",-1)])]),_:1},8,["onClick","disabled"])]))),128)),t(u,{onClick:H},{default:o(()=>[...e[13]||(e[13]=[s("添加物料",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),t(B,{modelValue:h.value,"onUpdate:modelValue":e[5]||(e[5]=l=>h.value=l),title:"入库单详情",width:"600px"},{default:o(()=>[m.value?(V(),S("div",ce,[i("p",null,[e[16]||(e[16]=i("strong",null,"入库单号:",-1)),s(k(m.value.inbound_no),1)]),i("p",null,[e[17]||(e[17]=i("strong",null,"状态:",-1)),t(N,{status:m.value.status},null,8,["status"])]),i("p",null,[e[18]||(e[18]=i("strong",null,"操作人:",-1)),s(k(m.value.operator),1)]),i("p",null,[e[19]||(e[19]=i("strong",null,"经手人:",-1)),s(k(m.value.handler||"-"),1)]),i("p",null,[e[20]||(e[20]=i("strong",null,"供应商:",-1)),s(k(m.value.supplier||"-"),1)]),i("p",null,[e[21]||(e[21]=i("strong",null,"备注:",-1)),s(k(m.value.remark||"-"),1)]),i("p",null,[e[22]||(e[22]=i("strong",null,"创建时间:",-1)),s(k(U(m.value.created_at)),1)]),i("p",null,[e[23]||(e[23]=i("strong",null,"更新时间:",-1)),s(k(U(m.value.updated_at)),1)]),m.value.items&&m.value.items.length>0?(V(),S("div",be,[e[24]||(e[24]=i("h5",null,"物料明细",-1)),t(ne,{data:m.value.items,border:"",size:"small"},{default:o(()=>[t(r,{prop:"material_code",label:"物料编码"}),t(r,{prop:"material_name",label:"物料名称"}),t(r,{prop:"quantity",label:"数量"})]),_:1},8,["data"])])):P("",!0)])):P("",!0)]),_:1},8,["modelValue"]),t(pe,{modelValue:$.value,"onUpdate:modelValue":e[6]||(e[6]=l=>$.value=l),onConfirm:Z},null,8,["modelValue"])])}}},xe=ue(_e,[["__scopeId","data-v-615f1366"]]);export{xe as default};
|