foggy-data-viewer 1.0.1-beta.57 → 1.0.1-beta.58
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/README.md +16 -1
- package/dist/components/DataTable.vue.d.ts +5 -0
- package/dist/components/DataTableWithSearch.vue.d.ts +8 -1
- package/dist/components/composables/useTableQuery.d.ts +8 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +3867 -3727
- package/dist/index.umd +1 -1
- package/dist/style.css +1 -1
- package/dist/types/index.d.ts +14 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -170,7 +170,22 @@ const amountField = {
|
|
|
170
170
|
| initialSlice | `SliceCondition[]` | - | 初始筛选条件 |
|
|
171
171
|
| filterOptionsLoader | `Function` | - | 筛选选项加载器 |
|
|
172
172
|
|
|
173
|
-
`DataTableWithSearch` 在 `schema + fetchData` 服务端查询模式下默认 `localFilter=false`:列头筛选仍会提交给 `fetchData`,但返回数据不会再被前端二次过滤,避免聚合字段、派生字段、字典展示字段被简单本地比较误删。需要纯前端过滤时,可显式设置 `localFilter=true` 或 `schema.localFilter=true`。
|
|
173
|
+
`DataTableWithSearch` 在 `schema + fetchData` 服务端查询模式下默认 `localFilter=false`:列头筛选仍会提交给 `fetchData`,但返回数据不会再被前端二次过滤,避免聚合字段、派生字段、字典展示字段被简单本地比较误删。需要纯前端过滤时,可显式设置 `localFilter=true` 或 `schema.localFilter=true`。
|
|
174
|
+
|
|
175
|
+
### 固定 groupBy 表
|
|
176
|
+
|
|
177
|
+
使用 `tableMode="groupBy"` 和固定的 `groupBy` 配置。Schema 的可见列应只包含这些分组键和标记为 `measure: true` 的 QM 度量;每个分组键必须返回。表头条件会作为 `having` 传给 `fetchData`,页面固定业务条件仍可通过 `fixedSlice` 传入。分组模式不加载或显示查询方案,也不显示跨组合计。
|
|
178
|
+
|
|
179
|
+
```vue
|
|
180
|
+
<DataTableWithSearch
|
|
181
|
+
:schema="groupedSchema"
|
|
182
|
+
:fetch-data="queryGroupedOrders"
|
|
183
|
+
table-mode="groupBy"
|
|
184
|
+
:group-by="[{ field: 'stationId' }, { field: 'orderMonth' }]"
|
|
185
|
+
/>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
`fetchData` 应透传 `params.groupBy`、`params.having`、`params.returnTotal` 到 Viewer 直连接口,并返回 `hasNext: boolean`。分组模式以 `returnTotal=false` 查询,分页仅提供上一页和下一页;总条数留待独立计数能力。导出可使用组件 `executeQuery({ page, pageSize })` 逐页读取,直到 `hasNext=false`,并自行实施行数上限。
|
|
174
189
|
|
|
175
190
|
### DataTableWithSearch tableInstanceId 默认查询配置
|
|
176
191
|
|
|
@@ -18,6 +18,9 @@ interface Props {
|
|
|
18
18
|
data: Record<string, unknown>[];
|
|
19
19
|
/** 总行数 */
|
|
20
20
|
total: number;
|
|
21
|
+
/** 分组表不计算总数时使用简单分页 */
|
|
22
|
+
paginationMode?: 'total' | 'hasNext';
|
|
23
|
+
hasNext?: boolean;
|
|
21
24
|
/** 加载状态 */
|
|
22
25
|
loading: boolean;
|
|
23
26
|
/** 已有数据上的后台刷新状态 */
|
|
@@ -122,6 +125,8 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
|
|
|
122
125
|
"onCheckbox-all"?: (rows: Record<string, unknown>[]) => any;
|
|
123
126
|
}>, {
|
|
124
127
|
pageSize: number;
|
|
128
|
+
hasNext: boolean;
|
|
129
|
+
paginationMode: "total" | "hasNext";
|
|
125
130
|
backgroundLoading: boolean;
|
|
126
131
|
backgroundLoadingText: string;
|
|
127
132
|
backgroundLoadingError: string | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, TableSchema, FetchDataParams, FetchDataResult, OrderRequestDef, QueryHooks, MemberQueryRequest, MemberQueryResponse, CellCopyConfig, QueryMode, ListViewState, ListPresetConfig, TableDensity, QueryExecutionOptions, SearchHooks, TableDefaultQueryConfig, TableDefaultQueryConfigScope, TableDefaultQueryConfigLoadOptions } from '@/types';
|
|
1
|
+
import type { EnhancedColumnSchema, SliceRequestDef, GroupRequestDef, FilterOption, TableSchema, FetchDataParams, FetchDataResult, OrderRequestDef, QueryHooks, MemberQueryRequest, MemberQueryResponse, CellCopyConfig, QueryMode, ListViewState, ListPresetConfig, TableDensity, QueryExecutionOptions, SearchHooks, TableDefaultQueryConfig, TableDefaultQueryConfigScope, TableDefaultQueryConfigLoadOptions } from '@/types';
|
|
2
2
|
import type { QueryPanelExpose, QuerySchema } from './QueryPanel.vue';
|
|
3
3
|
/**
|
|
4
4
|
* DataTableWithSearch 组件
|
|
@@ -12,6 +12,10 @@ interface Props {
|
|
|
12
12
|
schema?: TableSchema;
|
|
13
13
|
/** 数据加载函数 */
|
|
14
14
|
fetchData?: (params: FetchDataParams) => Promise<FetchDataResult>;
|
|
15
|
+
/** 普通明细表或固定分组表;分组模式将表头条件作为 HAVING */
|
|
16
|
+
tableMode?: 'normal' | 'groupBy';
|
|
17
|
+
/** 分组维度及聚合列,必须由业务配置固定 */
|
|
18
|
+
groupBy?: GroupRequestDef[];
|
|
15
19
|
/** 执行依赖;隐式补入不展示/保存,用户主动选择时正常展示/保存。 */
|
|
16
20
|
requiredFields?: string[];
|
|
17
21
|
/** 执行依赖,与 requiredFields 同义,不限制用户选择。 */
|
|
@@ -26,6 +30,8 @@ interface Props {
|
|
|
26
30
|
data?: Record<string, unknown>[];
|
|
27
31
|
/** 总数据量 */
|
|
28
32
|
total?: number;
|
|
33
|
+
/** 受控分组表是否还有下一页 */
|
|
34
|
+
hasNext?: boolean;
|
|
29
35
|
/** 加载状态 */
|
|
30
36
|
loading?: boolean;
|
|
31
37
|
/** 每页大小 */
|
|
@@ -251,6 +257,7 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
|
|
|
251
257
|
showFilters: boolean;
|
|
252
258
|
showPager: boolean;
|
|
253
259
|
localFilter: boolean;
|
|
260
|
+
tableMode: "normal" | "groupBy";
|
|
254
261
|
searchLayout: "horizontal" | "vertical";
|
|
255
262
|
showSearchActions: boolean;
|
|
256
263
|
filterMergeMode: "replace" | "merge";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref } from 'vue';
|
|
2
|
-
import type { FetchDataParams, FetchDataResult, FetchDataFn, SliceRequestDef, OrderRequestDef, QueryHooks, QueryTrigger, QueryHookName, BeforeQueryHookFn, AfterQueryHookFn, ErrorQueryHookFn, QueryExecutionOptions } from '@/types';
|
|
2
|
+
import type { FetchDataParams, FetchDataResult, FetchDataFn, SliceRequestDef, OrderRequestDef, QueryHooks, QueryTrigger, QueryHookName, BeforeQueryHookFn, AfterQueryHookFn, ErrorQueryHookFn, QueryExecutionOptions, GroupRequestDef } from '@/types';
|
|
3
3
|
/** 钩子名称到函数类型的映射 */
|
|
4
4
|
type HookFnMap = {
|
|
5
5
|
onBeforeQuery: BeforeQueryHookFn;
|
|
@@ -15,6 +15,7 @@ export interface UseTableQueryOptions {
|
|
|
15
15
|
export interface UseTableQueryReturn {
|
|
16
16
|
data: ReturnType<typeof ref<Record<string, unknown>[]>>;
|
|
17
17
|
total: ReturnType<typeof ref<number>>;
|
|
18
|
+
hasNext: ReturnType<typeof ref<boolean>>;
|
|
18
19
|
loading: ReturnType<typeof ref<boolean>>;
|
|
19
20
|
activeTrigger: ReturnType<typeof ref<QueryTrigger | null>>;
|
|
20
21
|
lastError: ReturnType<typeof ref<Error | null>>;
|
|
@@ -24,6 +25,9 @@ export interface UseTableQueryReturn {
|
|
|
24
25
|
currentPageSize: ReturnType<typeof ref<number>>;
|
|
25
26
|
currentOrderBy: ReturnType<typeof ref<OrderRequestDef[]>>;
|
|
26
27
|
currentSlice: ReturnType<typeof ref<SliceRequestDef[]>>;
|
|
28
|
+
currentHaving: ReturnType<typeof ref<SliceRequestDef[]>>;
|
|
29
|
+
currentGroupBy: ReturnType<typeof ref<GroupRequestDef[]>>;
|
|
30
|
+
currentReturnTotal: ReturnType<typeof ref<boolean | undefined>>;
|
|
27
31
|
currentColumns: ReturnType<typeof ref<string[]>>;
|
|
28
32
|
currentTableInstanceId: ReturnType<typeof ref<string | undefined>>;
|
|
29
33
|
loadData: (trigger?: QueryTrigger) => Promise<void>;
|
|
@@ -34,6 +38,9 @@ export interface UseTableQueryReturn {
|
|
|
34
38
|
setPage: (page: number, pageSize?: number) => void;
|
|
35
39
|
setSort: (orderBy: OrderRequestDef[]) => void;
|
|
36
40
|
setSlice: (slice: SliceRequestDef[]) => void;
|
|
41
|
+
setHaving: (having: SliceRequestDef[]) => void;
|
|
42
|
+
setGroupBy: (groupBy: GroupRequestDef[]) => void;
|
|
43
|
+
setReturnTotal: (returnTotal?: boolean) => void;
|
|
37
44
|
setColumns: (columns: string[]) => void;
|
|
38
45
|
setTableInstanceId: (tableInstanceId?: string) => void;
|
|
39
46
|
addHook: <N extends QueryHookName>(name: N, fn: HookFnMap[N]) => () => void;
|
package/dist/index.d.ts
CHANGED
|
@@ -35,4 +35,4 @@ export { prepareCustomQuery, normalizeUserSlice, resolveRelativeDate, resolveRel
|
|
|
35
35
|
export type { RelativeDateRange, RelativeDateValue, CustomQueryExecutionOptions } from './utils/customQuery';
|
|
36
36
|
export { LIST_PRESET_SHARE_SCHEMA_VERSION, buildListPresetSharePackage, serializeListPresetSharePackage, parseListPresetSharePackage, assertListPresetShareCompatible, listPresetShareToViewState } from './utils/listPresetShare';
|
|
37
37
|
export type { ListPresetSharePreset, ListPresetSharePackage, ListPresetShareTargetContext } from './utils/listPresetShare';
|
|
38
|
-
export type { ColumnSchema, MoneyViewerConfig, ViewerConfig, FieldExtData, EnhancedColumnSchema, TableConfig, TableSchema, CellRenderContext, CellRenderFn, GlobalColumnRenderContext, GlobalColumnMatchFn, GlobalColumnRenderFn, GlobalColumnRenderer, GlobalColumnRenderResolution, CellCopyConfig, QueryMode, ColumnCustomization, QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, SliceRequestDef, OrderRequestDef, FilterOption, FetchDataParams, FetchDataParamsWithExtensions, FetchDataResult, QueryExecutionOptions, FetchDataFn, DictItem, PaginationState, SortState, QueryHooks, QueryHookContext, QueryTrigger, QueryHookName, BeforeQueryHookFn, AfterQueryHookFn, ErrorQueryHookFn, SearchSource, SearchTrigger, SearchHookContext, SearchHookUpdate, SearchHookName, BeforeSearchHookFn, AfterSearchHookFn, ErrorSearchHookFn, SearchHooks, MaybePromise, PivotAxisField, PivotAxisPage, PivotAxisPageScope, PivotAxisRole, PivotHeaderNode, PivotHeaderRole, PivotMetric, PivotRawAxisMember, PivotRawCell, PivotRawPayload, PivotShape, PivotViewMode, PivotViewModel, ListPresetVisibility, ListPresetPlacement, ListPresetShareContextOptions, ListPresetShareContext, ListPresetConfig, TableDefaultQueryConfig, TableDefaultQueryConfigScope, TableDefaultQueryConfigLoadOptions, TableDefaultQueryConfigSource, ColumnViewSetting, QueryConditionPreset, ListViewState, ListPresetDef, FrontendMeta, FieldMeta, FieldCategory, MemberLookupMeta, UiHintsMeta, DefaultsMeta, CapabilitiesMeta, ParamsMeta, MemberQueryRequest, MemberOption, MemberQueryResponse } from './types';
|
|
38
|
+
export type { ColumnSchema, MoneyViewerConfig, ViewerConfig, FieldExtData, EnhancedColumnSchema, TableConfig, TableSchema, CellRenderContext, CellRenderFn, GlobalColumnRenderContext, GlobalColumnMatchFn, GlobalColumnRenderFn, GlobalColumnRenderer, GlobalColumnRenderResolution, CellCopyConfig, QueryMode, ColumnCustomization, QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, SliceRequestDef, GroupRequestDef, OrderRequestDef, FilterOption, FetchDataParams, FetchDataParamsWithExtensions, FetchDataResult, QueryExecutionOptions, FetchDataFn, DictItem, PaginationState, SortState, QueryHooks, QueryHookContext, QueryTrigger, QueryHookName, BeforeQueryHookFn, AfterQueryHookFn, ErrorQueryHookFn, SearchSource, SearchTrigger, SearchHookContext, SearchHookUpdate, SearchHookName, BeforeSearchHookFn, AfterSearchHookFn, ErrorSearchHookFn, SearchHooks, MaybePromise, PivotAxisField, PivotAxisPage, PivotAxisPageScope, PivotAxisRole, PivotHeaderNode, PivotHeaderRole, PivotMetric, PivotRawAxisMember, PivotRawCell, PivotRawPayload, PivotShape, PivotViewMode, PivotViewModel, ListPresetVisibility, ListPresetPlacement, ListPresetShareContextOptions, ListPresetShareContext, ListPresetConfig, TableDefaultQueryConfig, TableDefaultQueryConfigScope, TableDefaultQueryConfigLoadOptions, TableDefaultQueryConfigSource, ColumnViewSetting, QueryConditionPreset, ListViewState, ListPresetDef, FrontendMeta, FieldMeta, FieldCategory, MemberLookupMeta, UiHintsMeta, DefaultsMeta, CapabilitiesMeta, ParamsMeta, MemberQueryRequest, MemberOption, MemberQueryResponse } from './types';
|