Files
ai_dianshang/admin/dist/assets/index-92073a1b.js

2 lines
19 KiB
JavaScript
Raw Normal View History

2025-11-17 13:32:54 +08:00
import{H as Y,a as de,r as B,b as le,j as te,k as ue,c as d,o as f,l as q,w as a,e as l,f as e,h as _,t as m,d as h,G as N,L as P,E as x,bY as se,bZ as me,z as ce,I as pe,g as _e,J as ve,n as ae,bX as fe,ce as be,c8 as ge}from"./index-fa7a0ed8.js";import{_ as ne}from"./_plugin-vue_export-helper-c27b6911.js";const ye=o=>Y({url:"/admin/api/v1/banners",method:"get",params:o}),ke=o=>Y({url:"/admin/api/v1/banners",method:"post",data:o}),he=(o,C)=>Y({url:`/admin/api/v1/banners/${o}`,method:"put",data:C}),De=o=>Y({url:`/admin/api/v1/banners/${o}`,method:"delete"}),we=o=>Y({url:"/admin/api/v1/banners/batch",method:"delete",data:{ids:o}}),xe=(o,C)=>Y({url:`/admin/api/v1/banners/${o}/status`,method:"put",data:{status:C}}),Ve=()=>Y({url:"/admin/api/v1/banners/clean-expired",method:"post"});const Ce={class:"upload-container"},Be={key:0,class:"upload-placeholder"},$e={key:1,class:"upload-preview"},ze={class:"upload-overlay"},Ue={key:0,style:{"margin-top":"10px"}},Se={class:"dialog-footer"},Te={__name:"BannerForm",props:{visible:{type:Boolean,default:!1},bannerData:{type:Object,default:null}},emits:["update:visible","success"],setup(o,{emit:C}){const c=o,$=C,S=de(),z=B(),T=B(),V=B(!1),u=B(!1),v=B([]),r=le({title:"",description:"",image:"",link_value:"",link_type:1,sort:0,status:1,start_time:null,end_time:null,remark:""}),y={title:[{required:!0,message:"请输入轮播图标题",trigger:"blur"},{min:1,max:100,message:"标题长度在 1 到 100 个字符",trigger:"blur"}],sort:[{required:!0,message:"请输入排序值",trigger:"blur"},{type:"number",min:0,max:999,message:"排序值在 0 到 999 之间",trigger:"blur"}],link_value:[{validator:(s,t,D)=>{r.link_type===4&&t&&(/^https?:\/\/.+/.test(t)||D(new Error("请输入有效的URL地址"))),D()},trigger:"blur"}]},n=te(()=>{var s;return!!((s=c.bannerData)!=null&&s.id)}),U=te(()=>"/api/admin/api/v1/upload/image"),p=te(()=>({Authorization:`Bearer ${S.token}`}));ue(()=>c.visible,s=>{s&&(k(),c.bannerData&&(Object.assign(r,c.bannerData),r.start_time&&r.end_time&&(u.value=!0,v.value=[r.start_time,r.end_time])))});const k=()=>{Object.assign(r,{title:"",description:"",image:"",link_value:"",link_type:1,sort:0,status:1,start_time:null,end_time:null,remark:""}),u.value=!1,v.value=[],z.value&&z.value.clearValidate()},R=s=>{s||(v.value=[],r.start_time=null,r.end_time=null)},H=s=>{s&&s.length===2?(r.start_time=s[0],r.end_time=s[1]):(r.start_time=null,r.end_time=null)},j=s=>{const t=s.type.startsWith("image/"),D=s.size/1024/1024<5;return t?D?!0:(x.error("图片大小不能超过 5MB!"),!1):(x.error("只能上传图片文件!"),!1)},I=s=>{s.code===200?r.image=s.data.url:x.error(s.message||"图片上传失败")},K=()=>{x.error("图片上传失败")},W=()=>{r.image=""},X=async()=>{try{if(await z.value.validate(),!r.image){x.error("请上传轮播图片");return}V.value=!0;const s={...r};n.value?await he(s.id,s):await ke(s),$("success")}catch(s){if(s.errors)return;x.error(n.value?"更新失败":"创建失败")}finally{V.value=!1}},E=()=>{$("update:visible",!1)};return(s,t)=>{const D=d("el-input"),b=d("el-form-item"),F=d("el-col"),A=d("el-input-number"),G=d("el-row"),w=d("el-icon"),Z=d("el-image"),Q=d("el-upload"),O=d("el-button"),M=d("el-option"),ee=d("el-select"),J=d("el-radio"),i=d("el-radio-group"),L=d("el-checkbox"),oe=d("el-date-picker"),ie=d("el-form"),re=d("el-dialog");return f(),q(re,{"model-value":o.visible,title:n.value?"编辑轮播图":"添加轮播图",width:"800px","onUpdate:modelValue":E,onClose:E},{footer:a(()=>[l("div",Se,[e(O,{onClick:E},{default:a(()=>[...t[16]||(t[16]=[_("取消",-1)])]),_:1}),e(O,{type:"primary",onClick:X,loading:V.value},{default:a(()=>[_(m(n.value?"更新":"创建"),1)]),_:1},8,["loading"])])]),default:a(()=>[e(ie,{ref_key:"formRef",ref:z,model:r,rules:y,"label-width":"100px"},{default:a(()=>[e(G,{gutter:20},{default:a(()=>[e(F,{span:12},{default:a(()=>[e(b,{label:"标题",prop:"title"},{default:a(()=>[e(D,{modelValue:r.title,"onUpdate:modelValue":t[0]||(t[0]=g=>r.title=g),placeholder:"请输入轮播图标题",maxlength:"100","show-word-limit":""},null,8,["modelV