amis 1.10.1-beta.0 → 1.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. package/lib/Schema.d.ts +1 -1
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/Avatar.d.ts +10 -10
  4. package/lib/components/ListGroup.d.ts +10 -10
  5. package/lib/components/Range.js +8 -2
  6. package/lib/components/Range.js.map +2 -2
  7. package/lib/components/ResultBox.d.ts +41 -40
  8. package/lib/components/ResultBox.js +23 -19
  9. package/lib/components/ResultBox.js.map +2 -2
  10. package/lib/components/Select.js +5 -3
  11. package/lib/components/Select.js.map +2 -2
  12. package/lib/components/Steps.d.ts +1 -0
  13. package/lib/components/Steps.js +8 -6
  14. package/lib/components/Steps.js.map +2 -2
  15. package/lib/components/condition-builder/index.d.ts +12 -2
  16. package/lib/components/condition-builder/index.js +40 -4
  17. package/lib/components/condition-builder/index.js.map +2 -2
  18. package/lib/components/formula/Editor.js +1 -1
  19. package/lib/components/formula/Editor.js.map +2 -2
  20. package/lib/components/formula/VariableList.js +2 -2
  21. package/lib/components/formula/VariableList.js.map +2 -2
  22. package/lib/components/table/index.d.ts +9 -7
  23. package/lib/components/table/index.js +102 -102
  24. package/lib/components/table/index.js.map +2 -2
  25. package/lib/helper.css.map +1 -1
  26. package/lib/index.d.ts +1 -0
  27. package/lib/index.js +2 -1
  28. package/lib/index.js.map +2 -2
  29. package/lib/renderers/Action.js +18 -11
  30. package/lib/renderers/Action.js.map +2 -2
  31. package/lib/renderers/ButtonGroup.d.ts +2 -2
  32. package/lib/renderers/ButtonGroup.js.map +1 -1
  33. package/lib/renderers/CRUD.js +2 -2
  34. package/lib/renderers/CRUD.js.map +2 -2
  35. package/lib/renderers/CRUD2.d.ts +213 -0
  36. package/lib/renderers/CRUD2.js +724 -0
  37. package/lib/renderers/CRUD2.js.map +13 -0
  38. package/lib/renderers/Card2.d.ts +1 -1
  39. package/lib/renderers/Card2.js +1 -2
  40. package/lib/renderers/Card2.js.map +2 -2
  41. package/lib/renderers/Cards.d.ts +3 -0
  42. package/lib/renderers/Cards.js +52 -5
  43. package/lib/renderers/Cards.js.map +2 -2
  44. package/lib/renderers/Form/ConditionBuilder.d.ts +10 -0
  45. package/lib/renderers/Form/ConditionBuilder.js +6 -2
  46. package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
  47. package/lib/renderers/Form/DiffEditor.d.ts +66 -20
  48. package/lib/renderers/Form/Editor.d.ts +66 -20
  49. package/lib/renderers/Form/Item.d.ts +4 -0
  50. package/lib/renderers/Form/Item.js +1 -1
  51. package/lib/renderers/Form/Item.js.map +2 -2
  52. package/lib/renderers/Form/TreeSelect.d.ts +0 -1
  53. package/lib/renderers/Form/TreeSelect.js +1 -9
  54. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  55. package/lib/renderers/Form/index.js +8 -4
  56. package/lib/renderers/Form/index.js.map +2 -2
  57. package/lib/renderers/Icon.d.ts +1 -1
  58. package/lib/renderers/Icon.js +13 -8
  59. package/lib/renderers/Icon.js.map +2 -2
  60. package/lib/renderers/Table/index.d.ts +1 -0
  61. package/lib/renderers/Table/index.js +19 -5
  62. package/lib/renderers/Table/index.js.map +2 -2
  63. package/lib/renderers/Table-v2/index.d.ts +8 -5
  64. package/lib/renderers/Table-v2/index.js +83 -54
  65. package/lib/renderers/Table-v2/index.js.map +2 -2
  66. package/lib/store/combo.d.ts +72 -22
  67. package/lib/store/crud.d.ts +2 -0
  68. package/lib/store/crud.js +21 -1
  69. package/lib/store/crud.js.map +2 -2
  70. package/lib/store/form.d.ts +30 -9
  71. package/lib/store/form.js +28 -10
  72. package/lib/store/form.js.map +2 -2
  73. package/lib/store/formItem.d.ts +3 -1
  74. package/lib/store/formItem.js +3 -5
  75. package/lib/store/formItem.js.map +2 -2
  76. package/lib/store/list.d.ts +2 -0
  77. package/lib/store/list.js +8 -0
  78. package/lib/store/list.js.map +2 -2
  79. package/lib/store/table.d.ts +60 -18
  80. package/lib/themes/ang-ie11.css +166 -19
  81. package/lib/themes/ang.css +166 -19
  82. package/lib/themes/ang.css.map +1 -1
  83. package/lib/themes/antd-ie11.css +166 -19
  84. package/lib/themes/antd.css +166 -19
  85. package/lib/themes/antd.css.map +1 -1
  86. package/lib/themes/cxd-ie11.css +166 -19
  87. package/lib/themes/cxd.css +166 -19
  88. package/lib/themes/cxd.css.map +1 -1
  89. package/lib/themes/dark-ie11.css +166 -19
  90. package/lib/themes/dark.css +166 -19
  91. package/lib/themes/dark.css.map +1 -1
  92. package/lib/themes/default-ie11.css +166 -19
  93. package/lib/themes/default.css +166 -19
  94. package/lib/themes/default.css.map +1 -1
  95. package/lib/types.d.ts +1 -1
  96. package/lib/types.js.map +1 -1
  97. package/lib/utils/icon.js +7 -0
  98. package/lib/utils/icon.js.map +2 -2
  99. package/package.json +1 -1
  100. package/schema.json +28 -25
  101. package/scss/_mixins.scss +1 -1
  102. package/scss/components/_condition-builder.scss +11 -0
  103. package/scss/components/_crud.scss +8 -3
  104. package/scss/components/_crud2.scss +148 -0
  105. package/scss/components/_result-box.scss +27 -8
  106. package/scss/components/_steps.scss +21 -26
  107. package/scss/components/_table-v2.scss +1 -3
  108. package/scss/components/form/_select.scss +4 -0
  109. package/scss/themes/_common.scss +1 -0
  110. package/sdk/ang-ie11.css +203 -20
  111. package/sdk/ang.css +203 -20
  112. package/sdk/antd-ie11.css +203 -20
  113. package/sdk/antd.css +203 -20
  114. package/sdk/barcode.js +51 -51
  115. package/sdk/charts.js +14 -14
  116. package/sdk/codemirror.js +7 -7
  117. package/sdk/color-picker.js +65 -65
  118. package/sdk/cropperjs.js +2 -2
  119. package/sdk/cxd-ie11.css +203 -20
  120. package/sdk/cxd.css +203 -20
  121. package/sdk/dark-ie11.css +203 -20
  122. package/sdk/dark.css +203 -20
  123. package/sdk/exceljs.js +1 -1
  124. package/sdk/helper.css.map +1 -1
  125. package/sdk/markdown.js +69 -69
  126. package/sdk/papaparse.js +1 -1
  127. package/sdk/renderers/Form/CityDB.js +1 -1
  128. package/sdk/rest.js +16 -16
  129. package/sdk/rich-text.js +62 -62
  130. package/sdk/sdk-ie11.css +203 -20
  131. package/sdk/sdk.css +203 -20
  132. package/sdk/sdk.js +1344 -1340
  133. package/sdk/thirds/hls.js/hls.js +1 -1
  134. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  135. package/sdk/tinymce.js +57 -57
  136. package/src/Schema.ts +1 -0
  137. package/src/components/Range.tsx +14 -7
  138. package/src/components/ResultBox.tsx +65 -54
  139. package/src/components/Select.tsx +6 -5
  140. package/src/components/Steps.tsx +60 -18
  141. package/src/components/condition-builder/index.tsx +107 -8
  142. package/src/components/formula/Editor.tsx +1 -1
  143. package/src/components/formula/VariableList.tsx +2 -2
  144. package/src/components/table/index.tsx +190 -193
  145. package/src/index.tsx +1 -0
  146. package/src/renderers/Action.tsx +22 -11
  147. package/src/renderers/ButtonGroup.tsx +2 -2
  148. package/src/renderers/CRUD.tsx +2 -1
  149. package/src/renderers/CRUD2.tsx +1213 -0
  150. package/src/renderers/Card2.tsx +2 -3
  151. package/src/renderers/Cards.tsx +55 -10
  152. package/src/renderers/Form/ConditionBuilder.tsx +19 -2
  153. package/src/renderers/Form/Item.tsx +11 -1
  154. package/src/renderers/Form/TreeSelect.tsx +14 -16
  155. package/src/renderers/Form/index.tsx +11 -2
  156. package/src/renderers/Icon.tsx +8 -1
  157. package/src/renderers/Table/index.tsx +21 -5
  158. package/src/renderers/Table-v2/index.tsx +92 -72
  159. package/src/store/crud.ts +23 -1
  160. package/src/store/form.ts +31 -24
  161. package/src/store/formItem.ts +65 -52
  162. package/src/store/list.ts +10 -0
  163. package/src/types.ts +2 -1
  164. package/src/utils/icon.tsx +9 -0
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Table-v2/index.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {isAlive} from 'mobx-state-tree';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\n\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {Renderer, RendererProps} from '../../factory';\nimport {Action} from '../../types';\nimport Table, {SortProps} from '../../components/table';\nimport {BaseSchema, SchemaObject, SchemaTokenizeableString} from '../../Schema';\nimport {\n isObject,\n anyChanged,\n difference,\n createObject,\n autobind\n} from '../../utils/helper';\nimport {\n resolveVariableAndFilter,\n isPureVariable,\n resolveVariable\n} from '../../utils/tpl-builtin';\nimport {evalExpression, filter} from '../../utils/tpl';\nimport {isEffectiveApi} from '../../utils/api';\nimport Checkbox from '../../components/Checkbox';\nimport {BadgeSchema} from '../../components/Badge';\nimport {Icon} from '../../components/icons';\nimport {TableStoreV2, ITableStore, IColumn, IRow} from '../../store/table-v2';\n\nimport {HeadCellSearchDropDown} from './HeadCellSearchDropdown';\nimport './TableCell';\nimport './ColumnToggler';\n\n/**\n * Table 表格v2渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/table-v2\n */\n\nexport interface CellSpan {\n colIndex: number;\n rowIndex: number;\n colSpan?: number;\n rowSpan?: number;\n}\n\nexport interface RenderProps {\n colSpan?: number;\n rowSpan?: number;\n}\n\nexport interface ColumnSchema {\n /**\n * 指定列唯一标识\n */\n key: string;\n\n /**\n * 指定列标题\n */\n title: string | SchemaObject;\n\n /**\n * 指定列内容渲染器\n */\n type?: string;\n\n /**\n * 指定行合并表达式\n */\n rowSpanExpr?: string;\n\n /**\n * 指定列合并表达式\n */\n colSpanExpr?: string;\n\n /**\n * 表头分组\n */\n children?: Array<ColumnSchema>;\n\n /**\n * 可复制\n */\n copyable?: boolean;\n\n /**\n * 列表头提示\n */\n remark?: string;\n\n /**\n * 快速搜索\n */\n searchable?: boolean | SchemaObject;\n\n /**\n * 快速排序\n */\n sorter?: boolean;\n\n /**\n * 内容居左、居中、居右\n */\n align?: string;\n\n /**\n * 是否固定在左侧/右侧\n */\n fixed?: boolean | string;\n\n /**\n * 当前列是否展示\n */\n toggled?: boolean;\n\n /**\n * 列样式\n */\n className?: string;\n \n /**\n * 表头单元格样式\n */\n titleClassName?: string;\n\n /**\n * 单元格样式\n */\n classNameExpr?: string;\n}\n\nexport interface RowSelectionOptionsSchema {\n /**\n * 选择类型 选择全部\n */\n key: string; // 选择类型 目前只支持all、invert、none、odd、even\n\n /**\n * 选项显示文本\n */\n text: string;\n}\n\nexport interface RowSelectionSchema {\n /**\n * 选择类型 单选/多选\n */\n type: string;\n\n /**\n * 对应数据源的key值\n */\n keyField?: string;\n\n /**\n * 行是否禁用表达式\n */\n disableOn?: string;\n\n /**\n * 自定义选择菜单\n */\n selections?: Array<RowSelectionOptionsSchema>;\n\n /**\n * 已选择的key值\n */\n selectedRowKeys?: Array<string | number>;\n\n /**\n * 已选择的key值表达式\n */\n selectedRowKeysExpr?: string;\n\n /**\n * 已选择的key值表达式\n */\n columnWidth?: number;\n\n /**\n * 是否点击行触发选中或取消选中\n */\n rowClick?: boolean;\n}\n\nexport interface ExpandableSchema {\n /**\n * 对应数据源的key值\n */\n keyField: string;\n\n /**\n * 行是否可展开表达式\n */\n expandableOn: string;\n\n /**\n * 展开行自定义样式表达式\n */\n expandedRowClassNameExpr: string;\n\n /**\n * 已展开的key值\n */\n expandedRowKeys: Array<string | number>;\n\n /**\n * 已展开的key值表达式\n */\n expandedRowKeysExpr: string;\n}\n\nexport interface TableSchemaV2 extends BaseSchema {\n /**\n * 指定为表格类型\n */\n type: 'table-v2';\n\n /**\n * 表格标题\n */\n title?: string | SchemaObject | Array<SchemaObject>;\n\n /**\n * 表格数据源\n */\n source: SchemaTokenizeableString;\n\n /**\n * 表格可自定义列\n */\n columnsTogglable?: boolean;\n\n /**\n * 表格列配置\n */\n columns: Array<ColumnSchema>;\n\n /**\n * 表格可选择配置\n */\n rowSelection?: RowSelectionSchema;\n\n /**\n * 表格行可展开配置\n */\n expandable?: ExpandableSchema;\n\n /**\n * 表格行可展开内容配置\n */\n expandableBody?: Array<SchemaObject>;\n\n /**\n * 粘性头部\n */\n sticky?: boolean;\n\n /**\n * 加载中\n */\n loading?: boolean | string | SchemaObject;\n\n /**\n * 行角标\n */\n itemBadge?: BadgeSchema;\n\n /**\n * 指定挂载dom\n */\n popOverContainer?: any;\n\n /**\n * 嵌套展开记录的唯一标识\n */\n keyField?: string;\n\n /**\n * 数据源嵌套自定义字段名\n */\n childrenColumnName?: string;\n\n /**\n * 自定义行样式\n */\n rowClassNameExpr?: string;\n\n /**\n * 是否固定内容行高度\n */\n lineHeight?: string;\n\n /**\n * 是否展示边框\n */\n bordered?: boolean;\n\n /**\n * 是否展示表头\n */\n showHeader?: boolean;\n\n /**\n * 自定义表格样式\n */\n className?: string;\n\n /**\n * 指定表尾\n */\n footer?: string | SchemaObject | Array<SchemaObject>;\n}\n\nexport type TableV2RendererEvent =\n | 'selected'\n | 'columnSort'\n | 'columnFilter'\n | 'columnSearch'\n | 'columnToggled'\n | 'dragOver';\n\nexport type TableV2RendererAction = 'selectAll' | 'clearAll' | 'select';\n\nexport interface TableV2Props extends RendererProps {\n title?: string;\n source?: string;\n store: ITableStore;\n togglable: boolean;\n}\n\n@Renderer({\n type: 'table-v2',\n storeType: TableStoreV2.name,\n name: 'table-v2',\n isolateScope: true\n})\nexport default class TableRenderer extends React.Component<\n TableV2Props,\n object\n> {\n static contextType = ScopedContext;\n\n renderedToolbars: Array<string> = [];\n control: any;\n\n constructor(props: TableV2Props, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n\n this.handleColumnToggle = this.handleColumnToggle.bind(this);\n this.getPopOverContainer = this.getPopOverContainer.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleQuickChange = this.handleQuickChange.bind(this);\n this.handleSave = this.handleSave.bind(this);\n this.controlRef = this.controlRef.bind(this);\n\n const {store, columnsTogglable, columns} = props;\n\n store.update({columnsTogglable, columns});\n TableRenderer.syncRows(store, props, undefined) && this.syncSelected();\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n controlRef(control: any) {\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n this.control = control;\n }\n\n syncSelected() {\n const {store, onSelect} = this.props;\n\n onSelect &&\n onSelect(\n store.selectedRows.map(item => item.data),\n store.unSelectedRows.map(item => item.data)\n );\n }\n\n static syncRows(\n store: ITableStore,\n props: TableV2Props,\n prevProps?: TableV2Props\n ) {\n const source = props.source;\n const value = props.value || props.items;\n let rows: Array<object> = [];\n let updateRows = false;\n\n if (\n Array.isArray(value) &&\n (!prevProps || (prevProps.value || prevProps.items) !== value)\n ) {\n updateRows = true;\n rows = value;\n } else if (typeof source === 'string') {\n const resolved = resolveVariableAndFilter(source, props.data, '| raw');\n const prev = prevProps\n ? resolveVariableAndFilter(source, prevProps.data, '| raw')\n : null;\n\n if (prev && prev === resolved) {\n updateRows = false;\n } else if (Array.isArray(resolved)) {\n updateRows = true;\n rows = resolved;\n }\n }\n updateRows &&\n store.initRows(\n rows,\n props.getEntryId,\n props.reUseRow,\n props.childrenColumnName\n );\n\n let selectedRowKeys: Array<string | number> = [];\n // selectedRowKeysExpr比selectedRowKeys优先级高\n if (props.rowSelection && props.rowSelection.selectedRowKeysExpr) {\n rows.forEach((row: any, index: number) => {\n const flag = evalExpression(props.rowSelection.selectedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag) {\n selectedRowKeys.push(row[props?.rowSelection?.keyField || 'key']);\n }\n });\n } else if (props.rowSelection && props.rowSelection.selectedRowKeys) {\n selectedRowKeys = [...props.rowSelection.selectedRowKeys];\n }\n\n if (updateRows && selectedRowKeys.length > 0) {\n store.updateSelected(selectedRowKeys, props.rowSelection.keyField);\n }\n\n let expandedRowKeys: Array<string | number> = [];\n if (props.expandable && props.expandable.expandedRowKeysExpr) {\n rows.forEach((row: any, index: number) => {\n const flag = evalExpression(props.expandable.expandedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag) {\n expandedRowKeys.push(row[props?.expandable?.keyField || 'key']);\n }\n });\n } else if (props.expandable && props.expandable.expandedRowKeys) {\n expandedRowKeys = [...props.expandable.expandedRowKeys];\n }\n\n if (updateRows && expandedRowKeys.length > 0) {\n store.updateExpanded(expandedRowKeys, props.expandable.keyField);\n }\n\n return updateRows;\n }\n\n componentDidUpdate(prevProps: TableV2Props) {\n const props = this.props;\n const store = props.store;\n\n if (anyChanged(['columnsTogglable'], prevProps, props)) {\n store.update({\n columnsTogglable: props.columnsTogglable\n });\n }\n\n if (\n anyChanged(['source', 'value', 'items'], prevProps, props) ||\n (!props.value &&\n !props.items &&\n (props.data !== prevProps.data ||\n (typeof props.source === 'string' && isPureVariable(props.source))))\n ) {\n TableRenderer.syncRows(store, props, prevProps) && this.syncSelected();\n }\n\n if (!isEqual(prevProps.columns, props.columns)) {\n store.update({\n columns: props.columns\n });\n }\n }\n\n getPopOverContainer() {\n return findDOMNode(this);\n }\n\n renderCellSchema(schema: any, props: any) {\n const {render} = this.props;\n\n // Table Cell SchemaObject转化成ReactNode\n if (schema && isObject(schema)) {\n // 在TableCell里会根据width设置div的width\n // 原来的table td/th是最外层标签 设置width没问题\n // v2的拆开了 就不需要再设置div的width了\n // 否则加上padding 就超出单元格的区域了\n // children属性在schema里是一个关键字 在渲染器schema中 自定义的children没有用 去掉\n const {width, children, ...rest} = schema;\n return render(\n 'cell-field',\n {\n ...rest,\n type: 'cell-field',\n column: rest,\n data: props.data,\n name: schema.key\n },\n props\n );\n }\n\n return schema;\n }\n\n renderSchema(key: string, schema: any, props?: any) {\n const {render} = this.props;\n\n // Header、Footer等SchemaObject转化成ReactNode\n if (schema && isObject(schema)) {\n return render(key || 'field', {...schema, data: props.data}, props);\n } else if (Array.isArray(schema)) {\n const renderers: Array<any> = [];\n schema.forEach((s, i) =>\n renderers.push(\n render(\n key || 'field',\n {\n ...s,\n data: props.data\n },\n {...props, key: i}\n )\n )\n );\n return renderers;\n }\n\n return schema;\n }\n // editor传来的处理过的column 还可能包含其他字段\n buildColumns(columns: Array<any>) {\n const {\n env,\n render,\n store,\n popOverContainer,\n canAccessSuperData,\n showBadge,\n itemBadge,\n classnames: cx\n } = this.props;\n\n const cols: Array<any> = [];\n const rowSpans: Array<CellSpan> = [];\n const colSpans: Array<CellSpan> = [];\n\n Array.isArray(columns) &&\n columns.forEach((column, col) => {\n const clone = {...column} as any;\n\n let titleSchema: any = null;\n const titleProps = {\n popOverContainer: popOverContainer || this.getPopOverContainer,\n value: column.title\n };\n if (isObject(column.title)) {\n titleSchema = cloneDeep(column.title);\n } else if (typeof column.title === 'string') {\n titleSchema = {type: 'plain'};\n }\n\n const titleRender = (children: any) => {\n const content = this.renderCellSchema(titleSchema, titleProps);\n\n let remark = null;\n if (column.remark) {\n remark = render('remark', {\n type: 'remark',\n tooltip: column.remark,\n container:\n env && env.getModalContainer ? env.getModalContainer : undefined\n });\n }\n\n return (\n <div\n key={col}\n className={cx('Table-head-cell-wrapper', {\n [`${column.className}`]: !!column.className,\n [`${column.titleClassName}`]: !!column.titleClassName\n })}>\n {content}\n {remark}\n {children}\n </div>\n );\n };\n\n Object.assign(clone, {\n title: titleRender\n });\n\n // 设置了type值 就完全按渲染器处理了\n if (column.type) {\n Object.assign(clone, {\n render: (\n text: string,\n record: any,\n rowIndex: number,\n colIndex: number\n ) => {\n const props: RenderProps = {};\n const item = store.getRowByIndex(rowIndex);\n const obj = {\n children: this.renderCellSchema(column, {\n data: item.locals,\n value: column.key\n ? resolveVariable(\n column.key,\n canAccessSuperData ? item.locals : item.data\n )\n : column.key,\n popOverContainer:\n popOverContainer || this.getPopOverContainer,\n onQuickChange: (\n values: object,\n saveImmediately?: boolean,\n savePristine?: boolean,\n resetOnFailed?: boolean\n ) => {\n this.handleQuickChange(\n item,\n values,\n saveImmediately,\n savePristine,\n resetOnFailed\n );\n },\n row: item,\n showBadge,\n itemBadge\n }),\n props\n };\n if (column.rowSpanExpr) {\n const rowSpan = +filter(column.rowSpanExpr, {\n record,\n rowIndex,\n colIndex\n });\n if (rowSpan) {\n obj.props.rowSpan = rowSpan;\n rowSpans.push({colIndex, rowIndex, rowSpan});\n }\n }\n\n if (column.colSpanExpr) {\n const colSpan = +filter(column.colSpanExpr, {\n record,\n rowIndex,\n colIndex\n });\n if (colSpan) {\n obj.props.colSpan = colSpan;\n colSpans.push({colIndex, rowIndex, colSpan});\n }\n }\n\n rowSpans.forEach(item => {\n if (\n colIndex === item.colIndex &&\n rowIndex > item.rowIndex &&\n rowIndex < item.rowIndex + (item.rowSpan || 0)\n ) {\n obj.props.rowSpan = 0;\n }\n });\n\n colSpans.forEach(item => {\n if (\n rowIndex === item.rowIndex &&\n colIndex > item.colIndex &&\n colIndex < item.colIndex + (item.colSpan || 0)\n ) {\n obj.props.colSpan = 0;\n }\n });\n\n return obj;\n }\n });\n }\n\n // 设置了单元格样式\n if (column.classNameExpr) {\n clone.className = (record: any, rowIndex: number) => {\n const className = filter(column.classNameExpr, {record, rowIndex});\n return `${className}${column.className ? ` ${column.className}` : ''}`;\n };\n }\n\n // 设置了列搜索\n if (column.searchable) {\n clone.filterDropdown = (\n <HeadCellSearchDropDown\n {...this.props}\n popOverContainer={this.getPopOverContainer}\n name={column.key}\n searchable={column.searchable}\n orderBy={store.orderBy}\n orderDir={store.order}\n data={store.query}\n key={'th-search-' + col}\n store={store}\n />\n );\n }\n\n if (column.children) {\n clone.children = this.buildColumns(column.children);\n }\n\n cols.push(clone);\n });\n\n return cols;\n }\n\n buildSummary(key: string, summary: Array<any>) {\n const result: Array<any> = [];\n if (Array.isArray(summary)) {\n summary.forEach((s, index) => {\n if (isObject(s)) {\n result.push({\n colSpan: s.colSpan,\n fixed: s.fixed,\n render: (dataSouce: Array<any>) =>\n this.renderSchema(key, s, {\n data: dataSouce\n })\n });\n } else if (Array.isArray(s)) {\n if (!result[index]) {\n result.push([]);\n }\n s.forEach(d => {\n result[index].push({\n colSpan: d.colSpan,\n fixed: d.fixed,\n render: (dataSouce: Array<any>) =>\n this.renderSchema(key, d, {\n data: dataSouce\n })\n });\n });\n }\n });\n }\n\n return result.length ? result : null;\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n handleSave(\n rows: Array<object> | object,\n diff: Array<object> | object,\n indexes: Array<string>,\n unModifiedItems?: Array<any>,\n rowsOrigin?: Array<object> | object,\n resetOnFailed?: boolean\n ) {\n const {\n store,\n quickSaveApi,\n quickSaveItemApi,\n primaryField,\n env,\n messages,\n reload\n } = this.props;\n\n if (Array.isArray(rows)) {\n if (!isEffectiveApi(quickSaveApi)) {\n env && env.alert('TableV2 quickSaveApi is required');\n return;\n }\n\n const data: any = createObject(store.data, {\n rows,\n rowsDiff: diff,\n indexes: indexes,\n rowsOrigin\n });\n\n if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {\n data.ids = rows\n .map(item => (item as any)[primaryField || 'id'])\n .join(',');\n }\n\n if (unModifiedItems) {\n data.unModifiedItems = unModifiedItems;\n }\n\n store\n .saveRemote(quickSaveApi, data, {\n successMessage: messages && messages.saveFailed,\n errorMessage: messages && messages.saveSuccess\n })\n .then(() => {\n reload && this.reloadTarget(reload, data);\n })\n .catch(() => {});\n } else {\n if (!isEffectiveApi(quickSaveItemApi)) {\n env && env.alert('TableV2 quickSaveItemApi is required!');\n return;\n }\n\n const data = createObject(store.data, {\n item: rows,\n modified: diff,\n origin: rowsOrigin\n });\n\n const sendData = createObject(data, rows);\n store\n .saveRemote(quickSaveItemApi, sendData)\n .then(() => {\n reload && this.reloadTarget(reload, data);\n })\n .catch(() => {\n resetOnFailed && this.control.reset();\n });\n }\n }\n\n handleQuickChange(\n item: IRow,\n values: object,\n saveImmediately?: boolean | any,\n savePristine?: boolean,\n resetOnFailed?: boolean\n ) {\n if (!isAlive(item)) {\n return;\n }\n\n const {onSave, onPristineChange, primaryField, quickSaveItemApi} =\n this.props;\n\n item.change(values, savePristine);\n\n // 值发生变化了,需要通过 onSelect 通知到外面,否则会出现数据不同步的问题\n item.modified && this.syncSelected();\n\n if (savePristine) {\n onPristineChange?.(item.data, item.path);\n return;\n }\n\n if (saveImmediately && saveImmediately.api) {\n this.props.onAction(\n null,\n {\n actionType: 'ajax',\n api: saveImmediately.api\n },\n values\n );\n return;\n }\n\n onSave\n ? onSave(\n item.data,\n difference(item.data, item.pristine, ['id', primaryField]),\n item.path,\n undefined,\n item.pristine,\n resetOnFailed\n )\n : this.handleSave(\n quickSaveItemApi ? item.data : [item.data],\n difference(item.data, item.pristine, ['id', primaryField]),\n [item.path],\n undefined,\n item.pristine,\n resetOnFailed\n );\n }\n\n async handleColumnToggle(columns: Array<IColumn>) {\n const {dispatchEvent, data, store} = this.props;\n\n const rendererEvent = await dispatchEvent(\n 'columnToggled',\n createObject(data, {\n columns\n })\n );\n\n if (rendererEvent?.prevented) {\n return;\n }\n\n store.update({columns});\n }\n\n renderColumnsToggler() {\n const {\n className,\n store,\n render,\n classPrefix: ns,\n classnames: cx,\n ...rest\n } = this.props;\n const __ = rest.translate;\n const env = rest.env;\n\n if (!store.toggable) {\n return null;\n }\n\n const children = store.toggableColumns.map((column, index) => (\n <li\n className={cx('ColumnToggler-menuItem')}\n key={'toggable-li-' + index}\n onClick={column.toggleToggle}\n >\n <Checkbox\n key={'toggable-select' + index}\n size=\"sm\"\n classPrefix={ns}\n checked={column.toggled}\n >\n {column.title ? render('tpl', column.title) : null}\n </Checkbox>\n </li>\n ));\n\n return render(\n 'column-toggler',\n {\n type: 'column-toggler'\n },\n {\n isActived: store.hasColumnHidden(),\n columns: store.columnsData,\n onColumnToggle: this.handleColumnToggle,\n children\n }\n );\n }\n\n handleAction(e: React.UIEvent<any>, action: Action, ctx: object) {\n const {onAction} = this.props;\n\n // todo\n onAction(e, action, ctx);\n }\n\n renderActions(region: string) {\n let {actions, render, store, classnames: cx, data} = this.props;\n\n actions = Array.isArray(actions) ? actions.concat() : [];\n\n if (\n store.toggable &&\n region === 'header' &&\n !~this.renderedToolbars.indexOf('columns-toggler')\n ) {\n actions.push({\n type: 'button',\n children: this.renderColumnsToggler()\n });\n }\n\n return Array.isArray(actions) && actions.length ? (\n <div className={cx('Table-toolbar')}>\n {actions.map((action, key) =>\n render(\n `action/${key}`,\n {\n type: 'button',\n ...(action as any)\n },\n {\n onAction: this.handleAction,\n key,\n btnDisabled: store.dragging,\n data: store.getData(data)\n }\n )\n )}\n </div>\n ) : null;\n }\n\n @autobind\n async handleSelected(\n selectedRows: Array<any>,\n selectedRowKeys: Array<string | number>,\n unSelectedRows: Array<string | number>\n ) {\n const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;\n const rendererEvent = await dispatchEvent(\n 'selectedChange',\n createObject(data, {\n selectedItems: selectedRows,\n unSelectedItems: unSelectedRows\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n store.updateSelected(selectedRowKeys, rowSelection.keyField);\n onSelect && onSelect(selectedRows, unSelectedRows);\n }\n\n @autobind\n async handleSort(payload: SortProps) {\n const {dispatchEvent, data, onSort} = this.props;\n const rendererEvent = await dispatchEvent(\n 'columnSort',\n createObject(data, {\n orderBy: payload.orderBy,\n orderDir: payload.order\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onSort && onSort(payload);\n }\n\n @autobind\n async handleFilter(payload: {\n filterName: string,\n filterValue: string\n }) {\n const {dispatchEvent, data, onFilter} = this.props;\n const rendererEvent = await dispatchEvent(\n 'columnFilter',\n createObject(data, payload)\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onFilter && onFilter(payload);\n }\n\n @autobind\n async handleRowClick(event: React.ChangeEvent<any>, rowItem: any, rowIndex?: number) {\n const {dispatchEvent, data, onRow} = this.props;\n\n const rendererEvent = await dispatchEvent(\n 'rowClick',\n createObject(data, {rowItem})\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n if (rowItem && onRow) {\n onRow.onRowClick && onRow.onRowClick(event, rowItem, rowIndex);\n }\n }\n\n @autobind\n async handleOrderChange(oldIndex: number, newIndex: number, levels: Array<string>) {\n const {store} = this.props;\n const rowItem = store.getRowByIndex(oldIndex, levels);\n\n store.exchange(oldIndex, newIndex, rowItem);\n }\n\n @autobind\n async handleSaveOrder() {\n const {store, onSaveOrder, data, dispatchEvent} = this.props;\n\n const movedItems = store.movedRows.map(item => item.data);\n const items = store.rows.map(item => item.getDataWithModifiedChilden());\n\n const rendererEvent = await dispatchEvent(\n 'orderChange',\n createObject(data, {movedItems})\n );\n\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!onSaveOrder || !store.movedRows.length) {\n return;\n }\n\n onSaveOrder(\n movedItems,\n items\n );\n }\n\n @autobind\n reset() {\n const {store} = this.props;\n\n store.reset();\n }\n\n doAction(action: Action, args: any, throwErrors: boolean): any {\n const {store, rowSelection, data} = this.props;\n\n const actionType = action?.actionType as string;\n const keyField = rowSelection?.keyField;\n\n switch (actionType) {\n case 'selectAll':\n store.updateSelectedAll(keyField);\n break;\n case 'clearAll':\n store.updateSelected([], keyField);\n break;\n case 'select':\n const dataSource = store.getData(data);\n const selected: Array<any> = [];\n dataSource.items.forEach((item: any, rowIndex: number) => {\n const flag = evalExpression(args?.selectedRowKeysExpr, {record: item, rowIndex});\n if (flag) {\n selected.push(item[keyField]);\n }\n });\n store.updateSelected(selected, keyField);\n break;\n default:\n break;\n }\n }\n\n renderTable() {\n const {\n render,\n title,\n footer,\n rowSelection,\n columns,\n expandable,\n expandableBody,\n footSummary,\n headSummary,\n loading,\n classnames: cx,\n placeholder,\n rowClassNameExpr,\n itemActions,\n onRow,\n store,\n ...rest\n } = this.props;\n\n let expandableConfig: any = null;\n if (expandable) {\n const {expandedRowKeys, ...rest} = expandable;\n\n expandableConfig = {\n expandedRowKeys: store.currentExpandedKeys,\n ...rest\n };\n\n if (expandable.expandableOn) {\n expandableConfig.rowExpandable = (record: any, rowIndex: number) =>\n evalExpression(expandable.expandableOn, {record, rowIndex});\n delete expandableConfig.expandableOn;\n }\n\n if (expandableBody && expandableBody.length > 0) {\n expandableConfig.expandedRowRender = (record: any, rowIndex: number) =>\n this.renderSchema('expandableBody', expandableBody, {data: record});\n }\n\n if (expandable.expandedRowClassNameExpr) {\n expandableConfig.expandedRowClassName = (\n record: any,\n rowIndex: number\n ) => filter(expandable.expandedRowClassNameExpr, {record, rowIndex});\n delete expandableConfig.expandedRowClassNameExpr;\n }\n }\n\n let rowSelectionConfig: any = null;\n if (rowSelection) {\n const {selectedRowKeys, selections, ...rest} = rowSelection;\n rowSelectionConfig = {\n selectedRowKeys: store.currentSelectedRowKeys,\n ...rest\n };\n\n if (rowSelection.disableOn) {\n const disableOn = rowSelection.disableOn;\n\n rowSelectionConfig.getCheckboxProps = (\n record: any,\n rowIndex: number\n ) => ({\n disabled: evalExpression(disableOn, {record, rowIndex})\n });\n\n delete rowSelectionConfig.disableOn;\n }\n\n if (selections && Array.isArray(selections)) {\n rowSelectionConfig.selections = [];\n\n selections.forEach((item: RowSelectionOptionsSchema) => {\n rowSelectionConfig.selections.push({\n key: item.key,\n text: item.text,\n onSelect: (changableRowKeys: Array<string | number>) => {\n let newSelectedRowKeys = [];\n newSelectedRowKeys = changableRowKeys.filter((key, index) => {\n if (item.key === 'all') {\n return true;\n }\n if (item.key === 'none') {\n return false;\n }\n if (item.key === 'invert') {\n return !store.currentSelectedRowKeys.includes(key);\n }\n // 奇数行\n if (item.key === 'odd') {\n if (index % 2 !== 0) {\n return false;\n }\n return true;\n }\n // 偶数行\n if (item.key === 'even') {\n if (index % 2 !== 0) {\n return true;\n }\n return false;\n }\n return true;\n });\n store.updateSelected(newSelectedRowKeys, rowSelection.keyField);\n }\n });\n });\n }\n }\n\n let rowClassName = undefined;\n // 设置了行样式\n if (rowClassNameExpr) {\n rowClassName = (record: any, rowIndex: number) => {\n return filter(rowClassNameExpr, {record, rowIndex});\n };\n }\n\n let itemActionsConfig = undefined;\n if (itemActions) {\n const finalActions = Array.isArray(itemActions)\n ? itemActions.filter(action => !action.hiddenOnHover)\n : [];\n\n if (!finalActions.length) {\n return null;\n }\n\n itemActionsConfig = (record: any, rowIndex: number) => {\n return (\n <div className={cx('Table-itemActions')}>\n {finalActions.map((action, index) =>\n render(\n `itemAction/${index}`,\n {\n ...(action as any),\n isMenuItem: true\n },\n {\n key: index,\n item: record,\n data: record,\n rowIndex\n }\n )\n )}\n </div>\n );\n };\n }\n\n return (\n <Table\n {...rest}\n title={this.renderSchema('title', title, {data: this.props.data})}\n footer={this.renderSchema('footer', footer, {data: this.props.data})}\n columns={this.buildColumns(store.filteredColumns)}\n dataSource={store.dataSource}\n rowSelection={rowSelectionConfig}\n rowClassName={rowClassName}\n expandable={expandableConfig}\n footSummary={this.buildSummary('footSummary', footSummary)}\n headSummary={this.buildSummary('headSummary', headSummary)}\n loading={this.renderSchema('loading', loading)}\n placeholder={this.renderSchema('placeholder', placeholder)}\n onSelect={this.handleSelected}\n onSelectAll={this.handleSelected}\n onSort={this.handleSort}\n onFilter={this.handleFilter}\n onDrag={this.handleOrderChange}\n itemActions={itemActionsConfig}\n onRow={{\n ...onRow,\n onRowClick: this.handleRowClick\n }}\n ></Table>\n );\n }\n\n renderHeading() {\n let {\n store,\n classnames: cx,\n headingClassName,\n translate: __\n } = this.props;\n\n if (store.moved) {\n return (\n <div className={cx('Table-heading', headingClassName)} key=\"heading\">\n {\n store.moved ? (\n <span>\n {__('Table.moved', {\n moved: store.moved\n })}\n <button\n type=\"button\"\n className={cx('Button Button--xs Button--success m-l-sm')}\n onClick={this.handleSaveOrder}\n >\n <Icon icon=\"check\" className=\"icon m-r-xs\" />\n {__('Form.submit')}\n </button>\n <button\n type=\"button\"\n className={cx('Button Button--xs Button--danger m-l-sm')}\n onClick={this.reset}\n >\n <Icon icon=\"close\" className=\"icon m-r-xs\" />\n {__('Table.discard')}\n </button>\n </span>\n ) : null\n }\n </div>\n );\n }\n\n return null;\n }\n\n render() {\n const {classnames: cx} = this.props;\n\n this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了\n \n const heading = this.renderHeading();\n\n return (\n <div className={cx('Table-render-wrapper')}>\n {this.renderActions('header')}\n {heading}\n {this.renderTable()}\n </div>\n );\n }\n}\n"
11
+ "import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {isAlive} from 'mobx-state-tree';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\n\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {Renderer, RendererProps} from '../../factory';\nimport {Action} from '../../types';\nimport Table, {SortProps} from '../../components/table';\nimport {BaseSchema, SchemaObject, SchemaTokenizeableString} from '../../Schema';\nimport {\n isObject,\n anyChanged,\n difference,\n createObject,\n autobind\n} from '../../utils/helper';\nimport {\n resolveVariableAndFilter,\n isPureVariable,\n resolveVariable\n} from '../../utils/tpl-builtin';\nimport {evalExpression, filter} from '../../utils/tpl';\nimport {isEffectiveApi} from '../../utils/api';\nimport Checkbox from '../../components/Checkbox';\nimport {BadgeSchema} from '../../components/Badge';\nimport {Icon} from '../../components/icons';\nimport {TableStoreV2, ITableStore, IColumn, IRow} from '../../store/table-v2';\n\nimport {HeadCellSearchDropDown} from './HeadCellSearchDropdown';\nimport './TableCell';\nimport './ColumnToggler';\n\n/**\n * Table 表格v2渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/table-v2\n */\n\nexport interface CellSpan {\n colIndex: number;\n rowIndex: number;\n colSpan?: number;\n rowSpan?: number;\n}\n\nexport interface RenderProps {\n colSpan?: number;\n rowSpan?: number;\n}\n\nexport interface ColumnSchema {\n /**\n * 指定列唯一标识\n */\n key: string;\n\n /**\n * 指定列标题\n */\n title: string | SchemaObject;\n\n /**\n * 指定列内容渲染器\n */\n type?: string;\n\n /**\n * 指定行合并表达式\n */\n rowSpanExpr?: string;\n\n /**\n * 指定列合并表达式\n */\n colSpanExpr?: string;\n\n /**\n * 表头分组\n */\n children?: Array<ColumnSchema>;\n\n /**\n * 可复制\n */\n copyable?: boolean;\n\n /**\n * 列表头提示\n */\n remark?: string;\n\n /**\n * 快速搜索\n */\n searchable?: boolean | SchemaObject;\n\n /**\n * 快速排序\n */\n sorter?: boolean;\n\n /**\n * 内容居左、居中、居右\n */\n align?: string;\n\n /**\n * 是否固定在左侧/右侧\n */\n fixed?: boolean | string;\n\n /**\n * 当前列是否展示\n */\n toggled?: boolean;\n\n /**\n * 列样式\n */\n className?: string;\n\n /**\n * 表头单元格样式\n */\n titleClassName?: string;\n\n /**\n * 单元格样式\n */\n classNameExpr?: string;\n}\n\nexport interface RowSelectionOptionsSchema {\n /**\n * 选择类型 选择全部\n */\n key: string; // 选择类型 目前只支持all、invert、none、odd、even\n\n /**\n * 选项显示文本\n */\n text: string;\n}\n\nexport interface RowSelectionSchema {\n /**\n * 选择类型 单选/多选\n */\n type: string;\n\n /**\n * 对应数据源的key值\n */\n keyField?: string;\n\n /**\n * 行是否禁用表达式\n */\n disableOn?: string;\n\n /**\n * 自定义选择菜单\n */\n selections?: Array<RowSelectionOptionsSchema>;\n\n /**\n * 已选择的key值\n */\n selectedRowKeys?: Array<string | number>;\n\n /**\n * 已选择的key值表达式\n */\n selectedRowKeysExpr?: string;\n\n /**\n * 已选择的key值表达式\n */\n columnWidth?: number;\n\n /**\n * 是否点击行触发选中或取消选中\n */\n rowClick?: boolean;\n}\n\nexport interface ExpandableSchema {\n /**\n * 对应渲染器类型\n */\n type: string;\n /**\n * 对应数据源的key值\n */\n keyField: string;\n\n /**\n * 行是否可展开表达式\n */\n expandableOn: string;\n\n /**\n * 展开行自定义样式表达式\n */\n expandedRowClassNameExpr: string;\n\n /**\n * 已展开的key值\n */\n expandedRowKeys: Array<string | number>;\n\n /**\n * 已展开的key值表达式\n */\n expandedRowKeysExpr: string;\n}\n\nexport interface TableSchemaV2 extends BaseSchema {\n /**\n * 指定为表格类型\n */\n type: 'table-v2';\n\n /**\n * 表格标题\n */\n title?: string | SchemaObject | Array<SchemaObject>;\n\n /**\n * 表格数据源\n */\n source: SchemaTokenizeableString;\n\n /**\n * 表格可自定义列\n */\n columnsTogglable?: boolean;\n\n /**\n * 表格列配置\n */\n columns: Array<ColumnSchema>;\n\n /**\n * 表格可选择配置\n */\n rowSelection?: RowSelectionSchema;\n\n /**\n * 表格行可展开配置\n */\n expandable?: ExpandableSchema;\n\n /**\n * 粘性头部\n */\n sticky?: boolean;\n\n /**\n * 加载中\n */\n loading?: boolean | string | SchemaObject;\n\n /**\n * 行角标\n */\n itemBadge?: BadgeSchema;\n\n /**\n * 指定挂载dom\n */\n popOverContainer?: any;\n\n /**\n * 嵌套展开记录的唯一标识\n */\n keyField?: string;\n\n /**\n * 数据源嵌套自定义字段名\n */\n childrenColumnName?: string;\n\n /**\n * 自定义行样式\n */\n rowClassNameExpr?: string;\n\n /**\n * 是否固定内容行高度\n */\n lineHeight?: string;\n\n /**\n * 是否展示边框\n */\n bordered?: boolean;\n\n /**\n * 是否展示表头\n */\n showHeader?: boolean;\n\n /**\n * 自定义表格样式\n */\n className?: string;\n\n /**\n * 指定表尾\n */\n footer?: string | SchemaObject | Array<SchemaObject>;\n}\n\nexport type TableV2RendererEvent =\n | 'selected'\n | 'columnSort'\n | 'columnFilter'\n | 'columnSearch'\n | 'columnToggled'\n | 'dragOver';\n\nexport type TableV2RendererAction = 'selectAll' | 'clearAll' | 'select';\n\nexport interface TableV2Props extends RendererProps {\n title?: string;\n source?: string;\n store: ITableStore;\n togglable: boolean;\n}\n\nexport default class TableV2 extends React.Component<TableV2Props, object> {\n static contextType = ScopedContext;\n\n renderedToolbars: Array<string> = [];\n control: any;\n\n constructor(props: TableV2Props, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n\n this.handleColumnToggle = this.handleColumnToggle.bind(this);\n this.getPopOverContainer = this.getPopOverContainer.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleQuickChange = this.handleQuickChange.bind(this);\n this.handleSave = this.handleSave.bind(this);\n this.controlRef = this.controlRef.bind(this);\n\n const {store, columnsTogglable, columns} = props;\n\n store.update({columnsTogglable, columns});\n TableV2.syncRows(store, props, undefined) && this.syncSelected();\n }\n\n componentWillUnmount() {\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n controlRef(control: any) {\n // 因为 control 有可能被 n 层 hoc 包裹。\n while (control && control.getWrappedInstance) {\n control = control.getWrappedInstance();\n }\n\n this.control = control;\n }\n\n syncSelected() {\n const {store, onSelect} = this.props;\n\n onSelect &&\n onSelect(\n store.selectedRows.map(item => item.data),\n store.unSelectedRows.map(item => item.data)\n );\n }\n\n static syncRows(\n store: ITableStore,\n props: TableV2Props,\n prevProps?: TableV2Props\n ) {\n const source = props.source;\n const value = props.value || props.items;\n let rows: Array<object> = [];\n let updateRows = false;\n\n if (\n Array.isArray(value) &&\n (!prevProps || (prevProps.value || prevProps.items) !== value)\n ) {\n updateRows = true;\n rows = value;\n } else if (typeof source === 'string') {\n const resolved = resolveVariableAndFilter(source, props.data, '| raw');\n const prev = prevProps\n ? resolveVariableAndFilter(source, prevProps.data, '| raw')\n : null;\n\n if (prev && prev === resolved) {\n updateRows = false;\n } else if (Array.isArray(resolved)) {\n updateRows = true;\n rows = resolved;\n }\n }\n updateRows &&\n store.initRows(\n rows,\n props.getEntryId,\n props.reUseRow,\n props.childrenColumnName\n );\n\n let selectedRowKeys: Array<string | number> = [];\n // selectedRowKeysExpr比selectedRowKeys优先级高\n if (props.rowSelection && props.rowSelection.selectedRowKeysExpr) {\n rows.forEach((row: any, index: number) => {\n const flag = evalExpression(props.rowSelection.selectedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag) {\n selectedRowKeys.push(row[props?.rowSelection?.keyField || 'key']);\n }\n });\n } else if (props.rowSelection && props.rowSelection.selectedRowKeys) {\n selectedRowKeys = [...props.rowSelection.selectedRowKeys];\n }\n\n if (updateRows && selectedRowKeys.length > 0) {\n store.updateSelected(selectedRowKeys, props.rowSelection.keyField);\n }\n\n let expandedRowKeys: Array<string | number> = [];\n if (props.expandable && props.expandable.expandedRowKeysExpr) {\n rows.forEach((row: any, index: number) => {\n const flag = evalExpression(props.expandable.expandedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag) {\n expandedRowKeys.push(row[props?.expandable?.keyField || 'key']);\n }\n });\n } else if (props.expandable && props.expandable.expandedRowKeys) {\n expandedRowKeys = [...props.expandable.expandedRowKeys];\n }\n\n if (updateRows && expandedRowKeys.length > 0) {\n store.updateExpanded(expandedRowKeys, props.expandable.keyField);\n }\n\n return updateRows;\n }\n\n componentDidUpdate(prevProps: TableV2Props) {\n const props = this.props;\n const store = props.store;\n\n if (anyChanged(['columnsTogglable'], prevProps, props)) {\n store.update({\n columnsTogglable: props.columnsTogglable\n });\n }\n\n if (\n anyChanged(['source', 'value', 'items'], prevProps, props) ||\n (!props.value &&\n !props.items &&\n (props.data !== prevProps.data ||\n (typeof props.source === 'string' && isPureVariable(props.source))))\n ) {\n TableV2.syncRows(store, props, prevProps) && this.syncSelected();\n }\n\n if (!isEqual(prevProps.columns, props.columns)) {\n store.update({\n columns: props.columns\n });\n }\n }\n\n getPopOverContainer() {\n return findDOMNode(this);\n }\n\n renderCellSchema(schema: any, props: any) {\n const {render} = this.props;\n\n // Table Cell SchemaObject转化成ReactNode\n if (schema && isObject(schema)) {\n // 在TableCell里会根据width设置div的width\n // 原来的table td/th是最外层标签 设置width没问题\n // v2的拆开了 就不需要再设置div的width了\n // 否则加上padding 就超出单元格的区域了\n // children属性在schema里是一个关键字 在渲染器schema中 自定义的children没有用 去掉\n const {width, children, ...rest} = schema;\n return render(\n 'cell-field',\n {\n ...rest,\n type: 'cell-field',\n column: rest,\n data: props.data,\n name: schema.key\n },\n props\n );\n }\n\n return schema;\n }\n\n renderSchema(key: string, schema: any, props?: any) {\n const {render} = this.props;\n\n // Header、Footer等SchemaObject转化成ReactNode\n if (schema && isObject(schema)) {\n return render(key || 'field', {...schema, data: props.data}, props);\n } else if (Array.isArray(schema)) {\n const renderers: Array<any> = [];\n schema.forEach((s, i) =>\n renderers.push(\n render(\n key || 'field',\n {\n ...s,\n data: props.data\n },\n {...props, key: i}\n )\n )\n );\n return renderers;\n }\n\n return schema;\n }\n // editor传来的处理过的column 还可能包含其他字段\n buildColumns(columns: Array<any>) {\n const {\n env,\n render,\n store,\n popOverContainer,\n canAccessSuperData,\n showBadge,\n itemBadge,\n classnames: cx\n } = this.props;\n\n const cols: Array<any> = [];\n const rowSpans: Array<CellSpan> = [];\n const colSpans: Array<CellSpan> = [];\n\n Array.isArray(columns) &&\n columns.forEach((column, col) => {\n const clone = {...column} as any;\n\n let titleSchema: any = null;\n const titleProps = {\n popOverContainer: popOverContainer || this.getPopOverContainer,\n value: column.title\n };\n if (isObject(column.title)) {\n titleSchema = cloneDeep(column.title);\n } else if (typeof column.title === 'string') {\n titleSchema = {type: 'plain'};\n }\n\n const titleRender = (children: any) => {\n const content = this.renderCellSchema(titleSchema, titleProps);\n\n let remark = null;\n if (column.remark) {\n remark = render('remark', {\n type: 'remark',\n tooltip: column.remark,\n container:\n env && env.getModalContainer ? env.getModalContainer : undefined\n });\n }\n\n return (\n <div\n key={col}\n className={cx('Table-head-cell-wrapper', {\n [`${column.className}`]: !!column.className,\n [`${column.titleClassName}`]: !!column.titleClassName\n })}\n >\n {content}\n {remark}\n {children}\n </div>\n );\n };\n\n Object.assign(clone, {\n title: titleRender\n });\n\n // 设置了type值 就完全按渲染器处理了\n if (column.type) {\n Object.assign(clone, {\n render: (\n text: string,\n record: any,\n rowIndex: number,\n colIndex: number\n ) => {\n const props: RenderProps = {};\n const item = store.getRowByIndex(rowIndex) || {};\n const obj = {\n children: this.renderCellSchema(column, {\n data: item.locals,\n value: column.key\n ? resolveVariable(\n column.key,\n canAccessSuperData ? item.locals : item.data\n )\n : column.key,\n popOverContainer:\n popOverContainer || this.getPopOverContainer,\n onQuickChange: (\n values: object,\n saveImmediately?: boolean,\n savePristine?: boolean,\n resetOnFailed?: boolean\n ) => {\n this.handleQuickChange(\n item,\n values,\n saveImmediately,\n savePristine,\n resetOnFailed\n );\n },\n row: item,\n showBadge,\n itemBadge\n }),\n props\n };\n if (column.rowSpanExpr) {\n const rowSpan = +filter(column.rowSpanExpr, {\n record,\n rowIndex,\n colIndex\n });\n if (rowSpan) {\n obj.props.rowSpan = rowSpan;\n rowSpans.push({colIndex, rowIndex, rowSpan});\n }\n }\n\n if (column.colSpanExpr) {\n const colSpan = +filter(column.colSpanExpr, {\n record,\n rowIndex,\n colIndex\n });\n if (colSpan) {\n obj.props.colSpan = colSpan;\n colSpans.push({colIndex, rowIndex, colSpan});\n }\n }\n\n rowSpans.forEach(item => {\n if (\n colIndex === item.colIndex &&\n rowIndex > item.rowIndex &&\n rowIndex < item.rowIndex + (item.rowSpan || 0)\n ) {\n obj.props.rowSpan = 0;\n }\n });\n\n colSpans.forEach(item => {\n if (\n rowIndex === item.rowIndex &&\n colIndex > item.colIndex &&\n colIndex < item.colIndex + (item.colSpan || 0)\n ) {\n obj.props.colSpan = 0;\n }\n });\n\n return obj;\n }\n });\n }\n\n // 设置了单元格样式\n if (column.classNameExpr) {\n clone.className = (record: any, rowIndex: number) => {\n const className = filter(column.classNameExpr, {record, rowIndex});\n return `${className}${\n column.className ? ` ${column.className}` : ''\n }`;\n };\n }\n\n // 设置了列搜索\n if (column.searchable) {\n clone.filterDropdown = (\n <HeadCellSearchDropDown\n {...this.props}\n popOverContainer={this.getPopOverContainer}\n name={column.key}\n searchable={column.searchable}\n orderBy={store.orderBy}\n orderDir={store.order}\n data={store.query}\n key={'th-search-' + col}\n store={store}\n />\n );\n }\n\n if (column.children) {\n clone.children = this.buildColumns(column.children);\n }\n\n cols.push(clone);\n });\n\n return cols;\n }\n\n buildSummary(key: string, summary: Array<any>) {\n const result: Array<any> = [];\n if (Array.isArray(summary)) {\n summary.forEach((s, index) => {\n if (isObject(s)) {\n result.push({\n colSpan: s.colSpan,\n fixed: s.fixed,\n render: (dataSouce: Array<any>) =>\n this.renderSchema(key, s, {\n data: dataSouce\n })\n });\n } else if (Array.isArray(s)) {\n if (!result[index]) {\n result.push([]);\n }\n s.forEach(d => {\n result[index].push({\n colSpan: d.colSpan,\n fixed: d.fixed,\n render: (dataSouce: Array<any>) =>\n this.renderSchema(key, d, {\n data: dataSouce\n })\n });\n });\n }\n });\n }\n\n return result.length ? result : null;\n }\n\n reloadTarget(target: string, data: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n\n handleSave(\n rows: Array<object> | object,\n diff: Array<object> | object,\n indexes: Array<string>,\n unModifiedItems?: Array<any>,\n rowsOrigin?: Array<object> | object,\n resetOnFailed?: boolean\n ) {\n const {\n store,\n quickSaveApi,\n quickSaveItemApi,\n primaryField,\n env,\n messages,\n reload\n } = this.props;\n\n if (Array.isArray(rows)) {\n if (!isEffectiveApi(quickSaveApi)) {\n env && env.alert('TableV2 quickSaveApi is required');\n return;\n }\n\n const data: any = createObject(store.data, {\n rows,\n rowsDiff: diff,\n indexes: indexes,\n rowsOrigin\n });\n\n if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {\n data.ids = rows\n .map(item => (item as any)[primaryField || 'id'])\n .join(',');\n }\n\n if (unModifiedItems) {\n data.unModifiedItems = unModifiedItems;\n }\n\n store\n .saveRemote(quickSaveApi, data, {\n successMessage: messages && messages.saveFailed,\n errorMessage: messages && messages.saveSuccess\n })\n .then(() => {\n reload && this.reloadTarget(reload, data);\n })\n .catch(() => {});\n } else {\n if (!isEffectiveApi(quickSaveItemApi)) {\n env && env.alert('TableV2 quickSaveItemApi is required!');\n return;\n }\n\n const data = createObject(store.data, {\n item: rows,\n modified: diff,\n origin: rowsOrigin\n });\n\n const sendData = createObject(data, rows);\n store\n .saveRemote(quickSaveItemApi, sendData)\n .then(() => {\n reload && this.reloadTarget(reload, data);\n })\n .catch(() => {\n resetOnFailed && this.control.reset();\n });\n }\n }\n\n handleQuickChange(\n item: IRow,\n values: object,\n saveImmediately?: boolean | any,\n savePristine?: boolean,\n resetOnFailed?: boolean\n ) {\n if (!isAlive(item)) {\n return;\n }\n\n const {onSave, onPristineChange, primaryField, quickSaveItemApi} =\n this.props;\n\n item.change(values, savePristine);\n\n // 值发生变化了,需要通过 onSelect 通知到外面,否则会出现数据不同步的问题\n item.modified && this.syncSelected();\n\n if (savePristine) {\n onPristineChange?.(item.data, item.path);\n return;\n }\n\n if (saveImmediately && saveImmediately.api) {\n this.props.onAction(\n null,\n {\n actionType: 'ajax',\n api: saveImmediately.api\n },\n values\n );\n return;\n }\n\n onSave\n ? onSave(\n item.data,\n difference(item.data, item.pristine, ['id', primaryField]),\n item.path,\n undefined,\n item.pristine,\n resetOnFailed\n )\n : this.handleSave(\n quickSaveItemApi ? item.data : [item.data],\n difference(item.data, item.pristine, ['id', primaryField]),\n [item.path],\n undefined,\n item.pristine,\n resetOnFailed\n );\n }\n\n async handleColumnToggle(columns: Array<IColumn>) {\n const {dispatchEvent, data, store} = this.props;\n\n const rendererEvent = await dispatchEvent(\n 'columnToggled',\n createObject(data, {\n columns\n })\n );\n\n if (rendererEvent?.prevented) {\n return;\n }\n\n store.update({columns});\n }\n\n renderColumnsToggler() {\n const {\n className,\n store,\n render,\n classPrefix: ns,\n classnames: cx,\n ...rest\n } = this.props;\n const __ = rest.translate;\n const env = rest.env;\n\n if (!store.toggable) {\n return null;\n }\n\n const children = store.toggableColumns.map((column, index) => (\n <li\n className={cx('ColumnToggler-menuItem')}\n key={'toggable-li-' + index}\n onClick={column.toggleToggle}\n >\n <Checkbox\n key={'toggable-select' + index}\n size=\"sm\"\n classPrefix={ns}\n checked={column.toggled}\n >\n {column.title ? render('tpl', column.title) : null}\n </Checkbox>\n </li>\n ));\n\n return render(\n 'column-toggler',\n {\n type: 'column-toggler'\n },\n {\n isActived: store.hasColumnHidden(),\n columns: store.columnsData,\n onColumnToggle: this.handleColumnToggle,\n children,\n tooltipContainer:\n env && env.getModalContainer ? env.getModalContainer : undefined\n }\n );\n }\n\n handleAction(e: React.UIEvent<any>, action: Action, ctx: object) {\n const {onAction} = this.props;\n\n // todo\n onAction(e, action, ctx);\n }\n\n renderActions(region: string) {\n let {actions, render, store, classnames: cx, data} = this.props;\n\n actions = Array.isArray(actions) ? actions.concat() : [];\n\n if (\n store.toggable &&\n region === 'header' &&\n !~this.renderedToolbars.indexOf('columns-toggler')\n ) {\n actions.push({\n type: 'button',\n children: this.renderColumnsToggler()\n });\n }\n\n return Array.isArray(actions) && actions.length ? (\n <div className={cx('Table-toolbar')}>\n {actions.map((action, key) =>\n render(\n `action/${key}`,\n {\n type: 'button',\n ...(action as any)\n },\n {\n onAction: this.handleAction,\n key,\n btnDisabled: store.dragging,\n data: store.getData(data)\n }\n )\n )}\n </div>\n ) : null;\n }\n\n @autobind\n async handleSelected(\n selectedRows: Array<any>,\n selectedRowKeys: Array<string | number>,\n unSelectedRows: Array<string | number>\n ) {\n const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;\n const rendererEvent = await dispatchEvent(\n 'selectedChange',\n createObject(data, {\n selectedItems: selectedRows,\n unSelectedItems: unSelectedRows\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n store.updateSelected(selectedRowKeys, rowSelection.keyField);\n onSelect && onSelect(selectedRows, unSelectedRows);\n }\n\n @autobind\n async handleSort(payload: SortProps) {\n const {dispatchEvent, data, onSort} = this.props;\n const rendererEvent = await dispatchEvent(\n 'columnSort',\n createObject(data, {\n orderBy: payload.orderBy,\n orderDir: payload.order\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onSort && onSort(payload);\n }\n\n @autobind\n async handleFilter(payload: {filterName: string; filterValue: string}) {\n const {dispatchEvent, data, onFilter} = this.props;\n const rendererEvent = await dispatchEvent(\n 'columnFilter',\n createObject(data, payload)\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onFilter && onFilter(payload);\n }\n\n @autobind\n async handleRowClick(\n event: React.ChangeEvent<any>,\n rowItem: any,\n rowIndex?: number\n ) {\n const {dispatchEvent, data, onRow} = this.props;\n\n const rendererEvent = await dispatchEvent(\n 'rowClick',\n createObject(data, {rowItem})\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n if (rowItem && onRow) {\n onRow.onRowClick && onRow.onRowClick(event, rowItem, rowIndex);\n }\n }\n\n @autobind\n async handleOrderChange(\n oldIndex: number,\n newIndex: number,\n levels: Array<string>\n ) {\n const {store} = this.props;\n const rowItem = store.getRowByIndex(oldIndex, levels);\n\n store.exchange(oldIndex, newIndex, rowItem);\n }\n\n @autobind\n async handleSaveOrder() {\n const {store, onSaveOrder, data, dispatchEvent} = this.props;\n\n const movedItems = store.movedRows.map(item => item.data);\n const items = store.rows.map(item => item.getDataWithModifiedChilden());\n\n const rendererEvent = await dispatchEvent(\n 'orderChange',\n createObject(data, {movedItems})\n );\n\n if (rendererEvent?.prevented) {\n return;\n }\n\n if (!onSaveOrder || !store.movedRows.length) {\n return;\n }\n\n onSaveOrder(movedItems, items);\n }\n\n @autobind\n reset() {\n const {store} = this.props;\n\n store.reset();\n }\n\n doAction(action: Action, args: any, throwErrors: boolean): any {\n const {store, rowSelection, data} = this.props;\n\n const actionType = action?.actionType as string;\n const keyField = rowSelection?.keyField;\n\n switch (actionType) {\n case 'selectAll':\n store.updateSelectedAll(keyField);\n break;\n case 'clearAll':\n store.updateSelected([], keyField);\n break;\n case 'select':\n const dataSource = store.getData(data);\n const selected: Array<any> = [];\n dataSource.items.forEach((item: any, rowIndex: number) => {\n const flag = evalExpression(args?.selectedRowKeysExpr, {\n record: item,\n rowIndex\n });\n if (flag) {\n selected.push(item[keyField]);\n }\n });\n store.updateSelected(selected, keyField);\n break;\n default:\n break;\n }\n }\n\n renderTable() {\n const {\n render,\n title,\n footer,\n rowSelection,\n columns,\n expandable,\n footSummary,\n headSummary,\n loading,\n classnames: cx,\n placeholder,\n rowClassNameExpr,\n itemActions,\n onRow,\n store,\n ...rest\n } = this.props;\n\n let expandableConfig: any = null;\n if (expandable) {\n const {expandedRowKeys, ...rest} = expandable;\n\n expandableConfig = {\n expandedRowKeys: store.currentExpandedKeys,\n ...rest\n };\n\n if (expandable.expandableOn) {\n expandableConfig.rowExpandable = (record: any, rowIndex: number) =>\n evalExpression(expandable.expandableOn, {record, rowIndex});\n delete expandableConfig.expandableOn;\n }\n\n if (expandable && expandable.type) {\n expandableConfig.expandedRowRender = (record: any, rowIndex: number) =>\n this.renderSchema('expandableBody', {...expandable}, {data: record});\n }\n\n if (expandable.expandedRowClassNameExpr) {\n expandableConfig.expandedRowClassName = (\n record: any,\n rowIndex: number\n ) => filter(expandable.expandedRowClassNameExpr, {record, rowIndex});\n delete expandableConfig.expandedRowClassNameExpr;\n }\n }\n\n let rowSelectionConfig: any = null;\n if (rowSelection) {\n const {selectedRowKeys, selections, ...rest} = rowSelection;\n rowSelectionConfig = {\n selectedRowKeys: store.currentSelectedRowKeys,\n ...rest\n };\n\n if (rowSelection.disableOn) {\n const disableOn = rowSelection.disableOn;\n\n rowSelectionConfig.getCheckboxProps = (\n record: any,\n rowIndex: number\n ) => ({\n disabled: evalExpression(disableOn, {record, rowIndex})\n });\n\n delete rowSelectionConfig.disableOn;\n }\n\n if (selections && Array.isArray(selections)) {\n rowSelectionConfig.selections = [];\n\n selections.forEach((item: RowSelectionOptionsSchema) => {\n rowSelectionConfig.selections.push({\n key: item.key,\n text: item.text,\n onSelect: (changableRowKeys: Array<string | number>) => {\n let newSelectedRowKeys = [];\n newSelectedRowKeys = changableRowKeys.filter((key, index) => {\n if (item.key === 'all') {\n return true;\n }\n if (item.key === 'none') {\n return false;\n }\n if (item.key === 'invert') {\n return !store.currentSelectedRowKeys.includes(key);\n }\n // 奇数行\n if (item.key === 'odd') {\n if (index % 2 !== 0) {\n return false;\n }\n return true;\n }\n // 偶数行\n if (item.key === 'even') {\n if (index % 2 !== 0) {\n return true;\n }\n return false;\n }\n return true;\n });\n store.updateSelected(newSelectedRowKeys, rowSelection.keyField);\n }\n });\n });\n }\n }\n\n let rowClassName = undefined;\n // 设置了行样式\n if (rowClassNameExpr) {\n rowClassName = (record: any, rowIndex: number) => {\n return filter(rowClassNameExpr, {record, rowIndex});\n };\n }\n\n let itemActionsConfig = undefined;\n if (itemActions) {\n const finalActions = Array.isArray(itemActions)\n ? itemActions.filter(action => !action.hiddenOnHover)\n : [];\n\n if (!finalActions.length) {\n return null;\n }\n\n itemActionsConfig = (record: any, rowIndex: number) => {\n return (\n <div className={cx('Table-itemActions')}>\n {finalActions.map((action, index) =>\n render(\n `itemAction/${index}`,\n {\n ...(action as any),\n isMenuItem: true\n },\n {\n key: index,\n item: record,\n data: record,\n rowIndex\n }\n )\n )}\n </div>\n );\n };\n }\n\n return (\n <Table\n {...rest}\n title={this.renderSchema('title', title, {data: this.props.data})}\n footer={this.renderSchema('footer', footer, {data: this.props.data})}\n columns={this.buildColumns(store.filteredColumns)}\n dataSource={store.dataSource}\n rowSelection={rowSelectionConfig}\n rowClassName={rowClassName}\n expandable={expandableConfig}\n footSummary={this.buildSummary('footSummary', footSummary)}\n headSummary={this.buildSummary('headSummary', headSummary)}\n loading={this.renderSchema('loading', loading)}\n placeholder={this.renderSchema('placeholder', placeholder)}\n onSelect={this.handleSelected}\n onSelectAll={this.handleSelected}\n onSort={this.handleSort}\n onFilter={this.handleFilter}\n onDrag={this.handleOrderChange}\n itemActions={itemActionsConfig}\n onRow={{\n ...onRow,\n onRowClick: this.handleRowClick\n }}\n ></Table>\n );\n }\n\n renderHeading() {\n let {store, classnames: cx, headingClassName, translate: __} = this.props;\n\n if (store.moved) {\n return (\n <div className={cx('Table-heading', headingClassName)} key=\"heading\">\n {store.moved ? (\n <span>\n {__('Table.moved', {\n moved: store.moved\n })}\n <button\n type=\"button\"\n className={cx('Button Button--xs Button--success m-l-sm')}\n onClick={this.handleSaveOrder}\n >\n <Icon icon=\"check\" className=\"icon m-r-xs\" />\n {__('Form.submit')}\n </button>\n <button\n type=\"button\"\n className={cx('Button Button--xs Button--danger m-l-sm')}\n onClick={this.reset}\n >\n <Icon icon=\"close\" className=\"icon m-r-xs\" />\n {__('Table.discard')}\n </button>\n </span>\n ) : null}\n </div>\n );\n }\n\n return null;\n }\n\n render() {\n const {classnames: cx} = this.props;\n\n this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了\n\n const heading = this.renderHeading();\n\n return (\n <div className={cx('Table-render-wrapper')}>\n {this.renderActions('header')}\n {heading}\n {this.renderTable()}\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'table-v2',\n storeType: TableStoreV2.name,\n name: 'table-v2',\n isolateScope: true\n})\nexport class TableRenderer extends TableV2 {\n receive(values: any, subPath?: string) {\n const scoped = this.context as IScopedContext;\n const parents = scoped?.parent?.getComponents();\n\n /**\n * 因为Table在scope上注册,导致getComponentByName查询组件时会优先找到Table,和CRUD联动的动作都会失效\n * 这里先做兼容处理,把动作交给上层的CRUD处理\n */\n if (Array.isArray(parents) && parents.length) {\n // CRUD的name会透传给Table,这样可以保证找到CRUD\n const crud = parents.find(cmpt => cmpt?.props?.name === this.props?.name);\n\n return crud?.receive?.(values, subPath);\n }\n\n if (subPath) {\n return scoped.send(subPath, values);\n }\n }\n}\n"
12
12
  ]
