campus-errand/admin/dist/assets/ShopDishes-DbyilX3T.js
2026-03-01 05:01:47 +08:00

2 lines
4.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{D as L,c as O,b as y,a as l,w as a,H as w,e as T,F as J,k as K,I as P,r as n,G as Q,j as d,i as W,o as D,h as i,C as X,E as h}from"./index-DdxTGUP0.js";import{s as c}from"./request-CrM1Jo5H.js";const Y={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"16px"}},Z={style:{display:"flex","align-items":"center",gap:"12px"}},ee={style:{margin:"0"}},se={__name:"ShopDishes",setup(le){const p=P().params.id,_=d(!1),g=d(!1),V=d([]),r=d(!1),v=d(!1),k=d(null),x=d(null),B={Authorization:`Bearer ${localStorage.getItem("admin_token")}`},$=()=>({name:"",photo:"",price:0,isEnabled:!0}),s=W($()),z={name:[{required:!0,message:"菜品名称不能为空",trigger:"blur"}],photo:[{required:!0,message:"菜品照片不能为空",trigger:"blur"}]};async function b(){_.value=!0;try{V.value=await c.get(`/admin/shops/${p}/dishes`)}finally{_.value=!1}}function E(o){v.value=!!o,k.value=(o==null?void 0:o.id)||null,Object.assign(s,o?{name:o.name,photo:o.photo,price:o.price,isEnabled:o.isEnabled}:$()),r.value=!0}async function U(){if(await x.value.validate().catch(()=>!1)){g.value=!0;try{v.value?(await c.put(`/admin/shops/${p}/dishes/${k.value}`,s),h.success("更新成功")):(await c.post(`/admin/shops/${p}/dishes`,s),h.success("创建成功")),r.value=!1,b()}finally{g.value=!1}}}async function I(o){await X.confirm(`确定删除菜品「${o.name}」?`,"提示",{type:"warning"}),await c.delete(`/admin/shops/${p}/dishes/${o.id}`),h.success("删除成功"),b()}return L(b),(o,e)=>{const u=n("el-button"),S=n("el-image"),m=n("el-table-column"),j=n("el-tag"),M=n("el-table"),C=n("el-input"),f=n("el-form-item"),N=n("el-upload"),R=n("el-input-number"),q=n("el-switch"),F=n("el-form"),H=n("el-dialog"),A=Q("loading");return D(),O("div",null,[y("div",Y,[y("div",Z,[l(u,{onClick:e[0]||(e[0]=t=>o.$router.push("/shops"))},{default:a(()=>[...e[8]||(e[8]=[i("返回门店列表",-1)])]),_:1}),y("h3",ee,"菜品管理(门店 #"+w(T(p))+"",1)]),l(u,{type:"primary",onClick:e[1]||(e[1]=t=>E())},{default:a(()=>[...e[9]||(e[9]=[i("新增菜品",-1)])]),_:1})]),J((D(),K(M,{data:V.value,border:""},{default:a(()=>[l(m,{label:"照片",width:"100"},{default:a(({row:t})=>[l(S,{src:t.photo,style:{width:"60px",height:"60px"},fit:"cover"},null,8,["src"])]),_:1}),l(m,{prop:"name",label:"菜品名称"}),l(m,{prop:"price",label:"价格(元)",width:"120"}),l(m,{label:"状态",width:"80"},{default:a(({row:t})=>[l(j,{type:t.isEnabled?"success":"info",size:"small"},{default:a(()=>[i(w(t.isEnabled?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),l(m,{label:"操作",width:"160",fixed:"right"},{default:a(({row:t})=>[l(u,{size:"small",onClick:G=>E(t)},{default:a(()=>[...e[10]||(e[10]=[i("编辑",-1)])]),_:1},8,["onClick"]),l(u,{size:"small",type:"danger",onClick:G=>I(t)},{default:a(()=>[...e[11]||(e[11]=[i("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[A,_.value]]),l(H,{modelValue:r.value,"onUpdate:modelValue":e[7]||(e[7]=t=>r.value=t),title:v.value?"编辑菜品":"新增菜品",width:"500px"},{footer:a(()=>[l(u,{onClick:e[6]||(e[6]=t=>r.value=!1)},{default:a(()=>[...e[13]||(e[13]=[i("取消",-1)])]),_:1}),l(u,{type:"primary",loading:g.value,onClick:U},{default:a(()=>[...e[14]||(e[14]=[i("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(F,{ref_key:"formRef",ref:x,model:s,rules:z,"label-width":"90px"},{default:a(()=>[l(f,{label:"菜品名称",prop:"name"},{default:a(()=>[l(C,{modelValue:s.name,"onUpdate:modelValue":e[2]||(e[2]=t=>s.name=t)},null,8,["modelValue"])]),_:1}),l(f,{label:"菜品照片",prop:"photo"},{default:a(()=>[l(C,{modelValue:s.photo,"onUpdate:modelValue":e[3]||(e[3]=t=>s.photo=t),placeholder:"照片地址"},null,8,["modelValue"]),l(N,{action:"/api/upload/image",headers:B,"show-file-list":!1,"on-success":t=>s.photo=t.url,accept:"image/*",style:{"margin-top":"8px"}},{default:a(()=>[l(u,{size:"small"},{default:a(()=>[...e[12]||(e[12]=[i("上传照片",-1)])]),_:1})]),_:1},8,["on-success"])]),_:1}),l(f,{label:"价格",prop:"price"},{default:a(()=>[l(R,{modelValue:s.price,"onUpdate:modelValue":e[4]||(e[4]=t=>s.price=t),min:0,precision:2,step:1},null,8,["modelValue"])]),_:1}),l(f,{label:"启用状态"},{default:a(()=>[l(q,{modelValue:s.isEnabled,"onUpdate:modelValue":e[5]||(e[5]=t=>s.isEnabled=t)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}};export{se as default};