Files
2026-07-31 18:51:41 +08:00

1 line
7.5 KiB
JavaScript

import{i as e}from"./rolldown-runtime-BgaNhQyE.js";import{Dr as t,t as n}from"./jsx-runtime-ADHq9IcL.js";import{t as r}from"./request-Vytbr90w.js";import{t as i}from"./typography-C2UybztD.js";import{d as a,g as ee,t as o}from"./lodash-D-pgfsxw.js";import{t as s}from"./tooltip-CRuv8UNz.js";import{n as c,t as l}from"./table-CG-GtmXj.js";import{t as u}from"./button-CcpWP-mq.js";import{n as d}from"./LockOutlined-rb6chlKx.js";import{t as f}from"./card-BFxeciPE.js";import{n as p,t as m}from"./row-DQ81_S1d.js";import{r as h}from"./PictureOutlined-5m8FAlCn.js";import{t as g}from"./switch-BWactV-h.js";import{t as _}from"./tag-BMkLMUVK.js";import{t as v}from"./SmileOutlined-CZG5Mc5n.js";import{t as y}from"./TeamOutlined-CZDGTBQJ.js";import{t as b}from"./useTranslation-DIuTqE8W.js";import{t as x}from"./relativeTime-jamE_cdZ.js";import{t as S}from"./XinTable-DP0Q6sQS.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=o(),k=e(d(),1),A=e(x(),1),j=n();k.default.extend(A.default);var{Title:M,Text:N}=i,P=()=>{let{t:e}=b(),[t,n]=(0,D.useState)(),[r,i]=(0,D.useState)(`users`),[o,d]=(0,D.useState)([]),[x,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:e(`system.role.tab.users`)},{key:`rules`,icon:(0,j.jsx)(ee,{}),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)(s,{title:t.description,children:(0,j.jsx)(_,{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)(_,{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),h.success(e(`system.role.message.statusUpdateSuccess`))}catch(t){h.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)(_,{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;d(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)(m,{gutter:[20,20],children:[(0,j.jsx)(p,{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)(p,{xxl:10,lg:12,xs:24,children:(0,j.jsx)(f,{tabList:G,onTabChange:i,activeTabKey:r,styles:{body:{minHeight:`70vh`}},children:t?r===`users`?(0,j.jsx)(l,{loading:P,dataSource:o,bordered:!0,columns:q,size:`small`,pagination:{total:x,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)(c,{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)(u,{size:`small`,onClick:()=>{let e=$(I);U(e)},children:e(`system.role.button.expandAll`)}),(0,j.jsx)(u,{size:`small`,onClick:()=>{U([])},children:e(`system.role.button.collapseAll`)}),(0,j.jsx)(u,{size:`small`,onClick:()=>{let e=$(I);z(e)},children:e(`system.role.button.selectAll`)}),(0,j.jsx)(u,{size:`small`,onClick:()=>{z([])},children:e(`system.role.button.clearAll`)}),(0,j.jsx)(u,{size:`small`,onClick:()=>{let e=$(I),t=new Set(R),n=e.filter(e=>!t.has(e));z(n)},children:e(`system.role.button.invertSelection`)}),(0,j.jsx)(u,{type:`primary`,icon:(0,j.jsx)(a,{}),loading:B,onClick:async()=>{if(!t){h.warning(e(`system.role.message.selectRoleFirst`));return}V(!0);try{let n=R.map(e=>Number(e));await E(t,n),h.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)(v,{style:{fontSize:40,marginBottom:12}}),(0,j.jsx)(`p`,{children:e(`system.role.placeholder.selectRole`)})]})})})]})]})};export{P as default};