@nokecy/qc-ui 1.1.79 → 1.1.81

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -22,7 +22,7 @@ import { useField, useFieldSchema, RecursionField, Observer, useExpressionScope
22
22
  import { isArr, lazyMerge } from '@formily/shared';
23
23
  import { Schema } from '@formily/json-schema';
24
24
  import ArrayBase from "./arrayBase";
25
- import { fallbackFormatter, getReadOnlyFormatter } from "./readOnlyFormatters";
25
+ import { fallbackFormatter, getReadOnlyFormatter, getReadOnlyRenderer } from "./readOnlyFormatters";
26
26
  import { markHeaderGroup } from "./columnGroup";
27
27
  import { CellFocusScope } from "./cellFocusScope";
28
28
  var isColumnComponent = function isColumnComponent(schema) {
@@ -342,6 +342,7 @@ var LazyAgField = function LazyAgField(params) {
342
342
  colDef = params.colDef,
343
343
  context = params.context,
344
344
  formatter = params.formatter,
345
+ renderer = params.renderer,
345
346
  columnProps = params.columnProps,
346
347
  fieldSchema = params.fieldSchema,
347
348
  required = params.required;
@@ -461,6 +462,11 @@ var LazyAgField = function LazyAgField(params) {
461
462
  }
462
463
  }, resolveEmptyPlaceholder(fieldSchema));
463
464
  }
465
+ // 登记了只读渲染器的组件(如带颜色的 Tag)按渲染器出内容,与组件自己的阅读态一致
466
+ var shown = renderer && text !== '' ? renderer(liveValue, {
467
+ columnProps: columnProps,
468
+ fieldSchema: fieldSchema
469
+ }) : text;
464
470
  return /*#__PURE__*/React.createElement("span", {
465
471
  className: "ag-array-table-lazy-text",
466
472
  style: {
@@ -468,7 +474,7 @@ var LazyAgField = function LazyAgField(params) {
468
474
  width: '100%',
469
475
  cursor: 'text'
470
476
  }
471
- }, text);
477
+ }, shown);
472
478
  });
473
479
  };
474
480
 
@@ -488,6 +494,7 @@ var LazyReadOnlyText = function LazyReadOnlyText(params) {
488
494
  record = params.data,
489
495
  colDef = params.colDef,
490
496
  formatter = params.formatter,
497
+ renderer = params.renderer,
491
498
  columnProps = params.columnProps,
492
499
  fieldSchema = params.fieldSchema;
493
500
  var dataKey = (_fieldSchema$name2 = fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.name) !== null && _fieldSchema$name2 !== void 0 ? _fieldSchema$name2 : colDef === null || colDef === void 0 ? void 0 : colDef.field;
@@ -497,13 +504,17 @@ var LazyReadOnlyText = function LazyReadOnlyText(params) {
497
504
  columnProps: columnProps,
498
505
  fieldSchema: fieldSchema
499
506
  }) : liveValue == null ? '' : String(liveValue);
507
+ var shown = renderer && text !== '' ? renderer(liveValue, {
508
+ columnProps: columnProps,
509
+ fieldSchema: fieldSchema
510
+ }) : text;
500
511
  return /*#__PURE__*/React.createElement("span", {
501
512
  className: "ag-array-table-readonly-text",
502
513
  style: {
503
514
  display: 'inline-block',
504
515
  width: '100%'
505
516
  }
506
- }, text);
517
+ }, shown);
507
518
  });
508
519
  };
509
520
 
@@ -623,7 +634,9 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
623
634
  var readOnly = isColumnReadOnlyEligible(arrayPattern, dataField, columnProps);
624
635
  // 可编辑的数据字段(非 void 操作按钮)即使是业务自定义组件,也按兜底格式化器出懒挂载文本,默认阅读态;
625
636
  // 只读列不兜底:自定义只读组件常显示别的字段(如 SiblingText),按自身值出文本会错。@author nokecy
