#
luxiaotao1123
2024-09-10 7b6048096661d8cbcdb17f0ecfda667ae5716d69
#
2个文件已修改
1个文件已添加
123 ■■■■■ 已修改文件
zy-acs-flow/src/page/user/RolesSelect.jsx 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/user/UserCreate.jsx 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/UserController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-acs-flow/src/page/user/RolesSelect.jsx
New file
@@ -0,0 +1,29 @@
import * as React from 'react';
import { SelectArrayInput } from 'react-admin';
import request from '@/utils/request'
const RolesSelect = (props) => {
    const [arr, setArr] = React.useState([]);
    React.useEffect(() => {
        request.post('/role/list', {}).then(res => {
            if (res?.data?.code === 200) {
                setArr(res.data.data.map(item => {
                    return {
                        id: item.id,
                        name: item.name
                    }
                }))
            }
        })
    }, [])
    return (
        <SelectArrayInput
            {...props}
            choices={arr}
        />
    )
};
export default RolesSelect;
zy-acs-flow/src/page/user/UserCreate.jsx
@@ -13,10 +13,11 @@
    AutocompleteInput,
    Toolbar,
    required,
    useDataProvider,
    PasswordInput,
    useNotify,
    Form,
    useCreateController,
    email,
} from 'react-admin';
import {
    Dialog,
@@ -31,6 +32,7 @@
import StatusSelectInput from "../components/StatusSelectInput";
import MemoInput from "../components/MemoInput";
import TreeSelectInput from "../components/TreeSelectInput";
import RolesSelect from './RolesSelect'
const UserCreate = (props) => {
    const { open, setOpen } = props;
@@ -70,7 +72,29 @@
                    disableRestoreFocus
                    maxWidth="md"   // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
                >
                    <Form>
                    <Form validate={values => {
                        const errors = {};
                        if (!values.username) {
                            errors.username = 'ra.validation.required';
                        }
                        if (!values.nickname) {
                            errors.nickname = 'ra.validation.required';
                        }
                        if (!values.roleIds) {
                            errors.roleIds = 'ra.validation.required';
                        }
                        if (!values.email) {
                        } else {
                            const error = email()(values.email);
                            if (error) {
                                errors.email = error;
                            }
                        }
                        if (values.password && values.password !== values.confirmPassword) {
                            errors.confirmPassword = 'resources.customers.errors.password_mismatch';
                        }
                        return errors;
                    }}>
                        <DialogTitle id="form-dialog-title" sx={{
                            position: 'sticky',
                            top: 0,
@@ -102,11 +126,23 @@
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.user.code"
                                        source="code"
                                        parse={v => v}
                                    <TreeSelectInput
                                        resource="dept"
                                        label="table.field.user.deptId"
                                        source="deptId"
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <RolesSelect
                                        label="table.field.user.role"
                                        source="roleIds"
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <PasswordInput source="password" />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <PasswordInput source="confirmPassword" />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <SelectInput
@@ -117,6 +153,13 @@
                                            { id: 1, name: '男' },
                                            { id: 2, name: '女' },
                                        ]}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.user.code"
                                        source="code"
                                        parse={v => v}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
@@ -134,13 +177,6 @@
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TreeSelectInput
                                        resource="dept"
                                        label="table.field.user.deptId"
                                        source="deptId"
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.user.realName"
                                        source="realName"
@@ -153,24 +189,6 @@
                                        source="idCard"
                                        parse={v => v}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.user.birthday"
                                        source="birthday"
                                        parse={v => v}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.user.introduction"
                                        source="introduction"
                                        parse={v => v}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <StatusSelectInput />
                                </Grid>
                                <Grid item xs={12} display="flex" gap={1}>
                                    <Stack direction="column" spacing={1} width={'100%'}>
zy-acs-manager/src/main/java/com/zy/acs/manager/system/controller/UserController.java
@@ -83,7 +83,9 @@
            return R.error("the phone already exist");
        }
        if (Cools.isEmpty(user.getPassword())) {
        user.setPassword(userService.encodePassword(COMMON_PASSWORD));
        }
        user.setCreateBy(getLoginUserId());
        user.setCreateTime(new Date());
@@ -95,13 +97,15 @@
        }
        userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, user.getId()));
        if (!Cools.isEmpty((Object) user.getRoleIds())) {
        for (Long roleId : user.getRoleIds()) {
            if (!userRoleService.save(new UserRole(user.getId(), roleId))) {
                throw new CoolException("Internal Server Error");
            }
        }
        }
        return R.ok("Save Success");
        return R.ok("Save Success").add(user);
    }
    @PreAuthorize("hasAuthority('system:user:update')")
@@ -145,7 +149,7 @@
            }
        }
        return R.ok("Update Success");
        return R.ok("Update Success").add(user);
    }
    @PreAuthorize("hasAuthority('system:user:remove')")
@@ -157,11 +161,9 @@
            if (!userService.removeById(userId)) {
                throw new CoolException("Internal Server Error");
            }
            if (!userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, userId))) {
                throw new CoolException("Internal Server Error");
            userRoleService.remove(new LambdaQueryWrapper<UserRole>().eq(UserRole::getUserId, userId));
            }
        }
        return R.ok("Delete Success");
        return R.ok("Delete Success").add(ids);
    }
    @PreAuthorize("hasAuthority('system:user:list')")