树结构标签页,前端开始慌了

    在数据展示不多的情况下,这样直接用antd做好的组件就可以。不清楚是否也有按需加载这样的设计,如果没有,则需要手动去做一个这样的组件,在数据量需展示较多的情况下。

Router配置

          {
            path: '/system/tag',
            name: 'tag',
            component: './System/Tag/Index',
          },

API

export async function fetchAllTag(){
  return request(`${TAG_API}`)
}

API与页面中间层

import {
  fetchAllTag
} from '@/services/system';

export default {

  namespace: 'systemtag',

  state: {
    TagList:[]
  },

  effects: {
    *fetchAll({payload},{call , put}){
      const response = yield call(fetchAllTag);

      yield put({
        type: 'reducersTagList',
        payload: response
      })
    },
  },

  reducers: {
    reducersTagList(state , action){
      const tags = action.payload;
      return {
        ...state,
        TagList: tags.children || []
      }
    }
  }
}

页面

import { PureComponent } from "react";
import { connect } from 'dva';
import PageHeaderWrapper from '@/components/PageHeaderWrapper';
import { Card, Form, Table } from "antd";

@connect(({ systemtag , loading })=>({
  systemtag,
  loading: loading.models.systemtag
}))
@Form.create()
export default class extends PureComponent{

  state={
    visible: false ,
    confirmLoading: false,
    current:{}
  }

  componentDidMount() {
    const { dispatch } = this.props;
    dispatch({
      type: 'systemtag/fetchAll',
    })
  }

  render() {

    const { systemtag: {TagList} , loading } = this.props;

    const columns =[{
      title: "",
      dataIndex:'tagId',
    },{
      title: "名称",
      dataIndex:'tagName',
    }];

    return(
      <PageHeaderWrapper title="标签管理">
        <Card>
          <Table
            columns={columns}
            rowKey={'id'}
            dataSource={TagList}
            loading={loading}
          />
        </Card>
      </PageHeaderWrapper>
    )
  }
}

效果图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡布奇诺-海晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值