13
13
  }
@@ -107,7 +107,9 @@ export declare const UniqueGroup: import("mobx-state-tree").IModelType<{
107
107
  validateOnChange?: boolean | undefined;
108
108
  label?: string | undefined;
109
109
  }) => void;
110
- validate: (data: Object, hook?: any) => Promise<boolean>;
110
+ validate: (data: Object, hook?: any, customRules?: {
111
+ [propName: string]: any;
112
+ } | undefined) => Promise<boolean>;
111
113
  setError: (msg: string | string[], tag?: string) => void;
112
114
  addError: (msg: string | (string | {
113
115
  msg: string;
@@ -514,7 +516,9 @@ export declare const UniqueGroup: import("mobx-state-tree").IModelType<{
514
516
  validateOnChange?: boolean | undefined;
515
517
  label?: string | undefined;
516
518
  }) => void;
517
- validate: (data: Object, hook?: any) => Promise<boolean>;
519
+ validate: (data: Object, hook?: any, customRules?: {
520
+ [propName: string]: any;
521
+ } | undefined) => Promise<boolean>;
518
522
  setError: (msg: string | string[], tag?: string) => void;
519
523
  addError: (msg: string | (string | {
520
524
  msg: string;
@@ -953,7 +957,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
953
957
  validateOnChange?: boolean | undefined;
954
958
  label?: string | undefined;
955
959
  }) => void;
956
- validate: (data: Object, hook?: any) => Promise<boolean>;
960
+ validate: (data: Object, hook?: any, customRules?: {
961
+ [propName: string]: any;
962
+ } | undefined) => Promise<boolean>;
957
963
  setError: (msg: string | string[], tag?: string) => void;
958
964
  addError: (msg: string | (string | {
959
965
  msg: string;
@@ -1360,7 +1366,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
1360
1366
  validateOnChange?: boolean | undefined;
1361
1367
  label?: string | undefined;
1362
1368
  }) => void;
1363
- validate: (data: Object, hook?: any) => Promise<boolean>;
1369
+ validate: (data: Object, hook?: any, customRules?: {
1370
+ [propName: string]: any;
1371
+ } | undefined) => Promise<boolean>;
1364
1372
  setError: (msg: string | string[], tag?: string) => void;
1365
1373
  addError: (msg: string | (string | {
1366
1374
  msg: string;
@@ -1881,7 +1889,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
1881
1889
  validateOnChange?: boolean | undefined;
1882
1890
  label?: string | undefined;
1883
1891
  }) => void;
1884
- validate: (data: Object, hook?: any) => Promise<boolean>;
1892
+ validate: (data: Object, hook?: any, customRules?: {
1893
+ [propName: string]: any;
1894
+ } | undefined) => Promise<boolean>;
1885
1895
  setError: (msg: string | string[], tag?: string) => void;
1886
1896
  addError: (msg: string | (string | {
1887
1897
  msg: string;
@@ -2288,7 +2298,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
2288
2298
  validateOnChange?: boolean | undefined;
2289
2299
  label?: string | undefined;
2290
2300
  }) => void;
2291
- validate: (data: Object, hook?: any) => Promise<boolean>;
2301
+ validate: (data: Object, hook?: any, customRules?: {
2302
+ [propName: string]: any;
2303
+ } | undefined) => Promise<boolean>;
2292
2304
  setError: (msg: string | string[], tag?: string) => void;
2293
2305
  addError: (msg: string | (string | {
2294
2306
  msg: string;
@@ -2704,7 +2716,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
2704
2716
  validateOnChange?: boolean | undefined;
2705
2717
  label?: string | undefined;
2706
2718
  }) => void;
2707
- validate: (data: Object, hook?: any) => Promise<boolean>;
2719
+ validate: (data: Object, hook?: any, customRules?: {
2720
+ [propName: string]: any;
2721
+ } | undefined) => Promise<boolean>;
2708
2722
  setError: (msg: string | string[], tag?: string) => void;
2709
2723
  addError: (msg: string | (string | {
2710
2724
  msg: string;
@@ -3111,7 +3125,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
3111
3125
  validateOnChange?: boolean | undefined;
3112
3126
  label?: string | undefined;
3113
3127
  }) => void;
3114
- validate: (data: Object, hook?: any) => Promise<boolean>;
3128
+ validate: (data: Object, hook?: any, customRules?: {
3129
+ [propName: string]: any;
3130
+ } | undefined) => Promise<boolean>;
3115
3131
  setError: (msg: string | string[], tag?: string) => void;
3116
3132
  addError: (msg: string | (string | {
3117
3133
  msg: string;
@@ -3522,7 +3538,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
3522
3538
  validateOnChange?: boolean | undefined;
3523
3539
  label?: string | undefined;
3524
3540
  }) => void;
3525
- validate: (data: Object, hook?: any) => Promise<boolean>;
3541
+ validate: (data: Object, hook?: any, customRules?: {
3542
+ [propName: string]: any;
3543
+ } | undefined) => Promise<boolean>;
3526
3544
  setError: (msg: string | string[], tag?: string) => void;
3527
3545
  addError: (msg: string | (string | {
3528
3546
  msg: string;
@@ -3929,7 +3947,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
3929
3947
  validateOnChange?: boolean | undefined;
3930
3948
  label?: string | undefined;
3931
3949
  }) => void;
3932
- validate: (data: Object, hook?: any) => Promise<boolean>;
3950
+ validate: (data: Object, hook?: any, customRules?: {
3951
+ [propName: string]: any;
3952
+ } | undefined) => Promise<boolean>;
3933
3953
  setError: (msg: string | string[], tag?: string) => void;
3934
3954
  addError: (msg: string | (string | {
3935
3955
  msg: string;
@@ -4340,7 +4360,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
4340
4360
  validateOnChange?: boolean | undefined;
4341
4361
  label?: string | undefined;
4342
4362
  }) => void;
4343
- validate: (data: Object, hook?: any) => Promise<boolean>;
4363
+ validate: (data: Object, hook?: any, customRules?: {
4364
+ [propName: string]: any;
4365
+ } | undefined) => Promise<boolean>;
4344
4366
  setError: (msg: string | string[], tag?: string) => void;
4345
4367
  addError: (msg: string | (string | {
4346
4368
  msg: string;
@@ -4747,7 +4769,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
4747
4769
  validateOnChange?: boolean | undefined;
4748
4770
  label?: string | undefined;
4749
4771
  }) => void;
4750
- validate: (data: Object, hook?: any) => Promise<boolean>;
4772
+ validate: (data: Object, hook?: any, customRules?: {
4773
+ [propName: string]: any;
4774
+ } | undefined) => Promise<boolean>;
4751
4775
  setError: (msg: string | string[], tag?: string) => void;
4752
4776
  addError: (msg: string | (string | {
4753
4777
  msg: string;
@@ -5068,7 +5092,12 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
5068
5092
  trimValues: () => void;
5069
5093
  submit: (fn?: ((values: object) => Promise<any>) | undefined, hooks?: (() => Promise<any>)[] | undefined, failedMessage?: string | undefined, validateErrCb?: (() => void) | undefined) => Promise<any>;
5070
5094
  validate: (hooks?: (() => Promise<any>)[] | undefined, forceValidate?: boolean | undefined) => Promise<boolean>;
5071
- validateFields: (fields: string[]) => Promise<boolean>;
5095
+ validateFields: (fields: (string | {
5096
+ name: string;
5097
+ rules: {
5098
+ [propName: string]: any;
5099
+ };
5100
+ })[]) => Promise<boolean>;
5072
5101
  clearErrors: () => void;
5073
5102
  saveRemote: (api: import("../types").Api, data?: object | undefined, options?: import("../types").fetchOptions | undefined) => Promise<any>;
5074
5103
  reset: (cb?: ((data: any) => void) | undefined, resetData?: boolean) => void;
@@ -5269,7 +5298,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
5269
5298
  validateOnChange?: boolean | undefined;
5270
5299
  label?: string | undefined;
5271
5300
  }) => void;
5272
- validate: (data: Object, hook?: any) => Promise<boolean>;
5301
+ validate: (data: Object, hook?: any, customRules?: {
5302
+ [propName: string]: any;
5303
+ } | undefined) => Promise<boolean>;
5273
5304
  setError: (msg: string | string[], tag?: string) => void;
5274
5305
  addError: (msg: string | (string | {
5275
5306
  msg: string;
@@ -5676,7 +5707,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
5676
5707
  validateOnChange?: boolean | undefined;
5677
5708
  label?: string | undefined;
5678
5709
  }) => void;
5679
- validate: (data: Object, hook?: any) => Promise<boolean>;
5710
+ validate: (data: Object, hook?: any, customRules?: {
5711
+ [propName: string]: any;
5712
+ } | undefined) => Promise<boolean>;
5680
5713
  setError: (msg: string | string[], tag?: string) => void;
5681
5714
  addError: (msg: string | (string | {
5682
5715
  msg: string;
@@ -6092,7 +6125,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
6092
6125
  validateOnChange?: boolean | undefined;
6093
6126
  label?: string | undefined;
6094
6127
  }) => void;
6095
- validate: (data: Object, hook?: any) => Promise<boolean>;
6128
+ validate: (data: Object, hook?: any, customRules?: {
6129
+ [propName: string]: any;
6130
+ } | undefined) => Promise<boolean>;
6096
6131
  setError: (msg: string | string[], tag?: string) => void;
6097
6132
  addError: (msg: string | (string | {
6098
6133
  msg: string;
@@ -6499,7 +6534,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
6499
6534
  validateOnChange?: boolean | undefined;
6500
6535
  label?: string | undefined;
6501
6536
  }) => void;
6502
- validate: (data: Object, hook?: any) => Promise<boolean>;
6537
+ validate: (data: Object, hook?: any, customRules?: {
6538
+ [propName: string]: any;
6539
+ } | undefined) => Promise<boolean>;
6503
6540
  setError: (msg: string | string[], tag?: string) => void;
6504
6541
  addError: (msg: string | (string | {
6505
6542
  msg: string;
@@ -6910,7 +6947,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
6910
6947
  validateOnChange?: boolean | undefined;
6911
6948
  label?: string | undefined;
6912
6949
  }) => void;
6913
- validate: (data: Object, hook?: any) => Promise<boolean>;
6950
+ validate: (data: Object, hook?: any, customRules?: {
6951
+ [propName: string]: any;
6952
+ } | undefined) => Promise<boolean>;
6914
6953
  setError: (msg: string | string[], tag?: string) => void;
6915
6954
  addError: (msg: string | (string | {
6916
6955
  msg: string;
@@ -7317,7 +7356,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
7317
7356
  validateOnChange?: boolean | undefined;
7318
7357
  label?: string | undefined;
7319
7358
  }) => void;
7320
- validate: (data: Object, hook?: any) => Promise<boolean>;
7359
+ validate: (data: Object, hook?: any, customRules?: {
7360
+ [propName: string]: any;
7361
+ } | undefined) => Promise<boolean>;
7321
7362
  setError: (msg: string | string[], tag?: string) => void;
7322
7363
  addError: (msg: string | (string | {
7323
7364
  msg: string;
@@ -7728,7 +7769,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
7728
7769
  validateOnChange?: boolean | undefined;
7729
7770
  label?: string | undefined;
7730
7771
  }) => void;
7731
- validate: (data: Object, hook?: any) => Promise<boolean>;
7772
+ validate: (data: Object, hook?: any, customRules?: {
7773
+ [propName: string]: any;
7774
+ } | undefined) => Promise<boolean>;
7732
7775
  setError: (msg: string | string[], tag?: string) => void;
7733
7776
  addError: (msg: string | (string | {
7734
7777
  msg: string;
@@ -8135,7 +8178,9 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
8135
8178
  validateOnChange?: boolean | undefined;
8136
8179
  label?: string | undefined;
8137
8180
  }) => void;
8138
- validate: (data: Object, hook?: any) => Promise<boolean>;
8181
+ validate: (data: Object, hook?: any, customRules?: {
8182
+ [propName: string]: any;
8183
+ } | undefined) => Promise<boolean>;
8139
8184
  setError: (msg: string | string[], tag?: string) => void;
8140
8185
  addError: (msg: string | (string | {
8141
8186
  msg: string;
@@ -8456,7 +8501,12 @@ export declare const ComboStore: import("mobx-state-tree").IModelType<{
8456
8501
  trimValues: () => void;
8457
8502
  submit: (fn?: ((values: object) => Promise<any>) | undefined, hooks?: (() => Promise<any>)[] | undefined, failedMessage?: string | undefined, validateErrCb?: (() => void) | undefined) => Promise<any>;
8458
8503
  validate: (hooks?: (() => Promise<any>)[] | undefined, forceValidate?: boolean | undefined) => Promise<boolean>;
8459
- validateFields: (fields: string[]) => Promise<boolean>;
8504
+ validateFields: (fields: (string | {
8505
+ name: string;
8506
+ rules: {
8507
+ [propName: string]: any;
8508
+ };
8509
+ })[]) => Promise<boolean>;
8460
8510
  clearErrors: () => void;
8461
8511
  saveRemote: (api: import("../types").Api, data?: object | undefined, options?: import("../types").fetchOptions | undefined) => Promise<any>;
8462
8512
  reset: (cb?: ((data: any) => void) | undefined, resetData?: boolean) => void;
@@ -95,6 +95,8 @@ export declare const CRUDStore: import("mobx-state-tree").IModelType<{
95
95
  perPageField?: string;
96
96
  }): object;
97
97
  } & {
98
+ getData: (superData: any) => any;
99
+ updateSelectData: (selected: Array<any>, unSelected: Array<any>) => void;
98
100
  setPristineQuery: () => void;
99
101
  updateQuery: (values: object, updater?: Function | undefined, pageField?: string, perPageField?: string, replace?: boolean) => void;
100
102
  fetchInitData: (api: Api, data?: object | undefined, options?: (fetchOptions & {
package/lib/store/crud.js CHANGED
@@ -323,6 +323,15 @@ exports.CRUDStore = service_1.ServiceStore.named('CRUDStore')
323
323
  var setUnSelectedItems = function (items) {
324
324
  self.unSelectedItems.replace(items);
325
325
  };
326
+ var updateSelectData = function (selected, unSelected) {
327
+ self.selectedItems.replace(selected);
328
+ self.unSelectedItems.replace(unSelected);
329
+ // 同步到data中,使filter等部分也能拿到
330
+ self.reInitData({
331
+ selectedItems: selected,
332
+ unSelectedItems: unSelected
333
+ });
334
+ };
326
335
  var setInnerModalOpened = function (value) {
327
336
  self.hasInnerModalOpen = value;
328
337
  };
@@ -332,7 +341,7 @@ exports.CRUDStore = service_1.ServiceStore.named('CRUDStore')
332
341
  return;
333
342
  }
334
343
  rowsData = Array.isArray(rowsData) ? rowsData : [];
335
- var data = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.pristine), { items: rowsData, count: 0, total: 0 });
344
+ var data = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.pristine), { items: rowsData, count: 0, total: rowsData.length });
336
345
  self.items.replace(rowsData);
337
346
  self.reInitData(data);
338
347
  };
@@ -376,7 +385,18 @@ exports.CRUDStore = service_1.ServiceStore.named('CRUDStore')
376
385
  });
377
386
  });
378
387
  };
388
+ var getData = function (superData) {
389
+ return (0, helper_1.createObject)(superData, {
390
+ total: self.total,
391
+ page: self.page,
392
+ items: self.items.concat(),
393
+ selectedItems: self.selectedItems.concat(),
394
+ unSelectedItems: self.unSelectedItems.concat()
395
+ });
396
+ };
379
397
  return {
398
+ getData: getData,
399
+ updateSelectData: updateSelectData,
380
400
  setPristineQuery: setPristineQuery,
381
401
  updateQuery: updateQuery,
382
402
  fetchInitData: fetchInitData,