626
- var formatter = (_getReadOnlyFormatter = getReadOnlyFormatter(component)) !== null && _getReadOnlyFormatter !== void 0 ? _getReadOnlyFormatter : !readOnly && component && (dataField === null || dataField === void 0 ? void 0 : dataField.type) !== 'void' ? fallbackFormatter : null;
637
+ // 登记了只读渲染器的组件只读列也走快路径(渲染器出内容,兜底格式化器只用于判空)。@author nokecy
638
+ var renderer = getReadOnlyRenderer(component);
639
+ var formatter = (_getReadOnlyFormatter = getReadOnlyFormatter(component)) !== null && _getReadOnlyFormatter !== void 0 ? _getReadOnlyFormatter : (!readOnly || renderer) && component && (dataField === null || dataField === void 0 ? void 0 : dataField.type) !== 'void' ? fallbackFormatter : null;
627
640
  var hasReactions = !!(dataField && dataField['x-reactions']);
628
641
  if (!readOnly) applyNumberInputDefaults(dataField);
629
642
  var forceEager = (columnProps === null || columnProps === void 0 ? void 0 : columnProps.forceAgField) === true;
@@ -656,11 +669,32 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
656
669
  cellRenderer: LazyReadOnlyText,
657
670
  cellRendererParams: {
658
671
  formatter: formatter,
672
+ renderer: renderer,
659
673
  columnProps: columnProps,
660
674
  fieldSchema: dataField
661
675
  }
662
676
  }));
663
677
  }
678
+ if (renderer) {
679
+ // 登记了渲染器:整表阅读态也出渲染器内容(如 Tag),不退化成纯文字
680
+ return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
681
+ valueGetter: valueGetter
682
+ } : {}), {}, {
683
+ cellRenderer: function cellRenderer(params) {
684
+ var ctx = {
685
+ columnProps: columnProps,
686
+ fieldSchema: dataField
687
+ };
688
+ return formatter(params.value, ctx) === '' ? '' : renderer(params.value, ctx);
689
+ },
690
+ valueFormatter: function valueFormatter(params) {
691
+ return formatter(params.value, {
692
+ columnProps: columnProps,
693
+ fieldSchema: dataField
694
+ });
695
+ }
696
+ }));
697
+ }
664
698
  return emit(_objectSpread(_objectSpread(_objectSpread({}, base), valueGetter ? {
665
699
  valueGetter: valueGetter
666
700
  } : {}), {}, {
@@ -686,6 +720,7 @@ var buildArrayTableColumns = function buildArrayTableColumns(dataSource, field,
686
720
  schema: schema,
687
721
  field: field,
688
722
  formatter: formatter,
723
+ renderer: renderer,
689
724
  columnProps: columnProps,
690
725
  fieldSchema: dataField,
691
726
  lazyEditable: true,
@@ -29,6 +29,8 @@ export type * from "./importModal";
29
29
  export type * from "./fullScreenAlert";
30
30
  export type * from "./RuleBuilder";
31
31
  export type { ColumnConfig } from "./array-table/columnHelper";
32
+ export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer } from "./array-table/readOnlyFormatters";
33
+ export type { ReadOnlyFormatter, ReadOnlyFormatterCtx, ReadOnlyLabels, ReadOnlyRenderer } from "./array-table/readOnlyFormatters";
32
34
  export type { CentralizedColumnScheme, QueryScheme, SchemeStorageAdapter, SchemeSyncDataDto, CurrentSchemeDto, SchemeStorageConfig, LocalStorageAdapterConfig, BackendApiAdapterConfig, UseSchemeManagerConfig, GridPlusContextValue, GlobalConfigPermissions, } from "./ag-grid-plus";
33
35
  export * from './adapters';
34
36
  export * from "./readPretty";
package/dist/esm/index.js CHANGED
@@ -35,6 +35,9 @@ useSchemeManager, useGridSchemes, LocalStorageSchemeAdapter, BackendApiSchemeAda
35
35
 
36
36
  // 导出类型定义
37
37
 
38
+ // ArrayTable 格子文本:业务自定义组件登记「值 -> 名称」或自定义格式化器
39
+ export { registerReadOnlyFormatter, registerReadOnlyLabels, registerReadOnlyRenderer } from "./array-table/readOnlyFormatters";
40
+
38
41
  // 集中式方案管理类型
39
42
 
40
43
  // 注意: 旧的方案管理类型已废弃