amis 1.9.1-beta.3 → 1.9.1-beta.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. package/lib/SchemaRenderer.js +6 -9
  2. package/lib/SchemaRenderer.js.map +2 -2
  3. package/lib/actions/CmptAction.js +4 -4
  4. package/lib/actions/CmptAction.js.map +2 -2
  5. package/lib/components/WithRemoteConfig.d.ts +2 -2
  6. package/lib/components/WithRemoteConfig.js +6 -3
  7. package/lib/components/WithRemoteConfig.js.map +2 -2
  8. package/lib/components/table/ItemActionsWrapper.d.ts +10 -0
  9. package/lib/components/table/ItemActionsWrapper.js +25 -0
  10. package/lib/components/table/ItemActionsWrapper.js.map +13 -0
  11. package/lib/components/table/index.d.ts +48 -41
  12. package/lib/components/table/index.js +46 -18
  13. package/lib/components/table/index.js.map +2 -2
  14. package/lib/index.js +1 -1
  15. package/lib/renderers/Form/JSONSchema.js +3 -3
  16. package/lib/renderers/Form/JSONSchema.js.map +2 -2
  17. package/lib/renderers/Form/Options.js +11 -5
  18. package/lib/renderers/Form/Options.js.map +2 -2
  19. package/lib/renderers/Form/wrapControl.js.map +2 -2
  20. package/lib/renderers/Table-v2/index.d.ts +14 -2
  21. package/lib/renderers/Table-v2/index.js +33 -3
  22. package/lib/renderers/Table-v2/index.js.map +2 -2
  23. package/package.json +1 -1
  24. package/schema.json +13 -2
  25. package/sdk/barcode.js +51 -51
  26. package/sdk/charts.js +14 -14
  27. package/sdk/codemirror.js +7 -7
  28. package/sdk/color-picker.js +65 -65
  29. package/sdk/cropperjs.js +2 -2
  30. package/sdk/exceljs.js +1 -1
  31. package/sdk/markdown.js +69 -69
  32. package/sdk/papaparse.js +1 -1
  33. package/sdk/renderers/Form/CityDB.js +1 -1
  34. package/sdk/rest.js +16 -16
  35. package/sdk/rich-text.js +62 -62
  36. package/sdk/sdk.js +1299 -1297
  37. package/sdk/thirds/hls.js/hls.js +1 -1
  38. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  39. package/sdk/tinymce.js +57 -57
  40. package/src/SchemaRenderer.tsx +1 -4
  41. package/src/actions/CmptAction.ts +4 -4
  42. package/src/components/WithRemoteConfig.tsx +20 -11
  43. package/src/components/table/ItemActionsWrapper.tsx +32 -0
  44. package/src/components/table/index.tsx +115 -58
  45. package/src/renderers/Form/JSONSchema.tsx +3 -3
  46. package/src/renderers/Form/Options.tsx +17 -7
  47. package/src/renderers/Form/wrapControl.tsx +0 -1
  48. package/src/renderers/Table-v2/index.tsx +65 -2
