1 line
73 KiB
JavaScript
1 line
73 KiB
JavaScript
import{A as e,B as t,C as n,D as r,E as i,F as a,I as o,L as s,M as c,N as l,O as u,P as d,S as f,_ as p,b as m,c as h,g,h as _,i as v,j as y,k as b,n as x,r as S,s as C,t as w,u as T,v as E,w as D,y as O}from"./index-Dwzy8ysZ.js";import{a as k,n as A,r as j,t as M}from"./utils-COFIQvWo.js";var N=a({activeTab:`dashboard`,backendDbReady:!0,backendDbMessage:``,productCategory:`finished`,dashboard:null,financeSummary:null,financePeriod:{year:new Date().getFullYear(),quarter:``},financeTransactions:[],receivables:[],payables:[],customerFinanceStatement:[],supplierFinanceStatement:[],customerProductStatement:[],supplierProductStatement:[],products:[],materials:[],finishedProducts:[],purchaseOrders:[],purchaseWarehouseId:null,purchaseReceiveItems:[],productionOrders:[],productionPlan:null,productionWarehouseId:null,suppliers:[],customers:[],warehouses:[],inventory:[],movements:[],loading:!1,showModal:!1,modalType:``,editingItem:null,productBomItems:[],materialConsumptionItems:[],showMaterialConsumptionModal:!1,consumedMaterials:[],restockItems:[],showRestockModal:!1,form:{}}),P=null,F=null,I=o(null),L=o(null),R=o(null),z=o(null);function B(){let e=e=>{if(!e)return null;let t=String(e).trim().replace(`T`,` `).slice(0,16).match(/^(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2})$/);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),a=Number(t[4]),o=Number(t[5]);return Number.isFinite(n+r+i+a+o)?new Date(n,r-1,i,a,o,0):null},t=e=>{if(!e)return``;let t=String(e).trim();if(/^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}/.test(t))return t.slice(0,16);if(t.includes(`T`))return t.replace(`T`,` `).slice(0,16);let n=new Date(t);if(!Number.isFinite(n.getTime()))return``;let r=e=>String(e).padStart(2,`0`);return`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())} ${r(n.getHours())}:${r(n.getMinutes())}`},n=e=>{if(!e)return null;let t=String(e).trim();return t.includes(`T`)?t.split(`T`)[0]:t.includes(` `)?t.split(` `)[0]:t.length===10?t:e instanceof Date?`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`:t},r=e=>{if(!e)return``;let t=String(e).trim();if(t.length===10&&!t.includes(`T`)&&!t.includes(` `))return t;let n=t.replace(` `,`T`);return n.length>=16?n.slice(0,16):n},i=e=>{if(!e)return``;let t=String(e).trim();return t.length===10&&!t.includes(`T`)&&!t.includes(` `)?t:t.replace(`T`,` `).slice(0,16)},o=()=>{P&&=(P.destroy(),null),F&&=(F.destroy(),null)},s=()=>{if(o(),typeof AirDatepicker==`function`){if(N.modalType===`salesOrder`&&I.value){P=new AirDatepicker(I.value,{timepicker:!1,autoClose:!0,zIndex:2005,dateFormat:`yyyy-MM-dd`,onSelect:({formattedDate:e})=>{N.form.delivery_date=e||``,N.form.delivery_date_native=r(e||``)}});let t=e(N.form.delivery_date);t&&P.selectDate(t,{silent:!0})}if(N.modalType===`purchaseOrder`&&L.value){F=new AirDatepicker(L.value,{timepicker:!1,autoClose:!0,zIndex:2005,dateFormat:`yyyy-MM-dd`,onSelect:({formattedDate:e})=>{N.form.expected_date=e||``,N.form.expected_date_native=r(e||``)}});let t=e(N.form.expected_date);t&&F.selectDate(t,{silent:!0})}}},c=e=>{if(e===`delivery`&&P){P.show();return}if(e===`expected`&&F){F.show();return}let t=e===`delivery`?R.value:z.value;if(t){if(typeof t.showPicker==`function`){t.showPicker();return}t.focus(),t.click()}},l=e=>({in:`其他入库`,out:`其他出库`,adjust:`库存调整`,purchase_in:`采购入库`,return_from_production:`生产退料入库`,outsource_return:`外协回库`,finish_in:`完工入库`,issue_to_production:`生产领料出库`,outsource_send:`外协发料出库`,shipment_out:`销售出库`,scrap_out:`报废出库`})[e]||e,u=e=>[`purchase_in`,`return_from_production`,`outsource_return`,`finish_in`,`in`].includes(e)?`badge-success`:[`issue_to_production`,`outsource_send`,`shipment_out`,`scrap_out`,`out`].includes(e)?`badge-error`:`badge-warning`,d=e=>({draft:`已下单`,pending:`已下单`,partial_received:`部分收货`,received:`已收货`,paid:`已付款`,cancelled:`已作废`})[e]||e,f=e=>[`received`,`paid`,`cancelled`].includes(e),p=e=>({manufacturing:`制造中`,delivered:`已交付`,paid:`已收款`,cancelled:`已作废`})[e]||e,m=e=>({manufacturing:`制造中`,delivered:`已交付`,cancelled:`已作废`})[e]||e,h=e=>({unpaid:`未收款`,paid:`已收款`})[e]||e,_=e=>({pending:`已下单`,partial_received:`部分收货`,received:`已收货`,cancelled:`已作废`})[e]||e,y=async()=>{try{let e=await fetch(`/health`,{method:`GET`});if(!e.ok){N.backendDbReady=!1,N.backendDbMessage=`后端服务异常,暂无法加载业务数据`;return}let t=await e.json().catch(()=>null);if(t&&t.database_connected===!1){N.backendDbReady=!1,N.backendDbMessage=`数据库未连接,当前仅可浏览界面,业务数据暂不可用`;return}N.backendDbReady=!0,N.backendDbMessage=``}catch{N.backendDbReady=!1,N.backendDbMessage=`无法连接后端服务`}},b=async()=>{N.loading=!0;try{N.dashboard=await C(`/api/dashboard`)}catch(e){v(e,`加载仪表盘`)}finally{N.loading=!1}},x=async()=>{N.loading=!0;try{N.finishedProducts=await C(`/api/products?item_type=finished&limit=100`)}catch(e){v(e,`加载成品`)}finally{N.loading=!1}},w=async()=>{await x()},T=async()=>{N.loading=!0;try{N.materials=await C(`/api/products?item_type=material&limit=100`)}catch(e){v(e,`加载物料`)}finally{N.loading=!1}},E=async()=>{N.loading=!0;try{N.warehouses=await C(`/api/warehouses`)}catch(e){v(e,`加载仓库`)}finally{N.loading=!1}},D=async()=>{if(N.materials.length||await T(),N.warehouses.length||await E(),!N.warehouses.length)try{await C(`/api/warehouses`,{method:`POST`,body:JSON.stringify({name:`默认仓库`})}),await E(),S(`已自动创建默认仓库`,`success`)}catch(e){v(e,`自动创建默认仓库`)}},O=async()=>{N.loading=!0;try{N.suppliers=await C(`/api/suppliers`)}catch(e){v(e,`加载供应商`)}finally{N.loading=!1}},B=async()=>{N.loading=!0;try{let[e,t]=await Promise.all([C(`/api/sales-orders?limit=100`),C(`/api/warehouses`)]);N.productionOrders=e?.items||[],N.warehouses=t||[],N.productionWarehouseId||=N.warehouses.find(e=>e.is_default)?.id||N.warehouses[0]?.id||null}catch(e){v(e,`加载按单生产数据`)}finally{N.loading=!1}},V=async()=>{N.loading=!0;try{let[e,t]=await Promise.all([C(`/api/purchase-orders?limit=100`),C(`/api/warehouses`)]);N.purchaseOrders=e?.items||[],N.warehouses=t||[],N.purchaseWarehouseId||=N.warehouses.find(e=>e.is_default)?.id||N.warehouses[0]?.id||null}catch(e){v(e,`加载采购订单`)}finally{N.loading=!1}},H=async()=>{N.loading=!0;try{N.customers=await C(`/api/customers`)}catch(e){v(e,`加载客户`)}finally{N.loading=!1}},U=async()=>{N.loading=!0;try{N.inventory=(await C(`/api/inventory`))?.items||[]}catch(e){v(e,`加载库存`)}finally{N.loading=!1}},W=async()=>{N.loading=!0;try{N.movements=(await C(`/api/stock-movements`))?.items||[]}catch(e){v(e,`加载变动记录`)}finally{N.loading=!1}},G=async()=>{N.loading=!0;try{let e=Number(N.financePeriod.year)||new Date().getFullYear(),t=N.financePeriod.quarter?Number(N.financePeriod.quarter):null,n=t?`year=${e}&quarter=${t}`:`year=${e}`,[r,i,a,o,s,c,l,u]=await Promise.all([C(`/api/finance/summary?${n}`),C(`/api/finance/transactions?status=confirmed&limit=20&${n}`),C(`/api/finance/receivables?limit=20&${n}`),C(`/api/finance/payables?limit=20&${n}`),C(`/api/finance/partner-statement/customer?${n}`),C(`/api/finance/partner-statement/supplier?${n}`),C(`/api/finance/partner-product-statement/customer?${n}`),C(`/api/finance/partner-product-statement/supplier?${n}`)]);N.financeSummary=r,N.financeTransactions=i,N.receivables=a,N.payables=o,N.customerFinanceStatement=s.items||[],N.supplierFinanceStatement=c.items||[],N.customerProductStatement=l.items||[],N.supplierProductStatement=u.items||[]}catch(e){v(e,`加载财务数据`)}finally{N.loading=!1}},K=()=>{N.activeTab===`finance`&&G()},q=e=>{N.activeTab=e},J=()=>{N.showModal=!1,N.modalType=``,N.editingItem=null,N.productBomItems=[],N.purchaseReceiveItems=[],N.form={},o()},Y=g(()=>(N.editingItem?`编辑`:`新增`)+({product:N.form.item_type===`finished`?`成品`:`物料`,inventoryItem:`物料库存`,salesOrder:`销售订单`,purchaseOrder:`采购订单`,purchaseReceive:`采购到货入库`,supplier:`供应商`,customer:`客户`}[N.modalType]||``)),X=[{key:`overview`,title:`概览`,items:[{key:`dashboard`,label:`仪表盘`}]},{key:`sales`,title:`销售`,items:[{key:`sales_orders`,label:`销售订单管理`}]},{key:`purchase`,title:`采购`,items:[{key:`purchases`,label:`采购订单管理`}]},{key:`product`,title:`产品`,items:[{key:`products`,label:`成品管理`},{key:`materials`,label:`物料管理`}]},{key:`partner`,title:`往来单位`,items:[{key:`customers`,label:`客户管理`},{key:`suppliers`,label:`供应商管理`}]},{key:`warehouse`,title:`仓库`,items:[{key:`inventory`,label:`库存管理`},{key:`movements`,label:`库存变动记录`}]},{key:`finance`,title:`财务`,items:[{key:`finance`,label:`财务概览`}]}],Z=a(Object.fromEntries(X.map(e=>[e.key,!0])));return{state:N,deliveryDateInput:I,expectedDateInput:L,deliveryDateNativeInput:R,expectedDateNativeInput:z,menuGroups:X,openGroups:Z,activeMenu:g(()=>{for(let e of X){let t=e.items.find(e=>e.key===N.activeTab);if(t)return{group:e,item:t}}return null}),modalTitle:Y,parseDateTimeLocal:e,toPickerValue:t,toApiDateTime:n,toNativeValue:r,fromNativeValue:i,destroyPickers:o,initPickers:s,openDateTimePicker:c,getMovementTypeLabel:l,getMovementBadgeClass:u,getPurchaseOrderStatusLabel:d,isPurchaseOrderLocked:f,getSalesOrderStatusLabel:p,getDeliveryStatusLabel:m,getPaymentStatusLabel:h,getReceiptStatusLabel:_,checkBackendHealth:y,loadDashboard:b,loadFinishedProducts:x,loadProducts:w,loadMaterials:T,loadWarehouses:E,ensureStockBaseData:D,loadSuppliers:O,loadProductionOrders:B,loadPurchaseOrders:V,loadCustomers:H,loadInventory:U,loadMovements:W,loadFinance:G,refreshFinanceByPeriod:K,switchTab:q,closeModal:J,toggleGroup:e=>{Z[e]=!Z[e]},handleMenuClick:e=>{q(e)},switchProductCategory:e=>{N.productCategory=e},formatCurrency:M,formatNumber:k,formatDateTime:j,formatDate:A}}var V=[`onClick`],H=D({__name:`InventorySidebar`,setup(r){let{state:i,menuGroups:a,openGroups:o,toggleGroup:d,handleMenuClick:h}=B();return(r,g)=>{let v=e(`el-icon`),y=e(`el-menu-item`),x=e(`el-menu`);return u(),E(x,{"default-active":s(i).activeTab,class:`inventory-sidebar`,onSelect:g[0]||=e=>s(h)(e)},{default:l(()=>[(u(!0),m(_,null,b(s(a),e=>(u(),m(`div`,{key:e.key,class:`sidebar-group`},[p(`div`,{class:`sidebar-group-title`,onClick:t=>s(d)(e.key)},[p(`span`,null,t(e.title),1),n(v,null,{default:l(()=>[(u(),E(c(s(o)[e.key]?`ArrowDown`:`ArrowRight`)))]),_:2},1024)],8,V),s(o)[e.key]?(u(!0),m(_,{key:0},b(e.items,n=>(u(),E(y,{key:e.key+`-`+n.key,index:n.key},{default:l(()=>[f(t(n.label),1)]),_:2},1032,[`index`]))),128)):O(``,!0)]))),128))]),_:1},8,[`default-active`])}}}),U={style:{display:`flex`,"align-items":`center`,gap:`12px`}},W={style:{"font-size":`32px`}},G={style:{"font-size":`24px`,"font-weight":`700`}},K={style:{color:`var(--text-tertiary)`,"font-size":`13px`}},q=D({__name:`DashboardTab`,setup(r){let{state:i,formatCurrency:a}=B();return(r,o)=>{let c=e(`el-card`),d=e(`el-col`),f=e(`el-row`);return u(),E(f,{gutter:16},{default:l(()=>[(u(!0),m(_,null,b([{icon:`📦`,value:s(i).dashboard?.product_count||0,label:`成品数量`},{icon:`📊`,value:s(i).dashboard?.total_stock||0,label:`物料库存总量`},{icon:`💰`,value:s(a)(s(i).dashboard?.total_value||0),label:`库存价值`},{icon:`🏭`,value:s(i).dashboard?.supplier_count||0,label:`供应商`},{icon:`👥`,value:s(i).dashboard?.customer_count||0,label:`客户`},{icon:`🏪`,value:s(i).dashboard?.warehouse_count||0,label:`仓库`}],e=>(u(),E(d,{span:8,key:e.label,style:{"margin-bottom":`16px`}},{default:l(()=>[n(c,{shadow:`hover`},{default:l(()=>[p(`div`,U,[p(`span`,W,t(e.icon),1),p(`div`,null,[p(`div`,G,t(e.value),1),p(`div`,K,t(e.label),1)])])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}}),J={style:{"margin-bottom":`12px`}},Y={style:{padding:`0 12px 12px 12px`}},X=D({__name:`ProductsTab`,setup(r){let{state:a,formatCurrency:c,loadFinishedProducts:h,loadMaterials:g}=B(),x=o(!1),w=o(null),T=o({}),D=o([]);function k(){w.value=null,T.value={item_type:`finished`,unit:`件`,min_stock:0,max_stock:1e3,cost_price:0,sale_price:0,sku:``,name:``,category:``},D.value=[],x.value=!0}async function A(e){w.value=e,T.value={...e},await g();try{D.value=((await C(`/api/products/${e.id}/materials`)).items||[]).map(e=>({material_id:e.material_id,quantity:e.quantity}))}catch(e){v(e,`加载BOM`)}x.value=!0}function j(){D.value.push({material_id:a.materials[0]?.id||null,quantity:1})}function M(e){D.value.splice(e,1)}async function N(){if(!T.value.sku){S(`请输入SKU`,`warning`);return}if(!T.value.name){S(`请输入名称`,`warning`);return}try{w.value?(await C(`/api/products/${w.value.id}`,{method:`PUT`,body:JSON.stringify(T.value)}),T.value.item_type===`finished`&&D.value.length>0&&await C(`/api/products/${w.value.id}/materials`,{method:`PUT`,body:JSON.stringify({items:D.value})}),S(`成品更新成功`,`success`)):(await C(`/api/products`,{method:`POST`,body:JSON.stringify(T.value)}),S(`成品创建成功`,`success`)),x.value=!1,w.value=null,T.value={},D.value=[],h(),g()}catch(e){v(e,`保存成品`)}}async function P(e){if(confirm(`确定要删除这个成品吗?`))try{await C(`/api/products/${e}`,{method:`DELETE`}),S(`成品已删除`,`success`),h(),g()}catch(e){v(e,`删除成品`)}}function F(){x.value=!1,w.value=null,T.value={},D.value=[]}return i(()=>{h()}),(r,i)=>{let o=e(`el-button`),h=e(`el-table-column`),g=e(`el-table`),v=e(`el-empty`),S=e(`el-input`),C=e(`el-form-item`),I=e(`el-input-number`),L=e(`el-divider`),R=e(`el-option`),z=e(`el-select`),B=e(`el-form`),V=e(`el-dialog`),H=y(`loading`);return u(),m(`div`,null,[p(`div`,J,[n(o,{type:`primary`,onClick:k},{default:l(()=>[...i[8]||=[f(`新增成品`,-1)]]),_:1})]),d((u(),E(g,{data:s(a).finishedProducts,stripe:``},{default:l(()=>[n(h,{prop:`sku`,label:`SKU`}),n(h,{prop:`name`,label:`名称`}),n(h,{prop:`category`,label:`分类`},{default:l(({row:e})=>[f(t(e.category||`-`),1)]),_:1}),n(h,{prop:`unit`,label:`单位`}),n(h,{label:`成本价`},{default:l(({row:e})=>[f(t(s(c)(e.cost_price)),1)]),_:1}),n(h,{label:`销售价`},{default:l(({row:e})=>[f(t(s(c)(e.sale_price)),1)]),_:1}),n(h,{label:`基础物料成本`},{default:l(({row:e})=>[f(t(s(c)(e.material_cost||0)),1)]),_:1}),n(h,{label:`操作`,width:`180`},{default:l(({row:e})=>[n(o,{type:`primary`,size:`small`,onClick:t=>A(e)},{default:l(()=>[...i[9]||=[f(`编辑`,-1)]]),_:1},8,[`onClick`]),n(o,{type:`danger`,size:`small`,onClick:t=>P(e.id)},{default:l(()=>[...i[10]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[H,s(a).loading]]),!s(a).loading&&s(a).finishedProducts.length===0?(u(),E(v,{key:0,description:`暂无成品数据`})):O(``,!0),n(V,{modelValue:x.value,"onUpdate:modelValue":i[7]||=e=>x.value=e,title:(w.value?`编辑`:`新增`)+`成品`,width:`560px`,onClosed:F},{footer:l(()=>[n(o,{onClick:i[6]||=e=>x.value=!1},{default:l(()=>[...i[14]||=[f(`取消`,-1)]]),_:1}),n(o,{type:`primary`,onClick:N},{default:l(()=>[...i[15]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(B,{"label-width":`100px`},{default:l(()=>[n(C,{label:`类型`},{default:l(()=>[n(S,{"model-value":`成品(按单生产,不做库存)`,disabled:``})]),_:1}),n(C,{label:`SKU`,required:``},{default:l(()=>[n(S,{modelValue:T.value.sku,"onUpdate:modelValue":i[0]||=e=>T.value.sku=e,placeholder:`产品编码`},null,8,[`modelValue`])]),_:1}),n(C,{label:`名称`,required:``},{default:l(()=>[n(S,{modelValue:T.value.name,"onUpdate:modelValue":i[1]||=e=>T.value.name=e,placeholder:`产品名称`},null,8,[`modelValue`])]),_:1}),n(C,{label:`分类`},{default:l(()=>[n(S,{modelValue:T.value.category,"onUpdate:modelValue":i[2]||=e=>T.value.category=e,placeholder:`产品分类`},null,8,[`modelValue`])]),_:1}),n(C,{label:`单位`},{default:l(()=>[n(S,{modelValue:T.value.unit,"onUpdate:modelValue":i[3]||=e=>T.value.unit=e,placeholder:`件`},null,8,[`modelValue`])]),_:1}),n(C,{label:`成本价`},{default:l(()=>[n(I,{modelValue:T.value.cost_price,"onUpdate:modelValue":i[4]||=e=>T.value.cost_price=e,precision:2,min:0,step:.01,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),n(C,{label:`销售价`},{default:l(()=>[n(I,{modelValue:T.value.sale_price,"onUpdate:modelValue":i[5]||=e=>T.value.sale_price=e,precision:2,min:0,step:.01,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),n(C,{label:`说明`},{default:l(()=>[n(S,{"model-value":`成品不做库存,成本由下方BOM定义物料构成后自动计算`,disabled:``})]),_:1}),w.value?(u(),m(_,{key:0},[n(L,{"content-position":`left`},{default:l(()=>[...i[11]||=[f(`BOM物料配置`,-1)]]),_:1}),p(`div`,Y,[n(o,{type:`primary`,size:`small`,onClick:j,style:{"margin-bottom":`8px`}},{default:l(()=>[...i[12]||=[f(`+ 添加物料`,-1)]]),_:1}),n(g,{data:D.value,size:`small`,border:``},{default:l(()=>[n(h,{label:`物料`},{default:l(({row:e})=>[n(z,{modelValue:e.material_id,"onUpdate:modelValue":t=>e.material_id=t,placeholder:`选择物料`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).materials,e=>(u(),E(R,{key:e.id,label:`${e.sku} - ${e.name}`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(h,{label:`数量`,width:`120`},{default:l(({row:e})=>[n(I,{modelValue:e.quantity,"onUpdate:modelValue":t=>e.quantity=t,min:1e-4,step:1e-4,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(h,{label:`操作`,width:`80`},{default:l(({$index:e})=>[n(o,{type:`danger`,size:`small`,onClick:t=>M(e)},{default:l(()=>[...i[13]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])])],64)):O(``,!0)]),_:1})]),_:1},8,[`modelValue`,`title`])])}}}),Z={style:{"margin-bottom":`12px`,display:`flex`,gap:`8px`}},ee={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`12px`}},te={style:{"text-align":`right`,"margin-top":`8px`,"font-weight":`600`}},ne=D({__name:`MaterialsTab`,setup(r){let{state:a,formatCurrency:c,loadMaterials:h,loadSuppliers:x,loadPurchaseOrders:w}=B(),T=o(!1),D=o(null),k=o({}),A=o(!1),j=o([]),M=o(null);function N(){D.value=null,k.value={item_type:`material`,unit:`kg`,min_stock:0,max_stock:1e3,cost_price:0,sale_price:0,sku:``,name:``,category:``},T.value=!0}async function P(e){D.value=e,k.value={...e},T.value=!0}async function F(){if(!k.value.sku){S(`请输入SKU`,`warning`);return}if(!k.value.name){S(`请输入名称`,`warning`);return}try{D.value?(await C(`/api/products/${D.value.id}`,{method:`PUT`,body:JSON.stringify(k.value)}),S(`物料更新成功`,`success`)):(await C(`/api/products`,{method:`POST`,body:JSON.stringify(k.value)}),S(`物料创建成功`,`success`)),T.value=!1,D.value=null,k.value={},h()}catch(e){v(e,`保存物料`)}}async function I(e){if(confirm(`确定要删除这个物料吗?`))try{await C(`/api/products/${e}`,{method:`DELETE`}),S(`物料已删除`,`success`),h()}catch(e){v(e,`删除物料`)}}async function L(){await h(),await x(),j.value=[],A.value=!0}function R(){j.value.push({material_id:a.materials[0]?.id||null,quantity:1,unit_price:0,remark:``})}function z(e){j.value.splice(e,1)}let V=g(()=>j.value.reduce((e,t)=>e+(t.unit_price||0)*(t.quantity||0),0));async function H(){if(!j.value||j.value.length===0){S(`请至少添加一个补货物料`,`warning`);return}for(let[e,t]of j.value.entries()){let n=e+1;if(!t.material_id){S(`第 ${n} 行:请选择物料`,`warning`);return}if(!Number.isFinite(t.quantity)||t.quantity<=0){S(`第 ${n} 行:数量必须大于 0`,`warning`);return}if(!Number.isFinite(t.unit_price)||t.unit_price<0){S(`第 ${n} 行:单价必须大于等于 0`,`warning`);return}}try{let e={supplier_id:M.value||a.suppliers[0]?.id||null,expected_date:new Date().toISOString().split(`T`)[0],remark:`物料补货`,items:j.value.map(e=>({product_id:e.material_id,quantity:e.quantity,unit_price:e.unit_price,remark:e.remark}))};if(!e.supplier_id){S(`请先添加供应商`,`warning`);return}await C(`/api/purchase-orders`,{method:`POST`,body:JSON.stringify(e)}),S(`采购订单创建成功`,`success`),A.value=!1,j.value=[],w()}catch(e){v(e,`保存补货订单`)}}function U(){T.value=!1,D.value=null,k.value={}}function W(){A.value=!1,j.value=[]}return i(()=>{h()}),(r,i)=>{let o=e(`el-button`),h=e(`el-table-column`),g=e(`el-table`),v=e(`el-empty`),x=e(`el-input`),S=e(`el-form-item`),C=e(`el-input-number`),w=e(`el-form`),B=e(`el-dialog`),G=e(`el-option`),K=e(`el-select`),q=y(`loading`);return u(),m(`div`,null,[p(`div`,Z,[n(o,{type:`primary`,onClick:N},{default:l(()=>[...i[12]||=[f(`新增物料`,-1)]]),_:1}),n(o,{type:`success`,onClick:L},{default:l(()=>[...i[13]||=[f(`物料补货`,-1)]]),_:1})]),d((u(),E(g,{data:s(a).materials,stripe:``},{default:l(()=>[n(h,{prop:`sku`,label:`SKU`}),n(h,{prop:`name`,label:`名称`}),n(h,{prop:`category`,label:`分类`},{default:l(({row:e})=>[f(t(e.category||`-`),1)]),_:1}),n(h,{prop:`unit`,label:`单位`}),n(h,{label:`成本价`},{default:l(({row:e})=>[f(t(s(c)(e.cost_price)),1)]),_:1}),n(h,{prop:`min_stock`,label:`最低库存`},{default:l(({row:e})=>[f(t(e.min_stock??`-`),1)]),_:1}),n(h,{label:`操作`,width:`180`},{default:l(({row:e})=>[n(o,{type:`primary`,size:`small`,onClick:t=>P(e)},{default:l(()=>[...i[14]||=[f(`编辑`,-1)]]),_:1},8,[`onClick`]),n(o,{type:`danger`,size:`small`,onClick:t=>I(e.id)},{default:l(()=>[...i[15]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[q,s(a).loading]]),!s(a).loading&&s(a).materials.length===0?(u(),E(v,{key:0,description:`暂无物料数据`})):O(``,!0),n(B,{modelValue:T.value,"onUpdate:modelValue":i[8]||=e=>T.value=e,title:(D.value?`编辑`:`新增`)+`物料`,width:`560px`,onClosed:U},{footer:l(()=>[n(o,{onClick:i[7]||=e=>T.value=!1},{default:l(()=>[...i[16]||=[f(`取消`,-1)]]),_:1}),n(o,{type:`primary`,onClick:F},{default:l(()=>[...i[17]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(w,{"label-width":`100px`},{default:l(()=>[n(S,{label:`类型`},{default:l(()=>[n(x,{"model-value":`物料(纳入库存)`,disabled:``})]),_:1}),n(S,{label:`SKU`,required:``},{default:l(()=>[n(x,{modelValue:k.value.sku,"onUpdate:modelValue":i[0]||=e=>k.value.sku=e,placeholder:`产品编码`},null,8,[`modelValue`])]),_:1}),n(S,{label:`名称`,required:``},{default:l(()=>[n(x,{modelValue:k.value.name,"onUpdate:modelValue":i[1]||=e=>k.value.name=e,placeholder:`产品名称`},null,8,[`modelValue`])]),_:1}),n(S,{label:`分类`},{default:l(()=>[n(x,{modelValue:k.value.category,"onUpdate:modelValue":i[2]||=e=>k.value.category=e,placeholder:`产品分类`},null,8,[`modelValue`])]),_:1}),n(S,{label:`单位`},{default:l(()=>[n(x,{modelValue:k.value.unit,"onUpdate:modelValue":i[3]||=e=>k.value.unit=e,placeholder:`kg`},null,8,[`modelValue`])]),_:1}),n(S,{label:`成本价`},{default:l(()=>[n(C,{modelValue:k.value.cost_price,"onUpdate:modelValue":i[4]||=e=>k.value.cost_price=e,precision:2,min:0,step:.01,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),n(S,{label:`最低库存`},{default:l(()=>[n(C,{modelValue:k.value.min_stock,"onUpdate:modelValue":i[5]||=e=>k.value.min_stock=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),n(S,{label:`最高库存`},{default:l(()=>[n(C,{modelValue:k.value.max_stock,"onUpdate:modelValue":i[6]||=e=>k.value.max_stock=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`,`title`]),n(B,{modelValue:A.value,"onUpdate:modelValue":i[11]||=e=>A.value=e,title:`物料补货`,width:`900px`,onClosed:W},{footer:l(()=>[n(o,{onClick:i[10]||=e=>A.value=!1},{default:l(()=>[...i[21]||=[f(`取消`,-1)]]),_:1}),n(o,{type:`primary`,onClick:H},{default:l(()=>[...i[22]||=[f(`创建采购订单`,-1)]]),_:1})]),default:l(()=>[n(w,{"label-width":`100px`,style:{"margin-bottom":`16px`}},{default:l(()=>[n(S,{label:`供应商`},{default:l(()=>[n(K,{modelValue:M.value,"onUpdate:modelValue":i[9]||=e=>M.value=e,placeholder:`请选择供应商`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).suppliers,e=>(u(),E(G,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1})]),_:1}),p(`div`,ee,[i[19]||=p(`span`,{style:{"font-weight":`600`}},`补货物料明细`,-1),n(o,{type:`primary`,size:`small`,onClick:R},{default:l(()=>[...i[18]||=[f(`+ 添加物料`,-1)]]),_:1})]),n(g,{data:j.value,border:``,size:`small`},{default:l(()=>[n(h,{label:`物料`,"min-width":`200`},{default:l(({row:e})=>[n(K,{modelValue:e.material_id,"onUpdate:modelValue":t=>e.material_id=t,placeholder:`请选择物料`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).materials,e=>(u(),E(G,{key:e.id,label:`${e.sku} - ${e.name}`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(h,{label:`数量`,width:`120`},{default:l(({row:e})=>[n(C,{modelValue:e.quantity,"onUpdate:modelValue":t=>e.quantity=t,min:1,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(h,{label:`单价`,width:`120`},{default:l(({row:e})=>[n(C,{modelValue:e.unit_price,"onUpdate:modelValue":t=>e.unit_price=t,min:0,precision:2,step:.01,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(h,{label:`总价`,width:`120`},{default:l(({row:e})=>[f(t(s(c)((e.unit_price||0)*(e.quantity||0))),1)]),_:1}),n(h,{label:`备注`,width:`150`},{default:l(({row:e})=>[n(x,{modelValue:e.remark,"onUpdate:modelValue":t=>e.remark=t,size:`small`,placeholder:`备注`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(h,{label:`操作`,width:`80`},{default:l(({$index:e})=>[n(o,{type:`danger`,size:`small`,onClick:t=>z(e)},{default:l(()=>[...i[20]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),p(`div`,te,` 补货总金额:`+t(s(c)(V.value)),1)]),_:1},8,[`modelValue`])])}}}),Q={class:`inventory-tab`},re={class:`table-header`},ie=x(D({__name:`InventoryTab`,setup(t){let{state:r,loadInventory:c,ensureStockBaseData:h}=B(),g=o(!1),x=o(null),w=a({product_id:null,warehouse_id:null,quantity:0,locked_quantity:0,batch_no:``,location:``});function T(){h(),x.value=null,w.product_id=null,w.warehouse_id=null,w.quantity=0,w.locked_quantity=0,w.batch_no=``,w.location=``,g.value=!0}function D(e){h(),x.value=e,w.product_id=e.product_id??null,w.warehouse_id=e.warehouse_id??null,w.quantity=e.quantity??0,w.locked_quantity=e.locked_quantity??0,w.batch_no=e.batch_no??``,w.location=e.location??``,g.value=!0}async function O(){try{let e={product_id:w.product_id,warehouse_id:w.warehouse_id,quantity:w.quantity,locked_quantity:w.locked_quantity,batch_no:w.batch_no||null,location:w.location||null};x.value?(await C(`/api/inventory/${x.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),S(`物料库存更新成功`,`success`)):(await C(`/api/inventory`,{method:`POST`,body:JSON.stringify(e)}),S(`物料库存已创建`,`success`)),g.value=!1,c()}catch(e){v(e,`保存物料库存`)}}async function k(e){if(confirm(`确定要删除这个物料库存记录吗?`))try{await C(`/api/inventory/${e}`,{method:`DELETE`}),S(`物料库存已删除`,`success`),c()}catch(e){v(e,`删除物料库存`)}}return i(()=>{c()}),(t,i)=>{let a=e(`el-button`),o=e(`el-table-column`),c=e(`el-table`),h=e(`el-option`),v=e(`el-select`),S=e(`el-form-item`),C=e(`el-input-number`),A=e(`el-input`),j=e(`el-form`),M=e(`el-dialog`),N=y(`loading`);return u(),m(`div`,Q,[p(`div`,re,[n(a,{type:`primary`,onClick:T},{default:l(()=>[...i[8]||=[f(`+ 新增物料库存`,-1)]]),_:1})]),d((u(),E(c,{data:s(r).inventory,style:{width:`100%`},"empty-text":`暂无库存数据`},{default:l(()=>[n(o,{prop:`product_sku`,label:`SKU`}),n(o,{prop:`product_name`,label:`物料`}),n(o,{prop:`warehouse_name`,label:`仓库`}),n(o,{prop:`quantity`,label:`数量`}),n(o,{prop:`available_quantity`,label:`可用`}),n(o,{label:`操作`,width:`180`},{default:l(({row:e})=>[n(a,{size:`small`,onClick:t=>D(e)},{default:l(()=>[...i[9]||=[f(`编辑`,-1)]]),_:1},8,[`onClick`]),n(a,{size:`small`,type:`danger`,onClick:t=>k(e.id)},{default:l(()=>[...i[10]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[N,s(r).loading]]),n(M,{modelValue:g.value,"onUpdate:modelValue":i[7]||=e=>g.value=e,title:x.value?`编辑物料库存`:`新增物料库存`,width:`520px`,"close-on-click-modal":!1},{footer:l(()=>[n(a,{onClick:i[6]||=e=>g.value=!1},{default:l(()=>[...i[11]||=[f(`取消`,-1)]]),_:1}),n(a,{type:`primary`,onClick:O},{default:l(()=>[...i[12]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(j,{model:w,"label-width":`80px`},{default:l(()=>[n(S,{label:`物料`,required:``},{default:l(()=>[n(v,{modelValue:w.product_id,"onUpdate:modelValue":i[0]||=e=>w.product_id=e,placeholder:`请选择物料`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(r).materials,e=>(u(),E(h,{key:e.id,label:e.name+(e.sku?` (`+e.sku+`)`:``),value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),n(S,{label:`仓库`,required:``},{default:l(()=>[n(v,{modelValue:w.warehouse_id,"onUpdate:modelValue":i[1]||=e=>w.warehouse_id=e,placeholder:`请选择仓库`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(r).warehouses,e=>(u(),E(h,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),n(S,{label:`数量`,required:``},{default:l(()=>[n(C,{modelValue:w.quantity,"onUpdate:modelValue":i[2]||=e=>w.quantity=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),n(S,{label:`锁定数量`},{default:l(()=>[n(C,{modelValue:w.locked_quantity,"onUpdate:modelValue":i[3]||=e=>w.locked_quantity=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),n(S,{label:`批次号`},{default:l(()=>[n(A,{modelValue:w.batch_no,"onUpdate:modelValue":i[4]||=e=>w.batch_no=e,placeholder:`请输入批次号`},null,8,[`modelValue`])]),_:1}),n(S,{label:`库位`},{default:l(()=>[n(A,{modelValue:w.location,"onUpdate:modelValue":i[5]||=e=>w.location=e,placeholder:`请输入库位`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-ac629843`]]),ae={style:{"margin-bottom":`12px`,display:`flex`,gap:`12px`,"align-items":`center`}},oe={style:{display:`flex`,gap:`4px`}},se={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`12px`}},ce={style:{"text-align":`right`,"margin-top":`8px`,"font-weight":`600`}},$=D({__name:`PurchaseOrdersTab`,setup(r){let{state:a,formatCurrency:c,formatDateTime:h,formatDate:x,getPurchaseOrderStatusLabel:T,getReceiptStatusLabel:D,getPaymentStatusLabel:k,isPurchaseOrderLocked:A,loadPurchaseOrders:j,loadSuppliers:M,loadMaterials:N,loadInventory:P,loadMovements:F}=B(),I=o(!1),L=o(null),R=o({}),z=o([]),V=o(null),H=o(!1),U=o(null),W=o([]),G=o(null),K=o(``);function q(){L.value=null,R.value={supplier_id:null,expected_date:``,remark:``},z.value=[],I.value=!0}function J(){z.value.push({product_id:a.materials[0]?.id||null,quantity:1,remark:``})}function Y(e){z.value.splice(e,1)}let X=g(()=>z.value.reduce((e,t)=>e+(a.materials.find(e=>e.id===t.product_id)?.cost_price||0)*(t.quantity||0),0));async function Z(e){await N(),await M(),L.value=e,R.value={supplier_id:e.supplier_id||null,expected_date:e.expected_date||``,remark:e.remark||``};try{z.value=((await C(`/api/purchase-orders/${e.id}`)).items||[]).map(e=>({product_id:e.product_id,quantity:e.quantity,remark:e.remark||``}))}catch(e){v(e,`加载采购订单详情`)}I.value=!0}async function ee(){if(!R.value.supplier_id){S(`请选择供应商`,`warning`);return}if(!z.value||z.value.length===0){S(`请至少添加一个物料`,`warning`);return}for(let[e,t]of z.value.entries()){if(!t.product_id){S(`第 ${e+1} 行:请选择物料`,`warning`);return}if(!t.quantity||t.quantity<=0){S(`第 ${e+1} 行:数量必须大于 0`,`warning`);return}}try{let e={supplier_id:R.value.supplier_id,expected_date:R.value.expected_date||null,remark:R.value.remark||``,items:z.value.map(e=>({product_id:e.product_id,quantity:e.quantity,remark:e.remark}))};L.value?(await C(`/api/purchase-orders/${L.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),S(`采购订单更新成功`,`success`)):(await C(`/api/purchase-orders`,{method:`POST`,body:JSON.stringify(e)}),S(`采购订单创建成功`,`success`)),I.value=!1,L.value=null,R.value={},z.value=[],j()}catch(e){v(e,`保存采购订单`)}}async function te(e){try{await w.confirm(`确定要删除这个采购订单吗?`,`删除确认`,{confirmButtonText:`删除`,cancelButtonText:`取消`,type:`warning`})}catch{return}try{await C(`/api/purchase-orders/${e}`,{method:`DELETE`}),S(`采购订单已删除`,`success`),j()}catch(e){v(e,`删除采购订单`)}}async function ne(e){try{let t=await C(`/api/purchase-orders/${e.id}`);U.value=e,W.value=(t.items||[]).map(e=>({id:e.id,material_label:e.product_name||e.product_sku||``,quantity:e.quantity||0,received_quantity:e.received_quantity||0,remaining:(e.quantity||0)-(e.received_quantity||0),receive_quantity:0})),G.value=V.value||a.warehouses[0]?.id||null,K.value=``,H.value=!0}catch(e){v(e,`加载采购订单详情`)}}async function Q(){if(!G.value){S(`请选择入库仓库`,`warning`);return}let e=W.value.filter(e=>e.receive_quantity>0).map(e=>({item_id:e.id,receive_quantity:e.receive_quantity}));if(e.length===0){S(`请输入本次入库数量`,`warning`);return}try{await C(`/api/purchase-orders/${U.value.id}/receive`,{method:`POST`,body:JSON.stringify({warehouse_id:G.value,remark:K.value,items:e})}),S(`入库完成`,`success`),H.value=!1,U.value=null,W.value=[],j(),P(),F()}catch(e){v(e,`采购入库`)}}async function re(e,t){if(t!==`received`)try{await w.confirm(`该订单尚未全部收货,确定要提前付款吗?建议先完成收货后再付款。`,`非标准流程提醒`,{confirmButtonText:`仍要付款`,cancelButtonText:`取消`,type:`warning`})}catch{return}else try{await w.confirm(`确认已向供应商支付该订单款项?`,`付款确认`,{confirmButtonText:`确认付款`,cancelButtonText:`取消`,type:`success`})}catch{return}await $(e,`paid`,`已付款`)}async function ie(e){try{await w.confirm(`确定要作废该订单吗?此操作不可撤销。`,`作废确认`,{confirmButtonText:`确认作废`,cancelButtonText:`取消`,type:`error`})}catch{return}await $(e,`cancelled`,`已作废`)}async function $(e,t,n){try{await C(`/api/purchase-orders/${e}/status`,{method:`PATCH`,body:JSON.stringify({status:t})}),S(`订单已${n}`,`success`),j(),F(),P()}catch(e){v(e,`更新状态`)}}function le(){I.value=!1,L.value=null,R.value={},z.value=[]}function ue(){H.value=!1,U.value=null,W.value=[]}async function de(){await N(),await M(),await j()}return i(()=>{de()}),(r,i)=>{let o=e(`el-option`),g=e(`el-select`),v=e(`el-button`),S=e(`el-table-column`),C=e(`el-tag`),w=e(`el-table`),T=e(`el-empty`),M=e(`el-form-item`),N=e(`el-date-picker`),P=e(`el-input`),F=e(`el-form`),B=e(`el-input-number`),U=e(`el-dialog`),$=y(`loading`);return u(),m(`div`,null,[p(`div`,ae,[n(g,{modelValue:V.value,"onUpdate:modelValue":i[0]||=e=>V.value=e,placeholder:`选择仓库`,style:{width:`200px`},clearable:``},{default:l(()=>[(u(!0),m(_,null,b(s(a).warehouses,e=>(u(),E(o,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),n(v,{onClick:s(j)},{default:l(()=>[...i[10]||=[f(`刷新`,-1)]]),_:1},8,[`onClick`]),n(v,{type:`primary`,onClick:q},{default:l(()=>[...i[11]||=[f(`新增采购订单`,-1)]]),_:1})]),d((u(),E(w,{data:s(a).purchaseOrders,stripe:``},{default:l(()=>[n(S,{prop:`order_no`,label:`采购单`}),n(S,{prop:`supplier_name`,label:`供应商`}),n(S,{label:`状态`},{default:l(({row:e})=>[p(`div`,oe,[n(C,{type:e.receipt_status===`received`?`success`:e.receipt_status===`partial_received`?`warning`:e.receipt_status===`cancelled`?`danger`:`info`,size:`small`},{default:l(()=>[f(t(s(D)(e.receipt_status)),1)]),_:2},1032,[`type`]),n(C,{type:e.payment_status===`paid`?`success`:`info`,size:`small`},{default:l(()=>[f(t(s(k)(e.payment_status)),1)]),_:2},1032,[`type`])])]),_:1}),n(S,{label:`订单创建`},{default:l(({row:e})=>[f(t(s(h)(e.created_at)),1)]),_:1}),n(S,{label:`预计到货`},{default:l(({row:e})=>[f(t(s(x)(e.expected_date)),1)]),_:1}),n(S,{label:`实际到货`},{default:l(({row:e})=>[f(t(e.received_at?s(h)(e.received_at):`-`),1)]),_:1}),n(S,{label:`实际付款`},{default:l(({row:e})=>[f(t(e.paid_at?s(h)(e.paid_at):`-`),1)]),_:1}),n(S,{label:`总金额`},{default:l(({row:e})=>[f(t(s(c)(e.total_amount)),1)]),_:1}),n(S,{label:`已付款`},{default:l(({row:e})=>[f(t(s(c)(e.paid_amount||0)),1)]),_:1}),n(S,{label:`操作`,width:`280`},{default:l(({row:e})=>[n(v,{type:`primary`,size:`small`,disabled:s(A)(e.status),onClick:t=>Z(e)},{default:l(()=>[...i[12]||=[f(` 编辑 `,-1)]]),_:1},8,[`disabled`,`onClick`]),n(v,{type:`danger`,size:`small`,disabled:s(A)(e.status),onClick:t=>te(e.id)},{default:l(()=>[...i[13]||=[f(` 删除 `,-1)]]),_:1},8,[`disabled`,`onClick`]),e.receipt_status===`pending`||e.receipt_status===`partial_received`?(u(),E(v,{key:0,type:`success`,size:`small`,onClick:t=>ne(e)},{default:l(()=>[...i[14]||=[f(` 到货入库 `,-1)]]),_:1},8,[`onClick`])):O(``,!0),e.payment_status!==`paid`&&e.receipt_status!==`cancelled`?(u(),E(v,{key:1,type:`warning`,size:`small`,onClick:t=>re(e.id,e.receipt_status)},{default:l(()=>[...i[15]||=[f(` 标记已付款 `,-1)]]),_:1},8,[`onClick`])):O(``,!0),e.payment_status!==`paid`&&e.receipt_status!==`cancelled`?(u(),E(v,{key:2,type:`info`,size:`small`,onClick:t=>ie(e.id)},{default:l(()=>[...i[16]||=[f(` 作废 `,-1)]]),_:1},8,[`onClick`])):O(``,!0)]),_:1})]),_:1},8,[`data`])),[[$,s(a).loading]]),!s(a).loading&&s(a).purchaseOrders.length===0?(u(),E(T,{key:0,description:`暂无采购订单`})):O(``,!0),n(U,{modelValue:I.value,"onUpdate:modelValue":i[5]||=e=>I.value=e,title:(L.value?`编辑`:`新增`)+`采购订单`,width:`800px`,onClosed:le},{footer:l(()=>[n(v,{onClick:i[4]||=e=>I.value=!1},{default:l(()=>[...i[20]||=[f(`取消`,-1)]]),_:1}),n(v,{type:`primary`,onClick:ee},{default:l(()=>[...i[21]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(F,{"label-width":`100px`},{default:l(()=>[n(M,{label:`供应商`,required:``},{default:l(()=>[n(g,{modelValue:R.value.supplier_id,"onUpdate:modelValue":i[1]||=e=>R.value.supplier_id=e,placeholder:`请选择供应商`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).suppliers,e=>(u(),E(o,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),n(M,{label:`预计到货`},{default:l(()=>[n(N,{modelValue:R.value.expected_date,"onUpdate:modelValue":i[2]||=e=>R.value.expected_date=e,type:`date`,placeholder:`选择日期`,style:{width:`100%`},"value-format":`YYYY-MM-DD`},null,8,[`modelValue`])]),_:1}),n(M,{label:`备注`},{default:l(()=>[n(P,{modelValue:R.value.remark,"onUpdate:modelValue":i[3]||=e=>R.value.remark=e,placeholder:`备注信息`},null,8,[`modelValue`])]),_:1})]),_:1}),p(`div`,se,[i[18]||=p(`span`,{style:{"font-weight":`600`}},`物料明细`,-1),n(v,{type:`primary`,size:`small`,onClick:J},{default:l(()=>[...i[17]||=[f(`+ 添加物料`,-1)]]),_:1})]),n(w,{data:z.value,border:``,size:`small`},{default:l(()=>[n(S,{label:`物料`,"min-width":`200`},{default:l(({row:e})=>[n(g,{modelValue:e.product_id,"onUpdate:modelValue":t=>e.product_id=t,placeholder:`请选择物料`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).materials,e=>(u(),E(o,{key:e.id,label:`${e.sku} - ${e.name}`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`数量`,width:`120`},{default:l(({row:e})=>[n(B,{modelValue:e.quantity,"onUpdate:modelValue":t=>e.quantity=t,min:1e-4,step:1e-4,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`单价`,width:`120`},{default:l(({row:e})=>[n(B,{"model-value":s(a).materials.find(t=>t.id===e.product_id)?.cost_price||0,disabled:``,size:`small`,style:{width:`100%`}},null,8,[`model-value`])]),_:1}),n(S,{label:`总价`,width:`120`},{default:l(({row:e})=>[f(t(s(c)((s(a).materials.find(t=>t.id===e.product_id)?.cost_price||0)*(e.quantity||0))),1)]),_:1}),n(S,{label:`备注`,width:`150`},{default:l(({row:e})=>[n(P,{modelValue:e.remark,"onUpdate:modelValue":t=>e.remark=t,size:`small`,placeholder:`备注`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`操作`,width:`80`},{default:l(({$index:e})=>[n(v,{type:`danger`,size:`small`,onClick:t=>Y(e)},{default:l(()=>[...i[19]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),p(`div`,ce,` 订单总金额:`+t(s(c)(X.value)),1)]),_:1},8,[`modelValue`,`title`]),n(U,{modelValue:H.value,"onUpdate:modelValue":i[9]||=e=>H.value=e,title:`采购到货入库`,width:`700px`,onClosed:ue},{footer:l(()=>[n(v,{onClick:i[8]||=e=>H.value=!1},{default:l(()=>[...i[22]||=[f(`取消`,-1)]]),_:1}),n(v,{type:`primary`,onClick:Q},{default:l(()=>[...i[23]||=[f(`确认入库`,-1)]]),_:1})]),default:l(()=>[n(F,{"label-width":`100px`},{default:l(()=>[n(M,{label:`入库仓库`,required:``},{default:l(()=>[n(g,{modelValue:G.value,"onUpdate:modelValue":i[6]||=e=>G.value=e,placeholder:`请选择仓库`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).warehouses,e=>(u(),E(o,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),n(M,{label:`备注`},{default:l(()=>[n(P,{modelValue:K.value,"onUpdate:modelValue":i[7]||=e=>K.value=e,placeholder:`入库备注`},null,8,[`modelValue`])]),_:1})]),_:1}),n(w,{data:W.value,border:``,size:`small`},{default:l(()=>[n(S,{prop:`material_label`,label:`物料`}),n(S,{prop:`id`,label:`明细ID`,width:`80`}),n(S,{label:`剩余待入库`,width:`100`},{default:l(({row:e})=>[f(t(e.remaining),1)]),_:1}),n(S,{label:`本次入库`,width:`140`},{default:l(({row:e})=>[n(B,{modelValue:e.receive_quantity,"onUpdate:modelValue":t=>e.receive_quantity=t,min:0,max:e.remaining,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`,`max`])]),_:1})]),_:1},8,[`data`])]),_:1},8,[`modelValue`])])}}}),le={style:{"margin-bottom":`12px`,display:`flex`,gap:`12px`,"align-items":`center`}},ue={style:{display:`flex`,gap:`4px`}},de={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`12px`}},fe={style:{display:`flex`,gap:`8px`}},pe={key:1,style:{"padding-left":`8px`}},me={style:{"text-align":`right`,"margin-top":`8px`,"font-weight":`600`}},he={style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`,"margin-bottom":`12px`}},ge={style:{"text-align":`right`,"margin-top":`8px`,"font-weight":`600`}},_e=D({__name:`SalesOrdersTab`,setup(r){let{state:a,formatCurrency:c,formatDateTime:h,formatDate:x,getSalesOrderStatusLabel:T,getDeliveryStatusLabel:D,getPaymentStatusLabel:k,loadProductionOrders:A,loadFinishedProducts:j,loadCustomers:M,loadMaterials:N,loadInventory:P,loadMovements:F}=B(),I=o(!1),L=o(null),R=o({}),z=o([]),V=o(null),H=o(!1),U=o([]),W=o([]);function G(){L.value=null,R.value={customer_id:null,delivery_date:``,remark:``},z.value=[],W.value=[],I.value=!0}function K(){z.value.push({mold_mode:`new`,mold_sku:``,mold_name:``,mold_id:null,quantity:1,unit_price:0,remark:``})}function q(e){z.value.splice(e,1)}let J=g(()=>z.value.reduce((e,t)=>e+(t.unit_price||0)*(t.quantity||0),0));async function Y(e){await M(),await j(),await N();try{let t=await C(`/api/sales-orders/${e.id}`);L.value=e,R.value={customer_id:t.customer_id||e.customer_id||null,delivery_date:t.delivery_date||e.delivery_date||``,remark:t.remark||e.remark||``},z.value=(t.items||[]).map(e=>({mold_mode:e.mold_id?`existing`:`new`,mold_sku:e.sku||``,mold_name:e.name||``,mold_id:e.mold_id||null,quantity:e.quantity||1,unit_price:e.unit_price||0,remark:e.remark||``}));try{W.value=((await C(`/api/sales-orders/${e.id}/consume-materials`)).items||[]).map(e=>({material_id:e.material_id,material_name:e.material_name||e.material_sku||``,quantity:e.quantity,unit_price:e.unit_price||0,remark:e.remark||``}))}catch{W.value=[]}}catch(e){v(e,`加载销售订单详情`)}I.value=!0}async function X(){if(!R.value.customer_id){S(`请选择客户`,`warning`);return}if(!z.value||z.value.length===0){S(`请至少添加一个模具`,`warning`);return}try{let e={customer_id:R.value.customer_id,delivery_date:R.value.delivery_date||null,remark:R.value.remark||``,items:z.value.map(e=>({mold_mode:e.mold_mode,mold_sku:e.mold_sku||``,mold_name:e.mold_name||``,mold_id:e.mold_id||null,quantity:e.quantity,unit_price:e.unit_price||0,remark:e.remark||``}))};L.value?(await C(`/api/sales-orders/${L.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),S(`销售订单更新成功`,`success`)):(await C(`/api/sales-orders`,{method:`POST`,body:JSON.stringify(e)}),S(`销售订单创建成功`,`success`)),I.value=!1,L.value=null,R.value={},z.value=[],W.value=[],A(),j(),P(),F()}catch(e){v(e,`保存销售订单`)}}async function Z(e){try{await w.confirm(`确定要删除这个销售订单吗?`,`删除确认`,{confirmButtonText:`删除`,cancelButtonText:`取消`,type:`warning`})}catch{return}try{await C(`/api/sales-orders/${e}`,{method:`DELETE`}),S(`销售订单已删除`,`success`),A(),P(),F()}catch(e){v(e,`删除销售订单`)}}async function ee(e){try{await w.confirm(`确认该订单已交付?`,`交付确认`,{confirmButtonText:`确认交付`,cancelButtonText:`取消`,type:`success`})}catch{return}await Q(e,`delivered`,`已交付`)}async function te(e,t){if(t!==`delivered`)try{await w.confirm(`当前订单尚未交付,确定要提前收款吗?建议先确认交付后再收款。`,`非标准流程提醒`,{confirmButtonText:`仍要收款`,cancelButtonText:`取消`,type:`warning`})}catch{return}else try{await w.confirm(`确认已收到该订单款项?`,`收款确认`,{confirmButtonText:`确认收款`,cancelButtonText:`取消`,type:`success`})}catch{return}await Q(e,`paid`,`已收款`)}async function ne(e){try{await w.confirm(`确定要作废该订单吗?此操作不可撤销。`,`作废确认`,{confirmButtonText:`确认作废`,cancelButtonText:`取消`,type:`error`})}catch{return}await Q(e,`cancelled`,`已作废`)}async function Q(e,t,n){try{await C(`/api/sales-orders/${e}/status`,{method:`PATCH`,body:JSON.stringify({status:t})}),S(`订单已${n}`,`success`),A(),F()}catch(e){v(e,`更新状态`)}}function re(){U.value=[],H.value=!0}function ie(){U.value.push({material_id:a.materials[0]?.id||null,quantity:1,remark:``})}function ae(e){U.value.splice(e,1)}let oe=g(()=>U.value.reduce((e,t)=>e+(a.materials.find(e=>e.id===t.material_id)?.cost_price||0)*(t.quantity||0),0));async function se(){if(L.value){if(!U.value||U.value.length===0){S(`请至少添加一个消耗物料`,`warning`);return}try{let e={items:U.value.map(e=>({material_id:e.material_id,quantity:e.quantity,unit_price:a.materials.find(t=>t.id===e.material_id)?.cost_price||0,remark:e.remark||``}))};await C(`/api/sales-orders/${L.value.id}/consume-materials`,{method:`POST`,body:JSON.stringify(e)}),S(`物料消耗记录保存成功`,`success`),H.value=!1;try{W.value=((await C(`/api/sales-orders/${L.value.id}/consume-materials`)).items||[]).map(e=>({material_id:e.material_id,material_name:e.material_name||e.material_sku||``,quantity:e.quantity,unit_price:e.unit_price||0,remark:e.remark||``}))}catch{W.value=[]}P(),F()}catch(e){v(e,`保存物料消耗`)}}}function ce(){I.value=!1,L.value=null,R.value={},z.value=[],W.value=[]}function $(){H.value=!1,U.value=[]}async function _e(){await M(),await N(),await j(),await A()}return i(()=>{_e()}),(r,i)=>{let o=e(`el-option`),g=e(`el-select`),v=e(`el-button`),S=e(`el-table-column`),C=e(`el-tag`),w=e(`el-table`),T=e(`el-empty`),j=e(`el-form-item`),M=e(`el-date-picker`),N=e(`el-input`),P=e(`el-form`),F=e(`el-input-number`),B=e(`el-divider`),Q=e(`el-dialog`),_e=y(`loading`);return u(),m(`div`,null,[p(`div`,le,[n(g,{modelValue:V.value,"onUpdate:modelValue":i[0]||=e=>V.value=e,placeholder:`选择仓库`,style:{width:`200px`},clearable:``},{default:l(()=>[(u(!0),m(_,null,b(s(a).warehouses,e=>(u(),E(o,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`]),n(v,{onClick:s(A)},{default:l(()=>[...i[8]||=[f(`刷新`,-1)]]),_:1},8,[`onClick`]),n(v,{type:`primary`,onClick:G},{default:l(()=>[...i[9]||=[f(`新增销售订单`,-1)]]),_:1})]),d((u(),E(w,{data:s(a).productionOrders,stripe:``},{default:l(()=>[n(S,{prop:`order_no`,label:`销售单`}),n(S,{prop:`customer_name`,label:`客户`}),n(S,{label:`订单金额`},{default:l(({row:e})=>[f(t(s(c)(e.total_amount)),1)]),_:1}),n(S,{label:`交付日期`},{default:l(({row:e})=>[f(t(s(x)(e.delivery_date)),1)]),_:1}),n(S,{label:`订单创建`},{default:l(({row:e})=>[f(t(s(h)(e.created_at)),1)]),_:1}),n(S,{label:`实际交付`},{default:l(({row:e})=>[f(t(e.delivered_at?s(h)(e.delivered_at):`-`),1)]),_:1}),n(S,{label:`实际收款`},{default:l(({row:e})=>[f(t(e.paid_at?s(h)(e.paid_at):`-`),1)]),_:1}),n(S,{label:`订单状态`,width:`160`},{default:l(({row:e})=>[p(`div`,ue,[n(C,{type:e.delivery_status===`delivered`?`warning`:e.delivery_status===`cancelled`?`danger`:`info`,size:`small`},{default:l(()=>[f(t(s(D)(e.delivery_status)),1)]),_:2},1032,[`type`]),n(C,{type:e.payment_status===`paid`?`success`:`info`,size:`small`},{default:l(()=>[f(t(s(k)(e.payment_status)),1)]),_:2},1032,[`type`])])]),_:1}),n(S,{label:`操作`,width:`280`},{default:l(({row:e})=>[e.delivery_status===`manufacturing`?(u(),E(v,{key:0,type:`success`,size:`small`,onClick:t=>ee(e.id)},{default:l(()=>[...i[10]||=[f(`已交付`,-1)]]),_:1},8,[`onClick`])):O(``,!0),e.payment_status!==`paid`&&e.delivery_status!==`cancelled`?(u(),E(v,{key:1,type:`warning`,size:`small`,onClick:t=>te(e.id,e.delivery_status)},{default:l(()=>[...i[11]||=[f(`已收款`,-1)]]),_:1},8,[`onClick`])):O(``,!0),n(v,{type:`primary`,size:`small`,disabled:e.payment_status===`paid`||e.delivery_status===`cancelled`,onClick:t=>Y(e)},{default:l(()=>[...i[12]||=[f(`编辑`,-1)]]),_:1},8,[`disabled`,`onClick`]),n(v,{type:`danger`,size:`small`,onClick:t=>Z(e.id)},{default:l(()=>[...i[13]||=[f(`删除`,-1)]]),_:1},8,[`onClick`]),e.payment_status!==`paid`&&e.delivery_status!==`cancelled`?(u(),E(v,{key:2,type:`info`,size:`small`,onClick:t=>ne(e.id)},{default:l(()=>[...i[14]||=[f(`作废`,-1)]]),_:1},8,[`onClick`])):O(``,!0)]),_:1})]),_:1},8,[`data`])),[[_e,s(a).loading]]),!s(a).loading&&s(a).productionOrders.length===0?(u(),E(T,{key:0,description:`暂无销售订单`})):O(``,!0),n(Q,{modelValue:I.value,"onUpdate:modelValue":i[5]||=e=>I.value=e,title:(L.value?`编辑`:`新增`)+`销售订单`,width:`900px`,onClosed:ce},{footer:l(()=>[n(v,{onClick:i[4]||=e=>I.value=!1},{default:l(()=>[...i[20]||=[f(`取消`,-1)]]),_:1}),n(v,{type:`primary`,onClick:X},{default:l(()=>[...i[21]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(P,{"label-width":`100px`},{default:l(()=>[n(j,{label:`客户`,required:``},{default:l(()=>[n(g,{modelValue:R.value.customer_id,"onUpdate:modelValue":i[1]||=e=>R.value.customer_id=e,placeholder:`请选择客户`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).customers,e=>(u(),E(o,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),n(j,{label:`交付日期`},{default:l(()=>[n(M,{modelValue:R.value.delivery_date,"onUpdate:modelValue":i[2]||=e=>R.value.delivery_date=e,type:`date`,placeholder:`选择日期`,style:{width:`100%`},"value-format":`YYYY-MM-DD`},null,8,[`modelValue`])]),_:1}),n(j,{label:`备注`},{default:l(()=>[n(N,{modelValue:R.value.remark,"onUpdate:modelValue":i[3]||=e=>R.value.remark=e,placeholder:`备注信息`},null,8,[`modelValue`])]),_:1})]),_:1}),p(`div`,de,[i[17]||=p(`span`,{style:{"font-weight":`600`}},`模具明细`,-1),p(`div`,fe,[L.value?(u(),E(v,{key:0,type:`warning`,size:`small`,onClick:re},{default:l(()=>[...i[15]||=[f(`+ 消耗物料`,-1)]]),_:1})):O(``,!0),n(v,{type:`primary`,size:`small`,onClick:K},{default:l(()=>[...i[16]||=[f(`+ 添加模具`,-1)]]),_:1})])]),n(w,{data:z.value,border:``,size:`small`},{default:l(()=>[n(S,{label:`模式`,width:`80`},{default:l(({row:e})=>[n(g,{modelValue:e.mold_mode,"onUpdate:modelValue":t=>e.mold_mode=t,size:`small`,style:{width:`100%`}},{default:l(()=>[n(o,{label:`新模`,value:`new`}),n(o,{label:`改模`,value:`existing`})]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`模具SKU`,"min-width":`120`},{default:l(({row:e})=>[e.mold_mode===`new`?(u(),E(N,{key:0,modelValue:e.mold_sku,"onUpdate:modelValue":t=>e.mold_sku=t,size:`small`,placeholder:`模具SKU`},null,8,[`modelValue`,`onUpdate:modelValue`])):(u(),E(g,{key:1,modelValue:e.mold_id,"onUpdate:modelValue":t=>e.mold_id=t,placeholder:`选择模具`,size:`small`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).finishedProducts,e=>(u(),E(o,{key:e.id,label:`${e.sku} - ${e.name}`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`]))]),_:1}),n(S,{label:`模具名称`,"min-width":`120`},{default:l(({row:e})=>[e.mold_mode===`new`?(u(),E(N,{key:0,modelValue:e.mold_name,"onUpdate:modelValue":t=>e.mold_name=t,size:`small`,placeholder:`模具名称`},null,8,[`modelValue`,`onUpdate:modelValue`])):(u(),m(`span`,pe,t(s(a).finishedProducts.find(t=>t.id===e.mold_id)?.name||`-`),1))]),_:1}),n(S,{label:`数量`,width:`100`},{default:l(({row:e})=>[n(F,{modelValue:e.quantity,"onUpdate:modelValue":t=>e.quantity=t,min:1,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`单价`,width:`120`},{default:l(({row:e})=>[n(F,{modelValue:e.unit_price,"onUpdate:modelValue":t=>e.unit_price=t,min:0,precision:2,step:.01,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`备注`,width:`120`},{default:l(({row:e})=>[n(N,{modelValue:e.remark,"onUpdate:modelValue":t=>e.remark=t,size:`small`,placeholder:`备注`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`操作`,width:`80`},{default:l(({$index:e})=>[n(v,{type:`danger`,size:`small`,onClick:t=>q(e)},{default:l(()=>[...i[18]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),p(`div`,me,` 订单总金额:`+t(s(c)(J.value)),1),L.value&&W.value.length>0?(u(),m(_,{key:0},[n(B,{"content-position":`left`},{default:l(()=>[...i[19]||=[f(`已消耗物料`,-1)]]),_:1}),n(w,{data:W.value,border:``,size:`small`},{default:l(()=>[n(S,{label:`物料`},{default:l(({row:e})=>[f(t(e.material_name),1)]),_:1}),n(S,{label:`数量`},{default:l(({row:e})=>[f(t(e.quantity),1)]),_:1}),n(S,{label:`单价`},{default:l(({row:e})=>[f(t(s(c)(e.unit_price)),1)]),_:1}),n(S,{label:`备注`},{default:l(({row:e})=>[f(t(e.remark||`-`),1)]),_:1})]),_:1},8,[`data`])],64)):O(``,!0)]),_:1},8,[`modelValue`,`title`]),n(Q,{modelValue:H.value,"onUpdate:modelValue":i[7]||=e=>H.value=e,title:`物料消耗`,width:`800px`,onClosed:$},{footer:l(()=>[n(v,{onClick:i[6]||=e=>H.value=!1},{default:l(()=>[...i[25]||=[f(`取消`,-1)]]),_:1}),n(v,{type:`primary`,onClick:se},{default:l(()=>[...i[26]||=[f(`保存消耗`,-1)]]),_:1})]),default:l(()=>[p(`div`,he,[i[23]||=p(`span`,{style:{"font-weight":`600`}},`消耗物料明细`,-1),n(v,{type:`primary`,size:`small`,onClick:ie},{default:l(()=>[...i[22]||=[f(`+ 添加物料`,-1)]]),_:1})]),n(w,{data:U.value,border:``,size:`small`},{default:l(()=>[n(S,{label:`物料`,"min-width":`200`},{default:l(({row:e})=>[n(g,{modelValue:e.material_id,"onUpdate:modelValue":t=>e.material_id=t,placeholder:`请选择物料`,style:{width:`100%`}},{default:l(()=>[(u(!0),m(_,null,b(s(a).materials,e=>(u(),E(o,{key:e.id,label:`${e.sku} - ${e.name}`,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`数量`,width:`120`},{default:l(({row:e})=>[n(F,{modelValue:e.quantity,"onUpdate:modelValue":t=>e.quantity=t,min:1e-4,step:1e-4,size:`small`,style:{width:`100%`}},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`单价`,width:`120`},{default:l(({row:e})=>[n(F,{"model-value":s(a).materials.find(t=>t.id===e.material_id)?.cost_price||0,disabled:``,size:`small`,style:{width:`100%`}},null,8,[`model-value`])]),_:1}),n(S,{label:`总价`,width:`120`},{default:l(({row:e})=>[f(t(s(c)((s(a).materials.find(t=>t.id===e.material_id)?.cost_price||0)*(e.quantity||0))),1)]),_:1}),n(S,{label:`备注`,width:`150`},{default:l(({row:e})=>[n(N,{modelValue:e.remark,"onUpdate:modelValue":t=>e.remark=t,size:`small`,placeholder:`备注`},null,8,[`modelValue`,`onUpdate:modelValue`])]),_:1}),n(S,{label:`操作`,width:`80`},{default:l(({$index:e})=>[n(v,{type:`danger`,size:`small`,onClick:t=>ae(e)},{default:l(()=>[...i[24]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`]),p(`div`,ge,` 消耗总金额:`+t(s(c)(oe.value)),1)]),_:1},8,[`modelValue`])])}}}),ve={class:`suppliers-tab`},ye={class:`table-header`},be=x(D({__name:`SuppliersTab`,setup(r){let{state:c,loadSuppliers:h}=B(),g=o(!1),_=o(null),b=a({name:``,contact_person:``,phone:``,email:``,address:``});function x(){_.value=null,b.name=``,b.contact_person=``,b.phone=``,b.email=``,b.address=``,g.value=!0}function w(e){_.value=e,b.name=e.name??``,b.contact_person=e.contact_person??``,b.phone=e.phone??``,b.email=e.email??``,b.address=e.address??``,g.value=!0}async function T(){try{let e={name:b.name,contact_person:b.contact_person||null,phone:b.phone||null,email:b.email||null,address:b.address||null};_.value?(await C(`/api/suppliers/${_.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),S(`供应商更新成功`,`success`)):(await C(`/api/suppliers`,{method:`POST`,body:JSON.stringify(e)}),S(`供应商已创建`,`success`)),g.value=!1,h()}catch(e){v(e,`保存供应商`)}}async function D(e){if(confirm(`确定要删除这个供应商吗?`))try{await C(`/api/suppliers/${e}`,{method:`DELETE`}),S(`供应商已删除`,`success`),h()}catch(e){v(e,`删除供应商`)}}return i(()=>{h()}),(r,i)=>{let a=e(`el-button`),o=e(`el-table-column`),h=e(`el-table`),v=e(`el-input`),S=e(`el-form-item`),C=e(`el-form`),O=e(`el-dialog`),k=y(`loading`);return u(),m(`div`,ve,[p(`div`,ye,[n(a,{type:`primary`,onClick:x},{default:l(()=>[...i[7]||=[f(`+ 新增供应商`,-1)]]),_:1})]),d((u(),E(h,{data:s(c).suppliers,style:{width:`100%`},"empty-text":`暂无供应商数据`},{default:l(()=>[n(o,{prop:`code`,label:`编码`}),n(o,{prop:`name`,label:`名称`}),n(o,{prop:`contact_person`,label:`联系人`},{default:l(({row:e})=>[f(t(e.contact_person||`-`),1)]),_:1}),n(o,{prop:`phone`,label:`电话`},{default:l(({row:e})=>[f(t(e.phone||`-`),1)]),_:1}),n(o,{prop:`email`,label:`邮箱`},{default:l(({row:e})=>[f(t(e.email||`-`),1)]),_:1}),n(o,{label:`操作`,width:`180`},{default:l(({row:e})=>[n(a,{size:`small`,onClick:t=>w(e)},{default:l(()=>[...i[8]||=[f(`编辑`,-1)]]),_:1},8,[`onClick`]),n(a,{size:`small`,type:`danger`,onClick:t=>D(e.id)},{default:l(()=>[...i[9]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[k,s(c).loading]]),n(O,{modelValue:g.value,"onUpdate:modelValue":i[6]||=e=>g.value=e,title:_.value?`编辑供应商`:`新增供应商`,width:`520px`,"close-on-click-modal":!1},{footer:l(()=>[n(a,{onClick:i[5]||=e=>g.value=!1},{default:l(()=>[...i[10]||=[f(`取消`,-1)]]),_:1}),n(a,{type:`primary`,onClick:T},{default:l(()=>[...i[11]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(C,{model:b,"label-width":`80px`},{default:l(()=>[n(S,{label:`名称`,required:``},{default:l(()=>[n(v,{modelValue:b.name,"onUpdate:modelValue":i[0]||=e=>b.name=e,placeholder:`请输入供应商名称`},null,8,[`modelValue`])]),_:1}),n(S,{label:`联系人`},{default:l(()=>[n(v,{modelValue:b.contact_person,"onUpdate:modelValue":i[1]||=e=>b.contact_person=e,placeholder:`请输入联系人`},null,8,[`modelValue`])]),_:1}),n(S,{label:`电话`},{default:l(()=>[n(v,{modelValue:b.phone,"onUpdate:modelValue":i[2]||=e=>b.phone=e,placeholder:`请输入电话`},null,8,[`modelValue`])]),_:1}),n(S,{label:`邮箱`},{default:l(()=>[n(v,{modelValue:b.email,"onUpdate:modelValue":i[3]||=e=>b.email=e,type:`email`,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1}),n(S,{label:`地址`},{default:l(()=>[n(v,{modelValue:b.address,"onUpdate:modelValue":i[4]||=e=>b.address=e,placeholder:`请输入地址`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-9c9827fc`]]),xe={class:`customers-tab`},Se={class:`table-header`},Ce=x(D({__name:`CustomersTab`,setup(r){let{state:c,loadCustomers:h}=B(),g=o(!1),_=o(null),b=a({name:``,contact_person:``,phone:``,email:``,address:``});function x(){_.value=null,b.name=``,b.contact_person=``,b.phone=``,b.email=``,b.address=``,g.value=!0}function w(e){_.value=e,b.name=e.name??``,b.contact_person=e.contact_person??``,b.phone=e.phone??``,b.email=e.email??``,b.address=e.address??``,g.value=!0}async function T(){try{let e={name:b.name,contact_person:b.contact_person||null,phone:b.phone||null,email:b.email||null,address:b.address||null};_.value?(await C(`/api/customers/${_.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),S(`客户更新成功`,`success`)):(await C(`/api/customers`,{method:`POST`,body:JSON.stringify(e)}),S(`客户已创建`,`success`)),g.value=!1,h()}catch(e){v(e,`保存客户`)}}async function D(e){if(confirm(`确定要删除这个客户吗?`))try{await C(`/api/customers/${e}`,{method:`DELETE`}),S(`客户已删除`,`success`),h()}catch(e){v(e,`删除客户`)}}return i(()=>{h()}),(r,i)=>{let a=e(`el-button`),o=e(`el-table-column`),h=e(`el-table`),v=e(`el-input`),S=e(`el-form-item`),C=e(`el-form`),O=e(`el-dialog`),k=y(`loading`);return u(),m(`div`,xe,[p(`div`,Se,[n(a,{type:`primary`,onClick:x},{default:l(()=>[...i[7]||=[f(`+ 新增客户`,-1)]]),_:1})]),d((u(),E(h,{data:s(c).customers,style:{width:`100%`},"empty-text":`暂无客户数据`},{default:l(()=>[n(o,{prop:`code`,label:`编码`}),n(o,{prop:`name`,label:`名称`}),n(o,{prop:`contact_person`,label:`联系人`},{default:l(({row:e})=>[f(t(e.contact_person||`-`),1)]),_:1}),n(o,{prop:`phone`,label:`电话`},{default:l(({row:e})=>[f(t(e.phone||`-`),1)]),_:1}),n(o,{prop:`email`,label:`邮箱`},{default:l(({row:e})=>[f(t(e.email||`-`),1)]),_:1}),n(o,{label:`操作`,width:`180`},{default:l(({row:e})=>[n(a,{size:`small`,onClick:t=>w(e)},{default:l(()=>[...i[8]||=[f(`编辑`,-1)]]),_:1},8,[`onClick`]),n(a,{size:`small`,type:`danger`,onClick:t=>D(e.id)},{default:l(()=>[...i[9]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[k,s(c).loading]]),n(O,{modelValue:g.value,"onUpdate:modelValue":i[6]||=e=>g.value=e,title:_.value?`编辑客户`:`新增客户`,width:`520px`,"close-on-click-modal":!1},{footer:l(()=>[n(a,{onClick:i[5]||=e=>g.value=!1},{default:l(()=>[...i[10]||=[f(`取消`,-1)]]),_:1}),n(a,{type:`primary`,onClick:T},{default:l(()=>[...i[11]||=[f(`保存`,-1)]]),_:1})]),default:l(()=>[n(C,{model:b,"label-width":`80px`},{default:l(()=>[n(S,{label:`名称`,required:``},{default:l(()=>[n(v,{modelValue:b.name,"onUpdate:modelValue":i[0]||=e=>b.name=e,placeholder:`请输入客户名称`},null,8,[`modelValue`])]),_:1}),n(S,{label:`联系人`},{default:l(()=>[n(v,{modelValue:b.contact_person,"onUpdate:modelValue":i[1]||=e=>b.contact_person=e,placeholder:`请输入联系人`},null,8,[`modelValue`])]),_:1}),n(S,{label:`电话`},{default:l(()=>[n(v,{modelValue:b.phone,"onUpdate:modelValue":i[2]||=e=>b.phone=e,placeholder:`请输入电话`},null,8,[`modelValue`])]),_:1}),n(S,{label:`邮箱`},{default:l(()=>[n(v,{modelValue:b.email,"onUpdate:modelValue":i[3]||=e=>b.email=e,type:`email`,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1}),n(S,{label:`地址`},{default:l(()=>[n(v,{modelValue:b.address,"onUpdate:modelValue":i[4]||=e=>b.address=e,placeholder:`请输入地址`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-f6d9461f`]]),we={style:{"margin-bottom":`16px`,display:`flex`,gap:`12px`,"align-items":`center`,"flex-wrap":`wrap`}},Te={style:{"text-align":`center`}},Ee={style:{"font-size":`24px`,"font-weight":`700`,color:`#409eff`}},De={style:{"text-align":`center`}},Oe={style:{"font-size":`24px`,"font-weight":`700`,color:`#e6a23c`}},ke={style:{"text-align":`center`}},Ae={style:{"font-size":`24px`,"font-weight":`700`,color:`#67c23a`}},je={style:{"text-align":`center`}},Me={style:{"font-size":`24px`,"font-weight":`700`,color:`#f56c6c`}},Ne=D({__name:`FinanceTab`,setup(r){let{state:a,formatCurrency:c,formatDateTime:h,formatDate:v,loadFinance:x,refreshFinanceByPeriod:S}=B(),C=o(a.financePeriod.year),w=o(a.financePeriod.quarter),T=[{label:`全年`,value:``},{label:`Q1`,value:`1`},{label:`Q2`,value:`2`},{label:`Q3`,value:`3`},{label:`Q4`,value:`4`}],D=g(()=>w.value?`${C.value}年 Q${w.value}`:`${C.value}年 全年`);function k(){a.financePeriod.year=C.value,a.financePeriod.quarter=w.value,x()}i(()=>{k()});let A=g(()=>a.financeSummary?.total_receivable??0),j=g(()=>a.financeSummary?.total_payable??0),M=g(()=>a.financeSummary?.period_received??0),N=g(()=>a.financeSummary?.period_paid??0);function P(e){return e===`receipt`?`收款`:`付款`}function F(e){return e===`receipt`?`success`:`warning`}function I(e){return{confirmed:`已确认`,pending:`待确认`}[e]||e}return(r,i)=>{let o=e(`el-input-number`),h=e(`el-option`),g=e(`el-select`),x=e(`el-button`),S=e(`el-tag`),L=e(`el-card`),R=e(`el-col`),z=e(`el-row`),B=e(`el-table-column`),V=e(`el-table`),H=e(`el-empty`),U=y(`loading`);return u(),m(`div`,null,[p(`div`,we,[i[3]||=p(`span`,{style:{"font-weight":`600`}},`统计周期:`,-1),n(o,{modelValue:C.value,"onUpdate:modelValue":i[0]||=e=>C.value=e,min:2020,max:2099,style:{width:`120px`}},null,8,[`modelValue`]),i[4]||=p(`span`,null,`年`,-1),n(g,{modelValue:w.value,"onUpdate:modelValue":i[1]||=e=>w.value=e,placeholder:`选择季度`,style:{width:`120px`}},{default:l(()=>[(u(),m(_,null,b(T,e=>n(h,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`]),n(x,{type:`primary`,onClick:k},{default:l(()=>[...i[2]||=[f(`刷新统计`,-1)]]),_:1}),n(S,{type:`info`,size:`large`},{default:l(()=>[f(t(D.value),1)]),_:1})]),n(z,{gutter:16,style:{"margin-bottom":`16px`}},{default:l(()=>[n(R,{span:6},{default:l(()=>[n(L,{shadow:`hover`},{default:l(()=>[p(`div`,Te,[i[5]||=p(`div`,{style:{color:`#909399`,"font-size":`14px`,"margin-bottom":`8px`}},`应收总额`,-1),p(`div`,Ee,t(s(c)(A.value)),1)])]),_:1})]),_:1}),n(R,{span:6},{default:l(()=>[n(L,{shadow:`hover`},{default:l(()=>[p(`div`,De,[i[6]||=p(`div`,{style:{color:`#909399`,"font-size":`14px`,"margin-bottom":`8px`}},`应付总额`,-1),p(`div`,Oe,t(s(c)(j.value)),1)])]),_:1})]),_:1}),n(R,{span:6},{default:l(()=>[n(L,{shadow:`hover`},{default:l(()=>[p(`div`,ke,[i[7]||=p(`div`,{style:{color:`#909399`,"font-size":`14px`,"margin-bottom":`8px`}},`周期收款`,-1),p(`div`,Ae,t(s(c)(M.value)),1)])]),_:1})]),_:1}),n(R,{span:6},{default:l(()=>[n(L,{shadow:`hover`},{default:l(()=>[p(`div`,je,[i[8]||=p(`div`,{style:{color:`#909399`,"font-size":`14px`,"margin-bottom":`8px`}},`周期付款`,-1),p(`div`,Me,t(s(c)(N.value)),1)])]),_:1})]),_:1})]),_:1}),n(L,{style:{"margin-bottom":`16px`}},{header:l(()=>[...i[9]||=[p(`span`,{style:{"font-weight":`600`}},`客户账款(周期)`,-1)]]),default:l(()=>[d((u(),E(V,{data:s(a).customerFinanceStatement,stripe:``,size:`small`},{default:l(()=>[n(B,{prop:`partner_name`,label:`客户`}),n(B,{prop:`order_count`,label:`订单数`}),n(B,{prop:`transaction_count`,label:`流水数`}),n(B,{label:`订单金额`},{default:l(({row:e})=>[f(t(s(c)(e.order_amount)),1)]),_:1}),n(B,{label:`订单已收`},{default:l(({row:e})=>[f(t(s(c)(e.order_received)),1)]),_:1}),n(B,{label:`实收流水`},{default:l(({row:e})=>[f(t(s(c)(e.transaction_received)),1)]),_:1}),n(B,{label:`应收余额`},{default:l(({row:e})=>[f(t(s(c)(e.receivable_balance)),1)]),_:1})]),_:1},8,[`data`])),[[U,s(a).loading]]),!s(a).loading&&s(a).customerFinanceStatement.length===0?(u(),E(H,{key:0,description:`暂无数据`})):O(``,!0)]),_:1}),n(L,{style:{"margin-bottom":`16px`}},{header:l(()=>[...i[10]||=[p(`span`,{style:{"font-weight":`600`}},`供应商账款(周期)`,-1)]]),default:l(()=>[d((u(),E(V,{data:s(a).supplierFinanceStatement,stripe:``,size:`small`},{default:l(()=>[n(B,{prop:`partner_name`,label:`供应商`}),n(B,{prop:`order_count`,label:`订单数`}),n(B,{prop:`transaction_count`,label:`流水数`}),n(B,{label:`订单金额`},{default:l(({row:e})=>[f(t(s(c)(e.order_amount)),1)]),_:1}),n(B,{label:`订单已付`},{default:l(({row:e})=>[f(t(s(c)(e.order_paid)),1)]),_:1}),n(B,{label:`实付流水`},{default:l(({row:e})=>[f(t(s(c)(e.transaction_paid)),1)]),_:1}),n(B,{label:`应付余额`},{default:l(({row:e})=>[f(t(s(c)(e.payable_balance)),1)]),_:1})]),_:1},8,[`data`])),[[U,s(a).loading]]),!s(a).loading&&s(a).supplierFinanceStatement.length===0?(u(),E(H,{key:0,description:`暂无数据`})):O(``,!0)]),_:1}),n(L,{style:{"margin-bottom":`16px`}},{header:l(()=>[...i[11]||=[p(`span`,{style:{"font-weight":`600`}},`客户-商品追溯(周期)`,-1)]]),default:l(()=>[d((u(),E(V,{data:s(a).customerProductStatement,stripe:``,size:`small`},{default:l(()=>[n(B,{prop:`partner_name`,label:`客户`}),n(B,{prop:`product_sku`,label:`SKU`}),n(B,{prop:`product_name`,label:`商品`}),n(B,{prop:`order_count`,label:`订单数`}),n(B,{prop:`quantity`,label:`数量`}),n(B,{label:`订单金额`},{default:l(({row:e})=>[f(t(s(c)(e.order_amount)),1)]),_:1}),n(B,{label:`已结款`},{default:l(({row:e})=>[f(t(s(c)(e.settled_amount)),1)]),_:1}),n(B,{label:`未结款`},{default:l(({row:e})=>[f(t(s(c)(e.unsettled_amount)),1)]),_:1})]),_:1},8,[`data`])),[[U,s(a).loading]]),!s(a).loading&&s(a).customerProductStatement.length===0?(u(),E(H,{key:0,description:`暂无数据`})):O(``,!0)]),_:1}),n(L,{style:{"margin-bottom":`16px`}},{header:l(()=>[...i[12]||=[p(`span`,{style:{"font-weight":`600`}},`供应商-商品追溯(周期)`,-1)]]),default:l(()=>[d((u(),E(V,{data:s(a).supplierProductStatement,stripe:``,size:`small`},{default:l(()=>[n(B,{prop:`partner_name`,label:`供应商`}),n(B,{prop:`product_sku`,label:`SKU`}),n(B,{prop:`product_name`,label:`商品`}),n(B,{prop:`order_count`,label:`订单数`}),n(B,{prop:`quantity`,label:`数量`}),n(B,{label:`订单金额`},{default:l(({row:e})=>[f(t(s(c)(e.order_amount)),1)]),_:1}),n(B,{label:`已结款`},{default:l(({row:e})=>[f(t(s(c)(e.settled_amount)),1)]),_:1}),n(B,{label:`未结款`},{default:l(({row:e})=>[f(t(s(c)(e.unsettled_amount)),1)]),_:1})]),_:1},8,[`data`])),[[U,s(a).loading]]),!s(a).loading&&s(a).supplierProductStatement.length===0?(u(),E(H,{key:0,description:`暂无数据`})):O(``,!0)]),_:1}),n(L,null,{header:l(()=>[...i[13]||=[p(`span`,{style:{"font-weight":`600`}},`最近财务流水`,-1)]]),default:l(()=>[d((u(),E(V,{data:s(a).financeTransactions,stripe:``,size:`small`},{default:l(()=>[n(B,{prop:`order_no`,label:`单号`}),n(B,{label:`类型`},{default:l(({row:e})=>[n(S,{type:F(e.type),size:`small`},{default:l(()=>[f(t(P(e.type)),1)]),_:2},1032,[`type`])]),_:1}),n(B,{prop:`partner_name`,label:`往来方`}),n(B,{label:`金额`},{default:l(({row:e})=>[f(t(s(c)(e.amount)),1)]),_:1}),n(B,{label:`状态`},{default:l(({row:e})=>[n(S,{type:e.status===`confirmed`?`success`:`warning`,size:`small`},{default:l(()=>[f(t(I(e.status)),1)]),_:2},1032,[`type`])]),_:1}),n(B,{label:`日期`},{default:l(({row:e})=>[f(t(s(v)(e.transaction_date)),1)]),_:1})]),_:1},8,[`data`])),[[U,s(a).loading]]),!s(a).loading&&s(a).financeTransactions.length===0?(u(),E(H,{key:0,description:`暂无数据`})):O(``,!0)]),_:1})])}}}),Pe={class:`movements-tab`},Fe=x(D({__name:`MovementsTab`,setup(r){let{state:a,loadMovements:o,getMovementTypeLabel:c,getMovementBadgeClass:p,formatDateTime:h}=B(),g=e=>{let t=p(e);return t===`badge-success`?`success`:t===`badge-error`?`danger`:t===`badge-warning`?`warning`:`info`};return i(()=>{o()}),(r,i)=>{let o=e(`el-table-column`),p=e(`el-tag`),_=e(`el-table`),v=y(`loading`);return u(),m(`div`,Pe,[d((u(),E(_,{data:s(a).movements,style:{width:`100%`},"empty-text":`暂无库存变动记录`},{default:l(()=>[n(o,{label:`物料`},{default:l(({row:e})=>[f(t(e.product_name)+t(e.product_sku?` (`+e.product_sku+`)`:``),1)]),_:1}),n(o,{label:`类型`,width:`140`},{default:l(({row:e})=>[n(p,{type:g(e.movement_type),size:`small`},{default:l(()=>[f(t(s(c)(e.movement_type)),1)]),_:2},1032,[`type`])]),_:1}),n(o,{prop:`quantity`,label:`数量`,width:`80`}),n(o,{prop:`before_quantity`,label:`变动前`,width:`80`}),n(o,{prop:`after_quantity`,label:`变动后`,width:`80`}),n(o,{label:`时间`,width:`180`},{default:l(({row:e})=>[f(t(s(h)(e.created_at)),1)]),_:1})]),_:1},8,[`data`])),[[v,s(a).loading]])])}}}),[[`__scopeId`,`data-v-d9f61c89`]]),Ie={class:`page-container`},Le={class:`inventory-layout`},Re={class:`inventory-sidebar-wrapper`},ze={class:`inventory-content`},Be={class:`inventory-content-header`},Ve={class:`inventory-breadcrumb`},He={class:`current`},Ue=x(D({__name:`InventoryView`,setup(a){let o=h(),c=T(),{state:l,activeMenu:f,checkBackendHealth:g,loadDashboard:_,destroyPickers:v}=B();return i(()=>{if(!o.user){c.push(`/login`);return}g().then(()=>{if(!l.backendDbReady){S(l.backendDbMessage||`业务服务不可用`,`warning`);return}_()})}),r(()=>{v()}),(r,i)=>{let a=e(`el-alert`),o=y(`loading`);return u(),m(`div`,Ie,[i[1]||=p(`div`,{class:`page-header`},[p(`h1`,null,`进销存管理`),p(`p`,null,`库存、采购、销售管理`)],-1),p(`div`,Le,[p(`aside`,Re,[n(H)]),p(`section`,ze,[p(`div`,Be,[p(`div`,Ve,[p(`span`,null,t(s(f)?.group?.title||`进销存`),1),i[0]||=p(`span`,{class:`sep`},`/`,-1),p(`span`,He,t(s(f)?.item?.label||``),1)])]),s(l).backendDbReady?O(``,!0):(u(),E(a,{key:0,title:s(l).backendDbMessage,type:`warning`,"show-icon":``,closable:!1,style:{"margin-bottom":`16px`}},null,8,[`title`])),d((u(),m(`div`,null,[s(l).activeTab===`dashboard`?(u(),E(q,{key:0})):s(l).activeTab===`products`?(u(),E(X,{key:1})):s(l).activeTab===`materials`?(u(),E(ne,{key:2})):s(l).activeTab===`inventory`?(u(),E(ie,{key:3})):s(l).activeTab===`purchases`?(u(),E($,{key:4})):s(l).activeTab===`sales_orders`?(u(),E(_e,{key:5})):s(l).activeTab===`suppliers`?(u(),E(be,{key:6})):s(l).activeTab===`customers`?(u(),E(Ce,{key:7})):s(l).activeTab===`finance`?(u(),E(Ne,{key:8})):s(l).activeTab===`movements`?(u(),E(Fe,{key:9})):O(``,!0)])),[[o,s(l).loading]])])])])}}}),[[`__scopeId`,`data-v-c02cf723`]]);export{Ue as default}; |