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