@@ -194,6 +194,7 @@ var TableRenderer = /** @class */ (function (_super) {
194
194
  titleSchema = { type: 'plain' };
195
195
  }
196
196
  var titleRender = function (children) {
197
+ var _a;
197
198
  var content = _this.renderCellSchema(titleSchema, titleProps);
198
199
  var remark = null;
199
200
  if (column.remark) {
@@ -203,7 +204,10 @@ var TableRenderer = /** @class */ (function (_super) {
203
204
  container: env && env.getModalContainer ? env.getModalContainer : undefined
204
205
  });
205
206
  }
206
- return (react_1.default.createElement("div", { className: cx('Table-head-cell-wrapper') },
207
+ return (react_1.default.createElement("div", { key: col, className: cx('Table-head-cell-wrapper', (_a = {},
208
+ _a["".concat(column.className)] = !!column.className,
209
+ _a["".concat(column.titleClassName)] = !!column.titleClassName,
210
+ _a)) },
207
211
  content,
208
212
  remark,
209
213
  children));
@@ -273,6 +277,13 @@ var TableRenderer = /** @class */ (function (_super) {
273
277
  }
274
278
  });
275
279
  }
280
+ // 设置了单元格样式
281
+ if (column.classNameExpr) {
282
+ clone.className = function (record, rowIndex) {
283
+ var className = (0, tpl_1.filter)(column.classNameExpr, { record: record, rowIndex: rowIndex });
284
+ return "".concat(className).concat(column.className ? " ".concat(column.className) : '');
285
+ };
286
+ }
276
287
  // 设置了列搜索
277
288
  if (column.searchable) {
278
289
  clone.filterDropdown = (react_1.default.createElement(HeadCellSearchDropdown_1.HeadCellSearchDropDown, (0, tslib_1.__assign)({}, _this.props, { popOverContainer: _this.getPopOverContainer, name: column.key, searchable: column.searchable, orderBy: store.orderBy, orderDir: store.order, data: store.query, key: 'th-search-' + col, store: store })));
@@ -597,7 +608,7 @@ var TableRenderer = /** @class */ (function (_super) {
597
608
  };
598
609
  TableRenderer.prototype.renderTable = function () {
599
610
  var _this = this;
600
- var _a = this.props, render = _a.render, title = _a.title, footer = _a.footer, rowSelection = _a.rowSelection, columns = _a.columns, expandable = _a.expandable, expandableBody = _a.expandableBody, footSummary = _a.footSummary, headSummary = _a.headSummary, loading = _a.loading, cx = _a.classnames, placeholder = _a.placeholder, rowClassNameExpr = _a.rowClassNameExpr, store = _a.store, rest = (0, tslib_1.__rest)(_a, ["render", "title", "footer", "rowSelection", "columns", "expandable", "expandableBody", "footSummary", "headSummary", "loading", "classnames", "placeholder", "rowClassNameExpr", "store"]);
611
+ var _a = this.props, render = _a.render, title = _a.title, footer = _a.footer, rowSelection = _a.rowSelection, columns = _a.columns, expandable = _a.expandable, expandableBody = _a.expandableBody, footSummary = _a.footSummary, headSummary = _a.headSummary, loading = _a.loading, cx = _a.classnames, placeholder = _a.placeholder, rowClassNameExpr = _a.rowClassNameExpr, itemActions = _a.itemActions, store = _a.store, rest = (0, tslib_1.__rest)(_a, ["render", "title", "footer", "rowSelection", "columns", "expandable", "expandableBody", "footSummary", "headSummary", "loading", "classnames", "placeholder", "rowClassNameExpr", "itemActions", "store"]);
601
612
  var expandableConfig = null;
602
613
  if (expandable) {
603
614
  var expandedRowKeys = expandable.expandedRowKeys, rest_1 = (0, tslib_1.__rest)(expandable, ["expandedRowKeys"]);
@@ -676,7 +687,26 @@ var TableRenderer = /** @class */ (function (_super) {
676
687
  return (0, tpl_1.filter)(rowClassNameExpr, { record: record, rowIndex: rowIndex });
677
688
  };
678
689
  }
679
- return (react_1.default.createElement(table_1.default, (0, tslib_1.__assign)({}, rest, { title: this.renderSchema('title', title, { data: this.props.data }), footer: this.renderSchema('footer', footer, { data: this.props.data }), columns: this.buildColumns(store.filteredColumns), dataSource: store.dataSource, rowSelection: rowSelectionConfig, rowClassName: rowClassName, expandable: expandableConfig, footSummary: this.buildSummary('footSummary', footSummary), headSummary: this.buildSummary('headSummary', headSummary), loading: this.renderSchema('loading', loading), placeholder: this.renderSchema('placeholder', placeholder), onSelect: this.handleSelected, onSelectAll: this.handleSelectedAll, onSort: this.handleSort, onFilter: this.handleFilter, onDrag: this.handleDragOver })));
690
+ var itemActionsConfig = undefined;
691
+ if (itemActions) {
692
+ var finalActions_1 = Array.isArray(itemActions)
693
+ ? itemActions.filter(function (action) { return !action.hiddenOnHover; })
694
+ : [];
695
+ if (!finalActions_1.length) {
696
+ return null;
697
+ }
698
+ itemActionsConfig = function (record, rowIndex) {
699
+ return (react_1.default.createElement("div", { className: cx('Table-itemActions') }, finalActions_1.map(function (action, index) {
700
+ return render("itemAction/".concat(index), (0, tslib_1.__assign)((0, tslib_1.__assign)({}, action), { isMenuItem: true }), {
701
+ key: index,
702
+ item: record,
703
+ data: record,
704
+ rowIndex: rowIndex
705
+ });
706
+ })));
707
+ };
708
+ }
709
+ return (react_1.default.createElement(table_1.default, (0, tslib_1.__assign)({}, rest, { title: this.renderSchema('title', title, { data: this.props.data }), footer: this.renderSchema('footer', footer, { data: this.props.data }), columns: this.buildColumns(store.filteredColumns), dataSource: store.dataSource, rowSelection: rowSelectionConfig, rowClassName: rowClassName, expandable: expandableConfig, footSummary: this.buildSummary('footSummary', footSummary), headSummary: this.buildSummary('headSummary', headSummary), loading: this.renderSchema('loading', loading), placeholder: this.renderSchema('placeholder', placeholder), onSelect: this.handleSelected, onSelectAll: this.handleSelectedAll, onSort: this.handleSort, onFilter: this.handleFilter, onDrag: this.handleDragOver, itemActions: itemActionsConfig })));
680
710
  };
681
711
  TableRenderer.prototype.render = function () {
682
712
  var cx = this.props.classnames;
@@ -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 {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\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 null,\n false,\n store.selectedRowKeys.map(item => item),\n store.selectedRows.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 = filter(props.rowSelection.selectedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag === 'true') {\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 = filter(props.expandable.expandedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag === 'true') {\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 className={cx('Table-head-cell-wrapper')}>\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.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 record: any,\n value: boolean,\n selectedRows: Array<any>,\n selectedRowKeys: Array<string | number>\n ) {\n const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;\n const rendererEvent = await dispatchEvent(\n 'selected',\n createObject(data, {\n record,\n value,\n selectedRows,\n selectedRowKeys\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n store.updateSelected(selectedRowKeys, rowSelection.keyField);\n onSelect && onSelect(record, value, selectedRows, selectedRowKeys);\n }\n\n @autobind\n async handleSelectedAll(\n value: boolean,\n selectedRowKeys: Array<string | number>,\n selectedRows: Array<any>,\n changeRows: Array<any>\n ) {\n const {dispatchEvent, data, rowSelection, onSelectAll, store} = this.props;\n const rendererEvent = await dispatchEvent(\n 'selectedAll',\n createObject(data, {\n value,\n selectedRowKeys,\n selectedRows,\n changeRows\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n store.updateSelected(selectedRowKeys, rowSelection.keyField);\n onSelectAll &&\n onSelectAll(value, selectedRowKeys, selectedRows, selectedRowKeys);\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 ...payload\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: any) {\n const {dispatchEvent, data, onFilter} = this.props;\n const rendererEvent = await dispatchEvent(\n 'columnFilter',\n createObject(data, {\n payload\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onFilter && onFilter(payload);\n }\n\n @autobind\n async handleDragOver(dataSource: Array<any>) {\n const {dispatchEvent, data, onDrag} = this.props;\n const rendererEvent = await dispatchEvent(\n 'dragOver',\n createObject(data, {\n dataSource\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onDrag && onDrag(dataSource);\n }\n\n doAction(action: Action, args: any, throwErrors: boolean): any {\n const {store, rowSelection} = 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 store.updateSelected(args?.selectedRowKeys, 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 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 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.handleSelectedAll}\n onSort={this.handleSort}\n onFilter={this.handleFilter}\n onDrag={this.handleDragOver}\n ></Table>\n );\n }\n\n render() {\n const {classnames: cx} = this.props;\n\n this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了\n\n return (\n <div className={cx('Table-render-wrapper')}>\n {this.renderActions('header')}\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 {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 null,\n false,\n store.selectedRowKeys.map(item => item),\n store.selectedRows.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 = filter(props.rowSelection.selectedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag === 'true') {\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 = filter(props.expandable.expandedRowKeysExpr, {\n record: row,\n rowIndex: index\n });\n if (flag === 'true') {\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 record: any,\n value: boolean,\n selectedRows: Array<any>,\n selectedRowKeys: Array<string | number>\n ) {\n const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;\n const rendererEvent = await dispatchEvent(\n 'selected',\n createObject(data, {\n record,\n value,\n selectedRows,\n selectedRowKeys\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n store.updateSelected(selectedRowKeys, rowSelection.keyField);\n onSelect && onSelect(record, value, selectedRows, selectedRowKeys);\n }\n\n @autobind\n async handleSelectedAll(\n value: boolean,\n selectedRowKeys: Array<string | number>,\n selectedRows: Array<any>,\n changeRows: Array<any>\n ) {\n const {dispatchEvent, data, rowSelection, onSelectAll, store} = this.props;\n const rendererEvent = await dispatchEvent(\n 'selectedAll',\n createObject(data, {\n value,\n selectedRowKeys,\n selectedRows,\n changeRows\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n store.updateSelected(selectedRowKeys, rowSelection.keyField);\n onSelectAll &&\n onSelectAll(value, selectedRowKeys, selectedRows, selectedRowKeys);\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 ...payload\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: any) {\n const {dispatchEvent, data, onFilter} = this.props;\n const rendererEvent = await dispatchEvent(\n 'columnFilter',\n createObject(data, {\n payload\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onFilter && onFilter(payload);\n }\n\n @autobind\n async handleDragOver(dataSource: Array<any>) {\n const {dispatchEvent, data, onDrag} = this.props;\n const rendererEvent = await dispatchEvent(\n 'dragOver',\n createObject(data, {\n dataSource\n })\n );\n\n if (rendererEvent?.prevented) {\n return rendererEvent?.prevented;\n }\n\n onDrag && onDrag(dataSource);\n }\n\n doAction(action: Action, args: any, throwErrors: boolean): any {\n const {store, rowSelection} = 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 store.updateSelected(args?.selectedRowKeys, 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 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.handleSelectedAll}\n onSort={this.handleSort}\n onFilter={this.handleFilter}\n onDrag={this.handleDragOver}\n itemActions={itemActionsConfig}\n ></Table>\n );\n }\n\n render() {\n const {classnames: cx} = this.props;\n\n this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了\n\n return (\n <div className={cx('Table-render-wrapper')}>\n {this.renderActions('header')}\n {this.renderTable()}\n </div>\n );\n }\n}\n"
12
12
  ]
13
13
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "amis",
3
- "version": "1.9.1-beta.3",
3
+ "version": "1.9.1-beta.4",
4
4
  "description": "一种MIS页面生成工具",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
package/schema.json CHANGED
@@ -32797,6 +32797,18 @@
32797
32797
  "toggled": {
32798
32798
  "type": "boolean",
32799
32799
  "description": "当前列是否展示"
32800
+ },
32801
+ "className": {
32802
+ "type": "string",
32803
+ "description": "列样式"
32804
+ },
32805
+ "titleClassName": {
32806
+ "type": "string",
32807
+ "description": "表头单元格样式"
32808
+ },
32809
+ "classNameExpr": {
32810
+ "type": "string",
32811
+ "description": "单元格样式"
32800
32812
  }
32801
32813
  },
32802
32814
  "required": [
@@ -32851,8 +32863,7 @@
32851
32863
  }
32852
32864
  },
32853
32865
  "required": [
32854
- "type",
32855
- "selectedRowKeysExpr"
32866
+ "type"
32856
32867
  ],
32857
32868
  "additionalProperties": false
32858
32869
  },