Giter Site home page Giter Site logo

yueyongxidain / drip-table Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jd-opensource/drip-table

0.0 1.0 0.0 454 KB

A tiny and powerful enterprise-class solution for building tables. 轻量、强大的企业级列表解决方案。

Home Page: https://drip-table.jd.com

License: MIT License

TypeScript 90.71% JavaScript 3.98% Shell 1.48% Less 2.91% CSS 0.93%

drip-table's Introduction

Drip Table

English | 简体中文

GitHub license npm version node yarn document PRs Welcome All Contributors

Introduction

DripTable is a solution, launched by JD Retail, for building dynamic tables in mid-and-back end webapp. This project based on React and JSON Schema standard, and is aimed to reduce the difficulty of developing dynamic tables in CMS and improve working efficiency by means of quickly generating dynamic tables in data-driven way.

DripTable contains serval sub projects: drip-table, drip-table-generator, drip-table-driver-antd.

The introduction of each sub-project are as follows:

  • drip-table: the core library of the solution for building dynamic tables. It's main ability is to render a dynamic table automatically when received data which conforms to the JSON Schema standard.

  • drip-table-generator: a visual tool for producing configuration data that meets the JSON Schema standard in order to sent to DripTable for rendering a table and columns.

  • drip-table-driver-antd: a theme package which is composed of antd components and icons.

Problems can be solved

  1. Solve the problem that complicated tables are difficult to add new features and manage existed codes.
  2. Optimize the process of development that there's no need to involve development and release for each change.
  3. Lower the barriers to communication between developers and product managers who built and previewed table to meet requirements by using the visual tool.
  4. Solve the problem that the existing visual tools cannot set columns and customize contents of cells of a table.

Advantages

  1. Efficient: Simplify the process of developing a table and develop columns of a table in a LowCode way;
  2. Configurable: Change tables in simple way by modifying the configuration data that meets the JSON Schema standard;
  3. Visualization: Produce configurations that meet the JSON Schema standard by dragging and dropping components simply with the visual tool.
  4. Free UI framework: Serval theme packages can be used, and custom theme packages are also supported.

Getting Start

DripTable can be divided into two scenes: configuration side and application side. The configuration side is mainly responsible for producing data that meet the JSON Schema standard in visual and LowCode ways. The application side is used to render a table from data configurations.

The application side

  1. Install dependencies

    Install the drip-table and a drip-table theme package at the same time:

    yarn

    yarn add drip-table drip-table-driver-{drivername}

    npm

    npm install --save drip-table drip-table-driver-{drivername}

    Theme packages below are available:

    • drip-table-driver-antd
  2. Import at the entrance of a file

    // import drip-table
    import DripTable from 'drip-table';
    // import a theme package, take antd as an example
    import DripTableDriverAntDesign from 'drip-table-driver-antd';
    // import ant-design css
    import 'antd/dist/antd.css';
    // import drip-table css
    import 'drip-table/dist/index.css';
  3. Use components in pages

    const schema = {
      "$schema": "http://json-schema.org/draft/2019-09/schema#",
      configs: {
        size: 'middle',
      },
      columns: [
        {
          "$id": "id",
          title: 'My Title',
          'ui:type': 'text',
          'ui:props': { mode: 'single' },
          type: 'string',
          dataIndex: 'dataIndexName',
        }
      ]
    };
    return (
      <DripTable driver={DripTableDriverAntDesign} schema={schema} dataSource={[]} />
    );

    Then the application side can be rendered normally, as the sample screenshot below:

    drip-table-demo

The configuration side

  1. Install dependencies

    The configuration side depend on the application side, please make sure that drip-table and drip-table-driver-{drivername} are installed before installing dependencies.

    yarn

    yarn add drip-table-generator

    npm

    npm install --save drip-table-generator
  2. Import at the entrance of a file

    import DripTableGenerator from 'drip-table-generator';
    import 'drip-table-generator/dist/index.css';
  3. Use components in pages

    return <DripTableGenerator />

    Then the configuration side can be rendered normally, as the sample screenshot below:

    drip-table-generator

Contribution

If you're interested in this project, you're welcome to create pull requests. We are appreciated for your star.

development

  1. Clone

  2. Install dependencies

    lerna bootstrap
  3. Run project

    yarn start
    • visit http://localhost:8000
    • drip-table demo page: /drip-table/guide/basic-demo
    • drip-table-generator demo page: /drip-table-generator/preview

For more commands, see DEVELOP .

License

MIT License

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.