import { useAjax } from "@/Hook/useAjax"; import { addAppApi, updateAppApi } from "@/services/iaaSystem/application"; import { MinusCircleOutlined, PlusOutlined } from "@ant-design/icons"; import { Button, Form, message, Modal, Select, Space, Switch } from "antd"; import { DefaultOptionType } from "antd/lib/select"; import React from "react" interface Props { appAllList: DefaultOptionType[] userList: DefaultOptionType[] apptypeEnum: { [x: string]: string } onChange?: () => void visible?: boolean onClose?: () => void initialValues?: any } /** * 新增修改应用权限 * @returns */ const ModalApp: React.FC = ({ appAllList, userList, apptypeEnum, onChange, visible, onClose, initialValues }) => { /*******************************/ const [form] = Form.useForm(); const authMemberAppList = Form.useWatch('authMemberAppList', form) const addApp = useAjax((params) => addAppApi(params)) const updateApp = useAjax((params) => updateAppApi(params)) /*******************************/ const handleOk = async () => { form.submit() let data = await form.validateFields() if (initialValues?.id) { data.id = initialValues?.id updateApp.run(data).then(res => { if (res?.data) { message.success('修改成功') onChange && onChange() } }) } else { addApp.run(data).then(res => { if (res?.data) { message.success('新增成功') onChange && onChange() } }) } } return {initialValues?.id ? `修改 ${initialValues?.userName} 应用权限` : '新增应用权限'}} open={visible} onCancel={onClose} onOk={handleOk} confirmLoading={addApp.loading || updateApp.loading} width={600} >
{initialValues?.id ? <> 应用} name={'iaaAppId'} rules={[{ required: true, message: '请选选择应用' }]} > (option?.label as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0 } /> {(fields, { add, remove }) => { return <> {fields.map(({ key, name, ...restField }) => ( 应用类型} name={[name, 'appType']} rules={[{ required: true, message: '请选选择应用' }]} > (option?.label as any)?.toLowerCase().indexOf(input.toLowerCase()) >= 0 } options={appAllList?.filter(item => authMemberAppList?.[key]?.appType ? item.appType === authMemberAppList[key]?.appType : true)} /> 是否包含自然量} name={[name, 'defaultAgent']} valuePropName="checked" initialValue={false} > remove(name)} /> ))} }} }
} export default React.memo(ModalApp)