Files
timeline-frontend/src/pages/story/components/AuthorizeStoryModal.tsx
2025-12-26 15:12:49 +08:00

70 lines
2.3 KiB
TypeScript

// 支持授权故事给其他用户,包含查看、新增、增删、管理员权限,查询当前好友列表,选择权限授权
import { queryFriendList } from '@/pages/account/center/service';
import { useRequest } from '@umijs/max';
import { Form, message, Modal, Select } from 'antd';
import { StoryType } from '../data';
import { values } from 'lodash';
import { authorizeStoryPermission } from '../service';
const AuthorizeStoryModal = ({
open,
current,
handleOk,
}: {
open: boolean;
current: Partial<StoryType> | undefined;
handleOk: (flag: boolean) => void;
}) => {
const { data: friends, loading } = useRequest(() => queryFriendList());
const [form] = Form.useForm();
const onFinish = async (values: {userId: string, permissionType: number}) => {
console.log(current, values);
if (!values.userId || !values.permissionType || !current?.instanceId) return;
let params = {userId: values.userId, permissionType: values.permissionType, storyInstanceId: current?.instanceId ?? '11'};
const res = await authorizeStoryPermission(params);
console.log(res);
if (res.code === 200) {
handleOk(true);
}
}
return (
<Modal title="授权故事" open={open} onCancel={() => handleOk(false)} onOk={() => onFinish(form.getFieldsValue())}>
{/* 请选择需要授权的好友 */}
<Form onFinish={onFinish} form={form}>
<Form.Item name={'userId'} label="授权对象">
<Select
// mode="multiple"
>
{friends?.map((item) => {
return (
<Select.Option title={item.username} key={item.userId}>
{item.username}
</Select.Option>
);
})}
</Select>
</Form.Item>
<Form.Item name="permissionType" label="权限类型">
<Select>
<Select.Option key="2" title="查看">
</Select.Option>
<Select.Option key="3" title="增加">
</Select.Option>
<Select.Option key="4" title="增删">
</Select.Option>
<Select.Option key="5" title="管理">
</Select.Option>
</Select>
</Form.Item>
</Form>
</Modal>
);
};
export default AuthorizeStoryModal;