Files
geMoldInsight/static/assets/InventoryView-CtU3XJ5c.js
T
2026-06-10 13:44:05 +08:00

1 line
72 KiB
JavaScript

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