@veltra/sheet 2.4.0 → 2.5.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.
Files changed (147) hide show
  1. package/dist/components/sheet/formula-bar.js +50 -7
  2. package/dist/components/sheet/style2.css +2 -2
  3. package/dist/index.d.ts +2 -19
  4. package/dist/index.js +2 -15
  5. package/dist/types/index.d.ts +1 -3
  6. package/package.json +5 -6
  7. package/src/components/sheet/__test__/formula-bar.test.ts +29 -0
  8. package/src/components/sheet/formula-bar.vue +67 -6
  9. package/src/components/sheet/style.scss +1 -1
  10. package/src/index.ts +1 -27
  11. package/src/types/index.ts +0 -2
  12. package/dist/components/report/binding-badge.js +0 -118
  13. package/dist/components/report/designer/cell-coords.js +0 -46
  14. package/dist/components/report/designer/col-widths.js +0 -29
  15. package/dist/components/report/designer/conditional-rules/helpers.js +0 -139
  16. package/dist/components/report/designer/drill-dialog.js +0 -258
  17. package/dist/components/report/designer/drop-highlight-overlay.js +0 -76
  18. package/dist/components/report/designer/float-panel.js +0 -434
  19. package/dist/components/report/designer/role.js +0 -17
  20. package/dist/components/report/designer/rule-preview.js +0 -33
  21. package/dist/components/report/designer/rule-row.js +0 -253
  22. package/dist/components/report/designer/rules-dialog.js +0 -118
  23. package/dist/components/report/designer/topology-overlay.js +0 -122
  24. package/dist/components/report/designer/topology.js +0 -64
  25. package/dist/components/report/designer/use-grid-overlay.js +0 -75
  26. package/dist/components/report/designer-hub.js +0 -177
  27. package/dist/components/report/field-panel-helpers.js +0 -33
  28. package/dist/components/report/field-panel.js +0 -132
  29. package/dist/components/report/filter-bar.js +0 -74
  30. package/dist/components/report/hub-connection-form.js +0 -145
  31. package/dist/components/report/hub-dataset-editor.js +0 -409
  32. package/dist/components/report/preview-grid-size.js +0 -32
  33. package/dist/components/report/print.js +0 -39
  34. package/dist/components/report/report-designer.js +0 -428
  35. package/dist/components/report/report-viewer.js +0 -253
  36. package/dist/components/report/style.d.ts +0 -17
  37. package/dist/components/report/style.js +0 -18
  38. package/dist/components/report/style2.css +0 -965
  39. package/dist/components/report/use-report-designer.js +0 -387
  40. package/dist/components/report/use-report-viewer.js +0 -140
  41. package/dist/report/binding.d.ts +0 -83
  42. package/dist/report/binding.js +0 -334
  43. package/dist/report/connector.d.ts +0 -66
  44. package/dist/report/connector.js +0 -159
  45. package/dist/report/drill.d.ts +0 -48
  46. package/dist/report/drill.js +0 -78
  47. package/dist/report/export-xlsx.d.ts +0 -13
  48. package/dist/report/export-xlsx.js +0 -13
  49. package/dist/report/filter-bar.d.ts +0 -10
  50. package/dist/report/filter-bar.js +0 -31
  51. package/dist/report/index.d.ts +0 -14
  52. package/dist/report/params.d.ts +0 -13
  53. package/dist/report/params.js +0 -61
  54. package/dist/report/print.d.ts +0 -23
  55. package/dist/report/print.js +0 -197
  56. package/dist/report/render/aggregate.js +0 -193
  57. package/dist/report/render/builder.d.ts +0 -12
  58. package/dist/report/render/builder.js +0 -139
  59. package/dist/report/render/coordinate.d.ts +0 -25
  60. package/dist/report/render/coordinate.js +0 -733
  61. package/dist/report/render/index.d.ts +0 -14
  62. package/dist/report/render/index.js +0 -21
  63. package/dist/report/render/style-resolver.js +0 -50
  64. package/dist/report/render/template-index.d.ts +0 -24
  65. package/dist/report/render/template-index.js +0 -137
  66. package/dist/report/rules/evaluate.d.ts +0 -25
  67. package/dist/report/rules/evaluate.js +0 -82
  68. package/dist/report/rules/index.d.ts +0 -2
  69. package/dist/report/template.d.ts +0 -63
  70. package/dist/report/template.js +0 -83
  71. package/dist/report/types.d.ts +0 -103
  72. package/dist/types/report-designer.d.ts +0 -51
  73. package/dist/types/report-viewer.d.ts +0 -57
  74. package/src/components/report/__test__/binding-badge.test.ts +0 -92
  75. package/src/components/report/__test__/conditional-rules-helpers.test.ts +0 -88
  76. package/src/components/report/__test__/field-panel-helpers.test.ts +0 -65
  77. package/src/components/report/__test__/float-panel-position.test.ts +0 -45
  78. package/src/components/report/__test__/preview-grid-size.test.ts +0 -63
  79. package/src/components/report/__test__/report-designer.test.ts +0 -559
  80. package/src/components/report/__test__/report-drill.test.ts +0 -692
  81. package/src/components/report/__test__/report-viewer.test.ts +0 -400
  82. package/src/components/report/__test__/topology.test.ts +0 -143
  83. package/src/components/report/__test__/use-report-designer.test.ts +0 -804
  84. package/src/components/report/binding-badge.ts +0 -122
  85. package/src/components/report/designer/cell-coords.ts +0 -95
  86. package/src/components/report/designer/col-widths.ts +0 -56
  87. package/src/components/report/designer/conditional-rules/helpers.ts +0 -189
  88. package/src/components/report/designer/drill-dialog.vue +0 -245
  89. package/src/components/report/designer/drop-highlight-overlay.vue +0 -75
  90. package/src/components/report/designer/float-panel.vue +0 -444
  91. package/src/components/report/designer/role.ts +0 -32
  92. package/src/components/report/designer/rule-preview.vue +0 -40
  93. package/src/components/report/designer/rule-row.vue +0 -252
  94. package/src/components/report/designer/rules-dialog.vue +0 -110
  95. package/src/components/report/designer/topology-overlay.vue +0 -128
  96. package/src/components/report/designer/topology.ts +0 -124
  97. package/src/components/report/designer/use-grid-overlay.ts +0 -114
  98. package/src/components/report/designer-hub.vue +0 -198
  99. package/src/components/report/field-panel-helpers.ts +0 -44
  100. package/src/components/report/field-panel.vue +0 -136
  101. package/src/components/report/filter-bar.vue +0 -77
  102. package/src/components/report/hub-connection-form.vue +0 -124
  103. package/src/components/report/hub-dataset-editor.vue +0 -387
  104. package/src/components/report/index.ts +0 -2
  105. package/src/components/report/preview-grid-size.ts +0 -33
  106. package/src/components/report/print.ts +0 -44
  107. package/src/components/report/report-designer.vue +0 -454
  108. package/src/components/report/report-viewer.vue +0 -289
  109. package/src/components/report/style-designer.scss +0 -653
  110. package/src/components/report/style-hub.scss +0 -292
  111. package/src/components/report/style-viewer.scss +0 -144
  112. package/src/components/report/style.scss +0 -3
  113. package/src/components/report/style.ts +0 -20
  114. package/src/components/report/use-report-designer.ts +0 -603
  115. package/src/components/report/use-report-viewer.ts +0 -227
  116. package/src/report/__test__/binding.test.ts +0 -320
  117. package/src/report/__test__/connector.test.ts +0 -239
  118. package/src/report/__test__/drill.test.ts +0 -194
  119. package/src/report/__test__/export-xlsx.test.ts +0 -96
  120. package/src/report/__test__/filter-bar.test.ts +0 -58
  121. package/src/report/__test__/params.test.ts +0 -156
  122. package/src/report/__test__/print.test.ts +0 -170
  123. package/src/report/__test__/render.test.ts +0 -856
  124. package/src/report/__test__/rules.test.ts +0 -131
  125. package/src/report/__test__/template.test.ts +0 -366
  126. package/src/report/binding.ts +0 -474
  127. package/src/report/connector.ts +0 -206
  128. package/src/report/drill.ts +0 -112
  129. package/src/report/export-xlsx.ts +0 -15
  130. package/src/report/filter-bar.ts +0 -36
  131. package/src/report/index.ts +0 -16
  132. package/src/report/params.ts +0 -96
  133. package/src/report/print.ts +0 -234
  134. package/src/report/render/__test__/aggregate.test.ts +0 -16
  135. package/src/report/render/__test__/coordinate.test.ts +0 -405
  136. package/src/report/render/aggregate.ts +0 -289
  137. package/src/report/render/builder.ts +0 -211
  138. package/src/report/render/coordinate.ts +0 -1239
  139. package/src/report/render/index.ts +0 -30
  140. package/src/report/render/style-resolver.ts +0 -68
  141. package/src/report/render/template-index.ts +0 -200
  142. package/src/report/rules/evaluate.ts +0 -113
  143. package/src/report/rules/index.ts +0 -7
  144. package/src/report/template.ts +0 -145
  145. package/src/report/types.ts +0 -116
  146. package/src/types/report-designer.ts +0 -55
  147. package/src/types/report-viewer.ts +0 -54
