Files
xin-school/public/assets/role-BW1aCRiT.js
T
2026-06-17 13:08:53 +08:00

1 line
7.0 KiB
JavaScript

import{o as e,s as t}from"./tslib.es6-DffexlHv.js";import{t as n}from"./card-BDbI8Gdq.js";import{t as r}from"./tag-Bn-IyYw0.js";import{C as ee,Ca as i,Ct as a,D as o,Dn as s,Ea as c,F as l,Jt as u,c as d,gn as f,hn as p,r as m,rt as h,s as g,t as _,vt as v,x as y,ya as b,yt as x}from"./index-DThTpSPU.js";import{t as S}from"./XinTable-D_6_7i3V.js";async function C(e,t={page:1,pageSize:10}){return b({url:`/system/role/users/`+e,method:`get`,params:t})}async function w(e){return b({url:`/system/role/status/`+e,method:`put`})}async function T(){return b({url:`/system/role/ruleList`,method:`get`})}async function E(e,t){return b({url:`/system/role/setRule`,method:`post`,data:{role_id:e,rule_ids:t}})}var D=c(i(),1),O=m(),k=c(p(),1),A=c(_(),1),j=g();k.default.extend(A.default);var{Title:M,Text:N}=h,P=()=>{let{t:i}=d(),[c,p]=(0,D.useState)(),[m,h]=(0,D.useState)(`users`),[g,_]=(0,D.useState)([]),[b,A]=(0,D.useState)(0),[P,F]=(0,D.useState)(!1),[I,L]=(0,D.useState)([]),[R,z]=(0,D.useState)([]),[B,V]=(0,D.useState)(!1),[H,U]=(0,D.useState)([]),W=(0,D.useRef)(null),G=[{key:`users`,icon:(0,j.jsx)(y,{}),label:i(`system.role.tab.users`)},{key:`rules`,icon:(0,j.jsx)(l,{}),label:i(`system.role.tab.rules`)}],K=[{title:`id`,dataIndex:`id`,valueType:`text`,align:`center`,width:80,hideInForm:!0},{title:i(`system.role.table.roleName`),dataIndex:`name`,valueType:`text`,align:`center`,required:!0,colProps:{span:8},rules:[{required:!0,message:i(`system.role.table.roleName.required`)}],render:(e,t)=>(0,j.jsx)(j.Fragment,{children:(0,j.jsx)(s,{title:t.description,children:(0,j.jsx)(r,{variant:`filled`,color:`blue`,children:e})})})},{title:i(`system.role.table.sort`),dataIndex:`sort`,valueType:`digit`,hideInSearch:!0,align:`center`,required:!0,colProps:{span:8},rules:[{required:!0,message:i(`system.role.table.sort.required`)}],render:e=>(0,j.jsx)(r,{variant:`filled`,color:`purple`,children:e})},{title:i(`system.role.table.userCount`),dataIndex:`countUser`,valueType:`text`,hideInForm:!0,align:`center`,render:e=>(0,j.jsx)(`a`,{children:(0,j.jsxs)(`u`,{children:[e,i(`system.role.userTable.person`)]})})},{title:i(`system.role.table.status`),dataIndex:`status`,valueType:`switch`,align:`center`,colProps:{span:8},filters:[{text:i(`system.role.table.status.disable`),value:0},{text:i(`system.role.table.status.enable`),value:1}],hideInSearch:!0,required:!0,rules:[{required:!0,message:i(`system.role.table.status.required`)}],render:(e,t)=>(0,j.jsx)(v,{disabled:t.id===1,checked:t.status===1,checkedChildren:i(`system.role.table.status.enable`),unCheckedChildren:i(`system.role.table.status.disable`),onChange:async(e,n)=>{n.stopPropagation();try{await w(t.id),a.success(i(`system.role.message.statusUpdateSuccess`))}catch(e){a.error(i(`system.role.message.statusUpdateFailed`)),console.error(`Failed to update role status:`,e)}}})},{valueType:`textarea`,title:i(`system.role.table.description`),dataIndex:`description`,colProps:{span:24},hideInTable:!0},{title:i(`system.role.table.createdAt`),hideInForm:!0,hideInSearch:!0,dataIndex:`created_at`,align:`center`,render:e=>e?(0,k.default)(e).fromNow():`-`},{title:i(`system.role.table.updatedAt`),hideInForm:!0,hideInSearch:!0,dataIndex:`updated_at`,align:`center`,render:e=>e?(0,k.default)(e).fromNow():`-`}],q=[{title:i(`system.role.userTable.userId`),dataIndex:`id`,key:`id`,align:`center`,width:80},{title:i(`system.role.userTable.username`),dataIndex:`username`,key:`username`,align:`center`},{title:i(`system.role.userTable.nickname`),dataIndex:`nickname`,key:`nickname`,align:`center`},{title:i(`system.role.userTable.email`),dataIndex:`email`,key:`email`,align:`center`,ellipsis:!0},{title:i(`system.role.userTable.mobile`),dataIndex:`mobile`,key:`mobile`,align:`center`},{title:i(`system.role.userTable.status`),dataIndex:`status`,key:`status`,align:`center`,render:e=>{let t=e===0?{color:`error`,text:i(`system.role.userTable.status.banned`)}:{color:`success`,text:i(`system.role.userTable.status.normal`)};return(0,j.jsx)(r,{color:t.color,children:t.text})},width:80}],J=async(e=1,t=10)=>{if(c){F(!0);try{let{data:n,total:r}=(await C(c,{page:e,pageSize:t})).data.data;_(n),A(r)}finally{F(!1)}}};(0,D.useEffect)(()=>{T().then(e=>{L(e.data.data)})},[]),(0,D.useEffect)(()=>{J(1,10)},[c]);let Y=e=>{p(e.id),e.ruleIds&&e.ruleIds.length>0?z(e.ruleIds):z([])},X=e=>e.local?(0,j.jsxs)(j.Fragment,{children:[i(e.local),` - `,(0,j.jsx)(`span`,{style:{color:`#00000040`},children:e.title})]}):(0,j.jsx)(j.Fragment,{children:e.title}),Z=e=>{(0,O.isArray)(e)?z(e):z(e.checked)},Q=e=>{U(e)},$=e=>{let t=[];return e.forEach(e=>{t.push(e.key),e.children&&e.children.length>0&&(t=[...t,...$(e.children)])}),t};return(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`div`,{className:`mb-5`,children:[(0,j.jsx)(M,{level:3,children:i(`system.role.page.title`)}),(0,j.jsx)(N,{type:`secondary`,children:i(`system.role.page.description`)})]}),(0,j.jsxs)(x,{gutter:[20,20],children:[(0,j.jsx)(u,{xxl:14,lg:12,xs:24,children:(0,j.jsx)(S,{api:`/system/role`,accessName:`system.role`,columns:K,rowKey:`id`,searchShow:!1,searchProps:!1,scroll:{x:800},editShow:e=>e.id!==1,deleteShow:e=>e.id!==1,formProps:{grid:!0,rowProps:{gutter:[20,0]},layout:`vertical`},modalProps:{width:800},operateProps:{fixed:`right`},rowSelection:{type:`radio`,selectedRowKeys:c?[c]:[],onChange:(e,t)=>Y(t[0])},onRow:e=>({onClick:()=>Y(e)})})}),(0,j.jsx)(u,{xxl:10,lg:12,xs:24,children:(0,j.jsx)(n,{tabList:G,onTabChange:h,activeTabKey:m,styles:{body:{minHeight:`70vh`}},children:c?m===`users`?(0,j.jsx)(e,{loading:P,dataSource:g,bordered:!0,columns:q,size:`small`,pagination:{total:b,showSizeChanger:!0,onChange:J},scroll:{x:600}}):(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{style:{height:`600px`,overflow:`auto`,marginBottom:12},children:(0,j.jsx)(t,{ref:W,checkable:!0,treeData:I,checkedKeys:R,onCheck:Z,titleRender:X,checkStrictly:!0,expandedKeys:H,onExpand:Q})}),(0,j.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`},children:[(0,j.jsx)(`span`,{style:{color:`#666`,fontSize:12},children:i(`system.role.permission.selectedCount`,{count:R.length})}),(0,j.jsx)(f,{size:`small`,onClick:()=>{U($(I))},children:i(`system.role.button.expandAll`)}),(0,j.jsx)(f,{size:`small`,onClick:()=>{U([])},children:i(`system.role.button.collapseAll`)}),(0,j.jsx)(f,{size:`small`,onClick:()=>{z($(I))},children:i(`system.role.button.selectAll`)}),(0,j.jsx)(f,{size:`small`,onClick:()=>{z([])},children:i(`system.role.button.clearAll`)}),(0,j.jsx)(f,{size:`small`,onClick:()=>{let e=$(I),t=new Set(R);z(e.filter(e=>!t.has(e)))},children:i(`system.role.button.invertSelection`)}),(0,j.jsx)(f,{type:`primary`,icon:(0,j.jsx)(o,{}),loading:B,onClick:async()=>{if(!c){a.warning(i(`system.role.message.selectRoleFirst`));return}V(!0);try{await E(c,R.map(e=>Number(e))),a.success(i(`system.role.message.rulesSaveSuccess`))}finally{V(!1)}},size:`small`,disabled:c===1,children:i(`system.role.button.saveRules`)})]})]}):(0,j.jsxs)(`div`,{style:{textAlign:`center`,color:`#00000040`},children:[(0,j.jsx)(ee,{style:{fontSize:40,marginBottom:12}}),(0,j.jsx)(`p`,{children:i(`system.role.placeholder.selectRole`)})]})})})]})]})};export{P as default};