2 lines
8.5 KiB
JavaScript
2 lines
8.5 KiB
JavaScript
import{d as ee,o as le,b as w,e as i,m as a,z as o,p as V,U as ae,x as te,s as oe,y as h,r as d,C as u,T as ne,g as m,j as f,F as R,h as S,Z as se,t as T,V as ue,W as de,X as ie,J as b,_ as re}from"./index-eVF4AHSu.js";import{R as me}from"./RichEditor-DD1hYfzj.js";import{M as ve}from"./MediaSelector-DyRQc9ag.js";import{a as ce,f as pe,b as fe,e as ge,g as _e}from"./case-ChTjqYer.js";import{r as Ve}from"./media-BgGGvhcR.js";import"./upload-C79x1DTb.js";import"./pagination-BgSlm-mj.js";const be={class:"case-manage"},ye={class:"page-header"},we={class:"filter-bar"},he={key:1,class:"table-thumb-placeholder"},Ze={class:"pagination-bar"},Ce={class:"dialog-row"},Ue={class:"dialog-row"},xe={class:"dialog-row"},je={class:"dialog-row"},ke={class:"dialog-row"},Ie={class:"dialog-row"},Ee=ee({__name:"CaseManage",setup(Le){const Z=d(!1),L=d([]),_=d([]),z=d(0),C=d(1),U=d(20),x=d(void 0),j=d(""),g=d(!1),k=d("新增案例"),y=d(null),I=d(!1),t=d({categoryId:0,titleZh:"",titleEn:"",subtitleZh:"",subtitleEn:"",coverImage:"",projectTypeZh:"",projectArea:"",projectLocationZh:"",projectDate:"",summaryZh:"",summaryEn:"",contentZh:"",contentEn:"",isHot:0,isRecommend:0,status:1,sortOrder:0});async function v(){Z.value=!0;try{const n=await ce({categoryId:x.value,keyword:j.value||void 0,page:C.value,size:U.value});L.value=n.records,z.value=n.total}catch(n){console.warn("fetchCaseList failed:",n)}finally{Z.value=!1}}async function A(){try{_.value=await pe()}catch{}}le(()=>{A(),v()});function B(){var n;y.value=null,k.value="新增案例",t.value={categoryId:((n=_.value[0])==null?void 0:n.id)??0,titleZh:"",titleEn:"",subtitleZh:"",coverImage:"",status:1,sortOrder:0,isHot:0,isRecommend:0},g.value=!0}function H(n){y.value=n.id,k.value="编辑案例",t.value={...n},g.value=!0}async function N(n){try{await ie.confirm(`确定删除案例「${n.titleZh}」?`,"确认删除",{type:"warning"}),await fe(n.id),b.success("删除成功"),await v()}catch{}}async function O(){if(!t.value.titleZh||!t.value.categoryId){b.warning("请填写案例标题和分类");return}I.value=!0;try{y.value?(await ge(y.value,t.value),b.success("更新成功")):(await _e(t.value),b.success("创建成功")),g.value=!1,await v()}catch(n){b.error(n instanceof Error?n.message:"操作失败")}finally{I.value=!1}}function $(n){var l;return((l=_.value.find(c=>c.id===n))==null?void 0:l.nameZh)||String(n)}return(n,l)=>{const c=u("el-button"),M=u("el-option"),D=u("el-select"),K=u("el-icon"),r=u("el-input"),P=u("el-image"),p=u("el-table-column"),q=u("el-tag"),F=u("el-table"),J=u("el-pagination"),s=u("el-form-item"),E=u("el-switch"),W=u("el-input-number"),X=u("el-form"),G=u("el-dialog"),Q=ne("loading");return m(),w("div",be,[i("div",ye,[l[22]||(l[22]=i("h2",{class:"page-title"},"案例管理",-1)),a(c,{type:"primary",icon:V(ae),onClick:B},{default:o(()=>[...l[21]||(l[21]=[f("新增案例",-1)])]),_:1},8,["icon"])]),i("div",we,[a(D,{modelValue:x.value,"onUpdate:modelValue":l[0]||(l[0]=e=>x.value=e),placeholder:"选择分类",clearable:"",onChange:v,style:{width:"180px"}},{default:o(()=>[(m(!0),w(R,null,S(_.value,e=>(m(),h(M,{key:e.id,label:e.nameZh,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),a(r,{modelValue:j.value,"onUpdate:modelValue":l[1]||(l[1]=e=>j.value=e),placeholder:"搜索案例名称...",clearable:"",onChange:v,onKeyup:te(v,["enter"]),style:{width:"240px"}},{prefix:o(()=>[a(K,null,{default:o(()=>[a(V(se))]),_:1})]),_:1},8,["modelValue"])]),oe((m(),h(F,{data:L.value,class:"admin-table"},{default:o(()=>[a(p,{label:"封面",width:"100"},{default:o(({row:e})=>[e.coverImage?(m(),h(P,{key:0,src:V(Ve)(e.coverImage),fit:"cover",class:"table-thumb"},null,8,["src"])):(m(),w("div",he,"无图"))]),_:1}),a(p,{prop:"titleZh",label:"案例标题","min-width":"200","show-overflow-tooltip":""}),a(p,{label:"分类",width:"120"},{default:o(({row:e})=>[f(T($(e.categoryId)),1)]),_:1}),a(p,{prop:"projectArea",label:"面积",width:"100"}),a(p,{prop:"projectLocationZh",label:"地点",width:"120"}),a(p,{label:"状态",width:"80"},{default:o(({row:e})=>[a(q,{type:e.status===1?"success":"info",size:"small"},{default:o(()=>[f(T(e.status===1?"上架":"下架"),1)]),_:2},1032,["type"])]),_:1}),a(p,{label:"操作",width:"160",fixed:"right"},{default:o(({row:e})=>[a(c,{size:"small",icon:V(ue),onClick:Y=>H(e),text:""},{default:o(()=>[...l[23]||(l[23]=[f("编辑",-1)])]),_:1},8,["icon","onClick"]),a(c,{size:"small",icon:V(de),type:"danger",onClick:Y=>N(e),text:""},{default:o(()=>[...l[24]||(l[24]=[f("删除",-1)])]),_:1},8,["icon","onClick"])]),_:1})]),_:1},8,["data"])),[[Q,Z.value]]),i("div",Ze,[a(J,{"current-page":C.value,"onUpdate:currentPage":l[2]||(l[2]=e=>C.value=e),"page-size":U.value,"onUpdate:pageSize":l[3]||(l[3]=e=>U.value=e),total:z.value,layout:"total, prev, pager, next",onCurrentChange:v},null,8,["current-page","page-size","total"])]),a(G,{modelValue:g.value,"onUpdate:modelValue":l[20]||(l[20]=e=>g.value=e),title:k.value,width:"780px","destroy-on-close":""},{footer:o(()=>[a(c,{onClick:l[19]||(l[19]=e=>g.value=!1)},{default:o(()=>[...l[25]||(l[25]=[f("取消",-1)])]),_:1}),a(c,{type:"primary",loading:I.value,onClick:O},{default:o(()=>[...l[26]||(l[26]=[f("保存",-1)])]),_:1},8,["loading"])]),default:o(()=>[a(X,{"label-width":"120px"},{default:o(()=>[i("div",Ce,[a(s,{label:"标题(中文)",required:"",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.titleZh,"onUpdate:modelValue":l[4]||(l[4]=e=>t.value.titleZh=e)},null,8,["modelValue"])]),_:1}),a(s,{label:"标题(英文)",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.titleEn,"onUpdate:modelValue":l[5]||(l[5]=e=>t.value.titleEn=e)},null,8,["modelValue"])]),_:1})]),i("div",Ue,[a(s,{label:"副标题(中文)",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.subtitleZh,"onUpdate:modelValue":l[6]||(l[6]=e=>t.value.subtitleZh=e)},null,8,["modelValue"])]),_:1}),a(s,{label:"所属分类",required:"",class:"dialog-col"},{default:o(()=>[a(D,{modelValue:t.value.categoryId,"onUpdate:modelValue":l[7]||(l[7]=e=>t.value.categoryId=e),style:{width:"100%"}},{default:o(()=>[(m(!0),w(R,null,S(_.value,e=>(m(),h(M,{key:e.id,label:e.nameZh,value:e.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),a(s,{label:"封面图URL"},{default:o(()=>[a(ve,{modelValue:t.value.coverImage,"onUpdate:modelValue":l[8]||(l[8]=e=>t.value.coverImage=e),"used-in":"case"},null,8,["modelValue"])]),_:1}),i("div",xe,[a(s,{label:"项目类型",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.projectTypeZh,"onUpdate:modelValue":l[9]||(l[9]=e=>t.value.projectTypeZh=e)},null,8,["modelValue"])]),_:1}),a(s,{label:"项目面积",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.projectArea,"onUpdate:modelValue":l[10]||(l[10]=e=>t.value.projectArea=e),placeholder:"120㎡"},null,8,["modelValue"])]),_:1})]),i("div",je,[a(s,{label:"项目地点",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.projectLocationZh,"onUpdate:modelValue":l[11]||(l[11]=e=>t.value.projectLocationZh=e)},null,8,["modelValue"])]),_:1}),a(s,{label:"完工日期",class:"dialog-col"},{default:o(()=>[a(r,{modelValue:t.value.projectDate,"onUpdate:modelValue":l[12]||(l[12]=e=>t.value.projectDate=e),placeholder:"2024-06"},null,8,["modelValue"])]),_:1})]),a(s,{label:"简介(中文)"},{default:o(()=>[a(r,{modelValue:t.value.summaryZh,"onUpdate:modelValue":l[13]||(l[13]=e=>t.value.summaryZh=e),type:"textarea",rows:3},null,8,["modelValue"])]),_:1}),a(s,{label:"详细内容(中文)"},{default:o(()=>[a(me,{modelValue:t.value.contentZh,"onUpdate:modelValue":l[14]||(l[14]=e=>t.value.contentZh=e),height:400},null,8,["modelValue"])]),_:1}),i("div",ke,[a(s,{label:"热门",class:"dialog-col"},{default:o(()=>[a(E,{modelValue:t.value.isHot,"onUpdate:modelValue":l[15]||(l[15]=e=>t.value.isHot=e),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1}),a(s,{label:"推荐",class:"dialog-col"},{default:o(()=>[a(E,{modelValue:t.value.isRecommend,"onUpdate:modelValue":l[16]||(l[16]=e=>t.value.isRecommend=e),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1})]),i("div",Ie,[a(s,{label:"状态",class:"dialog-col"},{default:o(()=>[a(E,{modelValue:t.value.status,"onUpdate:modelValue":l[17]||(l[17]=e=>t.value.status=e),"active-value":1,"inactive-value":0,"active-text":"上架","inactive-text":"下架"},null,8,["modelValue"])]),_:1}),a(s,{label:"排序",class:"dialog-col"},{default:o(()=>[a(W,{modelValue:t.value.sortOrder,"onUpdate:modelValue":l[18]||(l[18]=e=>t.value.sortOrder=e),min:0},null,8,["modelValue"])]),_:1})])]),_:1})]),_:1},8,["modelValue","title"])])}}}),Be=re(Ee,[["__scopeId","data-v-5f5b6675"]]);export{Be as default};
|