1 line
69 KiB
JavaScript
1 line
69 KiB
JavaScript
import{A as e,C as t,D as n,E as r,M as i,O as a,P as o,S as s,T as c,_ as l,b as u,c as ee,d,f,g as te,h as p,j as m,k as ne,l as re,m as h,n as g,o as _,p as ie,r as v,s as ae,t as y,v as b,w as oe,x,y as S}from"./index-B1sOGpZZ.js";import{a as se,n as C,r as w,t as T}from"./utils-COFIQvWo.js";var ce={class:`page-container`},le={class:`inventory-layout`},ue={class:`inventory-sidebar`},de={class:`inventory-menu`},fe=[`onClick`],pe={class:`inventory-menu-caret`},me={class:`inventory-menu-items`},he=[`onClick`],ge={class:`inventory-content`},_e={class:`inventory-content-header`},ve={class:`inventory-content-title`},ye={class:`inventory-breadcrumb`},be={class:`inventory-breadcrumb-current`},xe={key:0,class:`inline-alert inline-alert-warning`},Se={class:`inline-alert-message`},Ce={key:1,class:`loading-state`},we={key:2},Te={key:0,class:`dashboard-grid`},Ee={class:`stat-card`},De={class:`stat-content`},Oe={class:`stat-value`},ke={class:`stat-card`},Ae={class:`stat-content`},je={class:`stat-value`},Me={class:`stat-card`},Ne={class:`stat-content`},Pe={class:`stat-value`},Fe={class:`stat-card`},Ie={class:`stat-content`},Le={class:`stat-value`},Re={class:`stat-card`},ze={class:`stat-content`},Be={class:`stat-value`},Ve={class:`stat-card`},He={class:`stat-content`},Ue={class:`stat-value`},We={key:1},Ge={class:`table-header`},Ke={class:`table-container`},qe={class:`data-table`},Je={class:`action-btns`},Ye=[`onClick`],Xe=[`onClick`],Ze={key:2},Qe={class:`table-header`},$e={class:`table-container`},et={class:`data-table`},tt={class:`action-btns`},nt=[`onClick`],rt=[`onClick`],it={key:3},at={class:`table-header`},ot={class:`table-container`},st={class:`data-table`},ct={class:`action-btns`},lt=[`onClick`],ut=[`onClick`],dt={key:4},ft={class:`table-header mb-12`},pt={class:`table-container mb-16`},mt={class:`flex-row-center`},ht=[`value`],gt={class:`table-container`},_t={class:`data-table`},vt={class:`action-btns`},yt=[`onClick`,`disabled`],bt=[`onClick`,`disabled`],xt=[`onClick`],St=[`onClick`],Ct={key:5},wt={class:`table-header`},Tt={class:`table-container`},Et={class:`data-table`},Dt={class:`action-btns`},Ot=[`onClick`],kt=[`onClick`],At={key:6},jt={class:`table-header`},Mt={class:`table-container`},Nt={class:`data-table`},Pt={class:`action-btns`},Ft=[`onClick`],It=[`onClick`],Lt={key:7},Rt={class:`table-header mb-12`},zt={class:`table-container mb-16`},Bt={class:`flex-row-center`},Vt=[`value`],Ht={class:`table-container`},Ut={class:`data-table`},Wt={class:`action-btns`},Gt={class:`dropdown`},Kt={class:`dropdown-menu`},qt=[`onClick`],Jt=[`onClick`],Yt=[`onClick`,`disabled`],Xt=[`onClick`],Zt={key:8},Qt={class:`table-container mb-16`},$t={class:`flex-row-center`},en={class:`text-secondary`},tn={class:`dashboard-grid`},nn={class:`stat-card`},rn={class:`stat-content`},an={class:`stat-value`},on={class:`stat-card`},sn={class:`stat-content`},cn={class:`stat-value`},ln={class:`stat-card`},un={class:`stat-content`},dn={class:`stat-value`},fn={class:`stat-card`},pn={class:`stat-content`},mn={class:`stat-value`},hn={class:`table-container mt-16`},gn={class:`data-table`},_n={class:`table-container mt-16`},vn={class:`data-table`},yn={class:`table-container mt-16`},bn={class:`data-table`},xn={class:`table-container mt-16`},Sn={class:`data-table`},Cn={class:`table-container mt-16`},wn={class:`data-table`},Tn={key:9,class:`table-container`},En={class:`data-table`},Dn={class:`modal-content`},On={class:`modal-header`},kn={class:`modal-body`},An={class:`form-group`},jn=[`value`],Mn={class:`form-group`},Nn={class:`form-group`},Pn={class:`form-group`},Fn={class:`form-group`},In={class:`form-group`},Ln={class:`form-group`},Rn={key:0,class:`form-group`},zn={key:1,class:`form-group`},Bn={key:2,class:`bom-section`},Vn={class:`form-group`},Hn={class:`table-container`},Un={class:`data-table`},Wn=[`onUpdate:modelValue`],Gn=[`value`],Kn=[`onUpdate:modelValue`],qn=[`onClick`],Jn={class:`form-group`},Yn=[`value`],Xn={class:`form-group`},Zn={class:`form-group`},Qn={key:0,class:`empty-state`},$n={key:1,class:`sales-order-items`},er={class:`sales-order-item-header`},tr=[`onClick`],nr=[`onClick`],rr={class:`sales-order-item-content`},ir={key:0},ar={class:`form-group`},or=[`onUpdate:modelValue`],sr={class:`form-group`},cr=[`onUpdate:modelValue`],lr={key:1},ur={class:`form-group`},dr=[`onUpdate:modelValue`],fr=[`value`],pr={class:`sales-order-item-row`},mr={class:`sales-order-item-column`},hr={class:`form-group`},gr=[`onUpdate:modelValue`],_r={class:`sales-order-item-column`},vr={class:`form-group`},yr=[`onUpdate:modelValue`],br={class:`sales-order-item-column`},xr={class:`form-group`},Sr=[`onUpdate:modelValue`],Cr={class:`sales-order-item-actions`},wr=[`onClick`],Tr={class:`form-group form-group-spaced`},Er={key:0,class:`material-consumption-list`},Dr={class:`material-consumption-item`},Or={class:`material-consumption-item`},kr={class:`material-consumption-item`},Ar={class:`material-consumption-item`},jr={class:`material-consumption-total`},Mr={class:`material-consumption-item`},Nr={key:1,class:`empty-state`},Pr={class:`form-group`},Fr=[`value`],Ir={class:`form-group`},Lr={class:`form-group`},Rr={key:0,class:`empty-state`},zr={key:1,class:`purchase-order-items`},Br={class:`purchase-order-item-content`},Vr={class:`form-group`},Hr=[`onUpdate:modelValue`],Ur=[`value`],Wr={class:`purchase-order-item-row`},Gr={class:`purchase-order-item-column`},Kr={class:`form-group`},qr=[`onUpdate:modelValue`],Jr={class:`purchase-order-item-column`},Yr={class:`form-group`},Xr={class:`info-display`},Zr={class:`purchase-order-item-column`},Qr={class:`form-group`},$r={class:`info-display`},ei={class:`purchase-order-item-column`},ti={class:`form-group`},ni=[`onUpdate:modelValue`],ri={class:`purchase-order-item-actions`},ii=[`onClick`],ai={class:`form-group`},oi=[`value`],si={class:`form-group`},ci={class:`table-container`},li={class:`data-table`},ui=[`onUpdate:modelValue`,`max`],di={class:`form-group`},fi={class:`form-group`},pi={class:`form-group`},mi={class:`form-group`},hi={class:`form-group`},gi={class:`form-group`},_i={class:`form-group`},vi={class:`form-group`},yi={class:`form-group`},bi={class:`form-group`},xi={class:`form-group`},Si={key:0,value:null,disabled:``},Ci=[`value`],wi={class:`form-group`},Ti={key:0,value:null,disabled:``},Ei=[`value`],Di={class:`form-group`},Oi={class:`form-group`},ki={class:`form-group`},Ai={class:`form-group`},ji={class:`modal-footer`},Mi=[`disabled`],Ni={class:`modal-content`},Pi={class:`modal-header`},Fi={class:`modal-body`},Ii={key:0,class:`empty-state`},Li={key:1,class:`purchase-order-items`},Ri={class:`purchase-order-item-content`},zi={class:`form-group`},Bi=[`onUpdate:modelValue`],Vi=[`value`],Hi={class:`purchase-order-item-row`},Ui={class:`purchase-order-item-column`},Wi={class:`form-group`},Gi=[`onUpdate:modelValue`],Ki={class:`purchase-order-item-column`},qi={class:`form-group`},Ji={class:`info-display`},Yi={class:`purchase-order-item-column`},Xi={class:`form-group`},Zi={class:`info-display`},Qi={class:`purchase-order-item-column`},$i={class:`form-group`},ea=[`onUpdate:modelValue`],ta={class:`purchase-order-item-actions`},na=[`onClick`],ra={class:`modal-footer`},ia={class:`modal-content restock-modal`},aa={class:`modal-header`},oa={class:`modal-body`},sa={class:`form-section`},ca={key:0,class:`empty-state`},la={key:1,class:`purchase-order-items`},ua={class:`purchase-order-item-row`},da={class:`purchase-order-item-column restock-col-material`},fa={class:`form-group`},pa=[`onUpdate:modelValue`],ma=[`value`],ha={class:`purchase-order-item-column`},ga={class:`form-group`},_a=[`onUpdate:modelValue`],va={class:`purchase-order-item-column`},ya={class:`form-group`},ba=[`onUpdate:modelValue`],xa={class:`purchase-order-item-column`},Sa={class:`form-group`},Ca={class:`info-display`},wa={class:`purchase-order-item-column`},Ta={class:`form-group`},Ea=[`onUpdate:modelValue`],Da={class:`purchase-order-item-actions`},Oa=[`onClick`],ka={class:`modal-footer`},E=y(s({__name:`InventoryView`,setup(s){let y=ae(),E=re();ee();let D=e(null),O=e(null),k=e(null),A=e(null),j=ne({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:{}}),Aa=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},M=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())}`},ja=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},N=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},Ma=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)},P=null,F=null,I=()=>{P&&=(P.destroy(),null),F&&=(F.destroy(),null)},Na=()=>{if(I(),typeof AirDatepicker==`function`){if(j.modalType===`salesOrder`&&D.value){P=new AirDatepicker(D.value,{timepicker:!1,autoClose:!0,zIndex:2005,dateFormat:`yyyy-MM-dd`,onSelect:({formattedDate:e})=>{j.form.delivery_date=e||``,j.form.delivery_date_native=N(e||``)}});let e=Aa(j.form.delivery_date);e&&P.selectDate(e,{silent:!0})}if(j.modalType===`purchaseOrder`&&O.value){F=new AirDatepicker(O.value,{timepicker:!1,autoClose:!0,zIndex:2005,dateFormat:`yyyy-MM-dd`,onSelect:({formattedDate:e})=>{j.form.expected_date=e||``,j.form.expected_date_native=N(e||``)}});let e=Aa(j.form.expected_date);e&&F.selectDate(e,{silent:!0})}}},L=e=>{if(e===`delivery`&&P){P.show();return}if(e===`expected`&&F){F.show();return}let t=e===`delivery`?k.value:A.value;if(t){if(typeof t.showPicker==`function`){t.showPicker();return}t.focus(),t.click()}},Pa=e=>({in:`其他入库`,out:`其他出库`,adjust:`库存调整`,purchase_in:`采购入库`,return_from_production:`生产退料入库`,outsource_return:`外协回库`,finish_in:`完工入库`,issue_to_production:`生产领料出库`,outsource_send:`外协发料出库`,shipment_out:`销售出库`,scrap_out:`报废出库`})[e]||e,Fa=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`,Ia=e=>({draft:`已下单`,pending:`已下单`,received:`已收货`,paid:`已付款`})[e]||e,R=e=>[`received`,`paid`].includes(e),z=async()=>{j.loading=!0;try{j.dashboard=await _(`/api/dashboard`)}catch(e){v(e,`加载仪表盘`)}finally{j.loading=!1}},B=async()=>{j.loading=!0;try{j.finishedProducts=await _(`/api/products?item_type=finished&limit=100`)}catch(e){v(e,`加载成品`)}finally{j.loading=!1}},V=async()=>{await B()},H=async()=>{j.loading=!0;try{j.materials=await _(`/api/products?item_type=material&limit=100`)}catch(e){v(e,`加载物料`)}finally{j.loading=!1}},U=async()=>{j.loading=!0;try{j.warehouses=await _(`/api/warehouses`)}catch(e){v(e,`加载仓库`)}finally{j.loading=!1}},La=async()=>{if(j.materials.length||await H(),j.warehouses.length||await U(),!j.warehouses.length)try{await _(`/api/warehouses`,{method:`POST`,body:JSON.stringify({name:`默认仓库`})}),await U(),g(`已自动创建默认仓库`,`success`)}catch(e){v(e,`自动创建默认仓库`)}},W=async()=>{j.loading=!0;try{j.suppliers=await _(`/api/suppliers`)}catch(e){v(e,`加载供应商`)}finally{j.loading=!1}},G=async()=>{j.loading=!0;try{let[e,t]=await Promise.all([_(`/api/sales-orders?limit=100`),_(`/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){v(e,`加载按单生产数据`)}finally{j.loading=!1}},K=async()=>{j.loading=!0;try{let[e,t]=await Promise.all([_(`/api/purchase-orders?limit=100`),_(`/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){v(e,`加载采购订单`)}finally{j.loading=!1}},q=async()=>{j.loading=!0;try{j.customers=await _(`/api/customers`)}catch(e){v(e,`加载客户`)}finally{j.loading=!1}},J=async()=>{j.loading=!0;try{j.inventory=(await _(`/api/inventory`))?.items||[]}catch(e){v(e,`加载库存`)}finally{j.loading=!1}},Y=async()=>{j.loading=!0;try{j.movements=(await _(`/api/stock-movements`))?.items||[]}catch(e){v(e,`加载变动记录`)}finally{j.loading=!1}},Ra=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([_(`/api/finance/summary?${n}`),_(`/api/finance/transactions?status=confirmed&limit=20&${n}`),_(`/api/finance/receivables?limit=20&${n}`),_(`/api/finance/payables?limit=20&${n}`),_(`/api/finance/partner-statement/customer?${n}`),_(`/api/finance/partner-statement/supplier?${n}`),_(`/api/finance/partner-product-statement/customer?${n}`),_(`/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){v(e,`加载财务数据`)}finally{j.loading=!1}},za=()=>{j.activeTab===`finance`&&Ra()},Ba=e=>{if(j.activeTab=e,j.backendDbReady)switch(e){case`dashboard`:z();break;case`sales_orders`:G();break;case`products`:B();break;case`materials`:H();break;case`purchases`:K();break;case`inventory`:J();break;case`customers`:q();break;case`suppliers`:W();break;case`finance`:Ra();break;case`movements`:Y();break}},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=ne(Object.fromEntries(X.map(e=>[e.key,!0]))),Va=e=>{Z[e]=!Z[e]},Ha=te(()=>{for(let e of X){let t=e.items.find(e=>e.key===j.activeTab);if(t)return{group:e,item:t}}return null}),Ua=e=>{Ba(e)},Wa=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=`无法连接后端服务`}},Ga=e=>{j.modalType=`product`,j.editingItem=null,j.form={item_type:e,unit:e===`material`?`kg`:`件`,min_stock:0,max_stock:1e3,cost_price:0,sale_price:0},j.showModal=!0},Q=async(e,n=null)=>{if(j.modalType=e,j.editingItem=n,n)if(e===`salesOrder`){if(n.status===`paid`){g(`已收款的销售订单禁止修改`,`warning`),j.modalType=``,j.editingItem=null;return}await q(),await B();let e=await _(`/api/sales-orders/${n.id}`);j.consumedMaterials=(await _(`/api/stock-movements?reference_type=sales_order&reference_id=${n.id}&movement_type=consumption`)||[]).map(e=>({material_name:e.product_name||e.product_sku||`未知物料`,quantity:Math.abs(e.quantity),unit_price:e.unit_price||0,amount:e.total_amount||0})),j.form={customer_id:e.customer_id,delivery_date:M(e.delivery_date),delivery_date_native:N(M(e.delivery_date)),remark:e.remark||``,items:(e.items||[]).map(e=>({mode:e.product_id?`existing`:`new`,product_id:e.product_id,product_sku:``,product_name:``,quantity:e.quantity,unit_price:e.unit_price,remark:e.remark||``}))}}else if(e===`purchaseOrder`){await W(),await H();let e=await _(`/api/purchase-orders/${n.id}`);j.form={supplier_id:e.supplier_id,expected_date:M(e.expected_date),expected_date_native:N(M(e.expected_date)),remark:e.remark||``,items:(e.items||[]).map(e=>({product_id:e.product_id,quantity:e.quantity,remark:e.remark||``}))}}else e===`purchaseReceive`?(await U(),j.purchaseReceiveItems=((await _(`/api/purchase-orders/${n.id}`)).items||[]).map(e=>({item_id:e.id,material_label:`${e.product_sku||e.product_id} - ${e.product_name||``}`.trim(),remaining_quantity:Math.max((e.quantity||0)-(e.received_quantity||0),0),receive_quantity:Math.max((e.quantity||0)-(e.received_quantity||0),0)})).filter(e=>e.remaining_quantity>0),j.form={warehouse_id:j.purchaseWarehouseId||j.warehouses.find(e=>e.is_default)?.id||j.warehouses[0]?.id||null,remark:``}):e===`product`?(j.form={...n},n.item_type===`finished`&&(await H(),j.productBomItems=((await _(`/api/products/${n.id}/materials`)).items||[]).map(e=>({material_id:e.material_id,quantity:e.quantity})))):j.form={...n};else j.form={},e===`inventoryItem`&&(await La(),j.form={product_id:j.materials[0]?.id||null,warehouse_id:j.warehouses.find(e=>e.is_default)?.id||j.warehouses[0]?.id||null,quantity:0,locked_quantity:0,batch_number:``,location:``}),e===`salesOrder`&&(j.form={customer_id:null,delivery_date:``,delivery_date_native:``,remark:``,items:[]}),e===`purchaseOrder`&&(j.form={supplier_id:null,expected_date:``,expected_date_native:``,remark:``,items:[]}),e===`product`&&(j.form={item_type:`finished`,unit:`件`,min_stock:0,max_stock:1e3,cost_price:0,sale_price:0}),e===`salesOrder`&&(await q(),await B(),j.form={customer_id:j.customers[0]?.id||null,delivery_date:``,remark:``,items:[{mode:`new`,product_id:null,product_sku:``,product_name:``,quantity:1,unit_price:0,remark:``}]}),e===`purchaseOrder`&&(await W(),await H(),j.form={supplier_id:j.suppliers[0]?.id||null,expected_date:``,remark:``,items:[{product_id:j.materials[0]?.id||null,quantity:1,remark:``}]});j.showModal=!0,t(()=>{Na()})},Ka=async()=>{if(j.modalType!==`salesOrder`){g(`请先打开销售订单编辑页面`,`warning`);return}await H(),await U(),j.materialConsumptionItems=[],j.showMaterialConsumptionModal=!0},qa=()=>{j.materialConsumptionItems.push({material_id:j.materials[0]?.id||null,quantity:1,remark:``})},Ja=e=>{j.materialConsumptionItems.splice(e,1)},Ya=async()=>{if(j.modalType!==`salesOrder`){g(`请先打开销售订单编辑页面`,`warning`);return}if(!j.editingItem){j.showMaterialConsumptionModal=!1,await mo();return}for(let[e,t]of j.materialConsumptionItems.entries()){let n=e+1;if(!t.material_id){g(`第 ${n} 行:请选择物料`,`warning`);return}if(!Number.isFinite(t.quantity)||t.quantity<=0){g(`第 ${n} 行:数量必须大于 0`,`warning`);return}}try{await _(`/api/sales-orders/${j.editingItem.id}/consume-materials`,{method:`POST`,body:JSON.stringify({items:j.materialConsumptionItems.map(e=>({material_id:e.material_id,quantity:e.quantity,remark:e.remark}))})}),g(`物料消耗记录保存成功`,`success`),j.showMaterialConsumptionModal=!1;let e=await _(`/api/sales-orders/${j.editingItem.id}`);j.form={...j.form,actual_material_cost:e.actual_material_cost},j.consumedMaterials=(await _(`/api/stock-movements?reference_type=sales_order&reference_id=${j.editingItem.id}&movement_type=consumption`)||[]).map(e=>({material_name:e.product_name||e.product_sku||`未知物料`,quantity:Math.abs(e.quantity),unit_price:e.unit_price||0,amount:e.total_amount||0}))}catch(e){v(e,`保存物料消耗`)}},Xa=async()=>{await H(),await W(),j.restockItems=[],j.showRestockModal=!0},Za=()=>{j.restockItems.push({material_id:j.materials[0]?.id||null,quantity:1,unit_price:0,remark:``})},Qa=e=>{j.restockItems.splice(e,1)},$a=async()=>{if(!j.restockItems||j.restockItems.length===0){g(`请至少添加一个补货物料`,`warning`);return}for(let[e,t]of j.restockItems.entries()){let n=e+1;if(!t.material_id){g(`第 ${n} 行:请选择物料`,`warning`);return}if(!Number.isFinite(t.quantity)||t.quantity<=0){g(`第 ${n} 行:数量必须大于 0`,`warning`);return}if(!Number.isFinite(t.unit_price)||t.unit_price<0){g(`第 ${n} 行:单价必须大于等于 0`,`warning`);return}}try{let e={supplier_id:j.suppliers[0]?.id||null,expected_date:new Date().toISOString().split(`T`)[0],remark:`物料补货`,items:j.restockItems.map(e=>({product_id:e.material_id,quantity:e.quantity,remark:e.remark}))};await _(`/api/purchase-orders`,{method:`POST`,body:JSON.stringify(e)}),g(`采购订单创建成功`,`success`),j.showRestockModal=!1,j.restockItems=[],K()}catch(e){v(e,`保存补货订单`)}},$=()=>{j.showModal=!1,j.modalType=``,j.editingItem=null,j.productBomItems=[],j.purchaseReceiveItems=[],j.form={},I()},eo=async()=>{try{j.editingItem?(await _(`/api/products/${j.editingItem.id}`,{method:`PUT`,body:JSON.stringify(j.form)}),j.form.item_type===`finished`&&j.productBomItems.length>0&&await _(`/api/products/${j.editingItem.id}/materials`,{method:`PUT`,body:JSON.stringify({items:j.productBomItems})}),g(`产品更新成功`,`success`)):(await _(`/api/products`,{method:`POST`,body:JSON.stringify(j.form)}),g(`产品创建成功`,`success`)),$(),V(),H()}catch(e){v(e,`保存产品`)}},to=async e=>{if(confirm(`确定要删除这个产品吗?`))try{await _(`/api/products/${e}`,{method:`DELETE`}),g(`产品已删除`,`success`),V(),H()}catch(e){v(e,`删除产品`)}},no=()=>{j.productBomItems.push({material_id:j.materials[0]?.id||null,quantity:1})},ro=e=>{j.productBomItems.splice(e,1)},io=async()=>{try{j.editingItem?(await _(`/api/suppliers/${j.editingItem.id}`,{method:`PUT`,body:JSON.stringify(j.form)}),g(`供应商更新成功`,`success`)):(await _(`/api/suppliers`,{method:`POST`,body:JSON.stringify(j.form)}),g(`供应商创建成功`,`success`)),$(),W()}catch(e){v(e,`保存供应商`)}},ao=async e=>{if(confirm(`确定要删除这个供应商吗?`))try{await _(`/api/suppliers/${e}`,{method:`DELETE`}),g(`供应商已删除`,`success`),W()}catch(e){v(e,`删除供应商`)}},oo=async()=>{try{j.editingItem?(await _(`/api/customers/${j.editingItem.id}`,{method:`PUT`,body:JSON.stringify(j.form)}),g(`客户更新成功`,`success`)):(await _(`/api/customers`,{method:`POST`,body:JSON.stringify(j.form)}),g(`客户创建成功`,`success`)),$(),q()}catch(e){v(e,`保存客户`)}},so=async e=>{if(confirm(`确定要删除这个客户吗?`))try{await _(`/api/customers/${e}`,{method:`DELETE`}),g(`客户已删除`,`success`),q()}catch(e){v(e,`删除客户`)}},co=async()=>{try{j.editingItem?(await _(`/api/inventory/${j.editingItem.id}`,{method:`PUT`,body:JSON.stringify({quantity:j.form.quantity,locked_quantity:j.form.locked_quantity,batch_number:j.form.batch_number,location:j.form.location})}),g(`物料库存更新成功`,`success`)):(await _(`/api/inventory`,{method:`POST`,body:JSON.stringify(j.form)}),g(`物料库存创建成功`,`success`)),$(),J()}catch(e){v(e,`保存物料库存`)}},lo=async e=>{if(confirm(`确定要删除这个物料库存记录吗?`))try{await _(`/api/inventory/${e}`,{method:`DELETE`}),g(`物料库存已删除`,`success`),J()}catch(e){v(e,`删除物料库存`)}},uo=()=>{j.form.items=j.form.items||[],j.form.items.push({mode:`new`,product_id:null,product_sku:``,product_name:``,quantity:1,unit_price:0,remark:``})},fo=(e,t)=>{e.mode=t,t===`new`?(e.product_id=null,e.product_sku=``,e.product_name=``):(e.product_sku=``,e.product_name=``,e.product_id||=j.finishedProducts[0]?.id||null)},po=e=>{j.form.items.splice(e,1)},mo=async()=>{try{if(!j.form.customer_id){g(`请选择客户`,`warning`);return}if(!j.form.items||!j.form.items.length){g(`请至少添加一个成品明细`,`warning`);return}for(let[e,t]of j.form.items.entries()){let n=e+1;if(t.mode===`existing`){if(!t.product_id){g(`第 ${n} 行:请选择模具`,`warning`);return}}else{if(!t.product_sku||!String(t.product_sku).trim()){g(`第 ${n} 行:请输入模具SKU`,`warning`);return}if(!t.product_name||!String(t.product_name).trim()){g(`第 ${n} 行:请输入模具名称`,`warning`);return}}if(!Number.isFinite(t.quantity)||t.quantity<=0){g(`第 ${n} 行:数量必须大于 0`,`warning`);return}if(!Number.isFinite(t.unit_price)||t.unit_price<0){g(`第 ${n} 行:单价必须大于等于 0`,`warning`);return}}let e={customer_id:j.form.customer_id,delivery_date:ja(j.form.delivery_date),remark:j.form.remark,items:j.form.items.map(e=>({product_id:e.mode===`existing`&&e.product_id||null,product_sku:e.mode===`existing`?null:e.product_sku||null,product_name:e.mode===`existing`?null:e.product_name||null,product_category:null,product_unit:`件`,quantity:e.quantity,unit_price:e.unit_price,remark:e.remark||``}))},t;if(j.editingItem){let n=await _(`/api/sales-orders/${j.editingItem.id}`,{method:`PUT`,body:JSON.stringify(e)});t=j.editingItem.id,g(n.production_status===`bom_missing`?`订单已保存,但成品未配置BOM,未扣减物料`:`销售订单更新成功并已自动扣减物料`,n.production_status===`bom_missing`?`warning`:`success`)}else{let n=await _(`/api/sales-orders`,{method:`POST`,body:JSON.stringify(e)});t=n.id,g(n.production_status===`bom_missing`?`订单已创建,但成品未配置BOM,未扣减物料`:`销售订单创建成功并已自动扣减物料`,n.production_status===`bom_missing`?`warning`:`success`)}if(j.materialConsumptionItems&&j.materialConsumptionItems.length>0)try{await _(`/api/sales-orders/${t}/consume-materials`,{method:`POST`,body:JSON.stringify({items:j.materialConsumptionItems.map(e=>({material_id:e.material_id,quantity:e.quantity,remark:e.remark}))})}),g(`物料消耗记录保存成功`,`success`),j.materialConsumptionItems=[]}catch(e){v(e,`保存物料消耗`)}$(),G(),B(),J(),Y()}catch(e){v(e,`保存销售订单`)}},ho=async(e,t)=>{try{await _(`/api/sales-orders/${e.id}/status`,{method:`PATCH`,body:JSON.stringify({status:t})}),g(`订单状态已更新`,`success`),G()}catch(e){v(e,`更新订单状态`)}},go=async(e,t)=>{try{await _(`/api/purchase-orders/${e.id}/status`,{method:`PATCH`,body:JSON.stringify({status:t})}),g(`采购订单状态已更新`,`success`),K()}catch(e){v(e,`更新采购订单状态`)}},_o=async e=>{if(confirm(`确定删除这个销售订单吗?系统会自动回补已扣减物料。`))try{await _(`/api/sales-orders/${e}`,{method:`DELETE`}),g(`销售订单已删除并回补物料`,`success`),j.productionPlan?.sales_order_id===e&&(j.productionPlan=null),G(),J(),Y()}catch(e){v(e,`删除销售订单`)}},vo=()=>{j.form.items=j.form.items||[],j.form.items.push({product_id:j.materials[0]?.id||null,quantity:1,remark:``})},yo=e=>{j.form.items.splice(e,1)},bo=async()=>{try{if(!j.form.supplier_id){g(`请选择供应商`,`warning`);return}if(!j.form.items||!j.form.items.length){g(`请至少添加一个物料明细`,`warning`);return}for(let[e,t]of j.form.items.entries()){let n=e+1;if(!t.product_id){g(`第 ${n} 行:请选择物料`,`warning`);return}if(!Number.isFinite(t.quantity)||t.quantity<=0){g(`第 ${n} 行:数量必须大于 0`,`warning`);return}}let e={supplier_id:j.form.supplier_id,expected_date:ja(j.form.expected_date),remark:j.form.remark,items:j.form.items.map(e=>({product_id:e.product_id,quantity:e.quantity,remark:e.remark}))};j.editingItem?(await _(`/api/purchase-orders/${j.editingItem.id}`,{method:`PUT`,body:JSON.stringify(e)}),g(`采购订单更新成功`,`success`)):(await _(`/api/purchase-orders`,{method:`POST`,body:JSON.stringify(e)}),g(`采购订单创建成功`,`success`)),$(),K()}catch(e){v(e,`保存采购订单`)}},xo=async e=>{if(confirm(`确定删除这个采购订单吗?`))try{await _(`/api/purchase-orders/${e}`,{method:`DELETE`}),g(`采购订单已删除`,`success`),K()}catch(e){v(e,`删除采购订单`)}},So=async()=>{try{if(!j.editingItem?.id)return;let e=(j.purchaseReceiveItems||[]).filter(e=>Number(e.receive_quantity)>0).map(e=>({item_id:e.item_id,receive_quantity:Number(e.receive_quantity)}));if(!e.length){g(`请填写本次入库数量`,`warning`);return}await _(`/api/purchase-orders/${j.editingItem.id}/receive`,{method:`POST`,body:JSON.stringify({warehouse_id:j.form.warehouse_id||j.purchaseWarehouseId,items:e,remark:j.form.remark||``})}),g(`采购到货入库成功`,`success`),$(),K(),J(),Y()}catch(e){v(e,`采购到货入库`)}};return oe(()=>{if(!y.user){E.push(`/login`);return}Wa().then(()=>{if(!j.backendDbReady){g(j.backendDbMessage||`业务服务不可用`,`warning`);return}z()})}),c(()=>{I()}),(e,t)=>(r(),S(`div`,ce,[t[183]||=l(`div`,{class:`page-header`},[l(`h1`,null,`进销存管理`),l(`p`,null,`库存、采购、销售管理`)],-1),l(`div`,le,[l(`aside`,ue,[l(`div`,de,[(r(),S(p,null,n(X,e=>l(`div`,{key:e.key,class:`inventory-menu-group`},[l(`button`,{type:`button`,class:`inventory-menu-title`,onClick:t=>Va(e.key)},[l(`span`,null,o(e.title),1),l(`span`,pe,o(Z[e.key]?`▾`:`▸`),1)],8,fe),a(l(`div`,me,[(r(!0),S(p,null,n(e.items,t=>(r(),S(`button`,{key:e.key+`-`+t.key,type:`button`,class:i([`inventory-menu-item`,{active:j.activeTab===t.key}]),onClick:e=>Ua(t.key)},o(t.label),11,he))),128))],512),[[ie,Z[e.key]]])])),64))])]),l(`section`,ge,[l(`div`,_e,[l(`div`,ve,[l(`span`,ye,o(Ha.value?.group?.title||`进销存`),1),t[55]||=l(`span`,{class:`inventory-breadcrumb-sep`},`/`,-1),l(`span`,be,o(Ha.value?.item?.label||``),1)])]),j.backendDbReady?b(``,!0):(r(),S(`div`,xe,[t[56]||=l(`div`,{class:`inline-alert-title`},`提示`,-1),l(`div`,Se,o(j.backendDbMessage),1)])),j.loading?(r(),S(`div`,Ce,[...t[57]||=[l(`div`,{class:`spinner`},null,-1),l(`span`,null,`加载中...`,-1)]])):(r(),S(`div`,we,[j.activeTab===`dashboard`?(r(),S(`div`,Te,[l(`div`,Ee,[t[59]||=l(`div`,{class:`stat-icon`},`📦`,-1),l(`div`,De,[l(`div`,Oe,o(j.dashboard?.product_count||0),1),t[58]||=l(`div`,{class:`stat-label`},`成品数量`,-1)])]),l(`div`,ke,[t[61]||=l(`div`,{class:`stat-icon`},`📊`,-1),l(`div`,Ae,[l(`div`,je,o(j.dashboard?.total_stock||0),1),t[60]||=l(`div`,{class:`stat-label`},`物料库存总量`,-1)])]),l(`div`,Me,[t[63]||=l(`div`,{class:`stat-icon`},`💰`,-1),l(`div`,Ne,[l(`div`,Pe,o(m(T)(j.dashboard?.total_value||0)),1),t[62]||=l(`div`,{class:`stat-label`},`库存价值`,-1)])]),l(`div`,Fe,[t[65]||=l(`div`,{class:`stat-icon`},`🏭`,-1),l(`div`,Ie,[l(`div`,Le,o(j.dashboard?.supplier_count||0),1),t[64]||=l(`div`,{class:`stat-label`},`供应商`,-1)])]),l(`div`,Re,[t[67]||=l(`div`,{class:`stat-icon`},`👥`,-1),l(`div`,ze,[l(`div`,Be,o(j.dashboard?.customer_count||0),1),t[66]||=l(`div`,{class:`stat-label`},`客户`,-1)])]),l(`div`,Ve,[t[69]||=l(`div`,{class:`stat-icon`},`🏪`,-1),l(`div`,He,[l(`div`,Ue,o(j.dashboard?.warehouse_count||0),1),t[68]||=l(`div`,{class:`stat-label`},`仓库`,-1)])])])):j.activeTab===`products`?(r(),S(`div`,We,[l(`div`,Ge,[l(`button`,{class:`btn btn-primary`,onClick:t[0]||=e=>Ga(`finished`)},`+ 新增成品`)]),l(`div`,Ke,[l(`table`,qe,[t[70]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`SKU`),l(`th`,null,`名称`),l(`th`,null,`分类`),l(`th`,null,`单位`),l(`th`,null,`成本价`),l(`th`,null,`销售价`),l(`th`,null,`基础物料成本`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.finishedProducts,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.sku),1),l(`td`,null,o(e.name),1),l(`td`,null,o(e.category||`-`),1),l(`td`,null,o(e.unit),1),l(`td`,null,o(m(T)(e.cost_price)),1),l(`td`,null,o(m(T)(e.sale_price)),1),l(`td`,null,o(m(T)(e.material_cost||0)),1),l(`td`,null,[l(`div`,Je,[l(`button`,{class:`btn btn-sm btn-secondary`,onClick:t=>Q(`product`,e)},`编辑`,8,Ye),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>to(e.id)},`删除`,8,Xe)])])]))),128))])])])])):j.activeTab===`materials`?(r(),S(`div`,Ze,[l(`div`,Qe,[l(`button`,{class:`btn btn-primary`,onClick:t[1]||=e=>Ga(`material`)},`+ 新增物料`),l(`button`,{class:`btn btn-secondary`,onClick:Xa},`+ 物料补货`)]),l(`div`,$e,[l(`table`,et,[t[71]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`SKU`),l(`th`,null,`名称`),l(`th`,null,`分类`),l(`th`,null,`单位`),l(`th`,null,`成本价`),l(`th`,null,`最低库存`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.materials,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.sku),1),l(`td`,null,o(e.name),1),l(`td`,null,o(e.category||`-`),1),l(`td`,null,o(e.unit),1),l(`td`,null,o(m(T)(e.cost_price)),1),l(`td`,null,o(e.min_stock||`-`),1),l(`td`,null,[l(`div`,tt,[l(`button`,{class:`btn btn-sm btn-secondary`,onClick:t=>Q(`product`,e)},`编辑`,8,nt),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>to(e.id)},`删除`,8,rt)])])]))),128))])])])])):j.activeTab===`inventory`?(r(),S(`div`,it,[l(`div`,at,[l(`button`,{class:`btn btn-primary`,onClick:t[2]||=e=>Q(`inventoryItem`)},`+ 新增物料库存`)]),l(`div`,ot,[l(`table`,st,[t[72]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`SKU`),l(`th`,null,`物料`),l(`th`,null,`仓库`),l(`th`,null,`数量`),l(`th`,null,`可用`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.inventory,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.product_sku),1),l(`td`,null,o(e.product_name),1),l(`td`,null,o(e.warehouse_name),1),l(`td`,null,o(e.quantity),1),l(`td`,null,o(e.available_quantity),1),l(`td`,null,[l(`div`,ct,[l(`button`,{class:`btn btn-sm btn-secondary`,onClick:t=>Q(`inventoryItem`,e)},`编辑`,8,lt),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>lo(e.id)},`删除`,8,ut)])])]))),128))])])])])):j.activeTab===`purchases`?(r(),S(`div`,dt,[l(`div`,ft,[l(`button`,{class:`btn btn-primary`,onClick:t[3]||=e=>Q(`purchaseOrder`)},`+ 新增采购订单`)]),l(`div`,pt,[l(`div`,mt,[t[73]||=l(`label`,null,`到货仓库`,-1),a(l(`select`,{"onUpdate:modelValue":t[4]||=e=>j.purchaseWarehouseId=e,class:`form-input w-260`},[(r(!0),S(p,null,n(j.warehouses,e=>(r(),S(`option`,{key:`purchase-warehouse-`+e.id,value:e.id},o(e.name)+o(e.is_default?` [默认]`:``),9,ht))),128))],512),[[d,j.purchaseWarehouseId,void 0,{number:!0}]]),l(`button`,{class:`btn btn-secondary`,onClick:K},`刷新`)])]),l(`div`,gt,[l(`table`,_t,[t[74]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`采购单`),l(`th`,null,`供应商`),l(`th`,null,`状态`),l(`th`,null,`订单创建`),l(`th`,null,`预计到货`),l(`th`,null,`实际到货`),l(`th`,null,`实际付款`),l(`th`,null,`总金额`),l(`th`,null,`已付款`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.purchaseOrders,e=>(r(),S(`tr`,{key:`purchase-order-`+e.id},[l(`td`,null,o(e.order_no),1),l(`td`,null,o(e.supplier_name),1),l(`td`,null,o(Ia(e.status)),1),l(`td`,null,o(e.created_at?m(w)(e.created_at):`-`),1),l(`td`,null,o(e.expected_date?m(C)(e.expected_date):`-`),1),l(`td`,null,o(e.received_date?m(w)(e.received_date):`-`),1),l(`td`,null,o(e.paid_date?m(w)(e.paid_date):`-`),1),l(`td`,null,o(m(T)(e.total_amount||0)),1),l(`td`,null,o(m(T)(e.paid_amount||0)),1),l(`td`,null,[l(`div`,vt,[l(`button`,{class:`btn btn-sm btn-secondary`,onClick:t=>Q(`purchaseOrder`,e),disabled:R(e.status)},`编辑`,8,yt),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>xo(e.id),disabled:R(e.status)},`删除`,8,bt),e.status===`pending`?(r(),S(`button`,{key:0,class:`btn btn-sm btn-primary`,onClick:t=>Q(`purchaseReceive`,e)},`到货入库`,8,xt)):e.status===`received`?(r(),S(`button`,{key:1,class:`btn btn-sm btn-success`,onClick:t=>go(e,`paid`)},`标记为已付款`,8,St)):b(``,!0)])])]))),128))])])])])):j.activeTab===`suppliers`?(r(),S(`div`,Ct,[l(`div`,wt,[l(`button`,{class:`btn btn-primary`,onClick:t[5]||=e=>Q(`supplier`)},`+ 新增供应商`)]),l(`div`,Tt,[l(`table`,Et,[t[75]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`编码`),l(`th`,null,`名称`),l(`th`,null,`联系人`),l(`th`,null,`电话`),l(`th`,null,`邮箱`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.suppliers,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.code),1),l(`td`,null,o(e.name),1),l(`td`,null,o(e.contact_person||`-`),1),l(`td`,null,o(e.phone||`-`),1),l(`td`,null,o(e.email||`-`),1),l(`td`,null,[l(`div`,Dt,[l(`button`,{class:`btn btn-sm btn-secondary`,onClick:t=>Q(`supplier`,e)},`编辑`,8,Ot),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>ao(e.id)},`删除`,8,kt)])])]))),128))])])])])):j.activeTab===`customers`?(r(),S(`div`,At,[l(`div`,jt,[l(`button`,{class:`btn btn-primary`,onClick:t[6]||=e=>Q(`customer`)},`+ 新增客户`)]),l(`div`,Mt,[l(`table`,Nt,[t[76]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`编码`),l(`th`,null,`名称`),l(`th`,null,`联系人`),l(`th`,null,`电话`),l(`th`,null,`邮箱`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.customers,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.code),1),l(`td`,null,o(e.name),1),l(`td`,null,o(e.contact_person||`-`),1),l(`td`,null,o(e.phone||`-`),1),l(`td`,null,o(e.email||`-`),1),l(`td`,null,[l(`div`,Pt,[l(`button`,{class:`btn btn-sm btn-secondary`,onClick:t=>Q(`customer`,e)},`编辑`,8,Ft),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>so(e.id)},`删除`,8,It)])])]))),128))])])])])):j.activeTab===`sales_orders`?(r(),S(`div`,Lt,[l(`div`,Rt,[l(`button`,{class:`btn btn-primary`,onClick:t[7]||=e=>Q(`salesOrder`)},`+ 新增销售订单`)]),l(`div`,zt,[l(`div`,Bt,[t[77]||=l(`label`,null,`领料仓库`,-1),a(l(`select`,{"onUpdate:modelValue":t[8]||=e=>j.productionWarehouseId=e,class:`form-input w-260`},[(r(!0),S(p,null,n(j.warehouses,e=>(r(),S(`option`,{key:`production-warehouse-`+e.id,value:e.id},o(e.name)+o(e.is_default?` [默认]`:``),9,Vt))),128))],512),[[d,j.productionWarehouseId,void 0,{number:!0}]]),l(`button`,{class:`btn btn-secondary`,onClick:G},`刷新`)])]),l(`div`,Ht,[l(`table`,Ut,[t[79]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`销售单`),l(`th`,null,`客户`),l(`th`,null,`订单金额`),l(`th`,null,`交付日期`),l(`th`,null,`订单创建`),l(`th`,null,`实际交付`),l(`th`,null,`实际收款`),l(`th`,null,`订单状态`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.productionOrders,e=>(r(),S(`tr`,{key:`production-order-`+e.id},[l(`td`,null,o(e.order_no),1),l(`td`,null,o(e.customer_name),1),l(`td`,null,o(m(T)(e.total_amount||0)),1),l(`td`,null,o(e.delivery_date?m(C)(e.delivery_date):`-`),1),l(`td`,null,o(e.created_at?m(w)(e.created_at):`-`),1),l(`td`,null,o(e.actual_delivery_date?m(w)(e.actual_delivery_date):`-`),1),l(`td`,null,o(e.actual_payment_date?m(w)(e.actual_payment_date):`-`),1),l(`td`,null,o(e.status===`manufacturing`?`制造中`:e.status===`delivered`?`已交付`:e.status===`paid`?`已收款`:e.status),1),l(`td`,null,[l(`div`,Wt,[l(`div`,Gt,[t[78]||=l(`button`,{class:`btn btn-sm btn-secondary dropdown-toggle`},`状态`,-1),l(`div`,Kt,[l(`button`,{class:`dropdown-item`,onClick:t=>ho(e,`delivered`)},`已交付`,8,qt),l(`button`,{class:`dropdown-item`,onClick:t=>ho(e,`paid`)},`已收款`,8,Jt)])]),l(`button`,{class:i([`btn btn-sm btn-secondary`,{"btn-disabled":e.status===`paid`}]),onClick:t=>Q(`salesOrder`,e),disabled:e.status===`paid`},`编辑`,10,Yt),l(`button`,{class:`btn btn-sm btn-danger`,onClick:t=>_o(e.id)},`删除`,8,Xt)])])]))),128))])])])])):j.activeTab===`finance`?(r(),S(`div`,Zt,[l(`div`,Qt,[l(`div`,$t,[l(`div`,null,[t[80]||=l(`label`,{class:`mr-8`},`年份`,-1),a(l(`input`,{"onUpdate:modelValue":t[9]||=e=>j.financePeriod.year=e,type:`number`,min:`2000`,max:`2100`,class:`form-input w-inline-120`},null,512),[[f,j.financePeriod.year,void 0,{number:!0}]])]),l(`div`,null,[t[82]||=l(`label`,{class:`mr-8`},`季度`,-1),a(l(`select`,{"onUpdate:modelValue":t[10]||=e=>j.financePeriod.quarter=e,class:`form-input w-inline-140`},[...t[81]||=[u(`<option value="" data-v-15993ef5>全年</option><option value="1" data-v-15993ef5>Q1</option><option value="2" data-v-15993ef5>Q2</option><option value="3" data-v-15993ef5>Q3</option><option value="4" data-v-15993ef5>Q4</option>`,5)]],512),[[d,j.financePeriod.quarter]])]),l(`button`,{class:`btn btn-primary`,onClick:za},`刷新统计`),l(`span`,en,`统计周期:`+o(j.financeSummary?.period_label||`-`),1)])]),l(`div`,tn,[l(`div`,nn,[t[84]||=l(`div`,{class:`stat-icon`},`🧾`,-1),l(`div`,rn,[l(`div`,an,o(m(T)(j.financeSummary?.receivable_total||0)),1),t[83]||=l(`div`,{class:`stat-label`},`应收总额`,-1)])]),l(`div`,on,[t[86]||=l(`div`,{class:`stat-icon`},`💸`,-1),l(`div`,sn,[l(`div`,cn,o(m(T)(j.financeSummary?.payable_total||0)),1),t[85]||=l(`div`,{class:`stat-label`},`应付总额`,-1)])]),l(`div`,ln,[t[88]||=l(`div`,{class:`stat-icon`},`💵`,-1),l(`div`,un,[l(`div`,dn,o(m(T)(j.financeSummary?.period_receipt_total||0)),1),t[87]||=l(`div`,{class:`stat-label`},`周期收款`,-1)])]),l(`div`,fn,[t[90]||=l(`div`,{class:`stat-icon`},`🏦`,-1),l(`div`,pn,[l(`div`,mn,o(m(T)(j.financeSummary?.period_payment_total||0)),1),t[89]||=l(`div`,{class:`stat-label`},`周期付款`,-1)])])]),l(`div`,hn,[t[92]||=l(`h3`,{class:`mb-12`},`客户账款(周期)`,-1),l(`table`,gn,[t[91]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`客户`),l(`th`,null,`订单数`),l(`th`,null,`流水数`),l(`th`,null,`订单金额`),l(`th`,null,`订单已收`),l(`th`,null,`实收流水`),l(`th`,null,`应收余额`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.customerFinanceStatement,e=>(r(),S(`tr`,{key:`customer-`+e.partner_id},[l(`td`,null,o(e.partner_name),1),l(`td`,null,o(e.order_count),1),l(`td`,null,o(e.transaction_count),1),l(`td`,null,o(m(T)(e.order_total)),1),l(`td`,null,o(m(T)(e.settled_total)),1),l(`td`,null,o(m(T)(e.transaction_total)),1),l(`td`,null,o(m(T)(e.outstanding_total)),1)]))),128))])])]),l(`div`,_n,[t[94]||=l(`h3`,{class:`mb-12`},`供应商账款(周期)`,-1),l(`table`,vn,[t[93]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`供应商`),l(`th`,null,`订单数`),l(`th`,null,`流水数`),l(`th`,null,`订单金额`),l(`th`,null,`订单已付`),l(`th`,null,`实付流水`),l(`th`,null,`应付余额`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.supplierFinanceStatement,e=>(r(),S(`tr`,{key:`supplier-`+e.partner_id},[l(`td`,null,o(e.partner_name),1),l(`td`,null,o(e.order_count),1),l(`td`,null,o(e.transaction_count),1),l(`td`,null,o(m(T)(e.order_total)),1),l(`td`,null,o(m(T)(e.settled_total)),1),l(`td`,null,o(m(T)(e.transaction_total)),1),l(`td`,null,o(m(T)(e.outstanding_total)),1)]))),128))])])]),l(`div`,yn,[t[96]||=l(`h3`,{class:`mb-12`},`客户-商品追溯(周期)`,-1),l(`table`,bn,[t[95]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`客户`),l(`th`,null,`SKU`),l(`th`,null,`商品`),l(`th`,null,`订单数`),l(`th`,null,`数量`),l(`th`,null,`订单金额`),l(`th`,null,`已结款`),l(`th`,null,`未结款`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.customerProductStatement,e=>(r(),S(`tr`,{key:`customer-product-`+e.partner_id+`-`+e.product_id},[l(`td`,null,o(e.partner_name),1),l(`td`,null,o(e.product_sku||`-`),1),l(`td`,null,o(e.product_name),1),l(`td`,null,o(e.order_count),1),l(`td`,null,o(m(se)(e.order_quantity)),1),l(`td`,null,o(m(T)(e.order_amount)),1),l(`td`,null,o(m(T)(e.settled_amount)),1),l(`td`,null,o(m(T)(e.outstanding_amount)),1)]))),128))])])]),l(`div`,xn,[t[98]||=l(`h3`,{class:`mb-12`},`供应商-商品追溯(周期)`,-1),l(`table`,Sn,[t[97]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`供应商`),l(`th`,null,`SKU`),l(`th`,null,`商品`),l(`th`,null,`订单数`),l(`th`,null,`数量`),l(`th`,null,`订单金额`),l(`th`,null,`已结款`),l(`th`,null,`未结款`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.supplierProductStatement,e=>(r(),S(`tr`,{key:`supplier-product-`+e.partner_id+`-`+e.product_id},[l(`td`,null,o(e.partner_name),1),l(`td`,null,o(e.product_sku||`-`),1),l(`td`,null,o(e.product_name),1),l(`td`,null,o(e.order_count),1),l(`td`,null,o(m(se)(e.order_quantity)),1),l(`td`,null,o(m(T)(e.order_amount)),1),l(`td`,null,o(m(T)(e.settled_amount)),1),l(`td`,null,o(m(T)(e.outstanding_amount)),1)]))),128))])])]),l(`div`,Cn,[t[100]||=l(`h3`,{class:`mb-12`},`最近财务流水`,-1),l(`table`,wn,[t[99]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`单号`),l(`th`,null,`类型`),l(`th`,null,`往来方`),l(`th`,null,`金额`),l(`th`,null,`状态`),l(`th`,null,`日期`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.financeTransactions,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.txn_no),1),l(`td`,null,o(e.txn_type===`receipt`?`收款`:`付款`),1),l(`td`,null,o(e.partner_type===`customer`?`客户`:`供应商`)+`#`+o(e.partner_id),1),l(`td`,null,o(m(T)(e.amount)),1),l(`td`,null,o(e.status===`confirmed`?`已确认`:`已作废`),1),l(`td`,null,o(m(w)(e.txn_date)),1)]))),128))])])])])):j.activeTab===`movements`?(r(),S(`div`,Tn,[l(`table`,En,[t[101]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`物料`),l(`th`,null,`类型`),l(`th`,null,`数量`),l(`th`,null,`变动前`),l(`th`,null,`变动后`),l(`th`,null,`时间`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.movements,e=>(r(),S(`tr`,{key:e.id},[l(`td`,null,o(e.product_name)+o(e.product_sku?` (`+e.product_sku+`)`:``),1),l(`td`,null,[l(`span`,{class:i([`badge`,Fa(e.movement_type)])},o(Pa(e.movement_type)),3)]),l(`td`,null,o(e.quantity),1),l(`td`,null,o(e.before_quantity),1),l(`td`,null,o(e.after_quantity),1),l(`td`,null,o(m(w)(e.created_at)),1)]))),128))])])])):b(``,!0)]))])]),j.showModal?(r(),S(`div`,{key:0,class:`modal-overlay`,onClick:h($,[`self`])},[l(`div`,Dn,[l(`div`,On,[l(`h3`,null,o((j.editingItem?`编辑`:`新增`)+(j.modalType===`product`?j.form.item_type===`finished`?`成品`:`物料`:j.modalType===`inventoryItem`?`物料库存`:j.modalType===`salesOrder`?`销售订单`:j.modalType===`purchaseOrder`?`采购订单`:j.modalType===`purchaseReceive`?`采购到货入库`:j.modalType===`supplier`?`供应商`:`客户`)),1),l(`button`,{class:`modal-close`,onClick:$},`×`)]),l(`div`,kn,[j.modalType===`product`?(r(),S(`form`,{key:0,onSubmit:h(eo,[`prevent`])},[l(`div`,An,[t[102]||=l(`label`,{class:`form-label`},`类型 *`,-1),l(`input`,{class:`form-input`,value:j.form.item_type===`material`?`物料(纳入库存)`:`成品(按单生产,不做库存)`,disabled:``},null,8,jn),a(l(`input`,{"onUpdate:modelValue":t[11]||=e=>j.form.item_type=e,type:`hidden`},null,512),[[f,j.form.item_type]])]),l(`div`,Mn,[t[103]||=l(`label`,{class:`form-label`},`SKU *`,-1),a(l(`input`,{"onUpdate:modelValue":t[12]||=e=>j.form.sku=e,class:`form-input`,required:``,placeholder:`产品编码`},null,512),[[f,j.form.sku]])]),l(`div`,Nn,[t[104]||=l(`label`,{class:`form-label`},`名称 *`,-1),a(l(`input`,{"onUpdate:modelValue":t[13]||=e=>j.form.name=e,class:`form-input`,required:``,placeholder:`产品名称`},null,512),[[f,j.form.name]])]),l(`div`,Pn,[t[105]||=l(`label`,{class:`form-label`},`分类`,-1),a(l(`input`,{"onUpdate:modelValue":t[14]||=e=>j.form.category=e,class:`form-input`,placeholder:`产品分类`},null,512),[[f,j.form.category]])]),l(`div`,Fn,[t[106]||=l(`label`,{class:`form-label`},`单位`,-1),a(l(`input`,{"onUpdate:modelValue":t[15]||=e=>j.form.unit=e,class:`form-input`,placeholder:`件/个/箱`},null,512),[[f,j.form.unit]])]),l(`div`,In,[t[107]||=l(`label`,{class:`form-label`},`成本价`,-1),a(l(`input`,{"onUpdate:modelValue":t[16]||=e=>j.form.cost_price=e,type:`number`,step:`0.01`,class:`form-input`,placeholder:`0.00`},null,512),[[f,j.form.cost_price,void 0,{number:!0}]])]),l(`div`,Ln,[t[108]||=l(`label`,{class:`form-label`},`销售价`,-1),a(l(`input`,{"onUpdate:modelValue":t[17]||=e=>j.form.sale_price=e,type:`number`,step:`0.01`,class:`form-input`,placeholder:`0.00`},null,512),[[f,j.form.sale_price,void 0,{number:!0}]])]),j.form.item_type===`material`?(r(),S(`div`,Rn,[t[109]||=l(`label`,{class:`form-label`},`最低库存`,-1),a(l(`input`,{"onUpdate:modelValue":t[18]||=e=>j.form.min_stock=e,type:`number`,class:`form-input`,placeholder:`0`},null,512),[[f,j.form.min_stock,void 0,{number:!0}]])])):b(``,!0),j.form.item_type===`finished`?(r(),S(`div`,zn,[...t[110]||=[l(`label`,{class:`form-label`},`说明`,-1),l(`input`,{disabled:``,value:`成品不做库存,成本由下方BOM定义物料构成后自动计算`,class:`form-input`},null,-1)]])):b(``,!0),j.form.item_type===`finished`&&j.editingItem?(r(),S(`div`,Bn,[l(`div`,Vn,[t[112]||=l(`label`,{class:`form-label`},`BOM物料配置`,-1),l(`button`,{type:`button`,class:`btn btn-secondary bom-add-btn`,onClick:no},`+ 添加物料`),l(`div`,Hn,[l(`table`,Un,[t[111]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`物料`),l(`th`,null,`数量`),l(`th`,null,`操作`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.productBomItems,(e,t)=>(r(),S(`tr`,{key:`edit-bom-item-`+t},[l(`td`,null,[a(l(`select`,{"onUpdate:modelValue":t=>e.material_id=t,class:`form-input`,required:``},[(r(!0),S(p,null,n(j.materials,e=>(r(),S(`option`,{key:`edit-bom-material-`+e.id,value:e.id},o(e.sku)+` - `+o(e.name),9,Gn))),128))],8,Wn),[[d,e.material_id,void 0,{number:!0}]])]),l(`td`,null,[a(l(`input`,{"onUpdate:modelValue":t=>e.quantity=t,type:`number`,min:`0.0001`,step:`0.0001`,class:`form-input`,required:``},null,8,Kn),[[f,e.quantity,void 0,{number:!0}]])]),l(`td`,null,[l(`button`,{type:`button`,class:`btn btn-sm btn-danger`,onClick:e=>ro(t)},`删除`,8,qn)])]))),128))])])])])])):b(``,!0),l(`div`,{class:`modal-footer`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),t[113]||=l(`button`,{type:`submit`,class:`btn btn-primary`},`保存`,-1)])],32)):j.modalType===`salesOrder`?(r(),S(`form`,{key:1,onSubmit:h(mo,[`prevent`])},[l(`div`,Jn,[t[114]||=l(`label`,{class:`form-label`},`客户 *`,-1),a(l(`select`,{"onUpdate:modelValue":t[19]||=e=>j.form.customer_id=e,class:`form-input`,required:``},[(r(!0),S(p,null,n(j.customers,e=>(r(),S(`option`,{key:`order-customer-`+e.id,value:e.id},o(e.name),9,Yn))),128))],512),[[d,j.form.customer_id,void 0,{number:!0}]])]),l(`div`,Xn,[t[116]||=l(`label`,{class:`form-label`},`交付日期`,-1),l(`div`,{class:`datetime-field`,onClick:t[23]||=e=>L(`delivery`)},[a(l(`input`,{ref_key:`deliveryDateInput`,ref:D,"onUpdate:modelValue":t[20]||=e=>j.form.delivery_date=e,type:`text`,class:`form-input air-datetime-input`,readonly:``,placeholder:`选择日期时间`},null,512),[[f,j.form.delivery_date]]),a(l(`input`,{ref_key:`deliveryDateNativeInput`,ref:k,"onUpdate:modelValue":t[21]||=e=>j.form.delivery_date_native=e,onChange:t[22]||=e=>j.form.delivery_date=Ma(j.form.delivery_date_native),type:`datetime-local`,class:`datetime-native`},null,544),[[f,j.form.delivery_date_native]]),t[115]||=l(`span`,{class:`datetime-field-icon`,"aria-hidden":`true`},`📅`,-1)])]),l(`div`,Zn,[t[117]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t[24]||=e=>j.form.remark=e,class:`form-input`,placeholder:`订单备注`},null,512),[[f,j.form.remark]])]),l(`div`,{class:`form-group form-group-spaced`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:uo},`+ 添加模具`)]),j.form.items.length===0?(r(),S(`div`,Qn,[...t[118]||=[l(`div`,{class:`empty-icon`},`📦`,-1),l(`div`,{class:`empty-title`},`暂无模具`,-1),l(`div`,{class:`empty-desc`},`请点击"添加模具"按钮添加订单明细`,-1)]])):(r(),S(`div`,$n,[(r(!0),S(p,null,n(j.form.items,(e,s)=>(r(),S(`div`,{key:`sales-order-line-`+s,class:`sales-order-item`},[l(`div`,er,[l(`button`,{type:`button`,class:i([`btn`,e.mode===`new`?`active`:``]),onClick:t=>fo(e,`new`)},`新模`,10,tr),l(`button`,{type:`button`,class:i([`btn`,e.mode===`existing`?`active`:``]),onClick:t=>fo(e,`existing`)},`改模`,10,nr)]),l(`div`,rr,[e.mode===`existing`?(r(),S(`div`,lr,[l(`div`,ur,[t[122]||=l(`label`,{class:`form-label`},`选择模具 *`,-1),a(l(`select`,{"onUpdate:modelValue":t=>e.product_id=t,class:`form-input`,required:``},[t[121]||=l(`option`,{value:``},`请选择模具`,-1),(r(!0),S(p,null,n(j.finishedProducts,e=>(r(),S(`option`,{key:`sales-order-product-`+e.id,value:e.id},o(e.sku)+` - `+o(e.name),9,fr))),128))],8,dr),[[d,e.product_id,void 0,{number:!0}]])])])):(r(),S(`div`,ir,[l(`div`,ar,[t[119]||=l(`label`,{class:`form-label`},`模具SKU *`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.product_sku=t,class:`form-input`,placeholder:`请输入模具SKU`,required:``},null,8,or),[[f,e.product_sku]])]),l(`div`,sr,[t[120]||=l(`label`,{class:`form-label`},`模具名称 *`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.product_name=t,class:`form-input`,placeholder:`请输入模具名称`,required:``},null,8,cr),[[f,e.product_name]])])])),l(`div`,pr,[l(`div`,mr,[l(`div`,hr,[t[123]||=l(`label`,{class:`form-label`},`数量 *`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.quantity=t,type:`number`,min:`1`,class:`form-input`,placeholder:`请输入数量`,required:``},null,8,gr),[[f,e.quantity,void 0,{number:!0}]])])]),l(`div`,_r,[l(`div`,vr,[t[124]||=l(`label`,{class:`form-label`},`单价 *`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.unit_price=t,type:`number`,min:`0`,step:`0.01`,class:`form-input`,placeholder:`请输入单价`,required:``},null,8,yr),[[f,e.unit_price,void 0,{number:!0}]])])]),l(`div`,br,[l(`div`,xr,[t[125]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.remark=t,class:`form-input`,placeholder:`请输入备注`},null,8,Sr),[[f,e.remark]])])]),l(`div`,Cr,[l(`button`,{type:`button`,class:`btn btn-sm btn-danger`,onClick:e=>po(Number(s))},`删除`,8,wr)])])])]))),128))])),l(`div`,{class:`form-group form-group-spaced`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:Ka},`+ 消耗物料`)]),l(`div`,Tr,[t[131]||=l(`label`,{class:`form-label`},`已消耗物料`,-1),j.editingItem&&j.editingItem.actual_material_cost>0?(r(),S(`div`,Er,[t[129]||=u(`<div class="material-consumption-header" data-v-15993ef5><div class="material-consumption-item" data-v-15993ef5>物料名称</div><div class="material-consumption-item" data-v-15993ef5>数量</div><div class="material-consumption-item" data-v-15993ef5>单价</div><div class="material-consumption-item" data-v-15993ef5>金额</div></div>`,1),(r(!0),S(p,null,n(j.consumedMaterials,(e,t)=>(r(),S(`div`,{key:`consumed-material-`+t,class:`material-consumption-row`},[l(`div`,Dr,o(e.material_name),1),l(`div`,Or,o(e.quantity),1),l(`div`,kr,o(m(T)(e.unit_price)),1),l(`div`,Ar,o(m(T)(e.amount)),1)]))),128)),l(`div`,jr,[t[126]||=l(`div`,{class:`material-consumption-item`},`合计`,-1),t[127]||=l(`div`,{class:`material-consumption-item`},null,-1),t[128]||=l(`div`,{class:`material-consumption-item`},null,-1),l(`div`,Mr,o(m(T)(j.editingItem.actual_material_cost)),1)])])):(r(),S(`div`,Nr,[...t[130]||=[l(`div`,{class:`empty-icon`},`📦`,-1),l(`div`,{class:`empty-title`},`暂无物料消耗记录`,-1),l(`div`,{class:`empty-desc`},`点击"消耗物料"按钮添加物料消耗明细`,-1)]]))]),l(`div`,{class:`modal-footer`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),t[132]||=l(`button`,{type:`submit`,class:`btn btn-primary`},`保存订单`,-1)])],32)):j.modalType===`purchaseOrder`?(r(),S(`form`,{key:2,onSubmit:h(bo,[`prevent`])},[l(`div`,Pr,[t[133]||=l(`label`,{class:`form-label`},`供应商 *`,-1),a(l(`select`,{"onUpdate:modelValue":t[25]||=e=>j.form.supplier_id=e,class:`form-input`,required:``},[(r(!0),S(p,null,n(j.suppliers,e=>(r(),S(`option`,{key:`purchase-supplier-`+e.id,value:e.id},o(e.name),9,Fr))),128))],512),[[d,j.form.supplier_id,void 0,{number:!0}]])]),l(`div`,Ir,[t[135]||=l(`label`,{class:`form-label`},`预计到货`,-1),l(`div`,{class:`datetime-field`,onClick:t[29]||=e=>L(`expected`)},[a(l(`input`,{ref_key:`expectedDateInput`,ref:O,"onUpdate:modelValue":t[26]||=e=>j.form.expected_date=e,type:`text`,class:`form-input air-datetime-input`,readonly:``,placeholder:`选择日期时间`},null,512),[[f,j.form.expected_date]]),a(l(`input`,{ref_key:`expectedDateNativeInput`,ref:A,"onUpdate:modelValue":t[27]||=e=>j.form.expected_date_native=e,onChange:t[28]||=e=>j.form.expected_date=Ma(j.form.expected_date_native),type:`datetime-local`,class:`datetime-native`},null,544),[[f,j.form.expected_date_native]]),t[134]||=l(`span`,{class:`datetime-field-icon`,"aria-hidden":`true`},`📅`,-1)])]),l(`div`,Lr,[t[136]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t[30]||=e=>j.form.remark=e,class:`form-input`,placeholder:`采购单备注`},null,512),[[f,j.form.remark]])]),l(`div`,{class:`form-group form-group-spaced`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:vo},`+ 添加物料`)]),j.form.items.length===0?(r(),S(`div`,Rr,[...t[137]||=[l(`div`,{class:`empty-icon`},`📦`,-1),l(`div`,{class:`empty-title`},`暂无物料`,-1),l(`div`,{class:`empty-desc`},`请点击"添加物料"按钮添加采购明细`,-1)]])):(r(),S(`div`,zr,[(r(!0),S(p,null,n(j.form.items,(e,i)=>(r(),S(`div`,{key:`purchase-order-line-`+i,class:`purchase-order-item`},[l(`div`,Br,[l(`div`,Vr,[t[139]||=l(`label`,{class:`form-label`},`物料 *`,-1),a(l(`select`,{"onUpdate:modelValue":t=>e.product_id=t,class:`form-input`,required:``},[t[138]||=l(`option`,{value:``},`请选择物料`,-1),(r(!0),S(p,null,n(j.materials,e=>(r(),S(`option`,{key:`purchase-order-material-`+e.id,value:e.id},o(e.sku)+` - `+o(e.name),9,Ur))),128))],8,Hr),[[d,e.product_id,void 0,{number:!0}]])]),l(`div`,Wr,[l(`div`,Gr,[l(`div`,Kr,[t[140]||=l(`label`,{class:`form-label`},`数量 *`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.quantity=t,type:`number`,min:`1`,class:`form-input`,placeholder:`请输入数量`,required:``},null,8,qr),[[f,e.quantity,void 0,{number:!0}]])])]),l(`div`,Jr,[l(`div`,Yr,[t[141]||=l(`label`,{class:`form-label`},`单价`,-1),l(`div`,Xr,` ¥`+o((j.materials.find(t=>t.id===e.product_id)?.cost_price||0).toFixed(2)),1)])]),l(`div`,Zr,[l(`div`,Qr,[t[142]||=l(`label`,{class:`form-label`},`总价`,-1),l(`div`,$r,` ¥`+o(((j.materials.find(t=>t.id===e.product_id)?.cost_price||0)*(e.quantity||0)).toFixed(2)),1)])]),l(`div`,ei,[l(`div`,ti,[t[143]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.remark=t,class:`form-input`,placeholder:`请输入备注`},null,8,ni),[[f,e.remark]])])]),l(`div`,ri,[l(`button`,{type:`button`,class:`btn btn-sm btn-danger`,onClick:e=>yo(Number(i))},`删除`,8,ii)])])])]))),128))])),l(`div`,{class:`modal-footer`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),t[144]||=l(`button`,{type:`submit`,class:`btn btn-primary`},`保存采购单`,-1)])],32)):j.modalType===`purchaseReceive`?(r(),S(`form`,{key:3,onSubmit:h(So,[`prevent`])},[l(`div`,ai,[t[145]||=l(`label`,{class:`form-label`},`入库仓库 *`,-1),a(l(`select`,{"onUpdate:modelValue":t[31]||=e=>j.form.warehouse_id=e,class:`form-input`,required:``},[(r(!0),S(p,null,n(j.warehouses,e=>(r(),S(`option`,{key:`purchase-receive-warehouse-`+e.id,value:e.id},o(e.name)+o(e.is_default?` [默认]`:``),9,oi))),128))],512),[[d,j.form.warehouse_id,void 0,{number:!0}]])]),l(`div`,si,[t[146]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t[32]||=e=>j.form.remark=e,class:`form-input`,placeholder:`到货说明`},null,512),[[f,j.form.remark]])]),l(`div`,ci,[l(`table`,li,[t[147]||=l(`thead`,null,[l(`tr`,null,[l(`th`,null,`物料`),l(`th`,null,`明细ID`),l(`th`,null,`剩余待入库`),l(`th`,null,`本次入库`)])],-1),l(`tbody`,null,[(r(!0),S(p,null,n(j.purchaseReceiveItems,e=>(r(),S(`tr`,{key:`purchase-receive-line-`+e.item_id},[l(`td`,null,o(e.material_label),1),l(`td`,null,o(e.item_id),1),l(`td`,null,o(e.remaining_quantity),1),l(`td`,null,[a(l(`input`,{"onUpdate:modelValue":t=>e.receive_quantity=t,type:`number`,min:`0`,max:e.remaining_quantity,class:`form-input`,required:``},null,8,ui),[[f,e.receive_quantity,void 0,{number:!0}]])])]))),128))])])]),l(`div`,{class:`modal-footer`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),t[148]||=l(`button`,{type:`submit`,class:`btn btn-primary`},`确认入库`,-1)])],32)):j.modalType===`supplier`?(r(),S(`form`,{key:4,onSubmit:h(io,[`prevent`])},[l(`div`,di,[t[149]||=l(`label`,{class:`form-label`},`名称 *`,-1),a(l(`input`,{"onUpdate:modelValue":t[33]||=e=>j.form.name=e,class:`form-input`,required:``,placeholder:`供应商名称`},null,512),[[f,j.form.name]])]),l(`div`,fi,[t[150]||=l(`label`,{class:`form-label`},`联系人`,-1),a(l(`input`,{"onUpdate:modelValue":t[34]||=e=>j.form.contact_person=e,class:`form-input`,placeholder:`联系人姓名`},null,512),[[f,j.form.contact_person]])]),l(`div`,pi,[t[151]||=l(`label`,{class:`form-label`},`电话`,-1),a(l(`input`,{"onUpdate:modelValue":t[35]||=e=>j.form.phone=e,class:`form-input`,placeholder:`联系电话`},null,512),[[f,j.form.phone]])]),l(`div`,mi,[t[152]||=l(`label`,{class:`form-label`},`邮箱`,-1),a(l(`input`,{"onUpdate:modelValue":t[36]||=e=>j.form.email=e,type:`email`,class:`form-input`,placeholder:`email@example.com`},null,512),[[f,j.form.email]])]),l(`div`,hi,[t[153]||=l(`label`,{class:`form-label`},`地址`,-1),a(l(`input`,{"onUpdate:modelValue":t[37]||=e=>j.form.address=e,class:`form-input`,placeholder:`详细地址`},null,512),[[f,j.form.address]])]),l(`div`,{class:`modal-footer`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),t[154]||=l(`button`,{type:`submit`,class:`btn btn-primary`},`保存`,-1)])],32)):j.modalType===`customer`?(r(),S(`form`,{key:5,onSubmit:h(oo,[`prevent`])},[l(`div`,gi,[t[155]||=l(`label`,{class:`form-label`},`名称 *`,-1),a(l(`input`,{"onUpdate:modelValue":t[38]||=e=>j.form.name=e,class:`form-input`,required:``,placeholder:`客户名称`},null,512),[[f,j.form.name]])]),l(`div`,_i,[t[156]||=l(`label`,{class:`form-label`},`联系人`,-1),a(l(`input`,{"onUpdate:modelValue":t[39]||=e=>j.form.contact_person=e,class:`form-input`,placeholder:`联系人姓名`},null,512),[[f,j.form.contact_person]])]),l(`div`,vi,[t[157]||=l(`label`,{class:`form-label`},`电话`,-1),a(l(`input`,{"onUpdate:modelValue":t[40]||=e=>j.form.phone=e,class:`form-input`,placeholder:`联系电话`},null,512),[[f,j.form.phone]])]),l(`div`,yi,[t[158]||=l(`label`,{class:`form-label`},`邮箱`,-1),a(l(`input`,{"onUpdate:modelValue":t[41]||=e=>j.form.email=e,type:`email`,class:`form-input`,placeholder:`email@example.com`},null,512),[[f,j.form.email]])]),l(`div`,bi,[t[159]||=l(`label`,{class:`form-label`},`地址`,-1),a(l(`input`,{"onUpdate:modelValue":t[42]||=e=>j.form.address=e,class:`form-input`,placeholder:`详细地址`},null,512),[[f,j.form.address]])]),l(`div`,{class:`modal-footer`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),t[160]||=l(`button`,{type:`submit`,class:`btn btn-primary`},`保存`,-1)])],32)):j.modalType===`inventoryItem`?(r(),S(`form`,{key:6,onSubmit:h(co,[`prevent`])},[l(`div`,xi,[t[161]||=l(`label`,{class:`form-label`},`物料 *`,-1),a(l(`select`,{"onUpdate:modelValue":t[43]||=e=>j.form.product_id=e,class:`form-input`,required:``},[j.materials.length?b(``,!0):(r(),S(`option`,Si,`暂无物料,请先新增物料`)),(r(!0),S(p,null,n(j.materials,e=>(r(),S(`option`,{key:`stockin-product-`+e.id,value:e.id},o(e.sku)+` - `+o(e.name)+`(ID: `+o(e.id)+`) `,9,Ci))),128))],512),[[d,j.form.product_id,void 0,{number:!0}]])]),l(`div`,wi,[t[162]||=l(`label`,{class:`form-label`},`仓库 *`,-1),a(l(`select`,{"onUpdate:modelValue":t[44]||=e=>j.form.warehouse_id=e,class:`form-input`,required:``},[j.warehouses.length?b(``,!0):(r(),S(`option`,Ti,`暂无仓库,系统将自动创建默认仓库`)),(r(!0),S(p,null,n(j.warehouses,e=>(r(),S(`option`,{key:`stockin-warehouse-`+e.id,value:e.id},o(e.name)+o(e.code?` (`+e.code+`)`:``)+o(e.is_default?` [默认]`:``)+`(ID: `+o(e.id)+`) `,9,Ei))),128))],512),[[d,j.form.warehouse_id,void 0,{number:!0}]])]),l(`div`,Di,[t[163]||=l(`label`,{class:`form-label`},`数量 *`,-1),a(l(`input`,{"onUpdate:modelValue":t[45]||=e=>j.form.quantity=e,type:`number`,class:`form-input`,required:``,placeholder:`库存数量`},null,512),[[f,j.form.quantity,void 0,{number:!0}]])]),l(`div`,Oi,[t[164]||=l(`label`,{class:`form-label`},`锁定数量`,-1),a(l(`input`,{"onUpdate:modelValue":t[46]||=e=>j.form.locked_quantity=e,type:`number`,class:`form-input`,placeholder:`锁定库存`},null,512),[[f,j.form.locked_quantity,void 0,{number:!0}]])]),l(`div`,ki,[t[165]||=l(`label`,{class:`form-label`},`批次号`,-1),a(l(`input`,{"onUpdate:modelValue":t[47]||=e=>j.form.batch_number=e,class:`form-input`,placeholder:`批次号(可选)`},null,512),[[f,j.form.batch_number]])]),l(`div`,Ai,[t[166]||=l(`label`,{class:`form-label`},`库位`,-1),a(l(`input`,{"onUpdate:modelValue":t[48]||=e=>j.form.location=e,class:`form-input`,placeholder:`库位(可选)`},null,512),[[f,j.form.location]])]),l(`div`,ji,[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:$},`取消`),l(`button`,{type:`submit`,class:`btn btn-primary`,disabled:!j.form.product_id||!j.form.warehouse_id},`保存`,8,Mi)])],32)):b(``,!0)])])])):b(``,!0),j.showMaterialConsumptionModal?(r(),S(`div`,{key:1,class:`modal-overlay`,onClick:t[51]||=h(e=>j.showMaterialConsumptionModal=!1,[`self`])},[l(`div`,Ni,[l(`div`,Pi,[t[167]||=l(`h3`,null,`添加物料消耗`,-1),l(`button`,{class:`modal-close`,onClick:t[49]||=e=>j.showMaterialConsumptionModal=!1},`×`)]),l(`div`,Fi,[l(`div`,{class:`form-group form-group-spaced`},[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:qa},`+ 添加物料`)]),j.materialConsumptionItems.length===0?(r(),S(`div`,Ii,[...t[168]||=[l(`div`,{class:`empty-icon`},`📦`,-1),l(`div`,{class:`empty-title`},`暂无物料`,-1),l(`div`,{class:`empty-desc`},`请点击"添加物料"按钮添加物料消耗明细`,-1)]])):(r(),S(`div`,Li,[(r(!0),S(p,null,n(j.materialConsumptionItems,(e,i)=>(r(),S(`div`,{key:`material-consumption-line-`+i,class:`purchase-order-item`},[l(`div`,Ri,[l(`div`,zi,[t[170]||=l(`label`,{class:`form-label`},`物料 *`,-1),a(l(`select`,{"onUpdate:modelValue":t=>e.material_id=t,class:`form-input`,required:``},[t[169]||=l(`option`,{value:``},`请选择物料`,-1),(r(!0),S(p,null,n(j.materials,e=>(r(),S(`option`,{key:`consumption-material-`+e.id,value:e.id},o(e.sku)+` - `+o(e.name),9,Vi))),128))],8,Bi),[[d,e.material_id,void 0,{number:!0}]])]),l(`div`,Hi,[l(`div`,Ui,[l(`div`,Wi,[t[171]||=l(`label`,{class:`form-label`},`数量 *`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.quantity=t,type:`number`,min:`1`,class:`form-input`,placeholder:`请输入数量`,required:``},null,8,Gi),[[f,e.quantity,void 0,{number:!0}]])])]),l(`div`,Ki,[l(`div`,qi,[t[172]||=l(`label`,{class:`form-label`},`单价`,-1),l(`div`,Ji,` ¥`+o((j.materials.find(t=>t.id===e.material_id)?.cost_price||0).toFixed(2)),1)])]),l(`div`,Yi,[l(`div`,Xi,[t[173]||=l(`label`,{class:`form-label`},`总价`,-1),l(`div`,Zi,` ¥`+o(((j.materials.find(t=>t.id===e.material_id)?.cost_price||0)*(e.quantity||0)).toFixed(2)),1)])]),l(`div`,Qi,[l(`div`,$i,[t[174]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.remark=t,class:`form-input`,placeholder:`请输入备注`},null,8,ea),[[f,e.remark]])])]),l(`div`,ta,[l(`button`,{type:`button`,class:`btn btn-sm btn-danger`,onClick:e=>Ja(i)},`删除`,8,na)])])])]))),128))])),l(`div`,ra,[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:t[50]||=e=>j.showMaterialConsumptionModal=!1},`取消`),l(`button`,{type:`button`,class:`btn btn-primary`,onClick:Ya},`保存物料消耗`)])])])])):b(``,!0),j.showRestockModal?(r(),S(`div`,{key:2,class:`modal-overlay`,onClick:t[54]||=h(e=>j.showRestockModal=!1,[`self`])},[l(`div`,ia,[l(`div`,aa,[t[175]||=l(`h3`,null,`物料补货`,-1),l(`button`,{class:`modal-close`,onClick:t[52]||=e=>j.showRestockModal=!1},`×`)]),l(`div`,oa,[l(`div`,sa,[l(`div`,{class:`section-header`},[t[176]||=l(`h4`,null,`补货物料明细`,-1),l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:Za},`+ 添加物料`)]),j.restockItems.length===0?(r(),S(`div`,ca,[...t[177]||=[l(`div`,{class:`empty-icon`},`📦`,-1),l(`div`,{class:`empty-desc`},`请点击"添加物料"按钮添加补货物料明细`,-1)]])):(r(),S(`div`,la,[(r(!0),S(p,null,n(j.restockItems,(e,i)=>(r(),S(`div`,{key:`restock-line-`+i,class:`purchase-order-item`},[l(`div`,ua,[l(`div`,da,[l(`div`,fa,[t[178]||=l(`label`,{class:`form-label`},[x(`物料 `),l(`span`,{class:`required`},`*`)],-1),a(l(`select`,{"onUpdate:modelValue":t=>e.material_id=t,class:`form-input`,required:``},[(r(!0),S(p,null,n(j.materials,e=>(r(),S(`option`,{key:`restock-material-`+e.id,value:e.id},o(e.sku)+` - `+o(e.name),9,ma))),128))],8,pa),[[d,e.material_id,void 0,{number:!0}]])])]),l(`div`,ha,[l(`div`,ga,[t[179]||=l(`label`,{class:`form-label`},[x(`数量 `),l(`span`,{class:`required`},`*`)],-1),a(l(`input`,{"onUpdate:modelValue":t=>e.quantity=t,type:`number`,class:`form-input`,min:`1`,step:`1`,required:``},null,8,_a),[[f,e.quantity,void 0,{number:!0}]])])]),l(`div`,va,[l(`div`,ya,[t[180]||=l(`label`,{class:`form-label`},`单价`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.unit_price=t,type:`number`,class:`form-input`,min:`0`,step:`0.01`},null,8,ba),[[f,e.unit_price,void 0,{number:!0}]])])]),l(`div`,xa,[l(`div`,Sa,[t[181]||=l(`label`,{class:`form-label`},`总价`,-1),l(`div`,Ca,` ¥`+o(((e.unit_price||0)*(e.quantity||0)).toFixed(2)),1)])]),l(`div`,wa,[l(`div`,Ta,[t[182]||=l(`label`,{class:`form-label`},`备注`,-1),a(l(`input`,{"onUpdate:modelValue":t=>e.remark=t,class:`form-input`,placeholder:`请输入备注`},null,8,Ea),[[f,e.remark]])])]),l(`div`,Da,[l(`button`,{type:`button`,class:`btn btn-sm btn-danger`,onClick:e=>Qa(i)},`删除`,8,Oa)])])]))),128))]))])]),l(`div`,ka,[l(`button`,{type:`button`,class:`btn btn-secondary`,onClick:t[53]||=e=>j.showRestockModal=!1},`取消`),l(`button`,{type:`button`,class:`btn btn-primary`,onClick:$a},`创建采购订单`)])])])):b(``,!0)]))}}),[[`__scopeId`,`data-v-15993ef5`]]);export{E as default}; |