2 lines
7.9 KiB
JavaScript
2 lines
7.9 KiB
JavaScript
|
|
import{L as Y,d as ee,o as le,b as C,e as E,m as t,z as o,p as h,U as te,s as ae,y as M,r as d,C as u,T as ne,g as _,j as v,F as w,h as O,t as $,V as oe,W as ue,X as ie,J as b,_ as se}from"./index-eVF4AHSu.js";import{n as de}from"./pagination-BgSlm-mj.js";import{r as re}from"./media-BgGGvhcR.js";import{M as me}from"./MediaSelector-DyRQc9ag.js";import"./upload-C79x1DTb.js";const k=Y();async function pe(i){try{const r=await k.get("/admin/carousel/list",i);return de(r,V=>V,(i==null?void 0:i.size)??20)}catch(r){return console.warn("[admin/carousel/list] fallback:",r),{records:[],total:0,current:1,pages:0}}}async function ce(i){return k.postJson("/admin/carousel/create",i)}async function A(i,r){await k.putJson(`/admin/carousel/update/${i}`,r)}async function ve(i){await k.delete(`/admin/carousel/delete/${i}`)}const be={class:"carousel-manage"},fe={class:"page-header"},_e={class:"filter-bar"},ge={key:1,class:"table-thumb-placeholder"},Ve={class:"pagination-bar"},ye=ee({__name:"CarouselManage",setup(i){const r=d(!1),V=d([]),T=d(0),Z=d(1),U=d(20),y=d("home_banner"),f=d(!1),P=d("新增轮播图"),x=d(null),n=d({position:"home_banner",imagePc:"",titleZh:"",titleEn:"",subtitleZh:"",subtitleEn:"",btnTextZh:"",btnTextEn:"",btnLink:"",btnStyle:"primary",status:1,sortOrder:0}),L=[{label:"首页Banner",value:"home_banner"},{label:"关于页Banner",value:"about_banner"},{label:"产品页Banner",value:"product_banner"},{label:"案例页Banner",value:"case_banner"},{label:"联系页Banner",value:"contact_banner"}];async function g(){r.value=!0;try{const a=await pe({position:y.value,page:Z.value,size:U.value});V.value=a.records,T.value=a.total}catch(a){console.warn("fetchCarouselList failed:",a)}finally{r.value=!1}}le(g);function D(){x.value=null,P.value="新增轮播图",n.value={position:y.value,imagePc:"",titleZh:"",titleEn:"",subtitleZh:"",subtitleEn:"",btnTextZh:"",btnTextEn:"",btnLink:"",btnStyle:"primary",status:1,sortOrder:0},f.value=!0}function J(a){x.value=a.id,P.value="编辑轮播图",n.value={position:a.position||"home_banner",imagePc:a.imagePc||"",titleZh:a.titleZh||"",titleEn:a.titleEn||"",subtitleZh:a.subtitleZh||"",subtitleEn:a.subtitleEn||"",btnTextZh:a.btnTextZh||"",btnTextEn:a.btnTextEn||"",btnLink:a.btnLink||"",btnStyle:a.btnStyle||"primary",status:a.status??1,sortOrder:a.sortOrder??0,imageMobile:a.imageMobile||void 0,imageAltZh:a.imageAltZh||void 0,imageAltEn:a.imageAltEn||void 0},f.value=!0}async function N(a){try{await ie.confirm(`确定删除轮播图「${a.titleZh||a.id}」?`,"确认删除",{type:"warning"}),await ve(a.id),b.success("删除成功"),await g()}catch{}}async function q(){if(!n.value.imagePc){b.warning("请填写PC端图片URL");return}try{x.value?(await A(x.value,n.value),b.success("更新成功")):(await ce(n.value),b.success("创建成功")),f.value=!1,await g()}catch(a){b.error(a instanceof Error?a.message:"操作失败")}}async function F(a){const l=a.status===1?0:1;try{await A(a.id,{status:l}),a.status=l,b.success(l===1?"已启用":"已禁用")}catch{b.error("操作失败")}}return(a,l)=>{const m=u("el-button"),z=u("el-option"),S=u("el-select"),I=u("el-image"),p=u("el-table-column"),R=u("el-tag"),j=u("el-table"),W=u("el-pagination"),s=u("el-form-item"),c=u("el-input"),X=u("el-input-number"),G=u("el-switch"),H=u("el-form"),K=u("el-dialog"),Q=ne("loading");return _(),C("div",be,[E("div",fe,[l[17]||(l[17]=E("h2",{class:"page-title"},"轮播图管理",-1)),t(m,{type:"primary",icon:h(te),onClick:D},{default:o(()=>[...l[16]||(l[16]=[v("新增轮播图",-1)])]),_:1},8,["icon"])]),E("div",_e,[t(S,{modelValue:y.value,"onUpdate:modelValue":l[0]||(l[0]=e=>y.value=e),placeholder:"选择位置",onChange:g,style:{width:"200px"}},{default:o(()=>[(_(),C(w,null,O(L,e=>t(z,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"])]),ae((_(),M(j,{data:V.value,class:"admin-table"},{default:o(()=>[t(p,{label:"预览",width:"120"},{default:o(({row:e})=>[e.imagePc?(_(),M(I,{key:0,src:h(re)(e.imagePc),fit:"cover",class:"table-thumb"},null,8,["src"])):(_(),C("div",ge,"无图"))])
|