This commit is contained in:
2026-07-31 16:55:52 +08:00
parent 2f811b986c
commit 4ec6f98f10
28 changed files with 30 additions and 30 deletions
@@ -115,8 +115,8 @@ function removeOrderItem(index: number) {
const orderTotalAmount = computed(() => {
return orderItems.value.reduce((sum: number, item: any) => {
const material = state.materials.find((m: any) => m.id === item.product_id)
const unitPrice = material?.cost_price || 0
return sum + unitPrice * (item.quantity || 0)
const unitPrice = Number(material?.cost_price || 0)
return sum + unitPrice * Number(item.quantity || 0)
}, 0)
})
@@ -491,7 +491,7 @@ onMounted(() => {
</t-table-column>
<t-table-column label="总价" width="120">
<template #default="{ row: line }">
{{ formatCurrency((state.materials.find((m: any) => m.id === line.product_id)?.cost_price || 0) * (line.quantity || 0)) }}
{{ formatCurrency(Number(state.materials.find((m: any) => m.id === line.product_id)?.cost_price || 0) * Number(line.quantity || 0)) }}
</template>
</t-table-column>
<t-table-column label="备注" width="150">
@@ -277,8 +277,8 @@ function removeConsumptionItem(index: number) {
const consumptionTotalAmount = computed(() => {
return consumptionItems.value.reduce((sum: number, item: any) => {
const material = state.materials.find((m: any) => m.id === item.material_id)
const unitPrice = material?.cost_price || 0
return sum + unitPrice * (item.quantity || 0)
const unitPrice = Number(material?.cost_price || 0)
return sum + unitPrice * Number(item.quantity || 0)
}, 0)
})
@@ -604,7 +604,7 @@ onMounted(() => {
</t-table-column>
<t-table-column label="总价" width="120">
<template #default="{ row: line }">
{{ formatCurrency((state.materials.find((m: any) => m.id === line.material_id)?.cost_price || 0) * (line.quantity || 0)) }}
{{ formatCurrency(Number(state.materials.find((m: any) => m.id === line.material_id)?.cost_price || 0) * Number(line.quantity || 0)) }}
</template>
</t-table-column>
<t-table-column label="备注" width="150">
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,D as t,F as n,N as r,P as i,R as a,S as o,T as s,g as c,i as l,j as u,k as d,n as f,r as p,s as m,x as h,y as g}from"./index-BoystVy-.js";import{t as _}from"./useInventory-C7Zfw7oO.js";var v={class:`customers-tab`},y={class:`table-header`},b=f(e({__name:`CustomersTab`,setup(e){let{state:f,loadCustomers:b}=_(),x=i(!1),S=i(null),C=i(!1),w=r({name:``,contact_person:``,phone:``,email:``,address:``});function T(){S.value=null,w.name=``,w.contact_person=``,w.phone=``,w.email=``,w.address=``,x.value=!0}function E(e){S.value=e,w.name=e.name??``,w.contact_person=e.contact_person??``,w.phone=e.phone??``,w.email=e.email??``,w.address=e.address??``,x.value=!0}async function D(){if(!C.value){if(!w.name||!w.name.trim()){p(`请输入客户名称`,`warning`);return}C.value=!0;try{let e={name:w.name,contact_person:w.contact_person||null,phone:w.phone||null,email:w.email||null,address:w.address||null};S.value?(await m(`/api/customers/${S.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),p(`客户更新成功`,`success`)):(await m(`/api/customers`,{method:`POST`,body:JSON.stringify(e)}),p(`客户已创建`,`success`)),x.value=!1,b()}catch(e){l(e,`保存客户`)}finally{C.value=!1}}}async function O(e){if(confirm(`确定要删除这个客户吗?`))try{await m(`/api/customers/${e}`,{method:`DELETE`}),p(`客户已删除`,`success`),b()}catch(e){l(e,`删除客户`)}}return s(()=>{b()}),(e,r)=>{let i=d(`t-button`),s=d(`t-table-column`),l=d(`t-table`),p=d(`t-input`),m=d(`t-form-item`),_=d(`t-form`),b=d(`t-dialog`);return t(),g(`div`,v,[c(`div`,y,[o(i,{type:`primary`,onClick:T},{default:u(()=>[...r[7]||=[h(`+ 新增客户`,-1)]]),_:1})]),o(l,{data:n(f).customers,style:{width:`100%`},loading:n(f).loading,"empty-text":`暂无客户数据`},{default:u(()=>[o(s,{prop:`code`,label:`编码`}),o(s,{prop:`name`,label:`名称`}),o(s,{prop:`contact_person`,label:`联系人`},{default:u(({row:e})=>[h(a(e.contact_person||`-`),1)]),_:1}),o(s,{prop:`phone`,label:`电话`},{default:u(({row:e})=>[h(a(e.phone||`-`),1)]),_:1}),o(s,{prop:`email`,label:`邮箱`},{default:u(({row:e})=>[h(a(e.email||`-`),1)]),_:1}),o(s,{label:`操作`,width:`180`},{default:u(({row:e})=>[o(i,{size:`small`,onClick:t=>E(e)},{default:u(()=>[...r[8]||=[h(`编辑`,-1)]]),_:1},8,[`onClick`]),o(i,{size:`small`,type:`danger`,onClick:t=>O(e.id)},{default:u(()=>[...r[9]||=[h(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(b,{modelValue:x.value,"onUpdate:modelValue":r[6]||=e=>x.value=e,title:S.value?`编辑客户`:`新增客户`,width:`520px`,"close-on-click-modal":!1},{footer:u(()=>[o(i,{onClick:r[5]||=e=>x.value=!1,disabled:C.value},{default:u(()=>[...r[10]||=[h(`取消`,-1)]]),_:1},8,[`disabled`]),o(i,{type:`primary`,loading:C.value,disabled:C.value,onClick:D},{default:u(()=>[...r[11]||=[h(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:u(()=>[o(_,{model:w,"label-width":`80px`},{default:u(()=>[o(m,{label:`名称`,required:``},{default:u(()=>[o(p,{modelValue:w.name,"onUpdate:modelValue":r[0]||=e=>w.name=e,placeholder:`请输入客户名称`},null,8,[`modelValue`])]),_:1}),o(m,{label:`联系人`},{default:u(()=>[o(p,{modelValue:w.contact_person,"onUpdate:modelValue":r[1]||=e=>w.contact_person=e,placeholder:`请输入联系人`},null,8,[`modelValue`])]),_:1}),o(m,{label:`电话`},{default:u(()=>[o(p,{modelValue:w.phone,"onUpdate:modelValue":r[2]||=e=>w.phone=e,placeholder:`请输入电话`},null,8,[`modelValue`])]),_:1}),o(m,{label:`邮箱`},{default:u(()=>[o(p,{modelValue:w.email,"onUpdate:modelValue":r[3]||=e=>w.email=e,type:`email`,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1}),o(m,{label:`地址`},{default:u(()=>[o(p,{modelValue:w.address,"onUpdate:modelValue":r[4]||=e=>w.address=e,placeholder:`请输入地址`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-36237339`]]);export{b as default};
import{C as e,D as t,F as n,N as r,P as i,R as a,S as o,T as s,g as c,i as l,j as u,k as d,n as f,r as p,s as m,x as h,y as g}from"./index-Dngmm__P.js";import{t as _}from"./useInventory-CrXJ8kdd.js";var v={class:`customers-tab`},y={class:`table-header`},b=f(e({__name:`CustomersTab`,setup(e){let{state:f,loadCustomers:b}=_(),x=i(!1),S=i(null),C=i(!1),w=r({name:``,contact_person:``,phone:``,email:``,address:``});function T(){S.value=null,w.name=``,w.contact_person=``,w.phone=``,w.email=``,w.address=``,x.value=!0}function E(e){S.value=e,w.name=e.name??``,w.contact_person=e.contact_person??``,w.phone=e.phone??``,w.email=e.email??``,w.address=e.address??``,x.value=!0}async function D(){if(!C.value){if(!w.name||!w.name.trim()){p(`请输入客户名称`,`warning`);return}C.value=!0;try{let e={name:w.name,contact_person:w.contact_person||null,phone:w.phone||null,email:w.email||null,address:w.address||null};S.value?(await m(`/api/customers/${S.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),p(`客户更新成功`,`success`)):(await m(`/api/customers`,{method:`POST`,body:JSON.stringify(e)}),p(`客户已创建`,`success`)),x.value=!1,b()}catch(e){l(e,`保存客户`)}finally{C.value=!1}}}async function O(e){if(confirm(`确定要删除这个客户吗?`))try{await m(`/api/customers/${e}`,{method:`DELETE`}),p(`客户已删除`,`success`),b()}catch(e){l(e,`删除客户`)}}return s(()=>{b()}),(e,r)=>{let i=d(`t-button`),s=d(`t-table-column`),l=d(`t-table`),p=d(`t-input`),m=d(`t-form-item`),_=d(`t-form`),b=d(`t-dialog`);return t(),g(`div`,v,[c(`div`,y,[o(i,{type:`primary`,onClick:T},{default:u(()=>[...r[7]||=[h(`+ 新增客户`,-1)]]),_:1})]),o(l,{data:n(f).customers,style:{width:`100%`},loading:n(f).loading,"empty-text":`暂无客户数据`},{default:u(()=>[o(s,{prop:`code`,label:`编码`}),o(s,{prop:`name`,label:`名称`}),o(s,{prop:`contact_person`,label:`联系人`},{default:u(({row:e})=>[h(a(e.contact_person||`-`),1)]),_:1}),o(s,{prop:`phone`,label:`电话`},{default:u(({row:e})=>[h(a(e.phone||`-`),1)]),_:1}),o(s,{prop:`email`,label:`邮箱`},{default:u(({row:e})=>[h(a(e.email||`-`),1)]),_:1}),o(s,{label:`操作`,width:`180`},{default:u(({row:e})=>[o(i,{size:`small`,onClick:t=>E(e)},{default:u(()=>[...r[8]||=[h(`编辑`,-1)]]),_:1},8,[`onClick`]),o(i,{size:`small`,type:`danger`,onClick:t=>O(e.id)},{default:u(()=>[...r[9]||=[h(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(b,{modelValue:x.value,"onUpdate:modelValue":r[6]||=e=>x.value=e,title:S.value?`编辑客户`:`新增客户`,width:`520px`,"close-on-click-modal":!1},{footer:u(()=>[o(i,{onClick:r[5]||=e=>x.value=!1,disabled:C.value},{default:u(()=>[...r[10]||=[h(`取消`,-1)]]),_:1},8,[`disabled`]),o(i,{type:`primary`,loading:C.value,disabled:C.value,onClick:D},{default:u(()=>[...r[11]||=[h(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:u(()=>[o(_,{model:w,"label-width":`80px`},{default:u(()=>[o(m,{label:`名称`,required:``},{default:u(()=>[o(p,{modelValue:w.name,"onUpdate:modelValue":r[0]||=e=>w.name=e,placeholder:`请输入客户名称`},null,8,[`modelValue`])]),_:1}),o(m,{label:`联系人`},{default:u(()=>[o(p,{modelValue:w.contact_person,"onUpdate:modelValue":r[1]||=e=>w.contact_person=e,placeholder:`请输入联系人`},null,8,[`modelValue`])]),_:1}),o(m,{label:`电话`},{default:u(()=>[o(p,{modelValue:w.phone,"onUpdate:modelValue":r[2]||=e=>w.phone=e,placeholder:`请输入电话`},null,8,[`modelValue`])]),_:1}),o(m,{label:`邮箱`},{default:u(()=>[o(p,{modelValue:w.email,"onUpdate:modelValue":r[3]||=e=>w.email=e,type:`email`,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1}),o(m,{label:`地址`},{default:u(()=>[o(p,{modelValue:w.address,"onUpdate:modelValue":r[4]||=e=>w.address=e,placeholder:`请输入地址`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-36237339`]]);export{b as default};
@@ -1 +1 @@
import{C as e,D as t,F as n,O as r,R as i,S as a,_ as o,g as s,j as c,k as l,m as u,y as d}from"./index-BoystVy-.js";import{t as f}from"./useInventory-C7Zfw7oO.js";var p={style:{display:`flex`,"align-items":`center`,gap:`12px`}},m={style:{"font-size":`32px`}},h={style:{"font-size":`24px`,"font-weight":`700`}},g={style:{color:`var(--text-tertiary)`,"font-size":`13px`}},_=e({__name:`DashboardTab`,setup(e){let{state:_,formatCurrency:v}=f();return(e,f)=>{let y=l(`t-card`),b=l(`t-col`),x=l(`t-row`);return t(),o(x,{gutter:16},{default:c(()=>[(t(!0),d(u,null,r([{icon:`📦`,value:n(_).dashboard?.finished_product_count||0,label:`成品数量`},{icon:`📊`,value:n(_).dashboard?.total_stock||0,label:`物料库存总量`},{icon:`💰`,value:n(v)(n(_).dashboard?.total_value||0),label:`库存价值`},{icon:`🏭`,value:n(_).dashboard?.supplier_count||0,label:`供应商`},{icon:`👥`,value:n(_).dashboard?.customer_count||0,label:`客户`},{icon:`🏪`,value:n(_).dashboard?.warehouse_count||0,label:`仓库`}],e=>(t(),o(b,{span:8,key:e.label,style:{"margin-bottom":`16px`}},{default:c(()=>[a(y,{shadow:`hover`},{default:c(()=>[s(`div`,p,[s(`span`,m,i(e.icon),1),s(`div`,null,[s(`div`,h,i(e.value),1),s(`div`,g,i(e.label),1)])])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}});export{_ as default};
import{C as e,D as t,F as n,O as r,R as i,S as a,_ as o,g as s,j as c,k as l,m as u,y as d}from"./index-Dngmm__P.js";import{t as f}from"./useInventory-CrXJ8kdd.js";var p={style:{display:`flex`,"align-items":`center`,gap:`12px`}},m={style:{"font-size":`32px`}},h={style:{"font-size":`24px`,"font-weight":`700`}},g={style:{color:`var(--text-tertiary)`,"font-size":`13px`}},_=e({__name:`DashboardTab`,setup(e){let{state:_,formatCurrency:v}=f();return(e,f)=>{let y=l(`t-card`),b=l(`t-col`),x=l(`t-row`);return t(),o(x,{gutter:16},{default:c(()=>[(t(!0),d(u,null,r([{icon:`📦`,value:n(_).dashboard?.finished_product_count||0,label:`成品数量`},{icon:`📊`,value:n(_).dashboard?.total_stock||0,label:`物料库存总量`},{icon:`💰`,value:n(v)(n(_).dashboard?.total_value||0),label:`库存价值`},{icon:`🏭`,value:n(_).dashboard?.supplier_count||0,label:`供应商`},{icon:`👥`,value:n(_).dashboard?.customer_count||0,label:`客户`},{icon:`🏪`,value:n(_).dashboard?.warehouse_count||0,label:`仓库`}],e=>(t(),o(b,{span:8,key:e.label,style:{"margin-bottom":`16px`}},{default:c(()=>[a(y,{shadow:`hover`},{default:c(()=>[s(`div`,p,[s(`span`,m,i(e.icon),1),s(`div`,null,[s(`div`,h,i(e.value),1),s(`div`,g,i(e.label),1)])])]),_:2},1024)]),_:2},1024))),128))]),_:1})}}});export{_ as default};
@@ -1 +1 @@
import{D as e,g as t,n,y as r}from"./index-BoystVy-.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`设计体系`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
import{D as e,g as t,n,y as r}from"./index-Dngmm__P.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`设计体系`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,D as t,F as n,N as r,O as i,P as a,S as o,T as s,_ as c,g as l,i as u,j as d,k as f,m as p,n as m,r as h,s as g,x as _,y as v}from"./index-BoystVy-.js";import{t as y}from"./useInventory-C7Zfw7oO.js";var b={class:`inventory-tab`},x={class:`table-header`},S=m(e({__name:`InventoryTab`,setup(e){let{state:m,loadInventory:S,ensureStockBaseData:C}=y(),w=a(!1),T=a(null),E=a(!1),D=r({product_id:null,warehouse_id:null,quantity:0,locked_quantity:0,batch_no:``,location:``});function O(){C(),T.value=null,D.product_id=null,D.warehouse_id=null,D.quantity=0,D.locked_quantity=0,D.batch_no=``,D.location=``,w.value=!0}function k(e){C(),T.value=e,D.product_id=e.product_id??null,D.warehouse_id=e.warehouse_id??null,D.quantity=e.quantity??0,D.locked_quantity=e.locked_quantity??0,D.batch_no=e.batch_no??``,D.location=e.location??``,w.value=!0}async function A(){if(!E.value){if(!D.product_id){h(`请选择物料`,`warning`);return}if(!D.warehouse_id){h(`请选择仓库`,`warning`);return}if(D.quantity<0){h(`数量不能为负数`,`warning`);return}if(D.locked_quantity>D.quantity){h(`锁定数量不能大于库存数量`,`warning`);return}E.value=!0;try{let e={product_id:D.product_id,warehouse_id:D.warehouse_id,quantity:D.quantity,locked_quantity:D.locked_quantity,batch_no:D.batch_no||null,location:D.location||null};T.value?(await g(`/api/inventory/${T.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),h(`物料库存更新成功`,`success`)):(await g(`/api/inventory`,{method:`POST`,body:JSON.stringify(e)}),h(`物料库存已创建`,`success`)),w.value=!1,S()}catch(e){u(e,`保存物料库存`)}finally{E.value=!1}}}async function j(e){if(confirm(`确定要删除这个物料库存记录吗?`))try{await g(`/api/inventory/${e}`,{method:`DELETE`}),h(`物料库存已删除`,`success`),S()}catch(e){u(e,`删除物料库存`)}}return s(()=>{S()}),(e,r)=>{let a=f(`t-button`),s=f(`t-table-column`),u=f(`t-table`),h=f(`t-option`),g=f(`t-select`),y=f(`t-form-item`),S=f(`t-input-number`),C=f(`t-input`),M=f(`t-form`),N=f(`t-dialog`);return t(),v(`div`,b,[l(`div`,x,[o(a,{type:`primary`,onClick:O},{default:d(()=>[...r[8]||=[_(`+ 新增物料库存`,-1)]]),_:1})]),o(u,{data:n(m).inventory,style:{width:`100%`},loading:n(m).loading,"empty-text":`暂无库存数据`},{default:d(()=>[o(s,{prop:`product_sku`,label:`SKU`}),o(s,{prop:`product_name`,label:`物料`}),o(s,{prop:`warehouse_name`,label:`仓库`}),o(s,{prop:`quantity`,label:`数量`}),o(s,{prop:`available_quantity`,label:`可用`}),o(s,{label:`操作`,width:`180`},{default:d(({row:e})=>[o(a,{size:`small`,onClick:t=>k(e)},{default:d(()=>[...r[9]||=[_(`编辑`,-1)]]),_:1},8,[`onClick`]),o(a,{size:`small`,type:`danger`,onClick:t=>j(e.id)},{default:d(()=>[...r[10]||=[_(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(N,{modelValue:w.value,"onUpdate:modelValue":r[7]||=e=>w.value=e,title:T.value?`编辑物料库存`:`新增物料库存`,width:`520px`,"close-on-click-modal":!1},{footer:d(()=>[o(a,{onClick:r[6]||=e=>w.value=!1,disabled:E.value},{default:d(()=>[...r[11]||=[_(`取消`,-1)]]),_:1},8,[`disabled`]),o(a,{type:`primary`,loading:E.value,disabled:E.value,onClick:A},{default:d(()=>[...r[12]||=[_(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:d(()=>[o(M,{model:D,"label-width":`80px`},{default:d(()=>[o(y,{label:`物料`,required:``},{default:d(()=>[o(g,{modelValue:D.product_id,"onUpdate:modelValue":r[0]||=e=>D.product_id=e,placeholder:`请选择物料`,style:{width:`100%`}},{default:d(()=>[(t(!0),v(p,null,i(n(m).materials,e=>(t(),c(h,{key:e.id,label:e.name+(e.sku?` (`+e.sku+`)`:``),value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),o(y,{label:`仓库`,required:``},{default:d(()=>[o(g,{modelValue:D.warehouse_id,"onUpdate:modelValue":r[1]||=e=>D.warehouse_id=e,placeholder:`请选择仓库`,style:{width:`100%`}},{default:d(()=>[(t(!0),v(p,null,i(n(m).warehouses,e=>(t(),c(h,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),o(y,{label:`数量`,required:``},{default:d(()=>[o(S,{modelValue:D.quantity,"onUpdate:modelValue":r[2]||=e=>D.quantity=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),o(y,{label:`锁定数量`},{default:d(()=>[o(S,{modelValue:D.locked_quantity,"onUpdate:modelValue":r[3]||=e=>D.locked_quantity=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),o(y,{label:`批次号`},{default:d(()=>[o(C,{modelValue:D.batch_no,"onUpdate:modelValue":r[4]||=e=>D.batch_no=e,placeholder:`请输入批次号`},null,8,[`modelValue`])]),_:1}),o(y,{label:`库位`},{default:d(()=>[o(C,{modelValue:D.location,"onUpdate:modelValue":r[5]||=e=>D.location=e,placeholder:`请输入库位`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-37ecfc85`]]);export{S as default};
import{C as e,D as t,F as n,N as r,O as i,P as a,S as o,T as s,_ as c,g as l,i as u,j as d,k as f,m as p,n as m,r as h,s as g,x as _,y as v}from"./index-Dngmm__P.js";import{t as y}from"./useInventory-CrXJ8kdd.js";var b={class:`inventory-tab`},x={class:`table-header`},S=m(e({__name:`InventoryTab`,setup(e){let{state:m,loadInventory:S,ensureStockBaseData:C}=y(),w=a(!1),T=a(null),E=a(!1),D=r({product_id:null,warehouse_id:null,quantity:0,locked_quantity:0,batch_no:``,location:``});function O(){C(),T.value=null,D.product_id=null,D.warehouse_id=null,D.quantity=0,D.locked_quantity=0,D.batch_no=``,D.location=``,w.value=!0}function k(e){C(),T.value=e,D.product_id=e.product_id??null,D.warehouse_id=e.warehouse_id??null,D.quantity=e.quantity??0,D.locked_quantity=e.locked_quantity??0,D.batch_no=e.batch_no??``,D.location=e.location??``,w.value=!0}async function A(){if(!E.value){if(!D.product_id){h(`请选择物料`,`warning`);return}if(!D.warehouse_id){h(`请选择仓库`,`warning`);return}if(D.quantity<0){h(`数量不能为负数`,`warning`);return}if(D.locked_quantity>D.quantity){h(`锁定数量不能大于库存数量`,`warning`);return}E.value=!0;try{let e={product_id:D.product_id,warehouse_id:D.warehouse_id,quantity:D.quantity,locked_quantity:D.locked_quantity,batch_no:D.batch_no||null,location:D.location||null};T.value?(await g(`/api/inventory/${T.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),h(`物料库存更新成功`,`success`)):(await g(`/api/inventory`,{method:`POST`,body:JSON.stringify(e)}),h(`物料库存已创建`,`success`)),w.value=!1,S()}catch(e){u(e,`保存物料库存`)}finally{E.value=!1}}}async function j(e){if(confirm(`确定要删除这个物料库存记录吗?`))try{await g(`/api/inventory/${e}`,{method:`DELETE`}),h(`物料库存已删除`,`success`),S()}catch(e){u(e,`删除物料库存`)}}return s(()=>{S()}),(e,r)=>{let a=f(`t-button`),s=f(`t-table-column`),u=f(`t-table`),h=f(`t-option`),g=f(`t-select`),y=f(`t-form-item`),S=f(`t-input-number`),C=f(`t-input`),M=f(`t-form`),N=f(`t-dialog`);return t(),v(`div`,b,[l(`div`,x,[o(a,{type:`primary`,onClick:O},{default:d(()=>[...r[8]||=[_(`+ 新增物料库存`,-1)]]),_:1})]),o(u,{data:n(m).inventory,style:{width:`100%`},loading:n(m).loading,"empty-text":`暂无库存数据`},{default:d(()=>[o(s,{prop:`product_sku`,label:`SKU`}),o(s,{prop:`product_name`,label:`物料`}),o(s,{prop:`warehouse_name`,label:`仓库`}),o(s,{prop:`quantity`,label:`数量`}),o(s,{prop:`available_quantity`,label:`可用`}),o(s,{label:`操作`,width:`180`},{default:d(({row:e})=>[o(a,{size:`small`,onClick:t=>k(e)},{default:d(()=>[...r[9]||=[_(`编辑`,-1)]]),_:1},8,[`onClick`]),o(a,{size:`small`,type:`danger`,onClick:t=>j(e.id)},{default:d(()=>[...r[10]||=[_(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(N,{modelValue:w.value,"onUpdate:modelValue":r[7]||=e=>w.value=e,title:T.value?`编辑物料库存`:`新增物料库存`,width:`520px`,"close-on-click-modal":!1},{footer:d(()=>[o(a,{onClick:r[6]||=e=>w.value=!1,disabled:E.value},{default:d(()=>[...r[11]||=[_(`取消`,-1)]]),_:1},8,[`disabled`]),o(a,{type:`primary`,loading:E.value,disabled:E.value,onClick:A},{default:d(()=>[...r[12]||=[_(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:d(()=>[o(M,{model:D,"label-width":`80px`},{default:d(()=>[o(y,{label:`物料`,required:``},{default:d(()=>[o(g,{modelValue:D.product_id,"onUpdate:modelValue":r[0]||=e=>D.product_id=e,placeholder:`请选择物料`,style:{width:`100%`}},{default:d(()=>[(t(!0),v(p,null,i(n(m).materials,e=>(t(),c(h,{key:e.id,label:e.name+(e.sku?` (`+e.sku+`)`:``),value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),o(y,{label:`仓库`,required:``},{default:d(()=>[o(g,{modelValue:D.warehouse_id,"onUpdate:modelValue":r[1]||=e=>D.warehouse_id=e,placeholder:`请选择仓库`,style:{width:`100%`}},{default:d(()=>[(t(!0),v(p,null,i(n(m).warehouses,e=>(t(),c(h,{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),o(y,{label:`数量`,required:``},{default:d(()=>[o(S,{modelValue:D.quantity,"onUpdate:modelValue":r[2]||=e=>D.quantity=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),o(y,{label:`锁定数量`},{default:d(()=>[o(S,{modelValue:D.locked_quantity,"onUpdate:modelValue":r[3]||=e=>D.locked_quantity=e,min:0,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),o(y,{label:`批次号`},{default:d(()=>[o(C,{modelValue:D.batch_no,"onUpdate:modelValue":r[4]||=e=>D.batch_no=e,placeholder:`请输入批次号`},null,8,[`modelValue`])]),_:1}),o(y,{label:`库位`},{default:d(()=>[o(C,{modelValue:D.location,"onUpdate:modelValue":r[5]||=e=>D.location=e,placeholder:`请输入库位`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-37ecfc85`]]);export{S as default};
@@ -1 +1 @@
import{A as e,C as t,D as n,E as r,F as i,I as a,O as o,R as s,S as c,T as l,_ as u,c as d,g as f,j as p,k as m,l as h,m as g,n as _,r as v,u as y,v as b,y as x}from"./index-BoystVy-.js";import{t as S}from"./inventory-BVZTHSHW.js";var C={class:`sidebar-nav`},w=[`onClick`],T={class:`group-arrow`},E=[`onClick`],D=_(t({__name:`InventorySidebar`,setup(e){let t=y(),r=S(),{menuGroups:c,openGroups:l,toggleGroup:u}=r,d=e=>{r.activeTab=e,t.push(`/inventory/${e}`)};return(e,t)=>(n(),x(`nav`,C,[(n(!0),x(g,null,o(i(c),e=>(n(),x(`div`,{key:e.key,class:`sidebar-group`},[f(`div`,{class:`sidebar-group-title`,onClick:t=>i(u)(e.key)},[f(`span`,null,s(e.title),1),f(`span`,T,s(i(l)[e.key]?`▾`:`▸`),1)],8,w),i(l)[e.key]?(n(!0),x(g,{key:0},o(e.items,e=>(n(),x(`div`,{key:e.key,class:a([`sidebar-item`,{active:i(r).activeTab===e.key}]),onClick:t=>d(e.key)},s(e.label),11,E))),128)):b(``,!0)]))),128))]))}}),[[`__scopeId`,`data-v-80d71466`]]),O={class:`page-container`},k={class:`inventory-layout`},A={class:`inventory-sidebar-wrapper`},j={class:`inventory-content`},M={class:`inventory-content-header`},N={class:`inventory-breadcrumb`},P={class:`current`},F=_(t({__name:`InventoryView`,setup(t){let a=S(),o=d(),g=y(),_=h(),C=()=>{let e=_.path.split(`/`);return e[e.length-1]||`dashboard`};return e(()=>_.path,()=>{a.activeTab=C()},{immediate:!0}),l(()=>{if(!o.user){g.push(`/login`);return}a.activeTab=C(),a.checkBackendHealth().then(()=>{if(!a.backendDbReady){v(a.backendDbMessage||`业务服务不可用`,`warning`);return}a.loadDashboard()})}),r(()=>{a.destroyPickers()}),(e,t)=>{let r=m(`t-alert`),o=m(`router-view`),l=m(`t-loading`);return n(),x(`div`,O,[t[1]||=f(`div`,{class:`page-header`},[f(`h1`,null,`进销存管理`),f(`p`,null,`库存、采购、销售管理`)],-1),f(`div`,k,[f(`aside`,A,[c(D)]),f(`section`,j,[f(`div`,M,[f(`div`,N,[f(`span`,null,s(i(a).activeMenu?.group?.title||`进销存`),1),t[0]||=f(`span`,{class:`sep`},`/`,-1),f(`span`,P,s(i(a).activeMenu?.item?.label||``),1)])]),i(a).backendDbReady?b(``,!0):(n(),u(r,{key:0,title:i(a).backendDbMessage,theme:`warning`,"show-icon":``,closable:!1,style:{"margin-bottom":`16px`}},null,8,[`title`])),c(l,{loading:i(a).loading},{default:p(()=>[c(o)]),_:1},8,[`loading`])])])])}}}),[[`__scopeId`,`data-v-c950e09f`]]);export{F as default};
import{A as e,C as t,D as n,E as r,F as i,I as a,O as o,R as s,S as c,T as l,_ as u,c as d,g as f,j as p,k as m,l as h,m as g,n as _,r as v,u as y,v as b,y as x}from"./index-Dngmm__P.js";import{t as S}from"./inventory-BFlQBLDI.js";var C={class:`sidebar-nav`},w=[`onClick`],T={class:`group-arrow`},E=[`onClick`],D=_(t({__name:`InventorySidebar`,setup(e){let t=y(),r=S(),{menuGroups:c,openGroups:l,toggleGroup:u}=r,d=e=>{r.activeTab=e,t.push(`/inventory/${e}`)};return(e,t)=>(n(),x(`nav`,C,[(n(!0),x(g,null,o(i(c),e=>(n(),x(`div`,{key:e.key,class:`sidebar-group`},[f(`div`,{class:`sidebar-group-title`,onClick:t=>i(u)(e.key)},[f(`span`,null,s(e.title),1),f(`span`,T,s(i(l)[e.key]?`▾`:`▸`),1)],8,w),i(l)[e.key]?(n(!0),x(g,{key:0},o(e.items,e=>(n(),x(`div`,{key:e.key,class:a([`sidebar-item`,{active:i(r).activeTab===e.key}]),onClick:t=>d(e.key)},s(e.label),11,E))),128)):b(``,!0)]))),128))]))}}),[[`__scopeId`,`data-v-80d71466`]]),O={class:`page-container`},k={class:`inventory-layout`},A={class:`inventory-sidebar-wrapper`},j={class:`inventory-content`},M={class:`inventory-content-header`},N={class:`inventory-breadcrumb`},P={class:`current`},F=_(t({__name:`InventoryView`,setup(t){let a=S(),o=d(),g=y(),_=h(),C=()=>{let e=_.path.split(`/`);return e[e.length-1]||`dashboard`};return e(()=>_.path,()=>{a.activeTab=C()},{immediate:!0}),l(()=>{if(!o.user){g.push(`/login`);return}a.activeTab=C(),a.checkBackendHealth().then(()=>{if(!a.backendDbReady){v(a.backendDbMessage||`业务服务不可用`,`warning`);return}a.loadDashboard()})}),r(()=>{a.destroyPickers()}),(e,t)=>{let r=m(`t-alert`),o=m(`router-view`),l=m(`t-loading`);return n(),x(`div`,O,[t[1]||=f(`div`,{class:`page-header`},[f(`h1`,null,`进销存管理`),f(`p`,null,`库存、采购、销售管理`)],-1),f(`div`,k,[f(`aside`,A,[c(D)]),f(`section`,j,[f(`div`,M,[f(`div`,N,[f(`span`,null,s(i(a).activeMenu?.group?.title||`进销存`),1),t[0]||=f(`span`,{class:`sep`},`/`,-1),f(`span`,P,s(i(a).activeMenu?.item?.label||``),1)])]),i(a).backendDbReady?b(``,!0):(n(),u(r,{key:0,title:i(a).backendDbMessage,theme:`warning`,"show-icon":``,closable:!1,style:{"margin-bottom":`16px`}},null,8,[`title`])),c(l,{loading:i(a).loading},{default:p(()=>[c(o)]),_:1},8,[`loading`])])])])}}}),[[`__scopeId`,`data-v-c950e09f`]]);export{F as default};
@@ -1 +1 @@
import{C as e,D as t,N as n,R as r,S as i,_ as a,g as o,j as s,k as c,n as l,o as u,r as d,s as f,u as p,v as m,x as h,y as g}from"./index-BoystVy-.js";var _={class:`login-container`},v={class:`login-card`},y=l(e({__name:`LoginView`,setup(e){let l=p(),y=n({username:``,password:``,error:``,loading:!1}),b=async()=>{y.error=``,y.loading=!0;try{let e=await f(`/api/auth/login/json`,{method:`POST`,body:JSON.stringify({username:y.username,password:y.password})});u(e.access_token,e.user),d(`登录成功`,`success`),l.push(`/`)}catch(e){y.error=e.message||`登录失败`}finally{y.loading=!1}};return(e,n)=>{let l=c(`t-input`),u=c(`t-form-item`),d=c(`t-alert`),f=c(`t-button`),p=c(`t-form`);return t(),g(`div`,_,[o(`div`,v,[n[2]||=o(`div`,{class:`login-header`},[o(`div`,{class:`login-logo`},`G`),o(`h1`,{class:`login-title`},`Gemold`),o(`p`,{class:`login-subtitle`},`模具制造管理系统`)],-1),i(p,{onSubmit:b},{default:s(()=>[i(u,{label:`用户名`},{default:s(()=>[i(l,{modelValue:y.username,"onUpdate:modelValue":n[0]||=e=>y.username=e,placeholder:`请输入用户名`,clearable:``},null,8,[`modelValue`])]),_:1}),i(u,{label:`密码`},{default:s(()=>[i(l,{modelValue:y.password,"onUpdate:modelValue":n[1]||=e=>y.password=e,type:`password`,placeholder:`请输入密码`,clearable:``},null,8,[`modelValue`])]),_:1}),y.error?(t(),a(d,{key:0,theme:`error`,message:y.error,style:{"margin-bottom":`16px`}},null,8,[`message`])):m(``,!0),i(f,{theme:`primary`,block:``,type:`submit`,loading:y.loading},{default:s(()=>[h(r(y.loading?`登录中...`:`登录`),1)]),_:1},8,[`loading`])]),_:1})])])}}}),[[`__scopeId`,`data-v-c91bfbf2`]]);export{y as default};
import{C as e,D as t,N as n,R as r,S as i,_ as a,g as o,j as s,k as c,n as l,o as u,r as d,s as f,u as p,v as m,x as h,y as g}from"./index-Dngmm__P.js";var _={class:`login-container`},v={class:`login-card`},y=l(e({__name:`LoginView`,setup(e){let l=p(),y=n({username:``,password:``,error:``,loading:!1}),b=async()=>{y.error=``,y.loading=!0;try{let e=await f(`/api/auth/login/json`,{method:`POST`,body:JSON.stringify({username:y.username,password:y.password})});u(e.access_token,e.user),d(`登录成功`,`success`),l.push(`/`)}catch(e){y.error=e.message||`登录失败`}finally{y.loading=!1}};return(e,n)=>{let l=c(`t-input`),u=c(`t-form-item`),d=c(`t-alert`),f=c(`t-button`),p=c(`t-form`);return t(),g(`div`,_,[o(`div`,v,[n[2]||=o(`div`,{class:`login-header`},[o(`div`,{class:`login-logo`},`G`),o(`h1`,{class:`login-title`},`Gemold`),o(`p`,{class:`login-subtitle`},`模具制造管理系统`)],-1),i(p,{onSubmit:b},{default:s(()=>[i(u,{label:`用户名`},{default:s(()=>[i(l,{modelValue:y.username,"onUpdate:modelValue":n[0]||=e=>y.username=e,placeholder:`请输入用户名`,clearable:``},null,8,[`modelValue`])]),_:1}),i(u,{label:`密码`},{default:s(()=>[i(l,{modelValue:y.password,"onUpdate:modelValue":n[1]||=e=>y.password=e,type:`password`,placeholder:`请输入密码`,clearable:``},null,8,[`modelValue`])]),_:1}),y.error?(t(),a(d,{key:0,theme:`error`,message:y.error,style:{"margin-bottom":`16px`}},null,8,[`message`])):m(``,!0),i(f,{theme:`primary`,block:``,type:`submit`,loading:y.loading},{default:s(()=>[h(r(y.loading?`登录中...`:`登录`),1)]),_:1},8,[`loading`])]),_:1})])])}}}),[[`__scopeId`,`data-v-c91bfbf2`]]);export{y as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,D as t,F as n,R as r,S as i,T as a,j as o,k as s,n as c,x as l,y as u}from"./index-BoystVy-.js";import{t as d}from"./useInventory-C7Zfw7oO.js";var f={class:`movements-tab`},p=c(e({__name:`MovementsTab`,setup(e){let{state:c,loadMovements:p,getMovementTypeLabel:m,getMovementBadgeClass:h,formatDateTime:g}=d(),_=e=>{let t=h(e);return t===`badge-success`?`success`:t===`badge-error`?`danger`:t===`badge-warning`?`warning`:`info`};return a(()=>{p()}),(e,a)=>{let d=s(`t-table-column`),p=s(`t-tag`),h=s(`t-table`);return t(),u(`div`,f,[i(h,{data:n(c).movements,style:{width:`100%`},loading:n(c).loading,"empty-text":`暂无库存变动记录`},{default:o(()=>[i(d,{label:`物料`},{default:o(({row:e})=>[l(r(e.product_name)+r(e.product_sku?` (`+e.product_sku+`)`:``),1)]),_:1}),i(d,{label:`类型`,width:`140`},{default:o(({row:e})=>[i(p,{type:_(e.movement_type),size:`small`},{default:o(()=>[l(r(n(m)(e.movement_type)),1)]),_:2},1032,[`type`])]),_:1}),i(d,{prop:`quantity`,label:`数量`,width:`80`}),i(d,{prop:`before_quantity`,label:`变动前`,width:`80`}),i(d,{prop:`after_quantity`,label:`变动后`,width:`80`}),i(d,{label:`时间`,width:`180`},{default:o(({row:e})=>[l(r(n(g)(e.created_at)),1)]),_:1})]),_:1},8,[`data`,`loading`])])}}}),[[`__scopeId`,`data-v-79f8d5e3`]]);export{p as default};
import{C as e,D as t,F as n,R as r,S as i,T as a,j as o,k as s,n as c,x as l,y as u}from"./index-Dngmm__P.js";import{t as d}from"./useInventory-CrXJ8kdd.js";var f={class:`movements-tab`},p=c(e({__name:`MovementsTab`,setup(e){let{state:c,loadMovements:p,getMovementTypeLabel:m,getMovementBadgeClass:h,formatDateTime:g}=d(),_=e=>{let t=h(e);return t===`badge-success`?`success`:t===`badge-error`?`danger`:t===`badge-warning`?`warning`:`info`};return a(()=>{p()}),(e,a)=>{let d=s(`t-table-column`),p=s(`t-tag`),h=s(`t-table`);return t(),u(`div`,f,[i(h,{data:n(c).movements,style:{width:`100%`},loading:n(c).loading,"empty-text":`暂无库存变动记录`},{default:o(()=>[i(d,{label:`物料`},{default:o(({row:e})=>[l(r(e.product_name)+r(e.product_sku?` (`+e.product_sku+`)`:``),1)]),_:1}),i(d,{label:`类型`,width:`140`},{default:o(({row:e})=>[i(p,{type:_(e.movement_type),size:`small`},{default:o(()=>[l(r(n(m)(e.movement_type)),1)]),_:2},1032,[`type`])]),_:1}),i(d,{prop:`quantity`,label:`数量`,width:`80`}),i(d,{prop:`before_quantity`,label:`变动前`,width:`80`}),i(d,{prop:`after_quantity`,label:`变动后`,width:`80`}),i(d,{label:`时间`,width:`180`},{default:o(({row:e})=>[l(r(n(g)(e.created_at)),1)]),_:1})]),_:1},8,[`data`,`loading`])])}}}),[[`__scopeId`,`data-v-79f8d5e3`]]);export{p as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{D as e,g as t,n,y as r}from"./index-BoystVy-.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`灰度发布与回滚`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
import{D as e,g as t,n,y as r}from"./index-Dngmm__P.js";var i={};function a(n,i){return e(),r(`div`,null,[...i[0]||=[t(`div`,{class:`page-header`},[t(`h1`,{class:`page-title`},`灰度发布与回滚`),t(`p`,{class:`page-subtitle`},`迁移中...`)],-1)]])}var o=n(i,[[`render`,a]]);export{o as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{C as e,D as t,F as n,N as r,P as i,R as a,S as o,T as s,g as c,i as l,j as u,k as d,n as f,r as p,s as m,x as h,y as g}from"./index-BoystVy-.js";import{t as _}from"./useInventory-C7Zfw7oO.js";var v={class:`suppliers-tab`},y={class:`table-header`},b=f(e({__name:`SuppliersTab`,setup(e){let{state:f,loadSuppliers:b}=_(),x=i(!1),S=i(null),C=i(!1),w=r({name:``,contact_person:``,phone:``,email:``,address:``});function T(){S.value=null,w.name=``,w.contact_person=``,w.phone=``,w.email=``,w.address=``,x.value=!0}function E(e){S.value=e,w.name=e.name??``,w.contact_person=e.contact_person??``,w.phone=e.phone??``,w.email=e.email??``,w.address=e.address??``,x.value=!0}async function D(){if(!C.value){if(!w.name||!w.name.trim()){p(`请输入供应商名称`,`warning`);return}C.value=!0;try{let e={name:w.name,contact_person:w.contact_person||null,phone:w.phone||null,email:w.email||null,address:w.address||null};S.value?(await m(`/api/suppliers/${S.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),p(`供应商更新成功`,`success`)):(await m(`/api/suppliers`,{method:`POST`,body:JSON.stringify(e)}),p(`供应商已创建`,`success`)),x.value=!1,b()}catch(e){l(e,`保存供应商`)}finally{C.value=!1}}}async function O(e){if(confirm(`确定要删除这个供应商吗?`))try{await m(`/api/suppliers/${e}`,{method:`DELETE`}),p(`供应商已删除`,`success`),b()}catch(e){l(e,`删除供应商`)}}return s(()=>{b()}),(e,r)=>{let i=d(`t-button`),s=d(`t-table-column`),l=d(`t-table`),p=d(`t-input`),m=d(`t-form-item`),_=d(`t-form`),b=d(`t-dialog`);return t(),g(`div`,v,[c(`div`,y,[o(i,{type:`primary`,onClick:T},{default:u(()=>[...r[7]||=[h(`+ 新增供应商`,-1)]]),_:1})]),o(l,{data:n(f).suppliers,style:{width:`100%`},loading:n(f).loading,"empty-text":`暂无供应商数据`},{default:u(()=>[o(s,{prop:`code`,label:`编码`}),o(s,{prop:`name`,label:`名称`}),o(s,{prop:`contact_person`,label:`联系人`},{default:u(({row:e})=>[h(a(e.contact_person||`-`),1)]),_:1}),o(s,{prop:`phone`,label:`电话`},{default:u(({row:e})=>[h(a(e.phone||`-`),1)]),_:1}),o(s,{prop:`email`,label:`邮箱`},{default:u(({row:e})=>[h(a(e.email||`-`),1)]),_:1}),o(s,{label:`操作`,width:`180`},{default:u(({row:e})=>[o(i,{size:`small`,onClick:t=>E(e)},{default:u(()=>[...r[8]||=[h(`编辑`,-1)]]),_:1},8,[`onClick`]),o(i,{size:`small`,type:`danger`,onClick:t=>O(e.id)},{default:u(()=>[...r[9]||=[h(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(b,{modelValue:x.value,"onUpdate:modelValue":r[6]||=e=>x.value=e,title:S.value?`编辑供应商`:`新增供应商`,width:`520px`,"close-on-click-modal":!1},{footer:u(()=>[o(i,{onClick:r[5]||=e=>x.value=!1,disabled:C.value},{default:u(()=>[...r[10]||=[h(`取消`,-1)]]),_:1},8,[`disabled`]),o(i,{type:`primary`,loading:C.value,disabled:C.value,onClick:D},{default:u(()=>[...r[11]||=[h(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:u(()=>[o(_,{model:w,"label-width":`80px`},{default:u(()=>[o(m,{label:`名称`,required:``},{default:u(()=>[o(p,{modelValue:w.name,"onUpdate:modelValue":r[0]||=e=>w.name=e,placeholder:`请输入供应商名称`},null,8,[`modelValue`])]),_:1}),o(m,{label:`联系人`},{default:u(()=>[o(p,{modelValue:w.contact_person,"onUpdate:modelValue":r[1]||=e=>w.contact_person=e,placeholder:`请输入联系人`},null,8,[`modelValue`])]),_:1}),o(m,{label:`电话`},{default:u(()=>[o(p,{modelValue:w.phone,"onUpdate:modelValue":r[2]||=e=>w.phone=e,placeholder:`请输入电话`},null,8,[`modelValue`])]),_:1}),o(m,{label:`邮箱`},{default:u(()=>[o(p,{modelValue:w.email,"onUpdate:modelValue":r[3]||=e=>w.email=e,type:`email`,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1}),o(m,{label:`地址`},{default:u(()=>[o(p,{modelValue:w.address,"onUpdate:modelValue":r[4]||=e=>w.address=e,placeholder:`请输入地址`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-e8c22e24`]]);export{b as default};
import{C as e,D as t,F as n,N as r,P as i,R as a,S as o,T as s,g as c,i as l,j as u,k as d,n as f,r as p,s as m,x as h,y as g}from"./index-Dngmm__P.js";import{t as _}from"./useInventory-CrXJ8kdd.js";var v={class:`suppliers-tab`},y={class:`table-header`},b=f(e({__name:`SuppliersTab`,setup(e){let{state:f,loadSuppliers:b}=_(),x=i(!1),S=i(null),C=i(!1),w=r({name:``,contact_person:``,phone:``,email:``,address:``});function T(){S.value=null,w.name=``,w.contact_person=``,w.phone=``,w.email=``,w.address=``,x.value=!0}function E(e){S.value=e,w.name=e.name??``,w.contact_person=e.contact_person??``,w.phone=e.phone??``,w.email=e.email??``,w.address=e.address??``,x.value=!0}async function D(){if(!C.value){if(!w.name||!w.name.trim()){p(`请输入供应商名称`,`warning`);return}C.value=!0;try{let e={name:w.name,contact_person:w.contact_person||null,phone:w.phone||null,email:w.email||null,address:w.address||null};S.value?(await m(`/api/suppliers/${S.value.id}`,{method:`PUT`,body:JSON.stringify(e)}),p(`供应商更新成功`,`success`)):(await m(`/api/suppliers`,{method:`POST`,body:JSON.stringify(e)}),p(`供应商已创建`,`success`)),x.value=!1,b()}catch(e){l(e,`保存供应商`)}finally{C.value=!1}}}async function O(e){if(confirm(`确定要删除这个供应商吗?`))try{await m(`/api/suppliers/${e}`,{method:`DELETE`}),p(`供应商已删除`,`success`),b()}catch(e){l(e,`删除供应商`)}}return s(()=>{b()}),(e,r)=>{let i=d(`t-button`),s=d(`t-table-column`),l=d(`t-table`),p=d(`t-input`),m=d(`t-form-item`),_=d(`t-form`),b=d(`t-dialog`);return t(),g(`div`,v,[c(`div`,y,[o(i,{type:`primary`,onClick:T},{default:u(()=>[...r[7]||=[h(`+ 新增供应商`,-1)]]),_:1})]),o(l,{data:n(f).suppliers,style:{width:`100%`},loading:n(f).loading,"empty-text":`暂无供应商数据`},{default:u(()=>[o(s,{prop:`code`,label:`编码`}),o(s,{prop:`name`,label:`名称`}),o(s,{prop:`contact_person`,label:`联系人`},{default:u(({row:e})=>[h(a(e.contact_person||`-`),1)]),_:1}),o(s,{prop:`phone`,label:`电话`},{default:u(({row:e})=>[h(a(e.phone||`-`),1)]),_:1}),o(s,{prop:`email`,label:`邮箱`},{default:u(({row:e})=>[h(a(e.email||`-`),1)]),_:1}),o(s,{label:`操作`,width:`180`},{default:u(({row:e})=>[o(i,{size:`small`,onClick:t=>E(e)},{default:u(()=>[...r[8]||=[h(`编辑`,-1)]]),_:1},8,[`onClick`]),o(i,{size:`small`,type:`danger`,onClick:t=>O(e.id)},{default:u(()=>[...r[9]||=[h(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`,`loading`]),o(b,{modelValue:x.value,"onUpdate:modelValue":r[6]||=e=>x.value=e,title:S.value?`编辑供应商`:`新增供应商`,width:`520px`,"close-on-click-modal":!1},{footer:u(()=>[o(i,{onClick:r[5]||=e=>x.value=!1,disabled:C.value},{default:u(()=>[...r[10]||=[h(`取消`,-1)]]),_:1},8,[`disabled`]),o(i,{type:`primary`,loading:C.value,disabled:C.value,onClick:D},{default:u(()=>[...r[11]||=[h(`保存`,-1)]]),_:1},8,[`loading`,`disabled`])]),default:u(()=>[o(_,{model:w,"label-width":`80px`},{default:u(()=>[o(m,{label:`名称`,required:``},{default:u(()=>[o(p,{modelValue:w.name,"onUpdate:modelValue":r[0]||=e=>w.name=e,placeholder:`请输入供应商名称`},null,8,[`modelValue`])]),_:1}),o(m,{label:`联系人`},{default:u(()=>[o(p,{modelValue:w.contact_person,"onUpdate:modelValue":r[1]||=e=>w.contact_person=e,placeholder:`请输入联系人`},null,8,[`modelValue`])]),_:1}),o(m,{label:`电话`},{default:u(()=>[o(p,{modelValue:w.phone,"onUpdate:modelValue":r[2]||=e=>w.phone=e,placeholder:`请输入电话`},null,8,[`modelValue`])]),_:1}),o(m,{label:`邮箱`},{default:u(()=>[o(p,{modelValue:w.email,"onUpdate:modelValue":r[3]||=e=>w.email=e,type:`email`,placeholder:`请输入邮箱`},null,8,[`modelValue`])]),_:1}),o(m,{label:`地址`},{default:u(()=>[o(p,{modelValue:w.address,"onUpdate:modelValue":r[4]||=e=>w.address=e,placeholder:`请输入地址`},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}}),[[`__scopeId`,`data-v-e8c22e24`]]);export{b as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
import{t as e}from"./inventory-BVZTHSHW.js";function t(){return e()}export{t};
+1
View File
@@ -0,0 +1 @@
import{t as e}from"./inventory-BFlQBLDI.js";function t(){return e()}export{t};
+1 -1
View File
@@ -61,7 +61,7 @@
} catch (e) {}
})();
</script>
<script type="module" crossorigin src="/static/assets/index-BoystVy-.js"></script>
<script type="module" crossorigin src="/static/assets/index-Dngmm__P.js"></script>
<link rel="stylesheet" crossorigin href="/static/assets/index-9snwVMjk.css">
</head>
<body>