Files
yuezi-saas/frontend/dist/assets/packages-DXqMlE_s.js
T

1 line
5.9 KiB
JavaScript

import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,d as s,et as c,lt as l,p as u,st as d,u as f,v as p}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{o as m,s as h}from"./index-Mgun2LFs.js";import"./request-DG5cMCYw.js";import{i as g,n as _}from"./service-CLmpIkoS.js";var v={class:`p-6 space-y-4`},y={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},b={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},x={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},S={class:`px-2`},C={class:`px-5 py-3 border-t border-gray-50`},w={__name:`index`,setup(w){let T=l([]),E=l(0),D=l(!1),O=l(!1),k=l(!1),A=l([]),j=d({name:``,status:``}),M=d({page:1,per_page:15}),N=l(null),P=d({id:null,name:``,items:[],original_price:0,price:0,description:``,status:1,sort:0}),F=l(!1),I={name:[{required:!0,message:`请输入套餐名称`,trigger:`blur`}],price:[{required:!0,message:`请输入价格`,trigger:`blur`}]};async function L(){D.value=!0;try{let e=await g.getList({...j,...M});T.value=e.data?.list||e.data?.data||[],E.value=e.data?.total||0}finally{D.value=!1}}async function R(){try{let e=await _.getList({per_page:200,status:1});A.value=e.data?.list||e.data?.data||[]}catch{}}function z(){M.page=1,L()}function B(){Object.assign(j,{name:``,status:``}),z()}function V(){F.value=!1,Object.assign(P,{id:null,name:``,items:[],original_price:0,price:0,description:``,status:1,sort:0}),O.value=!0}function H(e){F.value=!0,Object.assign(P,{id:e.id,name:e.name,items:e.items||[],original_price:e.original_price,price:e.price,description:e.description||``,status:e.status,sort:e.sort}),O.value=!0}async function U(){N.value&&await N.value.validate(async e=>{if(e){k.value=!0;try{F.value?await g.update(P.id,P):await g.create(P),h.success(F.value?`更新成功`:`创建成功`),O.value=!1,L()}finally{k.value=!1}}})}async function W(e){await m.confirm(`确定删除套餐「${e.name}」吗?`,`删除确认`,{type:`warning`}),await g.delete(e.id),h.success(`删除成功`),L()}function G(e){M.page=e,L()}function K(e){M.per_page=e,M.page=1,L()}return r(()=>{L(),R()}),(r,l)=>{let d=i(`el-input`),m=i(`el-option`),h=i(`el-select`),g=i(`el-button`),_=i(`el-table-column`),w=i(`el-tag`),A=i(`el-table`),L=i(`el-pagination`),R=i(`el-form-item`),q=i(`el-input-number`),J=i(`el-switch`),Y=i(`el-form`),X=i(`el-dialog`),Z=t(`loading`);return n(),u(`div`,v,[f(`div`,y,[p(d,{modelValue:j.name,"onUpdate:modelValue":l[0]||=e=>j.name=e,placeholder:`套餐名称`,style:{width:`180px`},clearable:``},null,8,[`modelValue`]),p(h,{modelValue:j.status,"onUpdate:modelValue":l[1]||=e=>j.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[p(m,{label:`启用`,value:1}),p(m,{label:`停用`,value:0})]),_:1},8,[`modelValue`]),p(g,{type:`primary`,onClick:z},{default:e(()=>[...l[12]||=[o(`查询`,-1)]]),_:1}),p(g,{onClick:B},{default:e(()=>[...l[13]||=[o(`重置`,-1)]]),_:1})]),f(`div`,b,[f(`div`,x,[l[15]||=f(`div`,{class:`flex items-center gap-3`},null,-1),p(g,{type:`primary`,onClick:V},{default:e(()=>[...l[14]||=[o(`新增套餐`,-1)]]),_:1})]),f(`div`,S,[c((n(),s(A,{data:T.value,style:{width:`100%`}},{default:e(()=>[p(_,{prop:`name`,label:`套餐名称`,"min-width":`180`}),p(_,{prop:`original_price`,label:`原价(元)`,width:`100`,align:`right`}),p(_,{prop:`price`,label:`套餐价(元)`,width:`110`,align:`right`}),p(_,{label:`包含项目`,"min-width":`200`},{default:e(({row:e})=>[o(a(Array.isArray(e.items)?e.items.length+`个项目`:`-`),1)]),_:1}),p(_,{label:`状态`,width:`80`,align:`center`},{default:e(({row:t})=>[p(w,{type:t.status===1?`success`:`info`,size:`small`},{default:e(()=>[o(a(t.status===1?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),p(_,{label:`操作`,width:`160`,fixed:`right`,align:`center`},{default:e(({row:t})=>[p(g,{size:`small`,type:`primary`,text:``,onClick:e=>H(t)},{default:e(()=>[...l[16]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),p(g,{size:`small`,type:`danger`,text:``,onClick:e=>W(t)},{default:e(()=>[...l[17]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[Z,D.value]])]),f(`div`,C,[p(L,{"current-page":M.page,"onUpdate:currentPage":l[2]||=e=>M.page=e,"page-size":M.per_page,"onUpdate:pageSize":l[3]||=e=>M.per_page=e,total:E.value,"page-sizes":[15,30,50],layout:`total,sizes,prev,pager,next,jumper`,background:``,onCurrentChange:G,onSizeChange:K},null,8,[`current-page`,`page-size`,`total`])])]),p(X,{modelValue:O.value,"onUpdate:modelValue":l[11]||=e=>O.value=e,title:F.value?`编辑套餐`:`新增套餐`,width:`600px`,"destroy-on-close":``},{footer:e(()=>[p(g,{onClick:l[10]||=e=>O.value=!1},{default:e(()=>[...l[18]||=[o(`取消`,-1)]]),_:1}),p(g,{type:`primary`,loading:k.value,onClick:U},{default:e(()=>[...l[19]||=[o(`确定`,-1)]]),_:1},8,[`loading`])]),default:e(()=>[p(Y,{ref_key:`formRef`,ref:N,model:P,rules:I,"label-width":`90px`},{default:e(()=>[p(R,{label:`套餐名称`,prop:`name`},{default:e(()=>[p(d,{modelValue:P.name,"onUpdate:modelValue":l[4]||=e=>P.name=e},null,8,[`modelValue`])]),_:1}),p(R,{label:`原价`},{default:e(()=>[p(q,{modelValue:P.original_price,"onUpdate:modelValue":l[5]||=e=>P.original_price=e,min:0,precision:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),p(R,{label:`套餐价`,prop:`price`},{default:e(()=>[p(q,{modelValue:P.price,"onUpdate:modelValue":l[6]||=e=>P.price=e,min:0,precision:2,style:{width:`100%`}},null,8,[`modelValue`])]),_:1}),p(R,{label:`描述`},{default:e(()=>[p(d,{modelValue:P.description,"onUpdate:modelValue":l[7]||=e=>P.description=e,type:`textarea`,rows:3},null,8,[`modelValue`])]),_:1}),p(R,{label:`状态`},{default:e(()=>[p(J,{modelValue:P.status,"onUpdate:modelValue":l[8]||=e=>P.status=e,"active-value":1,"inactive-value":0},null,8,[`modelValue`])]),_:1}),p(R,{label:`排序`},{default:e(()=>[p(q,{modelValue:P.sort,"onUpdate:modelValue":l[9]||=e=>P.sort=e,min:0},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}};export{w as default};