2 lines
7.1 KiB
JavaScript
2 lines
7.1 KiB
JavaScript
import{s as m}from"./request-CrM1Jo5H.js";import{D as ae,c as te,b as M,a as e,w as t,F as O,k as H,r as i,G as ne,j as s,i as oe,o as F,h as u,H as L,C as R,E as c}from"./index-DdxTGUP0.js";const ie={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"16px"}},pe={__name:"Shops",setup(se){const y=s(!1),_=s(!1),$=s([]),f=s(!1),k=s(!1),C=s(null),B=s(null),E={Authorization:`Bearer ${localStorage.getItem("admin_token")}`},U=()=>({name:"",photo:"",location:"",notice:"",packingFeeType:"Fixed",packingFeeAmount:0,isEnabled:!0}),o=oe(U()),G={name:[{required:!0,message:"门店名称不能为空",trigger:"blur"}],photo:[{required:!0,message:"门店照片不能为空",trigger:"blur"}],location:[{required:!0,message:"门店位置不能为空",trigger:"blur"}],packingFeeType:[{required:!0,message:"请选择打包费类型",trigger:"change"}]},V=s(!1),h=s(!1),g=s(null),z=s(""),T=s([]);async function w(){y.value=!0;try{$.value=await m.get("/admin/shops")}finally{y.value=!1}}function A(n){k.value=!!n,C.value=(n==null?void 0:n.id)||null,Object.assign(o,n?{name:n.name,photo:n.photo,location:n.location,notice:n.notice||"",packingFeeType:n.packingFeeType,packingFeeAmount:n.packingFeeAmount,isEnabled:n.isEnabled}:U()),f.value=!0}async function P(){if(await B.value.validate().catch(()=>!1)){_.value=!0;try{k.value?(await m.put(`/admin/shops/${C.value}`,o),c.success("更新成功")):(await m.post("/admin/shops",o),c.success("创建成功")),f.value=!1,w()}finally{_.value=!1}}}async function J(n){await R.confirm(`确定删除门店「${n.name}」?将同时删除其菜品和 Banner`,"提示",{type:"warning"}),await m.delete(`/admin/shops/${n.id}`),c.success("删除成功"),w()}async function K(n){g.value=n.id,z.value=n.name,V.value=!0,await x()}async function x(){h.value=!0;try{T.value=await m.get(`/admin/shops/${g.value}/banners`)}finally{h.value=!1}}async function Q(n){await m.post(`/admin/shops/${g.value}/banners`,{imageUrl:n.url,sortOrder:0}),c.success("添加成功"),x()}async function W(n){await R.confirm("确定删除该 Banner?","提示",{type:"warning"}),await m.delete(`/admin/shops/${g.value}/banners/${n.id}`),c.success("删除成功"),x()}return ae(w),(n,l)=>{const p=i("el-button"),D=i("el-image"),d=i("el-table-column"),X=i("el-tag"),S=i("el-table"),b=i("el-input"),r=i("el-form-item"),q=i("el-upload"),I=i("el-option"),Y=i("el-select"),Z=i("el-input-number"),ee=i("el-switch"),le=i("el-form"),N=i("el-dialog"),j=ne("loading");return F(),te("div",null,[M("div",ie,[l[12]||(l[12]=M("h3",{style:{margin:"0"}},"门店管理",-1)),e(p,{type:"primary",onClick:l[0]||(l[0]=a=>A())},{default:t(()=>[...l[11]||(l[11]=[u("新增门店",-1)])]),_:1})]),O((F(),H(S,{data:$.value,border:""},{default:t(()=>[e(d,{label:"照片",width:"100"},{default:t(({row:a})=>[e(D,{src:a.photo,style:{width:"60px",height:"60px"},fit:"cover"},null,8,["src"])]),_:1}),e(d,{prop:"name",label:"门店名称",width:"140"}),e(d,{prop:"location",label:"位置","show-overflow-tooltip":""}),e(d,{prop:"packingFeeType",label:"打包费类型",width:"120"},{default:t(({row:a})=>[u(L(a.packingFeeType==="Fixed"?"总打包费":"单份打包费"),1)]),_:1}),e(d,{prop:"packingFeeAmount",label:"打包费金额",width:"110"}),e(d,{prop:"dishCount",label:"菜品数",width:"80"}),e(d,{label:"状态",width:"80"},{default:t(({row:a})=>[e(X,{type:a.isEnabled?"success":"info",size:"small"},{default:t(()=>[u(L(a.isEnabled?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),e(d,{label:"操作",width:"260",fixed:"right"},{default:t(({row:a})=>[e(p,{size:"small",onClick:v=>A(a)},{default:t(()=>[...l[13]||(l[13]=[u("编辑",-1)])]),_:1},8,["onClick"]),e(p,{size:"small",onClick:v=>K(a)},{default:t(()=>[...l[14]||(l[14]=[u("Banner",-1)])]),_:1},8,["onClick"]),e(p,{size:"small",type:"primary",onClick:v=>n.$router.push(`/shops/${a.id}/dishes`)},{default:t(()=>[...l[15]||(l[15]=[u("菜品",-1)])]),_:1},8,["onClick"]),e(p,{size:"small",type:"danger",onClick:v=>J(a)},{default:t(()=>[...l[16]||(l[16]=[u("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[j,y.value]]),e(N,{modelValue:f.value,"onUpdate:modelValue":l[9]||(l[9]=a=>f.value=a),title:k.value?"编辑门店":"新增门店",width:"550px"},{footer:t(()=>[e(p,{onClick:l[8]||(l[8]=a=>f.value=!1)},{default:t(()=>[...l[18]||(l[18]=[u("取消",-1)])]),_:1}),e(p,{type:"primary",loading:_.value,onClick:P},{default:t(()=>[...l[19]||(l[19]=[u("确定",-1)])]),_:1},8,["loading"])]),default:t(()=>[e(le,{ref_key:"formRef",ref:B,model:o,rules:G,"label-width":"100px"},{default:t(()=>[e(r,{label:"门店名称",prop:"name"},{default:t(()=>[e(b,{modelValue:o.name,"onUpdate:modelValue":l[1]||(l[1]=a=>o.name=a)},null,8,["modelValue"])]),_:1}),e(r,{label:"门店照片",prop:"photo"},{default:t(()=>[e(b,{modelValue:o.photo,"onUpdate:modelValue":l[2]||(l[2]=a=>o.photo=a),placeholder:"照片地址"},null,8,["modelValue"]),e(q,{action:"/api/upload/image",headers:E,"show-file-list":!1,"on-success":a=>o.photo=a.url,accept:"image/*",style:{"margin-top":"8px"}},{default:t(()=>[e(p,{size:"small"},{default:t(()=>[...l[17]||(l[17]=[u("上传照片",-1)])]),_:1})]),_:1},8,["on-success"])]),_:1}),e(r,{label:"门店位置",prop:"location"},{default:t(()=>[e(b,{modelValue:o.location,"onUpdate:modelValue":l[3]||(l[3]=a=>o.location=a)},null,8,["modelValue"])]),_:1}),e(r,{label:"注意事项"},{default:t(()=>[e(b,{modelValue:o.notice,"onUpdate:modelValue":l[4]||(l[4]=a=>o.notice=a),type:"textarea",rows:3},null,8,["modelValue"])]),_:1}),e(r,{label:"打包费类型",prop:"packingFeeType"},{default:t(()=>[e(Y,{modelValue:o.packingFeeType,"onUpdate:modelValue":l[5]||(l[5]=a=>o.packingFeeType=a),style:{width:"100%"}},{default:t(()=>[e(I,{label:"总打包费(固定金额)",value:"Fixed"}),e(I,{label:"单份打包费(按份数)",value:"PerItem"})]),_:1},8,["modelValue"])]),_:1}),e(r,{label:"打包费金额"},{default:t(()=>[e(Z,{modelValue:o.packingFeeAmount,"onUpdate:modelValue":l[6]||(l[6]=a=>o.packingFeeAmount=a),min:0,precision:2,step:.5},null,8,["modelValue"])]),_:1}),e(r,{label:"启用状态"},{default:t(()=>[e(ee,{modelValue:o.isEnabled,"onUpdate:modelValue":l[7]||(l[7]=a=>o.isEnabled=a)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"]),e(N,{modelValue:V.value,"onUpdate:modelValue":l[10]||(l[10]=a=>V.value=a),title:`${z.value} - Banner 管理`,width:"600px"},{default:t(()=>[e(q,{action:"/api/upload/image",headers:E,"show-file-list":!1,"on-success":Q,accept:"image/*",style:{"margin-bottom":"16px"}},{default:t(()=>[e(p,{type:"primary",size:"small"},{default:t(()=>[...l[20]||(l[20]=[u("添加 Banner",-1)])]),_:1})]),_:1}),O((F(),H(S,{data:T.value,border:"",size:"small"},{default:t(()=>[e(d,{label:"图片",width:"160"},{default:t(({row:a})=>[e(D,{src:a.imageUrl,style:{width:"120px",height:"60px"},fit:"cover"},null,8,["src"])]),_:1}),e(d,{prop:"sortOrder",label:"排序",width:"80"}),e(d,{label:"操作",width:"80"},{default:t(({row:a})=>[e(p,{size:"small",type:"danger",onClick:v=>W(a)},{default:t(()=>[...l[21]||(l[21]=[u("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[j,h.value]])]),_:1},8,["modelValue","title"])])}}};export{pe as default};
|