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

2 lines
4.7 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{s as f}from"./request-CrM1Jo5H.js";import{D as G,c as L,b as B,a as l,w as a,F as J,k as K,r as i,G as P,j as r,i as Q,o as C,h as s,H as T,C as W,E as v}from"./index-DdxTGUP0.js";const X={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"16px"}},le={__name:"Banners",setup(Y){const c=r(!1),g=r(!1),y=r([]),m=r(!1),_=r(!1),k=r(null),U=r(null),O={Authorization:`Bearer ${localStorage.getItem("admin_token")}`},V=()=>({imageUrl:"",linkType:"External",linkUrl:"",sortOrder:0,isEnabled:!0}),n=Q(V()),$={imageUrl:[{required:!0,message:"图片地址不能为空",trigger:"blur"}],linkType:[{required:!0,message:"请选择链接类型",trigger:"change"}],linkUrl:[{required:!0,message:"链接地址不能为空",trigger:"blur"}]};async function b(){c.value=!0;try{y.value=await f.get("/admin/banners")}finally{c.value=!1}}function x(o){_.value=!!o,k.value=(o==null?void 0:o.id)||null,Object.assign(n,o?{imageUrl:o.imageUrl,linkType:o.linkType,linkUrl:o.linkUrl,sortOrder:o.sortOrder,isEnabled:o.isEnabled}:V()),m.value=!0}async function D(){if(await U.value.validate().catch(()=>!1)){g.value=!0;try{_.value?(await f.put(`/admin/banners/${k.value}`,n),v.success("更新成功")):(await f.post("/admin/banners",n),v.success("创建成功")),m.value=!1,b()}finally{g.value=!1}}}async function z(o){await W.confirm("确定删除该 Banner","提示",{type:"warning"}),await f.delete(`/admin/banners/${o.id}`),v.success("删除成功"),b()}return G(b),(o,e)=>{const d=i("el-button"),j=i("el-image"),u=i("el-table-column"),q=i("el-tag"),I=i("el-table"),E=i("el-input"),M=i("el-upload"),p=i("el-form-item"),w=i("el-option"),N=i("el-select"),S=i("el-input-number"),F=i("el-switch"),H=i("el-form"),R=i("el-dialog"),h=P("loading");return C(),L("div",null,[B("div",X,[e[9]||(e[9]=B("h3",{style:{margin:"0"}},"Banner 管理",-1)),l(d,{type:"primary",onClick:e[0]||(e[0]=t=>x())},{default:a(()=>[...e[8]||(e[8]=[s("新增 Banner",-1)])]),_:1})]),J((C(),K(I,{data:y.value,border:""},{default:a(()=>[l(u,{label:"图片",width:"120"},{default:a(({row:t})=>[l(j,{src:t.imageUrl,style:{width:"80px",height:"45px"},fit:"cover"},null,8,["src"])]),_:1}),l(u,{prop:"linkType",label:"链接类型",width:"120"},{default:a(({row:t})=>[s(T(t.linkType==="External"?"外部链接":"内部页面"),1)]),_:1}),l(u,{prop:"linkUrl",label:"链接地址","show-overflow-tooltip":""}),l(u,{prop:"sortOrder",label:"排序",width:"80"}),l(u,{label:"启用状态",width:"100"},{default:a(({row:t})=>[l(q,{type:t.isEnabled?"success":"info"},{default:a(()=>[s(T(t.isEnabled?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),l(u,{label:"操作",width:"160",fixed:"right"},{default:a(({row:t})=>[l(d,{size:"small",onClick:A=>x(t)},{default:a(()=>[...e[10]||(e[10]=[s("编辑",-1)])]),_:1},8,["onClick"]),l(d,{size:"small",type:"danger",onClick:A=>z(t)},{default:a(()=>[...e[11]||(e[11]=[s("删除",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[h,c.value]]),l(R,{modelValue:m.value,"onUpdate:modelValue":e[7]||(e[7]=t=>m.value=t),title:_.value?"编辑 Banner":"新增 Banner",width:"500px"},{footer:a(()=>[l(d,{onClick:e[6]||(e[6]=t=>m.value=!1)},{default:a(()=>[...e[13]||(e[13]=[s("取消",-1)])]),_:1}),l(d,{type:"primary",loading:g.value,onClick:D},{default:a(()=>[...e[14]||(e[14]=[s("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[l(H,{ref_key:"formRef",ref:U,model:n,rules:$,"label-width":"90px"},{default:a(()=>[l(p,{label:"图片",prop:"imageUrl"},{default:a(()=>[l(E,{modelValue:n.imageUrl,"onUpdate:modelValue":e[1]||(e[1]=t=>n.imageUrl=t),placeholder:"图片地址"},null,8,["modelValue"]),l(M,{action:"/api/upload/image",headers:O,"show-file-list":!1,"on-success":t=>n.imageUrl=t.url,accept:"image/*",style:{"margin-top":"8px"}},{default:a(()=>[l(d,{size:"small"},{default:a(()=>[...e[12]||(e[12]=[s("上传图片",-1)])]),_:1})]),_:1},8,["on-success"])]),_:1}),l(p,{label:"链接类型",prop:"linkType"},{default:a(()=>[l(N,{modelValue:n.linkType,"onUpdate:modelValue":e[2]||(e[2]=t=>n.linkType=t),style:{width:"100%"}},{default:a(()=>[l(w,{label:"外部链接",value:"External"}),l(w,{label:"内部页面",value:"Internal"})]),_:1},8,["modelValue"])]),_:1}),l(p,{label:"链接地址",prop:"linkUrl"},{default:a(()=>[l(E,{modelValue:n.linkUrl,"onUpdate:modelValue":e[3]||(e[3]=t=>n.linkUrl=t),placeholder:"链接地址"},null,8,["modelValue"])]),_:1}),l(p,{label:"排序权重",prop:"sortOrder"},{default:a(()=>[l(S,{modelValue:n.sortOrder,"onUpdate:modelValue":e[4]||(e[4]=t=>n.sortOrder=t),min:0},null,8,["modelValue"])]),_:1}),l(p,{label:"启用状态"},{default:a(()=>[l(F,{modelValue:n.isEnabled,"onUpdate:modelValue":e[5]||(e[5]=t=>n.isEnabled=t)},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}};export{le as default};