@aplus-frontend/ui 6.28.4 → 6.29.0

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.
@@ -1,25 +1,25 @@
1
1
  import { noRenderAsFormItemValueList as s } from "../../ap-table/constants.mjs";
2
2
  import { computed as p, unref as l } from "vue";
3
- import { getColumnOrder as d, updateFormProps as m, getFieldProps as u, getSearchFormItemRenderNode as i } from "../../ap-table/utils.mjs";
3
+ import { getColumnOrder as d, updateFormProps as u, getFieldProps as m, getSearchFormItemRenderNode as i } from "../../ap-table/utils.mjs";
4
4
  import "../../config-provider/index.mjs";
5
5
  import { useGlobalConfig as c } from "../../config-provider/hooks/use-global-config.mjs";
6
- const h = (n) => {
6
+ const P = (n) => {
7
7
  let t = 0;
8
8
  const a = c("valueTypeMap");
9
9
  return p(() => (t++, n.columns?.filter(
10
- (e) => !e.hideInSearch && e.dataIndex && (e.valueType || e.customRenderFormItem) && !s.includes(e.valueType)
10
+ (e) => !e.hideInSearch && (e.dataIndex || e.key) && (e.valueType || e.customRenderFormItem) && !s.includes(e.valueType)
11
11
  )?.sort((e, o) => {
12
12
  const r = d(e.order);
13
13
  return d(o.order) - r;
14
14
  })?.map((e) => {
15
- const o = m(
15
+ const o = u(
16
16
  e,
17
- u(e.fieldProps, {})
17
+ m(e.fieldProps, {})
18
18
  ), r = {
19
19
  ...e,
20
20
  fieldProps: {
21
21
  label: e.title,
22
- name: e.dataIndex,
22
+ name: e.dataIndex || e.key,
23
23
  // tips: 在表格中的查询表单项默认是带边框的
24
24
  bordered: !0,
25
25
  ...o || {},
@@ -34,5 +34,5 @@ const h = (n) => {
34
34
  }) || []));
35
35
  };
36
36
  export {
37
- h as useSearchForm
37
+ P as useSearchForm
38
38
  };
@@ -1,31 +1,31 @@
1
- import { defineComponent as Je, useSlots as Qe, ref as F, toRef as k, unref as t, computed as l, nextTick as Xe, watch as P, createElementBlock as z, openBlock as v, normalizeStyle as E, normalizeClass as m, createCommentVNode as oe, createElementVNode as R, createVNode as V, mergeProps as A, createSlots as Ye, withCtx as te, Fragment as Ze, renderList as _e, createBlock as re, resolveDynamicComponent as eo, renderSlot as ae, withDirectives as oo, vShow as to } from "vue";
2
- import { AgGridVue as ro } from "ag-grid-vue3";
3
- import { ModuleRegistry as ao, AllCommunityModule as no } from "ag-grid-community";
4
- import { mergeProps as lo } from "./utils.mjs";
5
- import { Spin as so, Pagination as io } from "@aplus-frontend/antdv";
1
+ import { defineComponent as Xe, useSlots as Ye, ref as F, toRef as k, unref as t, computed as l, nextTick as Ze, watch as P, createElementBlock as z, openBlock as v, normalizeStyle as E, normalizeClass as m, createCommentVNode as oe, createElementVNode as R, createVNode as V, mergeProps as A, createSlots as _e, withCtx as te, Fragment as eo, renderList as oo, createBlock as re, resolveDynamicComponent as to, renderSlot as ae, withDirectives as ro, vShow as ao } from "vue";
2
+ import { AgGridVue as no } from "ag-grid-vue3";
3
+ import { ModuleRegistry as lo, AllCommunityModule as so } from "ag-grid-community";
4
+ import { mergeProps as io } from "./utils.mjs";
5
+ import { Spin as co, Pagination as uo } from "@aplus-frontend/antdv";
6
6
  import { isUndefined as b, isFunction as ne } from "lodash-unified";
7
7
  import "../config-provider/index.mjs";
8
- import { ApForm as co } from "../ap-form/index.mjs";
9
- import { recursionApColumns as uo } from "../ap-table/utils.mjs";
10
- import { useTablePaging as mo } from "../ap-table/hooks/use-table-paging-ng.mjs";
11
- import po from "./hooks/use-row-selection.mjs";
12
- import { useProvideSorter as fo } from "./context.mjs";
13
- import { useProvideApTable as go } from "../ap-table/context.mjs";
14
- import { sizeReverseMap as So, sizeMap as wo } from "../ap-grid/constants.mjs";
15
- import { useToken as yo } from "@aplus-frontend/antdv/es/theme/internal";
16
- import { useTheme as ho } from "./theme.mjs";
17
- import { useColumns as Co } from "./hooks/use-columns.mjs";
18
- import { useColumnsDef as vo } from "./hooks/use-columns-def.mjs";
19
- import { isDef as Ro } from "../utils/index.mjs";
20
- import { getValidVNodeList as bo } from "../utils/slot.mjs";
21
- import { useSearchForm as Bo } from "./hooks/use-search-form.mjs";
8
+ import { ApForm as mo } from "../ap-form/index.mjs";
9
+ import { recursionApColumns as po } from "../ap-table/utils.mjs";
10
+ import { useTablePaging as fo } from "../ap-table/hooks/use-table-paging-ng.mjs";
11
+ import wo from "./hooks/use-row-selection.mjs";
12
+ import { useProvideSorter as go } from "./context.mjs";
13
+ import { useProvideApTable as So } from "../ap-table/context.mjs";
14
+ import { sizeReverseMap as yo, sizeMap as ho } from "../ap-grid/constants.mjs";
15
+ import { useToken as Co } from "@aplus-frontend/antdv/es/theme/internal";
16
+ import { useTheme as vo } from "./theme.mjs";
17
+ import { useColumns as Ro } from "./hooks/use-columns.mjs";
18
+ import { useColumnsDef as bo } from "./hooks/use-columns-def.mjs";
19
+ import { isDef as Bo } from "../utils/index.mjs";
20
+ import { getValidVNodeList as Fo } from "../utils/slot.mjs";
21
+ import { useSearchForm as ko } from "./hooks/use-search-form.mjs";
22
22
  import "./components/empty/index.vue.mjs";
23
- import Fo from "./hooks/use-virtual-config.mjs";
24
- import { usePinnedRow as ko } from "./hooks/use-pinned-row.mjs";
25
- import xo from "./hooks/use-selection-col-def.mjs";
26
- import { useNamespace as Io } from "../config-provider/hooks/use-namespace.mjs";
27
- import To from "./components/empty/index.vue2.mjs";
28
- const rt = /* @__PURE__ */ Je({
23
+ import xo from "./hooks/use-virtual-config.mjs";
24
+ import { usePinnedRow as Io } from "./hooks/use-pinned-row.mjs";
25
+ import To from "./hooks/use-selection-col-def.mjs";
26
+ import { useNamespace as No } from "../config-provider/hooks/use-namespace.mjs";
27
+ import Do from "./components/empty/index.vue2.mjs";
28
+ const nt = /* @__PURE__ */ Xe({
29
29
  name: "AgGrid",
30
30
  __name: "index",
31
31
  props: {
@@ -93,54 +93,55 @@ const rt = /* @__PURE__ */ Je({
93
93
  virtual: { type: [Boolean, Object], default: void 0 },
94
94
  onRowClicked: {},
95
95
  onScrollEnd: {},
96
- rowClassName: {}
96
+ rowClassName: {},
97
+ rowClassRules: {}
97
98
  },
98
99
  setup(le, { expose: se }) {
99
- ao.registerModules([no]);
100
- const o = le, M = Qe(), { e: B, b: d, be: ie } = Io("ag-grid"), y = F(o.size), de = ho(y, k(o, "rowHeight")), ce = Fo(k(o, "virtual")), { rowPinnedGridConfig: O, getRowPinnedCellClass: ue } = ko(
100
+ lo.registerModules([so]);
101
+ const o = le, M = Ye(), { e: B, b: d, be: ie } = No("ag-grid"), y = F(o.size), ce = vo(y, k(o, "rowHeight")), de = xo(k(o, "virtual")), { rowPinnedGridConfig: O, getRowPinnedCellClass: ue } = Io(
101
102
  k(o, "summary")
102
- ), c = F(), [, me] = yo();
103
+ ), i = F(), [, me] = Co();
103
104
  let p = !!o.dataSource;
104
- const W = Bo(o), { shownColumns: f, columns: j, columnKeys: pe } = Co(o), { defaultColDef: fe, columnDefs: ge } = vo(
105
+ const W = ko(o), { shownColumns: f, columns: j, columnKeys: pe } = Ro(o), { defaultColDef: fe, columnDefs: we } = bo(
105
106
  j,
106
107
  o,
107
108
  ue
108
109
  ), x = F({});
109
- fo({
110
+ go({
110
111
  sorter: x,
111
112
  setSorter(e) {
112
113
  x.value = e;
113
114
  }
114
115
  });
115
- const Se = {
116
+ const ge = {
116
117
  asc: "ascend",
117
118
  desc: "descend"
118
119
  };
119
- function we() {
120
- const e = c.value.getColumns()?.filter((s) => s.getSort() !== void 0), r = t(x) || {};
120
+ function Se() {
121
+ const e = i.value.getColumns()?.filter((s) => s.getSort() !== void 0), r = t(x) || {};
121
122
  let a = e?.[0];
122
123
  const u = Object.keys(r);
123
124
  if (u.length && u.every((s) => r[s] === null)) {
124
125
  const s = Object.keys(r)[0];
125
- s && (a = c.value?.getColumn(s));
126
+ s && (a = i.value?.getColumn(s));
126
127
  }
127
128
  if (!a)
128
129
  return;
129
- const i = a.getColDef(), w = a.getSort();
130
+ const c = a.getColDef(), S = a.getSort();
130
131
  G(void 0, void 0, {
131
- column: i,
132
- field: i.field,
133
- order: w ? Se[w] : null
132
+ column: c,
133
+ field: c.field,
134
+ order: S ? ge[S] : null
134
135
  });
135
136
  }
136
- const ye = l(() => uo(t(f), (e) => {
137
+ const ye = l(() => po(t(f), (e) => {
137
138
  if (e.sorter === !0)
138
139
  return e.key || e.dataIndex;
139
- }).filter(Boolean)), he = l(() => Ro(o.manual) ? o.manual : bo(M.searchFormExtra?.() || []).some((r) => r.type?.name === "ApView")), {
140
- formRef: g,
140
+ }).filter(Boolean)), he = l(() => Bo(o.manual) ? o.manual : Fo(M.searchFormExtra?.() || []).some((r) => r.type?.name === "ApView")), {
141
+ formRef: w,
141
142
  submit: I,
142
143
  reset: T,
143
- data: S,
144
+ data: g,
144
145
  tableProps: L,
145
146
  handleTableChangeOptional: G,
146
147
  submitWith: H,
@@ -148,7 +149,7 @@ const rt = /* @__PURE__ */ Je({
148
149
  getPaging: Ce,
149
150
  setPaging: ve,
150
151
  setDataSource: Re
151
- } = mo({
152
+ } = fo({
152
153
  async request(e) {
153
154
  if (p = !1, !Fe.value && b(o.dataSource) && K(), !b(o.dataSource)) {
154
155
  const a = e.pageSize * (e.current - 1);
@@ -171,8 +172,8 @@ const rt = /* @__PURE__ */ Je({
171
172
  formatParams: o.beforeSearchSubmit,
172
173
  pagination: o.pagination,
173
174
  sortFields: ye
174
- }), be = xo(o, f), Be = l(
175
- () => b(o.dataSource) ? S.records : o.dataSource
175
+ }), be = To(o, f), Be = l(
176
+ () => b(o.dataSource) ? g.records : o.dataSource
176
177
  ), Fe = l(() => {
177
178
  const e = o.rowSelection === !0 ? {} : o.rowSelection;
178
179
  return e ? e.preserveSelectedRowKeys !== !1 : !1;
@@ -183,7 +184,7 @@ const rt = /* @__PURE__ */ Je({
183
184
  selectedRowKeys: Ie,
184
185
  clearAll: Te,
185
186
  selectMultiByKeys: Ne
186
- } = po({
187
+ } = wo({
187
188
  ...o.rowSelection === !0 ? {} : o.rowSelection,
188
189
  dataSource: Be,
189
190
  rowKey: o.rowKey
@@ -203,7 +204,7 @@ const rt = /* @__PURE__ */ Je({
203
204
  return ne(o.rowKey) ? o.rowKey(e) : e[o.rowKey];
204
205
  }
205
206
  const $ = ({
206
- api: e = c.value
207
+ api: e = i.value
207
208
  }) => {
208
209
  if (!o.rowSelection)
209
210
  return;
@@ -217,8 +218,8 @@ const rt = /* @__PURE__ */ Je({
217
218
  p = !1;
218
219
  const a = [];
219
220
  e.forEachNode((u) => {
220
- const h = u.data, i = D(h);
221
- r.find((w) => D(w) === i) && a.push(u);
221
+ const h = u.data, c = D(h);
222
+ r.find((S) => D(S) === c) && a.push(u);
222
223
  }), e.setNodesSelected({ nodes: a, newValue: !0 }), setTimeout(() => {
223
224
  p = !0;
224
225
  }, 0);
@@ -227,34 +228,34 @@ const rt = /* @__PURE__ */ Je({
227
228
  }, ze = () => {
228
229
  p = !0;
229
230
  }, K = () => {
230
- Te(), c.value?.deselectAll();
231
+ Te(), i.value?.deselectAll();
231
232
  };
232
233
  function Ee(e) {
233
- Ne(e), Xe(() => {
234
+ Ne(e), Ze(() => {
234
235
  $({});
235
236
  });
236
237
  }
237
238
  function q(e = !1) {
238
239
  const r = e ? "getFieldsValueTransformed" : "getFieldsValue";
239
- return g.value?.apForm?.[r]?.(!0);
240
+ return w.value?.apForm?.[r]?.(!0);
240
241
  }
241
242
  function J(e) {
242
- g.value?.apForm?.setFieldsValue?.(e);
243
+ w.value?.apForm?.setFieldsValue?.(e);
243
244
  }
244
245
  function Q() {
245
- return g.value?.getSorterItems() || [];
246
+ return w.value?.getSorterItems() || [];
246
247
  }
247
248
  function X(e) {
248
- g.value?.setSorterItems(e);
249
+ w.value?.setSorterItems(e);
249
250
  }
250
251
  function Y() {
251
- g.value?.resetSorterItems();
252
+ w.value?.resetSorterItems();
252
253
  }
253
254
  function Z(e) {
254
255
  return e && String(e);
255
256
  }
256
257
  function Ve(e) {
257
- const r = c.value;
258
+ const r = i.value;
258
259
  if (!r)
259
260
  return;
260
261
  const a = r.getColumnState() || [], u = e.map((n) => n.key ? String(n.key) : n.key).filter(Boolean), h = a.map((n) => {
@@ -264,37 +265,37 @@ const rt = /* @__PURE__ */ Je({
264
265
  ...n,
265
266
  hide: C
266
267
  }, ee = e.find(
267
- (qe) => Z(qe.key) === n.colId
268
+ (Qe) => Z(Qe.key) === n.colId
268
269
  );
269
270
  return ee && (_.pinned = ee.fixed || null), _;
270
- }), i = new Map(
271
+ }), c = new Map(
271
272
  e.map((n, C) => [Z(n.key), C])
272
- ), w = h.filter((n) => i.has(n.colId)).sort(
273
- (n, C) => i.get(n.colId) - i.get(C.colId)
273
+ ), S = h.filter((n) => c.has(n.colId)).sort(
274
+ (n, C) => c.get(n.colId) - c.get(C.colId)
274
275
  ), s = [];
275
- let $e = 0;
276
+ let Je = 0;
276
277
  for (const n of h)
277
- i.has(n.colId) ? s.push(w[$e++]) : s.push(n);
278
+ c.has(n.colId) ? s.push(S[Je++]) : s.push(n);
278
279
  r.applyColumnState({
279
280
  state: s,
280
281
  applyOrder: !0
281
282
  });
282
283
  }
283
- go({
284
+ So({
284
285
  columns: l(() => f.value),
285
286
  columnsBackup: l(() => j.value),
286
- size: l(() => wo[y.value]),
287
+ size: l(() => ho[y.value]),
287
288
  updateColumns(e) {
288
289
  console.log("run reset", e), f.value = e, o.onShownColumnsChange?.(e), Ve(e);
289
290
  },
290
291
  updateSize(e) {
291
- y.value = So[e];
292
+ y.value = yo[e];
292
293
  },
293
294
  renderConfig: l(() => ({
294
295
  className: ie("table-header", "title"),
295
296
  color: me.value.colorTextTertiary
296
297
  })),
297
- dataSource: l(() => t(S).records),
298
+ dataSource: l(() => t(g).records),
298
299
  getSearchFormValues: q,
299
300
  setSearchFormValues: J,
300
301
  submit: I,
@@ -306,7 +307,7 @@ const rt = /* @__PURE__ */ Je({
306
307
  resetSearchFormSorterItems: Y
307
308
  });
308
309
  const Ae = l(
309
- () => b(o.loading) ? S.loading : o.loading
310
+ () => b(o.loading) ? g.loading : o.loading
310
311
  ), Me = l(() => [
311
312
  d(),
312
313
  o.card ? null : d("wrapper"),
@@ -323,7 +324,7 @@ const rt = /* @__PURE__ */ Je({
323
324
  return D(r);
324
325
  }
325
326
  function Le(e, r) {
326
- c.value?.ensureIndexVisible(e, r);
327
+ i.value?.ensureIndexVisible(e, r);
327
328
  }
328
329
  function Ge(e) {
329
330
  o.onRowClicked?.(e.data, e.event);
@@ -331,7 +332,13 @@ const rt = /* @__PURE__ */ Je({
331
332
  function He(e) {
332
333
  o.onScrollEnd?.(e.direction);
333
334
  }
334
- const Ue = (e) => {
335
+ function Ue(e) {
336
+ return i.value?.refreshCells(e);
337
+ }
338
+ function $e(e) {
339
+ return i.value?.redrawRows(e);
340
+ }
341
+ const qe = (e) => {
335
342
  const r = [
336
343
  O.value.getRowClass?.(e)
337
344
  ];
@@ -353,7 +360,7 @@ const rt = /* @__PURE__ */ Je({
353
360
  y.value = e;
354
361
  }
355
362
  ), P(
356
- () => t(S).loading,
363
+ () => t(g).loading,
357
364
  (e) => {
358
365
  o.onLoadingChange?.(e);
359
366
  }
@@ -371,12 +378,14 @@ const rt = /* @__PURE__ */ Je({
371
378
  clearAll: K
372
379
  },
373
380
  scrollToRow: Le,
374
- getDataSource: () => t(S.records),
381
+ getDataSource: () => t(g.records),
375
382
  getPaging: Ce,
376
383
  setPaging: ve,
377
384
  getSearchFormSorterItems: Q,
378
385
  setSearchFormSorterItems: X,
379
- resetSearchFormSorterItems: Y
386
+ resetSearchFormSorterItems: Y,
387
+ refreshCells: Ue,
388
+ redrawRows: $e
380
389
  }), (e, r) => (v(), z("div", {
381
390
  class: m(Me.value),
382
391
  style: E(e.wrapperStyle)
@@ -386,16 +395,16 @@ const rt = /* @__PURE__ */ Je({
386
395
  class: m(e.card ? t(B)("search-wrapper") : null),
387
396
  style: E(e.searchFormWrapperStyle)
388
397
  }, [
389
- V(t(co).SearchForm, A(e.searchForm || {}, {
398
+ V(t(mo).SearchForm, A(e.searchForm || {}, {
390
399
  ref_key: "formRef",
391
- ref: g,
400
+ ref: w,
392
401
  "custom-reset": "",
393
402
  "submit-loading": t(L).loading,
394
403
  onSubmit: t(I),
395
404
  onReset: t(T)
396
- }), Ye({
405
+ }), _e({
397
406
  default: te(() => [
398
- (v(!0), z(Ze, null, _e(t(W), (a) => (v(), re(eo(a.renderNode), {
407
+ (v(!0), z(eo, null, oo(t(W), (a) => (v(), re(to(a.renderNode), {
399
408
  key: a.dataIndex
400
409
  }))), 128))
401
410
  ]),
@@ -427,41 +436,43 @@ const rt = /* @__PURE__ */ Je({
427
436
  R("div", {
428
437
  class: m(t(d)("grid-wrapper"))
429
438
  }, [
430
- V(t(ro), A(t(lo)(t(ce), t(O)), {
431
- "get-row-class": Ue,
439
+ V(t(no), A(t(io)(t(de), t(O)), {
440
+ "get-row-class": qe,
432
441
  style: Oe.value,
433
- "row-data": t(S).records,
434
- "column-defs": t(ge),
442
+ "row-data": t(g).records,
443
+ "column-defs": t(we),
435
444
  "default-col-def": t(fe),
436
445
  "suppress-loading-overlay": "",
437
446
  "row-selection": Ke.value,
438
447
  "selection-column-def": t(be),
439
448
  "get-row-id": je,
440
- theme: t(de),
449
+ theme: t(ce),
441
450
  "tooltip-show-delay": 500,
442
451
  "enable-browser-tooltips": e.browserTooltips,
443
452
  "tooltip-interaction": "",
444
- "no-rows-overlay-component": To,
445
- onSortChanged: we,
446
- onGridReady: r[0] || (r[0] = (a) => c.value = a.api),
453
+ "row-class-rules": e.rowClassRules,
454
+ "no-rows-overlay-component": Do,
455
+ "suppress-cell-focus": "",
456
+ onSortChanged: Se,
457
+ onGridReady: r[0] || (r[0] = (a) => i.value = a.api),
447
458
  onRowDataUpdated: $,
448
459
  onRowSelected: Pe,
449
460
  onFirstDataRendered: ze,
450
461
  onRowClicked: Ge,
451
462
  onBodyScrollEnd: He
452
- }), null, 16, ["style", "row-data", "column-defs", "default-col-def", "row-selection", "selection-column-def", "theme", "enable-browser-tooltips"]),
453
- oo(R("div", {
463
+ }), null, 16, ["style", "row-data", "column-defs", "default-col-def", "row-selection", "selection-column-def", "theme", "enable-browser-tooltips", "row-class-rules"]),
464
+ ro(R("div", {
454
465
  class: m(t(B)("table-loading-wrapper"))
455
466
  }, [
456
- V(t(so), { delay: 300 })
467
+ V(t(co), { delay: 300 })
457
468
  ], 2), [
458
- [to, Ae.value]
469
+ [ao, Ae.value]
459
470
  ])
460
471
  ], 2),
461
472
  R("div", {
462
473
  class: m(t(d)("pagination-wrapper"))
463
474
  }, [
464
- e.pagination !== !1 ? (v(), re(t(io), A({
475
+ e.pagination !== !1 ? (v(), re(t(uo), A({
465
476
  key: 0,
466
477
  class: t(d)("pagination")
467
478
  }, t(L).pagination, { onChange: We }), null, 16, ["class"])) : oe("", !0)
@@ -471,5 +482,5 @@ const rt = /* @__PURE__ */ Je({
471
482
  }
472
483
  });
473
484
  export {
474
- rt as default
485
+ nt as default
475
486
  };
@@ -4,7 +4,7 @@ import { TableProps } from '@aplus-frontend/antdv';
4
4
  import { ApFormSearchFormPopoverSorterItem, ApFormSearchFormProps } from '../ap-form/interface';
5
5
  import { Recordable } from '../type';
6
6
  import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/interface';
7
- import { ColDef, IRowNode, RowPinnedType, ScrollDirection } from 'ag-grid-community';
7
+ import { ColDef, IRowNode, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowPinnedType, ScrollDirection } from 'ag-grid-community';
8
8
  import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
9
9
  export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueType extends ApTableValueTypes = ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType = ExtraValueType | ValueType> = MergedValueType extends ExtraValueType | ValueType ? Omit<ExtraProColumnType<RecordType>, 'sorter' | 'rowSpan' | 'customCell' | 'customHeaderCell' | 'minWidth' | 'width' | 'maxWidth' | 'className' | 'class' | 'colSpan'> & {
10
10
  children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
@@ -251,6 +251,10 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
251
251
  * @description 固定行自定义样式类请使用`summary.rowClassName`
252
252
  */
253
253
  rowClassName?: string | string[] | ((data: RecordType, rowIndex: number) => string | string[]);
254
+ /**
255
+ * 表格行自定义样式规则集
256
+ */
257
+ rowClassRules?: RowClassRules<RecordType>;
254
258
  };
255
259
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
256
260
  /**
@@ -344,4 +348,16 @@ export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
344
348
  * @returns
345
349
  */
346
350
  resetSearchFormSorterItems: () => void;
351
+ /**
352
+ * 刷新单元格
353
+ * @param params
354
+ * @returns
355
+ */
356
+ refreshCells: (params?: RefreshCellsParams<RecordType>) => void;
357
+ /**
358
+ * 重新绘制行
359
+ * @param params
360
+ * @returns
361
+ */
362
+ redrawRows: (params?: RedrawRowsParams<RecordType>) => void;
347
363
  };
@@ -1,2 +1,2 @@
1
- declare const _default: "6.28.4";
1
+ declare const _default: "6.29.0";
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- const e = "6.28.4";
1
+ const e = "6.29.0";
2
2
  export {
3
3
  e as default
4
4
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../ap-table/constants.js"),n=require("vue"),o=require("../../ap-table/utils.js");require("../../config-provider/index.js");const l=require("../../config-provider/hooks/use-global-config.js"),c=s=>{let d=0;const u=l.useGlobalConfig("valueTypeMap");return n.computed(()=>(d++,s.columns?.filter(e=>!e.hideInSearch&&e.dataIndex&&(e.valueType||e.customRenderFormItem)&&!a.noRenderAsFormItemValueList.includes(e.valueType))?.sort((e,t)=>{const r=o.getColumnOrder(e.order);return o.getColumnOrder(t.order)-r})?.map(e=>{const t=o.updateFormProps(e,o.getFieldProps(e.fieldProps,{})),r={...e,fieldProps:{label:e.title,name:e.dataIndex,bordered:!0,...t||{},_signal:d},renderNode:void 0};return r.renderNode=o.getSearchFormItemRenderNode(r,n.unref(u)),r})||[]))};exports.useSearchForm=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../../ap-table/constants.js"),n=require("vue"),o=require("../../ap-table/utils.js");require("../../config-provider/index.js");const l=require("../../config-provider/hooks/use-global-config.js"),c=s=>{let d=0;const u=l.useGlobalConfig("valueTypeMap");return n.computed(()=>(d++,s.columns?.filter(e=>!e.hideInSearch&&(e.dataIndex||e.key)&&(e.valueType||e.customRenderFormItem)&&!a.noRenderAsFormItemValueList.includes(e.valueType))?.sort((e,t)=>{const r=o.getColumnOrder(e.order);return o.getColumnOrder(t.order)-r})?.map(e=>{const t=o.updateFormProps(e,o.getFieldProps(e.fieldProps,{})),r={...e,fieldProps:{label:e.title,name:e.dataIndex||e.key,bordered:!0,...t||{},_signal:d},renderNode:void 0};return r.renderNode=o.getSearchFormItemRenderNode(r,n.unref(u)),r})||[]))};exports.useSearchForm=c;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Ee=require("ag-grid-vue3"),$=require("ag-grid-community"),De=require("./utils.js"),G=require("@aplus-frontend/antdv"),d=require("lodash-unified");require("../config-provider/index.js");const Ke=require("../ap-form/index.js"),Ae=require("../ap-table/utils.js"),Me=require("../ap-table/hooks/use-table-paging-ng.js"),Oe=require("./hooks/use-row-selection.js"),Ue=require("./context.js"),je=require("../ap-table/context.js"),L=require("../ap-grid/constants.js"),We=require("@aplus-frontend/antdv/es/theme/internal"),$e=require("./theme.js"),Ge=require("./hooks/use-columns.js"),Le=require("./hooks/use-columns-def.js"),He=require("../utils/index.js"),_e=require("../utils/slot.js"),Je=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const Qe=require("./hooks/use-virtual-config.js"),Xe=require("./hooks/use-pinned-row.js"),Ye=require("./hooks/use-selection-col-def.js"),Ze=require("../config-provider/hooks/use-namespace.js"),eo=require("./components/empty/index.vue2.js"),oo=e.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},columns:{},rowSelection:{type:Boolean},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{}},setup(H,{expose:_}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=H,F=e.useSlots(),{e:C,b:u,be:J}=Ze.useNamespace("ag-grid"),w=e.ref(t.size),Q=$e.useTheme(w,e.toRef(t,"rowHeight")),X=Qe.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:q,getRowPinnedCellClass:Y}=Xe.usePinnedRow(e.toRef(t,"summary")),i=e.ref(),[,Z]=We.useToken();let f=!!t.dataSource;const N=Je.useSearchForm(t),{shownColumns:m,columns:z,columnKeys:ee}=Ge.useColumns(t),{defaultColDef:oe,columnDefs:te}=Le.useColumnsDef(z,t,Y),v=e.ref({});Ue.useProvideSorter({sorter:v,setSorter(o){v.value=o}});const re={asc:"ascend",desc:"descend"};function ne(){const o=i.value.getColumns()?.filter(l=>l.getSort()!==void 0),r=e.unref(v)||{};let n=o?.[0];const c=Object.keys(r);if(c.length&&c.every(l=>r[l]===null)){const l=Object.keys(r)[0];l&&(n=i.value?.getColumn(l))}if(!n)return;const s=n.getColDef(),S=n.getSort();P(void 0,void 0,{column:s,field:s.field,order:S?re[S]:null})}const ae=e.computed(()=>Ae.recursionApColumns(e.unref(m),o=>{if(o.sorter===!0)return o.key||o.dataIndex}).filter(Boolean)),le=e.computed(()=>He.isDef(t.manual)?t.manual:_e.getValidVNodeList(F.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:p,submit:R,reset:b,data:g,tableProps:I,handleTableChangeOptional:P,submitWith:T,refresh:V,getPaging:se,setPaging:ue,setDataSource:ie}=Me.useTablePaging({async request(o){if(f=!1,!fe.value&&d.isUndefined(t.dataSource)&&x(),!d.isUndefined(t.dataSource)){const n=o.pageSize*(o.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+o.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(o);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:e.ref([]),params:e.toRef(t,"params"),defaultData:t.defaultData,manual:e.unref(le),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ae}),ce=Ye.default(t,m),de=e.computed(()=>d.isUndefined(t.dataSource)?g.records:t.dataSource),fe=e.computed(()=>{const o=t.rowSelection===!0?{}:t.rowSelection;return o?o.preserveSelectedRowKeys!==!1:!1}),{select:me,unSelect:pe,selectedRows:B,selectedRowKeys:ge,clearAll:Se,selectMultiByKeys:we}=Oe.default({...t.rowSelection===!0?{}:t.rowSelection,dataSource:de,rowKey:t.rowKey}),ye={checkbox:"multiRow",radio:"singleRow"},he=e.computed(()=>{if(!t.rowSelection)return;const{type:o="checkbox",disabled:r}=t.rowSelection===!0?{}:t.rowSelection;return{mode:ye[o],isRowSelectable:n=>r?!r(n.data):!0}});function k(o){return d.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const E=({api:o=i.value})=>{if(!t.rowSelection)return;const r=B.value;if(!r.length){setTimeout(()=>{f=!0},0);return}f=!1;const n=[];o.forEachNode(c=>{const y=c.data,s=k(y);r.find(S=>k(S)===s)&&n.push(c)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{f=!0},0)},Ce=o=>{f&&(o.node.isSelected()?me(o.data):pe(o.data))},ve=()=>{f=!0},x=()=>{Se(),i.value?.deselectAll()};function Re(o){we(o),e.nextTick(()=>{E({})})}function D(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return p.value?.apForm?.[r]?.(!0)}function K(o){p.value?.apForm?.setFieldsValue?.(o)}function A(){return p.value?.getSorterItems()||[]}function M(o){p.value?.setSorterItems(o)}function O(){p.value?.resetSorterItems()}function U(o){return o&&String(o)}function be(o){const r=i.value;if(!r)return;const n=r.getColumnState()||[],c=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),y=n.map(a=>{if(!ee.value.includes(a.colId))return a;const h=!c.includes(a.colId),j={...a,hide:h},W=o.find(Ve=>U(Ve.key)===a.colId);return W&&(j.pinned=W.fixed||null),j}),s=new Map(o.map((a,h)=>[U(a.key),h])),S=y.filter(a=>s.has(a.colId)).sort((a,h)=>s.get(a.colId)-s.get(h.colId)),l=[];let Te=0;for(const a of y)s.has(a.colId)?l.push(S[Te++]):l.push(a);r.applyColumnState({state:l,applyOrder:!0})}je.useProvideApTable({columns:e.computed(()=>m.value),columnsBackup:e.computed(()=>z.value),size:e.computed(()=>L.sizeMap[w.value]),updateColumns(o){console.log("run reset",o),m.value=o,t.onShownColumnsChange?.(o),be(o)},updateSize(o){w.value=L.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:J("table-header","title"),color:Z.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(g).records),getSearchFormValues:D,setSearchFormValues:K,submit:R,submitWith:T,reset:b,refresh:V,getSearchFormSorterItems:A,setSearchFormSorterItems:M,resetSearchFormSorterItems:O});const Be=e.computed(()=>d.isUndefined(t.loading)?g.loading:t.loading),ke=e.computed(()=>[u(),t.card?null:u("wrapper"),u("adaptive"),u(`size-${w.value}`)].filter(Boolean)),xe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Fe=(o,r)=>{P({current:o,pageSize:r})};function qe(o){const r=o.data;return k(r)}function Ne(o,r){i.value?.ensureIndexVisible(o,r)}function ze(o){t.onRowClicked?.(o.data,o.event)}function Ie(o){t.onScrollEnd?.(o.direction)}const Pe=o=>{const r=[q.value.getRowClass?.(o)];if(!o.node.rowPinned){const n=d.isFunction(t.rowClassName)?t.rowClassName(o.data,o.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return e.watch(()=>t.dataSource,o=>{ie(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{w.value=o}),e.watch(()=>e.unref(g).loading,o=>{t.onLoadingChange?.(o)}),_({submit:R,reset:b,refresh:V,submitWith:T,setSearchFormValues:K,getSearchFormValues:D,getShowColumns:()=>e.unref(m),rowSelection:{selectedRows:e.computed(()=>B.value),setSelectedRowKeys:Re,clearAll:x},scrollToRow:Ne,getDataSource:()=>e.unref(g.records),getPaging:se,setPaging:ue,getSearchFormSorterItems:A,setSearchFormSorterItems:M,resetSearchFormSorterItems:O}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ke.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(d.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(N).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(C)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(Ke.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:p,"custom-reset":"","submit-loading":e.unref(I).loading,onSubmit:e.unref(R),onReset:e.unref(b)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[F.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(C)("table-wrapper"),o.card?e.unref(C)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(B),selectedRowKeys:e.unref(ge),shownColumns:e.unref(m),clearAll:x})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("grid-wrapper"))},[e.createVNode(e.unref(Ee.AgGridVue),e.mergeProps(e.unref(De.mergeProps)(e.unref(X),e.unref(q)),{"get-row-class":Pe,style:xe.value,"row-data":e.unref(g).records,"column-defs":e.unref(te),"default-col-def":e.unref(oe),"suppress-loading-overlay":"","row-selection":he.value,"selection-column-def":e.unref(ce),"get-row-id":qe,theme:e.unref(Q),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","no-rows-overlay-component":eo.default,onSortChanged:ne,onGridReady:r[0]||(r[0]=n=>i.value=n.api),onRowDataUpdated:E,onRowSelected:Ce,onFirstDataRendered:ve,onRowClicked:ze,onBodyScrollEnd:Ie}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","theme","enable-browser-tooltips"]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(C)("table-loading-wrapper"))},[e.createVNode(e.unref(G.Spin),{delay:300})],2),[[e.vShow,Be.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(u)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(G.Pagination),e.mergeProps({key:0,class:e.unref(u)("pagination")},e.unref(I).pagination,{onChange:Fe}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=oo;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Ke=require("ag-grid-vue3"),$=require("ag-grid-community"),Ae=require("./utils.js"),G=require("@aplus-frontend/antdv"),d=require("lodash-unified");require("../config-provider/index.js");const Me=require("../ap-form/index.js"),Oe=require("../ap-table/utils.js"),Ue=require("../ap-table/hooks/use-table-paging-ng.js"),je=require("./hooks/use-row-selection.js"),We=require("./context.js"),$e=require("../ap-table/context.js"),L=require("../ap-grid/constants.js"),Ge=require("@aplus-frontend/antdv/es/theme/internal"),Le=require("./theme.js"),He=require("./hooks/use-columns.js"),_e=require("./hooks/use-columns-def.js"),Je=require("../utils/index.js"),Qe=require("../utils/slot.js"),Xe=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const Ye=require("./hooks/use-virtual-config.js"),Ze=require("./hooks/use-pinned-row.js"),eo=require("./hooks/use-selection-col-def.js"),oo=require("../config-provider/hooks/use-namespace.js"),to=require("./components/empty/index.vue2.js"),ro=e.defineComponent({name:"AgGrid",__name:"index",props:{dropdownPrefixCls:{},bordered:{type:Boolean},locale:{},onChange:{},onResizeColumn:{},getPopupContainer:{},scroll:{},sortDirections:{},showSorterTooltip:{type:[Boolean,Object]},prefixCls:{},rowKey:{type:[String,Function],default:"key"},tableLayout:{},title:{},id:{},showHeader:{type:Boolean},components:{},customRow:{},customHeaderRow:{},direction:{},expandFixed:{type:[String,Boolean]},expandColumnWidth:{},expandedRowKeys:{},defaultExpandedRowKeys:{},expandedRowRender:{},expandRowByClick:{type:Boolean},expandIcon:{},onExpand:{},onExpandedRowsChange:{},defaultExpandAllRows:{type:Boolean},indentSize:{},expandIconColumnIndex:{},showExpandColumn:{type:Boolean},expandedRowClassName:{},childrenColumnName:{},rowExpandable:{},transformCellText:{},columns:{},rowSelection:{type:Boolean},card:{type:Boolean},params:{},request:{},defaultData:{},dataSource:{},onLoadingChange:{},onShownColumnsChange:{},searchForm:{type:[Boolean,Object],default:void 0},beforeSearchSubmit:{},pagination:{type:[Boolean,Object],default:void 0},searchFormWrapperStyle:{},tableWrapperStyle:{},wrapperStyle:{},tableStyle:{},manual:{type:Boolean,default:void 0},size:{default:"mini"},adaptive:{type:Boolean},columnResizable:{type:Boolean,default:!1},loading:{type:Boolean,default:void 0},summary:{},rowHeight:{},advanceRenderer:{type:Boolean},browserTooltips:{type:Boolean},virtual:{type:[Boolean,Object],default:void 0},onRowClicked:{},onScrollEnd:{},rowClassName:{},rowClassRules:{}},setup(H,{expose:_}){$.ModuleRegistry.registerModules([$.AllCommunityModule]);const t=H,F=e.useSlots(),{e:h,b:i,be:J}=oo.useNamespace("ag-grid"),S=e.ref(t.size),Q=Le.useTheme(S,e.toRef(t,"rowHeight")),X=Ye.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:q,getRowPinnedCellClass:Y}=Ze.usePinnedRow(e.toRef(t,"summary")),s=e.ref(),[,Z]=Ge.useToken();let f=!!t.dataSource;const N=Xe.useSearchForm(t),{shownColumns:m,columns:z,columnKeys:ee}=He.useColumns(t),{defaultColDef:oe,columnDefs:te}=_e.useColumnsDef(z,t,Y),v=e.ref({});We.useProvideSorter({sorter:v,setSorter(o){v.value=o}});const re={asc:"ascend",desc:"descend"};function ne(){const o=s.value.getColumns()?.filter(l=>l.getSort()!==void 0),r=e.unref(v)||{};let n=o?.[0];const c=Object.keys(r);if(c.length&&c.every(l=>r[l]===null)){const l=Object.keys(r)[0];l&&(n=s.value?.getColumn(l))}if(!n)return;const u=n.getColDef(),w=n.getSort();P(void 0,void 0,{column:u,field:u.field,order:w?re[w]:null})}const ae=e.computed(()=>Oe.recursionApColumns(e.unref(m),o=>{if(o.sorter===!0)return o.key||o.dataIndex}).filter(Boolean)),le=e.computed(()=>Je.isDef(t.manual)?t.manual:Qe.getValidVNodeList(F.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:p,submit:R,reset:b,data:g,tableProps:I,handleTableChangeOptional:P,submitWith:T,refresh:V,getPaging:se,setPaging:ue,setDataSource:ie}=Ue.useTablePaging({async request(o){if(f=!1,!fe.value&&d.isUndefined(t.dataSource)&&x(),!d.isUndefined(t.dataSource)){const n=o.pageSize*(o.current-1);return{data:(t.pagination===!1?t.dataSource:t.dataSource.slice(n,n+o.pageSize))||[],total:t.dataSource.length||0}}const r=await t.request?.(o);return{data:r?.data||[],total:r?.total||0}},namespace:"ap-grid",filterFields:e.ref([]),params:e.toRef(t,"params"),defaultData:t.defaultData,manual:e.unref(le),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ae}),ce=eo.default(t,m),de=e.computed(()=>d.isUndefined(t.dataSource)?g.records:t.dataSource),fe=e.computed(()=>{const o=t.rowSelection===!0?{}:t.rowSelection;return o?o.preserveSelectedRowKeys!==!1:!1}),{select:me,unSelect:pe,selectedRows:B,selectedRowKeys:ge,clearAll:we,selectMultiByKeys:Se}=je.default({...t.rowSelection===!0?{}:t.rowSelection,dataSource:de,rowKey:t.rowKey}),ye={checkbox:"multiRow",radio:"singleRow"},Ce=e.computed(()=>{if(!t.rowSelection)return;const{type:o="checkbox",disabled:r}=t.rowSelection===!0?{}:t.rowSelection;return{mode:ye[o],isRowSelectable:n=>r?!r(n.data):!0}});function k(o){return d.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const E=({api:o=s.value})=>{if(!t.rowSelection)return;const r=B.value;if(!r.length){setTimeout(()=>{f=!0},0);return}f=!1;const n=[];o.forEachNode(c=>{const y=c.data,u=k(y);r.find(w=>k(w)===u)&&n.push(c)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{f=!0},0)},he=o=>{f&&(o.node.isSelected()?me(o.data):pe(o.data))},ve=()=>{f=!0},x=()=>{we(),s.value?.deselectAll()};function Re(o){Se(o),e.nextTick(()=>{E({})})}function D(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return p.value?.apForm?.[r]?.(!0)}function K(o){p.value?.apForm?.setFieldsValue?.(o)}function A(){return p.value?.getSorterItems()||[]}function M(o){p.value?.setSorterItems(o)}function O(){p.value?.resetSorterItems()}function U(o){return o&&String(o)}function be(o){const r=s.value;if(!r)return;const n=r.getColumnState()||[],c=o.map(a=>a.key?String(a.key):a.key).filter(Boolean),y=n.map(a=>{if(!ee.value.includes(a.colId))return a;const C=!c.includes(a.colId),j={...a,hide:C},W=o.find(De=>U(De.key)===a.colId);return W&&(j.pinned=W.fixed||null),j}),u=new Map(o.map((a,C)=>[U(a.key),C])),w=y.filter(a=>u.has(a.colId)).sort((a,C)=>u.get(a.colId)-u.get(C.colId)),l=[];let Ee=0;for(const a of y)u.has(a.colId)?l.push(w[Ee++]):l.push(a);r.applyColumnState({state:l,applyOrder:!0})}$e.useProvideApTable({columns:e.computed(()=>m.value),columnsBackup:e.computed(()=>z.value),size:e.computed(()=>L.sizeMap[S.value]),updateColumns(o){console.log("run reset",o),m.value=o,t.onShownColumnsChange?.(o),be(o)},updateSize(o){S.value=L.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:J("table-header","title"),color:Z.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(g).records),getSearchFormValues:D,setSearchFormValues:K,submit:R,submitWith:T,reset:b,refresh:V,getSearchFormSorterItems:A,setSearchFormSorterItems:M,resetSearchFormSorterItems:O});const Be=e.computed(()=>d.isUndefined(t.loading)?g.loading:t.loading),ke=e.computed(()=>[i(),t.card?null:i("wrapper"),i("adaptive"),i(`size-${S.value}`)].filter(Boolean)),xe=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Fe=(o,r)=>{P({current:o,pageSize:r})};function qe(o){const r=o.data;return k(r)}function Ne(o,r){s.value?.ensureIndexVisible(o,r)}function ze(o){t.onRowClicked?.(o.data,o.event)}function Ie(o){t.onScrollEnd?.(o.direction)}function Pe(o){return s.value?.refreshCells(o)}function Te(o){return s.value?.redrawRows(o)}const Ve=o=>{const r=[q.value.getRowClass?.(o)];if(!o.node.rowPinned){const n=d.isFunction(t.rowClassName)?t.rowClassName(o.data,o.rowIndex):t.rowClassName;r.push(n)}return r.flat().filter(Boolean)};return e.watch(()=>t.dataSource,o=>{ie(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{S.value=o}),e.watch(()=>e.unref(g).loading,o=>{t.onLoadingChange?.(o)}),_({submit:R,reset:b,refresh:V,submitWith:T,setSearchFormValues:K,getSearchFormValues:D,getShowColumns:()=>e.unref(m),rowSelection:{selectedRows:e.computed(()=>B.value),setSelectedRowKeys:Re,clearAll:x},scrollToRow:Ne,getDataSource:()=>e.unref(g.records),getPaging:se,setPaging:ue,getSearchFormSorterItems:A,setSearchFormSorterItems:M,resetSearchFormSorterItems:O,refreshCells:Pe,redrawRows:Te}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ke.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(d.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(N).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(h)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(Me.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:p,"custom-reset":"","submit-loading":e.unref(I).loading,onSubmit:e.unref(R),onReset:e.unref(b)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(N),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[F.searchFormExtra?{name:"extra",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"searchFormExtra")]),key:"0"}:void 0]),1040,["submit-loading","onSubmit","onReset"])],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass([e.unref(h)("table-wrapper"),o.card?e.unref(h)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(i)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(B),selectedRowKeys:e.unref(ge),shownColumns:e.unref(m),clearAll:x})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i)("grid-wrapper"))},[e.createVNode(e.unref(Ke.AgGridVue),e.mergeProps(e.unref(Ae.mergeProps)(e.unref(X),e.unref(q)),{"get-row-class":Ve,style:xe.value,"row-data":e.unref(g).records,"column-defs":e.unref(te),"default-col-def":e.unref(oe),"suppress-loading-overlay":"","row-selection":Ce.value,"selection-column-def":e.unref(ce),"get-row-id":qe,theme:e.unref(Q),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","row-class-rules":o.rowClassRules,"no-rows-overlay-component":to.default,"suppress-cell-focus":"",onSortChanged:ne,onGridReady:r[0]||(r[0]=n=>s.value=n.api),onRowDataUpdated:E,onRowSelected:he,onFirstDataRendered:ve,onRowClicked:ze,onBodyScrollEnd:Ie}),null,16,["style","row-data","column-defs","default-col-def","row-selection","selection-column-def","theme","enable-browser-tooltips","row-class-rules"]),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(e.unref(h)("table-loading-wrapper"))},[e.createVNode(e.unref(G.Spin),{delay:300})],2),[[e.vShow,Be.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(i)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(G.Pagination),e.mergeProps({key:0,class:e.unref(i)("pagination")},e.unref(I).pagination,{onChange:Fe}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=ro;
@@ -4,7 +4,7 @@ import { TableProps } from '@aplus-frontend/antdv';
4
4
  import { ApFormSearchFormPopoverSorterItem, ApFormSearchFormProps } from '../ap-form/interface';
5
5
  import { Recordable } from '../type';
6
6
  import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/interface';
7
- import { ColDef, IRowNode, RowPinnedType, ScrollDirection } from 'ag-grid-community';
7
+ import { ColDef, IRowNode, RedrawRowsParams, RefreshCellsParams, RowClassRules, RowPinnedType, ScrollDirection } from 'ag-grid-community';
8
8
  import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
9
9
  export type AgGridColumnType<RecordType = any, ExtraValueType = 'text', ValueType extends ApTableValueTypes = ApTableValueTypes, MergedValueType extends ExtraValueType | ValueType = ExtraValueType | ValueType> = MergedValueType extends ExtraValueType | ValueType ? Omit<ExtraProColumnType<RecordType>, 'sorter' | 'rowSpan' | 'customCell' | 'customHeaderCell' | 'minWidth' | 'width' | 'maxWidth' | 'className' | 'class' | 'colSpan'> & {
10
10
  children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
@@ -251,6 +251,10 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
251
251
  * @description 固定行自定义样式类请使用`summary.rowClassName`
252
252
  */
253
253
  rowClassName?: string | string[] | ((data: RecordType, rowIndex: number) => string | string[]);
254
+ /**
255
+ * 表格行自定义样式规则集
256
+ */
257
+ rowClassRules?: RowClassRules<RecordType>;
254
258
  };
255
259
  export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
256
260
  /**
@@ -344,4 +348,16 @@ export type AgGridExpose<SearchParamsType = Recordable, RecordType = any> = {
344
348
  * @returns
345
349
  */
346
350
  resetSearchFormSorterItems: () => void;
351
+ /**
352
+ * 刷新单元格
353
+ * @param params
354
+ * @returns
355
+ */
356
+ refreshCells: (params?: RefreshCellsParams<RecordType>) => void;
357
+ /**
358
+ * 重新绘制行
359
+ * @param params
360
+ * @returns
361
+ */
362
+ redrawRows: (params?: RedrawRowsParams<RecordType>) => void;
347
363
  };
@@ -1,2 +1,2 @@
1
- declare const _default: "6.28.4";
1
+ declare const _default: "6.29.0";
2
2
  export default _default;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.28.4";exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.29.0";exports.default=e;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aplus-frontend/ui",
3
- "version": "6.28.4",
3
+ "version": "6.29.0",
4
4
  "main": "./lib/index.js",
5
5
  "type": "module",
6
6
  "files": [
@@ -690,6 +690,3 @@
690
690
  user-select: text;
691
691
  -webkit-user-select: text;
692
692
  }
693
- .aplus-ag-grid .ag-cell-focus:not(.ag-cell-range-selected):focus-within {
694
- border-color: transparent;
695
- }
@@ -158,8 +158,4 @@
158
158
  user-select: text;
159
159
  -webkit-user-select: text;
160
160
  }
161
- // avoid cell selectable style
162
- .ag-cell-focus:not(.ag-cell-range-selected):focus-within {
163
- border-color: transparent;
164
- }
165
161
  });
package/theme/index.css CHANGED
@@ -4389,9 +4389,6 @@ div.aplus-ap-info-layout-admin__header-shadow.aplus-ap-info-layout-admin__sticky
4389
4389
  user-select: text;
4390
4390
  -webkit-user-select: text;
4391
4391
  }
4392
- .aplus-ag-grid .ag-cell-focus:not(.ag-cell-range-selected):focus-within {
4393
- border-color: transparent;
4394
- }
4395
4392
  .aplus-ap-value-select-card {
4396
4393
  position: relative;
4397
4394
  margin-top: 8px;