From d1b1b2b225a3f56a8b9a1a1e8f3020b5ac9a73f7 Mon Sep 17 00:00:00 2001 From: Lhk0001 <2406661616@qq.com> Date: Fri, 27 Oct 2023 16:55:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=89=AF=E6=9C=AC=EF=BC=88test=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 29 +- package.json | 1 + src/api/system/role.ts | 2 +- src/view/system/role/RoleTable/index.tsx | 86 +-- src/view/system/role/RoleTable/index备份.tsx | 411 ++++++++++ src/view/system/role/Search/index.tsx | 61 +- src/view/system/role/index.scss | 88 +++ src/view/system/role/index.tsx | 754 ++++++++++++++++++- src/view/system/role/newadd/index.tsx | 75 +- 9 files changed, 1360 insertions(+), 147 deletions(-) create mode 100644 src/view/system/role/RoleTable/index备份.tsx diff --git a/package-lock.json b/package-lock.json index 39cc0f9..37dfd90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "react-vite", "version": "0.0.0", "dependencies": { + "@ant-design/icons": "^5.2.6", "@reduxjs/toolkit": "^1.9.5", "antd": "^5.7.3", "axios": "^1.4.0", @@ -85,12 +86,12 @@ } }, "node_modules/@ant-design/icons": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.1.4.tgz", - "integrity": "sha512-YHKL7Jx3bM12OxvtiYDon04BsBT/6LGitYEqar3GljzWaAyMOAD8i/uF1Rsi5Us/YNdWWXBGSvZV2OZWMpJlcA==", + "version": "5.2.6", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.2.6.tgz", + "integrity": "sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==", "dependencies": { "@ant-design/colors": "^7.0.0", - "@ant-design/icons-svg": "^4.2.1", + "@ant-design/icons-svg": "^4.3.0", "@babel/runtime": "^7.11.2", "classnames": "^2.2.6", "rc-util": "^5.31.1" @@ -104,9 +105,9 @@ } }, "node_modules/@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz", + "integrity": "sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==" }, "node_modules/@ant-design/react-slick": { "version": "1.0.2", @@ -4353,21 +4354,21 @@ } }, "@ant-design/icons": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@ant-design/icons/-/icons-5.1.4.tgz", - "integrity": "sha512-YHKL7Jx3bM12OxvtiYDon04BsBT/6LGitYEqar3GljzWaAyMOAD8i/uF1Rsi5Us/YNdWWXBGSvZV2OZWMpJlcA==", + "version": "5.2.6", + "resolved": "https://registry.npmmirror.com/@ant-design/icons/-/icons-5.2.6.tgz", + "integrity": "sha512-4wn0WShF43TrggskBJPRqCD0fcHbzTYjnaoskdiJrVHg86yxoZ8ZUqsXvyn4WUqehRiFKnaclOhqk9w4Ui2KVw==", "requires": { "@ant-design/colors": "^7.0.0", - "@ant-design/icons-svg": "^4.2.1", + "@ant-design/icons-svg": "^4.3.0", "@babel/runtime": "^7.11.2", "classnames": "^2.2.6", "rc-util": "^5.31.1" } }, "@ant-design/icons-svg": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", - "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + "version": "4.3.1", + "resolved": "https://registry.npmmirror.com/@ant-design/icons-svg/-/icons-svg-4.3.1.tgz", + "integrity": "sha512-4QBZg8ccyC6LPIRii7A0bZUk3+lEDCLnhB+FVsflGdcWPPmV+j3fire4AwwoqHV/BibgvBmR9ZIo4s867smv+g==" }, "@ant-design/react-slick": { "version": "1.0.2", diff --git a/package.json b/package.json index bef8251..8171330 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "dependencies": { + "@ant-design/icons": "^5.2.6", "@reduxjs/toolkit": "^1.9.5", "antd": "^5.7.3", "axios": "^1.4.0", diff --git a/src/api/system/role.ts b/src/api/system/role.ts index 506c65f..0c290f7 100644 --- a/src/api/system/role.ts +++ b/src/api/system/role.ts @@ -50,7 +50,6 @@ export const getMenuLiseAPI = () => { }) } export const addRoleAPI = (data:any) => { - // data.menuIds=[] console.log('addAPI',data); return request({ url: `/admin/role`, @@ -70,6 +69,7 @@ export const getRoleAPI = (params:paramsType) => { export const setRoleDataAPI = (data:any) => { // data.menuIds=[] // const {roleId}=params + console.log('修改',data); return request({ url: `/admin/role`, diff --git a/src/view/system/role/RoleTable/index.tsx b/src/view/system/role/RoleTable/index.tsx index c9b6b7e..bc2caff 100644 --- a/src/view/system/role/RoleTable/index.tsx +++ b/src/view/system/role/RoleTable/index.tsx @@ -10,6 +10,20 @@ const { confirm } = Modal interface getValueType { valueSch: any } +interface DataType { + createTime: string, + dataScope: string, + deptIds: any[], + menuIds: any[], + roleId: number, + roleKey: string, + roleName: string, + roleSort: string, + state: string, + updateTime: string, + key?: number, + total?: number +} interface Values { title: string; description: string; @@ -34,8 +48,15 @@ const CollectionCreateForm: React.FC = ({ onCancel, }) => { const [form] = Form.useForm(); + console.log('thisrole',thisrole); form.setFieldsValue({...thisrole}) + const [menulist, setMenulist] = useState([]) + const [expandedKeys, setExpandedKeys] = useState([]); + const [checkedKeys, setCheckedKeys] = useState([]); + const [selectedKeys, setSelectedKeys] = useState([]); + const [autoExpandParent, setAutoExpandParent] = useState(true); + // setCheckedKeys(thisrole.menuIds) const getMenuList = async () => { try { let menul = await getMenuLiseAPI() @@ -47,32 +68,28 @@ const CollectionCreateForm: React.FC = ({ } } - const [expandedKeys, setExpandedKeys] = useState([]); - const [checkedKeys, setCheckedKeys] = useState([]); - const [selectedKeys, setSelectedKeys] = useState([]); - const [autoExpandParent, setAutoExpandParent] = useState(true); - - const onExpand = (expandedKeysValue: React.Key[]) => { - console.log('onExpand', expandedKeysValue); - // if not set autoExpandParent to false, if children expanded, parent can not collapse. - // or, you can remove all expanded children keys. - setExpandedKeys(expandedKeysValue); - setAutoExpandParent(false); - }; - const onCheck = (checkedKeysValue: any) => { - console.log('onCheck', checkedKeysValue); - form.setFieldsValue({menuIds:checkedKeysValue}) - setCheckedKeys(checkedKeysValue); - }; - - const onSelect = (selectedKeysValue: React.Key[], info: any) => { - console.log('onSelect', info); + // const onExpand = (expandedKeysValue: React.Key[]) => { + // console.log('onExpand', expandedKeysValue); + // setExpandedKeys(expandedKeysValue); + // setAutoExpandParent(false); + // }; + // const onCheck = (checkedKeysValue: any) => { + // console.log('onCheck', checkedKeysValue); + // form.setFieldsValue({menuIds:checkedKeysValue}) + // setCheckedKeys(checkedKeysValue); - setSelectedKeys(selectedKeysValue); - }; + + // }; + + // const onSelect = (selectedKeysValue: React.Key[], info: any) => { + // console.log('onSelect', info); + // setSelectedKeys(selectedKeysValue); + // }; useEffect(() => { getMenuList() + // console.log('thisrole.menuIds',thisrole.menuIds); + // setCheckedKeys(thisrole.menuIds) form.setFieldsValue({menuIds:thisrole.menuIds}) }, []) @@ -137,9 +154,10 @@ const CollectionCreateForm: React.FC = ({ - = ({ onSelect={onSelect} selectedKeys={selectedKeys} treeData={treeData} - /> + /> */} @@ -156,21 +174,8 @@ const CollectionCreateForm: React.FC = ({ }; const RoleTable: React.FC = ({ valueSch }) => { const [messageApi,contextHolder]=message.useMessage(); - console.log('111', valueSch); - interface DataType { - createTime: string, - dataScope: string, - deptIds: any[], - menuIds: any[], - roleId: number, - roleKey: string, - roleName: string, - roleSort: string, - state: string, - updateTime: string, - key?: number, - total?: number - } + console.log('table:', valueSch); + let [queryParams,setQueryParams]=useState({ roleKey: undefined, roleName: undefined, @@ -180,7 +185,6 @@ const RoleTable: React.FC = ({ valueSch }) => { pageNum: undefined, pageSize: undefined }) - // let queryParams: any = { // roleKey: undefined, // roleName: undefined, @@ -190,7 +194,6 @@ const RoleTable: React.FC = ({ valueSch }) => { // pageNum: undefined, // pageSize: undefined // } - const handleClickDel = (role: DataType) => { console.log(role); let { roleId } = role @@ -376,7 +379,6 @@ const RoleTable: React.FC = ({ valueSch }) => { // console.log(queryParams); }, [valueSch]) return ( -
{contextHolder} void; + onCancel: () => void; +} +const fieldNames = { + key: 'menuId', + title: 'menuName', + value:'menuId', + children: 'children' +} +let treeData:any=[] +let thisrole:any={} +const CollectionCreateForm: React.FC = ({ + open, + onCreate, + onCancel, +}) => { + const [form] = Form.useForm(); + console.log('thisrole',thisrole); + form.setFieldsValue({...thisrole}) + + const [menulist, setMenulist] = useState([]) + const [expandedKeys, setExpandedKeys] = useState([]); + const [checkedKeys, setCheckedKeys] = useState([]); + const [selectedKeys, setSelectedKeys] = useState([]); + const [autoExpandParent, setAutoExpandParent] = useState(true); + // setCheckedKeys(thisrole.menuIds) + const getMenuList = async () => { + try { + let menul = await getMenuLiseAPI() + treeData = menul.data + setMenulist(menul.data) + } catch (error) { + console.log(error); + + } + + } + const onExpand = (expandedKeysValue: React.Key[]) => { + console.log('onExpand', expandedKeysValue); + setExpandedKeys(expandedKeysValue); + setAutoExpandParent(false); + }; + const onCheck = (checkedKeysValue: any) => { + console.log('onCheck', checkedKeysValue); + form.setFieldsValue({menuIds:checkedKeysValue}) + setCheckedKeys(checkedKeysValue); + + + }; + + const onSelect = (selectedKeysValue: React.Key[], info: any) => { + console.log('onSelect', info); + setSelectedKeys(selectedKeysValue); + }; + + useEffect(() => { + getMenuList() + // console.log('thisrole.menuIds',thisrole.menuIds); + + // setCheckedKeys(thisrole.menuIds) + form.setFieldsValue({menuIds:thisrole.menuIds}) + }, []) + + return ( + { + form + .validateFields() + .then((values) => { + form.resetFields() + onCreate(values); + setSelectedKeys([]) + }) + .catch((info) => { + console.log('Validate Failed:', info); + }); + }} + > +
+ + + + + + + + + + + + + 所有数据权限 + 自定义数据权限 + 本部门数据权限 + 本部门及以下数据权限 + + + + + 正常 + 停用 + + + + + + +
+ ); +}; +const RoleTable: React.FC = ({ valueSch }) => { + const [messageApi,contextHolder]=message.useMessage(); + console.log('table:', valueSch); + interface DataType { + createTime: string, + dataScope: string, + deptIds: any[], + menuIds: any[], + roleId: number, + roleKey: string, + roleName: string, + roleSort: string, + state: string, + updateTime: string, + key?: number, + total?: number + } + let [queryParams,setQueryParams]=useState({ + roleKey: undefined, + roleName: undefined, + state: undefined, + endTime: undefined, + startTime: undefined, + pageNum: undefined, + pageSize: undefined + }) + // let queryParams: any = { + // roleKey: undefined, + // roleName: undefined, + // state: undefined, + // endTime: undefined, + // startTime: undefined, + // pageNum: undefined, + // pageSize: undefined + // } + const handleClickDel = (role: DataType) => { + console.log(role); + let { roleId } = role + del(roleId); + } + const showDeleteConfirm = (role:any) => { + console.log(role); + + confirm({ + title: '系统提示', + icon: , + content: `确定删除角色名称为${role.roleName}的数据吗`, + okText: '确定', + okType: 'danger', + cancelText: '取消', + onOk() { + handleClickDel(role); + }, + onCancel() { + console.log('Cancel'); + }, + }); + }; + const del = async (roleId: number) => { + try { + let { code } = await delRoleAPI({ roleId }) + if (code === 1000) { + console.log('del',valueSch); + messageApi.open({ + type: 'success', + content: '操作成功', + }); + getRoleData1({pageNum:count}) + } + } catch (error) { + console.log(error); + } + } + + const setRoleData=async(role:any)=>{ + // const {roleId,roleKey,roleName,roleSort,dataScope,state,meunIds}=role + thisrole=role + try { + let { code ,data} = await getRoleAPI(role) + if (code === 1000) { + console.log('role:',data); + thisrole=data + } + } catch (error) { + console.log(error); + } + setOpen(true); + } + const columns: ColumnsType = [ + { + title: '序号', + dataIndex: 'key', + key: 'key', + }, + { + title: '角色名称', + dataIndex: 'roleName', + key: 'roleName', + }, + { + title: '角色权限', + dataIndex: 'roleKey', + key: 'roleKey', + }, + { + title: '数据范围', + key: 'dataScope', + dataIndex: 'dataScope', + render:(text)=>{ + switch(text){ + case '1': + return <>所有数据权限 + case '2': + return <>自定义数据权限 + case '3': + return <>本部门数据权限 + default: + return <>本部门及以下数据权限 + } + } + }, + { + title: '显示顺序', + key: 'roleSort', + dataIndex: 'roleSort' + }, + { + title: '状态', + key: 'state', + dataIndex: 'state', + render: (text) => ( + <>{ + text === '0' + ? + 正常 + + : + 停用 + + } + + ) + }, + { + title: '创建时间', + key: 'createTime', + dataIndex: 'createTime', + }, + { + title: '操作', + key: '', + dataIndex: '', + render: (text) => ( + <> + + {/* */} + + + + ), + } + ]; + let [data, setData] = useState([]) + let [total, setTotal] = useState(0) + const getRoleData1 = async (queryParams: any) => { + try { + const { code, data } = await getRolesDataAPI(queryParams) + if (code === 1000) { + const sortData=data.rows.sort((a:DataType,b:DataType)=>parseInt(a.roleSort)-parseInt(b.roleSort)) + sortData.forEach((element: DataType, i: number) => { + element.key = i + 1; + }); + setData(sortData) + setTotal(data.total) + } + } catch (err: any) { + console.log(err); + } + } + let [count, setCount] = useState(1) + const change = (page: number, pageSize: number) => { + console.log(page, pageSize); + queryParams={...queryParams,pageNum:page,pageSize} + // setQueryParams({...queryParams,pageNum:page,pageSize}) + console.log(queryParams); + getRoleData1(queryParams) + setCount(page) + } + const [open, setOpen] = useState(false); + const setDataapi=async(values:any)=>{ + try { + console.log('ssssss',values); + let {code}=await setRoleDataAPI(values) + if(code===1000){ + messageApi.open({ + type: 'success', + content: '操作成功', + }); + } + } catch (error) { + console.log(error); + + } + } + const onCreate = (values: any) => { + // values.menuIds=[] + values={...thisrole,...values} + console.log('Received values of form: ', values); + setDataapi(values) + getRoleData1({pageNum:count}) + setOpen(false); + }; + useEffect(() => { + // setQueryParams({...queryParams,...valueSch}) + queryParams={...queryParams,...valueSch,pageNum:count} + // setCount(1) + getRoleData1(queryParams); + // console.log(queryParams); + }, [valueSch]) + return ( + +
+ {contextHolder} +
+ change(page, pageSize)} + showTotal={(total) => `共 ${total} 条`} + /> + { + setOpen(false); + }} + /> + + ) +} +export default RoleTable \ No newline at end of file diff --git a/src/view/system/role/Search/index.tsx b/src/view/system/role/Search/index.tsx index baac513..4bc3f44 100644 --- a/src/view/system/role/Search/index.tsx +++ b/src/view/system/role/Search/index.tsx @@ -1,4 +1,4 @@ -import React, { useState ,useContext} from "react"; +import React, { useState ,useContext,createRef} from "react"; import { Button, Input, Select, DatePicker, Space } from "antd"; import type { DatePickerProps, RangePickerProps } from 'antd/es/date-picker'; import './index.scss' @@ -8,8 +8,18 @@ interface getValueType { getValue:(value:any)=>void } +interface valueType { + roleName: string | undefined, + roleKey: string | undefined, + state: string | undefined, + startTime: string | undefined, + endTime: string | undefined +} const Serach:React.FC=({getValue})=>{ const { RangePicker } = DatePicker + //时间值 + const [selectedDate, setSelectedDate]=useState([null,null]) + //搜索框内所有内容 let [value, setValue] = useState({ roleName: undefined, roleKey: undefined, startTime: undefined, state: undefined,endTime:undefined }) @@ -17,39 +27,27 @@ const Serach:React.FC=({getValue})=>{ console.log(value); getValue(value); } - const onDateChange = ( - valueDate: DatePickerProps['value'] | RangePickerProps['value'], - dateString: [string, string] | string, - ) => { - - setValue({...value,startTime:dateString[0]+':00',endTime:dateString[1]+':00'}) - }; - const onOk = (value: DatePickerProps['value'] | RangePickerProps['value']) => { - console.log('onOk: ', value); - }; - const handlClickSerachNew = () => { - + const handleClickSerachNew = () => { value={ roleName: undefined, roleKey: undefined, startTime: undefined, state: undefined,endTime:undefined } setValue(value) getValue(value) } - // Filter `option.label` match the user type `input` + const onDateChange = ( + valueDate: DatePickerProps['value'] | RangePickerProps['value'], + dateString: [string, string] | string, + ) => { + setValue({...value,startTime:dateString[0]+':00',endTime:dateString[1]+':00'}) + }; + // const onOk = (value: DatePickerProps['value'] | RangePickerProps['value']) => { + // console.log('onOk: ', value); + // }; const filterOption = (input: string, option?: { label: string; value: string }) => (option?.label ?? '').toLowerCase().includes(input.toLowerCase()); - - interface valueType { - roleName: string | undefined, - roleKey: string | undefined, - state: string | undefined, - startTime: string | undefined, - endTime: string | undefined - } const onStateChange = (values: string) => { setValue({ ...value, state: values }) // console.log(value); - }; const onSearch = (value: string) => { console.log('search:', value); @@ -59,7 +57,9 @@ const Serach:React.FC=({getValue})=>{
角色名称
- { + { setValue({ ...value, roleName: e.target.value }) // console.log(value); @@ -69,7 +69,7 @@ const Serach:React.FC=({getValue})=>{
权限字符
- { + { setValue({ ...value, roleKey: e.target.value }) }} />
@@ -78,6 +78,8 @@ const Serach:React.FC=({getValue})=>{ 状态
{ + setSearchValue({ ...searchValue, roleName: e.target.value }); + }} + />
- ) -} \ No newline at end of file +
+
+ 权限字符 +
+ { + setSearchValue({ ...searchValue, roleKey: e.target.value }); + }} + /> +
+
+
+ 状态 +
+ + + + + + + + + + + + + 所有数据权限 + + 自定义数据权限 + 本部门数据权限 + 本部门及以下数据权限 + + + + + + 正常 + + 停用 + + + + {/* */} +
+ 展开 + 全选 + 父子联动 +
+
+ +
+
+ + + {/* 表格 */} +
+ {contextHolder} +
+ pageChange(page, pageSize)} + showTotal={(total) => `共 ${total} 条`} + /> + + + + ); +} diff --git a/src/view/system/role/newadd/index.tsx b/src/view/system/role/newadd/index.tsx index 5790e43..d9ae889 100644 --- a/src/view/system/role/newadd/index.tsx +++ b/src/view/system/role/newadd/index.tsx @@ -1,8 +1,8 @@ import React, { useState, useEffect } from 'react'; -import { Button, Form, Input, Modal, Radio, Tree,InputNumber, message } from 'antd'; +import { Button, Form, Input, Modal, Radio, Tree, InputNumber, message } from 'antd'; import { SyncOutlined } from '@ant-design/icons' import './index.scss' -import { getMenuLiseAPI,addRoleAPI } from '../../../../api/system/role' +import { getMenuLiseAPI, addRoleAPI } from '../../../../api/system/role' import type { DataNode } from 'antd/es/tree' import { Value } from 'sass'; interface Values { @@ -10,7 +10,6 @@ interface Values { description: string; modifier: string; } - interface CollectionCreateFormProps { open: boolean; onCreate: (values: Values) => void; @@ -19,7 +18,7 @@ interface CollectionCreateFormProps { const fieldNames = { key: 'menuId', title: 'menuName', - value:'menuId', + value: 'menuId', children: 'children' } let treeData: any = []; @@ -38,7 +37,7 @@ const CollectionCreateForm: React.FC = ({ setMenulist(menul.data) } catch (error) { console.log(error); - + } } const [expandedKeys, setExpandedKeys] = useState([]); @@ -48,20 +47,18 @@ const CollectionCreateForm: React.FC = ({ const onExpand = (expandedKeysValue: React.Key[]) => { console.log('onExpand', expandedKeysValue); - // if not set autoExpandParent to false, if children expanded, parent can not collapse. - // or, you can remove all expanded children keys. setExpandedKeys(expandedKeysValue); setAutoExpandParent(false); }; const onCheck = (checkedKeysValue: any) => { console.log('onCheck', checkedKeysValue); - form.setFieldsValue({menuIds:checkedKeysValue}) + form.setFieldsValue({ menuIds: checkedKeysValue }) setCheckedKeys(checkedKeysValue); }; const onSelect = (selectedKeysValue: React.Key[], info: any) => { console.log('onSelect', info); - + setSelectedKeys(selectedKeysValue); }; @@ -69,7 +66,6 @@ const CollectionCreateForm: React.FC = ({ getMenuList() // setSelectedKeys([]) }, []) - return ( = ({ form={form} layout="horizontal" name="form_in_modal" - initialValues={ {dataScope:"1",state:"0"} } + initialValues={{ dataScope: "1", state: "0" }} > - + - + @@ -129,51 +125,52 @@ const CollectionCreateForm: React.FC = ({ - {/* */} - + {/* */} + ); }; -const Newadd: React.FC= () => { - const [messageApi,contextHolder]=message.useMessage(); +const Newadd: React.FC = () => { + const [messageApi, contextHolder] = message.useMessage(); const [open, setOpen] = useState(false); - const postAdd=async(value:any)=>{ + const postAdd = async (value: any) => { try { - let {code}=await addRoleAPI(value); + let { code } = await addRoleAPI(value); console.log(code); - - if(code===1000){ + + if (code === 1000) { console.log('success'); + messageApi.open({ + type: 'success', + content: '操作成功', + }); } - else if(code===2000){ + else if (code === 2000) { console.log('重名'); - + } } catch (error) { - + } } const onCreate = (values: any) => { // values.menuIds=[] console.log('Received values of form: ', values); - messageApi.open({ - type: 'success', - content: '操作成功', - }); + postAdd(values) setOpen(false); };