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