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,"无图"))]),_:1}),t(p,{prop:"titleZh",label:"标题(中文)","min-width":"160"}),t(p,{prop:"titleEn",label:"标题(英文)","min-width":"160"}),t(p,{prop:"position",label:"位置",width:"120"}),t(p,{prop:"sortOrder",label:"排序",width:"80"}),t(p,{label:"状态",width:"80"},{default:o(({row:e})=>[t(R,{type:e.status===1?"success":"info",size:"small"},{default:o(()=>[v($(e.status===1?"启用":"禁用"),1)]),_:2},1032,["type"])]),_:1}),t(p,{label:"操作",width:"200",fixed:"right"},{default:o(({row:e})=>[t(m,{size:"small",icon:h(oe),onClick:B=>J(e),text:""},{default:o(()=>[...l[18]||(l[18]=[v("编辑",-1)])]),_:1},8,["icon","onClick"]),t(m,{size:"small",onClick:B=>F(e),text:""},{default:o(()=>[v($(e.status===1?"禁用":"启用"),1)]),_:2},1032,["onClick"]),t(m,{size:"small",icon:h(ue),type:"danger",onClick:B=>N(e),text:""},{default:o(()=>[...l[19]||(l[19]=[v("删除",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[Q,r.value]]),E("div",Ve,[t(W,{"current-page":Z.value,"onUpdate:currentPage":l[1]||(l[1]=e=>Z.value=e),"page-size":U.value,"onUpdate:pageSize":l[2]||(l[2]=e=>U.value=e),total:T.value,layout:"total, prev, pager, next",onCurrentChange:g},null,8,["current-page","page-size","total"])]),t(K,{modelValue:f.value,"onUpdate:modelValue":l[15]||(l[15]=e=>f.value=e),title:P.value,width:"680px","destroy-on-close":""},{footer:o(()=>[t(m,{onClick:l[14]||(l[14]=e=>f.value=!1)},{default:o(()=>[...l[20]||(l[20]=[v("取消",-1)])]),_:1}),t(m,{type:"primary",onClick:q},{default:o(()=>[...l[21]||(l[21]=[v("保存",-1)])]),_:1})]),default:o(()=>[t(H,{"label-width":"120px"},{default:o(()=>[t(s,{label:"位置",required:""},{default:o(()=>[t(S,{modelValue:n.value.position,"onUpdate:modelValue":l[3]||(l[3]=e=>n.value.position=e),style:{width:"100%"}},{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"])]),_:1}),t(s,{label:"PC端图片",required:""},{default:o(()=>[t(me,{modelValue:n.value.imagePc,"onUpdate:modelValue":l[4]||(l[4]=e=>n.value.imagePc=e),"used-in":"carousel"},null,8,["modelValue"])]),_:1}),t(s,{label:"标题(中文)"},{default:o(()=>[t(c,{modelValue:n.value.titleZh,"onUpdate:modelValue":l[5]||(l[5]=e=>n.value.titleZh=e)},null,8,["modelValue"])]),_:1}),t(s,{label:"标题(英文)"},{default:o(()=>[t(c,{modelValue:n.value.titleEn,"onUpdate:modelValue":l[6]||(l[6]=e=>n.value.titleEn=e)},null,8,["modelValue"])]),_:1}),t(s,{label:"副标题(中文)"},{default:o(()=>[t(c,{modelValue:n.value.subtitleZh,"onUpdate:modelValue":l[7]||(l[7]=e=>n.value.subtitleZh=e),type:"textarea",rows:2},null,8,["modelValue"])]),_:1}),t(s,{label:"副标题(英文)"},{default:o(()=>[t(c,{modelValue:n.value.subtitleEn,"onUpdate:modelValue":l[8]||(l[8]=e=>n.value.subtitleEn=e),type:"textarea",rows:2},null,8,["modelValue"])]),_:1}),t(s,{label:"按钮文字(中文)"},{default:o(()=>[t(c,{modelValue:n.value.btnTextZh,"onUpdate:modelValue":l[9]||(l[9]=e=>n.value.btnTextZh=e)},null,8,["modelValue"])]),_:1}),t(s,{label:"按钮文字(英文)"},{default:o(()=>[t(c,{modelValue:n.value.btnTextEn,"onUpdate:modelValue":l[10]||(l[10]=e=>n.value.btnTextEn=e)},null,8,["modelValue"])]),_:1}),t(s,{label:"按钮链接"},{default:o(()=>[t(c,{modelValue:n.value.btnLink,"onUpdate:modelValue":l[11]||(l[11]=e=>n.value.btnLink=e),placeholder:"/products 或完整URL"},null,8,["modelValue"])]),_:1}),t(s,{label:"排序"},{default:o(()=>[t(X,{modelValue:n.value.sortOrder,"onUpdate:modelValue":l[12]||(l[12]=e=>n.value.sortOrder=e),min:0},null,8,["modelValue"])]),_:1}),t(s,{label:"状态"},{default:o(()=>[t(G,{modelValue:n.value.status,"onUpdate:modelValue":l[13]||(l[13]=e=>n.value.status=e),"active-value":1,"inactive-value":0,"active-text":"启用","inactive-text":"禁用"},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}}),Ze=se(ye,[["__scopeId","data-v-0a80b763"]]);export{Ze as default};
|