mi-assessment/server/MiAssessment/src/MiAssessment.Admin/wwwroot/assets/index-d-p0-I52.js
2026-03-18 00:16:13 +08:00

2 lines
8.6 KiB
JavaScript

import{d as ee,r as v,v as q,a as le,o as te,g as s,B as N,c as ae,k as d,e as t,w as a,C as T,z as u,G as y,aA as ne,t as i,x as S,b as A,l as oe,D as re,aB as se,E as C,aC as de,aq as ue,T as ie,aD as pe,_ as me}from"./index-Brt4wfoq.js";const fe={class:"page-container"},ce={class:"card-header"},ye=ee({__name:"index",setup(_e){const E=v(!1),h=v([]),D={1:{label:"目录",type:"info"},2:{label:"菜单",type:""},3:{label:"按钮",type:"warning"}},c=v(!1),_=v(!1),F=q(()=>_.value?"编辑菜单":"新增菜单"),U=v(),I=v(!1),e=le({id:0,parentId:0,name:"",path:"",component:"",icon:"",menuType:2,permission:"",sortOrder:0,status:1,isExternal:!1,isCache:!0}),R=q(()=>{if(!_.value)return[{id:0,name:"顶级菜单",children:h.value}];const o=l=>l.filter(r=>r.id!==e.id).map(r=>({...r,children:o(r.children||[])}));return[{id:0,name:"顶级菜单",children:o(h.value)}]}),z={name:[{required:!0,message:"请输入菜单名称",trigger:"blur"}],menuType:[{required:!0,message:"请选择菜单类型",trigger:"change"}],path:[{validator:(o,l,r)=>{e.menuType===2&&!l?r(new Error("菜单类型必须填写路由路径")):l&&!e.isExternal&&!l.startsWith("/")?r(new Error("内部路由路径必须以 / 开头")):r()},trigger:"blur"}],component:[{validator:(o,l,r)=>{e.menuType===2&&!l?r(new Error("菜单类型必须填写组件路径")):r()},trigger:"blur"}],permission:[{validator:(o,l,r)=>{e.menuType===3&&!l?r(new Error("按钮类型必须填写权限标识")):r()},trigger:"blur"}],sortOrder:[{type:"number",min:0,message:"排序值必须为非负整数",trigger:"blur"}]},x=()=>{var o;e.id=0,e.parentId=0,e.name="",e.path="",e.component="",e.icon="",e.menuType=2,e.permission="",e.sortOrder=0,e.status=1,e.isExternal=!1,e.isCache=!0,(o=U.value)==null||o.resetFields()},G=async()=>{var l;if(await((l=U.value)==null?void 0:l.validate())){I.value=!0;try{const r={parentId:e.parentId,name:e.name,path:e.path||void 0,component:e.component||void 0,icon:e.icon||void 0,menuType:e.menuType,permission:e.permission||void 0,sortOrder:e.sortOrder,status:e.status,isExternal:e.isExternal,isCache:e.isCache};_.value?(await se(e.id,r),C.success("更新成功")):(await de(r),C.success("创建成功")),c.value=!1,O()}catch(r){C.error(r.message||"操作失败")}finally{I.value=!1}}},O=async()=>{E.value=!0;try{const o=await ue();h.value=o.data}finally{E.value=!1}},L=()=>{x(),_.value=!1,c.value=!0},W=o=>{x(),_.value=!1,e.parentId=o.id,c.value=!0},j=o=>{x(),_.value=!0,e.id=o.id,e.parentId=o.parentId,e.name=o.name,e.path=o.path||"",e.component=o.component||"",e.icon=o.icon||"",e.menuType=o.menuType,e.permission=o.permission||"",e.sortOrder=o.sortOrder,e.status=o.status,e.isExternal=o.isExternal,e.isCache=o.isCache,c.value=!0},H=async o=>{const r=o.children&&o.children.length>0?`菜单 "${o.name}" 下有 ${o.children.length} 个子菜单,删除后子菜单也将被删除。确定要删除吗?`:`确定要删除菜单 "${o.name}" 吗?`;try{await ie.confirm(r,"删除确认",{type:"warning",confirmButtonText:"确定删除",cancelButtonText:"取消"}),await pe(o.id),C.success("删除成功"),O()}catch(m){m!=="cancel"&&C.error(m.message||"删除失败")}};return te(()=>{O()}),(o,l)=>{const r=s("el-icon"),m=s("el-button"),f=s("el-table-column"),w=s("el-tag"),J=s("el-table"),K=s("el-card"),P=s("el-tree-select"),p=s("el-form-item"),g=s("el-radio"),B=s("el-radio-group"),b=s("el-input"),Q=s("el-input-number"),M=s("el-switch"),X=s("el-form"),Y=s("el-dialog"),k=N("permission"),Z=N("loading");return d(),ae("div",fe,[t(K,null,{header:a(()=>[A("div",ce,[l[14]||(l[14]=A("span",null,"菜单管理",-1)),T((d(),u(m,{type:"primary",onClick:L},{default:a(()=>[t(r,null,{default:a(()=>[t(oe(re))]),_:1}),l[13]||(l[13]=i("新增菜单 ",-1))]),_:1})),[[k,"system:menu:add"]])])]),default:a(()=>[T((d(),u(J,{data:h.value,"row-key":"id","tree-props":{children:"children"}},{default:a(()=>[t(f,{prop:"name",label:"菜单名称","min-width":"180"}),t(f,{prop:"icon",label:"图标",width:"80"},{default:a(({row:n})=>[n.icon?(d(),u(r,{key:0},{default:a(()=>[(d(),u(ne(n.icon)))]),_:2},1024)):y("",!0)]),_:1}),t(f,{prop:"path",label:"路由路径","min-width":"150"}),t(f,{prop:"component",label:"组件路径","min-width":"180"}),t(f,{prop:"permission",label:"权限标识","min-width":"120"}),t(f,{prop:"menuType",label:"类型",width:"80"},{default:a(({row:n})=>{var V;return[t(w,{type:(V=D[n.menuType])==null?void 0:V.type},{default:a(()=>{var $;return[i(S(($=D[n.menuType])==null?void 0:$.label),1)]}),_:2},1032,["type"])]}),_:1}),t(f,{prop:"sortOrder",label:"排序",width:"80"}),t(f,{prop:"status",label:"状态",width:"80"},{default:a(({row:n})=>[t(w,{type:n.status===1?"success":"danger"},{default:a(()=>[i(S(n.status===1?"显示":"隐藏"),1)]),_:2},1032,["type"])]),_:1}),t(f,{label:"操作",width:"200",fixed:"right"},{default:a(({row:n})=>[T((d(),u(m,{link:"",type:"primary",onClick:V=>j(n)},{default:a(()=>[...l[15]||(l[15]=[i("编辑",-1)])]),_:1},8,["onClick"])),[[k,"system:menu:edit"]]),T((d(),u(m,{link:"",type:"primary",onClick:V=>W(n)},{default:a(()=>[...l[16]||(l[16]=[i("添加子菜单",-1)])]),_:1},8,["onClick"])),[[k,"system:menu:add"]]),T((d(),u(m,{link:"",type:"danger",onClick:V=>H(n)},{default:a(()=>[...l[17]||(l[17]=[i("删除",-1)])]),_:1},8,["onClick"])),[[k,"system:menu:delete"]])]),_:1})]),_:1},8,["data"])),[[Z,E.value]])]),_:1}),t(Y,{modelValue:c.value,"onUpdate:modelValue":l[12]||(l[12]=n=>c.value=n),title:F.value,width:"550px",onClose:x},{footer:a(()=>[t(m,{onClick:l[11]||(l[11]=n=>c.value=!1)},{default:a(()=>[...l[23]||(l[23]=[i("取消",-1)])]),_:1}),t(m,{type:"primary",onClick:G,loading:I.value},{default:a(()=>[...l[24]||(l[24]=[i("确定",-1)])]),_:1},8,["loading"])]),default:a(()=>[t(X,{ref_key:"formRef",ref:U,model:e,rules:z,"label-width":"100px"},{default:a(()=>[t(p,{label:"上级菜单",prop:"parentId"},{default:a(()=>[t(P,{modelValue:e.parentId,"onUpdate:modelValue":l[0]||(l[0]=n=>e.parentId=n),data:R.value,props:{label:"name",value:"id",children:"children"},"check-strictly":"","render-after-expand":!1,placeholder:"请选择上级菜单",clearable:"",style:{width:"100%"}},null,8,["modelValue","data"])]),_:1}),t(p,{label:"菜单类型",prop:"menuType"},{default:a(()=>[t(B,{modelValue:e.menuType,"onUpdate:modelValue":l[1]||(l[1]=n=>e.menuType=n)},{default:a(()=>[t(g,{value:1},{default:a(()=>[...l[18]||(l[18]=[i("目录",-1)])]),_:1}),t(g,{value:2},{default:a(()=>[...l[19]||(l[19]=[i("菜单",-1)])]),_:1}),t(g,{value:3},{default:a(()=>[...l[20]||(l[20]=[i("按钮",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t(p,{label:"菜单名称",prop:"name"},{default:a(()=>[t(b,{modelValue:e.name,"onUpdate:modelValue":l[2]||(l[2]=n=>e.name=n),placeholder:"请输入菜单名称"},null,8,["modelValue"])]),_:1}),e.menuType!==3?(d(),u(p,{key:0,label:"图标",prop:"icon"},{default:a(()=>[t(b,{modelValue:e.icon,"onUpdate:modelValue":l[3]||(l[3]=n=>e.icon=n),placeholder:"请输入图标名称,如 Setting"},null,8,["modelValue"])]),_:1})):y("",!0),e.menuType===2?(d(),u(p,{key:1,label:"路由路径",prop:"path"},{default:a(()=>[t(b,{modelValue:e.path,"onUpdate:modelValue":l[4]||(l[4]=n=>e.path=n),placeholder:"请输入路由路径,如 /system/menu"},null,8,["modelValue"])]),_:1})):y("",!0),e.menuType===2?(d(),u(p,{key:2,label:"组件路径",prop:"component"},{default:a(()=>[t(b,{modelValue:e.component,"onUpdate:modelValue":l[5]||(l[5]=n=>e.component=n),placeholder:"请输入组件路径,如 system/menu/index"},null,8,["modelValue"])]),_:1})):y("",!0),e.menuType===3?(d(),u(p,{key:3,label:"权限标识",prop:"permission"},{default:a(()=>[t(b,{modelValue:e.permission,"onUpdate:modelValue":l[6]||(l[6]=n=>e.permission=n),placeholder:"请输入权限标识,如 menu:create"},null,8,["modelValue"])]),_:1})):y("",!0),t(p,{label:"排序",prop:"sortOrder"},{default:a(()=>[t(Q,{modelValue:e.sortOrder,"onUpdate:modelValue":l[7]||(l[7]=n=>e.sortOrder=n),min:0,max:9999},null,8,["modelValue"])]),_:1}),t(p,{label:"状态",prop:"status"},{default:a(()=>[t(B,{modelValue:e.status,"onUpdate:modelValue":l[8]||(l[8]=n=>e.status=n)},{default:a(()=>[t(g,{value:1},{default:a(()=>[...l[21]||(l[21]=[i("显示",-1)])]),_:1}),t(g,{value:0},{default:a(()=>[...l[22]||(l[22]=[i("隐藏",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),e.menuType===2?(d(),u(p,{key:4,label:"是否外链",prop:"isExternal"},{default:a(()=>[t(M,{modelValue:e.isExternal,"onUpdate:modelValue":l[9]||(l[9]=n=>e.isExternal=n)},null,8,["modelValue"])]),_:1})):y("",!0),e.menuType===2?(d(),u(p,{key:5,label:"是否缓存",prop:"isCache"},{default:a(()=>[t(M,{modelValue:e.isCache,"onUpdate:modelValue":l[10]||(l[10]=n=>e.isCache=n)},null,8,["modelValue"])]),_:1})):y("",!0)]),_:1},8,["model"])]),_:1},8,["modelValue","title"])])}}}),ge=me(ye,[["__scopeId","data-v-b5561b80"]]);export{ge as default};