react实现添加表单

import './index.less';
import { Button, Tag, Space, Table, Drawer } from "antd"
import { MenuFoldOutlined, BorderInnerOutlined } from "@ant-design/icons"
import { useEffect, useState } from 'react';
import axios from 'axios';
import { history } from "umi"


export default function IndexPage() {
  const [show, setShow] = useState(true)
  const [name, setName] = useState([])
  const [open, setOpen] = useState(false);
  let [idx,setIdx]=useState("")


  let getName = async () => {
    let { data } = await axios.get("http://localhost:3000/name")
    console.log(data);
    if (data.code === 200) {
      setName(data.data)
    }

  }
  useEffect(() => {
    getName()
  }, [])
  const add1 = async () => {
    let number=0
    let ids=name.findIndex(item=>item._id===idx)
    number=name[ids].num
    let { data } = await axios.post('http://localhost:3000/add1', { id:idx,num:number})
    if (data.code === 200) {
      setOpen(false)
      setIdx("")
      getName()
    }
  }

  const columns = [
    {
      title: '表单名称',
      dataIndex: 'ti',
      render: (text) => <a>{text}</a>,
    },
    {
      title: '提交数量',
      dataIndex: 'num',
    },
    {
      title: '操作',
      key: 'action',
      render: (_, record) => (
        <Space size="middle">
          <a>编辑</a>
          <a>删除</a>
          <a onClick={
            ()=>{
              setIdx(record._id)
              setOpen(true)
            }
            }>预览</a>
        </Space>
      ),
    },
  ];
  return (
    <div className='app'>
      <div className='header'>
        <MenuFoldOutlined
          onClick={() => { setShow(true) }}
          style={{ marginRight: '20px', fontSize: '20px' }} />
        <BorderInnerOutlined
          onClick={() => { setShow(false) }}
          style={{ marginRight: '20px', fontSize: '20px' }} />
        <input type="text" placeholder='请输入表单名称' />
        <Button type="primary"
          onClick={() => { history.push('/add') }}
        >新建表单</Button>
      </div>

      <Table dataSource={name} columns={columns}
        className={`table ${show ? '' : 'visible1'}`}
      />
      <div className={`data ${!show ? 'visible' : ''}`}
      >
        {
          name.map(item => (
            <div className='x' key={item._id}>
              <div className='xa'>{item.ti}</div>
              <div className='xb'>{item.num}个数据</div>
            </div>
          ))
        }
      </div>
      <Drawer title="Basic Drawer" placement="right" onClose={() => setOpen(false)} open={open}>
        <Button onClick={add1}>提交</Button>
      </Drawer>
    </div>
  );
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值