foggy-data-viewer 1.0.1-beta.39 → 1.0.1-beta.41

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 CHANGED
@@ -149,6 +149,20 @@ function handlePageChange(page: number, pageSize: number) {
149
149
 
150
150
  `DataTableWithSearch` 在 `schema + fetchData` 服务端查询模式下默认 `localFilter=false`:列头筛选仍会提交给 `fetchData`,但返回数据不会再被前端二次过滤,避免聚合字段、派生字段、字典展示字段被简单本地比较误删。需要纯前端过滤时,可显式设置 `localFilter=true` 或 `schema.localFilter=true`。
151
151
 
152
+ ### DataTableWithSearch tableInstanceId 默认查询配置
153
+
154
+ `schema + fetchData` 模式支持按 `tableInstanceId` 加载默认查询配置。默认查询配置只负责默认展示列、排序、分页和筛选;`requiredRuntimeColumns`、`lockedColumns` 由 TM/QM 产出的 `TableSchema` 提供。
155
+
156
+ ```vue
157
+ <DataTableWithSearch
158
+ :schema="{ ...tableSchema, qmModel: 'TicketQueryModel', tableInstanceId: 'ticket-list' }"
159
+ :fetch-data="fetchTickets"
160
+ :default-query-config-scope="{ userId: currentUser.id, tenantId: currentTenant.id, roleIds: currentRoleIds }"
161
+ />
162
+ ```
163
+
164
+ 后端可通过 `foggy.data-viewer.table-defaults.system/tenants/roles` 配置 fallback;用户默认配置仍可通过 `listPreset` 覆盖。`requiredRuntimeColumns` 只会追加到 `fetchData(params).columns`,不会显示为普通列。
165
+
152
166
  ### DataTable Events
153
167
 
154
168
  | 事件名 | 参数 | 说明 |
@@ -3,6 +3,7 @@ export interface ListPresetScope {
3
3
  userId: string;
4
4
  model: string;
5
5
  businessKey?: string;
6
+ tableInstanceId?: string;
6
7
  }
7
8
  export interface SaveListPresetRequest {
8
9
  title: string;
@@ -0,0 +1,2 @@
1
+ import type { TableDefaultQueryConfig, TableDefaultQueryConfigScope } from '@/types';
2
+ export declare function getTableDefaultQueryConfig(scope: TableDefaultQueryConfigScope): Promise<TableDefaultQueryConfig | null>;
@@ -1,4 +1,4 @@
1
- import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, TableSchema, FetchDataParams, FetchDataResult, OrderRequestDef, QueryHooks, MemberQueryRequest, MemberQueryResponse, CellCopyConfig, QueryMode, ListViewState, ListPresetConfig, TableDensity, SearchHooks } from '@/types';
1
+ import type { EnhancedColumnSchema, SliceRequestDef, FilterOption, TableSchema, FetchDataParams, FetchDataResult, OrderRequestDef, QueryHooks, MemberQueryRequest, MemberQueryResponse, CellCopyConfig, QueryMode, ListViewState, ListPresetConfig, TableDensity, SearchHooks, TableDefaultQueryConfig, TableDefaultQueryConfigScope, TableDefaultQueryConfigLoadOptions } from '@/types';
2
2
  import type { QueryPanelExpose, QuerySchema } from './QueryPanel.vue';
3
3
  /**
4
4
  * DataTableWithSearch 组件
@@ -63,8 +63,16 @@ interface Props {
63
63
  showQueryPanel?: boolean;
64
64
  /** QM 模型名称(远程成员加载所需) */
65
65
  qmModel?: string;
66
+ /** 同一 QM 下的业务表格实例标识 */
67
+ tableInstanceId?: string;
66
68
  /** 远程维度成员加载器 */
67
69
  filterMemberLoader?: (request: MemberQueryRequest) => Promise<MemberQueryResponse>;
70
+ /** 已解析的表格实例默认查询配置 */
71
+ defaultQueryConfig?: TableDefaultQueryConfig | null;
72
+ /** 默认查询配置自动加载作用域 */
73
+ defaultQueryConfigScope?: TableDefaultQueryConfigLoadOptions;
74
+ /** 自定义默认查询配置加载器 */
75
+ defaultQueryConfigLoader?: (scope: TableDefaultQueryConfigScope) => Promise<TableDefaultQueryConfig | null>;
68
76
  /** 启用保存查询功能 */
69
77
  enableSavedQuery?: boolean;
70
78
  /** 自定义列表配置 */
@@ -86,6 +94,9 @@ interface DataTableExpose {
86
94
  clearSelection: (options?: ClearSelectionOptions) => void;
87
95
  }
88
96
  declare function clearSelectionState(options?: ClearSelectionOptions): void;
97
+ declare function applyTableDefaultQueryConfig(config: TableDefaultQueryConfig, options?: {
98
+ reload?: boolean;
99
+ }): void;
89
100
  declare function searchQueryPanel(): void;
90
101
  declare function resetQueryPanel(): void;
91
102
  declare function getListViewState(): ListViewState;
@@ -95,6 +106,9 @@ declare function applyListViewState(state: ListViewState, options?: {
95
106
  declare function resetListViewState(options?: {
96
107
  reload?: boolean;
97
108
  }): void;
109
+ declare function clearAllFilterState(options?: {
110
+ suppressControlEvents?: boolean;
111
+ }): void;
98
112
  declare var __VLS_28: {}, __VLS_33: {}, __VLS_38: {}, __VLS_40: {}, __VLS_42: {
99
113
  row: Record<string, unknown>;
100
114
  column: EnhancedColumnSchema;
@@ -129,7 +143,7 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
129
143
  /** 重置 QueryPanel 并刷新筛选 */
130
144
  resetQueryPanel: typeof resetQueryPanel;
131
145
  /** 清空所有筛选 */
132
- clearAllFilters: () => void;
146
+ clearAllFilters: typeof clearAllFilterState;
133
147
  /** 获取合并后的筛选条件 */
134
148
  getMergedFilters: () => {
135
149
  field: string;
@@ -168,6 +182,8 @@ declare const __VLS_component: import("vue").DefineComponent<Props, {
168
182
  getListViewState: typeof getListViewState;
169
183
  /** 应用列表视图状态(用于加载自定义列表) */
170
184
  applyListViewState: typeof applyListViewState;
185
+ /** 应用表格实例默认查询配置 */
186
+ applyTableDefaultQueryConfig: typeof applyTableDefaultQueryConfig;
171
187
  /** 重置列表视图状态 */
172
188
  resetListViewState: typeof resetListViewState;
173
189
  /** 获取当前查询状态(用于保存查询) */
@@ -24,6 +24,7 @@ export interface UseTableQueryReturn {
24
24
  currentOrderBy: ReturnType<typeof ref<OrderRequestDef[]>>;
25
25
  currentSlice: ReturnType<typeof ref<SliceRequestDef[]>>;
26
26
  currentColumns: ReturnType<typeof ref<string[]>>;
27
+ currentTableInstanceId: ReturnType<typeof ref<string | undefined>>;
27
28
  loadData: (trigger?: QueryTrigger) => Promise<void>;
28
29
  refresh: () => Promise<void>;
29
30
  reload: () => Promise<void>;
@@ -31,6 +32,7 @@ export interface UseTableQueryReturn {
31
32
  setSort: (orderBy: OrderRequestDef[]) => void;
32
33
  setSlice: (slice: SliceRequestDef[]) => void;
33
34
  setColumns: (columns: string[]) => void;
35
+ setTableInstanceId: (tableInstanceId?: string) => void;
34
36
  addHook: <N extends QueryHookName>(name: N, fn: HookFnMap[N]) => () => void;
35
37
  removeHook: <N extends QueryHookName>(name: N, fn: HookFnMap[N]) => void;
36
38
  }
@@ -2,10 +2,16 @@ import type { EnhancedColumnSchema, ListPresetConfig, ListPresetDef, ListPresetV
2
2
  interface Props {
3
3
  config: ListPresetConfig;
4
4
  getState: () => ListViewState;
5
- applyState: (state: ListViewState) => void;
5
+ applyState: (state: ListViewState, options?: {
6
+ reload?: boolean;
7
+ }) => void;
6
8
  reload?: () => void | Promise<void>;
9
+ clearConditions?: () => void | Promise<void>;
7
10
  availableColumns?: EnhancedColumnSchema[];
11
+ lockedColumns?: string[];
12
+ requiredRuntimeColumns?: string[];
8
13
  }
14
+ type MoveEdge = 'top' | 'bottom';
9
15
  declare const form: import("vue").Ref<{
10
16
  title: string;
11
17
  description: string;
@@ -27,16 +33,24 @@ declare const form: import("vue").Ref<{
27
33
  }>;
28
34
  declare function openDialog(): void;
29
35
  declare function syncColumnDraftFromState(): void;
36
+ declare function moveVisibleColumn(index: number, direction: -1 | 1): void;
37
+ declare function moveVisibleColumnToEdge(index: number, edge: MoveEdge): void;
38
+ declare function moveColumn(index: number, direction: -1 | 1): void;
30
39
  declare function loadPresets(): Promise<void>;
31
40
  declare function applyPreset(preset: ListPresetDef): Promise<void>;
32
41
  declare function startEditPreset(preset: ListPresetDef): void;
33
42
  declare function cancelEdit(): void;
34
43
  declare function saveCurrentPreset(): Promise<void>;
35
44
  declare function overwritePreset(preset: ListPresetDef): Promise<void>;
45
+ declare function clearCurrentConditions(): Promise<void>;
36
46
  declare const _default: import("vue").DefineComponent<Props, {
37
47
  applyPreset: typeof applyPreset;
38
48
  cancelEdit: typeof cancelEdit;
49
+ clearCurrentConditions: typeof clearCurrentConditions;
39
50
  loadPresets: typeof loadPresets;
51
+ moveColumn: typeof moveColumn;
52
+ moveVisibleColumn: typeof moveVisibleColumn;
53
+ moveVisibleColumnToEdge: typeof moveVisibleColumnToEdge;
40
54
  openDialog: typeof openDialog;
41
55
  overwritePreset: typeof overwritePreset;
42
56
  saveCurrentPreset: typeof saveCurrentPreset;
@@ -93,6 +107,7 @@ declare const _default: import("vue").DefineComponent<Props, {
93
107
  getColumnDraft: () => {
94
108
  name: string;
95
109
  title?: string;
110
+ type?: string;
96
111
  visible: boolean;
97
112
  width?: number;
98
113
  minWidth?: number;
package/dist/index.d.ts CHANGED
@@ -26,4 +26,5 @@ export { saveQuery, listSavedQueries, getSavedQuery, updateSavedQuery, deleteSav
26
26
  export type { SavedQueryDef, SaveQueryRequest, QueryVisibility } from './api/savedQuery';
27
27
  export { listPresets, getDefaultListPreset, createListPreset, getListPreset, updateListPreset, deleteListPreset, setDefaultListPreset, clearDefaultListPreset } from './api/listPreset';
28
28
  export type { ListPresetScope, SaveListPresetRequest, UpdateListPresetRequest } from './api/listPreset';
29
- export type { ColumnSchema, EnhancedColumnSchema, TableConfig, TableSchema, CellRenderContext, CellRenderFn, GlobalColumnRenderContext, GlobalColumnMatchFn, GlobalColumnRenderFn, GlobalColumnRenderer, GlobalColumnRenderResolution, CellCopyConfig, QueryMode, ColumnCustomization, QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, SliceRequestDef, OrderRequestDef, FilterOption, FetchDataParams, FetchDataResult, 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, ListPresetConfig, ColumnViewSetting, QueryConditionPreset, ListViewState, ListPresetDef, FrontendMeta, FieldMeta, FieldCategory, MemberLookupMeta, UiHintsMeta, DefaultsMeta, CapabilitiesMeta, ParamsMeta, MemberQueryRequest, MemberOption, MemberQueryResponse } from './types';
29
+ export { getTableDefaultQueryConfig } from './api/tableDefaultQueryConfig';
30
+ export type { ColumnSchema, EnhancedColumnSchema, TableConfig, TableSchema, CellRenderContext, CellRenderFn, GlobalColumnRenderContext, GlobalColumnMatchFn, GlobalColumnRenderFn, GlobalColumnRenderer, GlobalColumnRenderResolution, CellCopyConfig, QueryMode, ColumnCustomization, QueryMetaResponse, ViewerQueryRequest, ViewerDataResponse, SliceRequestDef, OrderRequestDef, FilterOption, FetchDataParams, FetchDataResult, 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, ListPresetConfig, TableDefaultQueryConfig, TableDefaultQueryConfigScope, TableDefaultQueryConfigLoadOptions, TableDefaultQueryConfigSource, ColumnViewSetting, QueryConditionPreset, ListViewState, ListPresetDef, FrontendMeta, FieldMeta, FieldCategory, MemberLookupMeta, UiHintsMeta, DefaultsMeta, CapabilitiesMeta, ParamsMeta, MemberQueryRequest, MemberOption, MemberQueryResponse } from './types';