前端项目实战肆佰叁拾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

运行结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值