index.e7e4000c.js 7.6 KB

1
  1. import{d as ve,r as d,Z as E,ai as u,o as h,M as S,O as e,a as i,U as t,S as p,T,u as y,R as be,c as $,a8 as q,F as A,P as ge,V as ye,aF as ke,aG as xe}from"./vue.adf17aba.js";import{r as m,X as Q}from"./index.b098562c.js";import{j as X,E as k}from"./elementPlus.4833989a.js";import{_ as we}from"./_plugin-vue_export-helper.c27b6911.js";import"./echarts.72dc8373.js";function Ce(a){return m({url:"/api/system/role_menu_button_permission/role_get_menu/",method:"get",params:a})}function Ve(a){return m({url:"/api/system/role_menu_permission/save_auth/",method:"post",data:a})}function Be(a){return m({url:"/api/system/role_menu_button_permission/role_menu_get_button/",method:"get",params:a})}function Se(a={}){return m({url:"/api/system/role_menu_button_permission/data_scope/",method:"get",params:a})}function Te(a){return m({url:"/api/system/role_menu_button_permission/role_to_dept_all/",method:"get",params:a})}function De(a){return m({url:"/api/system/role_menu_button_permission/",method:"post",data:a})}function Fe(a){return m({url:"/api/system/role_menu_button_permission/menu_to_button/",method:"get",params:a})}function Ie(a){return m({url:`/api/system/role_menu_button_permission/${a.id}/`,method:"delete",data:{}})}const H=a=>(ke("data-v-495e5a25"),a=a(),xe(),a),Me={style:{padding:"1em"}},Pe={class:"card-header"},je=H(()=>i("span",null,"菜单页面",-1)),ze={class:"card-header"},Ge=H(()=>i("span",null,"按钮/接口授权",-1)),Ke={class:"dept-tree"},Le={class:"dialog-footer"},Ne=ve({__name:"index",setup(a,{expose:Z}){const D=d(!1),v=d({}),J=l=>{X.confirm("您确定要关闭?",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{l()}).catch(()=>{})},W={children:"children",label:"name",isLeaf:"hasChild"};let z=d();const Y=()=>{Ce({}).then(l=>{const{data:n}=l,o=Q.toArrayTree(n,{parentKey:"parent",key:"menu_id",strict:!0});z.value=o})};let G=d(!1),x=d(),F=d();const ee=(l,n)=>{G.value=!l.is_catalog,l.is_catalog||(x.value=[],F.value=l,Be({menu:l.menu_id}).then(o=>{const{data:r}=o;x.value=r}),Fe({menu:l.menu_id,role:v.value.id}).then(o=>{const{data:r}=o;w.value=r}))},I=d(),b=d(!1),K=d(),L=d(),te=[],c=E({menu_button:null,role:null,menu:null,data_range:null,dept:[]});let w=d([]);const ne=E({menu_button:[{required:!0,message:"必填项"}],data_range:[{required:!0,message:"必填项"}]}),M=d(),le=()=>{b.value=!0,c.menu_button=null,c.menu=null,c.role=null,c.data_range=null,c.dept=[]},P=d(),oe=l=>{P.value=[],Se({menu_button:l}).then(n=>{P.value=n.data}),Te({menu_button:l}).then(n=>{L.value=Q.toArrayTree(n.data,{parentKey:"parent",strict:!1})})},ae=l=>{var o;let n=(o=x.value)==null?void 0:o.find(r=>r.id===l);return n?n.name:null},se=l=>{let n=[{value:0,label:"仅本人数据权限"},{value:1,label:"本部门及以下数据权限"},{value:2,label:"本部门数据权限"},{value:3,label:"全部数据权限"},{value:4,label:"自定义数据权限"}].find(o=>o.value===l);return n?n.label:null},ue=async()=>{const{id:l}=v.value,{id:n}=F.value,o=Object.assign({},c);o.role=l,o.menu=n;const r=K.value.getCheckedKeys();o.dept=r,M.value&&await M.value.validate((g,f)=>{g?De(o).then(_=>{const{data:C}=_;w.value.push(C),b.value=!1,k({type:"success",message:_.msg})}):(k({type:"error",title:"提交错误",message:"F12控制台看详情"}),console.log("提交错误",f))})},re=l=>{const{row:n,$index:o}=l;X.confirm("您是否要删除数据?","温馨提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{Ie({id:n.id}).then(r=>{w.value.splice(o,1),k({type:"success",message:r.msg})})}).catch(()=>{k({type:"info",message:"取消删除"})})},de=()=>{Y()},ie=()=>{const l=I.value.getCheckedKeys(),n=I.value.getHalfCheckedKeys(),o=[...l,...n],{id:r}=v.value;Ve({role:r,menu:o}).then(f=>{k({message:f.msg,type:"success"})})};return Z({drawer:D,editedRoleInfo:v,initGet:de}),(l,n)=>{const o=u("el-tag"),r=u("QuestionFilled"),g=u("el-icon"),f=u("el-tooltip"),_=u("el-button"),C=u("el-tree"),N=u("el-card"),O=u("el-col"),ce=u("el-divider"),V=u("el-table-column"),_e=u("el-table"),me=u("el-row"),R=u("el-option"),U=u("el-select"),j=u("el-form-item"),pe=u("el-form"),fe=u("el-dialog"),he=u("el-drawer");return h(),S(he,{size:"70%",modelValue:D.value,"onUpdate:modelValue":n[4]||(n[4]=s=>D.value=s),direction:"rtl","destroy-on-close":"","before-close":J},{header:e(()=>[i("div",null,[t(o,{size:"large",type:"primary"},{default:e(()=>[p("当前角色:"+T(v.value.name),1)]),_:1})])]),default:e(()=>[i("div",Me,[t(me,{gutter:10},{default:e(()=>[t(O,{xs:24,sm:24,md:8,lg:6,xl:6},{default:e(()=>[t(N,{header:"菜单页面授权"},{header:e(()=>[i("div",Pe,[t(f,{effect:"dark",content:"点击菜单项,可对菜单下的按钮/接口授权",placement:"right"},{default:e(()=>[i("div",null,[je,t(g,null,{default:e(()=>[t(r)]),_:1})])]),_:1}),t(_,{size:"mini",type:"primary",onClick:ie},{default:e(()=>[p("保存菜单授权")]),_:1})])]),default:e(()=>[t(C,{data:y(z),ref_key:"menuTree",ref:I,"show-checkbox":"","node-key":"id","highlight-current":"","expand-on-click-node":!1,"check-on-click-node":!0,props:W,onNodeClick:ee},null,8,["data"])]),_:1})]),_:1}),t(O,{xs:24,sm:24,md:16,lg:18,xl:18},{default:e(()=>[y(G)?(h(),S(N,{key:0},{header:e(()=>[i("div",ze,[t(f,{effect:"dark",content:"新增或删除对菜单下的按钮/接口授权",placement:"right"},{default:e(()=>[i("div",null,[Ge,t(g,null,{default:e(()=>[t(r)]),_:1})])]),_:1})])]),default:e(()=>[i("div",null,[t(ce,{"content-position":"left"},{default:e(()=>[p(T(y(F).name),1)]),_:1}),t(_,{type:"primary",size:"small",style:{"margin-bottom":"0.5em"},onClick:le},{default:e(()=>[p("新增 ")]),_:1}),t(_e,{size:"small",data:y(w),border:"",style:{width:"100%"}},{default:e(()=>[t(V,{prop:"menu_button",label:"权限名称",width:"100"},{default:e(s=>[i("div",null,T(ae(s.row.menu_button)),1)]),_:1}),t(V,{prop:"data_range",label:"权限范围",width:"140"},{default:e(s=>[i("div",null,T(se(s.row.data_range)),1)]),_:1}),t(V,{prop:"dept",label:"权限涉及部门"}),t(V,{fixed:"right",label:"操作",width:"120"},{default:e(s=>[t(_,{type:"danger",size:"small",onClick:B=>re(s)},{default:e(()=>[p("删除 ")]),_:2},1032,["onClick"])]),_:1})]),_:1},8,["data"])])]),_:1})):be("",!0)]),_:1})]),_:1}),t(fe,{modelValue:b.value,"onUpdate:modelValue":n[3]||(n[3]=s=>b.value=s),width:"400px",title:"配置按钮权限"},{footer:e(()=>[i("span",Le,[t(_,{onClick:n[2]||(n[2]=s=>b.value=!1)},{default:e(()=>[p("取消")]),_:1}),t(_,{type:"primary",onClick:ue},{default:e(()=>[p(" 确定 ")]),_:1})])]),default:e(()=>[t(pe,{ref_key:"buttonFormRef",ref:M,model:c,rules:ne,"label-width":"120px"},{default:e(()=>[t(j,{label:"按钮",prop:"menu_button"},{default:e(()=>[t(U,{modelValue:c.menu_button,"onUpdate:modelValue":n[0]||(n[0]=s=>c.menu_button=s),placeholder:"请选择按钮",onChange:oe},{default:e(()=>[(h(!0),$(A,null,q(y(x),(s,B)=>(h(),S(R,{key:B,label:s.name,value:s.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(j,{label:"权限范围",prop:"data_range"},{default:e(()=>[t(U,{modelValue:c.data_range,"onUpdate:modelValue":n[1]||(n[1]=s=>c.data_range=s),placeholder:"请选择按钮"},{default:e(()=>[(h(!0),$(A,null,q(P.value,(s,B)=>(h(),S(R,{key:B,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),ge(t(j,{label:"数据部门",prop:"dept"},{default:e(()=>[i("div",Ke,[t(C,{data:L.value,"show-checkbox":"","default-expand-all":"","default-checked-keys":te,ref_key:"deptTree",ref:K,"node-key":"id","check-strictly":!0,props:{label:"name"}},null,8,["data"])])]),_:1},512),[[ye,c.data_range===4]])]),_:1},8,["model","rules"])]),_:1},8,["modelValue"])])]),_:1},8,["modelValue"])}}});const qe=we(Ne,[["__scopeId","data-v-495e5a25"]]);export{qe as default};