mi-assessment/server/MiAssessment/src/MiAssessment.Admin/wwwroot/assets/index-CtUXOIM8.js
2026-02-21 18:21:13 +08:00

2 lines
12 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{d as fe,r as R,a as C,v as T,o as ce,g as u,B as ge,c as _e,k as D,e as l,C as ye,w as n,b as h,t as _,l as p,D as be,f as ke,J as V,L as he,s as Ie,z as v,T as Te,U as De,O as Ne,x as A,H as Ve,I as ve,G as L,Q as Ee,E as y,V as we,_ as Ue}from"./index-IVLVjSAe.js";import{g as Re,u as Ce,a as Ae,d as Le,b as xe,c as Me}from"./content-DHJ_Hb5N.js";const Se={class:"banner-container"},ze={class:"header-content"},Pe={class:"header-right"},qe={class:"sort-buttons"},Be={class:"image-error"},Ge={class:"pagination-wrapper"},Oe=fe({__name:"index",setup(Xe){const d={INTERNAL:1,EXTERNAL:2,MINIPROGRAM:3},x=R(),I=R(),i=C({pageIndex:1,pageSize:10,title:"",status:void 0}),a=C({loading:!1,tableData:[],total:0,dialogVisible:!1,dialogTitle:"新增轮播图",formData:N(),formLoading:!1,isEdit:!1}),M=T(()=>{const t=Number(a.formData.linkType);return t===d.INTERNAL||t===d.EXTERNAL||t===d.MINIPROGRAM}),S=T(()=>Number(a.formData.linkType)===d.MINIPROGRAM),z=T(()=>{const t=Number(a.formData.linkType);return t===d.INTERNAL||t===d.EXTERNAL||t===d.MINIPROGRAM}),P=T(()=>{switch(Number(a.formData.linkType)){case d.INTERNAL:return"请输入内部页面路径,如:/pages/detail/index";case d.EXTERNAL:return"请输入外部链接地址https://example.com";case d.MINIPROGRAM:return"请输入小程序页面路径,如:/pages/index/index";default:return"请输入链接地址"}}),q=(t,e,o)=>{const s=Number(a.formData.linkType);if((s===d.INTERNAL||s===d.EXTERNAL)&&(!e||!e.trim())){o(new Error("请输入链接地址"));return}if(s===d.MINIPROGRAM&&(!e||!e.trim())){o(new Error("请输入小程序页面路径"));return}o()},B=(t,e,o)=>{if(Number(a.formData.linkType)===d.MINIPROGRAM&&(!e||!e.trim())){o(new Error("请输入小程序AppID"));return}o()},G=T(()=>({imageUrl:[{required:!0,message:"请上传轮播图片",trigger:"change"}],linkType:[{required:!0,message:"请选择跳转类型",trigger:"change"}],linkUrl:[{validator:q,trigger:"blur"}],appId:[{validator:B,trigger:"blur"}],status:[{required:!0,message:"请选择状态",trigger:"change"}]}));function N(){return{title:"",imageUrl:"",linkType:"",linkUrl:"",appId:"",sort:0,status:1}}function O(t){switch(t){case d.INTERNAL:return"primary";case d.EXTERNAL:return"success";case d.MINIPROGRAM:return"warning";default:return"primary"}}function X(t){switch(t){case d.INTERNAL:return"内部页面";case d.EXTERNAL:return"外部链接";case d.MINIPROGRAM:return"小程序";default:return"未知"}}async function g(){var t,e;a.loading=!0;try{const o={pageIndex:i.pageIndex,pageSize:i.pageSize};i.title&&(o.title=i.title),i.status!==void 0&&i.status!==""&&(o.status=Number(i.status));const s=await Re(o);if(s.code===0)a.tableData=((t=s.data)==null?void 0:t.list)||[],a.total=((e=s.data)==null?void 0:e.total)||0;else throw new Error(s.message||"获取轮播图列表失败")}catch(o){const s=o instanceof Error?o.message:"获取轮播图列表失败";y.error(s)}finally{a.loading=!1}}async function F(t){t<=0||await E(t,t-1)}async function K(t){t>=a.tableData.length-1||await E(t,t+1)}async function E(t,e){const o=a.tableData[t];a.tableData[t]=a.tableData[e],a.tableData[e]=o;const s=a.tableData.map((m,b)=>({id:m.id,sort:b}));a.loading=!0;try{const m=await Ce({items:s});if(m.code===0)y.success("排序更新成功"),await g();else throw new Error(m.message||"排序更新失败")}catch(m){const b=m instanceof Error?m.message:"排序更新失败";y.error(b),await g()}finally{a.loading=!1}}function w(){i.pageIndex=1,g()}function $(){i.title="",i.status=void 0,i.pageIndex=1,g()}function j(t){i.pageSize=t,i.pageIndex=1,g()}function H(t){i.pageIndex=t,g()}function J({prop:t,order:e}){console.log("Sort changed:",t,e)}function Q(){a.isEdit=!1,a.dialogTitle="新增轮播图",a.formData=N(),a.dialogVisible=!0}function Y(t){a.isEdit=!0,a.dialogTitle="编辑轮播图",a.formData={id:t.id,title:t.title||"",imageUrl:t.imageUrl,linkType:String(t.linkType),linkUrl:t.linkUrl||"",appId:t.appId||"",sort:t.sort,status:t.status},a.dialogVisible=!0}function W(){Number(a.formData.linkType)!==d.MINIPROGRAM&&(a.formData.appId=""),we(()=>{var t;(t=I.value)==null||t.validateField(["linkUrl","appId"])})}async function Z(t,e){t._statusLoading=!0;try{const o=await Ae({id:t.id,status:e});if(o.code===0)y.success(e===1?"已启用":"已禁用");else throw t.status=e===1?0:1,new Error(o.message||"状态更新失败")}catch(o){const s=o instanceof Error?o.message:"状态更新失败";y.error(s)}finally{t._statusLoading=!1}}async function ee(t){try{const e=await Le(t.id);if(e.code===0)y.success("删除成功"),a.tableData.length===1&&i.pageIndex>1&&i.pageIndex--,await g();else throw new Error(e.message||"删除失败")}catch(e){const o=e instanceof Error?e.message:"删除失败";y.error(o)}}async function te(){if(I.value){try{await I.value.validate()}catch{return}a.formLoading=!0;try{const t=a.formData,e={title:t.title||void 0,imageUrl:t.imageUrl,linkType:Number(t.linkType),linkUrl:t.linkUrl||void 0,appId:t.appId||void 0,sort:t.sort,status:Number(t.status)};let o;if(a.isEdit&&t.id?o=await xe({...e,id:t.id}):o=await Me(e),o.code===0)y.success(a.isEdit?"更新成功":"创建成功"),a.dialogVisible=!1,await g();else throw new Error(o.message||(a.isEdit?"更新失败":"创建失败"))}catch(t){const e=t instanceof Error?t.message:a.isEdit?"更新失败":"创建失败";y.error(e)}finally{a.formLoading=!1}}}function ae(){var t;(t=I.value)==null||t.resetFields(),a.formData=N()}return ce(()=>{g()}),(t,e)=>{const o=u("el-icon"),s=u("el-button"),m=u("el-card"),b=u("el-input"),f=u("el-form-item"),U=u("el-form"),k=u("el-table-column"),le=u("el-image"),ne=u("el-tag"),re=u("el-switch"),oe=u("el-popconfirm"),ie=u("el-table"),se=u("el-pagination"),de=u("el-input-number"),ue=u("el-dialog"),pe=ge("loading");return D(),_e("div",Se,[l(m,{class:"page-header"},{default:n(()=>[h("div",ze,[e[14]||(e[14]=h("div",{class:"header-left"},[h("h2",{class:"page-title"},"轮播图管理"),h("span",{class:"page-description"},"管理小程序首页轮播图,支持图片上传、跳转配置、排序和状态管理")],-1)),h("div",Pe,[l(s,{type:"primary",onClick:Q},{default:n(()=>[l(o,null,{default:n(()=>[l(p(be))]),_:1}),e[13]||(e[13]=_(" 新增轮播图 ",-1))]),_:1})])])]),_:1}),l(m,{class:"search-card"},{default:n(()=>[l(U,{model:i,inline:""},{default:n(()=>[l(f,{label:"标题"},{default:n(()=>[l(b,{modelValue:i.title,"onUpdate:modelValue":e[0]||(e[0]=r=>i.title=r),placeholder:"请输入标题",clearable:"",onKeyup:ke(w,["enter"])},null,8,["modelValue"])]),_:1}),l(f,{label:"状态"},{default:n(()=>[l(p(V),{modelValue:i.status,"onUpdate:modelValue":e[1]||(e[1]=r=>i.status=r),type:"common_status",placeholder:"请选择状态",clearable:""},null,8,["modelValue"])]),_:1}),l(f,null,{default:n(()=>[l(s,{type:"primary",onClick:w},{default:n(()=>[l(o,null,{default:n(()=>[l(p(he))]),_:1}),e[15]||(e[15]=_(" 搜索 ",-1))]),_:1}),l(s,{onClick:$},{default:n(()=>[l(o,null,{default:n(()=>[l(p(Ie))]),_:1}),e[16]||(e[16]=_(" 重置 ",-1))]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),ye((D(),v(m,{class:"table-card"},{default:n(()=>[l(ie,{ref_key:"tableRef",ref:x,data:a.tableData,"row-key":"id",stripe:"",onSortChange:J},{default:n(()=>[l(k,{width:"80",align:"center",label:"排序"},{default:n(({row:r,$index:c})=>[h("div",qe,[l(s,{type:"primary",link:"",size:"small",disabled:c===0,onClick:me=>F(c)},{default:n(()=>[l(o,null,{default:n(()=>[l(p(Te))]),_:1})]),_:1},8,["disabled","onClick"]),l(s,{type:"primary",link:"",size:"small",disabled:c===a.tableData.length-1,onClick:me=>K(c)},{default:n(()=>[l(o,null,{default:n(()=>[l(p(De))]),_:1})]),_:1},8,["disabled","onClick"])])]),_:1}),l(k,{label:"图片",width:"120",align:"center"},{default:n(({row:r})=>[l(le,{src:r.imageUrl,"preview-src-list":[r.imageUrl],fit:"cover",style:{width:"80px",height:"45px","border-radius":"4px"},"preview-teleported":""},{error:n(()=>[h("div",Be,[l(o,null,{default:n(()=>[l(p(Ne))]),_:1})])]),_:1},8,["src","preview-src-list"])]),_:1}),l(k,{prop:"title",label:"标题","min-width":"150","show-overflow-tooltip":""},{default:n(({row:r})=>[_(A(r.title||"-"),1)]),_:1}),l(k,{prop:"linkTypeName",label:"跳转类型",width:"120",align:"center"},{default:n(({row:r})=>[l(ne,{type:O(r.linkType)},{default:n(()=>[_(A(r.linkTypeName||X(r.linkType)),1)]),_:2},1032,["type"])]),_:1}),l(k,{label:"状态",width:"100",align:"center"},{default:n(({row:r})=>[l(re,{modelValue:r.status,"onUpdate:modelValue":c=>r.status=c,"active-value":1,"inactive-value":0,loading:r._statusLoading,onChange:c=>Z(r,c)},null,8,["modelValue","onUpdate:modelValue","loading","onChange"])]),_:1}),l(k,{prop:"sort",label:"排序",width:"80",align:"center",sortable:"custom"}),l(k,{prop:"createTime",label:"创建时间",width:"180",align:"center"}),l(k,{label:"操作",width:"150",fixed:"right",align:"center"},{default:n(({row:r})=>[l(s,{type:"primary",link:"",size:"small",onClick:c=>Y(r)},{default:n(()=>[l(o,null,{default:n(()=>[l(p(Ve))]),_:1}),e[17]||(e[17]=_(" 编辑 ",-1))]),_:1},8,["onClick"]),l(oe,{title:"确定要删除这条轮播图吗?","confirm-button-text":"确定","cancel-button-text":"取消",onConfirm:c=>ee(r)},{reference:n(()=>[l(s,{type:"danger",link:"",size:"small"},{default:n(()=>[l(o,null,{default:n(()=>[l(p(ve))]),_:1}),e[18]||(e[18]=_(" 删除 ",-1))]),_:1})]),_:1},8,["onConfirm"])]),_:1})]),_:1},8,["data"]),h("div",Ge,[l(se,{"current-page":i.pageIndex,"onUpdate:currentPage":e[2]||(e[2]=r=>i.pageIndex=r),"page-size":i.pageSize,"onUpdate:pageSize":e[3]||(e[3]=r=>i.pageSize=r),"page-sizes":[10,20,50,100],total:a.total,layout:"total, sizes, prev, pager, next, jumper",onSizeChange:j,onCurrentChange:H},null,8,["current-page","page-size","total"])])]),_:1})),[[pe,a.loading]]),l(ue,{modelValue:a.dialogVisible,"onUpdate:modelValue":e[12]||(e[12]=r=>a.dialogVisible=r),title:a.dialogTitle,width:"600px","close-on-click-modal":!1,onClosed:ae},{footer:n(()=>[l(s,{onClick:e[11]||(e[11]=r=>a.dialogVisible=!1)},{default:n(()=>[...e[19]||(e[19]=[_("取消",-1)])]),_:1}),l(s,{type:"primary",loading:a.formLoading,onClick:te},{default:n(()=>[...e[20]||(e[20]=[_(" 确定 ",-1)])]),_:1},8,["loading"])]),default:n(()=>[l(U,{ref_key:"formRef",ref:I,model:a.formData,rules:G.value,"label-width":"100px","label-position":"right"},{default:n(()=>[l(f,{label:"标题",prop:"title"},{default:n(()=>[l(b,{modelValue:a.formData.title,"onUpdate:modelValue":e[4]||(e[4]=r=>a.formData.title=r),placeholder:"请输入标题(可选)",maxlength:"50","show-word-limit":""},null,8,["modelValue"])]),_:1}),l(f,{label:"轮播图片",prop:"imageUrl",required:""},{default:n(()=>[l(p(Ee),{modelValue:a.formData.imageUrl,"onUpdate:modelValue":e[5]||(e[5]=r=>a.formData.imageUrl=r),placeholder:"点击上传轮播图",tip:"建议尺寸750x400支持 jpg、png、gif 格式","max-size":10},null,8,["modelValue"])]),_:1}),l(f,{label:"跳转类型",prop:"linkType",required:""},{default:n(()=>[l(p(V),{modelValue:a.formData.linkType,"onUpdate:modelValue":e[6]||(e[6]=r=>a.formData.linkType=r),type:"banner_link_type",placeholder:"请选择跳转类型",onChange:W},null,8,["modelValue"])]),_:1}),M.value?(D(),v(f,{key:0,label:"链接地址",prop:"linkUrl",required:z.value},{default:n(()=>[l(b,{modelValue:a.formData.linkUrl,"onUpdate:modelValue":e[7]||(e[7]=r=>a.formData.linkUrl=r),placeholder:P.value,clearable:""},null,8,["modelValue","placeholder"])]),_:1},8,["required"])):L("",!0),S.value?(D(),v(f,{key:1,label:"小程序AppID",prop:"appId",required:""},{default:n(()=>[l(b,{modelValue:a.formData.appId,"onUpdate:modelValue":e[8]||(e[8]=r=>a.formData.appId=r),placeholder:"请输入小程序AppID",clearable:""},null,8,["modelValue"])]),_:1})):L("",!0),l(f,{label:"排序",prop:"sort"},{default:n(()=>[l(de,{modelValue:a.formData.sort,"onUpdate:modelValue":e[9]||(e[9]=r=>a.formData.sort=r),min:0,max:9999,placeholder:"数值越小越靠前"},null,8,["modelValue"])]),_:1}),l(f,{label:"状态",prop:"status",required:""},{default:n(()=>[l(p(V),{modelValue:a.formData.status,"onUpdate:modelValue":e[10]||(e[10]=r=>a.formData.status=r),type:"common_status",placeholder:"请选择状态"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title"])])}}}),$e=Ue(Oe,[["__scopeId","data-v-a600076e"]]);export{$e as default};