Files
yuezi-saas/frontend/dist/assets/stores-ClXkVW6_.js
T

1 line
11 KiB
JavaScript

import{$ as e,H as t,L as n,P as r,V as i,Wt as a,_ as o,d as ee,et as s,lt as c,p as l,st as u,u as d,v as f}from"./runtime-core.esm-bundler-DbRZbT7v.js";import{l as p,o as m,s as h}from"./index-DK5nh4op.js";import"./request-BcX6wdRT.js";import{storeApi as g}from"./system-cE3W4r-W.js";var _={class:`p-6 space-y-4`},v={class:`bg-white rounded-2xl border border-gray-100 shadow-sm p-4 flex items-center flex-wrap gap-3`},te={class:`bg-white rounded-2xl border border-gray-100 shadow-sm`},ne={class:`flex items-center justify-between px-5 py-4 border-b border-gray-50`},y={class:`px-2`},re={class:`px-5 py-3 border-t border-gray-50`},b={__name:`index`,setup(b){let x=c([]),S=c(0),C=c(!1),w=c(!1),T=c(`新增门店`),E=c(!1),D=c(!1),O=c(null),k=u({keyword:``,status:``}),A=u({page:1,page_size:20}),j=u({id:null,name:``,code:``,region:``,address:``,phone:``,contact:``,capacity:1,description:``,status:1}),M={name:[{required:!0,message:`请输入门店名称`,trigger:`blur`}],code:[{required:!0,message:`请输入门店编码`,trigger:`blur`},{pattern:/^[A-Z0-9_]+$/,message:`编码只允许大写字母、数字、下划线`,trigger:`blur`}],phone:[{pattern:/^[\d-()()\s]+$/,message:`请输入正确的联系电话`,trigger:`blur`}]};async function N(){C.value=!0;try{let e=await g.getList({...k,...A});x.value=e.data?.list||[],S.value=e.data?.total||0}catch{}finally{C.value=!1}}function P(){A.page=1,N()}function ie(){Object.assign(k,{keyword:``,status:``}),P()}function F(){D.value=!1,T.value=`新增门店`,Object.assign(j,{id:null,name:``,code:``,region:``,address:``,phone:``,contact:``,capacity:1,description:``,status:1}),w.value=!0}async function I(e){D.value=!0,T.value=`编辑门店 - ${e.name}`;let t=(await g.getDetail(e.id)).data;Object.assign(j,{id:t.id,name:t.name,code:t.code,region:t.region||``,address:t.address||``,phone:t.phone||``,contact:t.contact||``,capacity:t.capacity||``,description:t.description||``,status:t.status}),w.value=!0}async function L(){if(O.value){try{await O.value.validate()}catch{return}E.value=!0;try{let{id:e,region:t,...n}=j;D.value?(await g.update(e,n),h.success(`门店信息更新成功`)):(await g.create(n),h.success(`门店创建成功`)),w.value=!1,N()}catch{}finally{E.value=!1}}}async function R(e){await m.confirm(`确定删除门店「${e.name}」吗?删除后该门店下的数据将不可访问。`,`删除确认`,{confirmButtonText:`确定删除`,cancelButtonText:`取消`,type:`warning`,confirmButtonClass:`el-button--danger`}),await g.delete(e.id),h.success(`删除成功`),N()}async function z(e){let t=e.status===1?0:1,n=t===1?`启用`:`停用`;try{await g.update(e.id,{...e,status:t}),e.status=t,h.success(`门店已${n}`)}catch{}}function B(e){A.page=e,N()}function V(e){A.page_size=e,A.page=1,N()}return r(N),(r,c)=>{let u=i(`Search`),m=i(`el-icon`),h=i(`el-input`),g=i(`el-option`),b=i(`el-select`),N=i(`el-button`),H=i(`el-table-column`),U=i(`el-tag`),W=i(`el-table`),G=i(`el-pagination`),K=i(`el-form-item`),q=i(`el-col`),J=i(`el-input-number`),Y=i(`el-radio`),X=i(`el-radio-group`),Z=i(`el-row`),Q=i(`el-form`),$=i(`el-dialog`),ae=t(`loading`);return n(),l(`div`,_,[d(`div`,v,[f(h,{modelValue:k.keyword,"onUpdate:modelValue":c[0]||=e=>k.keyword=e,placeholder:`搜索门店名称/编码/地址`,style:{width:`260px`},clearable:``,onKeydown:p(P,[`enter`])},{prefix:e(()=>[f(m,null,{default:e(()=>[f(u)]),_:1})]),_:1},8,[`modelValue`]),f(b,{modelValue:k.status,"onUpdate:modelValue":c[1]||=e=>k.status=e,placeholder:`状态`,clearable:``,style:{width:`120px`}},{default:e(()=>[f(g,{label:`启用`,value:1}),f(g,{label:`停用`,value:0})]),_:1},8,[`modelValue`]),f(N,{type:`primary`,icon:`Search`,onClick:P},{default:e(()=>[...c[26]||=[o(`查询`,-1)]]),_:1}),f(N,{icon:`Refresh`,onClick:ie},{default:e(()=>[...c[27]||=[o(`重置`,-1)]]),_:1})]),d(`div`,te,[d(`div`,ne,[c[29]||=d(`div`,{class:`flex items-center gap-3`},null,-1),f(N,{type:`primary`,icon:`Plus`,onClick:F},{default:e(()=>[...c[28]||=[o(`新增门店`,-1)]]),_:1})]),d(`div`,y,[s((n(),ee(W,{data:x.value,style:{width:`100%`}},{default:e(()=>[f(H,{prop:`name`,label:`门店名称`,"min-width":`160`}),f(H,{prop:`code`,label:`门店编码`,width:`120`}),f(H,{label:`所在地区`,"min-width":`130`},{default:e(({row:e})=>[o(a(e.region?.name||``),1)]),_:1}),f(H,{prop:`address`,label:`详细地址`,"min-width":`200`,"show-overflow-tooltip":``}),f(H,{prop:`phone`,label:`联系电话`,width:`140`}),f(H,{prop:`contact`,label:`联系人`,width:`100`}),f(H,{prop:`capacity`,label:`床位数`,width:`80`,align:`center`}),f(H,{label:`状态`,width:`90`,align:`center`},{default:e(({row:t})=>[f(U,{type:t.status===1?`success`:`danger`,size:`small`},{default:e(()=>[o(a(t.status===1?`启用`:`停用`),1)]),_:2},1032,[`type`])]),_:1}),f(H,{label:`操作`,width:`180`,fixed:`right`,align:`center`},{default:e(({row:t})=>[f(N,{size:`small`,type:`primary`,text:``,onClick:e=>I(t)},{default:e(()=>[...c[30]||=[o(`编辑`,-1)]]),_:1},8,[`onClick`]),f(N,{size:`small`,type:t.status===1?`warning`:`success`,text:``,onClick:e=>z(t)},{default:e(()=>[o(a(t.status===1?`停用`:`启用`),1)]),_:2},1032,[`type`,`onClick`]),f(N,{size:`small`,type:`danger`,text:``,onClick:e=>R(t)},{default:e(()=>[...c[31]||=[o(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[ae,C.value]])]),d(`div`,re,[f(G,{"current-page":A.page,"onUpdate:currentPage":c[2]||=e=>A.page=e,"page-size":A.page_size,"onUpdate:pageSize":c[3]||=e=>A.page_size=e,total:S.value,"page-sizes":[10,20,50],layout:`total, sizes, prev, pager, next, jumper`,background:``,onCurrentChange:B,onSizeChange:V},null,8,[`current-page`,`page-size`,`total`])])]),f($,{modelValue:w.value,"onUpdate:modelValue":c[14]||=e=>w.value=e,title:T.value,width:`600px`,"destroy-on-close":``},{footer:e(()=>[f(N,{onClick:c[13]||=e=>w.value=!1},{default:e(()=>[...c[34]||=[o(`取消`,-1)]]),_:1}),f(N,{type:`primary`,loading:E.value,onClick:L},{default:e(()=>[o(a(D.value?`保存修改`:`确认创建`),1)]),_:1},8,[`loading`])]),default:e(()=>[f(Q,{ref_key:`formRef`,ref:O,model:j,rules:M,"label-width":`90px`},{default:e(()=>[f(Z,{gutter:16},{default:e(()=>[f(q,{span:12},{default:e(()=>[f(K,{label:`门店名称`,prop:`name`},{default:e(()=>[f(h,{modelValue:j.name,"onUpdate:modelValue":c[4]||=e=>j.name=e,placeholder:`请输入门店名称`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`门店编码`,prop:`code`},{default:e(()=>[f(h,{modelValue:j.code,"onUpdate:modelValue":c[5]||=e=>j.code=e,placeholder:`如: HQ001`,disabled:D.value},null,8,[`modelValue`,`disabled`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`所在地区`,prop:`region`},{default:e(()=>[f(h,{modelValue:j.region,"onUpdate:modelValue":c[6]||=e=>j.region=e,placeholder:`如: 北京市朝阳区`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`联系电话`,prop:`phone`},{default:e(()=>[f(h,{modelValue:j.phone,"onUpdate:modelValue":c[7]||=e=>j.phone=e,placeholder:`请输入联系电话`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:24},{default:e(()=>[f(K,{label:`详细地址`,prop:`address`},{default:e(()=>[f(h,{modelValue:j.address,"onUpdate:modelValue":c[8]||=e=>j.address=e,placeholder:`请输入详细地址`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`联系人`,prop:`contact`},{default:e(()=>[f(h,{modelValue:j.contact,"onUpdate:modelValue":c[9]||=e=>j.contact=e,placeholder:`负责人姓名`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`床位数量`,prop:`capacity`},{default:e(()=>[f(J,{modelValue:j.capacity,"onUpdate:modelValue":c[10]||=e=>j.capacity=e,min:1,max:999,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`状态`,prop:`status`},{default:e(()=>[f(X,{modelValue:j.status,"onUpdate:modelValue":c[11]||=e=>j.status=e},{default:e(()=>[f(Y,{value:1},{default:e(()=>[...c[32]||=[o(`启用`,-1)]]),_:1}),f(Y,{value:0},{default:e(()=>[...c[33]||=[o(`停用`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:24},{default:e(()=>[f(K,{label:`备注`,prop:`description`},{default:e(()=>[f(h,{modelValue:j.description,"onUpdate:modelValue":c[12]||=e=>j.description=e,type:`textarea`,rows:3,placeholder:`门店备注信息(选填)`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`]),f($,{modelValue:w.value,"onUpdate:modelValue":c[25]||=e=>w.value=e,title:T.value,width:`600px`,"destroy-on-close":``},{footer:e(()=>[f(N,{onClick:c[24]||=e=>w.value=!1},{default:e(()=>[...c[37]||=[o(`取消`,-1)]]),_:1}),f(N,{type:`primary`,loading:E.value,onClick:L},{default:e(()=>[o(a(D.value?`保存修改`:`确认创建`),1)]),_:1},8,[`loading`])]),default:e(()=>[f(Q,{ref_key:`formRef`,ref:O,model:j,rules:M,"label-width":`90px`},{default:e(()=>[f(Z,{gutter:16},{default:e(()=>[f(q,{span:12},{default:e(()=>[f(K,{label:`门店名称`,prop:`name`},{default:e(()=>[f(h,{modelValue:j.name,"onUpdate:modelValue":c[15]||=e=>j.name=e,placeholder:`请输入门店名称`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`门店编码`,prop:`code`},{default:e(()=>[f(h,{modelValue:j.code,"onUpdate:modelValue":c[16]||=e=>j.code=e,placeholder:`如: HQ001`,disabled:D.value},null,8,[`modelValue`,`disabled`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`所在地区`,prop:`region`},{default:e(()=>[f(h,{modelValue:j.region,"onUpdate:modelValue":c[17]||=e=>j.region=e,placeholder:`如: 北京市朝阳区`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`联系电话`,prop:`phone`},{default:e(()=>[f(h,{modelValue:j.phone,"onUpdate:modelValue":c[18]||=e=>j.phone=e,placeholder:`请输入联系电话`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:24},{default:e(()=>[f(K,{label:`详细地址`,prop:`address`},{default:e(()=>[f(h,{modelValue:j.address,"onUpdate:modelValue":c[19]||=e=>j.address=e,placeholder:`请输入详细地址`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`联系人`,prop:`contact`},{default:e(()=>[f(h,{modelValue:j.contact,"onUpdate:modelValue":c[20]||=e=>j.contact=e,placeholder:`负责人姓名`},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`床位数量`,prop:`capacity`},{default:e(()=>[f(J,{modelValue:j.capacity,"onUpdate:modelValue":c[21]||=e=>j.capacity=e,min:1,max:999,style:{width:`100%`}},null,8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:12},{default:e(()=>[f(K,{label:`状态`,prop:`status`},{default:e(()=>[f(X,{modelValue:j.status,"onUpdate:modelValue":c[22]||=e=>j.status=e},{default:e(()=>[f(Y,{value:1},{default:e(()=>[...c[35]||=[o(`启用`,-1)]]),_:1}),f(Y,{value:0},{default:e(()=>[...c[36]||=[o(`停用`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1})]),_:1}),f(q,{span:24},{default:e(()=>[f(K,{label:`备注`,prop:`description`},{default:e(()=>[f(h,{modelValue:j.description,"onUpdate:modelValue":c[23]||=e=>j.description=e,type:`textarea`,rows:3,placeholder:`门店备注信息(选填)`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})]),_:1},8,[`model`])]),_:1},8,[`modelValue`,`title`])])}}};export{b as default};