Compare commits

...

3 Commits

Author SHA1 Message Date
ea62ddf501 Merge pull request 'develop' (#31) from develop into main
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m40s
Reviewed-on: #31
2026-04-24 13:44:44 +08:00
f33b2f2a4c Merge branch 'develop' of ssh://code.linyikj.com.cn:2222/pay/pay-admin into develop
All checks were successful
Build and Push Docker Image / build (push) Successful in 3m48s
# Conflicts:
#	.umirc.ts
2026-04-22 14:59:02 +08:00
f8ef1a94ea 权限控制的显示问题 2026-04-22 14:58:21 +08:00
3 changed files with 31 additions and 25 deletions

View File

@ -14,10 +14,11 @@ export default defineConfig({
}, },
proxy: { proxy: {
'/api/': { '/api/': {
// target: 'http://10.39.13.78:8002/', target: 'http://10.39.13.78:8002/',
// target: 'https://test-admin.linyikj.com.cn/', // target: 'https://test-admin.linyikj.com.cn/',
target: 'https://admin.linyikj.com.cn/', // target: 'https://admin.linyikj.com.cn/',
changeOrigin: true, changeOrigin: true,
secure: false,
pathRewrite: { '^': '' }, pathRewrite: { '^': '' },
}, },
}, },

View File

@ -1,4 +1,4 @@
{ {
"url": "http://10.39.13.78:8001/api/docs/openapi", "url": "http://10.39.13.78:8002/api/docs/openapi",
"module": "Admin" "module": "Admin"
} }

View File

@ -1,6 +1,5 @@
import { MyBetaModalFormProps, MyButtons } from '@/common'; import { MyBetaModalFormProps, MyButtons } from '@/common';
import { Apis } from '@/gen/Apis'; import { Apis } from '@/gen/Apis';
import { SysModuleEnum } from '@/gen/Enums';
import { ProCard } from '@ant-design/pro-components'; import { ProCard } from '@ant-design/pro-components';
import { message, Space, Tree, TreeProps } from 'antd'; import { message, Space, Tree, TreeProps } from 'antd';
import { DataNode } from 'antd/es/tree'; import { DataNode } from 'antd/es/tree';
@ -8,9 +7,7 @@ import { useEffect, useState } from 'react';
export default function Index(props: MyBetaModalFormProps) { export default function Index(props: MyBetaModalFormProps) {
const [treeData, setTreeData] = useState<DataNode[]>([]); const [treeData, setTreeData] = useState<DataNode[]>([]);
const [checkedKeys, setCheckedKeys] = useState<string[]>([]); const [checkedKeys, setCheckedKeys] = useState<React.Key[]>([]);
const [guardName, setGuardName] = useState<string>('Company');
const [getSysModuleEnum, setSysModuleEnum] = useState<any>({});
const processTree = (item: any): DataNode => { const processTree = (item: any): DataNode => {
return { return {
...item, ...item,
@ -20,13 +17,33 @@ export default function Index(props: MyBetaModalFormProps) {
}; };
}; };
const getPermissions = () => { // 提取所有叶子节点的 key用于过滤 checkedKeys
const getLeafKeys = (nodes: DataNode[]): React.Key[] => {
const keys: React.Key[] = [];
const traverse = (node: DataNode) => {
if (!node.children || node.children.length === 0) {
keys.push(node.key);
} else {
node.children.forEach(traverse);
}
};
nodes.forEach(traverse);
return keys;
};
const getPermissions = (data: DataNode[]) => {
//获取已经配置的,菜单 //获取已经配置的,菜单
Apis.Company.CompanyPermissions.GetPermissions({ Apis.Company.CompanyPermissions.GetPermissions({
companies_id: props?.item?.id || 0, companies_id: props?.item?.id || 0,
}).then((res: any) => { }).then((res: any) => {
console.log('res', res); const leafKeys = getLeafKeys(data);
setCheckedKeys(res?.data?.permissions_ids); const leafKeySet = new Set(leafKeys.map(String));
const ids = res?.data?.permissions_ids || [];
// 只保留叶子节点的 key避免父节点 key 导致 Tree 全选
const filteredKeys = ids.filter((id: React.Key) =>
leafKeySet.has(String(id)),
);
setCheckedKeys(filteredKeys);
}); });
}; };
@ -35,28 +52,16 @@ export default function Index(props: MyBetaModalFormProps) {
Apis.Company.CompanyPermissions.PermissionTree().then((res: any) => { Apis.Company.CompanyPermissions.PermissionTree().then((res: any) => {
const data = res.data?.map(processTree); const data = res.data?.map(processTree);
setTreeData(data); setTreeData(data);
getPermissions(); getPermissions(data);
}); });
}; };
useEffect(() => { useEffect(() => {
let obj = JSON.parse(JSON.stringify(SysModuleEnum));
delete obj.Admin;
setSysModuleEnum(obj);
getPermissionTree(); getPermissionTree();
}, []); }, []);
const onCheck: TreeProps['onCheck'] = (checkedKeys, info) => { const onCheck: TreeProps['onCheck'] = (checkedKeysValue) => {
console.log('onCheck', checkedKeys, info); setCheckedKeys(checkedKeysValue as React.Key[]);
const ids: string[] = [];
info.checkedNodes?.forEach((item: DataNode) => {
if (item.children?.length === 0) {
ids.push(item.key as string);
}
});
console.log('ids', ids);
setCheckedKeys(ids);
// props.onChange?.(ids);
}; };
return (treeData?.length ?? 0) > 0 ? ( return (treeData?.length ?? 0) > 0 ? (