前端项目实战肆佰叁拾react-admin和material ui-原始新增弹框代码备份
import { Button, Paper } from '@mui/material' import React, {useEffect, useState } from 'react' import { AutocompleteInput, Create, Datagrid, List, ReferenceInput, SaveButton, SimpleForm, TextField, TextInput, useRefresh } from 'react-admin' import { useFormContext } from 'react-hook-form'; const EditableDatagrid = () => { const [isCreating, setIsCreate] = useState<boolean>(false); const refresh = useRefresh(); const handleCreate = () => { setIsCreate(!isCreating); } const MyButton = () => { const {reset, setFocus} = useFormContext<{code: string, name: string}>(); useEffect(() => { setFocus('code'); }, [setFocus]); return( <div style = {{marginTop: '10px'}}> <SaveButton type = 'button' label = '保存' mutationOptions={{ onSuccess: () => { reset(); window.scrollTo(0, 0); refresh(); setFocus('code'); } }} /> <Button variant = 'contained' sx = {{ml: 2}} onClick={() => setIsCreate(false)}>取消</Button> </div> ) } return ( <div> <List resource = 't_lps_plant' filter={{factory_id: 1}} exporter = {false}> <Datagrid> <TextField source = 'code' label = '车间编码' /> <TextField source = 'name' label = '车间名称' /> <TextField source = 'addr' label = '车间位置' /> <TextField source = 'description' label = '说明' /> </Datagrid> </List> <Paper sx = {{minHeight: '48px', border: '1px solid black'}}> {isCreating && <Create resource='t_lps_plant'> <SimpleForm toolbar = {<></>} > <Paper elevation={0} sx = {{display: 'flex'}}> <ReferenceInput source = 'factory_id' reference='t_lps_factory'> <AutocompleteInput variant='outlined' sx = {{mr: 2}} defaultValue={1} disabled label = '所属工厂' /> </ReferenceInput> <TextInput variant='outlined' sx = {{mr: 2}} source = 'code' label = '车间编码' /> <TextInput variant='outlined' sx = {{mr: 2}} source = 'name' label = '车间名称' /> <TextInput variant='outlined' sx = {{mr: 2}} source = 'addr' label = '车间位置' /> <TextInput variant='outlined' sx = {{mr: 2}} source = 'description' label = '说明' /> <MyButton /> </Paper> </SimpleForm> </Create> } <Button onClick={handleCreate} disabled = {isCreating} variant='contained' sx = {isCreating? { display: 'none'}: {position: 'absolute', right: '200px', fontSize: '16px', mt: '2px'}} > 新建 </Button> </Paper> </div> ) } export default EditableDatagrid
运行结果
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!