Files
xin-procurement/public/assets/order-DgVXnO1G.js
T
2026-08-15 00:19:00 +08:00

1 line
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{i as e}from"./rolldown-runtime-BgaNhQyE.js";import{Dr as t,t as n}from"./jsx-runtime-CRBytmvs.js";import{t as r}from"./typography-DRFhazK9.js";import{B as i,I as ee,O as te,a as ne}from"./lodash-VautP0iT.js";import{t as a}from"./table-BXi9q3AE.js";import{t as o}from"./space-Cu4QVMgQ.js";import{t as s}from"./button-BILozH6U.js";import{r as re}from"./DoubleRightOutlined-Blfli1UU.js";import{t as c}from"./empty-_1ZFK8yy.js";import{s as ie}from"./XinForm-B2aqXwsp.js";import{n as ae}from"./card-DU2T2-YW.js";import{t as l}from"./spin-CfJYIffX.js";import{t as u}from"./modal-g8Q5gNCx.js";import{t as d}from"./descriptions-BLF6MKiu.js";import{t as f}from"./form-B3R3kIqp.js";import{t as p}from"./image-bd65Ar6c.js";import{t as m}from"./input-CHcsaDtX.js";import{r as h}from"./CopyOutlined-pYq9KfGb.js";import{r as g}from"./PictureOutlined-CB8Pr7jP.js";import{t as oe}from"./popconfirm-DyseZgpU.js";import{t as _}from"./tag-DBV1bHre.js";import{t as se}from"./DownloadOutlined-DJY9Mu8c.js";import{t as ce}from"./XinTable-NSSoHqA_.js";import{t as v}from"./AuthButton-DvrpreK4.js";import{n as le}from"./iStoreOrder-CyyYoLoV.js";import{a as ue,c as de,i as fe,l as pe,n as me,o as he,s as ge,t as _e}from"./order-DZ-3wMA7.js";import{n as y,t as ve}from"./iPurchaseOrder-Dn-laOqY.js";import{t as ye}from"./supplier-BstAcwv7.js";var b=e(t(),1),x=n(),{Title:S,Text:C}=r,be=(e,t)=>{let n=parseFloat(t);return Number.isFinite(n)&&n>0?e/n:e},w=()=>{let e=(0,b.useRef)(null),[t,n]=(0,b.useState)(!1),[w,xe]=(0,b.useState)(null),[Se,T]=(0,b.useState)(!1),[Ce,E]=(0,b.useState)(!1),[D,O]=(0,b.useState)(null),[we,k]=(0,b.useState)(!1),[A]=f.useForm(),[Te,Ee]=(0,b.useState)([]),[j,M]=(0,b.useState)(!1),[De,N]=(0,b.useState)(!1),[P,Oe]=(0,b.useState)(null),[F,ke]=(0,b.useState)(null),[Ae,I]=(0,b.useState)(!1),[L,R]=(0,b.useState)(null),[je,z]=(0,b.useState)(!1),[B]=f.useForm(),[V,H]=(0,b.useState)(`items`),[U,W]=(0,b.useState)(0),[G,K]=(0,b.useState)(null),[q,J]=(0,b.useState)(!1),[Me,Y]=(0,b.useState)(!1),[X,Z]=(0,b.useState)(null),[Ne,Pe]=(0,b.useState)(!1),[Fe,Ie]=(0,b.useState)(!1),[Q]=f.useForm(),Le=f.useWatch(`stores`,Q)??[],Re=(X?.stores??[]).map((e,t)=>{let n=Le[t]??{},r=Number(n.delivery_fee??0),i=Number(n.box_num??0)*Number(e.box_price)+Number(n.tray_num??0)*Number(e.tray_price);return{added:i,total:Number(e.product_amount)+r+i}}),ze=(X?.stores??[]).length>0&&X.stores.every(e=>e.bill!==null);(0,b.useEffect)(()=>{ye().then(e=>Ee(e.data.data??[]))},[]),(0,b.useEffect)(()=>{j&&F&&Ue()},[j,F]),(0,b.useEffect)(()=>{w&&w.stores.length>0&&W(e=>w.stores.some(t=>t.id===e)?e:w.stores[0].id)},[w]),(0,b.useEffect)(()=>{t&&V===`stores`&&w&&U>0&&Ve()},[t,V,U,w?.purchase.id]);let $=async e=>{T(!0);try{let t=await he(e);xe(t.data.data??null)}finally{T(!1)}},Be=async e=>{H(`items`),K(null),n(!0),await $(e)},Ve=async()=>{if(!(!w||U<=0)){J(!0);try{let e=await ge(w.purchase.id,U);K(e.data.data??null)}finally{J(!1)}}},He=(e,t)=>{ke({productId:e.product_id,storeId:t.id}),Oe(null),M(!0)},Ue=async()=>{if(!(!w||!F)){N(!0);try{let e=await ue(w.purchase.id,F.productId,F.storeId);Oe(e.data.data??null)}finally{N(!1)}}},We=async()=>{await Ue(),w&&await $(w.purchase.id),await e.current?.reload()},Ge=e=>{R(e),B.setFieldsValue({quantity:e.quantity,price:Number(e.price??0),weight:Number(e.weight??0)}),I(!0)},Ke=async e=>{if(L?.id){z(!0);try{await de(L.id,e),g.success(`明细已更新,订货单与采购单汇总已重算`),I(!1),R(null),await We()}finally{z(!1)}}},qe=e=>{O(e),A.setFieldsValue({product_name:e.product_name,supplier_id:e.supplier_id>0?e.supplier_id:void 0,product_spec:e.product_spec,unit:e.unit,cost_price:Number(e.cost_price)})},Je=async t=>{if(!(!w||!D)){k(!0);try{let n=await pe(w.purchase.id,D.product_id,{...t,supplier_id:t.supplier_id??0});g.success(`已更新 ${n.data.data?.count??0} 条订货明细`),O(null),await $(w.purchase.id),await e.current?.reload()}finally{k(!1)}}},Ye=async e=>{Y(!0),Pe(!0),Z(null);try{let t=(await fe(e)).data.data??null;Z(t),Q.setFieldsValue({stores:(t?.stores??[]).map(e=>({store_id:e.store_id,delivery_fee:e.bill?Number(e.bill.delivery_fee):0,box_num:e.bill?e.bill.box_num:0,tray_num:e.bill?e.bill.tray_num:0}))})}finally{Pe(!1)}},Xe=async t=>{if(X){Ie(!0);try{let n=await me(X.purchase.id,t.stores);g.success(`已生成 ${n.data.data?.count??0} 张门店账单,采购单订单已关联`),Y(!1),Z(null),await e.current?.reload(),w&&w.purchase.id===X.purchase.id&&await $(w.purchase.id)}finally{Ie(!1)}}},Ze=async t=>{E(!0);try{await ie(`/purchase/order/${t}/finish`,{status:3}),g.success(`采购单已标记完成`),await e.current?.reload()}finally{E(!1)}},Qe=()=>{let e=[{title:`品名`,dataIndex:`product_name`,width:120,align:`center`},{title:`供应商`,dataIndex:`supplier`,width:110,align:`center`,render:(e,t)=>t.supplier?.name??`-`},{title:`参考成本单价`,key:`unit_cost`,width:100,align:`center`,render:(e,t)=>${be(Number(t.cost_price),t.product_spec??``).toFixed(2)}`},{title:`包规`,dataIndex:`product_spec`,align:`center`,width:90,render:e=>e||`-`},{title:`单位`,dataIndex:`unit`,width:70,align:`center`,render:e=>e||`-`},{title:`成本`,dataIndex:`cost_price`,width:90,align:`center`,render:e=>${Number(e).toFixed(2)}`}],t=(w?.stores??[]).map(e=>({title:(0,x.jsx)(`span`,{className:`text-[red]`,children:e.name}),key:`store-${e.id}`,width:100,align:`center`,render:(t,n)=>{let i=n.cells[e.id];return i===void 0?(0,x.jsx)(C,{type:`secondary`,children:`-`}):(0,x.jsx)(r.Link,{onClick:()=>He(n,e),children:i})}})),n=[{title:`合计数量`,key:`total_quantity`,width:90,align:`center`,render:(e,t)=>(0,x.jsx)(C,{strong:!0,children:t.quantity})},{title:`操作`,key:`action`,width:90,fixed:`right`,align:`center`,render:(e,t)=>(0,x.jsx)(x.Fragment,{children:w?.purchase.status===0?(0,x.jsx)(v,{auth:`purchase.order.update`,children:(0,x.jsx)(s,{size:`small`,type:`link`,icon:(0,x.jsx)(h,{}),onClick:()=>qe(t),children:`修改`})}):`-`})}];return[...e,...t,...n]},$e=()=>{let e=w?.stores??[],t=w?.items??[],n=e.map(e=>t.reduce((t,n)=>t+(n.cells[e.id]??0)*Number(n.cost_price),0)),r=t.reduce((e,t)=>e+Number(t.quantity),0),i=n.reduce((e,t)=>e+t,0);return(0,x.jsxs)(a.Summary.Row,{children:[(0,x.jsx)(a.Summary.Cell,{index:0,colSpan:6,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:`成本统计(按门店)`})}),n.map((t,n)=>(0,x.jsx)(a.Summary.Cell,{index:6+n,align:`center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,t.toFixed(2)]})},e[n].id)),(0,x.jsx)(a.Summary.Cell,{index:6+e.length,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:r})}),(0,x.jsx)(a.Summary.Cell,{index:7+e.length,align:`center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,i.toFixed(2)]})})]})},et=[{title:`商品`,dataIndex:`product_name`,width:160,align:`center`},{title:`参考零售价`,key:`retail_price`,width:130,align:`center`,render:(e,t)=>${be(Number(t.price),t.product_spec).toFixed(2)}`},{title:`包规`,dataIndex:`product_spec`,width:90,align:`center`,render:e=>e||`-`},{title:`单位`,dataIndex:`unit`,width:90,align:`center`,render:e=>e||`-`},{title:`单价`,dataIndex:`price`,width:100,align:`center`,render:e=>${Number(e).toFixed(2)}`},{title:`数量`,dataIndex:`quantity`,width:90,align:`center`,render:e=>(0,x.jsx)(C,{strong:!0,children:e})},{title:`重量`,dataIndex:`weight`,width:90,align:`center`,render:e=>`${e||`-`}斤`},{title:`预计金额`,dataIndex:`amount`,width:110,align:`center`,render:e=>(0,x.jsxs)(C,{strong:!0,children:[`¥`,Number(e).toFixed(2)]})}],tt=()=>{let e=G?.items??[],t=e.reduce((e,t)=>e+Number(t.quantity),0),n=e.reduce((e,t)=>e+Number(t.amount),0),r=e.reduce((e,t)=>e+Number(t.weight),0);return(0,x.jsxs)(a.Summary.Row,{children:[(0,x.jsx)(a.Summary.Cell,{index:0,colSpan:5,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:`合计`})}),(0,x.jsx)(a.Summary.Cell,{index:5,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:t})}),(0,x.jsx)(a.Summary.Cell,{index:6,align:`center`,children:(0,x.jsxs)(C,{strong:!0,children:[r.toFixed(3),`斤`]})}),(0,x.jsx)(a.Summary.Cell,{index:7,align:`center`,children:(0,x.jsxs)(C,{strong:!0,type:`danger`,children:[`¥`,n.toFixed(2)]})})]})},nt=[{title:`门店`,dataIndex:`store_name`,width:140,align:`center`},{title:`账单号`,dataIndex:`bill_no`,width:180,align:`center`,render:e=>(0,x.jsx)(C,{copyable:{text:e},children:e})},{title:`账单日期`,dataIndex:`bill_date`,width:110,align:`center`},{title:`商品金额`,dataIndex:`product_amount`,width:110,align:`center`,render:e=>${Number(e).toFixed(2)}`},{title:`配送费`,dataIndex:`delivery_fee`,width:100,align:`center`,render:e=>${Number(e).toFixed(2)}`},{title:`周转筐`,key:`box`,width:110,align:`center`,render:(e,t)=>`${t.box_num} × ¥${Number(t.box_price).toFixed(2)}`},{title:`周转托盘`,key:`tray`,width:110,align:`center`,render:(e,t)=>`${t.tray_num} × ¥${Number(t.tray_price).toFixed(2)}`},{title:`附加金额`,dataIndex:`added_amount`,width:100,align:`center`,render:e=>${Number(e).toFixed(2)}`},{title:`账单总金额`,dataIndex:`total_amount`,width:120,align:`center`,render:e=>(0,x.jsxs)(C,{strong:!0,type:`danger`,children:[`¥`,Number(e).toFixed(2)]})},{title:`支付状态`,dataIndex:`status`,width:100,align:`center`,render:e=>{let t=ve[Number(e??0)];return(0,x.jsx)(_,{color:t?.color,children:t?.text})}}],rt=()=>{let e=w?.bills??[],t=e.reduce((e,t)=>e+Number(t.product_amount),0),n=e.reduce((e,t)=>e+Number(t.delivery_fee),0),r=e.reduce((e,t)=>e+Number(t.added_amount),0),i=e.reduce((e,t)=>e+Number(t.total_amount),0);return(0,x.jsxs)(a.Summary.Row,{children:[(0,x.jsx)(a.Summary.Cell,{index:0,colSpan:3,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:`合计`})}),(0,x.jsx)(a.Summary.Cell,{index:3,align:`center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,t.toFixed(2)]})}),(0,x.jsx)(a.Summary.Cell,{index:4,align:`center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,n.toFixed(2)]})}),(0,x.jsx)(a.Summary.Cell,{index:5,colSpan:2,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:`-`})}),(0,x.jsx)(a.Summary.Cell,{index:7,align:`center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,r.toFixed(2)]})}),(0,x.jsx)(a.Summary.Cell,{index:8,align:`center`,children:(0,x.jsxs)(C,{strong:!0,type:`danger`,children:[`¥`,i.toFixed(2)]})}),(0,x.jsx)(a.Summary.Cell,{index:9,align:`center`,children:(0,x.jsx)(C,{strong:!0,children:`-`})})]})},it=[{title:`采购单号`,dataIndex:`purchase_no`,valueType:`text`,hideInForm:!0,align:`center`,width:260,render:(e,t)=>(0,x.jsx)(C,{copyable:{text:t.purchase_no},children:t.purchase_no})},{title:`采购日期`,dataIndex:`purchase_date`,valueType:`date`,align:`center`,hideInForm:!0,render:(e,t)=>t.purchase_date},{title:`预估成本`,dataIndex:`estimate_amount`,hideInForm:!0,hideInSearch:!0,align:`center`,render:(e,t)=>${t.estimate_amount}`},{title:`实际成本`,dataIndex:`actual_amount`,hideInSearch:!0,valueType:`digit`,fieldProps:{min:0,precision:3,placeholder:`请输入单价`},align:`center`,render:(e,t)=>Number(t.actual_amount)>0?(0,x.jsxs)(C,{strong:!0,children:[`¥`,t.actual_amount]}):(0,x.jsx)(C,{type:`secondary`,children:`未录入`})},{title:`总件数`,dataIndex:`total_quantity`,hideInForm:!0,hideInSearch:!0,align:`center`},{title:`备注`,dataIndex:`remark`,valueType:`textarea`,hideInTable:!0,hideInSearch:!0},{title:`总重量`,dataIndex:`total_weight`,hideInForm:!0,hideInSearch:!0,align:`center`,render:(e,t)=>`${t.total_weight}斤`},{title:`状态`,dataIndex:`status`,valueType:`select`,hideInForm:!0,fieldProps:{options:Object.entries(y).map(([e,t])=>({value:Number(e),label:t.text}))},render:(e,t)=>{let n=y[t.status??0];return(0,x.jsx)(_,{color:n?.color,children:n?.text})},align:`center`},{title:`制单人`,dataIndex:`operator`,hideInForm:!0,hideInSearch:!0,render:(e,t)=>t.operator?.nickname??`-`,align:`center`}];return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`mb-5`,children:[(0,x.jsx)(S,{level:3,children:`采购单`}),(0,x.jsx)(C,{type:`secondary`,children:`在「门店订单」页勾选已接单订单合并生成采购单;采购单支持修改订单信息。`})]}),(0,x.jsx)(ce,{api:`/purchase/order`,columns:it,rowKey:`id`,accessName:`purchase.order`,tableRef:e,operateRender:(e,t)=>[e.status===0?t.edit:null,(0,x.jsx)(s,{size:`small`,icon:(0,x.jsx)(ne,{}),type:`primary`,onClick:()=>Be(e.id)},`detail`),e.status===0?(0,x.jsx)(v,{auth:`purchase.order.update`,children:(0,x.jsx)(oe,{title:`确认该采购单已完成?`,description:`已完成采购单将锁定,不能再修改订单信息`,onConfirm:()=>Ze(e.id),children:(0,x.jsx)(s,{type:`primary`,size:`small`,variant:`solid`,color:`green`,loading:Ce,children:`完成采购`})})}):(0,x.jsx)(v,{auth:`purchase.order.bill`,children:(0,x.jsx)(s,{type:`primary`,size:`small`,variant:`solid`,color:`orange`,icon:(0,x.jsx)(te,{}),onClick:()=>Ye(e.id),children:`生成账单`})})],operateProps:{width:300},formProps:!1}),(0,x.jsx)(ee,{title:w?`采购单 ${w.purchase.purchase_no}`:`采购单详情`,open:t,onClose:()=>n(!1),size:1200,loading:Se,children:w&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(S,{level:5,className:`mb-3!`,children:`采购单信息`}),(0,x.jsxs)(d,{column:3,size:`small`,bordered:!0,children:[(0,x.jsx)(d.Item,{label:`采购日期`,children:w.purchase.purchase_date}),(0,x.jsx)(d.Item,{label:`状态`,children:(0,x.jsx)(_,{color:y[w.purchase.status??0]?.color,children:y[w.purchase.status??0]?.text})}),(0,x.jsx)(d.Item,{label:`制单人`,children:w.purchase.operator?.nickname??`-`}),(0,x.jsxs)(d.Item,{label:`预估成本`,children:[`¥`,w.purchase.estimate_amount]}),(0,x.jsxs)(d.Item,{label:`实际成本`,children:[`¥`,w.purchase.actual_amount]}),(0,x.jsx)(d.Item,{label:`总件数`,children:w.purchase.total_quantity}),(0,x.jsx)(d.Item,{label:`总重量`,children:w.purchase.total_weight}),(0,x.jsx)(d.Item,{label:`创建时间`,span:2,children:w.purchase.created_at}),(0,x.jsx)(d.Item,{label:`备注`,span:3,children:w.purchase.remark})]}),(0,x.jsx)(ae,{activeKey:V,onChange:H,className:`mt-3!`,items:[{key:`items`,label:`商品明细`},{key:`stores`,label:`门店购买详情`},{key:`bills`,label:`门店账单`}]}),V===`stores`?(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`mb-3 flex items-center gap-2`,children:[(0,x.jsx)(C,{children:`选择门店:`}),(0,x.jsx)(re,{value:U||void 0,onChange:e=>W(e),placeholder:`选择门店`,className:`w-60!`,showSearch:!0,optionFilterProp:`label`,options:w.stores.map(e=>({value:e.id,label:e.name}))})]}),(0,x.jsx)(l,{spinning:q,children:G&&G.items.length>0?(0,x.jsx)(a,{rowKey:`product_id`,size:`small`,bordered:!0,columns:et,dataSource:G.items,pagination:!1,summary:tt}):!q&&(0,x.jsx)(c,{image:c.PRESENTED_IMAGE_SIMPLE,description:`该门店在此采购单中无采购商品`,className:`py-8!`})})]}):V===`bills`?w.bills.length>0?(0,x.jsx)(a,{rowKey:`id`,size:`small`,bordered:!0,columns:nt,dataSource:w.bills,pagination:!1,summary:rt}):(0,x.jsx)(c,{image:c.PRESENTED_IMAGE_SIMPLE,description:w.purchase.status===0?`采购单完成后可在列表操作列生成账单`:`该采购单暂未生成账单`,className:`py-8!`}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(o,{style:{marginBottom:20},children:(0,x.jsx)(v,{auth:`purchase.order.export`,children:(0,x.jsx)(s,{type:`primary`,ghost:!0,icon:(0,x.jsx)(se,{}),onClick:()=>w&&_e(w.purchase.id),children:`导出`})},`export`)}),(0,x.jsx)(a,{rowKey:`product_id`,size:`small`,bordered:!0,columns:Qe(),dataSource:w.items,pagination:!1,scroll:{x:`max-content`},summary:$e})]})]})}),(0,x.jsxs)(u,{title:D?`修改「${D.product_name}」`:`修改明细行`,open:D!==null,onCancel:()=>O(null),destroyOnHidden:!0,footer:[(0,x.jsx)(s,{onClick:()=>O(null),children:`取消`},`cancel`),(0,x.jsx)(s,{type:`primary`,loading:we,onClick:()=>A.submit(),children:`保存`},`purchase`)],children:[(0,x.jsx)(`div`,{className:`py-2 text-gray-500`,children:`「保存」仅修改本采购单中该商品的所有订单项`}),(0,x.jsxs)(f,{form:A,layout:`vertical`,onFinish:Je,children:[(0,x.jsx)(f.Item,{label:`品名`,name:`product_name`,rules:[{required:!0,message:`请输入品名`},{max:100}],children:(0,x.jsx)(m,{maxLength:100})}),(0,x.jsx)(f.Item,{label:`供应商`,name:`supplier_id`,rules:[{required:!0,message:`请选择供应商`}],children:(0,x.jsx)(re,{allowClear:!0,showSearch:{optionFilterProp:`label`},placeholder:`选择供应商`,options:Te.map(e=>({value:e.id,label:e.name}))})}),(0,x.jsx)(f.Item,{label:`包规`,name:`product_spec`,rules:[{required:!0,message:`请输入包规`},{max:100}],children:(0,x.jsx)(m,{maxLength:100,placeholder:`如:10斤/箱`})}),(0,x.jsx)(f.Item,{label:`单位`,name:`unit`,rules:[{required:!0,message:`请输入单位`},{max:20}],children:(0,x.jsx)(m,{maxLength:20,placeholder:`如:斤`})}),(0,x.jsx)(f.Item,{label:`成本`,name:`cost_price`,rules:[{required:!0,message:`请输入成本`}],children:(0,x.jsx)(i,{min:0,precision:2,prefix:`¥`,className:`w-full`})})]})]}),(0,x.jsx)(u,{title:P?`${P.store?.name??``} · ${P.product?.name??``}`:`门店商品明细`,open:j,onCancel:()=>M(!1),footer:null,width:1e3,destroyOnHidden:!0,styles:{body:{paddingTop:16}},children:(0,x.jsx)(l,{spinning:De,children:P&&(0,x.jsxs)(x.Fragment,{children:[P.items.length===0?(0,x.jsx)(c,{image:c.PRESENTED_IMAGE_SIMPLE,description:`该门店无此商品明细`,className:`py-8!`}):(0,x.jsxs)(`div`,{className:`overflow-hidden rounded border border-gray-200`,children:[(0,x.jsxs)(`div`,{className:`flex bg-gray-50 px-4 py-2 text-sm text-gray-500`,children:[(0,x.jsx)(`div`,{className:`flex-1`,children:`商品信息`}),(0,x.jsx)(`div`,{className:`w-30 shrink-0 text-center`,children:`单价`}),(0,x.jsx)(`div`,{className:`w-26 shrink-0 text-center`,children:`订货量`}),(0,x.jsx)(`div`,{className:`w-33 shrink-0 text-center`,children:`订货金额`}),(0,x.jsx)(`div`,{className:`w-33 shrink-0 text-center`,children:`重量`}),(0,x.jsx)(`div`,{className:`w-40 shrink-0 text-center`,children:`操作`})]}),P.items.map(e=>(0,x.jsxs)(`div`,{className:`flex items-center border-t border-gray-100 px-4 py-3`,children:[(0,x.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center`,children:[(0,x.jsx)(p.PreviewGroup,{children:e.image?(0,x.jsx)(p,{src:e.image,width:48,height:48,style:{objectFit:`cover`,borderRadius:4}}):(0,x.jsx)(`div`,{className:`flex h-12 w-12 shrink-0 items-center justify-center rounded bg-gray-100 text-xs text-gray-400`,children:`暂无图片`})}),(0,x.jsxs)(`div`,{className:`ml-3 min-w-0`,children:[(0,x.jsxs)(`div`,{className:`text-sm font-medium`,children:[e.product_name,(0,x.jsx)(_,{className:`ml-2!`,color:le[e.order_status]?.color,children:le[e.order_status]?.text})]}),(0,x.jsxs)(`div`,{className:`mt-0.5 text-xs text-gray-500`,children:[`订单:`,e.order_no]}),e.remark?(0,x.jsxs)(`div`,{className:`mt-0.5 truncate text-xs text-gray-500`,children:[`备注:`,e.remark]}):null]})]}),(0,x.jsxs)(`div`,{className:`w-30 shrink-0 text-center`,children:[`¥`,e.price]}),(0,x.jsx)(`div`,{className:`w-26 shrink-0 text-center`,children:e.quantity}),(0,x.jsx)(`div`,{className:`w-33 shrink-0 text-center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,e.amount]})}),(0,x.jsxs)(`div`,{className:`w-33 shrink-0 text-center`,children:[e.weight??`-`,` 斤`]}),(0,x.jsx)(`div`,{className:`w-40 shrink-0 text-center`,children:w?.purchase.status===0?(0,x.jsx)(o,{size:0,children:(0,x.jsx)(v,{auth:`purchase.order.update`,children:(0,x.jsx)(s,{type:`link`,size:`small`,icon:(0,x.jsx)(h,{}),onClick:()=>Ge(e),children:`编辑`})})}):(0,x.jsx)(C,{type:`secondary`,children:`-`})})]},e.id))]}),P.items.length>0&&(0,x.jsxs)(`div`,{className:`mt-3! flex justify-end gap-6 text-sm`,children:[(0,x.jsxs)(C,{type:`secondary`,children:[`合计数量:`,(0,x.jsx)(C,{strong:!0,children:P.items.reduce((e,t)=>e+t.quantity,0)})]}),(0,x.jsxs)(C,{type:`secondary`,children:[`合计订货金额:`,(0,x.jsxs)(C,{strong:!0,type:`danger`,children:[`¥`,P.items.reduce((e,t)=>e+Number(t.amount),0).toFixed(2)]})]})]})]})})}),(0,x.jsxs)(u,{title:L?`编辑「${L.product_name}」`:`编辑明细`,open:Ae,onCancel:()=>{I(!1),R(null)},onOk:()=>B.submit(),confirmLoading:je,okText:`保存`,destroyOnHidden:!0,children:[(0,x.jsxs)(`div`,{className:`py-2 text-gray-500`,children:[`订单 `,L?.order_no,`;修改保存后,系统将自动重算明细金额、订货单与采购单汇总。`]}),(0,x.jsxs)(f,{form:B,layout:`vertical`,onFinish:Ke,children:[(0,x.jsx)(f.Item,{label:`单价(元)`,name:`price`,rules:[{required:!0,message:`请输入单价`}],children:(0,x.jsx)(i,{className:`w-full`,min:0,precision:2,placeholder:`请输入单价`})}),(0,x.jsx)(f.Item,{label:`订货量`,name:`quantity`,rules:[{required:!0,message:`请输入订货量`}],children:(0,x.jsx)(i,{className:`w-full`,min:0,precision:0,placeholder:`请输入订货量`})}),(0,x.jsx)(f.Item,{label:`称重`,name:`weight`,rules:[{required:!0,message:`请输入称重`}],children:(0,x.jsx)(i,{className:`w-full`,min:0,precision:3,placeholder:`请输入称重`})})]})]}),(0,x.jsx)(u,{title:X?`生成账单 · ${X.purchase.purchase_no}`:`生成账单`,open:Me,onCancel:()=>{Y(!1),Z(null)},onOk:()=>Q.submit(),confirmLoading:Fe,okText:`确认生成`,okButtonProps:{disabled:ze},width:960,destroyOnHidden:!0,children:(0,x.jsx)(l,{spinning:Ne,children:X&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsxs)(`div`,{className:`py-2 text-gray-500`,children:[`每个门店单独生成一张账单;商品金额由订单汇总不可修改,请填写各门店的配送费与周转筐/托盘数量(正数=压筐附加金额,负数=回筐抵扣金额)。`,ze?`该采购单已全部生成账单,仅可查看。`:`生成后采购单中的全部订单将关联到对应门店账单。`]}),(0,x.jsx)(f,{form:Q,layout:`vertical`,onFinish:Xe,children:(0,x.jsx)(f.List,{name:`stores`,children:e=>(0,x.jsxs)(`div`,{className:`overflow-hidden rounded border border-gray-200`,children:[(0,x.jsxs)(`div`,{className:`flex bg-gray-50 px-4 py-2 text-sm text-gray-500`,children:[(0,x.jsx)(`div`,{className:`w-40 shrink-0`,children:`门店`}),(0,x.jsx)(`div`,{className:`w-28 shrink-0 text-center`,children:`商品金额`}),(0,x.jsx)(`div`,{className:`w-32 shrink-0 text-center`,children:`配送费(元)`}),(0,x.jsxs)(`div`,{className:`w-32 shrink-0 text-center`,children:[`周转筐(¥`,X.stores[0]?.box_price??`0.00`,`/个)`]}),(0,x.jsxs)(`div`,{className:`w-32 shrink-0 text-center`,children:[`周转托盘(¥`,X.stores[0]?.tray_price??`0.00`,`/个)`]}),(0,x.jsx)(`div`,{className:`w-28 shrink-0 text-center`,children:`附加金额`}),(0,x.jsx)(`div`,{className:`flex-1 text-center`,children:`账单总金额`})]}),e.map(e=>{let t=X.stores[e.name],n=t?.bill!=null;return(0,x.jsxs)(`div`,{className:`flex items-center border-t border-gray-100 px-4 py-2`,children:[(0,x.jsxs)(`div`,{className:`w-40 shrink-0 pr-2 text-sm`,children:[(0,x.jsx)(`div`,{children:t?.store_name??`-`}),(0,x.jsxs)(`div`,{className:`text-xs text-gray-400`,children:[t?.order_count??0,` 笔订单`,n&&(0,x.jsx)(_,{className:`ml-1!`,color:`success`,children:`已生成`})]})]}),(0,x.jsx)(`div`,{className:`w-28 shrink-0 text-center`,children:(0,x.jsxs)(C,{strong:!0,children:[`¥`,t?.product_amount??`0.00`]})}),(0,x.jsx)(f.Item,{name:[e.name,`store_id`],hidden:!0,children:(0,x.jsx)(m,{})}),(0,x.jsx)(f.Item,{className:`m-0! w-32 shrink-0 px-1!`,name:[e.name,`delivery_fee`],rules:[{required:!0,message:`请输入配送费`}],children:(0,x.jsx)(i,{className:`w-full`,min:0,precision:2,disabled:n,placeholder:`配送费`})}),(0,x.jsx)(f.Item,{className:`m-0! w-32 shrink-0 px-1!`,name:[e.name,`box_num`],rules:[{required:!0,message:`请输入周转筐数量`}],children:(0,x.jsx)(i,{className:`w-full`,precision:0,disabled:n,placeholder:`正压负回`})}),(0,x.jsx)(f.Item,{className:`m-0! w-32 shrink-0 px-1!`,name:[e.name,`tray_num`],rules:[{required:!0,message:`请输入周转托盘数量`}],children:(0,x.jsx)(i,{className:`w-full`,precision:0,disabled:n,placeholder:`正压负回`})}),(0,x.jsxs)(`div`,{className:`w-28 shrink-0 text-center`,children:[`¥`,(n?Number(t.bill.added_amount):Re[e.name]?.added??0).toFixed(2)]}),(0,x.jsxs)(`div`,{className:`flex-1 text-center`,children:[(0,x.jsxs)(C,{strong:!0,type:`danger`,children:[`¥`,(n?Number(t.bill.total_amount):Re[e.name]?.total??0).toFixed(2)]}),n&&(0,x.jsx)(`div`,{className:`text-xs text-gray-400`,children:t.bill.bill_no})]})]},e.key)})]})})})]})})})]})};export{w as default};