@@ -1,434 +0,0 @@
1
- import { formatBindingPlaceholder, formatCellAddress, formatParentCandidateLabel, inferReportPreset, isReductionAggregate } from "../../../report/binding.js";
2
- import { resolveGridOverlayLayout } from "./cell-coords.js";
3
- import { readCellOverlayRect, resolveBindingFloatPanelPosition, useGridOverlaySync } from "./use-grid-overlay.js";
4
- import { REPORT_PRESET_OPTIONS, presetBindingDefaults } from "./role.js";
5
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, openBlock, ref, toDisplayString, toRef, unref, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
6
- import { UButton, URadioGroup, USelect, USwitch } from "@veltra/desktop";
7
- import { bem } from "@veltra/utils";
8
- //#region src/components/report/designer/float-panel.vue
9
- const _hoisted_1 = ["title"];
10
- const CUSTOM_PRESET_VALUE = "__custom__";
11
- const _sfc_main = /*@__PURE__*/ defineComponent({
12
- name: "UReportFloatPanel",
13
- __name: "float-panel",
14
- props: {
15
- cell: {},
16
- binding: {},
17
- resolvedRowParentLabel: {},
18
- resolvedColParentLabel: {},
19
- parentPickMode: {},
20
- rowParentCandidates: {},
21
- colParentCandidates: {},
22
- showDrill: { type: Boolean },
23
- resolveFieldLabel: { type: Function },
24
- getBindingAt: { type: Function },
25
- hostEl: {},
26
- getGrid: { type: Function }
27
- },
28
- emits: [
29
- "patch",
30
- "remove",
31
- "open-rules",
32
- "open-drill",
33
- "start-parent-pick",
34
- "cancel-parent-pick",
35
- "clear-parent"
36
- ],
37
- setup(__props, { emit: __emit }) {
38
- const props = __props;
39
- const emit = __emit;
40
- const cls = bem("report-float-panel");
41
- const hostEl = toRef(props, "hostEl");
42
- const panelRef = ref(null);
43
- const expanded = ref(false);
44
- const placement = ref("above");
45
- const presetOptions = computed(() => {
46
- const options = REPORT_PRESET_OPTIONS.map((item) => ({ ...item }));
47
- if (props.binding && inferReportPreset(props.binding) === null) options.unshift({
48
- value: CUSTOM_PRESET_VALUE,
49
- label: "自定义"
50
- });
51
- return options;
52
- });
53
- const ALL_AGGREGATE_OPTIONS = [
54
- {
55
- value: "list",
56
- label: "明细"
57
- },
58
- {
59
- value: "group",
60
- label: "分组"
61
- },
62
- {
63
- value: "sum",
64
- label: "求和"
65
- },
66
- {
67
- value: "avg",
68
- label: "平均"
69
- },
70
- {
71
- value: "count",
72
- label: "计数"
73
- },
74
- {
75
- value: "max",
76
- label: "最大"
77
- },
78
- {
79
- value: "min",
80
- label: "最小"
81
- }
82
- ];
83
- const REDUCTION_AGGREGATE_OPTIONS = ALL_AGGREGATE_OPTIONS.filter((item) => isReductionAggregate(item.value));
84
- const expandOptions = [
85
- {
86
- value: "down",
87
- label: "向下"
88
- },
89
- {
90
- value: "right",
91
- label: "向右"
92
- },
93
- {
94
- value: "none",
95
- label: "不展开"
96
- }
97
- ];
98
- const sortOptions = [
99
- {
100
- value: "none",
101
- label: "无"
102
- },
103
- {
104
- value: "asc",
105
- label: "升序"
106
- },
107
- {
108
- value: "desc",
109
- label: "降序"
110
- }
111
- ];
112
- const panelLeft = ref(0);
113
- const panelTop = ref(0);
114
- const inView = ref(false);
115
- const currentPresetValue = computed(() => {
116
- if (!props.binding) return "detail";
117
- return inferReportPreset(props.binding) ?? CUSTOM_PRESET_VALUE;
118
- });
119
- const showAggregateSelect = computed(() => {
120
- const preset = currentPresetValue.value;
121
- return preset === CUSTOM_PRESET_VALUE || preset === "subtotal" || preset === "grandTotal" || preset === "cross";
122
- });
123
- const showExpandSelect = computed(() => {
124
- const preset = currentPresetValue.value;
125
- return preset === CUSTOM_PRESET_VALUE || preset === "groupHeader" || preset === "detail";
126
- });
127
- const aggregateOptions = computed(() => currentPresetValue.value === CUSTOM_PRESET_VALUE ? ALL_AGGREGATE_OPTIONS : REDUCTION_AGGREGATE_OPTIONS);
128
- const summaryText = computed(() => {
129
- if (!props.binding) return "";
130
- const parts = [formatBindingPlaceholder(props.binding, props.resolveFieldLabel)];
131
- if (props.binding.rowParent && props.resolvedRowParentLabel !== "—") {
132
- const parent = props.getBindingAt?.(props.binding.rowParent);
133
- const name = parent ? props.resolveFieldLabel?.(parent.dataset, parent.field) ?? parent.field : props.resolvedRowParentLabel;
134
- parts.push(`行父格 ${name} ${props.resolvedRowParentLabel}`);
135
- }
136
- if (props.binding.colParent && props.resolvedColParentLabel !== "—") {
137
- const parent = props.getBindingAt?.(props.binding.colParent);
138
- const name = parent ? props.resolveFieldLabel?.(parent.dataset, parent.field) ?? parent.field : props.resolvedColParentLabel;
139
- parts.push(`列父格 ${name} ${props.resolvedColParentLabel}`);
140
- }
141
- return parts.join(" · ");
142
- });
143
- function candidateOption(addr) {
144
- const value = formatCellAddress(addr);
145
- const binding = props.getBindingAt?.(addr);
146
- return {
147
- value,
148
- label: binding ? formatParentCandidateLabel(addr, binding, props.resolveFieldLabel) : value
149
- };
150
- }
151
- const rowParentOptions = computed(() => props.rowParentCandidates.map(candidateOption));
152
- const colParentOptions = computed(() => props.colParentCandidates.map(candidateOption));
153
- const rowParentSelectValue = computed(() => props.binding?.rowParent ? formatCellAddress(props.binding.rowParent) : void 0);
154
- const colParentSelectValue = computed(() => props.binding?.colParent ? formatCellAddress(props.binding.colParent) : void 0);
155
- const visible = computed(() => !!props.binding && !!props.cell && inView.value);
156
- const panelStyle = computed(() => ({
157
- left: `${panelLeft.value}px`,
158
- top: `${panelTop.value}px`
159
- }));
160
- watch(() => [props.cell?.row, props.cell?.col], () => {
161
- if (props.parentPickMode) return;
162
- expanded.value = false;
163
- });
164
- watch(() => props.parentPickMode, (mode) => {
165
- if (mode) expanded.value = true;
166
- });
167
- watch(expanded, () => {
168
- nextTick(() => updatePosition());
169
- });
170
- watch(visible, (show) => {
171
- if (!show) return;
172
- nextTick(() => updatePosition());
173
- });
174
- function onPreset(preset) {
175
- if (preset === CUSTOM_PRESET_VALUE) return;
176
- emit("patch", presetBindingDefaults(preset));
177
- }
178
- function aggregateDefaultExpand(aggregate) {
179
- return isReductionAggregate(aggregate) ? "none" : "down";
180
- }
181
- function onAggregate(aggregate) {
182
- emit("patch", {
183
- aggregate,
184
- expand: aggregateDefaultExpand(aggregate)
185
- });
186
- }
187
- function onExpand(expand) {
188
- emit("patch", { expand });
189
- }
190
- function onSort(value) {
191
- emit("patch", { sort: value });
192
- }
193
- function onMergeSpan(merged) {
194
- emit("patch", { mergeSpan: merged });
195
- }
196
- function onRowParentSelect(label) {
197
- const addr = props.rowParentCandidates.find((item) => formatCellAddress(item) === label);
198
- if (!addr) return;
199
- emit("patch", { rowParent: { ...addr } });
200
- }
201
- function onColParentSelect(label) {
202
- const addr = props.colParentCandidates.find((item) => formatCellAddress(item) === label);
203
- if (!addr) return;
204
- emit("patch", { colParent: { ...addr } });
205
- }
206
- function updatePosition() {
207
- const cell = props.cell;
208
- const host = props.hostEl;
209
- if (!cell || !host) {
210
- inView.value = false;
211
- return;
212
- }
213
- const layoutResolved = resolveGridOverlayLayout(host);
214
- const rect = readCellOverlayRect(cell, host, props.getGrid);
215
- if (!rect || !layoutResolved) {
216
- inView.value = false;
217
- return;
218
- }
219
- inView.value = true;
220
- const panelEl = panelRef.value;
221
- const panelWidth = panelEl?.offsetWidth ?? 340;
222
- const panelHeight = panelEl?.offsetHeight ?? (expanded.value ? 360 : 68);
223
- const position = resolveBindingFloatPanelPosition(rect, layoutResolved.layout, panelWidth, panelHeight, host.clientWidth);
224
- placement.value = position.placement;
225
- panelLeft.value = position.left;
226
- panelTop.value = position.top;
227
- }
228
- useGridOverlaySync({
229
- hostEl,
230
- getGrid: () => props.getGrid(),
231
- watchSources: () => [
232
- props.cell?.row,
233
- props.cell?.col,
234
- props.binding,
235
- props.hostEl,
236
- expanded.value,
237
- props.parentPickMode
238
- ],
239
- update: updatePosition
240
- });
241
- return (_ctx, _cache) => {
242
- return __props.binding && __props.cell ? withDirectives((openBlock(), createElementBlock("div", {
243
- key: 0,
244
- ref_key: "panelRef",
245
- ref: panelRef,
246
- class: normalizeClass([
247
- unref(cls).b,
248
- unref(cls).m(placement.value),
249
- expanded.value ? unref(cls).m("expanded") : ""
250
- ]),
251
- style: normalizeStyle(panelStyle.value),
252
- onMousedown: _cache[9] || (_cache[9] = withModifiers(() => {}, ["stop"])),
253
- onPointerdown: _cache[10] || (_cache[10] = withModifiers(() => {}, ["stop"]))
254
- }, [createElementVNode("div", { class: normalizeClass(unref(cls).e("bar")) }, [createElementVNode("div", {
255
- class: normalizeClass(unref(cls).e("summary")),
256
- title: summaryText.value
257
- }, toDisplayString(summaryText.value), 11, _hoisted_1), createElementVNode("div", { class: normalizeClass(unref(cls).e("toolbar")) }, [
258
- createVNode(unref(USelect), {
259
- size: "small",
260
- class: normalizeClass([unref(cls).e("select"), unref(cls).em("select", "role")]),
261
- "model-value": currentPresetValue.value,
262
- options: presetOptions.value,
263
- "onUpdate:modelValue": onPreset
264
- }, null, 8, [
265
- "class",
266
- "model-value",
267
- "options"
268
- ]),
269
- showAggregateSelect.value ? (openBlock(), createBlock(unref(USelect), {
270
- key: 0,
271
- size: "small",
272
- class: normalizeClass([unref(cls).e("select"), unref(cls).em("select", "aggregate")]),
273
- "model-value": __props.binding.aggregate,
274
- options: aggregateOptions.value,
275
- "onUpdate:modelValue": onAggregate
276
- }, null, 8, [
277
- "class",
278
- "model-value",
279
- "options"
280
- ])) : createCommentVNode("v-if", true),
281
- showExpandSelect.value ? (openBlock(), createBlock(unref(USelect), {
282
- key: 1,
283
- size: "small",
284
- class: normalizeClass([unref(cls).e("select"), unref(cls).em("select", "expand")]),
285
- "model-value": __props.binding.expand,
286
- options: expandOptions,
287
- "onUpdate:modelValue": onExpand
288
- }, null, 8, ["class", "model-value"])) : createCommentVNode("v-if", true),
289
- createVNode(unref(UButton), {
290
- size: "small",
291
- plain: "",
292
- onClick: _cache[0] || (_cache[0] = ($event) => emit("open-rules"))
293
- }, {
294
- default: withCtx(() => [..._cache[11] || (_cache[11] = [createTextVNode("条件样式", -1)])]),
295
- _: 1
296
- }),
297
- __props.showDrill ? (openBlock(), createBlock(unref(UButton), {
298
- key: 2,
299
- size: "small",
300
- plain: "",
301
- type: __props.binding.drill ? "primary" : void 0,
302
- onClick: _cache[1] || (_cache[1] = ($event) => emit("open-drill"))
303
- }, {
304
- default: withCtx(() => [..._cache[12] || (_cache[12] = [createTextVNode(" 下钻 ", -1)])]),
305
- _: 1
306
- }, 8, ["type"])) : createCommentVNode("v-if", true),
307
- createVNode(unref(UButton), {
308
- size: "small",
309
- text: "",
310
- type: "danger",
311
- onClick: _cache[2] || (_cache[2] = ($event) => emit("remove"))
312
- }, {
313
- default: withCtx(() => [..._cache[13] || (_cache[13] = [createTextVNode("删除绑定", -1)])]),
314
- _: 1
315
- }),
316
- createVNode(unref(UButton), {
317
- size: "small",
318
- text: "",
319
- class: normalizeClass(unref(cls).e("expand")),
320
- title: expanded.value ? "收起" : "展开更多",
321
- onClick: _cache[3] || (_cache[3] = ($event) => expanded.value = !expanded.value)
322
- }, {
323
- default: withCtx(() => [createTextVNode(toDisplayString(expanded.value ? "收起" : "展开"), 1)]),
324
- _: 1
325
- }, 8, ["class", "title"])
326
- ], 2)], 2), expanded.value ? (openBlock(), createElementBlock("div", {
327
- key: 0,
328
- class: normalizeClass(unref(cls).e("body"))
329
- }, [
330
- createElementVNode("section", { class: normalizeClass(unref(cls).e("section")) }, [createElementVNode("div", { class: normalizeClass(unref(cls).e("section-label")) }, "数据集", 2), createElementVNode("p", { class: normalizeClass(unref(cls).e("hint")) }, toDisplayString(__props.binding.dataset), 3)], 2),
331
- createElementVNode("section", { class: normalizeClass(unref(cls).e("section")) }, [createElementVNode("div", { class: normalizeClass(unref(cls).e("section-label")) }, "排序", 2), createVNode(unref(URadioGroup), {
332
- size: "small",
333
- items: sortOptions,
334
- "model-value": __props.binding.sort ?? "none",
335
- "onUpdate:modelValue": onSort
336
- }, null, 8, ["model-value"])], 2),
337
- createElementVNode("section", { class: normalizeClass(unref(cls).e("section")) }, [createElementVNode("div", { class: normalizeClass(unref(cls).e("section-label")) }, "扩展实例合并单元格", 2), createVNode(unref(USwitch), {
338
- size: "small",
339
- "model-value": __props.binding.mergeSpan !== false,
340
- "onUpdate:modelValue": onMergeSpan
341
- }, null, 8, ["model-value"])], 2),
342
- createElementVNode("section", { class: normalizeClass(unref(cls).e("section")) }, [
343
- createElementVNode("div", { class: normalizeClass(unref(cls).e("section-label")) }, "行方向父格", 2),
344
- createElementVNode("p", { class: normalizeClass(unref(cls).e("hint")) }, "当前:" + toDisplayString(__props.resolvedRowParentLabel), 3),
345
- createElementVNode("div", { class: normalizeClass(unref(cls).e("parent-actions")) }, [
346
- createVNode(unref(UButton), {
347
- size: "small",
348
- plain: "",
349
- type: __props.parentPickMode === "row" ? "primary" : void 0,
350
- onClick: _cache[4] || (_cache[4] = ($event) => emit("start-parent-pick", "row"))
351
- }, {
352
- default: withCtx(() => [createTextVNode(toDisplayString(__props.parentPickMode === "row" ? "点选目标格…" : "设置行方向父格"), 1)]),
353
- _: 1
354
- }, 8, ["type"]),
355
- rowParentOptions.value.length > 0 ? (openBlock(), createBlock(unref(USelect), {
356
- key: 0,
357
- size: "small",
358
- class: normalizeClass(unref(cls).e("parent-select")),
359
- placeholder: "候选格",
360
- "model-value": rowParentSelectValue.value,
361
- options: rowParentOptions.value,
362
- "onUpdate:modelValue": onRowParentSelect
363
- }, null, 8, [
364
- "class",
365
- "model-value",
366
- "options"
367
- ])) : createCommentVNode("v-if", true),
368
- __props.binding.rowParent ? (openBlock(), createBlock(unref(UButton), {
369
- key: 1,
370
- size: "small",
371
- text: "",
372
- type: "danger",
373
- onClick: _cache[5] || (_cache[5] = ($event) => emit("clear-parent", "row"))
374
- }, {
375
- default: withCtx(() => [..._cache[14] || (_cache[14] = [createTextVNode(" 清除 ", -1)])]),
376
- _: 1
377
- })) : createCommentVNode("v-if", true)
378
- ], 2)
379
- ], 2),
380
- createElementVNode("section", { class: normalizeClass(unref(cls).e("section")) }, [
381
- createElementVNode("div", { class: normalizeClass(unref(cls).e("section-label")) }, "列方向父格", 2),
382
- createElementVNode("p", { class: normalizeClass(unref(cls).e("hint")) }, "当前:" + toDisplayString(__props.resolvedColParentLabel), 3),
383
- createElementVNode("div", { class: normalizeClass(unref(cls).e("parent-actions")) }, [
384
- createVNode(unref(UButton), {
385
- size: "small",
386
- plain: "",
387
- type: __props.parentPickMode === "col" ? "primary" : void 0,
388
- onClick: _cache[6] || (_cache[6] = ($event) => emit("start-parent-pick", "col"))
389
- }, {
390
- default: withCtx(() => [createTextVNode(toDisplayString(__props.parentPickMode === "col" ? "点选目标格…" : "设置列方向父格"), 1)]),
391
- _: 1
392
- }, 8, ["type"]),
393
- colParentOptions.value.length > 0 ? (openBlock(), createBlock(unref(USelect), {
394
- key: 0,
395
- size: "small",
396
- class: normalizeClass(unref(cls).e("parent-select")),
397
- placeholder: "候选格",
398
- "model-value": colParentSelectValue.value,
399
- options: colParentOptions.value,
400
- "onUpdate:modelValue": onColParentSelect
401
- }, null, 8, [
402
- "class",
403
- "model-value",
404
- "options"
405
- ])) : createCommentVNode("v-if", true),
406
- __props.binding.colParent ? (openBlock(), createBlock(unref(UButton), {
407
- key: 1,
408
- size: "small",
409
- text: "",
410
- type: "danger",
411
- onClick: _cache[7] || (_cache[7] = ($event) => emit("clear-parent", "col"))
412
- }, {
413
- default: withCtx(() => [..._cache[15] || (_cache[15] = [createTextVNode(" 清除 ", -1)])]),
414
- _: 1
415
- })) : createCommentVNode("v-if", true)
416
- ], 2)
417
- ], 2),
418
- __props.parentPickMode ? (openBlock(), createElementBlock("footer", {
419
- key: 0,
420
- class: normalizeClass(unref(cls).e("footer"))
421
- }, [createVNode(unref(UButton), {
422
- size: "small",
423
- plain: "",
424
- onClick: _cache[8] || (_cache[8] = ($event) => emit("cancel-parent-pick"))
425
- }, {
426
- default: withCtx(() => [..._cache[16] || (_cache[16] = [createTextVNode("取消点选", -1)])]),
427
- _: 1
428
- })], 2)) : createCommentVNode("v-if", true)
429
- ], 2)) : createCommentVNode("v-if", true)], 38)), [[vShow, visible.value]]) : createCommentVNode("v-if", true);
430
- };
431
- }
432
- });
433
- //#endregion
434
- export { _sfc_main as default };
@@ -1,17 +0,0 @@
1
- import { presetBindingPatch } from "../../../report/binding.js";
2
- const REPORT_PRESET_OPTIONS = Object.entries({
3
- groupHeader: "分组头",
4
- detail: "明细行",
5
- subtotal: "小计行",
6
- grandTotal: "总计行",
7
- cross: "交叉格"
8
- }).map(([value, label]) => ({
9
- value,
10
- label
11
- }));
12
- /** 切换预设时写入 expand / aggregate / 父格组合(父格除 grandTotal 外保留既有值) */
13
- function presetBindingDefaults(preset) {
14
- return presetBindingPatch(preset);
15
- }
16
- //#endregion
17
- export { REPORT_PRESET_OPTIONS, presetBindingDefaults };
@@ -1,33 +0,0 @@
1
- import { computed, createElementBlock, defineComponent, normalizeClass, normalizeStyle, openBlock, toDisplayString, unref } from "vue";
2
- import { bem } from "@veltra/utils";
3
- //#region src/components/report/designer/rule-preview.vue
4
- const _hoisted_1 = ["title"];
5
- const _sfc_main = /*@__PURE__*/ defineComponent({
6
- name: "UReportRulePreview",
7
- __name: "rule-preview",
8
- props: { rule: {} },
9
- setup(__props) {
10
- const props = __props;
11
- const cls = bem("report-rule-preview");
12
- const previewStyle = computed(() => {
13
- const { fill, font } = props.rule.style;
14
- return {
15
- backgroundColor: fill?.color || "transparent",
16
- color: font?.color || "inherit",
17
- fontWeight: font?.bold ? "700" : "400",
18
- fontStyle: font?.italic ? "italic" : "normal"
19
- };
20
- });
21
- const previewLabel = computed(() => props.rule.scope === "row" ? "整行" : "Aa");
22
- const previewTitle = computed(() => props.rule.scope === "row" ? "整行作用范围:命中后染满物理输出行(交叉表会染满整行,明细行报表更合适)" : "本格作用范围");
23
- return (_ctx, _cache) => {
24
- return openBlock(), createElementBlock("span", {
25
- class: normalizeClass([unref(cls).b, __props.rule.scope === "row" && unref(cls).m("row")]),
26
- style: normalizeStyle(previewStyle.value),
27
- title: previewTitle.value
28
- }, toDisplayString(previewLabel.value), 15, _hoisted_1);
29
- };
30
- }
31
- });
32
- //#endregion
33
- export { _sfc_main as default };