8000 GitHub - yunsii/antd-curd: 📦 基于 ant design 〠dva 〠antd-form-mate 的增删改查页é¢ç»„件。
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

📦 基于 ant design 〠dva 〠antd-form-mate 的增删改查页é¢ç»„件。

License

Notifications You must be signed in to change notification settings

yunsii/antd-curd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

antd-curd

基于 ant design 〠dva〠antd-form-mate 的增删改查页é¢ç»„件。

GitHub license npm Version GitHub stars GitHub issues GitHub commit activity

在线预览 ->

由于没有打包å‘布的ç»éªŒï¼Œæ‰€ä»¥åœ¨ 2.0.0 之å‰çš„版本除了一些未知的 bug 外,å¯èƒ½ä¼šå­˜åœ¨ä¸€äº›å…¼å®¹æ€§é—®é¢˜ã€‚æ­¤æ¬¡é‡æž„到 2.0.0 åŽï¼Œç§»é™¤äº†ä¾èµ– antd-form-mate 。åŽç»­å‘包当慎é‡èµ·è§ã€‚

ç»“åˆ dva 的使用说明

组件内部调用以下 effect 函数:

  • fetch èŽ·å–æ•°æ®åˆ—表
  • detail 获å–对象详情
  • create 创建对象
  • update 更新对象
  • delete 删除对象

以下 reducer 函数:

  • _saveDetail 关闭弹窗时,清空对象详情

并注入以下数æ®å­—段:

  • data 形如 { list: any[], pagination: any }, 分页器属性å‚考 Pagination 组件
  • detail [å¯é€‰]对象详情字段

基于此å°è£…了 dva-base-models,é…置相关请求函数å³å¯ä½¿ç”¨ã€‚å‚考 Demo 。

关于表å•

通过 ConfigProvider 组件é…ç½® createFormItemsFn ,组件内部关于创建表å•的地方都会调用该方法,å¯ç›´æŽ¥ä»Ž antd-form-mate 导出 createFormItems ä¼ å…¥å³å¯ã€‚

基于 ant-deisgn-pro-v2 中的 StandardTable 组件。

  • é»˜è®¤å¼€å¯ hideOnSinglePage
  • 间隔行ç€è‰²
  • 多选功能å¯é€‰ï¼Œé€šè¿‡ checkable 控制

