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