@aplus-frontend/ui 6.28.4 → 6.29.1

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,35 +1,36 @@
1
- import { computed as m } from "vue";
1
+ import { computed as u } from "vue";
2
2
  import { isFunction as s } from "lodash-unified";
3
3
  import "../../ap-grid/index.mjs";
4
- import { ROW_SELECTION_FIELD as a } from "../../ap-grid/constants.mjs";
5
- function d(e) {
4
+ import { pxToNumber as a } from "../utils.mjs";
5
+ import { ROW_SELECTION_FIELD as d } from "../../ap-grid/constants.mjs";
6
+ function w(e) {
6
7
  return e?.bottom?.length || e?.top?.length;
7
8
  }
8
- const C = (e, l) => m(() => {
9
+ const D = (e, l) => u(() => {
9
10
  if (!e.rowSelection)
10
11
  return;
11
- const i = e.rowSelection === !0 ? {} : e.rowSelection, o = {
12
+ const n = e.rowSelection === !0 ? {} : e.rowSelection, o = {
12
13
  sortable: !1,
13
14
  resizable: !1,
14
- width: i.columnWidth || 60
15
+ width: a(n.columnWidth, 60)
15
16
  };
16
- let n = i.fixed;
17
- if (n === void 0 && (n = l.value.some(
17
+ let i = n.fixed;
18
+ if (i === void 0 && (i = l.value.some(
18
19
  (t) => t.fixed === "left" || t.fixed === !0
19
- ) ? "left" : void 0), o.pinned = n, d(e.summary)) {
20
+ ) ? "left" : void 0), o.pinned = i, w(e.summary)) {
20
21
  const { cellClassName: t } = e.summary;
21
22
  o.cellClass = ({
22
23
  node: r,
23
24
  data: f,
24
25
  colDef: c,
25
- rowIndex: u
26
+ rowIndex: m
26
27
  }) => {
27
28
  if (!(!r.rowPinned || !t))
28
- return s(t) ? t(f, c, r.rowPinned, u) : t;
29
- }, o.cellRenderer = ({ data: r }) => r?.[a];
29
+ return s(t) ? t(f, c, r.rowPinned, m) : t;
30
+ }, o.cellRenderer = ({ data: r }) => r?.[d];
30
31
  }
31
32
  return o;
32
33
  });
33
34
  export {
34
- C as default
35
+ D as default
35
36
  };
@@ -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
+ ), c = 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 = c.value.getColumns()?.filter((i) => i.getSort() !== void 0), r = t(x) || {};
121
122
  let a = e?.[0];
122
123
  const u = Object.keys(r);
123
- if (u.length && u.every((s) => r[s] === null)) {
124
- const s = Object.keys(r)[0];
125
- s && (a = c.value?.getColumn(s));
124
+ if (u.length && u.every((i) => r[i] === null)) {
125
+ const i = Object.keys(r)[0];
126
+ i && (a = c.value?.getColumn(i));
126
127
  }
127
128
  if (!a)
128
129
  return;
129
- const i = a.getColDef(), w = a.getSort();
130
+ const s = 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: s,
133
+ field: s.field || s.colId,
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
@@ -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, s = D(h);
222
+ r.find((S) => D(S) === s) && a.push(u);
222
223
  }), e.setNodesSelected({ nodes: a, newValue: !0 }), setTimeout(() => {
223
224
  p = !0;
224
225
  }, 0);
@@ -230,25 +231,25 @@ const rt = /* @__PURE__ */ Je({
230
231
  Te(), c.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);
@@ -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
+ }), s = 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)
274
- ), s = [];
275
- let $e = 0;
273
+ ), S = h.filter((n) => s.has(n.colId)).sort(
274
+ (n, C) => s.get(n.colId) - s.get(C.colId)
275
+ ), i = [];
276
+ let Je = 0;
276
277
  for (const n of h)
