feat: add model access control

This commit is contained in:
jialin
2025-10-13 15:21:17 +08:00
parent c41e5d9c55
commit bcd1a339f9
9 changed files with 289 additions and 2 deletions
@@ -0,0 +1,62 @@
import ModalFooter from '@/components/modal-footer';
import ScrollerModal from '@/components/scroller-modal';
import { useIntl } from '@umijs/max';
import { message } from 'antd';
import { useRef } from 'react';
import { updateModelAccessUser } from '../../apis';
import { AccessControlFormData, ListItem } from '../../config/types';
import AccessControlForm from './form';
const AccessControlModal: React.FC<
Global.ScrollerModalProps<ListItem, AccessControlFormData>
> = ({ open, title, currentData, action, onOk, onCancel }) => {
const intl = useIntl();
const form = useRef<any>(null);
const handleSumit = () => {
form.current?.submit();
};
const handleOnFinish = async (values: AccessControlFormData) => {
console.log('onFinish', values);
try {
const data = {
set_public: !values.set_public,
users: values.users || []
};
await updateModelAccessUser({
id: currentData?.id as number,
data: data
});
message.success(intl.formatMessage({ id: 'common.message.success' }));
onCancel?.();
} catch (error) {
message.error(intl.formatMessage({ id: 'common.message.failed' }));
}
};
return (
<ScrollerModal
title={title}
open={open}
centered={true}
onCancel={onCancel}
destroyOnHidden={true}
closeIcon={true}
maskClosable={false}
keyboard={false}
width={800}
footer={
<ModalFooter onOk={handleSumit} onCancel={onCancel}></ModalFooter>
}
>
<AccessControlForm
ref={form}
currentData={currentData}
onFinish={handleOnFinish}
/>
</ScrollerModal>
);
};
export default AccessControlModal;