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