@aplus-frontend/ui 6.27.0 → 6.28.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.
- package/es/src/ag-grid/hooks/use-columns.d.ts +2 -1
- package/es/src/ag-grid/hooks/use-columns.mjs +14 -10
- package/es/src/ag-grid/hooks/use-pinned-row.mjs +12 -7
- package/es/src/ag-grid/hooks/use-selection-col-def.d.ts +5 -0
- package/es/src/ag-grid/hooks/use-selection-col-def.mjs +35 -0
- package/es/src/ag-grid/index.vue.mjs +173 -183
- package/es/src/ag-grid/interface.d.ts +8 -7
- package/es/src/ag-grid/theme.mjs +13 -10
- package/es/src/ap-grid/interface.d.ts +1 -1
- package/es/src/ap-modal/utils/createModal.mjs +14 -14
- package/es/src/business/ap-summary/interface.d.ts +3 -1
- package/es/src/business/ap-summary/utils.mjs +14 -11
- package/es/src/version.d.ts +1 -1
- package/es/src/version.mjs +1 -1
- package/lib/src/ag-grid/hooks/use-columns.d.ts +2 -1
- package/lib/src/ag-grid/hooks/use-columns.js +1 -1
- package/lib/src/ag-grid/hooks/use-pinned-row.js +1 -1
- package/lib/src/ag-grid/hooks/use-selection-col-def.d.ts +5 -0
- package/lib/src/ag-grid/hooks/use-selection-col-def.js +1 -0
- package/lib/src/ag-grid/index.vue.js +1 -1
- package/lib/src/ag-grid/interface.d.ts +8 -7
- package/lib/src/ag-grid/theme.js +1 -1
- package/lib/src/ap-grid/interface.d.ts +1 -1
- package/lib/src/ap-modal/utils/createModal.js +1 -1
- package/lib/src/business/ap-summary/interface.d.ts +3 -1
- package/lib/src/business/ap-summary/utils.js +1 -1
- package/lib/src/version.d.ts +1 -1
- package/lib/src/version.js +1 -1
- package/package.json +1 -1
- package/theme/ap-value-select-card/index.css +3 -0
- package/theme/ap-value-select-card/index.less +3 -0
- package/theme/index.css +3 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
1
|
+
import { Ref, ComputedRef } from 'vue';
|
|
2
2
|
import { AgGridColumnType, AgGridProps } from '../interface';
|
|
3
3
|
/**
|
|
4
4
|
* 维护/更新表格将要显示的类
|
|
@@ -6,4 +6,5 @@ import { AgGridColumnType, AgGridProps } from '../interface';
|
|
|
6
6
|
export declare const useColumns: <RecordType>(props: AgGridProps<RecordType>) => {
|
|
7
7
|
columns: Ref<AgGridColumnType<RecordType>[], AgGridColumnType<RecordType>[]>;
|
|
8
8
|
shownColumns: Ref<AgGridColumnType<RecordType>[], AgGridColumnType<RecordType>[]>;
|
|
9
|
+
columnKeys: ComputedRef<string[]>;
|
|
9
10
|
};
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { ref as u, watch as
|
|
2
|
-
const
|
|
1
|
+
import { ref as u, computed as s, watch as r } from "vue";
|
|
2
|
+
const a = (n) => {
|
|
3
3
|
const o = u([]), t = u([]);
|
|
4
|
-
function
|
|
5
|
-
return
|
|
4
|
+
function m() {
|
|
5
|
+
return n.columns?.filter((e) => !e.hideInTable) || [];
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
() => e.
|
|
7
|
+
const l = s(
|
|
8
|
+
() => o.value.map((e) => e.key ? String(e.key) : e.key).filter(Boolean)
|
|
9
|
+
);
|
|
10
|
+
return r(
|
|
11
|
+
() => n.columns,
|
|
9
12
|
() => {
|
|
10
|
-
const
|
|
11
|
-
o.value =
|
|
13
|
+
const e = m();
|
|
14
|
+
o.value = e, t.value = e, n.onShownColumnsChange?.(e);
|
|
12
15
|
},
|
|
13
16
|
{
|
|
14
17
|
deep: !0,
|
|
@@ -16,9 +19,10 @@ const c = (e) => {
|
|
|
16
19
|
}
|
|
17
20
|
), {
|
|
18
21
|
columns: o,
|
|
19
|
-
shownColumns: t
|
|
22
|
+
shownColumns: t,
|
|
23
|
+
columnKeys: l
|
|
20
24
|
};
|
|
21
25
|
};
|
|
22
26
|
export {
|
|
23
|
-
|
|
27
|
+
a as useColumns
|
|
24
28
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { computed as
|
|
1
|
+
import { computed as s } from "vue";
|
|
2
2
|
import { isFunction as l } from "lodash-unified";
|
|
3
|
-
const
|
|
4
|
-
const d =
|
|
3
|
+
const P = (r) => {
|
|
4
|
+
const d = s(() => {
|
|
5
5
|
const o = r.value;
|
|
6
6
|
if (!o)
|
|
7
7
|
return {};
|
|
@@ -9,9 +9,9 @@ const C = (r) => {
|
|
|
9
9
|
return {
|
|
10
10
|
pinnedTopRowData: t,
|
|
11
11
|
pinnedBottomRowData: e,
|
|
12
|
-
getRowClass({ node: i, data:
|
|
12
|
+
getRowClass({ node: i, data: w, rowIndex: u }) {
|
|
13
13
|
if (!(!i.rowPinned || !n))
|
|
14
|
-
return l(n) ? n(
|
|
14
|
+
return l(n) ? n(w, u, i.rowPinned) : n;
|
|
15
15
|
}
|
|
16
16
|
};
|
|
17
17
|
});
|
|
@@ -21,12 +21,17 @@ const C = (r) => {
|
|
|
21
21
|
const { cellClassName: e } = r.value || {};
|
|
22
22
|
return !n.node.rowPinned || !e ? t = [o(n)] : t = [
|
|
23
23
|
o(n),
|
|
24
|
-
l(e) ? e(
|
|
24
|
+
l(e) ? e(
|
|
25
|
+
n.data,
|
|
26
|
+
n.colDef,
|
|
27
|
+
n.node.rowPinned,
|
|
28
|
+
n.rowIndex
|
|
29
|
+
) : e
|
|
25
30
|
], t.flat().filter(Boolean);
|
|
26
31
|
},
|
|
27
32
|
rowPinnedGridConfig: d
|
|
28
33
|
};
|
|
29
34
|
};
|
|
30
35
|
export {
|
|
31
|
-
|
|
36
|
+
P as usePinnedRow
|
|
32
37
|
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import { AgGridColumnType, AgGridProps } from '../interface';
|
|
3
|
+
import { SelectionColumnDef } from 'ag-grid-community';
|
|
4
|
+
declare const useRowSelectionColumnDef: <RecordType>(props: AgGridProps<RecordType>, shownColumns: Ref<AgGridColumnType<RecordType>[]>) => ComputedRef<SelectionColumnDef | undefined>;
|
|
5
|
+
export default useRowSelectionColumnDef;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { computed as m } from "vue";
|
|
2
|
+
import { isFunction as s } from "lodash-unified";
|
|
3
|
+
import "../../ap-grid/index.mjs";
|
|
4
|
+
import { ROW_SELECTION_FIELD as a } from "../../ap-grid/constants.mjs";
|
|
5
|
+
function d(e) {
|
|
6
|
+
return e?.bottom?.length || e?.top?.length;
|
|
7
|
+
}
|
|
8
|
+
const C = (e, l) => m(() => {
|
|
9
|
+
if (!e.rowSelection)
|
|
10
|
+
return;
|
|
11
|
+
const i = e.rowSelection === !0 ? {} : e.rowSelection, o = {
|
|
12
|
+
sortable: !1,
|
|
13
|
+
resizable: !1,
|
|
14
|
+
width: i.columnWidth || 60
|
|
15
|
+
};
|
|
16
|
+
let n = i.fixed;
|
|
17
|
+
if (n === void 0 && (n = l.value.some(
|
|
18
|
+
(t) => t.fixed === "left" || t.fixed === !0
|
|
19
|
+
) ? "left" : void 0), o.pinned = n, d(e.summary)) {
|
|
20
|
+
const { cellClassName: t } = e.summary;
|
|
21
|
+
o.cellClass = ({
|
|
22
|
+
node: r,
|
|
23
|
+
data: f,
|
|
24
|
+
colDef: c,
|
|
25
|
+
rowIndex: u
|
|
26
|
+
}) => {
|
|
27
|
+
if (!(!r.rowPinned || !t))
|
|
28
|
+
return s(t) ? t(f, c, r.rowPinned, u) : t;
|
|
29
|
+
}, o.cellRenderer = ({ data: r }) => r?.[a];
|
|
30
|
+
}
|
|
31
|
+
return o;
|
|
32
|
+
});
|
|
33
|
+
export {
|
|
34
|
+
C as default
|
|
35
|
+
};
|
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { AgGridVue as
|
|
3
|
-
import { ModuleRegistry as
|
|
4
|
-
import { Spin as
|
|
5
|
-
import { isUndefined as C, isFunction as
|
|
1
|
+
import { defineComponent as We, useSlots as je, ref as b, toRef as B, unref as t, computed as l, nextTick as Le, watch as P, createElementBlock as z, openBlock as h, normalizeStyle as E, normalizeClass as u, createCommentVNode as Q, createElementVNode as v, createVNode as I, mergeProps as V, createSlots as Ge, withCtx as X, Fragment as He, renderList as Ue, createBlock as Y, resolveDynamicComponent as $e, renderSlot as Z, withDirectives as qe, vShow as Je } from "vue";
|
|
2
|
+
import { AgGridVue as Qe } from "ag-grid-vue3";
|
|
3
|
+
import { ModuleRegistry as Xe, AllCommunityModule as Ye } from "ag-grid-community";
|
|
4
|
+
import { Spin as Ze, Pagination as _e } from "@aplus-frontend/antdv";
|
|
5
|
+
import { isUndefined as C, isFunction as eo } from "lodash-unified";
|
|
6
6
|
import "../config-provider/index.mjs";
|
|
7
|
-
import { ApForm as
|
|
8
|
-
import { recursionApColumns as
|
|
9
|
-
import { useTablePaging as
|
|
10
|
-
import
|
|
11
|
-
import { useProvideSorter as
|
|
12
|
-
import { useProvideApTable as
|
|
13
|
-
import { sizeReverseMap as
|
|
14
|
-
import { useToken as
|
|
15
|
-
import { useTheme as
|
|
16
|
-
import { useColumns as
|
|
17
|
-
import { useColumnsDef as
|
|
18
|
-
import { isDef as
|
|
19
|
-
import { getValidVNodeList as
|
|
20
|
-
import { useSearchForm as
|
|
7
|
+
import { ApForm as oo } from "../ap-form/index.mjs";
|
|
8
|
+
import { recursionApColumns as to } from "../ap-table/utils.mjs";
|
|
9
|
+
import { useTablePaging as ro } from "../ap-table/hooks/use-table-paging-ng.mjs";
|
|
10
|
+
import ao from "./hooks/use-row-selection.mjs";
|
|
11
|
+
import { useProvideSorter as no } from "./context.mjs";
|
|
12
|
+
import { useProvideApTable as lo } from "../ap-table/context.mjs";
|
|
13
|
+
import { sizeReverseMap as so, sizeMap as io } from "../ap-grid/constants.mjs";
|
|
14
|
+
import { useToken as co } from "@aplus-frontend/antdv/es/theme/internal";
|
|
15
|
+
import { useTheme as uo } from "./theme.mjs";
|
|
16
|
+
import { useColumns as mo } from "./hooks/use-columns.mjs";
|
|
17
|
+
import { useColumnsDef as po } from "./hooks/use-columns-def.mjs";
|
|
18
|
+
import { isDef as fo } from "../utils/index.mjs";
|
|
19
|
+
import { getValidVNodeList as So } from "../utils/slot.mjs";
|
|
20
|
+
import { useSearchForm as go } from "./hooks/use-search-form.mjs";
|
|
21
21
|
import "./components/empty/index.vue.mjs";
|
|
22
|
-
import
|
|
23
|
-
import { usePinnedRow as
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
|
|
22
|
+
import wo from "./hooks/use-virtual-config.mjs";
|
|
23
|
+
import { usePinnedRow as yo } from "./hooks/use-pinned-row.mjs";
|
|
24
|
+
import ho from "./hooks/use-selection-col-def.mjs";
|
|
25
|
+
import { useNamespace as vo } from "../config-provider/hooks/use-namespace.mjs";
|
|
26
|
+
import Co from "./components/empty/index.vue2.mjs";
|
|
27
|
+
const Jo = /* @__PURE__ */ We({
|
|
27
28
|
name: "AgGrid",
|
|
28
29
|
__name: "index",
|
|
29
30
|
props: {
|
|
@@ -93,136 +94,123 @@ const Uo = /* @__PURE__ */ Oe({
|
|
|
93
94
|
onScrollEnd: {}
|
|
94
95
|
},
|
|
95
96
|
setup(_, { expose: ee }) {
|
|
96
|
-
|
|
97
|
-
const o = _, A =
|
|
97
|
+
Xe.registerModules([Ye]);
|
|
98
|
+
const o = _, A = je();
|
|
98
99
|
function oe(...e) {
|
|
99
|
-
return e.reduce((
|
|
100
|
+
return e.reduce((r, a) => ({ ...r, ...a }), {});
|
|
100
101
|
}
|
|
101
|
-
const { e:
|
|
102
|
+
const { e: R, b: i, be: te } = vo("ag-grid"), y = b(o.size), re = uo(y, B(o, "rowHeight")), ae = wo(B(o, "virtual")), { rowPinnedGridConfig: ne, getRowPinnedCellClass: le } = yo(
|
|
102
103
|
B(o, "summary")
|
|
103
|
-
), d =
|
|
104
|
+
), d = b(), [, se] = co();
|
|
104
105
|
let m = !!o.dataSource;
|
|
105
|
-
const N =
|
|
106
|
+
const N = go(o), { shownColumns: p, columns: M, columnKeys: ie } = mo(o), { defaultColDef: de, columnDefs: ce } = po(
|
|
106
107
|
M,
|
|
107
108
|
o,
|
|
108
109
|
le
|
|
109
|
-
), F =
|
|
110
|
-
|
|
110
|
+
), F = b({});
|
|
111
|
+
no({
|
|
111
112
|
sorter: F,
|
|
112
113
|
setSorter(e) {
|
|
113
114
|
F.value = e;
|
|
114
115
|
}
|
|
115
116
|
});
|
|
116
|
-
const
|
|
117
|
+
const ue = {
|
|
117
118
|
asc: "ascend",
|
|
118
119
|
desc: "descend"
|
|
119
120
|
};
|
|
120
|
-
function
|
|
121
|
-
const e = d.value.getColumns()?.filter((s) => s.getSort() !== void 0),
|
|
121
|
+
function me() {
|
|
122
|
+
const e = d.value.getColumns()?.filter((s) => s.getSort() !== void 0), r = t(F) || {};
|
|
122
123
|
let a = e?.[0];
|
|
123
|
-
const c = Object.keys(
|
|
124
|
-
if (c.length && c.every((s) =>
|
|
125
|
-
const s = Object.keys(
|
|
124
|
+
const c = Object.keys(r);
|
|
125
|
+
if (c.length && c.every((s) => r[s] === null)) {
|
|
126
|
+
const s = Object.keys(r)[0];
|
|
126
127
|
s && (a = d.value?.getColumn(s));
|
|
127
128
|
}
|
|
128
129
|
if (!a)
|
|
129
130
|
return;
|
|
130
|
-
const w = a.getColDef(),
|
|
131
|
+
const w = a.getColDef(), n = a.getSort();
|
|
131
132
|
W(void 0, void 0, {
|
|
132
133
|
column: w,
|
|
133
134
|
field: w.field,
|
|
134
|
-
order:
|
|
135
|
+
order: n ? ue[n] : null
|
|
135
136
|
});
|
|
136
137
|
}
|
|
137
|
-
const
|
|
138
|
+
const pe = l(() => to(t(p), (e) => {
|
|
138
139
|
if (e.sorter === !0)
|
|
139
140
|
return e.key || e.dataIndex;
|
|
140
|
-
}).filter(Boolean)),
|
|
141
|
+
}).filter(Boolean)), fe = l(() => fo(o.manual) ? o.manual : So(A.searchFormExtra?.() || []).some((r) => r.type?.name === "ApView")), {
|
|
141
142
|
formRef: f,
|
|
142
|
-
submit:
|
|
143
|
-
reset:
|
|
143
|
+
submit: k,
|
|
144
|
+
reset: x,
|
|
144
145
|
data: S,
|
|
145
146
|
tableProps: O,
|
|
146
147
|
handleTableChangeOptional: W,
|
|
147
148
|
submitWith: j,
|
|
148
149
|
refresh: L,
|
|
149
|
-
getPaging:
|
|
150
|
-
setPaging:
|
|
151
|
-
setDataSource:
|
|
152
|
-
} =
|
|
150
|
+
getPaging: Se,
|
|
151
|
+
setPaging: ge,
|
|
152
|
+
setDataSource: we
|
|
153
|
+
} = ro({
|
|
153
154
|
async request(e) {
|
|
154
|
-
if (m = !1, !
|
|
155
|
+
if (m = !1, !ve.value && C(o.dataSource) && K(), !C(o.dataSource)) {
|
|
155
156
|
const a = e.pageSize * (e.current - 1);
|
|
156
157
|
return {
|
|
157
158
|
data: (o.pagination === !1 ? o.dataSource : o.dataSource.slice(a, a + e.pageSize)) || [],
|
|
158
159
|
total: o.dataSource.length || 0
|
|
159
160
|
};
|
|
160
161
|
}
|
|
161
|
-
const
|
|
162
|
+
const r = await o.request?.(e);
|
|
162
163
|
return {
|
|
163
|
-
data:
|
|
164
|
-
total:
|
|
164
|
+
data: r?.data || [],
|
|
165
|
+
total: r?.total || 0
|
|
165
166
|
};
|
|
166
167
|
},
|
|
167
168
|
namespace: "ap-grid",
|
|
168
|
-
filterFields:
|
|
169
|
+
filterFields: b([]),
|
|
169
170
|
params: B(o, "params"),
|
|
170
171
|
defaultData: o.defaultData,
|
|
171
|
-
manual:
|
|
172
|
+
manual: t(fe),
|
|
172
173
|
formatParams: o.beforeSearchSubmit,
|
|
173
174
|
pagination: o.pagination,
|
|
174
|
-
sortFields:
|
|
175
|
-
}),
|
|
175
|
+
sortFields: pe
|
|
176
|
+
}), ye = ho(o, p), he = l(
|
|
176
177
|
() => C(o.dataSource) ? S.records : o.dataSource
|
|
177
|
-
),
|
|
178
|
+
), ve = l(() => {
|
|
178
179
|
const e = o.rowSelection === !0 ? {} : o.rowSelection;
|
|
179
180
|
return e ? e.preserveSelectedRowKeys !== !1 : !1;
|
|
180
181
|
}), {
|
|
181
|
-
select:
|
|
182
|
-
unSelect:
|
|
182
|
+
select: Ce,
|
|
183
|
+
unSelect: Re,
|
|
183
184
|
selectedRows: T,
|
|
184
|
-
selectedRowKeys:
|
|
185
|
-
clearAll:
|
|
186
|
-
selectMultiByKeys:
|
|
187
|
-
} =
|
|
185
|
+
selectedRowKeys: be,
|
|
186
|
+
clearAll: Be,
|
|
187
|
+
selectMultiByKeys: Fe
|
|
188
|
+
} = ao({
|
|
188
189
|
...o.rowSelection === !0 ? {} : o.rowSelection,
|
|
189
|
-
dataSource:
|
|
190
|
+
dataSource: he,
|
|
190
191
|
rowKey: o.rowKey
|
|
191
|
-
}),
|
|
192
|
+
}), ke = {
|
|
192
193
|
checkbox: "multiRow",
|
|
193
194
|
radio: "singleRow"
|
|
194
|
-
},
|
|
195
|
+
}, xe = l(() => {
|
|
195
196
|
if (!o.rowSelection)
|
|
196
197
|
return;
|
|
197
|
-
const { type: e = "checkbox", disabled:
|
|
198
|
+
const { type: e = "checkbox", disabled: r } = o.rowSelection === !0 ? {} : o.rowSelection;
|
|
198
199
|
return {
|
|
199
|
-
mode:
|
|
200
|
-
isRowSelectable: (a) =>
|
|
201
|
-
};
|
|
202
|
-
}), xe = n(() => {
|
|
203
|
-
if (!o.rowSelection)
|
|
204
|
-
return;
|
|
205
|
-
const e = o.rowSelection === !0 ? {} : o.rowSelection;
|
|
206
|
-
let t = e.fixed;
|
|
207
|
-
return t === void 0 && (t = p.value.some(
|
|
208
|
-
(a) => a.fixed === "left" || a.fixed === !0
|
|
209
|
-
) ? "left" : void 0), {
|
|
210
|
-
sortable: !1,
|
|
211
|
-
resizable: !1,
|
|
212
|
-
width: e.columnWidth || 60,
|
|
213
|
-
pinned: t
|
|
200
|
+
mode: ke[e],
|
|
201
|
+
isRowSelectable: (a) => r ? !r(a.data) : !0
|
|
214
202
|
};
|
|
215
203
|
});
|
|
216
204
|
function D(e) {
|
|
217
|
-
return
|
|
205
|
+
return eo(o.rowKey) ? o.rowKey(e) : e[o.rowKey];
|
|
218
206
|
}
|
|
219
207
|
const G = ({
|
|
220
208
|
api: e = d.value
|
|
221
209
|
}) => {
|
|
222
210
|
if (!o.rowSelection)
|
|
223
211
|
return;
|
|
224
|
-
const
|
|
225
|
-
if (!
|
|
212
|
+
const r = T.value;
|
|
213
|
+
if (!r.length) {
|
|
226
214
|
setTimeout(() => {
|
|
227
215
|
m = !0;
|
|
228
216
|
}, 0);
|
|
@@ -232,25 +220,25 @@ const Uo = /* @__PURE__ */ Oe({
|
|
|
232
220
|
const a = [];
|
|
233
221
|
e.forEachNode((c) => {
|
|
234
222
|
const g = c.data, w = D(g);
|
|
235
|
-
|
|
223
|
+
r.find((n) => D(n) === w) && a.push(c);
|
|
236
224
|
}), e.setNodesSelected({ nodes: a, newValue: !0 }), setTimeout(() => {
|
|
237
225
|
m = !0;
|
|
238
226
|
}, 0);
|
|
239
|
-
},
|
|
240
|
-
m && (e.node.isSelected() ?
|
|
241
|
-
},
|
|
227
|
+
}, Te = (e) => {
|
|
228
|
+
m && (e.node.isSelected() ? Ce(e.data) : Re(e.data));
|
|
229
|
+
}, De = () => {
|
|
242
230
|
m = !0;
|
|
243
|
-
},
|
|
244
|
-
|
|
231
|
+
}, K = () => {
|
|
232
|
+
Be(), d.value?.deselectAll();
|
|
245
233
|
};
|
|
246
|
-
function
|
|
247
|
-
|
|
234
|
+
function Ke(e) {
|
|
235
|
+
Fe(e), Le(() => {
|
|
248
236
|
G({});
|
|
249
237
|
});
|
|
250
238
|
}
|
|
251
239
|
function H(e = !1) {
|
|
252
|
-
const
|
|
253
|
-
return f.value?.apForm?.[
|
|
240
|
+
const r = e ? "getFieldsValueTransformed" : "getFieldsValue";
|
|
241
|
+
return f.value?.apForm?.[r]?.(!0);
|
|
254
242
|
}
|
|
255
243
|
function U(e) {
|
|
256
244
|
f.value?.apForm?.setFieldsValue?.(e);
|
|
@@ -264,130 +252,132 @@ const Uo = /* @__PURE__ */ Oe({
|
|
|
264
252
|
function J() {
|
|
265
253
|
f.value?.resetSorterItems();
|
|
266
254
|
}
|
|
267
|
-
function
|
|
268
|
-
const
|
|
269
|
-
if (!
|
|
255
|
+
function Pe(e) {
|
|
256
|
+
const r = d.value;
|
|
257
|
+
if (!r)
|
|
270
258
|
return;
|
|
271
|
-
const a =
|
|
259
|
+
const a = r.getColumnState() || [], c = e.map((n) => n.key ? String(n.key) : n.key).filter(Boolean);
|
|
272
260
|
let g = !1;
|
|
273
|
-
const w = a.map((
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
261
|
+
const w = a.map((n) => {
|
|
262
|
+
if (!ie.value.includes(n.colId))
|
|
263
|
+
return n;
|
|
264
|
+
const s = !c.includes(n.colId);
|
|
265
|
+
return !g && s !== n.hide && (g = !0), {
|
|
266
|
+
...n,
|
|
277
267
|
hide: s
|
|
278
268
|
};
|
|
279
269
|
});
|
|
280
|
-
g &&
|
|
270
|
+
g && r.applyColumnState({
|
|
281
271
|
state: w,
|
|
282
272
|
applyOrder: !0
|
|
283
273
|
});
|
|
284
274
|
}
|
|
285
|
-
|
|
286
|
-
columns:
|
|
287
|
-
columnsBackup:
|
|
288
|
-
size:
|
|
275
|
+
lo({
|
|
276
|
+
columns: l(() => p.value),
|
|
277
|
+
columnsBackup: l(() => M.value),
|
|
278
|
+
size: l(() => io[y.value]),
|
|
289
279
|
updateColumns(e) {
|
|
290
|
-
p.value = e, o.onShownColumnsChange?.(e),
|
|
280
|
+
p.value = e, o.onShownColumnsChange?.(e), Pe(e);
|
|
291
281
|
},
|
|
292
282
|
updateSize(e) {
|
|
293
|
-
y.value =
|
|
283
|
+
y.value = so[e];
|
|
294
284
|
},
|
|
295
|
-
renderConfig:
|
|
285
|
+
renderConfig: l(() => ({
|
|
296
286
|
className: te("table-header", "title"),
|
|
297
287
|
color: se.value.colorTextTertiary
|
|
298
288
|
})),
|
|
299
|
-
dataSource:
|
|
289
|
+
dataSource: l(() => t(S).records),
|
|
300
290
|
getSearchFormValues: H,
|
|
301
291
|
setSearchFormValues: U,
|
|
302
|
-
submit:
|
|
292
|
+
submit: k,
|
|
303
293
|
submitWith: j,
|
|
304
|
-
reset:
|
|
294
|
+
reset: x,
|
|
305
295
|
refresh: L,
|
|
306
296
|
getSearchFormSorterItems: $,
|
|
307
297
|
setSearchFormSorterItems: q,
|
|
308
298
|
resetSearchFormSorterItems: J
|
|
309
299
|
});
|
|
310
|
-
const
|
|
300
|
+
const ze = l(
|
|
311
301
|
() => C(o.loading) ? S.loading : o.loading
|
|
312
|
-
),
|
|
302
|
+
), Ee = l(() => [
|
|
313
303
|
i(),
|
|
314
304
|
o.card ? null : i("wrapper"),
|
|
315
305
|
i("adaptive"),
|
|
316
306
|
i(`size-${y.value}`)
|
|
317
|
-
].filter(Boolean)),
|
|
307
|
+
].filter(Boolean)), Ie = l(() => ({
|
|
318
308
|
height: "100%",
|
|
319
309
|
...o.tableStyle || {}
|
|
320
|
-
})), Ve = (e,
|
|
321
|
-
W({ current: e, pageSize:
|
|
310
|
+
})), Ve = (e, r) => {
|
|
311
|
+
W({ current: e, pageSize: r });
|
|
322
312
|
};
|
|
323
|
-
function
|
|
324
|
-
const
|
|
325
|
-
return D(
|
|
313
|
+
function Ae(e) {
|
|
314
|
+
const r = e.data;
|
|
315
|
+
return D(r);
|
|
326
316
|
}
|
|
327
|
-
function
|
|
328
|
-
d.value?.ensureIndexVisible(e,
|
|
317
|
+
function Ne(e, r) {
|
|
318
|
+
d.value?.ensureIndexVisible(e, r);
|
|
329
319
|
}
|
|
330
|
-
function
|
|
320
|
+
function Me(e) {
|
|
331
321
|
o.onRowClicked?.(e.data);
|
|
332
322
|
}
|
|
333
|
-
function
|
|
323
|
+
function Oe(e) {
|
|
334
324
|
o.onScrollEnd?.(e.direction);
|
|
335
325
|
}
|
|
336
|
-
return
|
|
326
|
+
return P(
|
|
337
327
|
() => o.dataSource,
|
|
338
328
|
(e) => {
|
|
339
|
-
|
|
329
|
+
we(e);
|
|
340
330
|
},
|
|
341
331
|
{ immediate: !0, deep: !0 }
|
|
342
|
-
),
|
|
332
|
+
), P(
|
|
343
333
|
() => o.size,
|
|
344
334
|
(e) => {
|
|
345
335
|
y.value = e;
|
|
346
336
|
}
|
|
347
|
-
),
|
|
348
|
-
() =>
|
|
337
|
+
), P(
|
|
338
|
+
() => t(S).loading,
|
|
349
339
|
(e) => {
|
|
350
340
|
o.onLoadingChange?.(e);
|
|
351
341
|
}
|
|
352
342
|
), ee({
|
|
353
|
-
submit:
|
|
354
|
-
reset:
|
|
343
|
+
submit: k,
|
|
344
|
+
reset: x,
|
|
355
345
|
refresh: L,
|
|
356
346
|
submitWith: j,
|
|
357
347
|
setSearchFormValues: U,
|
|
358
348
|
getSearchFormValues: H,
|
|
359
|
-
getShowColumns: () =>
|
|
349
|
+
getShowColumns: () => t(p),
|
|
360
350
|
rowSelection: {
|
|
361
|
-
selectedRows:
|
|
362
|
-
setSelectedRowKeys:
|
|
363
|
-
clearAll:
|
|
351
|
+
selectedRows: l(() => T.value),
|
|
352
|
+
setSelectedRowKeys: Ke,
|
|
353
|
+
clearAll: K
|
|
364
354
|
},
|
|
365
|
-
scrollToRow:
|
|
366
|
-
getDataSource: () =>
|
|
367
|
-
getPaging:
|
|
368
|
-
setPaging:
|
|
355
|
+
scrollToRow: Ne,
|
|
356
|
+
getDataSource: () => t(S.records),
|
|
357
|
+
getPaging: Se,
|
|
358
|
+
setPaging: ge,
|
|
369
359
|
getSearchFormSorterItems: $,
|
|
370
360
|
setSearchFormSorterItems: q,
|
|
371
361
|
resetSearchFormSorterItems: J
|
|
372
|
-
}), (e,
|
|
373
|
-
class: u(
|
|
362
|
+
}), (e, r) => (h(), z("div", {
|
|
363
|
+
class: u(Ee.value),
|
|
374
364
|
style: E(e.wrapperStyle)
|
|
375
365
|
}, [
|
|
376
|
-
|
|
366
|
+
t(C)(e.dataSource) && e.searchForm !== !1 && t(N).length > 0 ? (h(), z("div", {
|
|
377
367
|
key: 0,
|
|
378
|
-
class: u(e.card ?
|
|
368
|
+
class: u(e.card ? t(R)("search-wrapper") : null),
|
|
379
369
|
style: E(e.searchFormWrapperStyle)
|
|
380
370
|
}, [
|
|
381
|
-
|
|
371
|
+
I(t(oo).SearchForm, V(e.searchForm || {}, {
|
|
382
372
|
ref_key: "formRef",
|
|
383
373
|
ref: f,
|
|
384
374
|
"custom-reset": "",
|
|
385
|
-
"submit-loading":
|
|
386
|
-
onSubmit:
|
|
387
|
-
onReset:
|
|
388
|
-
}),
|
|
375
|
+
"submit-loading": t(O).loading,
|
|
376
|
+
onSubmit: t(k),
|
|
377
|
+
onReset: t(x)
|
|
378
|
+
}), Ge({
|
|
389
379
|
default: X(() => [
|
|
390
|
-
(h(!0),
|
|
380
|
+
(h(!0), z(He, null, Ue(t(N), (a) => (h(), Y($e(a.renderNode), {
|
|
391
381
|
key: a.dataIndex
|
|
392
382
|
}))), 128))
|
|
393
383
|
]),
|
|
@@ -403,64 +393,64 @@ const Uo = /* @__PURE__ */ Oe({
|
|
|
403
393
|
]), 1040, ["submit-loading", "onSubmit", "onReset"])
|
|
404
394
|
], 6)) : Q("", !0),
|
|
405
395
|
v("div", {
|
|
406
|
-
class: u([
|
|
396
|
+
class: u([t(R)("table-wrapper"), e.card ? t(R)("table-wrapper-card") : null]),
|
|
407
397
|
style: E(e.tableWrapperStyle)
|
|
408
398
|
}, [
|
|
409
399
|
v("div", {
|
|
410
|
-
class: u(
|
|
400
|
+
class: u(t(i)("header-wrapper"))
|
|
411
401
|
}, [
|
|
412
402
|
Z(e.$slots, "title", {
|
|
413
|
-
selectedRows:
|
|
414
|
-
selectedRowKeys:
|
|
415
|
-
shownColumns:
|
|
416
|
-
clearAll:
|
|
403
|
+
selectedRows: t(T),
|
|
404
|
+
selectedRowKeys: t(be),
|
|
405
|
+
shownColumns: t(p),
|
|
406
|
+
clearAll: K
|
|
417
407
|
})
|
|
418
408
|
], 2),
|
|
419
409
|
v("div", {
|
|
420
|
-
class: u(
|
|
410
|
+
class: u(t(i)("grid-wrapper"))
|
|
421
411
|
}, [
|
|
422
|
-
|
|
423
|
-
style:
|
|
424
|
-
"row-data":
|
|
425
|
-
"column-defs":
|
|
426
|
-
"default-col-def":
|
|
412
|
+
I(t(Qe), V(oe(t(ae), t(ne)), {
|
|
413
|
+
style: Ie.value,
|
|
414
|
+
"row-data": t(S).records,
|
|
415
|
+
"column-defs": t(ce),
|
|
416
|
+
"default-col-def": t(de),
|
|
427
417
|
"suppress-loading-overlay": "",
|
|
428
|
-
"row-selection":
|
|
429
|
-
"selection-column-def":
|
|
430
|
-
"get-row-id":
|
|
431
|
-
theme:
|
|
418
|
+
"row-selection": xe.value,
|
|
419
|
+
"selection-column-def": t(ye),
|
|
420
|
+
"get-row-id": Ae,
|
|
421
|
+
theme: t(re),
|
|
432
422
|
"tooltip-show-delay": 500,
|
|
433
423
|
"enable-browser-tooltips": e.browserTooltips,
|
|
434
424
|
"tooltip-interaction": "",
|
|
435
|
-
"no-rows-overlay-component":
|
|
436
|
-
onSortChanged:
|
|
437
|
-
onGridReady:
|
|
425
|
+
"no-rows-overlay-component": Co,
|
|
426
|
+
onSortChanged: me,
|
|
427
|
+
onGridReady: r[0] || (r[0] = (a) => d.value = a.api),
|
|
438
428
|
onRowDataUpdated: G,
|
|
439
|
-
onRowSelected:
|
|
440
|
-
onFirstDataRendered:
|
|
441
|
-
onRowClicked:
|
|
442
|
-
onBodyScrollEnd:
|
|
429
|
+
onRowSelected: Te,
|
|
430
|
+
onFirstDataRendered: De,
|
|
431
|
+
onRowClicked: Me,
|
|
432
|
+
onBodyScrollEnd: Oe
|
|
443
433
|
}), null, 16, ["style", "row-data", "column-defs", "default-col-def", "row-selection", "selection-column-def", "theme", "enable-browser-tooltips"]),
|
|
444
|
-
|
|
445
|
-
class: u(
|
|
434
|
+
qe(v("div", {
|
|
435
|
+
class: u(t(R)("table-loading-wrapper"))
|
|
446
436
|
}, [
|
|
447
|
-
|
|
437
|
+
I(t(Ze), { delay: 300 })
|
|
448
438
|
], 2), [
|
|
449
|
-
[
|
|
439
|
+
[Je, ze.value]
|
|
450
440
|
])
|
|
451
441
|
], 2),
|
|
452
442
|
v("div", {
|
|
453
|
-
class: u(
|
|
443
|
+
class: u(t(i)("pagination-wrapper"))
|
|
454
444
|
}, [
|
|
455
|
-
e.pagination !== !1 ? (h(), Y(
|
|
445
|
+
e.pagination !== !1 ? (h(), Y(t(_e), V({
|
|
456
446
|
key: 0,
|
|
457
|
-
class:
|
|
458
|
-
},
|
|
447
|
+
class: t(i)("pagination")
|
|
448
|
+
}, t(O).pagination, { onChange: Ve }), null, 16, ["class"])) : Q("", !0)
|
|
459
449
|
], 2)
|
|
460
450
|
], 6)
|
|
461
451
|
], 6));
|
|
462
452
|
}
|
|
463
453
|
});
|
|
464
454
|
export {
|
|
465
|
-
|
|
455
|
+
Jo as default
|
|
466
456
|
};
|
|
@@ -7,7 +7,7 @@ import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/int
|
|
|
7
7
|
import { ColDef, IRowNode, 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
|
-
children?: AgGridColumnType<RecordType, ExtraValueType, ValueType
|
|
10
|
+
children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
|
|
11
11
|
/**
|
|
12
12
|
* 表单项所占据的格子数(1-24格)
|
|
13
13
|
*/
|
|
@@ -111,6 +111,12 @@ export type AgGridVirtualConfig = {
|
|
|
111
111
|
col?: boolean;
|
|
112
112
|
rowBuffer?: number;
|
|
113
113
|
};
|
|
114
|
+
export type AgGridSummaryType<RecordType = any> = {
|
|
115
|
+
top?: RecordType[];
|
|
116
|
+
bottom?: RecordType[];
|
|
117
|
+
cellClassName?: string | string[] | ((data: RecordType, column: ColDef<RecordType>, pinned: RowPinnedType, rowIndex: number) => string | string[]);
|
|
118
|
+
rowClassName?: string | string[] | ((data: RecordType, rowIndex: number, pinned: RowPinnedType) => string | string[]);
|
|
119
|
+
};
|
|
114
120
|
export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<RecordType>, 'columns' | 'pagination' | 'dataSource' | 'size' | 'rowSelection' | 'rowClassName' | 'footer' | 'loading' | 'sticky'> & {
|
|
115
121
|
/**
|
|
116
122
|
* 列配置
|
|
@@ -210,12 +216,7 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
|
|
|
210
216
|
/**
|
|
211
217
|
* 总结栏配置项
|
|
212
218
|
*/
|
|
213
|
-
summary?:
|
|
214
|
-
top?: RecordType[];
|
|
215
|
-
bottom?: RecordType[];
|
|
216
|
-
cellClassName?: string | string[] | ((data: RecordType, column: ColDef<RecordType>, pinned: RowPinnedType) => string | string[]);
|
|
217
|
-
rowClassName?: string | string[] | ((data: RecordType, rowIndex: number, pinned: RowPinnedType) => string | string[]);
|
|
218
|
-
};
|
|
219
|
+
summary?: AgGridSummaryType<RecordType>;
|
|
219
220
|
/**
|
|
220
221
|
* 指定每一行占据的高度(大量数据展示时的性能优化)
|
|
221
222
|
*/
|
package/es/src/ag-grid/theme.mjs
CHANGED
|
@@ -1,26 +1,29 @@
|
|
|
1
|
-
import { useToken as
|
|
1
|
+
import { useToken as d } from "@aplus-frontend/antdv/es/theme/internal";
|
|
2
2
|
import { themeQuartz as n } from "ag-grid-community";
|
|
3
|
-
import { computed as
|
|
4
|
-
const
|
|
5
|
-
const [,
|
|
6
|
-
return
|
|
7
|
-
const
|
|
3
|
+
import { computed as c } from "vue";
|
|
4
|
+
const p = (e, r) => {
|
|
5
|
+
const [, a] = d();
|
|
6
|
+
return c(() => {
|
|
7
|
+
const t = e.value === "mini", o = a.value;
|
|
8
8
|
return n.withParams({
|
|
9
9
|
headerHeight: "36px",
|
|
10
10
|
headerFontSize: "12px",
|
|
11
11
|
dataFontSize: "12px",
|
|
12
|
-
rowHeight:
|
|
13
|
-
spacing:
|
|
12
|
+
rowHeight: r.value,
|
|
13
|
+
spacing: t ? "5px" : "6.5px",
|
|
14
14
|
foregroundColor: o.colorTextBase,
|
|
15
15
|
wrapperBorder: !1,
|
|
16
16
|
rowBorder: { color: o.colorBorderSecondary },
|
|
17
17
|
headerRowBorder: { color: o.colorBorderSecondary },
|
|
18
18
|
selectedRowBackgroundColor: o.controlItemBgActive,
|
|
19
19
|
checkboxCheckedBackgroundColor: o.colorPrimary,
|
|
20
|
-
rowHoverColor: "var(--ap-color-bg-2)"
|
|
20
|
+
rowHoverColor: "var(--ap-color-bg-2)",
|
|
21
|
+
headerBackgroundColor: "var(--ap-table-header-bg)",
|
|
22
|
+
headerColumnResizeHandleHeight: "50%",
|
|
23
|
+
headerColumnResizeHandleWidth: "1px"
|
|
21
24
|
});
|
|
22
25
|
});
|
|
23
26
|
};
|
|
24
27
|
export {
|
|
25
|
-
|
|
28
|
+
p as useTheme
|
|
26
29
|
};
|
|
@@ -8,7 +8,7 @@ import { VxeTablePropTypes, VxeColumnPropTypes, VxeTableProps, VxeTableDefines,
|
|
|
8
8
|
import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
|
|
9
9
|
export type ColConfigType = VxeTableDefines.ColumnOptions;
|
|
10
10
|
export type ApGridColumnType<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' | 'className' | 'class'> & {
|
|
11
|
-
children?: ApGridColumnType<RecordType, ExtraValueType, ValueType
|
|
11
|
+
children?: ApGridColumnType<RecordType, ExtraValueType, ValueType>[];
|
|
12
12
|
/**
|
|
13
13
|
* 表单项所占据的格子数(1-24格)
|
|
14
14
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { render as m, defineComponent as y, createVNode as d, mergeProps as
|
|
2
|
-
import { Modal as
|
|
1
|
+
import { render as m, defineComponent as y, createVNode as d, mergeProps as x, h as k } from "vue";
|
|
2
|
+
import { Modal as w } from "@aplus-frontend/antdv";
|
|
3
3
|
import { ConfigProvider as P, globalConfigCached as l } from "../../config-provider/config-provider.mjs";
|
|
4
4
|
import { omit as b } from "lodash-unified";
|
|
5
5
|
import { isNumeric as N } from "@aplus-frontend/utils";
|
|
@@ -13,9 +13,9 @@ const q = (s) => {
|
|
|
13
13
|
destroyOnClose: a = !0,
|
|
14
14
|
wrapperOffset: t = !1
|
|
15
15
|
} = s, {
|
|
16
|
-
b:
|
|
16
|
+
b: p
|
|
17
17
|
} = E("ap-modal");
|
|
18
|
-
function
|
|
18
|
+
function i() {
|
|
19
19
|
o && o(!1), setTimeout(() => {
|
|
20
20
|
m(null, r), r.parentElement?.removeChild(r);
|
|
21
21
|
}, 500);
|
|
@@ -52,7 +52,7 @@ const q = (s) => {
|
|
|
52
52
|
const e = this.props?.content?.component?.exposed ?? void 0;
|
|
53
53
|
await this.props?.onCancel(e);
|
|
54
54
|
}
|
|
55
|
-
a ?
|
|
55
|
+
a ? i() : c();
|
|
56
56
|
},
|
|
57
57
|
async handleOk() {
|
|
58
58
|
try {
|
|
@@ -64,7 +64,7 @@ const q = (s) => {
|
|
|
64
64
|
}
|
|
65
65
|
n({
|
|
66
66
|
confirmLoading: !1
|
|
67
|
-
}), a ?
|
|
67
|
+
}), a ? i() : c();
|
|
68
68
|
} catch {
|
|
69
69
|
n({
|
|
70
70
|
confirmLoading: !1
|
|
@@ -75,10 +75,10 @@ const q = (s) => {
|
|
|
75
75
|
render() {
|
|
76
76
|
const e = b(this.props, ["onCancel", "onOk", "open", "onUpdate:open", "getContainer", "icon"]);
|
|
77
77
|
return d(P, l.value, {
|
|
78
|
-
default: () => [d(
|
|
78
|
+
default: () => [d(w, x({
|
|
79
79
|
class: {
|
|
80
|
-
[
|
|
81
|
-
[
|
|
80
|
+
[p()]: !0,
|
|
81
|
+
[p("wrapper")]: t
|
|
82
82
|
},
|
|
83
83
|
open: this.open,
|
|
84
84
|
onCancel: this.handleCancel,
|
|
@@ -87,18 +87,18 @@ const q = (s) => {
|
|
|
87
87
|
}, e), {
|
|
88
88
|
default: () => [d("div", {
|
|
89
89
|
class: {
|
|
90
|
-
[
|
|
90
|
+
[p("body-wrapper")]: t
|
|
91
91
|
},
|
|
92
92
|
style: t === !1 ? {} : {
|
|
93
|
-
maxHeight:
|
|
93
|
+
maxHeight: `calc(100vh - ${(t === !0 ? 100 : N(t) ? Number(t) : 100) * 2}px)`
|
|
94
94
|
}
|
|
95
95
|
}, [this.props?.content])]
|
|
96
96
|
})]
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
-
}), g = f(l?.value?.getPopupContainer), O = f(s.getContainer),
|
|
100
|
-
return
|
|
101
|
-
destroy:
|
|
99
|
+
}), g = f(l?.value?.getPopupContainer), O = f(s.getContainer), v = g || O || L().document.body, r = document.createElement("div");
|
|
100
|
+
return v.appendChild(r), m(k(C), r), {
|
|
101
|
+
destroy: i,
|
|
102
102
|
update: h,
|
|
103
103
|
open: u,
|
|
104
104
|
close: c
|
|
@@ -2,7 +2,8 @@ import { ColumnsType } from '@aplus-frontend/antdv/es/table';
|
|
|
2
2
|
import { AlignType, DataIndex, Key } from '@aplus-frontend/antdv/es/vc-table/interface';
|
|
3
3
|
import { ApColumnType } from '../../ap-table';
|
|
4
4
|
import { ApGridColumnType } from '../../ap-grid';
|
|
5
|
-
|
|
5
|
+
import { AgGridColumnType } from '../../ag-grid';
|
|
6
|
+
export type SummaryColumnType = ApColumnType[] | ApGridColumnType[] | AgGridColumnType[] | ColumnsType | any[];
|
|
6
7
|
export type ValueType = {
|
|
7
8
|
[key in string]: any;
|
|
8
9
|
};
|
|
@@ -40,4 +41,5 @@ export interface ComputedRecordParams<T> {
|
|
|
40
41
|
* 排出 在 columns 和 configList中相同key 的配置项
|
|
41
42
|
*/
|
|
42
43
|
exclude?: Key[];
|
|
44
|
+
valueTypeExtension?: string[];
|
|
43
45
|
}
|
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
import { flatten as f, uniqBy as
|
|
2
|
-
import { toThousand as
|
|
1
|
+
import { flatten as f, uniqBy as x, isNil as b, get as s, set as C } from "lodash-unified";
|
|
2
|
+
import { toThousand as L, toFixed as N, addNumber as T } from "@aplus-frontend/utils";
|
|
3
3
|
const m = (t) => t?.children && t?.children?.length > 0 ? f(t.children?.map((e) => m(e))) : [t], j = (t) => f(
|
|
4
4
|
t?.map((e) => m(e))
|
|
5
|
-
), l = (t) => Object.prototype.toString.call(t) === "[object Array]" ? t.map((e) => String(e)).join(".") : t ?? "",
|
|
5
|
+
), l = (t) => Object.prototype.toString.call(t) === "[object Array]" ? t.map((e) => String(e)).join(".") : t ?? "", S = (t, e, u) => u ? L(t, e) : N(t, e);
|
|
6
6
|
function q(t) {
|
|
7
|
-
const { records: e, columns:
|
|
7
|
+
const { records: e, columns: u, configList: c, exclude: a, valueTypeExtension: y } = t;
|
|
8
8
|
if (!e || e?.length === 0)
|
|
9
9
|
return {};
|
|
10
|
-
let r = j(
|
|
10
|
+
let r = j(u)?.filter(
|
|
11
|
+
(n) => n.valueType === "number" || // 兼容自定义valueType的情况
|
|
12
|
+
y?.includes(n.valueType)
|
|
13
|
+
)?.map((n) => ({
|
|
11
14
|
key: n.key || "",
|
|
12
15
|
dataIndex: n.dataIndex
|
|
13
16
|
}));
|
|
14
|
-
|
|
17
|
+
c && c?.length > 0 && (r = x(r?.concat(c), "key")), a && a.length > 0 && (r = r.filter(
|
|
15
18
|
(n) => !a.includes(n.key)
|
|
16
19
|
));
|
|
17
|
-
const
|
|
20
|
+
const p = {};
|
|
18
21
|
return e?.reduce((n, d) => (r.forEach((o) => {
|
|
19
22
|
if (!b(s(d, l(o.dataIndex || o.key)))) {
|
|
20
|
-
const i = o.dataIndex || o.key, g = s(n, l(i)) || 0, h = s(d, l(i)) || 0,
|
|
21
|
-
|
|
23
|
+
const i = o.dataIndex || o.key, g = s(n, l(i)) || 0, h = s(d, l(i)) || 0, k = T(g, h)?.toNumber();
|
|
24
|
+
C(n, i, +k);
|
|
22
25
|
}
|
|
23
|
-
}), n),
|
|
26
|
+
}), n), p);
|
|
24
27
|
}
|
|
25
28
|
export {
|
|
26
29
|
q as computedRecords,
|
|
27
30
|
j as flattenColumns,
|
|
28
31
|
l as formatDataIndex,
|
|
29
|
-
|
|
32
|
+
S as formatNumber
|
|
30
33
|
};
|
package/es/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "6.
|
|
1
|
+
declare const _default: "6.28.1";
|
|
2
2
|
export default _default;
|
package/es/src/version.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ref } from 'vue';
|
|
1
|
+
import { Ref, ComputedRef } from 'vue';
|
|
2
2
|
import { AgGridColumnType, AgGridProps } from '../interface';
|
|
3
3
|
/**
|
|
4
4
|
* 维护/更新表格将要显示的类
|
|
@@ -6,4 +6,5 @@ import { AgGridColumnType, AgGridProps } from '../interface';
|
|
|
6
6
|
export declare const useColumns: <RecordType>(props: AgGridProps<RecordType>) => {
|
|
7
7
|
columns: Ref<AgGridColumnType<RecordType>[], AgGridColumnType<RecordType>[]>;
|
|
8
8
|
shownColumns: Ref<AgGridColumnType<RecordType>[], AgGridColumnType<RecordType>[]>;
|
|
9
|
+
columnKeys: ComputedRef<string[]>;
|
|
9
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),m=u=>{const t=n.ref([]),o=n.ref([]);function s(){return u.columns?.filter(e=>!e.hideInTable)||[]}const l=n.computed(()=>t.value.map(e=>e.key?String(e.key):e.key).filter(Boolean));return n.watch(()=>u.columns,()=>{const e=s();t.value=e,o.value=e,u.onShownColumnsChange?.(e)},{deep:!0,immediate:!0}),{columns:t,shownColumns:o,columnKeys:l}};exports.useColumns=m;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue"),l=require("lodash-unified"),w=i=>{const u=c.computed(()=>{const o=i.value;if(!o)return{};const{rowClassName:e,top:t,bottom:n}=o;return{pinnedTopRowData:t,pinnedBottomRowData:n,getRowClass({node:r,data:
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue"),l=require("lodash-unified"),w=i=>{const u=c.computed(()=>{const o=i.value;if(!o)return{};const{rowClassName:e,top:t,bottom:n}=o;return{pinnedTopRowData:t,pinnedBottomRowData:n,getRowClass({node:r,data:d,rowIndex:s}){if(!(!r.rowPinned||!e))return l.isFunction(e)?e(d,s,r.rowPinned):e}}});return{getRowPinnedCellClass:o=>e=>{let t;const{cellClassName:n}=i.value||{};return!e.node.rowPinned||!n?t=[o(e)]:t=[o(e),l.isFunction(n)?n(e.data,e.colDef,e.node.rowPinned,e.rowIndex):n],t.flat().filter(Boolean)},rowPinnedGridConfig:u}};exports.usePinnedRow=w;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Ref, ComputedRef } from 'vue';
|
|
2
|
+
import { AgGridColumnType, AgGridProps } from '../interface';
|
|
3
|
+
import { SelectionColumnDef } from 'ag-grid-community';
|
|
4
|
+
declare const useRowSelectionColumnDef: <RecordType>(props: AgGridProps<RecordType>, shownColumns: Ref<AgGridColumnType<RecordType>[]>) => ComputedRef<SelectionColumnDef | undefined>;
|
|
5
|
+
export default useRowSelectionColumnDef;
|
|
@@ -0,0 +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 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Fe=require("ag-grid-vue3"),A=require("ag-grid-community"),M=require("@aplus-frontend/antdv"),S=require("lodash-unified");require("../config-provider/index.js");const qe=require("../ap-form/index.js"),ze=require("../ap-table/utils.js"),Ve=require("../ap-table/hooks/use-table-paging-ng.js"),Ne=require("./hooks/use-row-selection.js"),Te=require("./context.js"),Ee=require("../ap-table/context.js"),O=require("../ap-grid/constants.js"),Pe=require("@aplus-frontend/antdv/es/theme/internal"),De=require("./theme.js"),Ke=require("./hooks/use-columns.js"),Ie=require("./hooks/use-columns-def.js"),Ae=require("../utils/index.js"),Me=require("../utils/slot.js"),Oe=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const Ue=require("./hooks/use-virtual-config.js"),We=require("./hooks/use-pinned-row.js"),je=require("../config-provider/hooks/use-namespace.js"),Ge=require("./components/empty/index.vue2.js"),Le=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:{}},setup(U,{expose:W}){A.ModuleRegistry.registerModules([A.AllCommunityModule]);const t=U,k=e.useSlots();function j(...o){return o.reduce((r,n)=>({...r,...n}),{})}const{e:y,b:s,be:G}=je.useNamespace("ag-grid"),w=e.ref(t.size),L=De.useTheme(w,e.toRef(t,"rowHeight")),$=Ue.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:H,getRowPinnedCellClass:_}=We.usePinnedRow(e.toRef(t,"summary")),i=e.ref(),[,J]=Pe.useToken();let c=!!t.dataSource;const x=Oe.useSearchForm(t),{shownColumns:d,columns:F}=Ke.useColumns(t),{defaultColDef:Q,columnDefs:X}=Ie.useColumnsDef(F,t,_),h=e.ref({});Te.useProvideSorter({sorter:h,setSorter(o){h.value=o}});const Y={asc:"ascend",desc:"descend"};function Z(){const o=i.value.getColumns()?.filter(l=>l.getSort()!==void 0),r=e.unref(h)||{};let n=o?.[0];const u=Object.keys(r);if(u.length&&u.every(l=>r[l]===null)){const l=Object.keys(r)[0];l&&(n=i.value?.getColumn(l))}if(!n)return;const g=n.getColDef(),a=n.getSort();z(void 0,void 0,{column:g,field:g.field,order:a?Y[a]:null})}const ee=e.computed(()=>ze.recursionApColumns(e.unref(d),o=>{if(o.sorter===!0)return o.key||o.dataIndex}).filter(Boolean)),oe=e.computed(()=>Ae.isDef(t.manual)?t.manual:Me.getValidVNodeList(k.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:f,submit:C,reset:v,data:m,tableProps:q,handleTableChangeOptional:z,submitWith:V,refresh:N,getPaging:te,setPaging:re,setDataSource:ne}=Ve.useTablePaging({async request(o){if(c=!1,!le.value&&S.isUndefined(t.dataSource)&&B(),!S.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(oe),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:ee}),ae=e.computed(()=>S.isUndefined(t.dataSource)?m.records:t.dataSource),le=e.computed(()=>{const o=t.rowSelection===!0?{}:t.rowSelection;return o?o.preserveSelectedRowKeys!==!1:!1}),{select:se,unSelect:ie,selectedRows:R,selectedRowKeys:ue,clearAll:ce,selectMultiByKeys:de}=Ne.default({...t.rowSelection===!0?{}:t.rowSelection,dataSource:ae,rowKey:t.rowKey}),fe={checkbox:"multiRow",radio:"singleRow"},me=e.computed(()=>{if(!t.rowSelection)return;const{type:o="checkbox",disabled:r}=t.rowSelection===!0?{}:t.rowSelection;return{mode:fe[o],isRowSelectable:n=>r?!r(n.data):!0}}),pe=e.computed(()=>{if(!t.rowSelection)return;const o=t.rowSelection===!0?{}:t.rowSelection;let r=o.fixed;return r===void 0&&(r=d.value.some(n=>n.fixed==="left"||n.fixed===!0)?"left":void 0),{sortable:!1,resizable:!1,width:o.columnWidth||60,pinned:r}});function b(o){return S.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const T=({api:o=i.value})=>{if(!t.rowSelection)return;const r=R.value;if(!r.length){setTimeout(()=>{c=!0},0);return}c=!1;const n=[];o.forEachNode(u=>{const p=u.data,g=b(p);r.find(a=>b(a)===g)&&n.push(u)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{c=!0},0)},ge=o=>{c&&(o.node.isSelected()?se(o.data):ie(o.data))},Se=()=>{c=!0},B=()=>{ce(),i.value?.deselectAll()};function we(o){de(o),e.nextTick(()=>{T({})})}function E(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return f.value?.apForm?.[r]?.(!0)}function P(o){f.value?.apForm?.setFieldsValue?.(o)}function D(){return f.value?.getSorterItems()||[]}function K(o){f.value?.setSorterItems(o)}function I(){f.value?.resetSorterItems()}function ye(o){const r=i.value;if(!r)return;const n=r.getColumnState()||[],u=o.map(a=>a.key?String(a.key):a.key).filter(Boolean);let p=!1;const g=n.map(a=>{const l=!u.includes(a.colId);return!p&&l!==a.hide&&(p=!0),{...a,hide:l}});p&&r.applyColumnState({state:g,applyOrder:!0})}Ee.useProvideApTable({columns:e.computed(()=>d.value),columnsBackup:e.computed(()=>F.value),size:e.computed(()=>O.sizeMap[w.value]),updateColumns(o){d.value=o,t.onShownColumnsChange?.(o),ye(o)},updateSize(o){w.value=O.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:G("table-header","title"),color:J.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(m).records),getSearchFormValues:E,setSearchFormValues:P,submit:C,submitWith:V,reset:v,refresh:N,getSearchFormSorterItems:D,setSearchFormSorterItems:K,resetSearchFormSorterItems:I});const he=e.computed(()=>S.isUndefined(t.loading)?m.loading:t.loading),Ce=e.computed(()=>[s(),t.card?null:s("wrapper"),s("adaptive"),s(`size-${w.value}`)].filter(Boolean)),ve=e.computed(()=>({height:"100%",...t.tableStyle||{}})),Re=(o,r)=>{z({current:o,pageSize:r})};function be(o){const r=o.data;return b(r)}function Be(o,r){i.value?.ensureIndexVisible(o,r)}function ke(o){t.onRowClicked?.(o.data)}function xe(o){t.onScrollEnd?.(o.direction)}return e.watch(()=>t.dataSource,o=>{ne(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{w.value=o}),e.watch(()=>e.unref(m).loading,o=>{t.onLoadingChange?.(o)}),W({submit:C,reset:v,refresh:N,submitWith:V,setSearchFormValues:P,getSearchFormValues:E,getShowColumns:()=>e.unref(d),rowSelection:{selectedRows:e.computed(()=>R.value),setSelectedRowKeys:we,clearAll:B},scrollToRow:Be,getDataSource:()=>e.unref(m.records),getPaging:te,setPaging:re,getSearchFormSorterItems:D,setSearchFormSorterItems:K,resetSearchFormSorterItems:I}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(Ce.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(S.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(x).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(y)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(qe.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:f,"custom-reset":"","submit-loading":e.unref(q).loading,onSubmit:e.unref(C),onReset:e.unref(v)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(x),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[k.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(y)("table-wrapper"),o.card?e.unref(y)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(R),selectedRowKeys:e.unref(ue),shownColumns:e.unref(d),clearAll:B})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s)("grid-wrapper"))},[e.createVNode(e.unref(Fe.AgGridVue),e.mergeProps(j(e.unref($),e.unref(H)),{style:ve.value,"row-data":e.unref(m).records,"column-defs":e.unref(X),"default-col-def":e.unref(Q),"suppress-loading-overlay":"","row-selection":me.value,"selection-column-def":pe.value,"get-row-id":be,theme:e.unref(L),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","no-rows-overlay-component":Ge.default,onSortChanged:Z,onGridReady:r[0]||(r[0]=n=>i.value=n.api),onRowDataUpdated:T,onRowSelected:ge,onFirstDataRendered:Se,onRowClicked:ke,onBodyScrollEnd:xe}),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(y)("table-loading-wrapper"))},[e.createVNode(e.unref(M.Spin),{delay:300})],2),[[e.vShow,he.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(M.Pagination),e.mergeProps({key:0,class:e.unref(s)("pagination")},e.unref(q).pagination,{onChange:Re}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=Le;
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),qe=require("ag-grid-vue3"),A=require("ag-grid-community"),M=require("@aplus-frontend/antdv"),S=require("lodash-unified");require("../config-provider/index.js");const ze=require("../ap-form/index.js"),Ve=require("../ap-table/utils.js"),Ne=require("../ap-table/hooks/use-table-paging-ng.js"),Te=require("./hooks/use-row-selection.js"),Ee=require("./context.js"),Pe=require("../ap-table/context.js"),O=require("../ap-grid/constants.js"),De=require("@aplus-frontend/antdv/es/theme/internal"),Ke=require("./theme.js"),Ie=require("./hooks/use-columns.js"),Ae=require("./hooks/use-columns-def.js"),Me=require("../utils/index.js"),Oe=require("../utils/slot.js"),Ue=require("./hooks/use-search-form.js");require("./components/empty/index.vue.js");const je=require("./hooks/use-virtual-config.js"),We=require("./hooks/use-pinned-row.js"),Ge=require("./hooks/use-selection-col-def.js"),Le=require("../config-provider/hooks/use-namespace.js"),$e=require("./components/empty/index.vue2.js"),He=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:{}},setup(U,{expose:j}){A.ModuleRegistry.registerModules([A.AllCommunityModule]);const t=U,k=e.useSlots();function W(...o){return o.reduce((r,n)=>({...r,...n}),{})}const{e:y,b:s,be:G}=Le.useNamespace("ag-grid"),w=e.ref(t.size),L=Ke.useTheme(w,e.toRef(t,"rowHeight")),$=je.default(e.toRef(t,"virtual")),{rowPinnedGridConfig:H,getRowPinnedCellClass:_}=We.usePinnedRow(e.toRef(t,"summary")),u=e.ref(),[,J]=De.useToken();let c=!!t.dataSource;const F=Ue.useSearchForm(t),{shownColumns:d,columns:x,columnKeys:Q}=Ie.useColumns(t),{defaultColDef:X,columnDefs:Y}=Ae.useColumnsDef(x,t,_),h=e.ref({});Ee.useProvideSorter({sorter:h,setSorter(o){h.value=o}});const Z={asc:"ascend",desc:"descend"};function ee(){const o=u.value.getColumns()?.filter(l=>l.getSort()!==void 0),r=e.unref(h)||{};let n=o?.[0];const i=Object.keys(r);if(i.length&&i.every(l=>r[l]===null)){const l=Object.keys(r)[0];l&&(n=u.value?.getColumn(l))}if(!n)return;const g=n.getColDef(),a=n.getSort();z(void 0,void 0,{column:g,field:g.field,order:a?Z[a]:null})}const oe=e.computed(()=>Ve.recursionApColumns(e.unref(d),o=>{if(o.sorter===!0)return o.key||o.dataIndex}).filter(Boolean)),te=e.computed(()=>Me.isDef(t.manual)?t.manual:Oe.getValidVNodeList(k.searchFormExtra?.()||[]).some(r=>r.type?.name==="ApView")),{formRef:f,submit:C,reset:v,data:m,tableProps:q,handleTableChangeOptional:z,submitWith:V,refresh:N,getPaging:re,setPaging:ne,setDataSource:ae}=Ne.useTablePaging({async request(o){if(c=!1,!ue.value&&S.isUndefined(t.dataSource)&&B(),!S.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(te),formatParams:t.beforeSearchSubmit,pagination:t.pagination,sortFields:oe}),le=Ge.default(t,d),se=e.computed(()=>S.isUndefined(t.dataSource)?m.records:t.dataSource),ue=e.computed(()=>{const o=t.rowSelection===!0?{}:t.rowSelection;return o?o.preserveSelectedRowKeys!==!1:!1}),{select:ie,unSelect:ce,selectedRows:R,selectedRowKeys:de,clearAll:fe,selectMultiByKeys:me}=Te.default({...t.rowSelection===!0?{}:t.rowSelection,dataSource:se,rowKey:t.rowKey}),pe={checkbox:"multiRow",radio:"singleRow"},ge=e.computed(()=>{if(!t.rowSelection)return;const{type:o="checkbox",disabled:r}=t.rowSelection===!0?{}:t.rowSelection;return{mode:pe[o],isRowSelectable:n=>r?!r(n.data):!0}});function b(o){return S.isFunction(t.rowKey)?t.rowKey(o):o[t.rowKey]}const T=({api:o=u.value})=>{if(!t.rowSelection)return;const r=R.value;if(!r.length){setTimeout(()=>{c=!0},0);return}c=!1;const n=[];o.forEachNode(i=>{const p=i.data,g=b(p);r.find(a=>b(a)===g)&&n.push(i)}),o.setNodesSelected({nodes:n,newValue:!0}),setTimeout(()=>{c=!0},0)},Se=o=>{c&&(o.node.isSelected()?ie(o.data):ce(o.data))},we=()=>{c=!0},B=()=>{fe(),u.value?.deselectAll()};function ye(o){me(o),e.nextTick(()=>{T({})})}function E(o=!1){const r=o?"getFieldsValueTransformed":"getFieldsValue";return f.value?.apForm?.[r]?.(!0)}function P(o){f.value?.apForm?.setFieldsValue?.(o)}function D(){return f.value?.getSorterItems()||[]}function K(o){f.value?.setSorterItems(o)}function I(){f.value?.resetSorterItems()}function he(o){const r=u.value;if(!r)return;const n=r.getColumnState()||[],i=o.map(a=>a.key?String(a.key):a.key).filter(Boolean);let p=!1;const g=n.map(a=>{if(!Q.value.includes(a.colId))return a;const l=!i.includes(a.colId);return!p&&l!==a.hide&&(p=!0),{...a,hide:l}});p&&r.applyColumnState({state:g,applyOrder:!0})}Pe.useProvideApTable({columns:e.computed(()=>d.value),columnsBackup:e.computed(()=>x.value),size:e.computed(()=>O.sizeMap[w.value]),updateColumns(o){d.value=o,t.onShownColumnsChange?.(o),he(o)},updateSize(o){w.value=O.sizeReverseMap[o]},renderConfig:e.computed(()=>({className:G("table-header","title"),color:J.value.colorTextTertiary})),dataSource:e.computed(()=>e.unref(m).records),getSearchFormValues:E,setSearchFormValues:P,submit:C,submitWith:V,reset:v,refresh:N,getSearchFormSorterItems:D,setSearchFormSorterItems:K,resetSearchFormSorterItems:I});const Ce=e.computed(()=>S.isUndefined(t.loading)?m.loading:t.loading),ve=e.computed(()=>[s(),t.card?null:s("wrapper"),s("adaptive"),s(`size-${w.value}`)].filter(Boolean)),Re=e.computed(()=>({height:"100%",...t.tableStyle||{}})),be=(o,r)=>{z({current:o,pageSize:r})};function Be(o){const r=o.data;return b(r)}function ke(o,r){u.value?.ensureIndexVisible(o,r)}function Fe(o){t.onRowClicked?.(o.data)}function xe(o){t.onScrollEnd?.(o.direction)}return e.watch(()=>t.dataSource,o=>{ae(o)},{immediate:!0,deep:!0}),e.watch(()=>t.size,o=>{w.value=o}),e.watch(()=>e.unref(m).loading,o=>{t.onLoadingChange?.(o)}),j({submit:C,reset:v,refresh:N,submitWith:V,setSearchFormValues:P,getSearchFormValues:E,getShowColumns:()=>e.unref(d),rowSelection:{selectedRows:e.computed(()=>R.value),setSelectedRowKeys:ye,clearAll:B},scrollToRow:ke,getDataSource:()=>e.unref(m.records),getPaging:re,setPaging:ne,getSearchFormSorterItems:D,setSearchFormSorterItems:K,resetSearchFormSorterItems:I}),(o,r)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(ve.value),style:e.normalizeStyle(o.wrapperStyle)},[e.unref(S.isUndefined)(o.dataSource)&&o.searchForm!==!1&&e.unref(F).length>0?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(o.card?e.unref(y)("search-wrapper"):null),style:e.normalizeStyle(o.searchFormWrapperStyle)},[e.createVNode(e.unref(ze.ApForm).SearchForm,e.mergeProps(o.searchForm||{},{ref_key:"formRef",ref:f,"custom-reset":"","submit-loading":e.unref(q).loading,onSubmit:e.unref(C),onReset:e.unref(v)}),e.createSlots({default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(F),n=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.renderNode),{key:n.dataIndex}))),128))]),_:2},[k.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(y)("table-wrapper"),o.card?e.unref(y)("table-wrapper-card"):null]),style:e.normalizeStyle(o.tableWrapperStyle)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(s)("header-wrapper"))},[e.renderSlot(o.$slots,"title",{selectedRows:e.unref(R),selectedRowKeys:e.unref(de),shownColumns:e.unref(d),clearAll:B})],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s)("grid-wrapper"))},[e.createVNode(e.unref(qe.AgGridVue),e.mergeProps(W(e.unref($),e.unref(H)),{style:Re.value,"row-data":e.unref(m).records,"column-defs":e.unref(Y),"default-col-def":e.unref(X),"suppress-loading-overlay":"","row-selection":ge.value,"selection-column-def":e.unref(le),"get-row-id":Be,theme:e.unref(L),"tooltip-show-delay":500,"enable-browser-tooltips":o.browserTooltips,"tooltip-interaction":"","no-rows-overlay-component":$e.default,onSortChanged:ee,onGridReady:r[0]||(r[0]=n=>u.value=n.api),onRowDataUpdated:T,onRowSelected:Se,onFirstDataRendered:we,onRowClicked:Fe,onBodyScrollEnd:xe}),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(y)("table-loading-wrapper"))},[e.createVNode(e.unref(M.Spin),{delay:300})],2),[[e.vShow,Ce.value]])],2),e.createElementVNode("div",{class:e.normalizeClass(e.unref(s)("pagination-wrapper"))},[o.pagination!==!1?(e.openBlock(),e.createBlock(e.unref(M.Pagination),e.mergeProps({key:0,class:e.unref(s)("pagination")},e.unref(q).pagination,{onChange:be}),null,16,["class"])):e.createCommentVNode("",!0)],2)],6)],6))}});exports.default=He;
|
|
@@ -7,7 +7,7 @@ import { SortOrder, TableRowSelection } from '@aplus-frontend/antdv/es/table/int
|
|
|
7
7
|
import { ColDef, IRowNode, 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
|
-
children?: AgGridColumnType<RecordType, ExtraValueType, ValueType
|
|
10
|
+
children?: AgGridColumnType<RecordType, ExtraValueType, ValueType>[];
|
|
11
11
|
/**
|
|
12
12
|
* 表单项所占据的格子数(1-24格)
|
|
13
13
|
*/
|
|
@@ -111,6 +111,12 @@ export type AgGridVirtualConfig = {
|
|
|
111
111
|
col?: boolean;
|
|
112
112
|
rowBuffer?: number;
|
|
113
113
|
};
|
|
114
|
+
export type AgGridSummaryType<RecordType = any> = {
|
|
115
|
+
top?: RecordType[];
|
|
116
|
+
bottom?: RecordType[];
|
|
117
|
+
cellClassName?: string | string[] | ((data: RecordType, column: ColDef<RecordType>, pinned: RowPinnedType, rowIndex: number) => string | string[]);
|
|
118
|
+
rowClassName?: string | string[] | ((data: RecordType, rowIndex: number, pinned: RowPinnedType) => string | string[]);
|
|
119
|
+
};
|
|
114
120
|
export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<RecordType>, 'columns' | 'pagination' | 'dataSource' | 'size' | 'rowSelection' | 'rowClassName' | 'footer' | 'loading' | 'sticky'> & {
|
|
115
121
|
/**
|
|
116
122
|
* 列配置
|
|
@@ -210,12 +216,7 @@ export type AgGridProps<RecordType = any, ParamsType = any> = Omit<TableProps<Re
|
|
|
210
216
|
/**
|
|
211
217
|
* 总结栏配置项
|
|
212
218
|
*/
|
|
213
|
-
summary?:
|
|
214
|
-
top?: RecordType[];
|
|
215
|
-
bottom?: RecordType[];
|
|
216
|
-
cellClassName?: string | string[] | ((data: RecordType, column: ColDef<RecordType>, pinned: RowPinnedType) => string | string[]);
|
|
217
|
-
rowClassName?: string | string[] | ((data: RecordType, rowIndex: number, pinned: RowPinnedType) => string | string[]);
|
|
218
|
-
};
|
|
219
|
+
summary?: AgGridSummaryType<RecordType>;
|
|
219
220
|
/**
|
|
220
221
|
* 指定每一行占据的高度(大量数据展示时的性能优化)
|
|
221
222
|
*/
|
package/lib/src/ag-grid/theme.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@aplus-frontend/antdv/es/theme/internal"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("@aplus-frontend/antdv/es/theme/internal"),c=require("ag-grid-community"),d=require("vue"),l=(o,r)=>{const[,a]=n.useToken();return d.computed(()=>{const t=o.value==="mini",e=a.value;return c.themeQuartz.withParams({headerHeight:"36px",headerFontSize:"12px",dataFontSize:"12px",rowHeight:r.value,spacing:t?"5px":"6.5px",foregroundColor:e.colorTextBase,wrapperBorder:!1,rowBorder:{color:e.colorBorderSecondary},headerRowBorder:{color:e.colorBorderSecondary},selectedRowBackgroundColor:e.controlItemBgActive,checkboxCheckedBackgroundColor:e.colorPrimary,rowHoverColor:"var(--ap-color-bg-2)",headerBackgroundColor:"var(--ap-table-header-bg)",headerColumnResizeHandleHeight:"50%",headerColumnResizeHandleWidth:"1px"})})};exports.useTheme=l;
|
|
@@ -8,7 +8,7 @@ import { VxeTablePropTypes, VxeColumnPropTypes, VxeTableProps, VxeTableDefines,
|
|
|
8
8
|
import { InternalPagingType } from '../ap-table/hooks/use-table-paging-ng';
|
|
9
9
|
export type ColConfigType = VxeTableDefines.ColumnOptions;
|
|
10
10
|
export type ApGridColumnType<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' | 'className' | 'class'> & {
|
|
11
|
-
children?: ApGridColumnType<RecordType, ExtraValueType, ValueType
|
|
11
|
+
children?: ApGridColumnType<RecordType, ExtraValueType, ValueType>[];
|
|
12
12
|
/**
|
|
13
13
|
* 表单项所占据的格子数(1-24格)
|
|
14
14
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),y=require("@aplus-frontend/antdv"),l=require("../../config-provider/config-provider.js"),O=require("lodash-unified"),q=require("@aplus-frontend/utils");require("../../config-provider/index.js");const u=require("./util.js"),b=require("../../utils/index.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("vue"),y=require("@aplus-frontend/antdv"),l=require("../../config-provider/config-provider.js"),O=require("lodash-unified"),q=require("@aplus-frontend/utils");require("../../config-provider/index.js");const u=require("./util.js"),b=require("../../utils/index.js"),P=require("../../config-provider/hooks/use-namespace.js"),x=a=>{let o,t;const{destroyOnClose:i=!0,wrapperOffset:r=!1}=a,{b:c}=P.useNamespace("ap-modal");function d(){o&&o(!1),setTimeout(()=>{n.render(null,s),s.parentElement?.removeChild(s)},500)}function f(){o&&o(!0)}function p(){o&&o(!1)}function h(e){t&&t(e)}const m=n.defineComponent({data(){return{open:i,props:a}},created(){o=e=>{this.open=e},t=e=>{this.props={...this.props,...e}}},methods:{async handleCancel(){if(this.props?.onCancel){const e=this.props?.content?.component?.exposed??void 0;await this.props?.onCancel(e)}i?d():p()},async handleOk(){try{if(t({confirmLoading:!0}),this.props?.onOk){const e=this.props?.content?.component?.exposed??void 0;await this.props.onOk(e)}t({confirmLoading:!1}),i?d():p()}catch{t({confirmLoading:!1})}}},render(){const e=O.omit(this.props,["onCancel","onOk","open","onUpdate:open","getContainer","icon"]);return n.createVNode(l.ConfigProvider,l.globalConfigCached.value,{default:()=>[n.createVNode(y.Modal,n.mergeProps({class:{[c()]:!0,[c("wrapper")]:r},open:this.open,onCancel:this.handleCancel,onOk:this.handleOk,centered:!0},e),{default:()=>[n.createVNode("div",{class:{[c("body-wrapper")]:r},style:r===!1?{}:{maxHeight:`calc(100vh - ${(r===!0?100:q.isNumeric(r)?Number(r):100)*2}px)`}},[this.props?.content])]})]})}}),C=u.getContainerDom(l.globalConfigCached?.value?.getPopupContainer),g=u.getContainerDom(a.getContainer),v=C||g||b.getTopWindow().document.body,s=document.createElement("div");return v.appendChild(s),n.render(n.h(m),s),{destroy:d,update:h,open:f,close:p}};exports.createModal=x;
|
|
@@ -2,7 +2,8 @@ import { ColumnsType } from '@aplus-frontend/antdv/es/table';
|
|
|
2
2
|
import { AlignType, DataIndex, Key } from '@aplus-frontend/antdv/es/vc-table/interface';
|
|
3
3
|
import { ApColumnType } from '../../ap-table';
|
|
4
4
|
import { ApGridColumnType } from '../../ap-grid';
|
|
5
|
-
|
|
5
|
+
import { AgGridColumnType } from '../../ag-grid';
|
|
6
|
+
export type SummaryColumnType = ApColumnType[] | ApGridColumnType[] | AgGridColumnType[] | ColumnsType | any[];
|
|
6
7
|
export type ValueType = {
|
|
7
8
|
[key in string]: any;
|
|
8
9
|
};
|
|
@@ -40,4 +41,5 @@ export interface ComputedRecordParams<T> {
|
|
|
40
41
|
* 排出 在 columns 和 configList中相同key 的配置项
|
|
41
42
|
*/
|
|
42
43
|
exclude?: Key[];
|
|
44
|
+
valueTypeExtension?: string[];
|
|
43
45
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("lodash-unified"),d=require("@aplus-frontend/utils"),m=t=>t?.children&&t?.children?.length>0?r.flatten(t.children?.map(e=>m(e))):[t],
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("lodash-unified"),d=require("@aplus-frontend/utils"),m=t=>t?.children&&t?.children?.length>0?r.flatten(t.children?.map(e=>m(e))):[t],y=t=>r.flatten(t?.map(e=>m(e))),a=t=>Object.prototype.toString.call(t)==="[object Array]"?t.map(e=>String(e)).join("."):t??"",x=(t,e,c)=>c?d.toThousand(t,e):d.toFixed(t,e);function C(t){const{records:e,columns:c,configList:s,exclude:i,valueTypeExtension:g}=t;if(!e||e?.length===0)return{};let o=y(c)?.filter(n=>n.valueType==="number"||g?.includes(n.valueType))?.map(n=>({key:n.key||"",dataIndex:n.dataIndex}));s&&s?.length>0&&(o=r.uniqBy(o?.concat(s),"key")),i&&i.length>0&&(o=o.filter(n=>!i.includes(n.key)));const h={};return e?.reduce((n,f)=>(o.forEach(u=>{if(!r.isNil(r.get(f,a(u.dataIndex||u.key)))){const l=u.dataIndex||u.key,p=r.get(n,a(l))||0,b=r.get(f,a(l))||0,k=d.addNumber(p,b)?.toNumber();r.set(n,l,+k)}}),n),h)}exports.computedRecords=C;exports.flattenColumns=y;exports.formatDataIndex=a;exports.formatNumber=x;
|
package/lib/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "6.
|
|
1
|
+
declare const _default: "6.28.1";
|
|
2
2
|
export default _default;
|
package/lib/src/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e="6.28.1";exports.default=e;
|
package/package.json
CHANGED
package/theme/index.css
CHANGED
|
@@ -4500,6 +4500,9 @@ div.aplus-ap-info-layout-admin__header-shadow.aplus-ap-info-layout-admin__sticky
|
|
|
4500
4500
|
.aplus-ap-value-select-card--admin .aplus-ap-value-select-card-title {
|
|
4501
4501
|
color: #666;
|
|
4502
4502
|
}
|
|
4503
|
+
.aplus-ap-value-select-card--admin .aplus-ap-value-select-card-title-icon {
|
|
4504
|
+
color: #BFBFBF;
|
|
4505
|
+
}
|
|
4503
4506
|
.aplus-pro-card {
|
|
4504
4507
|
position: relative;
|
|
4505
4508
|
display: flex;
|