277
- i.has(n.colId) ? s.push(w[$e++]) : s.push(n);
278
+ s.has(n.colId) ? i.push(S[Je++]) : i.push(n);
278
279
  r.applyColumnState({
279
- state: s,
280
+ state: i,
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
- console.log("run reset", e), f.value = e, o.onShownColumnsChange?.(e), Ve(e);
289
+ 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"),
@@ -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 c.value?.refreshCells(e);
337
+ }
338
+ function $e(e) {
339
+ return c.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,
453
+ "row-class-rules": e.rowClassRules,
454
+ "no-rows-overlay-component": Do,
455
+ "suppress-cell-focus": "",
456
+ onSortChanged: Se,
446
457
  onGridReady: r[0] || (r[0] = (a) => c.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,9 @@
1
1
  import { GridOptions } from 'ag-grid-community';
2
2
  export declare function mergeProps(...options: GridOptions[]): GridOptions<any>;
3
+ /**
4
+ * 将尺寸单位px去掉
5
+ * @param value
6
+ * @param defaultValue
7
+ * @returns
8
+ */
9
+ export declare function pxToNumber(value?: string | number, defaultValue?: number): number;
@@ -1,6 +1,18 @@
1
- function o(...e) {
2
- return e.reduce((r, n) => ({ ...r, ...n }), {});
1
+ function e(...r) {
2
+ return r.reduce((n, t) => ({ ...n, ...t }), {});
3
+ }
4
+ function c(r, n = 0) {
5
+ if (!r)
6
+ return n;
7
+ if (typeof r == "number")
8
+ return r;
9
+ const t = r.match(/^(-?\d+(?:\.\d+)?)px$/);
10
+ if (!t)
11
+ return n;
12
+ const o = parseFloat(t[1]);
13
+ return o > 0 ? o : n;
3
14
  }
4
15
  export {
5
- o as mergeProps
16
+ e as mergeProps,
17
+ c as pxToNumber
6
18
  };
@@ -26,6 +26,8 @@ export interface ApTableModalProps<TableRowType = any> extends Omit<ModalProps,
26
26
  tableLayoutConfig?: TableLayoutConfig;
27
27
  /** 渲染头部信息 */
28
28
  renderHeader?: () => VNodeChild;
29
+ /** 弹框ok事件回调 */
30
+ onOk?: (data: OpenReturnType<TableRowType>) => Promise<boolean> | void;
29
31
  }
30
32
  /** useCreateTableModal参数类型 */
31
33
  export interface UseCreateTableModalProps extends ApTableModalProps {
@@ -1,4 +1,4 @@
1
- import { defineComponent as E, ref as d, unref as r, computed as G, h as H, createBlock as g, openBlock as w, mergeProps as m, withCtx as k, createCommentVNode as U, createVNode as R, resolveDynamicComponent as q } from "vue";
1
+ import { defineComponent as E, ref as d, unref as r, computed as G, h as H, createBlock as w, openBlock as g, mergeProps as m, withCtx as k, createCommentVNode as U, createVNode as R, resolveDynamicComponent as q } from "vue";
2
2
  import { message as h, Modal as V } from "@aplus-frontend/antdv";
3
3
  import "../../config-provider/index.mjs";
4
4
  import { ApTable as $ } from "../../ap-table/index.mjs";
@@ -10,7 +10,7 @@ import "./table-layout/index.vue.mjs";
10
10
  import { useLocale as W } from "../../config-provider/hooks/use-locale.mjs";
11
11
  import J from "./modal-title.vue2.mjs";
12
12
  import Q from "./table-layout/index.vue2.mjs";
13
- const ie = /* @__PURE__ */ E({
13
+ const ue = /* @__PURE__ */ E({
14
14
  __name: "table-modal",
15
15
  props: {
16
16
  columns: {},
@@ -24,6 +24,7 @@ const ie = /* @__PURE__ */ E({
24
24
  rowSelection: {},
25
25
  tableLayoutConfig: {},
26
26
  renderHeader: {},
27
+ onOk: {},
27
28
  prefixCls: {},
28
29
  confirmLoading: { type: Boolean, default: void 0 },
29
30
  title: {},
@@ -62,24 +63,24 @@ const ie = /* @__PURE__ */ E({
62
63
  },
63
64
  emits: ["finish"],
64
65
  setup(S, { expose: B, emit: P }) {
65
- const e = S, M = P, s = d(!1), v = d({}), u = d(null), a = d([]), b = d();
66
- let f = null, i = null;
67
- const { t: x } = W(), K = async (t = [], o = {}) => {
68
- switch (a.value = [...t], s.value = !0, v.value = o?.extraParams, b.value = o.apTableDataSources || e.apTableProps?.dataSource, o.refreshMode || "reset") {
66
+ const e = S, M = P, s = d(!1), v = d({}), i = d(null), a = d([]), C = d();
67
+ let f = null, u = null;
68
+ const { t: b } = W(), K = async (t = [], o = {}) => {
69
+ switch (a.value = [...t], s.value = !0, v.value = o?.extraParams, C.value = o.apTableDataSources || e.apTableProps?.dataSource, o.refreshMode || "reset") {
69
70
  case "reset":
70
- u.value?.reset();
71
+ i.value?.reset();
71
72
  break;
72
73
  case "submit":
73
- u.value?.submit();
74
+ i.value?.submit();
74
75
  break;
75
76
  case "none":
76
77
  break;
77
78
  }
78
79
  return new Promise((n, l) => {
79
- f = n, i = l;
80
+ f = n, u = l;
80
81
  });
81
- }, C = () => {
82
- s.value = !1, f = null, i?.(y.ModalCancel), i = null;
82
+ }, x = () => {
83
+ s.value = !1, f = null, u?.(y.ModalCancel), u = null;
83
84
  }, _ = async (t) => {
84
85
  t = z({
85
86
  ...t,
@@ -90,20 +91,24 @@ const ie = /* @__PURE__ */ E({
90
91
  data: n,
91
92
  total: l
92
93
  };
93
- }, I = () => {
94
+ }, I = async () => {
94
95
  if (a.value.length > e.maxCount) {
95
- i?.(y.ExceedMaxCount);
96
+ u?.(y.ExceedMaxCount);
96
97
  return;
97
98
  }
98
99
  if (e.getRowKey) {
99
100
  const t = j(r(a)), o = t.map(e.getRowKey);
100
- M("finish", o, t), f?.({ keys: o, rows: t });
101
+ if (M("finish", o, t), f?.({ keys: o, rows: t }), e.onOk && await e.onOk({
102
+ keys: o,
103
+ rows: t
104
+ }) === !1)
105
+ return;
101
106
  } else {
102
- i?.(y.NotFineGetRowKey);
107
+ u?.(y.NotFineGetRowKey);
103
108
  return;
104
109
  }
105
110
  s.value = !1;
106
- }, D = G(() => {
111
+ }, O = G(() => {
107
112
  if (!e.getRowKey) return;
108
113
  const t = e.getRowKey;
109
114
  return {
@@ -114,15 +119,15 @@ const ie = /* @__PURE__ */ E({
114
119
  onSelectAll(o, n) {
115
120
  if (n.length > e.maxCount) {
116
121
  h.warning(
117
- x("ap.apTableModal.messageMaxCount", {
122
+ b("ap.apTableModal.messageMaxCount", {
118
123
  maxCount: e.maxCount
119
124
  })
120
125
  );
121
126
  return;
122
127
  }
123
- const l = u.value?.dataSource;
128
+ const l = i.value?.dataSource;
124
129
  if (o) {
125
- const c = r(l).filter((p) => !a.value.some((O) => t(O) === t(p)));
130
+ const c = r(l).filter((p) => !a.value.some((F) => t(F) === t(p)));
126
131
  a.value = a.value.concat(c);
127
132
  } else
128
133
  a.value = a.value?.filter((c) => !l.some((p) => t(p) === t(c)));
@@ -131,7 +136,7 @@ const ie = /* @__PURE__ */ E({
131
136
  if (n) {
132
137
  if (a.value.length >= e.maxCount) {
133
138
  h.warning(
134
- x("ap.apTableModal.messageMaxCount", {
139
+ b("ap.apTableModal.messageMaxCount", {
135
140
  maxCount: e.maxCount
136
141
  })
137
142
  );
@@ -151,7 +156,7 @@ const ie = /* @__PURE__ */ E({
151
156
  }),
152
157
  ...e.rowSelection || {}
153
158
  };
154
- }), L = () => e.isRenderModalTitleSuffix ? H(
159
+ }), D = () => e.isRenderModalTitleSuffix ? H(
155
160
  J,
156
161
  {
157
162
  title: e.title,
@@ -161,9 +166,9 @@ const ie = /* @__PURE__ */ E({
161
166
  {
162
167
  default: e.renderModalTitleSuffix ?? void 0
163
168
  }
164
- ) : e.title, N = () => u.value, A = () => {
169
+ ) : e.title, L = () => i.value, N = () => {
165
170
  a.value = [];
166
- }, F = (t) => {
171
+ }, A = (t) => {
167
172
  const o = e.getRowKey;
168
173
  if (!o) return;
169
174
  const n = a.value.findIndex(
@@ -173,9 +178,9 @@ const ie = /* @__PURE__ */ E({
173
178
  };
174
179
  return B({
175
180
  open: K,
176
- close: C,
177
- getApTableInstance: N
178
- }), (t, o) => (w(), g(r(V), m(
181
+ close: x,
182
+ getApTableInstance: L
183
+ }), (t, o) => (g(), w(r(V), m(
179
184
  {
180
185
  open: s.value,
181
186
  "onUpdate:open": o[0] || (o[0] = (n) => s.value = n)
@@ -195,30 +200,30 @@ const ie = /* @__PURE__ */ E({
195
200
  "tableLayoutConfig"
196
201
  ]),
197
202
  {
198
- title: L(),
203
+ title: D(),
199
204
  centered: e.centered ?? !0,
200
205
  onOk: I,
201
- onCancel: C
206
+ onCancel: x
202
207
  }
203
208
  ), {
204
209
  default: k(() => [
205
- e.renderHeader ? (w(), g(q(e.renderHeader), { key: 0 })) : U("", !0),
210
+ e.renderHeader ? (g(), w(q(e.renderHeader), { key: 0 })) : U("", !0),
206
211
  R(Q, m(e.tableLayoutConfig || {}, {
207
212
  "selected-list": a.value,
208
- onClear: A,
209
- onDeleteItem: F
213
+ onClear: N,
214
+ onDeleteItem: A
210
215
  }), {
211
216
  default: k(() => [
212
217
  R(r($), m({
213
218
  ref_key: "apTableRef",
214
- ref: u,
219
+ ref: i,
215
220
  scroll: { y: 450 },
216
221
  style: { padding: "0px" },
217
222
  columns: t.columns,
218
223
  request: _,
219
224
  "row-key": t.getRowKey,
220
- "row-selection": D.value,
221
- "data-source": b.value,
225
+ "row-selection": O.value,
226
+ "data-source": C.value,
222
227
  "search-form": {
223
228
  sortable: !1,
224
229
  countPerRow: 2
@@ -233,5 +238,5 @@ const ie = /* @__PURE__ */ E({
233
238
  }
234
239
  });
235
240
  export {
236
- ie as default
241
+ ue as default
237
242
  };
@@ -1,2 +1,2 @@
1
- declare const _default: "6.28.4";
1
+ declare const _default: "6.29.1";
2
2
  export default _default;
@@ -1,4 +1,4 @@
1
- const e = "6.28.4";
1
+ const e = "6.29.1";
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 f=require("vue"),d=require("lodash-unified");require("../../ap-grid/index.js");const a=require("../../ap-grid/constants.js");function m(e){return e?.bottom?.length||e?.top?.length}const S=(e,l)=>f.computed(()=>{if(!e.rowSelection)return;const o=e.rowSelection===!0?{}:e.rowSelection,n={sortable:!1,resizable:!1,width:o.columnWidth||60};let i=o.fixed;if(i===void 0&&(i=l.value.some(t=>t.fixed==="left"||t.fixed===!0)?"left":void 0),n.pinned=i,m(e.summary)){const{cellClassName:t}=e.summary;n.cellClass=({node:r,data:u,colDef:c,rowIndex:s})=>{if(!(!r.rowPinned||!t))return d.isFunction(t)?t(u,c,r.rowPinned,s):t},n.cellRenderer=({data:r})=>r?.[a.ROW_SELECTION_FIELD]}return n});exports.default=S;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("vue"),d=require("lodash-unified");require("../../ap-grid/index.js");const a=require("../utils.js"),m=require("../../ap-grid/constants.js");function S(e){return e?.bottom?.length||e?.top?.length}const w=(e,l)=>f.computed(()=>{if(!e.rowSelection)return;const o=e.rowSelection===!0?{}:e.rowSelection,r={sortable:!1,resizable:!1,width:a.pxToNumber(o.columnWidth,60)};let i=o.fixed;if(i===void 0&&(i=l.value.some(t=>t.fixed==="left"||t.fixed===!0)?"left":void 0),r.pinned=i,S(e.summary)){const{cellClassName:t}=e.summary;r.cellClass=({node:n,data:u,colDef:c,rowIndex:s})=>{if(!(!n.rowPinned||!t))return d.isFunction(t)?t(u,c,n.rowPinned,s):t},r.cellRenderer=({data:n})=>n?.[m.ROW_SELECTION_FIELD]}return r});exports.default=w;
@@ -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")),u=e.ref(),[,Z]=Ge.useToken();let f=!!t.dataSource;const N=Xe.useSearchForm(t),{shownColumns:m,columns:I,columnKeys:ee}=He.useColumns(t),{defaultColDef:oe,columnDefs:te}=_e.useColumnsDef(I,t,Y),v=e.ref({});We.useProvideSorter({sorter:v,setSorter(o){v.value=o}});const re={asc:"ascend",desc:"descend"};function ne(){const o=u.value.getColumns()?.filter(s=>s.getSort()!==void 0),r=e.unref(v)||{};let n=o?.[0];const c=Object.keys(r);if(c.length&&c.every(s=>r[s]===null)){const s=Object.keys(r)[0];s&&(n=u.value?.getColumn(s))}if(!n)return;const l=n.getColDef(),w=n.getSort();P(void 0,void 0,{column:l,field:l.field||l.colId,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:z,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=u.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,l=k(y);r.find(w=>k(w)===l)&&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(),u.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=u.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}),l=new Map(o.map((a,C)=>[U(a.key),C])),w=y.filter(a=>l.has(a.colId)).sort((a,C)=>l.get(a.colId)-l.get(C.colId)),s=[];let Ee=0;for(const a of y)l.has(a.colId)?s.push(w[Ee++]):s.push(a);r.applyColumnState({state:s,applyOrder:!0})}$e.useProvideApTable({columns:e.computed(()=>m.value),columnsBackup:e.computed(()=>I.value),size:e.computed(()=>L.sizeMap[S.value]),updateColumns(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){u.value?.ensureIndexVisible(o,r)}function Ie(o){t.onRowClicked?.(o.data,o.event)}function ze(o){t.onScrollEnd?.(o.direction)}function Pe(o){return u.value?.refreshCells(o)}function Te(o){return u.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(z).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=>u.value=n.api),onRowDataUpdated:E,onRowSelected:he,onFirstDataRendered:ve,onRowClicked:Ie,onBodyScrollEnd:ze}),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(z).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,9 @@
1
1
  import { GridOptions } from 'ag-grid-community';
2
2
  export declare function mergeProps(...options: GridOptions[]): GridOptions<any>;
3
+ /**
4
+ * 将尺寸单位px去掉
5
+ * @param value
6
+ * @param defaultValue
7
+ * @returns
8
+ */
9
+ export declare function pxToNumber(value?: string | number, defaultValue?: number): number;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(...e){return e.reduce((r,t)=>({...r,...t}),{})}exports.mergeProps=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(...r){return r.reduce((e,t)=>({...e,...t}),{})}function c(r,e=0){if(!r)return e;if(typeof r=="number")return r;const t=r.match(/^(-?\d+(?:\.\d+)?)px$/);if(!t)return e;const n=parseFloat(t[1]);return n>0?n:e}exports.mergeProps=o;exports.pxToNumber=c;
@@ -26,6 +26,8 @@ export interface ApTableModalProps<TableRowType = any> extends Omit<ModalProps,
26
26
  tableLayoutConfig?: TableLayoutConfig;
27
27
  /** 渲染头部信息 */
28
28
  renderHeader?: () => VNodeChild;
29
+ /** 弹框ok事件回调 */
30
+ onOk?: (data: OpenReturnType<TableRowType>) => Promise<boolean> | void;
29
31
  }
30
32
  /** useCreateTableModal参数类型 */
31
33
  export interface UseCreateTableModalProps extends ApTableModalProps {
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),p=require("@aplus-frontend/antdv");require("../../config-provider/index.js");const I=require("../../ap-table/index.js"),m=require("lodash-unified"),O=require("@aplus-frontend/utils");require("./modal-title.vue.js");const v=require("./interface.js");require("./table-layout/index.vue.js");const A=require("../../config-provider/hooks/use-locale.js"),L=require("./modal-title.vue2.js"),N=require("./table-layout/index.vue2.js"),D=t.defineComponent({__name:"table-modal",props:{columns:{},getRowKey:{},api:{type:Function,default:async()=>({records:[],total:0})},apTableProps:{},maxCount:{default:1/0},isRenderModalTitleSuffix:{type:Boolean,default:!0},renderModalTitleSuffix:{},disabledCheckbox:{type:[Boolean,Function]},rowSelection:{},tableLayoutConfig:{},renderHeader:{},prefixCls:{},confirmLoading:{type:Boolean,default:void 0},title:{},closable:{type:Boolean,default:void 0},closeIcon:{},onCancel:{},"onUpdate:visible":{},"onUpdate:open":{},onChange:{},afterClose:{},centered:{type:Boolean,default:void 0},width:{},footer:{},okText:{},okType:{},cancelText:{},icon:{},maskClosable:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},okButtonProps:{},cancelButtonProps:{},destroyOnClose:{type:Boolean,default:void 0},wrapClassName:{},maskTransitionName:{},transitionName:{},getContainer:{type:[String,Boolean,Function],default:void 0},zIndex:{},bodyStyle:{},maskStyle:{},mask:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},wrapProps:{},focusTriggerAfterClose:{type:Boolean,default:void 0},modalRender:{},mousePosition:{}},emits:["finish"],setup(g,{expose:w,emit:k}){const e=g,R=k,s=t.ref(!1),y=t.ref({}),u=t.ref(null),n=t.ref([]),b=t.ref();let d=null,i=null;const{t:x}=A.useLocale(),h=async(o=[],a={})=>{switch(n.value=[...o],s.value=!0,y.value=a?.extraParams,b.value=a.apTableDataSources||e.apTableProps?.dataSource,a.refreshMode||"reset"){case"reset":u.value?.reset();break;case"submit":u.value?.submit();break;case"none":break}return new Promise((l,r)=>{d=l,i=r})},C=()=>{s.value=!1,d=null,i?.(v.AsyncOpenResultError.ModalCancel),i=null},T=async o=>{o=O.transformTableParams({...o,...y.value});const a=e.api,{records:l,total:r}=await a(o);return{data:l,total:r}},S=()=>{if(n.value.length>e.maxCount){i?.(v.AsyncOpenResultError.ExceedMaxCount);return}if(e.getRowKey){const o=m.cloneDeep(t.unref(n)),a=o.map(e.getRowKey);R("finish",a,o),d?.({keys:a,rows:o})}else{i?.(v.AsyncOpenResultError.NotFineGetRowKey);return}s.value=!1},_=t.computed(()=>{if(!e.getRowKey)return;const o=e.getRowKey;return{fixed:!0,selectedRowKeys:n.value.map(o),columnWidth:50,preserveSelectedRowKeys:!0,onSelectAll(a,l){if(l.length>e.maxCount){p.message.warning(x("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}const r=u.value?.dataSource;if(a){const c=t.unref(r).filter(f=>!n.value.some(K=>o(K)===o(f)));n.value=n.value.concat(c)}else n.value=n.value?.filter(c=>!r.some(f=>o(f)===o(c)))},onSelect(a,l){if(l){if(n.value.length>=e.maxCount){p.message.warning(x("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}n.value.push(a)}else{const r=n.value.findIndex(c=>o(a)===o(c));n.value.splice(r,1)}},getCheckboxProps:a=>({disabled:typeof e.disabledCheckbox=="function"?e.disabledCheckbox(a,n.value):e.disabledCheckbox}),...e.rowSelection||{}}}),B=()=>e.isRenderModalTitleSuffix?t.h(L.default,{title:e.title,count:n.value.length||0,maxCount:e.maxCount},{default:e.renderModalTitleSuffix??void 0}):e.title,P=()=>u.value,M=()=>{n.value=[]},q=o=>{const a=e.getRowKey;if(!a)return;const l=n.value.findIndex(r=>a(o)===a(r));n.value.splice(l,1)};return w({open:h,close:C,getApTableInstance:P}),(o,a)=>(t.openBlock(),t.createBlock(t.unref(p.Modal),t.mergeProps({open:s.value,"onUpdate:open":a[0]||(a[0]=l=>s.value=l)},t.unref(m.omit)(e,["api","getRowKey","centered","apTableProps","onOk","maxCount","title","renderModalTitleSuffix","isRenderModalTitleSuffix","rowSelection","disabledCheckbox","tableLayoutConfig"]),{title:B(),centered:e.centered??!0,onOk:S,onCancel:C}),{default:t.withCtx(()=>[e.renderHeader?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.renderHeader),{key:0})):t.createCommentVNode("",!0),t.createVNode(N.default,t.mergeProps(e.tableLayoutConfig||{},{"selected-list":n.value,onClear:M,onDeleteItem:q}),{default:t.withCtx(()=>[t.createVNode(t.unref(I.ApTable),t.mergeProps({ref_key:"apTableRef",ref:u,scroll:{y:450},style:{padding:"0px"},columns:o.columns,request:T,"row-key":o.getRowKey,"row-selection":_.value,"data-source":b.value,"search-form":{sortable:!1,countPerRow:2}},t.unref(m.omit)(e.apTableProps,"dataSource")),null,16,["columns","row-key","row-selection","data-source"])]),_:1},16,["selected-list"])]),_:1},16,["open","title","centered"]))}});exports.default=D;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),p=require("@aplus-frontend/antdv");require("../../config-provider/index.js");const O=require("../../ap-table/index.js"),m=require("lodash-unified"),I=require("@aplus-frontend/utils");require("./modal-title.vue.js");const y=require("./interface.js");require("./table-layout/index.vue.js");const A=require("../../config-provider/hooks/use-locale.js"),L=require("./modal-title.vue2.js"),N=require("./table-layout/index.vue2.js"),D=t.defineComponent({__name:"table-modal",props:{columns:{},getRowKey:{},api:{type:Function,default:async()=>({records:[],total:0})},apTableProps:{},maxCount:{default:1/0},isRenderModalTitleSuffix:{type:Boolean,default:!0},renderModalTitleSuffix:{},disabledCheckbox:{type:[Boolean,Function]},rowSelection:{},tableLayoutConfig:{},renderHeader:{},onOk:{},prefixCls:{},confirmLoading:{type:Boolean,default:void 0},title:{},closable:{type:Boolean,default:void 0},closeIcon:{},onCancel:{},"onUpdate:visible":{},"onUpdate:open":{},onChange:{},afterClose:{},centered:{type:Boolean,default:void 0},width:{},footer:{},okText:{},okType:{},cancelText:{},icon:{},maskClosable:{type:Boolean,default:void 0},forceRender:{type:Boolean,default:void 0},okButtonProps:{},cancelButtonProps:{},destroyOnClose:{type:Boolean,default:void 0},wrapClassName:{},maskTransitionName:{},transitionName:{},getContainer:{type:[String,Boolean,Function],default:void 0},zIndex:{},bodyStyle:{},maskStyle:{},mask:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},wrapProps:{},focusTriggerAfterClose:{type:Boolean,default:void 0},modalRender:{},mousePosition:{}},emits:["finish"],setup(g,{expose:w,emit:k}){const e=g,R=k,s=t.ref(!1),v=t.ref({}),u=t.ref(null),a=t.ref([]),b=t.ref();let d=null,i=null;const{t:x}=A.useLocale(),h=async(o=[],n={})=>{switch(a.value=[...o],s.value=!0,v.value=n?.extraParams,b.value=n.apTableDataSources||e.apTableProps?.dataSource,n.refreshMode||"reset"){case"reset":u.value?.reset();break;case"submit":u.value?.submit();break;case"none":break}return new Promise((l,r)=>{d=l,i=r})},C=()=>{s.value=!1,d=null,i?.(y.AsyncOpenResultError.ModalCancel),i=null},T=async o=>{o=I.transformTableParams({...o,...v.value});const n=e.api,{records:l,total:r}=await n(o);return{data:l,total:r}},S=async()=>{if(a.value.length>e.maxCount){i?.(y.AsyncOpenResultError.ExceedMaxCount);return}if(e.getRowKey){const o=m.cloneDeep(t.unref(a)),n=o.map(e.getRowKey);if(R("finish",n,o),d?.({keys:n,rows:o}),e.onOk&&await e.onOk({keys:n,rows:o})===!1)return}else{i?.(y.AsyncOpenResultError.NotFineGetRowKey);return}s.value=!1},_=t.computed(()=>{if(!e.getRowKey)return;const o=e.getRowKey;return{fixed:!0,selectedRowKeys:a.value.map(o),columnWidth:50,preserveSelectedRowKeys:!0,onSelectAll(n,l){if(l.length>e.maxCount){p.message.warning(x("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}const r=u.value?.dataSource;if(n){const c=t.unref(r).filter(f=>!a.value.some(K=>o(K)===o(f)));a.value=a.value.concat(c)}else a.value=a.value?.filter(c=>!r.some(f=>o(f)===o(c)))},onSelect(n,l){if(l){if(a.value.length>=e.maxCount){p.message.warning(x("ap.apTableModal.messageMaxCount",{maxCount:e.maxCount}));return}a.value.push(n)}else{const r=a.value.findIndex(c=>o(n)===o(c));a.value.splice(r,1)}},getCheckboxProps:n=>({disabled:typeof e.disabledCheckbox=="function"?e.disabledCheckbox(n,a.value):e.disabledCheckbox}),...e.rowSelection||{}}}),B=()=>e.isRenderModalTitleSuffix?t.h(L.default,{title:e.title,count:a.value.length||0,maxCount:e.maxCount},{default:e.renderModalTitleSuffix??void 0}):e.title,P=()=>u.value,M=()=>{a.value=[]},q=o=>{const n=e.getRowKey;if(!n)return;const l=a.value.findIndex(r=>n(o)===n(r));a.value.splice(l,1)};return w({open:h,close:C,getApTableInstance:P}),(o,n)=>(t.openBlock(),t.createBlock(t.unref(p.Modal),t.mergeProps({open:s.value,"onUpdate:open":n[0]||(n[0]=l=>s.value=l)},t.unref(m.omit)(e,["api","getRowKey","centered","apTableProps","onOk","maxCount","title","renderModalTitleSuffix","isRenderModalTitleSuffix","rowSelection","disabledCheckbox","tableLayoutConfig"]),{title:B(),centered:e.centered??!0,onOk:S,onCancel:C}),{default:t.withCtx(()=>[e.renderHeader?(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.renderHeader),{key:0})):t.createCommentVNode("",!0),t.createVNode(N.default,t.mergeProps(e.tableLayoutConfig||{},{"selected-list":a.value,onClear:M,onDeleteItem:q}),{default:t.withCtx(()=>[t.createVNode(t.unref(O.ApTable),t.mergeProps({ref_key:"apTableRef",ref:u,scroll:{y:450},style:{padding:"0px"},columns:o.columns,request:T,"row-key":o.getRowKey,"row-selection":_.value,"data-source":b.value,"search-form":{sortable:!1,countPerRow:2}},t.unref(m.omit)(e.apTableProps,"dataSource")),null,16,["columns","row-key","row-selection","data-source"])]),_:1},16,["selected-list"])]),_:1},16,["open","title","centered"]))}});exports.default=D;
@@ -1,2 +1,2 @@
1
- declare const _default: "6.28.4";
1
+ declare const _default: "6.29.1";
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.1";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.1",
4
4
  "main": "./lib/index.js",
5
5
  "type": "module",
6
6
  "files": [
@@ -37,8 +37,8 @@
37
37
  "scroll-into-view-if-needed": "^3.1.0",
38
38
  "vue-virtual-scroller": "2.0.0-beta.8",
39
39
  "vuedraggable": "^4.1.0",
40
- "@aplus-frontend/utils": "1.0.61",
41
- "@aplus-frontend/hooks": "1.0.7"
40
+ "@aplus-frontend/hooks": "1.0.7",
41
+ "@aplus-frontend/utils": "1.0.61"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@aplus-frontend/antdv": "^1.2.6",
@@ -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;