| 1 |
- import{_ as e,a as l,d as a,D as t,ag as o,a9 as s,a8 as d,aK as r,z as c,A as i,F as n,G as u,t as v,v as p,x as f,ab as h,u as m,az as _,q as g}from"./element-plus.DUy1TWHM.js";import{M as b,bl as y,aL as w,s as x,A as V,bJ as k,aY as z,v as M,bb as C,I as j,bk as O,ar as S,q as F,bE as P,aD as D,u as E,t as H,H as B,bO as T,aU as I}from"./@vue.DbmRtknU.js";import{_ as U,v as K,D as L,f as N,aE as R,af as q,t as A,H as $}from"./index.B1CvNv-2.js";import{M as G}from"./sql.Cx6wXxe_.js";const J={class:"curd-drawer-header"},Y={class:"curd-drawer-header__title"},Q={class:"curd-drawer-header__actions"},W=U(b({inheritAttrs:!1,__name:"EnhancedDrawer",props:{modelValue:{type:Boolean},title:{},size:{},direction:{default:"rtl"},drawerClass:{}},emits:["update:modelValue","close","opened"],setup(s,{emit:d}){const r=s,c=d,i=y(),n=F({get:()=>r.modelValue,set:e=>c("update:modelValue",e)}),u=F(()=>{const e=i.class;return[r.drawerClass,e].filter(Boolean)}),v=F(()=>{const e={...i};return delete e.class,e});return(d,r)=>{const i=a,p=l,f=e,h=o;return w(),x(h,S({modelValue:n.value,"onUpdate:modelValue":r[1]||(r[1]=e=>n.value=e),size:s.size,direction:s.direction,"show-close":!1,class:u.value,"destroy-on-close":""},v.value,{onClose:r[2]||(r[2]=e=>c("close")),onOpened:r[3]||(r[3]=e=>c("opened"))}),V({header:k(()=>[M("div",J,[M("span",Y,C(s.title),1),M("div",Q,[j(f,{content:"关闭",placement:"top"},{default:k(()=>[j(p,{text:"",circle:"",onClick:r[0]||(r[0]=e=>n.value=!1)},{default:k(()=>[j(i,null,{default:k(()=>[j(O(t))]),_:1})]),_:1})]),_:1})])])]),default:k(()=>[z(d.$slots,"default",{},void 0,!0)]),_:2},[d.$slots.footer?{name:"footer",fn:k(()=>[z(d.$slots,"footer",{},void 0,!0)]),key:"0"}:void 0]),1040,["modelValue","size","direction","class"])}}}),[["__scopeId","data-v-54aebb1d"]]),X={class:"drawer-perm-content flex flex-col min-h-0 flex-1 overflow-hidden"},Z={class:"border-r-1 border-r-[var(--el-border-color-lighter)] b-r-solid h-[100%] p-[20px] box-border"},ee={class:"flex items-center"},le={style:{display:"flex",gap:"10px"}},ae={class:"mt-3"},te={key:0,class:"mt-5 max-h-[60vh] b-1 b-solid b-[var(--el-border-color-lighter)] p-10px overflow-auto box-border"},oe={style:{display:"flex",gap:"10px"}},se={class:"mt-3 flex-x-between"},de={class:"flex-center ml-5"},re={class:"mt-5 max-h-[69vh] b-1 b-solid b-[var(--el-border-color-lighter)] p-10px overflow-auto box-border"},ce={class:"dialog-footer"},ie=b({__name:"PermissonDrawer",props:{roleName:{},roleId:{},modelValue:{type:Boolean}},emits:["update:modelValue","saved"],setup(t,{emit:o}){const b=t,y=o,V=K(),z=F(()=>V.device===$.DESKTOP?"800px":"90%"),S=F({get:()=>b.modelValue,set(e){y("update:modelValue",e)}}),U=I(),J=I(),Y=I(""),Q=I(""),ie=I(),ne=I(!0),ue=I(!1),ve=I(!1),pe=I([]),fe=I([]),he=I({role_ids:[],menu_ids:[],data_scope:1,dept_ids:[]}),me=async()=>{var e,l;ve.value=!0;try{const a=await L.listDept();pe.value=N(R(a.data.data));const t=await G.listMenu();fe.value=N(R(t.data.data));const o=await q.detailRole(b.roleId);he.value={role_ids:[b.roleId],menu_ids:(null==(e=o.data.data.menus)?void 0:e.map(e=>e.id))||[],data_scope:o.data.data.data_scope||1,dept_ids:(null==(l=o.data.data.depts)?void 0:l.map(e=>e.id))||[]},ue.value=function(e,l){if(!e.length||!l.length)return!1;const a=new Map,t=e=>{e.forEach(e=>{a.set(Ve(e),e),e.children&&t(e.children)})};t(l);let o=!1;for(const s of e){const t=a.get(s);if(!t)continue;if(t.children&&t.children.length>0){if(t.children.some(l=>!e.includes(Ve(l)))){o=!0;break}}const d=ke(s,l);if(d&&!e.includes(Ve(d))){o=!0;break}}return!o}(he.value.menu_ids,fe.value),U.value&&await U.value.setCheckedKeys(he.value.menu_ids),5===he.value.data_scope&&J.value&&await J.value.setCheckedKeys(he.value.dept_ids)}catch(a){const e=a instanceof Error?a.message:String(a);g.error("获取权限数据失败: "+e)}finally{ve.value=!1}};function _e(){S.value=!1}async function ge(){var e,l;try{if(1===b.roleId)return void g.warning("系统默认角色,不可操作");ve.value=!0;const a=function(e,l){const a=new Map,t=(e,l)=>{var o;for(const s of e){const e=Ve(s);a.set(e,l),(null==(o=s.children)?void 0:o.length)&&t(s.children,e)}};t(l,void 0);const o=new Set;for(const s of e){let e=s;for(;void 0!==e;)o.add(e),e=a.get(e)}return[...o]}(((null==(e=U.value)?void 0:e.getCheckedKeys())||[]).map(e=>Number(e)),fe.value),t={role_ids:[b.roleId],menu_ids:a,data_scope:he.value.data_scope,dept_ids:((null==(l=J.value)?void 0:l.getCheckedKeys())||[]).map(e=>Number(e))};await q.setPermission(t);const o=A();await o.getUserInfo(),S.value=!1,y("saved")}catch(a){}finally{ve.value=!1}}const be=e=>{he.value.dept_ids=e},ye=e=>{he.value.menu_ids=e};function we(){ne.value=!ne.value,U.value&&Object.values(U.value.store.nodesMap).forEach(e=>{ne.value?e.expand():e.collapse()})}function xe(e,l){return!e||l.label.includes(e)}function Ve(e){const l=e.value??e.id;return Number(l)}function ke(e,l){for(const a of l)if(a.children)for(const l of a.children){if(Ve(l)===e)return a;const t=ke(e,[l]);if(t)return t}return null}function ze(e){ue.value=e}return P(Y,e=>{J.value.filter(e)}),P(Q,e=>{U.value.filter(e)}),D(async()=>{await me()}),(t,o)=>{const g=a,y=e,V=u,F=n,P=i,D=c,I=v,K=f,L=p,N=d,R=l,q=_,A=h,$=s;return w(),x(W,{modelValue:S.value,"onUpdate:modelValue":o[4]||(o[4]=e=>S.value=e),title:"【"+b.roleName+"】权限分配",size:z.value,"destroy-on-close":"",onClose:_e},{footer:k(()=>[M("div",ce,[j(R,{onClick:_e},{default:k(()=>[...o[13]||(o[13]=[B("取 消",-1)])]),_:1}),j(R,{type:"primary",loading:ve.value,onClick:T(ge,["stop"])},{default:k(()=>[...o[14]||(o[14]=[B(" 确 定 ",-1)])]),_:1},8,["loading"])])]),default:k(()=>[M("div",X,[j($,{class:"h-full min-h-0 flex-1"},{default:k(()=>[j(N,null,{default:k(()=>[M("div",Z,[M("div",ee,[M("div",le,[o[7]||(o[7]=M("div",{style:{width:"10px","background-color":"var(--el-color-primary)"}},null,-1)),M("div",null,[o[6]||(o[6]=M("span",{style:{"font-size":"16px"}},"数据授权",-1)),j(y,{placement:"right"},{content:k(()=>[...o[5]||(o[5]=[M("span",null,"授权用户可操作的数据范围",-1)])]),default:k(()=>[j(g,{class:"ml-1 inline-block cursor-pointer"},{default:k(()=>[j(O(r))]),_:1})]),_:1})])])]),M("div",ae,[j(D,{ref_key:"dataFormRef",ref:ie,model:he.value},{default:k(()=>[j(P,{prop:"data_scope"},{default:k(()=>[j(F,{modelValue:he.value.data_scope,"onUpdate:modelValue":o[0]||(o[0]=e=>he.value.data_scope=e)},{default:k(()=>[(w(),x(V,{key:1,label:"仅本人数据权限",value:1})),(w(),x(V,{key:2,label:"本部门数据权限",value:2})),(w(),x(V,{key:3,label:"本部门及以下数据权限",value:3})),(w(),x(V,{key:4,label:"全部数据权限",value:4})),(w(),x(V,{key:5,label:"自定义数据权限",value:5}))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"]),5===he.value.data_scope&&pe.value.length?(w(),E("div",te,[j(I,{modelValue:Y.value,"onUpdate:modelValue":o[1]||(o[1]=e=>Y.value=e),placeholder:"部门名称"},null,8,["modelValue"]),j(L,{ref_key:"deptTreeRef",ref:J,"node-key":"value","show-checkbox":"",data:pe.value,"filter-node-method":xe,"default-expand-all":"","highlight-current":!0,"check-strictly":!ue.value,style:{height:"calc(100% - 60px)","margin-top":"10px","overflow-y":"auto"},onCheck:be},{empty:k(()=>[j(K,{"image-size":80,description:"暂无数据"})]),_:1},8,["data","check-strictly"])])):H("",!0)])])]),_:1}),j(A,null,{default:k(()=>[M("div",oe,[o[10]||(o[10]=M("div",{style:{width:"10px","background-color":"var(--el-color-primary)"}},null,-1)),M("div",null,[o[9]||(o[9]=M("span",{style:{"font-size":"16px"}},"菜单授权",-1)),j(y,{placement:"right"},{content:k(()=>[...o[8]||(o[8]=[M("span",null,"授权用户可操作的菜单权限",-1)])]),default:k(()=>[j(g,{class:"ml-1 inline-block cursor-pointer"},{default:k(()=>[j(O(r))]),_:1})]),_:1})])]),M("div",se,[j(I,{modelValue:Q.value,"onUpdate:modelValue":o[2]||(o[2]=e=>Q.value=e),placeholder:"菜单名称"},null,8,["modelValue"]),M("div",de,[j(R,{type:"primary",size:"small",plain:"",onClick:we},{icon:k(()=>[j(O(m))]),default:k(()=>[B(" "+C(ne.value?"收缩":"展开"),1)]),_:1}),j(q,{modelValue:ue.value,"onUpdate:modelValue":o[3]||(o[3]=e=>ue.value=e),class:"ml-5",onChange:ze},{default:k(()=>[...o[11]||(o[11]=[B(" 父子联动 ",-1)])]),_:1},8,["modelValue"]),j(y,{placement:"bottom"},{content:k(()=>[...o[12]||(o[12]=[B(" 如果只需勾选菜单权限,不需要勾选子菜单或者按钮权限,请关闭父子联动 ",-1)])]),default:k(()=>[j(g,{class:"ml-1 color-[--el-color-primary] inline-block cursor-pointer"},{default:k(()=>[j(O(r))]),_:1})]),_:1})])]),M("div",re,[j(L,{ref_key:"permTreeRef",ref:U,"node-key":"value","show-checkbox":"",data:fe.value,"filter-node-method":xe,"default-expand-all":"","highlight-current":!0,"check-strictly":!ue.value,style:{height:"calc(100% - 60px)","margin-top":"10px",overflow:"auto"},onCheck:ye},{empty:k(()=>[j(K,{"image-size":80,description:"暂无数据"})]),_:1},8,["data","check-strictly"])])]),_:1})]),_:1})])]),_:1},8,["modelValue","title","size"])}}}),ne=Object.freeze(Object.defineProperty({__proto__:null,default:ie},Symbol.toStringTag,{value:"Module"})),ue=Object.freeze(Object.defineProperty({__proto__:null,default:"data:image/svg+xml,%3csvg%20class='icon'%20viewBox='0%200%201024%201024'%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='200'%3e%3cpath%20d='M917.6%20267.2c-36.1-2.5-72.4-9.3-103.6-19.3-10.1-3-20.2-6.4-30.3-10-21.4-6.3-50.5-18.8-83.6-36.6-.4-.2-.7-.4-1.1-.6-7.8-4.2-15.7-8.7-23.8-13.4-10.9-6.3-21.7-12.9-32.5-19.9-.4-.3-.8-.5-1.2-.8-7.7-5-15.5-10.2-23.1-15.5-5-3.4-10-7.1-15-10.7-3.8-2.8-7.5-5.3-11.3-8.2-27.4-20.5-54.5-43.5-79.9-68.3-25.4%2024.8-52.5%2047.8-79.9%2068.3-3.7%202.8-7.5%205.4-11.3%208.2-5%203.6-10%207.3-15%2010.7-7.7%205.4-15.4%2010.5-23.1%2015.5-.4.3-.8.5-1.2.8-10.8%206.9-21.6%2013.6-32.5%2019.9-8.1%204.7-16%209.2-23.8%2013.4-.3.2-.7.4-1%20.6-33%2017.8-62.2%2030.3-83.6%2036.6-10.1%203.6-20.2%207-30.3%2010-31.1%2010-67.4%2016.8-103.6%2019.3h.1c1.1%2016.2%202.1%2037.7%203.4%2060.9h.7c6.1%2086.8%2023.5%20210.2%2049.7%20282.8%201.2%203.2%202.2%206.5%203.3%209.6.6%201.5%201.2%202.8%201.8%204.3%2062.8%20162.1%20171.9%20280.1%20303%20323.4v.4c17.3%205.7%2031.9%209.3%2043.5%2011.5%2011.5-2.2%2026.1-5.8%2043.5-11.5v-.4C687%20905%20796.1%20787%20858.9%20624.8c.6-1.5%201.2-2.8%201.8-4.3%201.2-3.1%202.2-6.4%203.3-9.6%2026.2-72.5%2043.6-196%2049.7-282.8h.7c1.1-23.3%202.2-44.7%203.2-60.9zm-47.4%2041.9-.5%209.5c-.5%202.2-.9%204.4-1%206.6C863%20406%20847%20525.7%20821.3%20596.7c-.7%201.9-1.4%203.9-2%205.8-.4%201.2-.8%202.5-1.4%204.1-.5%201.2-1%202.5-1.4%203.4C758.1%20760.8%20657.7%20869.3%20541%20907.8c-1.9.6-3.7%201.4-5.5%202.2-7.9%202.5-15.7%204.6-23.2%206.3-7.5-1.7-15.2-3.8-23.1-6.3-1.8-.9-3.6-1.6-5.5-2.2-116.7-38.5-217.1-147-275.4-297.5-.5-1.2-.9-2.4-1.7-4.1-.4-1.2-.8-2.4-1.3-3.6-.7-2-1.3-3.9-1.9-5.6-25.8-71.2-41.7-191-47.4-271.7-.2-2.3-.5-4.5-1-6.6l-.5-9.3c-.1-1.5-.2-3-.2-4.5%2024.6-3.8%2048.4-9.3%2070-16.2%2010.1-3%2020.4-6.4%2031.4-10.4%2025.2-7.6%2056.5-21.2%2090.5-39.6.6-.3%201.2-.6%201.7-.9%208.2-4.4%2016.7-9.2%2024.8-14%2010.7-6.1%2022-13%2034.5-21.1.4-.2%201-.6%201.3-.8%208.2-5.3%2016.4-10.8%2024.1-16.2%204.5-3.1%209.1-6.4%2013.7-9.7l2.4-1.8%204-2.9c2.6-1.9%205.2-3.7%207.5-5.5%2017.9-13.4%2035.3-27.5%2052-42.1%2016.7%2014.7%2034%2028.7%2051.8%2042%202.6%201.9%205.1%203.8%207.7%205.6l4.3%203.1%201.5%201.1c4.8%203.5%209.6%206.9%2014%209.9%208.1%205.7%2016.3%2011.2%2023.7%2016l2.1%201.3c12.4%208%2023.7%2014.9%2034.1%2020.8%208.6%205%2017%209.8%2025%2014.1.4.2%201%20.5%201.5.8%2034.2%2018.4%2065.6%2032.1%2090.9%2039.7%2011%203.9%2021.3%207.3%2030.6%2010.1%2022.1%207.1%2046.1%2012.6%2070.8%2016.5.1%201.5.1%203%200%204.4z'/%3e%3cpath%20d='M710.6%20411.2%20476.1%20651.6l-120-123c-8.3-8.5-21.8-8.5-30.1%200s-8.3%2022.3%200%2030.9L461.1%20698c4.2%204.3%209.6%206.4%2015.1%206.4%205.4%200%2010.9-2.1%2015-6.4l249.5-255.7c8.3-8.5%208.3-22.3%200-30.9-8.3-8.7-21.8-8.7-30.1-.2z'/%3e%3c/svg%3e"},Symbol.toStringTag,{value:"Module"})),ve=Object.freeze(Object.defineProperty({__proto__:null,default:"data:image/svg+xml,%3csvg%20t='1642407370336'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='6354'%20width='200'%20height='200'%3e%3cpath%20d='M952.888889%20281.6V910.222222c0%2062.862222-50.915556%20113.777778-113.777778%20113.777778H156.444444c-62.862222%200-113.777778-50.915556-113.777777-113.777778V113.777778c0-62.862222%2050.915556-113.777778%20113.777777-113.777778h514.844445L952.888889%20281.6z'%20fill='%2385BCFF'%20p-id='6355'%3e%3c/path%3e%3cpath%20d='M676.664889%20167.822222V0l281.6%20281.6h-167.822222c-62.862222%200-113.777778-50.915556-113.777778-113.777778'%20fill='%23529EE0'%20p-id='6356'%3e%3c/path%3e%3cpath%20d='M685.824%20363.804444a53.76%2053.76%200%200%201%2053.731556%2053.731556v307.029333a53.76%2053.76%200%200%201-53.731556%2053.731556H309.76a53.731556%2053.731556%200%200%201-53.731556-53.76V417.564444c0-29.667556%2024.035556-53.731556%2053.731556-53.731555H685.795556z%20m-72.903111%20149.674667l-138.183111%20146.545778-80.583111-62.805333-92.131556%2094.208v31.402666c0%2011.548444%2010.325333%2020.906667%2023.04%2020.906667h345.400889c12.714667%200%2023.04-9.386667%2023.04-20.906667v-125.610666l-80.583111-83.740445z%20m-227.896889-85.532444a32.085333%2032.085333%200%201%200%200%2064.142222%2032.085333%2032.085333%200%200%200%200-64.142222z'%20fill='%23FFFFFF'%20p-id='6357'%3e%3c/path%3e%3c/svg%3e"},Symbol.toStringTag,{value:"Module"})),pe=Object.freeze(Object.defineProperty({__proto__:null,default:"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2020%2020'%20fill='none'%3e%3ccircle%20cx='10'%20cy='10'%20r='10'%20fill='%234086FF'/%3e%3cg%20clip-path='url(%23svg_d3d9446802__clip0_896:213998)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10%204.5a5.5%205.5%200%20100%2011%205.5%205.5%200%20000-11zm2.475%206.6h-2.47a.707.707%200%2001-.688-.688V7.258a.688.688%200%20011.375%200v2.465h1.783a.687.687%200%20110%201.375v.003z'%20fill='%23fff'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='svg_d3d9446802__clip0_896:213998'%3e%3cpath%20fill='%23fff'%20transform='translate(4.5%204.5)'%20d='M0%200h11v11H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e"},Symbol.toStringTag,{value:"Module"})),fe=Object.freeze(Object.defineProperty({__proto__:null,default:"data:image/svg+xml,%3csvg%20t='1642510137242'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='11523'%20width='200'%20height='200'%3e%3cpath%20d='M435.8%20536.2H512V353z'%20fill='%23DD0031'%20p-id='11524'%3e%3c/path%3e%3cpath%20d='M400.9%20616.8l-52.4%20130.8h-97.2L512%20163V64L94.9%20212.7l63.6%20551.5L512%20960V616.8z'%20fill='%23DD0031'%20p-id='11525'%3e%3c/path%3e%3cpath%20d='M512%20353v183.2h76.2z'%20fill='%23C3002F'%20p-id='11526'%3e%3c/path%3e%3cpath%20d='M512%2064v99l259.8%20584.6h-97.2l-52.4-130.8H512V960l353.5-195.8%2063.6-551.5z'%20fill='%23C3002F'%20p-id='11527'%3e%3c/path%3e%3c/svg%3e"},Symbol.toStringTag,{value:"Module"})),he=Object.freeze(Object.defineProperty({__proto__:null,default:"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='currentColor'%3e%3cpath%20d='M10%206v15H8V6H2V4h14v2h-6zm8%208v7h-2v-7h-3v-2h8v2h-3z'/%3e%3c/svg%3e"},Symbol.toStringTag,{value:"Module"}));export{W as E,ne as P,ie as _,fe as a,ue as c,ve as f,pe as i,he as s};
|