2 lines
10 KiB
JavaScript
2 lines
10 KiB
JavaScript
var e=Object.defineProperty,t=Object.defineProperties,i=Object.getOwnPropertyDescriptors,l=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,n=(t,i,l)=>i in t?e(t,i,{enumerable:!0,configurable:!0,writable:!0,value:l}):t[i]=l,a=(e,t)=>{for(var i in t||(t={}))o.call(t,i)&&n(e,i,t[i]);if(l)for(var i of l(t))r.call(t,i)&&n(e,i,t[i]);return e},s=(e,t,i)=>new Promise((l,o)=>{var r=e=>{try{a(i.next(e))}catch(t){o(t)}},n=e=>{try{a(i.throw(e))}catch(t){o(t)}},a=e=>e.done?l(e.value):Promise.resolve(e.value).then(r,n);a((i=i.apply(e,t)).next())});import{d as u,r as p,k as m,c as d,o as c,ez as v,H as h,b as j,e as f,g as b,p as y,M as g,w as x,N as _,h as k,E as w,O as C,j as O,v as A,aQ as $,eA as B,n as T,ag as L,aV as E,T as M,eB as P,eC as D}from"./index-BoIUJTA2.js";/* empty css */import{_ as I}from"./index-Bwtbh5WQ.js";import{A as R}from"./index-BaXJ8CyS.js";/* empty css */import{_ as V}from"./index-oPcNh_Ue.js";import{_ as S}from"./index.vue_vue_type_script_setup_true_lang-AxI1L1VI.js";import{u as U}from"./useTableColumns-FR69a2pD.js";import{_ as H}from"./menu-dialog.vue_vue_type_script_setup_true_lang-BHUwTkkc.js";/* empty css */import{E as Q}from"./index-BaD29Izp.js";import{E as W}from"./index-ZsMdSUVI.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./el-tooltip-l0sNRNKZ.js";import"./el-empty-CV-PB2A2.js";import"./index-BjuMygln.js";import"./index-Cp4NEpJ7.js";import"./index-BMeOzN3u.js";import"./index-COyGylbk.js";import"./index-Bq8lawOo.js";import"./_initCloneObject-DRmC-q3t.js";import"./isArrayLikeObject-CFQi-X2M.js";import"./raf-DsHSIRfX.js";import"./_baseIteratee-CtIat01j.js";import"./castArray-nM8ho4U3.js";import"./debounce-DQl5eUwG.js";import"./index-D8nVJoNy.js";import"./index-CXORCV4U.js";import"./index-C1haaLtB.js";import"./index-D2gD5Tn5.js";import"./token-DWNpOE8r.js";import"./_plugin-vue_export-helper-BCo6x5W8.js";/* empty css */import"./el-dropdown-item-D7SYN_RE.js";import"./dropdown-Dk_wSiK6.js";import"./refs-Cw5r5QN8.js";import"./index.vue_vue_type_script_setup_true_lang-DUbflfBQ.js";import"./iconify-DFoKediz.js";/* empty css */import"./index-CZJaGuxf.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./tree-select-DdXiCp9j.js";import"./index-BneqRonp.js";import"./index-BnK4BbY2.js";import"./clamp-BXzPLned.js";import"./index-sK8AD9wr.js";import"./index-BObA9rVr.js";/* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css *//* empty css */import"./slider-DTwTybBj.js";import"./index-C_S0YbqD.js";/* empty css */import"./index-C_sVHlWz.js";import"./index-CXD7B41Z.js";import"./index-BcfO0-fK.js";import"./_baseClone-Ct7RL6h5.js";import"./index-DqTthkO7.js";import"./index-DGLhvuMQ.js";import"./cloneDeep-B1gZFPYK.js";import"./index-rgHg98E6.js";/* empty css *//* empty css *//* empty css *//* empty css */import"./index-CjpBlozU.js";import"./use-dialog-FwJ-QdmW.js";const X={class:"menu-page art-full-height"},Y=u((Z=a({},{name:"Menus"}),t(Z,i({__name:"index",setup(e){const t=p(!1),i=p(!1),l=p(),o=p(!1),r=p("menu"),n=p(null),u=p(!1),Y={name:"",route:""},Z=m(a({},Y)),z=m(a({},Y)),N=d(()=>[{label:"菜单名称",key:"name",type:"input",props:{clearable:!0}},{label:"路由地址",key:"route",type:"input",props:{clearable:!0}}]);c(()=>{J()});const J=()=>s(this,null,function*(){t.value=!0;try{const e=yield v();G.value=e}catch(e){throw e instanceof Error?e:new Error("获取菜单失败")}finally{t.value=!1}}),K=e=>{var t,i,l,o,r;return(null==(t=e.meta)?void 0:t.isAuthButton)?"danger":(null==(i=e.children)?void 0:i.length)?"info":(null==(l=e.meta)?void 0:l.link)&&(null==(o=e.meta)?void 0:o.isIframe)?"success":e.path?"primary":(null==(r=e.meta)?void 0:r.link)?"warning":"info"},{columnChecks:q,columns:F}=U(()=>[{prop:"meta.title",label:"菜单名称",minWidth:120,formatter:e=>{var t;return $(null==(t=e.meta)?void 0:t.title)}},{prop:"type",label:"菜单类型",formatter:e=>L(W,{type:K(e)},()=>(e=>{var t,i,l,o,r;return(null==(t=e.meta)?void 0:t.isAuthButton)?"按钮":(null==(i=e.children)?void 0:i.length)?"目录":(null==(l=e.meta)?void 0:l.link)&&(null==(o=e.meta)?void 0:o.isIframe)?"内嵌":e.path?"菜单":(null==(r=e.meta)?void 0:r.link)?"外链":"未知"})(e))},{prop:"path",label:"路由",formatter:e=>{var t,i;return(null==(t=e.meta)?void 0:t.isAuthButton)?"":(null==(i=e.meta)?void 0:i.link)||e.path||""}},{prop:"meta.authList",label:"权限标识",formatter:e=>{var t,i,l,o;return(null==(t=e.meta)?void 0:t.isAuthButton)?(null==(i=e.meta)?void 0:i.authMark)||"":(null==(o=null==(l=e.meta)?void 0:l.authList)?void 0:o.length)?`${e.meta.authList.length} 个权限标识`:""}},{prop:"date",label:"编辑时间",formatter:()=>"2022-3-12 12:00:00"},{prop:"status",label:"状态",formatter:()=>L(W,{type:"success"},()=>"启用")},{prop:"operation",label:"操作",width:180,align:"right",formatter:e=>{var t;const i={style:"text-align: right"};return(null==(t=e.meta)?void 0:t.isAuthButton)?L("div",i,[L(S,{type:"edit",onClick:()=>pe(e)}),L(S,{type:"delete",onClick:()=>ce(e)})]):L("div",i,[L(S,{type:"add",onClick:()=>se(),title:"新增权限"}),L(S,{type:"edit",onClick:()=>ue(e)}),L(S,{type:"delete",onClick:()=>de(e)})])}}]),G=p([]),ee=()=>{Object.assign(Z,a({},Y)),Object.assign(z,a({},Y)),J()},te=()=>{Object.assign(z,a({},Z)),J()},ie=()=>{J()},le=e=>{if(null===e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e);if(Array.isArray(e))return e.map(e=>le(e));const t={};for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=le(e[i]));return t},oe=e=>e.map(e=>{var t,i,l,o;const r=le(e);if((null==(t=r.children)?void 0:t.length)&&(r.children=oe(r.children)),null==(l=null==(i=e.meta)?void 0:i.authList)?void 0:l.length){const t=e.meta.authList.map(t=>({path:`${e.path}_auth_${t.authMark}`,name:`${String(e.name)}_auth_${t.authMark}`,meta:{title:t.title,authMark:t.authMark,isAuthButton:!0,parentPath:e.path}}));r.children=(null==(o=r.children)?void 0:o.length)?[...r.children,...t]:t}return r}),re=e=>{var t,i,l,o;const r=[];for(const n of e){const e=(null==(t=z.name)?void 0:t.toLowerCase().trim())||"",a=(null==(i=z.route)?void 0:i.toLowerCase().trim())||"",s=$((null==(l=n.meta)?void 0:l.title)||"").toLowerCase(),u=(n.path||"").toLowerCase(),p=!e||s.includes(e),m=!a||u.includes(a);if(null==(o=n.children)?void 0:o.length){const e=re(n.children);if(e.length>0){const t=le(n);t.children=e,r.push(t);continue}}p&&m&&r.push(le(n))}return r},ne=d(()=>{const e=re(G.value);return oe(e)}),ae=()=>{r.value="menu",n.value=null,u.value=!0,o.value=!0},se=()=>{r.value="button",n.value=null,u.value=!1,o.value=!0},ue=e=>{r.value="menu",n.value=e,u.value=!0,o.value=!0},pe=e=>{var t,i;r.value="button",n.value={title:null==(t=e.meta)?void 0:t.title,authMark:null==(i=e.meta)?void 0:i.authMark},u.value=!1,o.value=!0},me=e=>s(this,null,function*(){if("menu"===r.value){const t={parent_id:0,path:e.path,name:e.name,component:e.component||"",icon:e.icon||"",sort:e.sort||1,status:!!e.isEnable,keep_alive:!!e.keepAlive,is_hide:!!e.isHide,is_hide_tab:!!e.isHideTab};yield B(t),o.value=!1,yield J()}else o.value=!1,yield J()}),de=e=>s(this,null,function*(){var t,i,l,o;try{const i=(null==(t=null==e?void 0:e.meta)?void 0:t.title)||"该菜单";if(yield E.confirm(`确定要删除菜单"${i}"吗?删除后无法恢复`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",beforeClose:(e,t,i)=>{"confirm"===e?(t.confirmButtonLoading=!0,i()):i()}}),!e.id)return void M.error("菜单ID不存在");yield P(e.id),M.success({message:`"${i}"已成功删除`,duration:3e3}),J()}catch(r){if("cancel"===r)return;const t=(null==(l=null==(i=null==r?void 0:r.response)?void 0:i.data)?void 0:l.message)||r.message||"删除失败",n=(null==(o=null==e?void 0:e.meta)?void 0:o.title)||"该菜单";M.error({message:`"${n}"删除失败:${t}`,duration:4e3})}}),ce=e=>s(this,null,function*(){var t,i,l,o;try{const i=(null==(t=null==e?void 0:e.meta)?void 0:t.title)||"该权限";if(yield E.confirm(`确定要删除权限"${i}"吗?删除后无法恢复`,"删除确认",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning",beforeClose:(e,t,i)=>{"confirm"===e?(t.confirmButtonLoading=!0,i()):i()}}),!e.id)return void M.error("权限ID不存在");yield D(e.id),M.success({message:`"${i}"已成功删除`,duration:3e3}),J()}catch(r){if("cancel"===r)return;const t=(null==(l=null==(i=null==r?void 0:r.response)?void 0:i.data)?void 0:l.message)||r.message||"删除失败",n=(null==(o=null==e?void 0:e.meta)?void 0:o.title)||"该权限";M.error({message:`"${n}"删除失败:${t}`,duration:4e3})}}),ve=()=>{i.value=!i.value,T(()=>{var e;if((null==(e=l.value)?void 0:e.elTableRef)&&ne.value){const e=t=>{t.forEach(t=>{var o;(null==(o=t.children)?void 0:o.length)&&(l.value.elTableRef.toggleRowExpansion(t,i.value),e(t.children))})};e(ne.value)}})};return(e,a)=>{const s=V,p=w,m=R,d=I,c=Q,v=h("auth"),$=h("ripple");return f(),j("div",X,[b(s,{modelValue:y(Z),"onUpdate:modelValue":a[0]||(a[0]=e=>g(Z)?Z.value=e:null),items:y(N),showExpand:!1,onReset:ee,onSearch:te},null,8,["modelValue","items"]),b(c,{class:"art-table-card",shadow:"never"},{default:x(()=>[b(m,{showZebra:!1,loading:y(t),columns:y(q),"onUpdate:columns":a[1]||(a[1]=e=>g(q)?q.value=e:null),onRefresh:ie},{left:x(()=>[_((f(),k(p,{onClick:C(ae,["prevent"])},{default:x(()=>[...a[3]||(a[3]=[O(" 添加菜单 ",-1)])]),_:1})),[[v,"add"],[$]]),_((f(),k(p,{onClick:C(ve,["prevent"])},{default:x(()=>[O(A(y(i)?"收起":"展开"),1)]),_:1})),[[$]])]),_:1},8,["loading","columns"]),b(d,{ref_key:"tableRef",ref:l,rowKey:"path",loading:y(t),columns:y(F),data:y(ne),stripe:!1,"tree-props":{children:"children",hasChildren:"hasChildren"},"default-expand-all":!1},null,8,["loading","columns","data"]),b(H,{visible:y(o),"onUpdate:visible":a[2]||(a[2]=e=>g(o)?o.value=e:null),type:y(r),editData:y(n),lockType:y(u),onSubmit:me},null,8,["visible","type","editData","lockType"])]),_:1})])}}}))));var Z;export{Y as default};
|