与 StandardTable ç±»ä¼¼ï¼Œåªæ˜¯å°†å®¹å™¨ä»Ž Table 替æ¢ä¸º List ,并自定义组件(比如 Card ï¼‰æ¸²æŸ“æ¯æ¡è®°å½•。支æŒå¤šé€‰ã€‚

API

傿•° 说明 类型 默认值
renderItem 用于自定义渲染组件 ({ record, actions, recordSelection, checkable }) => React.ReactNode -

DetailDrawer 详情抽屉

基于 antd-form-mate å®žçŽ°çš„è¯¦æƒ…è¡¨å•æŠ½å±‰ï¼Œå‚æ•°å®šä¹‰å¯å‚è§ DetailFormDrawer/index.tsx 。开å¯é˜²æŠ–。

DetailModal è¯¦æƒ…æ¨¡æ€æ¡†

基于 antd-form-mate å®žçŽ°çš„è¯¦æƒ…æ¨¡æ€æ¡†ï¼Œå‚数定义å¯å‚è§ DetailFormModal/index.tsx 。开å¯é˜²æŠ–。

QueryPanel æŸ¥è¯¢é¢æ¿

K1ousP.png

基于 antd-form-mate å®žçŽ°çš„æŸ¥è¯¢é¢æ¿ç»„件,具体实现å¯å‚考 QueryPanel/index.tsx ,åªéœ€ä¼ å…¥è¡¨å•é…置和 onSearch 方法å³å¯ä½¿ç”¨ã€‚åŒæ—¶æä¾›äº†é‡ç½®è¡¨å•åŽçš„ onReset 函数。

为包å«åœ¨ Curd 中的å­ç»„件注入 __curd__ 的实例属性

state 中ä¿å­˜äº†å½“å‰é¡µé¢çš„æŸ¥è¯¢å‚数:

  • searchForm è¡¨å•æ•°æ®
  • searchParams 分页器,过滤器,排åºå™¨å‚æ•°

还有一个 handleSearch 方法å¯ä¾›ç›´æŽ¥ï¼ˆ innerRef ï¼‰è°ƒèµ·å½ 8000 “å‰é¡µé¢æ•°æ®æŸ¥è¯¢æŽ¥å£ä»¥ä¾›åˆ·æ–°æ•°æ®ä½¿ç”¨ã€‚

API

傿•° 说明 类型 默认值
modelName dva 中 model çš„å称空间 string -
data å¯¹è±¡åˆ†é¡µæ•°æ® { list: T[]; pagination?: any } -
dipatch dva 注入的 dispatch 函数 Function -
wrapper 组件被包裹的容器,默认为无边框 Card React.ComponentClass | null -
createFormItemsFn 创建表å•项的函数 (form: WrappedFormUtils) => (itemsConfig: ItemConfig[], formLayout?: Layout) => JSX.Element[] () => () => ([])

æŸ¥è¯¢é¢æ¿ç»„件。

通过 __curd__ 实例属性为 Curd 组件更新 searchForm 。

如果需è¦ä¸»åŠ¨ä¸º Curd.Query 组件的表å•赋值,通过 ref 方法拿到 Curd.Query 的实例,å†é€šè¿‡ ref.form 拿到表å•对象å³å¯ã€‚

å¦å¤–,如果需è¦å¤–部直接调起新的æœç´¢ï¼Œå¯é€šè¿‡ ref 拿到对象实例åŽè°ƒç”¨ setFieldsValueAndSearch 并传入查询表å•å³å¯è°ƒèµ·æœç´¢ï¼Œè‡ªåŠ¨æ¸…ç©ºæœªè¾“å…¥çš„å€¼ã€‚

API

傿•° 说明 类型 默认值
queryArgsConfig æŸ¥è¯¢å‚æ•°é…置,å‚考 index.js any[] []

为包å«åœ¨ CurdBox 中的å­ç»„件注入 __curdBox__ 的实例属性

通过 __curd__ 实例属性为 Curd 组件更新 searchParams 。

增删改查容器,为å­ç»„ä»¶æä¾›å¯¹è±¡ç›¸å…³è¯¦æƒ…的展示和编辑弹窗,以åŠå¯¹è±¡æ“作相关的增删改等æ“作( Actions )。

API

傿•° 说明 类型 默认值
createTitle 新建窗å£åç§° string '新建对象'
detailTitle 详情窗å£åç§° string '对象详情'
updateTitle 编辑窗å£åç§° string '编辑对象'
fetchLoading 请求列表 loading boolean -
createLoading 创建 model loading boolean -
detailLoading 请求 model 详情 loading boolean -
updateLoading æ›´æ–° model loading boolean -
deleteLoading 删除 model loading boolean -
createButtonName 新建按钮å称,为空时éšè—按钮 string | false '新建'
popup 弹窗类型 'modal' | 'drawer' -
popupProps 弹窗é…ç½®ï¼Œæ ¹æ® popup é…ç½® CustomDetailFormDrawerProps | CustomDetailFormModalProps -
setFormItemsConfig é…ç½®è¡¨å•æ•°æ® (detail: {}, mode: 'create' | 'detail' | 'update', form) => any[] -
afterPopupClose 关闭弹窗åŽå›žè°ƒå‡½æ•° () => void -
interceptors 拦截器 interceptors -
detail model 详情 any -
actionsConfig 表格é…ç½® [actionsConfig](#actionsConfig) | false | null -
showOperators 是å¦å±•示æ“ä½œæ  boolean -
extraOperators 扩展类似新增按钮的æ“ä½œæ  JSX.Element[] -
dipatch dva 注入的 dispatch 函数 Function -
autoFetch æ¸²æŸ“åŽæ˜¯å¦è‡ªåЍå‘起请求,如果需è¦é…ç½®é¢å¤–çš„æŸ¥è¯¢å‚æ•°ï¼Œå¯ç½®ä¸º false 手动自定义å‘èµ·åˆå§‹åŒ–请求 boolean true
reSearchAfterUpdate æ›´æ–° model 是å¦è‡ªåŠ¨åˆ·æ–°åˆ—è¡¨ boolean false
__curd__ 控制 Curd 相关属性 Curd 实例 -

interceptors

傿•° 说明 类型 默认值
updateFieldsValue è¡¨å•æ•°æ®æ‹¦æˆªå¤„ç†ï¼Œç±»ä¼¼æ—¶é—´åŒºé—´è¿™æ ·çš„æ•°æ®ï¼Œéœ€è¦å•独处ç†åŽå†æäº¤ (fieldsValue: any, mode?: 'create' | 'update') => any -
handleCreateClick 新建点击事件拦截 () => boolean | undefined -
handleDetailClick 详情点击事件拦截,å¯é€šè¿‡è·¯ç”±è·³è½¬åˆ°è‡ªå®šä¹‰çš„å¯¹è±¡è¯¦æƒ…é¡µé¢ (record: any) => boolean | undefined -
handleUpdateClick 编辑点击事件拦截 (record: any) => boolean | undefined -
handleDeleteClick 删除点击事件拦截 (record: any) => void -
handleFilterAndSort 过滤器和排åºå™¨å¤„ç†ï¼Œå¯ç”¨äºŽä½¿è¿‡æ»¤å™¨å’Œåˆ†é¡µå™¨å—控 (filtersArg: Record<keyof any, string[]>, sorter: SorterResult<any>, extra?: TableCurrentDataSource<any>) => any -

actionsConfig

傿•° 说明 类型 默认值
showActionsCount 除更多外需è¦å±•示的æ“作个数 number 3
extraActions 除 详情(4),编辑(8),删除(12) 外,å¯è‡ªè¡Œé…ç½®é¢å¤–æ“作。注æ„,数字是æ“作的 key ï¼Œæ ¹æ® key ä¸åŒï¼Œä¼šæŒ‰å‡åºæŽ’列 ActionType -
confirmKeys 需è¦å¼¹å‡ºç¡®è®¤çª—å£çš„ key 数组 (number | [number, (record?: any) => string])[] [12]
confirmProps é¢å¤–çš„ Popconfirm é…ç½® PopconfirmProps -
hideActions éšè—æ“作的 key 数组 number[] | ((record?: any) => void | number[]) -
disabledActions ç¦ç”¨æ“作的 key 数组 (record?: any) => void | number[] -
detailActionTitle 详情 action åç§° string '详情'
updateActionTitle 编辑 action åç§° string '编辑'
deleteActionTitle 删除 action åç§° string '删除'

注æ„事项

  • handle**Click 事件(除 handleDeleteClick 事件外, handleDeleteClick 直接中断)默认ä¸ä¼šä¸­æ–­åŽç»­æµç¨‹ï¼Œå¦‚果需è¦ä¸­æ–­ï¼Œ return true å³å¯ã€‚
  • 如果对象详情ä¸éœ€è¦å†è¯·æ±‚接å£ï¼Œä¸æ³¨å…¥ detail 或者 detailLoading å³å¯ã€‚

K1oKqf.png

ç”± CurdBox å°è£… StandardTable 而æˆã€‚

K1oldS.png

ç”± CurdBox å°è£… StandardList 而æˆã€‚

Demo

About

📦 基于 ant design 〠dva 〠antd-form-mate 的增删改查页é¢ç»„件。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  
0