Files
2026-07-13 15:23:29 +08:00

1 line
7.2 KiB
JavaScript

import{Or as e,Tr as t,t as n}from"./jsx-runtime-NwRKtVrk.js";import{t as r}from"./request-Blbag3Ot.js";import{r as i}from"./statusUtils-G17j4Ng-.js";import{n as a,t as o}from"./table-By97ouEx.js";import{t as s}from"./button-CM-rzMOH.js";import{t as c}from"./card-D7XvzVif.js";import{L as l,f as u,h as d,x as f}from"./es-Do50EHua.js";import{t as p}from"./tag-C0Yg14A-.js";import{D as m,N as h,_ as g,b as _,h as v,r as y,s as ee,t as b,v as x}from"./index-B7MUL4ct.js";import{t as S}from"./XinTable-Cyzgse09.js";async function C(e,t={page:1,pageSize:10}){return r({url:`/system/role/users/`+e,method:`get`,params:t})}async function w(e){return r({url:`/system/role/status/`+e,method:`put`})}async function T(){return r({url:`/system/role/ruleList`,method:`get`})}async function E(e,t){return r({url:`/system/role/setRule`,method:`post`,data:{role_id:e,rule_ids:t}})}var D=e(t(),1),O=y(),k=e(m(),1),A=e(b(),1),j=n();k.default.extend(A.default);var{Title:M,Text:N}=v,P=()=>{let{t:e}=ee(),[t,n]=(0,D.useState)(),[r,m]=(0,D.useState)(`users`),[v,y]=(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)(u,{}),label:e(`system.role.tab.users`)},{key:`rules`,icon:(0,j.jsx)(l,{}),label:e(`system.role.tab.rules`)}],K=[{title:`id`,dataIndex:`id`,valueType:`text`,align:`center`,width:80,hideInForm:!0},{title:e(`system.role.table.roleName`),dataIndex:`name`,valueType:`text`,align:`center`,required:!0,colProps:{span:8},rules:[{required:!0,message:e(`system.role.table.roleName.required`)}],render:(e,t)=>(0,j.jsx)(j.Fragment,{children:(0,j.jsx)(i,{title:t.description,children:(0,j.jsx)(p,{variant:`filled`,color:`blue`,children:e})})})},{title:e(`system.role.table.sort`),dataIndex:`sort`,valueType:`digit`,hideInSearch:!0,align:`center`,required:!0,colProps:{span:8},rules:[{required:!0,message:e(`system.role.table.sort.required`)}],render:e=>(0,j.jsx)(p,{variant:`filled`,color:`purple`,children:e})},{title:e(`system.role.table.userCount`),dataIndex:`countUser`,valueType:`text`,hideInForm:!0,align:`center`,render:t=>(0,j.jsx)(`a`,{children:(0,j.jsxs)(`u`,{children:[t,e(`system.role.userTable.person`)]})})},{title:e(`system.role.table.status`),dataIndex:`status`,valueType:`switch`,align:`center`,colProps:{span:8},filters:[{text:e(`system.role.table.status.disable`),value:0},{text:e(`system.role.table.status.enable`),value:1}],hideInSearch:!0,required:!0,rules:[{required:!0,message:e(`system.role.table.status.required`)}],render:(t,n)=>(0,j.jsx)(g,{disabled:n.id===1,checked:n.status===1,checkedChildren:e(`system.role.table.status.enable`),unCheckedChildren:e(`system.role.table.status.disable`),onChange:async(t,r)=>{r.stopPropagation();try{await w(n.id),_.success(e(`system.role.message.statusUpdateSuccess`))}catch(t){_.error(e(`system.role.message.statusUpdateFailed`)),console.error(`Failed to update role status:`,t)}}})},{valueType:`textarea`,title:e(`system.role.table.description`),dataIndex:`description`,colProps:{span:24},hideInTable:!0},{title:e(`system.role.table.createdAt`),hideInForm:!0,hideInSearch:!0,dataIndex:`created_at`,align:`center`,render:e=>e?(0,k.default)(e).fromNow():`-`},{title:e(`system.role.table.updatedAt`),hideInForm:!0,hideInSearch:!0,dataIndex:`updated_at`,align:`center`,render:e=>e?(0,k.default)(e).fromNow():`-`}],q=[{title:e(`system.role.userTable.userId`),dataIndex:`id`,key:`id`,align:`center`,width:80},{title:e(`system.role.userTable.username`),dataIndex:`username`,key:`username`,align:`center`},{title:e(`system.role.userTable.nickname`),dataIndex:`nickname`,key:`nickname`,align:`center`},{title:e(`system.role.userTable.email`),dataIndex:`email`,key:`email`,align:`center`,ellipsis:!0},{title:e(`system.role.userTable.mobile`),dataIndex:`mobile`,key:`mobile`,align:`center`},{title:e(`system.role.userTable.status`),dataIndex:`status`,key:`status`,align:`center`,render:t=>{let n=t===0?{color:`error`,text:e(`system.role.userTable.status.banned`)}:{color:`success`,text:e(`system.role.userTable.status.normal`)};return(0,j.jsx)(p,{color:n.color,children:n.text})},width:80}],J=async(e=1,n=10)=>{if(t){F(!0);try{let{data:r,total:i}=(await C(t,{page:e,pageSize:n})).data.data;y(r),A(i)}finally{F(!1)}}};(0,D.useEffect)(()=>{T().then(e=>{L(e.data.data)})},[]),(0,D.useEffect)(()=>{J(1,10)},[t]);let Y=e=>{n(e.id),e.ruleIds&&e.ruleIds.length>0?z(e.ruleIds):z([])},X=t=>t.local?(0,j.jsxs)(j.Fragment,{children:[e(t.local),` - `,(0,j.jsx)(`span`,{style:{color:`#00000040`},children:t.title})]}):(0,j.jsx)(j.Fragment,{children:t.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:e(`system.role.page.title`)}),(0,j.jsx)(N,{type:`secondary`,children:e(`system.role.page.description`)})]}),(0,j.jsxs)(x,{gutter:[20,20],children:[(0,j.jsx)(h,{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:t?[t]:[],onChange:(e,t)=>Y(t[0])},onRow:e=>({onClick:()=>Y(e)})})}),(0,j.jsx)(h,{xxl:10,lg:12,xs:24,children:(0,j.jsx)(c,{tabList:G,onTabChange:m,activeTabKey:r,styles:{body:{minHeight:`70vh`}},children:t?r===`users`?(0,j.jsx)(o,{loading:P,dataSource:v,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)(a,{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:e(`system.role.permission.selectedCount`,{count:R.length})}),(0,j.jsx)(s,{size:`small`,onClick:()=>{U($(I))},children:e(`system.role.button.expandAll`)}),(0,j.jsx)(s,{size:`small`,onClick:()=>{U([])},children:e(`system.role.button.collapseAll`)}),(0,j.jsx)(s,{size:`small`,onClick:()=>{z($(I))},children:e(`system.role.button.selectAll`)}),(0,j.jsx)(s,{size:`small`,onClick:()=>{z([])},children:e(`system.role.button.clearAll`)}),(0,j.jsx)(s,{size:`small`,onClick:()=>{let e=$(I),t=new Set(R);z(e.filter(e=>!t.has(e)))},children:e(`system.role.button.invertSelection`)}),(0,j.jsx)(s,{type:`primary`,icon:(0,j.jsx)(f,{}),loading:B,onClick:async()=>{if(!t){_.warning(e(`system.role.message.selectRoleFirst`));return}V(!0);try{await E(t,R.map(e=>Number(e))),_.success(e(`system.role.message.rulesSaveSuccess`))}finally{V(!1)}},size:`small`,disabled:t===1,children:e(`system.role.button.saveRules`)})]})]}):(0,j.jsxs)(`div`,{style:{textAlign:`center`,color:`#00000040`},children:[(0,j.jsx)(d,{style:{fontSize:40,marginBottom:12}}),(0,j.jsx)(`p`,{children:e(`system.role.placeholder.selectRole`)})]})})})]})]})};export{P as default};