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