{"id":15862079,"url":"https://github.com/afeiship/react-ant-abstract-curd","last_synced_at":"2026-05-09T01:02:24.478Z","repository":{"id":64594788,"uuid":"241250359","full_name":"afeiship/react-ant-abstract-curd","owner":"afeiship","description":"Antd abstract curd.","archived":false,"fork":false,"pushed_at":"2023-07-29T01:43:03.000Z","size":8970,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T22:55:50.444Z","etag":null,"topics":["abstract","ant","curd","rails","react"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/afeiship.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-02-18T02:03:02.000Z","updated_at":"2023-10-01T06:43:18.000Z","dependencies_parsed_at":"2024-10-23T01:03:17.262Z","dependency_job_id":null,"html_url":"https://github.com/afeiship/react-ant-abstract-curd","commit_stats":null,"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afeiship%2Freact-ant-abstract-curd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afeiship%2Freact-ant-abstract-curd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afeiship%2Freact-ant-abstract-curd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/afeiship%2Freact-ant-abstract-curd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/afeiship","download_url":"https://codeload.github.com/afeiship/react-ant-abstract-curd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246709935,"owners_count":20821298,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstract","ant","curd","rails","react"],"created_at":"2024-10-05T22:24:20.618Z","updated_at":"2026-05-09T01:02:24.443Z","avatar_url":"https://github.com/afeiship.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# react-ant-abstract-curd\n\u003e Antd abstract curd.\n\n[![version][version-image]][version-url]\n[![license][license-image]][license-url]\n[![size][size-image]][size-url]\n[![download][download-image]][download-url]\n\n## installation\n```shell\nnpm install -S @jswork/react-ant-abstract-curd\n```\n\n## usage\n1. import css\n  ```scss\n  @import \"~@jswork/react-ant-abstract-curd/dist/style.css\";\n\n  // or use sass\n  @import \"~@jswork/react-ant-abstract-curd/dist/style.scss\";\n\n  // customize your styles:\n  $react-ant-abstract-curd-options: ()\n  ```\n2. import js\n  ```js\n  import * as React from 'react';\n  import * as ReactDOM from 'react-dom';\n  import { Card, Space } from 'antd';\n  import { UnorderedListOutlined } from '@ant-design/icons';\n  import ReactAntAbstractCurd from '@jswork/react-ant-abstract-curd';\n  import '../../src/components/style.scss';\n  import './style.css';\n  import EventMitt from '@jswork/event-mitt';\n  import nx from '@jswork/next';\n  import '@jswork/next-param';\n  import '@jswork/next-ant-column';\n\n  // http://localhost:3000/#/?page=1\u0026size=10\n\n  class ApiService {\n    static repos_index(inData) {\n      var url = nx.param(inData, 'https://jsonplaceholder.typicode.com/posts');\n      return fetch(url).then((res) =\u003e res.json());\n    }\n\n    static repos_destroy(inData): Promise\u003cany\u003e {\n      return new Promise((resolve) =\u003e {\n        console.log('call destroy api', inData);\n        resolve(inData);\n      });\n    }\n  }\n\n  class RouteService {\n    static push(inUrl) {\n      console.log('push to:', inUrl);\n    }\n  }\n\n  /**\n   * apiService: nx.$api\n   * eventService: nx.$event\n   * routeService: nx.$route\n   * engineType: nx.$local | nx.$session\n   */\n\n  class Index extends ReactAntAbstractCurd {\n    apiService = ApiService; // nx.$api\n    routeService = RouteService; // nx.$route\n    eventService = nx.mix(this, EventMitt); // nx.$app\n    resources = 'repos';\n    searchable = true;\n    pagination = {\n      page: 'page',\n      size: 'per_page',\n      total: 'total'\n    };\n\n    get fields() {\n      return [\n        nx.antColumn('ID', 'id'),\n        nx.antColumn('title', 'title'),\n        nx.antColumn('body', 'body', (text) =\u003e String(text)),\n        nx.antColumn('uid', 'userId')\n      ];\n    }\n\n    setResponse(res) {\n      return {\n        rows: res,\n        total: 100\n      };\n    }\n\n    get titleView() {\n      return (\n        \u003cSpace\u003e\n          \u003cUnorderedListOutlined /\u003e\n          \u003cspan\u003e列表管理\u003c/span\u003e\n        \u003c/Space\u003e\n      );\n    }\n\n    render() {\n      return (\n        \u003cCard title={this.titleView} className=\"m10 react-ant-abstract-curd\" extra={this.extraView}\u003e\n          {this.table()}\n        \u003c/Card\u003e\n      );\n    }\n  }\n\n  ReactDOM.render(\u003cIndex /\u003e, document.getElementById('root'));\n\n  ```\n\n## preview\n- https://afeiship.github.io/react-ant-abstract-curd/\n\n## license\nCode released under [the MIT license](https://github.com/afeiship/react-ant-abstract-curd/blob/master/LICENSE.txt).\n\n[version-image]: https://img.shields.io/npm/v/@jswork/react-ant-abstract-curd\n[version-url]: https://npmjs.org/package/@jswork/react-ant-abstract-curd\n\n[license-image]: https://img.shields.io/npm/l/@jswork/react-ant-abstract-curd\n[license-url]: https://github.com/afeiship/react-ant-abstract-curd/blob/master/LICENSE.txt\n\n[size-image]: https://img.shields.io/bundlephobia/minzip/@jswork/react-ant-abstract-curd\n[size-url]: https://github.com/afeiship/react-ant-abstract-curd/blob/master/dist/react-ant-abstract-curd.min.js\n\n[download-image]: https://img.shields.io/npm/dm/@jswork/react-ant-abstract-curd\n[download-url]: https://www.npmjs.com/package/@jswork/react-ant-abstract-curd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafeiship%2Freact-ant-abstract-curd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafeiship%2Freact-ant-abstract-curd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafeiship%2Freact-ant-abstract-curd/lists"}