会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132428个问题
WEB前端全系列/第一阶段:HTML5+CSS3模块/表单 32648楼

import React, { Component } from 'react'

import {Button,Card,Table,Space} from 'antd'

import { PlusOutlined } from '@ant-design/icons'

import { Panel } from '../../../components'

import { connect } from 'react-redux'

import ModalFrom from './ModalForm'




class Menu extends Component {

  constructor(props){

    super(props);

    this.state = {

      dataSource:[]

    }

  }



  onGetlist=()=>{

    global.service.get('/api/menu/list').then(data=>{

      console.log(data);

      this.setState({dataSource:data.records})

    })

  }


  componentDidMount(){

    this.onGetlist()

  }


  onAdd=(record) =>{

    //打开弹窗

    return ()=>{

      this.props.dispatch({

            type:'showModalForm',

            data:{

              title:'新增', //弹窗标题

              data:record?{name:record.name,pid:record.id}:{},//表单数据

              refreshList:this.onGetlist

            }

          })

    }

   

  }


  getTableProps = () =>{

    return {

      colums:[

        {

          title:'菜单',

          dataIndex:'name',

        },

        {

          title:'访问地址',

          dataIndex:'linkUrl',

        },

        {

          title:'操作',

          render:(record) =>(

            <Space>

              <a>查看</a>

              <a>编辑</a>

              <a>删除</a>

              <a onClick={this.onAdd}>新增</a>

            </Space>

          )

        }

      ],

      dataSource:this.state.dataSource||[],

      rowKey:'id',

      pagination:false

    }

  }



  render() {

    const {modalFrom} = this.props.menuState;

    return (

        <Panel title='菜单管理'>

            <div className='m-operate'>

            <Button type='primary' icon={<PlusOutlined/>} onClick={this.onAdd()}>新增</Button>

        </div>

        <Card>

            {/* 列表组件 */}

            <Table {...this.getTableProps()}/>

        </Card>

        {modalFrom&&<ModalFrom {...modalFrom} {...this.props}/>}

        </Panel>

       

    )

  }

}



const mapStateToProps = (store) =>({menuState:store.menu})

const mapDispatchToProps = (dispatch) =>({dispatch})


export default connect(mapStateToProps,mapDispatchToProps)(Menu)





WEB前端全系列/第十六阶段:React企业级项目/企业级后台管理系统 32649楼
WEB前端全系列/第五阶段:前后端交互/PHP、数据库编程与设计 32651楼
Python 全系列/第四阶段:函数式编程和核心特性/生成器和装饰器 32652楼
JAVA 全系列/第十三阶段:高性能数据处理、NoSQL、分库分表/Redis 32654楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637