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