|
|
import{I as e,N as t,V as n,Y as r,_ as i,d as a,i as o,it as s,kt as c,l,nt as u,p as d,u as f,v as p,w as m,y as h,z as g}from"./runtime-core.esm-bundler-CnFWH3R5.js";import{ot as _,t as v}from"./message-Dh9377vh.js";import{n as y}from"./http-BWP--XXK.js";import{o as b,s as x}from"./dynamicAdminRoutes-DxTabGxX.js";import{a as S,r as C,t as w}from"./index-D-AZ5ijJ.js";var T={class:`menu-tree-row`},E={class:`left`},D={class:`name`},O={class:`right`},k=S(h({__name:`Menus`,setup(h){let S=s(!1),k=s(!1),A=s(null),j=s([]),M=s(!1),N=s(null),P=u({name:``,path:``,icon:``,parent_id:0,sort:0,is_visible:!0}),F=C(),I=m(w,void 0);async function L(){await I?.(),x(F),await b(F)}let R=l(()=>j.value.filter(e=>e.parent_id===0)),z=l(()=>N.value!==null),B=l(()=>{let e=new Map;j.value.forEach(t=>e.set(t.id,{key:t.id,title:t.name,row:t,children:[]}));let t=[];return j.value.forEach(n=>{let r=e.get(n.id);n.parent_id>0&&e.has(n.parent_id)?e.get(n.parent_id).children.push(r):t.push(r)}),t});function V(){N.value=null,P.name=``,P.path=``,P.icon=``,P.parent_id=0,P.sort=0,P.is_visible=!0}async function H(){S.value=!0;try{let{data:e}=await y.get(`/admin-menus/all`);j.value=e}catch(e){v.error(e?.response?.data?.message??`加载权限菜单失败`)}finally{S.value=!1}}function U(){V(),M.value=!0}function W(e){N.value=e.id,P.name=e.name||``,P.path=e.path||``,P.icon=e.icon||``,P.parent_id=e.parent_id||0,P.sort=e.sort||0,P.is_visible=!!e.is_visible,M.value=!0}async function G(){if(!P.name.trim())return v.warning(`请填写菜单名称`),!1;k.value=!0;try{let e={name:P.name.trim(),path:P.path.trim()||null,icon:P.icon.trim()||null,parent_id:Number(P.parent_id)||0,sort:Number(P.sort)||0,is_visible:!!P.is_visible};return z.value&&N.value?(await y.put(`/admin-menus/${N.value}`,e),v.success(`菜单更新成功`)):(await y.post(`/admin-menus`,e),v.success(`菜单新增成功`)),M.value=!1,await H(),await L(),!0}catch(e){return v.error(e?.response?.data?.message??`保存失败`),!1}finally{k.value=!1}}async function K(e){A.value=e.id;try{await y.delete(`/admin-menus/${e.id}`),v.success(`删除成功`),await H(),await L()}catch(e){v.error(e?.response?.data?.message??`删除失败`)}finally{A.value=null}}return t(H),(t,s)=>{let l=n(`a-button`),u=n(`a-space`),m=n(`a-tag`),h=n(`a-popconfirm`),v=n(`a-tree`),y=n(`a-spin`),b=n(`a-card`),x=n(`a-input`),C=n(`a-form-item`),w=n(`a-option`),j=n(`a-select`),N=n(`a-input-number`),F=n(`a-switch`),I=n(`a-form`),L=n(`a-modal`);return e(),d(o,null,[p(b,{title:`用户与权限 / 权限菜单`},{extra:r(()=>[p(u,null,{default:r(()=>[p(l,{onClick:H},{default:r(()=>[...s[7]||=[i(`刷新`,-1)]]),_:1}),p(l,{type:`primary`,onClick:U},{default:r(()=>[...s[8]||=[i(`新增菜单`,-1)]]),_:1})]),_:1})]),default:r(()=>[p(y,{loading:S.value},{default:r(()=>[p(v,{data:B.value,"default-expand-all":!0,"block-node":``},{title:r(e=>[f(`div`,T,[f(`div`,E,[f(`span`,D,c(e.row.name),1),p(m,{size:`small`},{default:r(()=>[i(c(e.row.path||`目录`),1)]),_:2},1024),p(m,{size:`small`,color:`arcoblue`},{default:r(()=>[i(c(e.row.icon||`-`),1)]),_:2},1024),p(m,{size:`small`},{default:r(()=>[i(c(`排序 ${e.row.sort}`),1)]),_:2},1024),p(m,{size:`small`,color:e.row.is_visible?`green`:`gray`},{default:r(()=>[i(c(e.row.is_visible?`可见`:`隐藏`),1)]),_:2},1032,[`color`])]),f(`div`,O,[p(l,{type:`text`,size:`small`,onClick:_(t=>W(e.row),[`stop`])},{default:r(()=>[...s[9]||=[i(`编辑`,-1)]]),_:1},8,[`onClick`]),p(h,{content:`确定删除该菜单?`,onOk:t=>K(e.row)},{default:r(()=>[p(l,{type:`text`,size:`small`,status:`danger`,loading:A.value===e.row.id},{default:r(()=>[...s[10]||=[i(`删除`,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`onOk`])])])]),_:1},8,[`data`])]),_:1},8,[`loading`])]),_:1}),p(L,{visible:M.value,"onUpdate:visible":s[6]||=e=>M.value=e,title:z.value?`编辑菜单`:`新增菜单`,width:`70%`,"confirm-loading":k.value,"on-before-ok":G},{default:r(()=>[p(I,{model:P,layout:`vertical`,class:`admin-modal-form`},{default:r(()=>[p(C,{label:`菜单名称`,required:``},{default:r(()=>[p(x,{modelValue:P.name,"onUpdate:modelValue":s[0]||=e=>P.name=e},null,8,[`modelValue`])]),_:1}),p(C,{label:`路由路径`},{default:r(()=>[p(x,{modelValue:P.path,"onUpdate:modelValue":s[1]||=e=>P.path=e,placeholder:`如 /system/menus;目录菜单可留空`},null,8,[`modelValue`])]),_:1}),p(C,{label:`图标`},{default:r(()=>[p(x,{modelValue:P.icon,"onUpdate:modelValue":s[2]||=e=>P.icon=e,placeholder:`如 IconMenu`},null,8,[`modelValue`])]),_:1}),p(C,{label:`父级菜单`},{default:r(()=>[p(j,{modelValue:P.parent_id,"onUpdate:modelValue":s[3]||=e=>P.parent_id=e},{default:r(()=>[p(w,{value:0},{default:r(()=>[...s[11]||=[i(`顶级菜单`,-1)]]),_:1}),(e(!0),d(o,null,g(R.value,t=>(e(),a(w,{key:t.id,value:t.id},{default:r(()=>[i(c(t.name),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),_:1}),p(C,{label:`排序`},{default:r(()=>[p(N,{modelValue:P.sort,"onUpdate:modelValue":s[4]||=e=>P.sort=e,min:0},null,8,[`modelValue`])]),_:1}),p(C,{label:`是否可见`},{default:r(()=>[p(F,{modelValue:P.is_visible,"onUpdate:modelValue":s[5]||=e=>P.is_visible=e},null,8,[`modelValue`])]),_:1})]),_:1},8,[`model`])]),_:1},8,[`visible`,`title`,`confirm-loading`])],64)}}}),[[`__scopeId`,`data-v-5a2d0177`]]);export{k as default}; |