qidian-vue-ui 2.4.0 → 2.5.0
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/dist/components/crud/search/index.vue.d.ts +4 -0
- package/dist/components/crud/search/index.vue2.mjs +2 -0
- package/dist/components/crud/search/props.d.ts +2 -0
- package/dist/components/dialog/form.vue.mjs +2 -0
- package/dist/components/dialog/props.d.ts +2 -0
- package/dist/components/form/config.d.ts +7 -1
- package/dist/components/form/config.mjs +2 -0
- package/dist/components/form/index.css +21 -18
- package/dist/components/form/index.vue.mjs +1 -1
- package/dist/components/form/index.vue2.mjs +78 -15
- package/dist/components/form/item.css +2 -2
- package/dist/components/form/item.vue.mjs +1 -1
- package/dist/components/form/item.vue2.mjs +23 -2
- package/dist/components/form/props.d.ts +2 -0
- package/dist/components/form/props.mjs +2 -0
- package/dist/components/form/types.d.ts +5 -0
- package/dist/components/grid/index.d.ts +2 -1
- package/dist/components/grid/item.css +1 -1
- package/dist/components/grid/item.vue.mjs +1 -1
- package/dist/components/grid/item.vue2.mjs +10 -41
- package/dist/components/grid/utils.d.ts +3 -0
- package/dist/components/grid/utils.mjs +26 -0
- package/dist/components/service/table/index.css +75 -75
- package/dist/components/service/table/index.vue.mjs +1 -1
- package/dist/components/service/table/index.vue2.mjs +27 -3
- package/dist/index.mjs +5 -1
- package/package.json +1 -1
|
@@ -8,9 +8,11 @@ type __VLS_Slots = {} & {
|
|
|
8
8
|
declare const __VLS_component: import("vue").DefineComponent<QdCrudSearchProps, {
|
|
9
9
|
submit: (params?: {
|
|
10
10
|
showErrorMessage?: boolean;
|
|
11
|
+
showFirstErrorMessage?: boolean;
|
|
11
12
|
scrollToFirstError?: import("../..").QdFormProps["scrollToFirstError"];
|
|
12
13
|
}) => Promise<import("../..").QdFormSubmitContext<import("tdesign-vue-next").Data>>;
|
|
13
14
|
validate: (params?: import("tdesign-vue-next").FormValidateParams & {
|
|
15
|
+
showFirstErrorMessage?: boolean;
|
|
14
16
|
scrollToFirstError?: import("../..").QdFormProps["scrollToFirstError"];
|
|
15
17
|
}) => Promise<import("tdesign-vue-next").FormValidateResult<import("tdesign-vue-next").Data>>;
|
|
16
18
|
clearValidate: (fields?: (string | number)[] | undefined) => void;
|
|
@@ -36,6 +38,8 @@ declare const __VLS_component: import("vue").DefineComponent<QdCrudSearchProps,
|
|
|
36
38
|
gutter: number | import("tdesign-vue-next").GutterObject | (number | import("tdesign-vue-next").GutterObject)[];
|
|
37
39
|
grid: import("../..").QdGridItemProps;
|
|
38
40
|
defaultClearable: boolean;
|
|
41
|
+
autoFill: boolean;
|
|
42
|
+
showFirstErrorMessage: boolean;
|
|
39
43
|
btnDisabled: boolean;
|
|
40
44
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
41
45
|
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
|
|
@@ -25,6 +25,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
25
25
|
loadingProps: {},
|
|
26
26
|
defaultClearable: { type: Boolean },
|
|
27
27
|
descriptions: { type: Boolean },
|
|
28
|
+
autoFill: { type: Boolean },
|
|
29
|
+
showFirstErrorMessage: { type: Boolean },
|
|
28
30
|
onSubmit: { type: Function },
|
|
29
31
|
colon: { type: Boolean },
|
|
30
32
|
data: {},
|
|
@@ -23,6 +23,7 @@ export declare const qdCrudSearchProps: {
|
|
|
23
23
|
};
|
|
24
24
|
readonly gutter: () => number[];
|
|
25
25
|
readonly data: () => any;
|
|
26
|
+
readonly autoFill: true;
|
|
26
27
|
readonly disabled: undefined;
|
|
27
28
|
readonly readonly: undefined;
|
|
28
29
|
readonly labelWidth: "auto";
|
|
@@ -32,5 +33,6 @@ export declare const qdCrudSearchProps: {
|
|
|
32
33
|
readonly preventSubmitDefault: true;
|
|
33
34
|
readonly requiredMark: undefined;
|
|
34
35
|
readonly showErrorMessage: true;
|
|
36
|
+
readonly showFirstErrorMessage: true;
|
|
35
37
|
readonly statusIcon: undefined;
|
|
36
38
|
};
|
|
@@ -23,6 +23,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
23
23
|
loadingProps: {},
|
|
24
24
|
defaultClearable: { type: Boolean },
|
|
25
25
|
descriptions: { type: Boolean },
|
|
26
|
+
autoFill: { type: Boolean },
|
|
27
|
+
showFirstErrorMessage: { type: Boolean },
|
|
26
28
|
colon: { type: Boolean },
|
|
27
29
|
data: {},
|
|
28
30
|
disabled: { type: Boolean },
|
|
@@ -36,6 +36,7 @@ export declare const qdDialogFormProps: {
|
|
|
36
36
|
readonly gutter: () => number[];
|
|
37
37
|
readonly grid: () => {};
|
|
38
38
|
readonly data: () => any;
|
|
39
|
+
readonly autoFill: true;
|
|
39
40
|
readonly disabled: undefined;
|
|
40
41
|
readonly readonly: undefined;
|
|
41
42
|
readonly labelWidth: "auto";
|
|
@@ -45,6 +46,7 @@ export declare const qdDialogFormProps: {
|
|
|
45
46
|
readonly preventSubmitDefault: true;
|
|
46
47
|
readonly requiredMark: undefined;
|
|
47
48
|
readonly showErrorMessage: true;
|
|
49
|
+
readonly showFirstErrorMessage: true;
|
|
48
50
|
readonly statusIcon: undefined;
|
|
49
51
|
readonly defaultClearable: undefined;
|
|
50
52
|
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import type { InjectionKey } from 'vue';
|
|
1
|
+
import type { ComputedRef, InjectionKey } from 'vue';
|
|
2
2
|
import type { QdFormBeforeSubmitQueueItem } from './types';
|
|
3
|
+
export interface QdFormGridItemRegistryEntry {
|
|
4
|
+
gridIndex: ComputedRef<number | undefined>;
|
|
5
|
+
visible: ComputedRef<boolean>;
|
|
6
|
+
colSpan: ComputedRef<number>;
|
|
7
|
+
}
|
|
8
|
+
export declare const PROVIDE_FORM_REGISTER_GRID_ITEM: InjectionKey<(entry: QdFormGridItemRegistryEntry) => void>;
|
|
3
9
|
export declare const PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE: InjectionKey<(item: QdFormBeforeSubmitQueueItem) => void>;
|
|
4
10
|
export declare const PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE: InjectionKey<(item: QdFormBeforeSubmitQueueItem) => void>;
|
|
5
11
|
export declare const PROVIDE_FORM_RESET_QUEUE: InjectionKey<(item: () => void) => void>;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
const PROVIDE_FORM_REGISTER_GRID_ITEM = /* @__PURE__ */ Symbol("QdFormRegisterGridItem");
|
|
1
2
|
const PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE = /* @__PURE__ */ Symbol("QdFormAddBeforeSubmitQueue");
|
|
2
3
|
const PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE = /* @__PURE__ */ Symbol("QdFormAddAfterSubmitQueue");
|
|
3
4
|
const PROVIDE_FORM_RESET_QUEUE = /* @__PURE__ */ Symbol("QdFormResetQueue");
|
|
4
5
|
export {
|
|
5
6
|
PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE,
|
|
6
7
|
PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE,
|
|
8
|
+
PROVIDE_FORM_REGISTER_GRID_ITEM,
|
|
7
9
|
PROVIDE_FORM_RESET_QUEUE
|
|
8
10
|
};
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
.qd-form--small[data-v-
|
|
1
|
+
.qd-form--small[data-v-151bafd6] {
|
|
2
2
|
font: var(--td-font-body-small);
|
|
3
3
|
}
|
|
4
|
-
.qd-form--small[data-v-
|
|
4
|
+
.qd-form--small[data-v-151bafd6] .t-form__label--top {
|
|
5
5
|
min-height: var(--td-comp-margin-xxl);
|
|
6
6
|
line-height: var(--td-comp-margin-xxl);
|
|
7
7
|
}
|
|
8
|
-
.qd-form--small[data-v-
|
|
9
|
-
.qd-form--small[data-v-
|
|
8
|
+
.qd-form--small[data-v-151bafd6] .t-form__controls,
|
|
9
|
+
.qd-form--small[data-v-151bafd6] .t-form__controls-content {
|
|
10
10
|
min-height: var(--td-comp-margin-xxl);
|
|
11
11
|
}
|
|
12
|
-
.qd-form--descriptions[data-v-
|
|
12
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-grid {
|
|
13
13
|
border-top: 1px solid var(--td-component-border);
|
|
14
14
|
border-left: 1px solid var(--td-component-border);
|
|
15
15
|
}
|
|
16
|
-
.qd-form--descriptions[data-v-
|
|
16
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-grid-item {
|
|
17
17
|
border-right: 1px solid var(--td-component-border);
|
|
18
18
|
border-bottom: 1px solid var(--td-component-border);
|
|
19
19
|
}
|
|
20
|
-
.qd-form--descriptions[data-v-
|
|
20
|
+
.qd-form--descriptions[data-v-151bafd6] .t-form__item {
|
|
21
21
|
display: flex;
|
|
22
22
|
align-items: stretch;
|
|
23
23
|
height: 100%;
|
|
24
24
|
}
|
|
25
|
-
.qd-form--descriptions[data-v-
|
|
25
|
+
.qd-form--descriptions[data-v-151bafd6] .t-form__label {
|
|
26
26
|
display: flex;
|
|
27
27
|
flex-direction: column;
|
|
28
28
|
justify-content: center;
|
|
@@ -30,17 +30,17 @@
|
|
|
30
30
|
padding: var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l);
|
|
31
31
|
height: 100%;
|
|
32
32
|
}
|
|
33
|
-
.qd-form--descriptions[data-v-
|
|
33
|
+
.qd-form--descriptions[data-v-151bafd6] .t-form__label--top {
|
|
34
34
|
border-bottom: 1px solid var(--td-component-border);
|
|
35
35
|
align-items: center;
|
|
36
36
|
height: var(--qd-form-description-label-height, auto);
|
|
37
37
|
white-space: normal;
|
|
38
38
|
}
|
|
39
|
-
.qd-form--descriptions[data-v-
|
|
39
|
+
.qd-form--descriptions[data-v-151bafd6] .t-form__label--top + .t-form__controls > .t-form__controls-content {
|
|
40
40
|
justify-content: center;
|
|
41
41
|
text-align: center;
|
|
42
42
|
}
|
|
43
|
-
.qd-form--descriptions[data-v-
|
|
43
|
+
.qd-form--descriptions[data-v-151bafd6] .t-form__controls {
|
|
44
44
|
flex: 1 1 0;
|
|
45
45
|
overflow: hidden;
|
|
46
46
|
display: flex;
|
|
@@ -50,28 +50,31 @@
|
|
|
50
50
|
margin-left: 0 !important;
|
|
51
51
|
height: 100%;
|
|
52
52
|
}
|
|
53
|
-
.qd-form--descriptions[data-v-
|
|
53
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-form-item--label-top {
|
|
54
54
|
display: grid;
|
|
55
55
|
grid-template-rows: auto minmax(min-content, auto);
|
|
56
56
|
grid-row: span 2 !important;
|
|
57
57
|
}
|
|
58
|
-
.qd-form--descriptions[data-v-
|
|
58
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-form-item--label-top > .t-form__item {
|
|
59
59
|
display: contents;
|
|
60
60
|
}
|
|
61
|
-
.qd-form--descriptions[data-v-
|
|
61
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-form-item--label-top .t-form__controls-content {
|
|
62
62
|
white-space: normal;
|
|
63
63
|
}
|
|
64
|
-
.qd-form--descriptions[data-v-
|
|
64
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-form-item--empty-content .t-form__controls {
|
|
65
65
|
padding: 0 !important;
|
|
66
66
|
min-height: 0;
|
|
67
67
|
height: 0;
|
|
68
68
|
overflow: hidden;
|
|
69
69
|
}
|
|
70
|
-
.qd-form--descriptions[data-v-
|
|
70
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-form-item:not(.qd-form-item--label-top):not(.qd-form-item--label-width-full) .t-form__label {
|
|
71
71
|
border-right: 1px solid var(--td-component-border);
|
|
72
72
|
}
|
|
73
|
-
.qd-form--descriptions
|
|
74
|
-
|
|
73
|
+
.qd-form--descriptions[data-v-151bafd6] .qd-form-item--filler {
|
|
74
|
+
background-color: var(--td-bg-color-secondarycontainer);
|
|
75
|
+
}
|
|
76
|
+
.qd-form--descriptions-mini[data-v-151bafd6] .t-form__label,
|
|
77
|
+
.qd-form--descriptions-mini[data-v-151bafd6] .t-form__controls {
|
|
75
78
|
padding: var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);
|
|
76
79
|
font: var(--td-font-body-small);
|
|
77
80
|
}
|
|
@@ -2,7 +2,7 @@ import './index.css'
|
|
|
2
2
|
import _sfc_main from "./index.vue2.mjs";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const QdForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const QdForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-151bafd6"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdForm as default
|
|
8
8
|
};
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import './index.css'
|
|
2
|
-
import { defineComponent, mergeDefaults, provide, nextTick, onBeforeUnmount, useTemplateRef, ref, computed, watch, onMounted, withDirectives, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot, normalizeProps, guardReactiveProps, createElementBlock, Fragment, renderList } from "vue";
|
|
2
|
+
import { defineComponent, mergeDefaults, provide, nextTick, onBeforeUnmount, shallowRef, useTemplateRef, ref, computed, watch, onMounted, withDirectives, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot, normalizeProps, guardReactiveProps, createElementBlock, Fragment, renderList } from "vue";
|
|
3
3
|
import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
|
|
4
4
|
import { createExposeProxy, resizeDirective, easyCopy, hasOwn, to, suspectedWrapperPromise } from "qidian-shared";
|
|
5
5
|
import { Form, LoadingDirective } from "tdesign-vue-next";
|
|
6
6
|
import { useModal } from "../../hooks/useModal.mjs";
|
|
7
7
|
import { useConfig } from "../config-provider/useConfig.mjs";
|
|
8
|
-
import {
|
|
8
|
+
import { DEFAULT_COLUMNS } from "../grid/config.mjs";
|
|
9
|
+
import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE, PROVIDE_FORM_RESET_QUEUE, PROVIDE_FORM_REGISTER_GRID_ITEM } from "./config.mjs";
|
|
9
10
|
import QdFormItem from "./item.vue.mjs";
|
|
10
11
|
import { qdFormGrid, qdFormProps } from "./props.mjs";
|
|
11
12
|
import merge from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
|
|
12
13
|
import QdGrid from "../grid/index.vue.mjs";
|
|
14
|
+
import QdGridItem from "../grid/item.vue.mjs";
|
|
13
15
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
16
|
...{
|
|
15
17
|
name: "QdForm"
|
|
@@ -23,6 +25,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
23
25
|
loadingProps: {},
|
|
24
26
|
defaultClearable: { type: Boolean },
|
|
25
27
|
descriptions: { type: Boolean },
|
|
28
|
+
autoFill: { type: Boolean },
|
|
29
|
+
showFirstErrorMessage: { type: Boolean },
|
|
26
30
|
onSubmit: { type: Function },
|
|
27
31
|
colon: { type: Boolean },
|
|
28
32
|
data: {},
|
|
@@ -83,9 +87,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
83
87
|
resetQueue.splice(index, 1);
|
|
84
88
|
});
|
|
85
89
|
});
|
|
90
|
+
const gridItemRegistry = shallowRef([]);
|
|
91
|
+
provide(PROVIDE_FORM_REGISTER_GRID_ITEM, (entry) => {
|
|
92
|
+
nextTick(() => {
|
|
93
|
+
gridItemRegistry.value = [...gridItemRegistry.value, entry];
|
|
94
|
+
});
|
|
95
|
+
onBeforeUnmount(() => {
|
|
96
|
+
gridItemRegistry.value = gridItemRegistry.value.filter((it) => it !== entry);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
86
99
|
const formRef = useTemplateRef("form");
|
|
87
100
|
const gridRef = useTemplateRef("gridInstance");
|
|
88
101
|
const submitShowErrorMessage = ref();
|
|
102
|
+
const submitShowFirstErrorMessage = ref();
|
|
89
103
|
const submitScrollToFirstError = ref();
|
|
90
104
|
let submitResolver;
|
|
91
105
|
const reProps = computed(() => {
|
|
@@ -97,6 +111,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
97
111
|
items,
|
|
98
112
|
onSubmit,
|
|
99
113
|
data: data2,
|
|
114
|
+
showFirstErrorMessage,
|
|
100
115
|
scrollToFirstError,
|
|
101
116
|
loading: externalLoad,
|
|
102
117
|
size,
|
|
@@ -142,11 +157,45 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
142
157
|
...props.loadingProps
|
|
143
158
|
};
|
|
144
159
|
});
|
|
160
|
+
const gridNodes = computed(() => {
|
|
161
|
+
const items = reProps.value.formItems;
|
|
162
|
+
if (!items?.length) return [];
|
|
163
|
+
if (!reProps.value.descriptions || !props.autoFill) {
|
|
164
|
+
return items.map((_, index) => ({ type: "item", index }));
|
|
165
|
+
}
|
|
166
|
+
const columns = reProps.value.gridOptions.columns ?? DEFAULT_COLUMNS;
|
|
167
|
+
const entryMap = new Map(gridItemRegistry.value.map((entry) => [entry.gridIndex.value, entry]));
|
|
168
|
+
const nodes = [];
|
|
169
|
+
let used = 0;
|
|
170
|
+
items.forEach((_, index) => {
|
|
171
|
+
const entry = entryMap.get(index);
|
|
172
|
+
if (entry?.visible.value) {
|
|
173
|
+
const span = entry.colSpan.value;
|
|
174
|
+
if (span > 0) {
|
|
175
|
+
if (used + span > columns) {
|
|
176
|
+
const remaining2 = columns - used;
|
|
177
|
+
if (remaining2 > 0) nodes.push({ type: "filler", span: remaining2 });
|
|
178
|
+
used = 0;
|
|
179
|
+
}
|
|
180
|
+
used += span;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
nodes.push({ type: "item", index });
|
|
184
|
+
});
|
|
185
|
+
const remaining = columns - used;
|
|
186
|
+
if (remaining > 0) nodes.push({ type: "filler", span: remaining });
|
|
187
|
+
return nodes;
|
|
188
|
+
});
|
|
189
|
+
const descriptionsFillerRow = computed(
|
|
190
|
+
() => reProps.value.formOptions.labelAlign === "top" ? 2 : 1
|
|
191
|
+
);
|
|
145
192
|
async function handleSubmit(context) {
|
|
146
193
|
const showErrorMessage = submitShowErrorMessage.value ?? props.showErrorMessage;
|
|
194
|
+
const showFirstErrorMessage = submitShowFirstErrorMessage.value ?? props.showFirstErrorMessage;
|
|
147
195
|
submitShowErrorMessage.value = void 0;
|
|
196
|
+
submitShowFirstErrorMessage.value = void 0;
|
|
148
197
|
submitScrollToFirstError.value = void 0;
|
|
149
|
-
if (
|
|
198
|
+
if (showFirstErrorMessage && context.firstError) {
|
|
150
199
|
msgError(context.firstError);
|
|
151
200
|
}
|
|
152
201
|
const submitContext = {
|
|
@@ -167,6 +216,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
167
216
|
const expose = {
|
|
168
217
|
submit: async (params) => {
|
|
169
218
|
submitShowErrorMessage.value = params?.showErrorMessage;
|
|
219
|
+
submitShowFirstErrorMessage.value = params?.showFirstErrorMessage;
|
|
170
220
|
submitScrollToFirstError.value = params?.scrollToFirstError;
|
|
171
221
|
const queueRes = await Promise.all(
|
|
172
222
|
beforeSubmitQueue.map((item) => suspectedWrapperPromise(item()))
|
|
@@ -189,8 +239,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
189
239
|
}
|
|
190
240
|
});
|
|
191
241
|
const showErrorMessage = submitShowErrorMessage.value ?? props.showErrorMessage;
|
|
242
|
+
const showFirstErrorMessage = submitShowFirstErrorMessage.value ?? props.showFirstErrorMessage ?? showErrorMessage;
|
|
192
243
|
if (reQueueRes.success === false) {
|
|
193
|
-
if (
|
|
244
|
+
if (showFirstErrorMessage && reQueueRes.message) {
|
|
194
245
|
msgError(reQueueRes.message);
|
|
195
246
|
}
|
|
196
247
|
const context = {
|
|
@@ -201,6 +252,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
201
252
|
crudMode: reProps.value.formOptions.crudMode
|
|
202
253
|
};
|
|
203
254
|
submitShowErrorMessage.value = context.showErrorMessage;
|
|
255
|
+
submitShowFirstErrorMessage.value = false;
|
|
204
256
|
handleSubmit(context);
|
|
205
257
|
return context;
|
|
206
258
|
}
|
|
@@ -229,12 +281,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
229
281
|
},
|
|
230
282
|
validate: async (params) => {
|
|
231
283
|
submitShowErrorMessage.value = params?.showErrorMessage;
|
|
284
|
+
submitShowFirstErrorMessage.value = params?.showFirstErrorMessage;
|
|
232
285
|
submitScrollToFirstError.value = !params ? void 0 : hasOwn(params, "scrollToFirstError") ? params.scrollToFirstError : "";
|
|
233
286
|
const [err, res] = await to(formRef.value.validate(params));
|
|
234
287
|
submitShowErrorMessage.value = void 0;
|
|
288
|
+
submitShowFirstErrorMessage.value = void 0;
|
|
235
289
|
submitScrollToFirstError.value = void 0;
|
|
236
290
|
if (err) throw err;
|
|
237
|
-
|
|
291
|
+
const showFirstErrorMessage = params?.showFirstErrorMessage ?? props.showFirstErrorMessage ?? params?.showErrorMessage;
|
|
292
|
+
if (showFirstErrorMessage && typeof res === "object" && Object.keys(res).length) {
|
|
238
293
|
const resValue = Object.values(res);
|
|
239
294
|
let firstError = "";
|
|
240
295
|
resValue.some((item) => {
|
|
@@ -316,16 +371,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
316
371
|
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(reProps.value.gridOptions)), () => [
|
|
317
372
|
withDirectives((openBlock(), createBlock(unref(QdGrid), mergeProps({ ref: "gridInstance" }, reProps.value.gridOptions), {
|
|
318
373
|
default: withCtx(() => [
|
|
319
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
320
|
-
return openBlock(),
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
374
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(gridNodes.value, (node, index) => {
|
|
375
|
+
return openBlock(), createElementBlock(Fragment, { key: index }, [
|
|
376
|
+
node.type === "item" ? (openBlock(), createBlock(QdFormItem, mergeProps({
|
|
377
|
+
key: 0,
|
|
378
|
+
"crud-mode": __props.crudMode,
|
|
379
|
+
context: unref(data),
|
|
380
|
+
"default-clearable": __props.defaultClearable,
|
|
381
|
+
"label-align": reProps.value.formItems?.[node.index].labelAlign ?? reProps.value.formOptions.labelAlign
|
|
382
|
+
}, { ref_for: true }, reProps.value.formItems?.[node.index], {
|
|
383
|
+
"grid-index": node.index,
|
|
384
|
+
size: reProps.value.formItems?.[node.index].size ?? reProps.value.itemSize
|
|
385
|
+
}), null, 16, ["crud-mode", "context", "default-clearable", "label-align", "grid-index", "size"])) : (openBlock(), createBlock(unref(QdGridItem), {
|
|
386
|
+
key: 1,
|
|
387
|
+
class: "qd-form-item--filler",
|
|
388
|
+
col: node.span,
|
|
389
|
+
row: descriptionsFillerRow.value
|
|
390
|
+
}, null, 8, ["col", "row"]))
|
|
391
|
+
], 64);
|
|
329
392
|
}), 128))
|
|
330
393
|
]),
|
|
331
394
|
_: 1
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
.qd-form-item[data-v-
|
|
1
|
+
.qd-form-item[data-v-e6936515] > .t-form__item > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
|
|
2
2
|
width: 100%;
|
|
3
3
|
}
|
|
4
|
-
.qd-form-item__component[data-v-
|
|
4
|
+
.qd-form-item__component[data-v-e6936515]:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
|
|
5
5
|
width: 100%;
|
|
6
6
|
}
|
|
@@ -2,7 +2,7 @@ import './item.css'
|
|
|
2
2
|
import _sfc_main from "./item.vue2.mjs";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const QdFormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const QdFormItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e6936515"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdFormItem as default
|
|
8
8
|
};
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import './item.css'
|
|
2
|
-
import { defineComponent, mergeDefaults, computed, createBlock, createCommentVNode, openBlock, unref, mergeProps, withCtx, createVNode, normalizeProps, guardReactiveProps, createSlots, renderSlot, renderList } from "vue";
|
|
2
|
+
import { defineComponent, mergeDefaults, computed, inject, ref, createBlock, createCommentVNode, openBlock, unref, mergeProps, withCtx, createVNode, normalizeProps, guardReactiveProps, createSlots, renderSlot, renderList } from "vue";
|
|
3
3
|
import { isEmpty, filterSlots } from "qidian-shared";
|
|
4
4
|
import { FormItem } from "tdesign-vue-next";
|
|
5
5
|
import { useConfig } from "../config-provider/useConfig.mjs";
|
|
6
6
|
import { qdUseComputeValue } from "../config-renderer/compute.mjs";
|
|
7
|
+
import { PROVIDE_FORM_REGISTER_GRID_ITEM } from "./config.mjs";
|
|
7
8
|
import { qdFormItemProps } from "./props.mjs";
|
|
8
9
|
import { resolveQdFormItemOptions } from "./utils.mjs";
|
|
10
|
+
import { PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY, DEFAULT_GRID_WIDTH } from "../grid/config.mjs";
|
|
11
|
+
import { resolveGridSpan, mergeGridValue } from "../grid/utils.mjs";
|
|
9
12
|
import QdGridItem from "../grid/item.vue.mjs";
|
|
10
13
|
import _sfc_main$1 from "../config-renderer/index.vue.mjs";
|
|
11
14
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
@@ -22,6 +25,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
22
25
|
rules: {},
|
|
23
26
|
size: {},
|
|
24
27
|
trimOnBlur: { type: Boolean },
|
|
28
|
+
gridIndex: {},
|
|
25
29
|
for: {},
|
|
26
30
|
label: {},
|
|
27
31
|
labelAlign: {},
|
|
@@ -57,8 +61,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
57
61
|
}
|
|
58
62
|
return ifRender;
|
|
59
63
|
});
|
|
64
|
+
const gridDefaultProps = inject(PROVIDE_GRID_ITEM_PROPS_KEY, void 0);
|
|
65
|
+
const gridWidth = inject(PROVIDE_GRID_WIDTH_KEY, ref(DEFAULT_GRID_WIDTH));
|
|
66
|
+
const colSpan = computed(
|
|
67
|
+
() => resolveGridSpan(mergeGridValue(props.col, gridDefaultProps?.value?.col), gridWidth.value)
|
|
68
|
+
);
|
|
69
|
+
const gridIndex = computed(() => props.gridIndex);
|
|
70
|
+
inject(PROVIDE_FORM_REGISTER_GRID_ITEM, void 0)?.({ visible: reIfRender, colSpan, gridIndex });
|
|
60
71
|
const reProps = computed(() => {
|
|
61
|
-
const {
|
|
72
|
+
const {
|
|
73
|
+
col,
|
|
74
|
+
row,
|
|
75
|
+
component,
|
|
76
|
+
required,
|
|
77
|
+
rules,
|
|
78
|
+
size,
|
|
79
|
+
trimOnBlur,
|
|
80
|
+
gridIndex: gridIndex2,
|
|
81
|
+
...formItemOptions
|
|
82
|
+
} = props;
|
|
62
83
|
const { component: reComponent, rules: wrappedRules } = resolveQdFormItemOptions({
|
|
63
84
|
formItem: props,
|
|
64
85
|
context: currentContext.value,
|
|
@@ -13,6 +13,7 @@ export declare const qdFormProps: {
|
|
|
13
13
|
readonly gutter: () => number[];
|
|
14
14
|
readonly grid: () => {};
|
|
15
15
|
readonly data: () => any;
|
|
16
|
+
readonly autoFill: true;
|
|
16
17
|
readonly disabled: undefined;
|
|
17
18
|
readonly readonly: undefined;
|
|
18
19
|
readonly labelWidth: "auto";
|
|
@@ -22,6 +23,7 @@ export declare const qdFormProps: {
|
|
|
22
23
|
readonly preventSubmitDefault: true;
|
|
23
24
|
readonly requiredMark: undefined;
|
|
24
25
|
readonly showErrorMessage: true;
|
|
26
|
+
readonly showFirstErrorMessage: true;
|
|
25
27
|
readonly statusIcon: undefined;
|
|
26
28
|
readonly defaultClearable: undefined;
|
|
27
29
|
};
|
|
@@ -13,6 +13,7 @@ const qdFormProps = {
|
|
|
13
13
|
gutter: () => qdFormGutter,
|
|
14
14
|
grid: () => ({}),
|
|
15
15
|
data: () => ({}),
|
|
16
|
+
autoFill: true,
|
|
16
17
|
disabled: void 0,
|
|
17
18
|
readonly: void 0,
|
|
18
19
|
// labelAlign: 'top',
|
|
@@ -23,6 +24,7 @@ const qdFormProps = {
|
|
|
23
24
|
preventSubmitDefault: true,
|
|
24
25
|
requiredMark: void 0,
|
|
25
26
|
showErrorMessage: true,
|
|
27
|
+
showFirstErrorMessage: true,
|
|
26
28
|
statusIcon: void 0,
|
|
27
29
|
defaultClearable: void 0
|
|
28
30
|
};
|
|
@@ -19,6 +19,7 @@ export interface QdFormItemProps extends Omit<TdFormItemProps, 'rules' | 'help'>
|
|
|
19
19
|
rules?: QdFormRule[];
|
|
20
20
|
size?: SizeEnum;
|
|
21
21
|
trimOnBlur?: boolean;
|
|
22
|
+
gridIndex?: number;
|
|
22
23
|
}
|
|
23
24
|
export interface QdFormSubmitContext<FD extends Data = Data> extends SubmitContext<FD>, Pick<QdFormProps, 'crudMode'> {
|
|
24
25
|
showErrorMessage: boolean;
|
|
@@ -32,14 +33,18 @@ export interface QdFormProps<FD extends Data = Data> extends Omit<TdFormProps<FD
|
|
|
32
33
|
loadingProps?: TdLoadingProps;
|
|
33
34
|
defaultClearable?: boolean;
|
|
34
35
|
descriptions?: boolean;
|
|
36
|
+
autoFill?: boolean;
|
|
37
|
+
showFirstErrorMessage?: boolean;
|
|
35
38
|
onSubmit?: (context: QdFormSubmitContext<FD>) => void;
|
|
36
39
|
}
|
|
37
40
|
export interface QdFormInstanceFunctions<FD extends Data = Data> extends Omit<FormInstanceFunctions, 'submit' | 'validate'> {
|
|
38
41
|
submit: (params?: {
|
|
39
42
|
showErrorMessage?: boolean;
|
|
43
|
+
showFirstErrorMessage?: boolean;
|
|
40
44
|
scrollToFirstError?: QdFormProps['scrollToFirstError'];
|
|
41
45
|
}) => Promise<QdFormSubmitContext<FD>>;
|
|
42
46
|
validate: (params?: FormValidateParams & {
|
|
47
|
+
showFirstErrorMessage?: boolean;
|
|
43
48
|
scrollToFirstError?: QdFormProps['scrollToFirstError'];
|
|
44
49
|
}) => Promise<FormValidateResult<FD>>;
|
|
45
50
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY } from './config';
|
|
1
|
+
export { DEFAULT_GRID_WIDTH, PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY } from './config';
|
|
2
2
|
export { default as QdGrid } from './index.vue';
|
|
3
3
|
export { default as QdGridItem } from './item.vue';
|
|
4
4
|
export type { QdGridItemProps, QdGridProps } from './types';
|
|
5
|
+
export { mergeGridValue, resolveGridSpan } from './utils';
|
|
@@ -2,7 +2,7 @@ import './item.css'
|
|
|
2
2
|
import _sfc_main from "./item.vue2.mjs";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const QdGridItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const QdGridItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0d5f57c8"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdGridItem as default
|
|
8
8
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './item.css'
|
|
2
2
|
import { defineComponent, inject, ref, computed, createElementBlock, openBlock, normalizeStyle, renderSlot } from "vue";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY, DEFAULT_GRID_WIDTH, DEFAULT_ROW } from "./config.mjs";
|
|
4
|
+
import { mergeGridValue, resolveGridSpan } from "./utils.mjs";
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
6
|
...{
|
|
7
7
|
name: "QdGridItem"
|
|
@@ -15,45 +15,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
15
15
|
const props = __props;
|
|
16
16
|
const defaultProps = inject(PROVIDE_GRID_ITEM_PROPS_KEY, void 0);
|
|
17
17
|
const gridWidth = inject(PROVIDE_GRID_WIDTH_KEY, ref(DEFAULT_GRID_WIDTH));
|
|
18
|
-
const reProps = computed(() => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
return {
|
|
29
|
-
col: mergeGutterValue(props.col, defaultProps?.value?.col),
|
|
30
|
-
row: mergeGutterValue(props.row, defaultProps?.value?.row)
|
|
31
|
-
};
|
|
32
|
-
});
|
|
33
|
-
const getColSpan = computed(() => {
|
|
34
|
-
const { col } = reProps.value;
|
|
35
|
-
if (isEmpty(col)) return DEFAULT_COL;
|
|
36
|
-
if (typeof col === "number") return col;
|
|
37
|
-
const { span, xxl, xl, lg, md, sm, xs } = col;
|
|
38
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.xxl && !isEmpty(xxl)) return xxl;
|
|
39
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.xl && !isEmpty(xl)) return xl;
|
|
40
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.lg && !isEmpty(lg)) return lg;
|
|
41
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.md && !isEmpty(md)) return md;
|
|
42
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.sm && !isEmpty(sm)) return sm;
|
|
43
|
-
return xs ?? span ?? DEFAULT_COL;
|
|
44
|
-
});
|
|
45
|
-
const getRowSpan = computed(() => {
|
|
46
|
-
const { row } = reProps.value;
|
|
47
|
-
if (isEmpty(row)) return DEFAULT_ROW;
|
|
48
|
-
if (typeof row === "number") return row;
|
|
49
|
-
const { span, xxl, xl, lg, md, sm, xs } = row;
|
|
50
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.xxl && !isEmpty(xxl)) return xxl;
|
|
51
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.xl && !isEmpty(xl)) return xl;
|
|
52
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.lg && !isEmpty(lg)) return lg;
|
|
53
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.md && !isEmpty(md)) return md;
|
|
54
|
-
if (gridWidth.value >= DEFAULT_BREAKPOINTS.sm && !isEmpty(sm)) return sm;
|
|
55
|
-
return xs ?? span ?? DEFAULT_ROW;
|
|
56
|
-
});
|
|
18
|
+
const reProps = computed(() => ({
|
|
19
|
+
col: mergeGridValue(props.col, defaultProps?.value?.col),
|
|
20
|
+
row: mergeGridValue(props.row, defaultProps?.value?.row)
|
|
21
|
+
}));
|
|
22
|
+
const getColSpan = computed(() => resolveGridSpan(reProps.value.col, gridWidth.value));
|
|
23
|
+
const getRowSpan = computed(
|
|
24
|
+
() => resolveGridSpan(reProps.value.row, gridWidth.value, DEFAULT_ROW)
|
|
25
|
+
);
|
|
57
26
|
const itemStyle = computed(() => {
|
|
58
27
|
if (getColSpan.value === 0 || getRowSpan.value === 0) {
|
|
59
28
|
return { display: "none" };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { GridGutterValue } from './types';
|
|
2
|
+
export declare function mergeGridValue(prop: GridGutterValue | undefined, defaultProp: GridGutterValue | undefined): GridGutterValue | undefined;
|
|
3
|
+
export declare function resolveGridSpan(value: GridGutterValue | undefined, gridWidth: number, fallback?: number): number;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isEmpty } from "qidian-shared";
|
|
2
|
+
import { DEFAULT_COL, DEFAULT_BREAKPOINTS } from "./config.mjs";
|
|
3
|
+
function mergeGridValue(prop, defaultProp) {
|
|
4
|
+
if (prop === void 0) return defaultProp;
|
|
5
|
+
if (!defaultProp) return prop;
|
|
6
|
+
if (typeof prop === "number" || typeof defaultProp === "number") return prop;
|
|
7
|
+
return {
|
|
8
|
+
...defaultProp,
|
|
9
|
+
...prop
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function resolveGridSpan(value, gridWidth, fallback = DEFAULT_COL) {
|
|
13
|
+
if (isEmpty(value)) return fallback;
|
|
14
|
+
if (typeof value === "number") return value;
|
|
15
|
+
const { span, xxl, xl, lg, md, sm, xs } = value;
|
|
16
|
+
if (gridWidth >= DEFAULT_BREAKPOINTS.xxl && !isEmpty(xxl)) return xxl;
|
|
17
|
+
if (gridWidth >= DEFAULT_BREAKPOINTS.xl && !isEmpty(xl)) return xl;
|
|
18
|
+
if (gridWidth >= DEFAULT_BREAKPOINTS.lg && !isEmpty(lg)) return lg;
|
|
19
|
+
if (gridWidth >= DEFAULT_BREAKPOINTS.md && !isEmpty(md)) return md;
|
|
20
|
+
if (gridWidth >= DEFAULT_BREAKPOINTS.sm && !isEmpty(sm)) return sm;
|
|
21
|
+
return xs ?? span ?? fallback;
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
mergeGridValue,
|
|
25
|
+
resolveGridSpan
|
|
26
|
+
};
|
|
@@ -1,111 +1,111 @@
|
|
|
1
|
-
.qd-service-table[data-v-
|
|
1
|
+
.qd-service-table[data-v-1bab93e0] {
|
|
2
2
|
height: 100%;
|
|
3
3
|
display: flex;
|
|
4
4
|
flex-direction: column;
|
|
5
5
|
}
|
|
6
|
-
.qd-service-table[data-v-
|
|
6
|
+
.qd-service-table[data-v-1bab93e0] > .t-table__content {
|
|
7
7
|
flex: 1;
|
|
8
8
|
}
|
|
9
|
-
.qd-service-table--mini[data-v-
|
|
9
|
+
.qd-service-table--mini[data-v-1bab93e0] {
|
|
10
10
|
font: var(--td-font-body-small);
|
|
11
11
|
}
|
|
12
|
-
.qd-service-table--mini[data-v-
|
|
13
|
-
.qd-service-table--mini[data-v-
|
|
12
|
+
.qd-service-table--mini[data-v-1bab93e0] th,
|
|
13
|
+
.qd-service-table--mini[data-v-1bab93e0] tr:not(.t-table__expanded-row) > td {
|
|
14
14
|
padding: var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);
|
|
15
15
|
line-height: var(--td-line-height-body-small);
|
|
16
16
|
}
|
|
17
|
-
.qd-service-table--mini[data-v-
|
|
17
|
+
.qd-service-table--mini[data-v-1bab93e0] .t-table__row-full-element {
|
|
18
18
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);
|
|
19
19
|
}
|
|
20
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
20
|
+
.qd-service-table--hide-empty-image[data-v-1bab93e0] .t-table__empty {
|
|
21
21
|
min-height: auto;
|
|
22
22
|
}
|
|
23
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
23
|
+
.qd-service-table--hide-empty-image[data-v-1bab93e0] .t-table__empty .t-empty {
|
|
24
24
|
padding: 0 !important;
|
|
25
25
|
}
|
|
26
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
26
|
+
.qd-service-table--hide-empty-image[data-v-1bab93e0] .t-table__empty .t-empty__image {
|
|
27
27
|
display: none;
|
|
28
28
|
}
|
|
29
|
-
.qd-service-table--hide-empty-image[data-v-
|
|
29
|
+
.qd-service-table--hide-empty-image[data-v-1bab93e0] .t-table__empty .t-empty__title {
|
|
30
30
|
margin-top: 0;
|
|
31
31
|
}
|
|
32
|
-
.qd-service-table[data-v-
|
|
33
|
-
.qd-service-table[data-v-
|
|
32
|
+
.qd-service-table[data-v-1bab93e0] .t-table__tree-col,
|
|
33
|
+
.qd-service-table[data-v-1bab93e0] .t-table__tree-leaf-node {
|
|
34
34
|
padding-left: 0 !important;
|
|
35
35
|
}
|
|
36
|
-
.qd-service-table[data-v-
|
|
36
|
+
.qd-service-table[data-v-1bab93e0] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
|
|
37
37
|
margin-left: calc(var(--td-font-size-body-large) + var(--td-tree-indent, 0px) * (var(--td-tree-level, 0) + 1));
|
|
38
38
|
}
|
|
39
|
-
.qd-service-table[data-v-
|
|
39
|
+
.qd-service-table[data-v-1bab93e0] .t-table__tree-op-icon {
|
|
40
40
|
margin-right: calc(var(--td-tree-indent, 0px) * (var(--td-tree-level, 0) + 1));
|
|
41
41
|
}
|
|
42
|
-
.qd-service-table[data-v-
|
|
42
|
+
.qd-service-table[data-v-1bab93e0] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
|
|
43
43
|
width: var(--td-font-size-body-large);
|
|
44
44
|
margin-right: calc(var(--td-tree-indent, 0px) * (var(--td-tree-level, 0) + 1));
|
|
45
45
|
}
|
|
46
|
-
.qd-service-table[data-v-
|
|
47
|
-
.qd-service-table[data-v-
|
|
48
|
-
transform: var(--
|
|
46
|
+
.qd-service-table[data-v-1bab93e0] .t-affix > .t-table__affixed-header-elm-wrap,
|
|
47
|
+
.qd-service-table[data-v-1bab93e0] .t-affix > .t-table__scrollbar--obvious {
|
|
48
|
+
transform: var(--v7fcd2546);
|
|
49
49
|
}
|
|
50
|
-
.qd-service-table--horizontal-bar-static[data-v-
|
|
50
|
+
.qd-service-table--horizontal-bar-static[data-v-1bab93e0] .t-table__scrollbar--obvious {
|
|
51
51
|
visibility: hidden;
|
|
52
52
|
pointer-events: none;
|
|
53
53
|
}
|
|
54
|
-
.qd-service-table--horizontal-bar-static[data-v-
|
|
54
|
+
.qd-service-table--horizontal-bar-static[data-v-1bab93e0] > div:has(> div > .t-table__scrollbar--obvious) {
|
|
55
55
|
height: 0;
|
|
56
56
|
margin-top: 0 !important;
|
|
57
57
|
overflow: hidden;
|
|
58
58
|
}
|
|
59
|
-
.qd-service-table[data-v-
|
|
59
|
+
.qd-service-table[data-v-1bab93e0] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
|
|
60
60
|
display: none;
|
|
61
61
|
}
|
|
62
|
-
.qd-service-table[data-v-
|
|
62
|
+
.qd-service-table[data-v-1bab93e0] .t-table__expanded-row > td {
|
|
63
63
|
height: 0;
|
|
64
64
|
}
|
|
65
|
-
.qd-service-table[data-v-
|
|
65
|
+
.qd-service-table[data-v-1bab93e0] .t-table__affixed-header-elm-wrap {
|
|
66
66
|
height: auto !important;
|
|
67
67
|
}
|
|
68
|
-
.qd-service-table[data-v-
|
|
68
|
+
.qd-service-table[data-v-1bab93e0] .t-table__affixed-header-elm {
|
|
69
69
|
position: relative;
|
|
70
70
|
scrollbar-width: none;
|
|
71
71
|
}
|
|
72
|
-
.qd-service-table[data-v-
|
|
72
|
+
.qd-service-table[data-v-1bab93e0] .t-table__affixed-header-elm::-webkit-scrollbar {
|
|
73
73
|
display: none;
|
|
74
74
|
width: 0;
|
|
75
75
|
height: 0;
|
|
76
76
|
}
|
|
77
|
-
.qd-service-table[data-v-
|
|
77
|
+
.qd-service-table[data-v-1bab93e0] .t-table__virtual-scroll-cursor + table {
|
|
78
78
|
border-collapse: separate;
|
|
79
79
|
}
|
|
80
|
-
.qd-service-table[data-v-
|
|
81
|
-
.qd-service-table[data-v-
|
|
80
|
+
.qd-service-table[data-v-1bab93e0] .t-table__expanded-row-inner,
|
|
81
|
+
.qd-service-table[data-v-1bab93e0] .t-table__row-filter-inner {
|
|
82
82
|
display: block;
|
|
83
83
|
position: sticky;
|
|
84
84
|
left: 0;
|
|
85
|
-
width: var(--
|
|
85
|
+
width: var(--ad8fa3dc) !important;
|
|
86
86
|
}
|
|
87
|
-
.qd-service-table[data-v-
|
|
87
|
+
.qd-service-table[data-v-1bab93e0] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
|
|
88
88
|
width: 100%;
|
|
89
89
|
}
|
|
90
|
-
.qd-service-table[data-v-
|
|
90
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__non-editable-col {
|
|
91
91
|
background-color: color-mix(in srgb, var(--td-bg-color-component) 50%, transparent);
|
|
92
92
|
}
|
|
93
|
-
.qd-service-table[data-v-
|
|
93
|
+
.qd-service-table[data-v-1bab93e0] td.qd-service-table__selected-cell {
|
|
94
94
|
box-shadow: inset 0 1px 0 0 var(--qst-sel-t, transparent), inset 0 -1px 0 0 var(--qst-sel-b, transparent), inset 1px 0 0 0 var(--qst-sel-l, transparent), inset -1px 0 0 0 var(--qst-sel-r, transparent);
|
|
95
95
|
}
|
|
96
|
-
.qd-service-table[data-v-
|
|
96
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__selected-bt {
|
|
97
97
|
--qst-sel-t: var(--td-brand-color);
|
|
98
98
|
}
|
|
99
|
-
.qd-service-table[data-v-
|
|
99
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__selected-bb {
|
|
100
100
|
--qst-sel-b: var(--td-brand-color);
|
|
101
101
|
}
|
|
102
|
-
.qd-service-table[data-v-
|
|
102
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__selected-bl {
|
|
103
103
|
--qst-sel-l: var(--td-brand-color);
|
|
104
104
|
}
|
|
105
|
-
.qd-service-table[data-v-
|
|
105
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__selected-br {
|
|
106
106
|
--qst-sel-r: var(--td-brand-color);
|
|
107
107
|
}
|
|
108
|
-
.qd-service-table[data-v-
|
|
108
|
+
.qd-service-table[data-v-1bab93e0] td.qd-service-table__copied-cell {
|
|
109
109
|
background-image: var(--qst-copy-t, none), var(--qst-copy-b, none), var(--qst-copy-l, none), var(--qst-copy-r, none);
|
|
110
110
|
background-size: 8px 1px,
|
|
111
111
|
8px 1px,
|
|
@@ -116,134 +116,134 @@
|
|
|
116
116
|
0 0,
|
|
117
117
|
100% 0;
|
|
118
118
|
background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;
|
|
119
|
-
animation: qst-cell-ants-
|
|
119
|
+
animation: qst-cell-ants-1bab93e0 0.5s linear infinite;
|
|
120
120
|
}
|
|
121
|
-
.qd-service-table[data-v-
|
|
121
|
+
.qd-service-table[data-v-1bab93e0] td.qd-service-table__copied-cell.qd-service-table__selected-cell {
|
|
122
122
|
background-size: 8px 2px,
|
|
123
123
|
8px 2px,
|
|
124
124
|
2px 8px,
|
|
125
125
|
2px 8px;
|
|
126
126
|
}
|
|
127
|
-
.qd-service-table[data-v-
|
|
127
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__copied-bt {
|
|
128
128
|
--qst-copy-t: linear-gradient(90deg, var(--td-brand-color-hover) 50%, transparent 0);
|
|
129
129
|
}
|
|
130
|
-
.qd-service-table[data-v-
|
|
130
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__copied-bb {
|
|
131
131
|
--qst-copy-b: linear-gradient(90deg, var(--td-brand-color-hover) 50%, transparent 0);
|
|
132
132
|
}
|
|
133
|
-
.qd-service-table[data-v-
|
|
133
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__copied-bl {
|
|
134
134
|
--qst-copy-l: linear-gradient(0deg, var(--td-brand-color-hover) 50%, transparent 0);
|
|
135
135
|
}
|
|
136
|
-
.qd-service-table[data-v-
|
|
136
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__copied-br {
|
|
137
137
|
--qst-copy-r: linear-gradient(0deg, var(--td-brand-color-hover) 50%, transparent 0);
|
|
138
138
|
}
|
|
139
|
-
.qd-service-table[data-v-
|
|
139
|
+
.qd-service-table[data-v-1bab93e0] tbody > tr.t-table__row--active {
|
|
140
140
|
background-color: var(--td-brand-color-light);
|
|
141
141
|
}
|
|
142
|
-
.qd-service-table[data-v-
|
|
143
|
-
.qd-service-table[data-v-
|
|
142
|
+
.qd-service-table[data-v-1bab93e0] tbody > tr.t-table__row--active.t-table__row--hover,
|
|
143
|
+
.qd-service-table[data-v-1bab93e0] tbody > tr.t-table__row--active:hover {
|
|
144
144
|
background-color: var(--td-brand-color-light-hover);
|
|
145
145
|
}
|
|
146
|
-
.qd-service-table[data-v-
|
|
146
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table__non-editable-col:not(.qd-service-table__copied-cell):is(
|
|
147
147
|
.t-table__cell--fixed-left,
|
|
148
148
|
.t-table__cell--fixed-right
|
|
149
149
|
) {
|
|
150
150
|
background-color: inherit;
|
|
151
151
|
background-image: linear-gradient(color-mix(in srgb, var(--td-bg-color-secondarycontainer) 50%, transparent), color-mix(in srgb, var(--td-bg-color-secondarycontainer) 50%, transparent));
|
|
152
152
|
}
|
|
153
|
-
.qd-service-table--disable-horizontal-scroll[data-v-
|
|
153
|
+
.qd-service-table--disable-horizontal-scroll[data-v-1bab93e0] colgroup > col {
|
|
154
154
|
width: auto !important;
|
|
155
155
|
}
|
|
156
|
-
.qd-service-table--cell-drag-selecting[data-v-
|
|
156
|
+
.qd-service-table--cell-drag-selecting[data-v-1bab93e0] {
|
|
157
157
|
cursor: crosshair;
|
|
158
158
|
}
|
|
159
|
-
.qd-service-table--cell-drag-selecting[data-v-
|
|
159
|
+
.qd-service-table--cell-drag-selecting[data-v-1bab93e0] td {
|
|
160
160
|
cursor: crosshair;
|
|
161
161
|
}
|
|
162
|
-
.qd-service-table[data-v-
|
|
162
|
+
.qd-service-table[data-v-1bab93e0] .t-table__filter-pop-content-inner {
|
|
163
163
|
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
|
|
164
164
|
}
|
|
165
|
-
.qd-service-table[data-v-
|
|
165
|
+
.qd-service-table[data-v-1bab93e0] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
|
|
166
166
|
padding: 0;
|
|
167
167
|
}
|
|
168
|
-
.qd-service-table[data-v-
|
|
168
|
+
.qd-service-table[data-v-1bab93e0] .t-table__filter-pop-content-inner:has(
|
|
169
169
|
.qd-service-table-filter-input,
|
|
170
170
|
.qd-service-table-filter-custom
|
|
171
171
|
) {
|
|
172
172
|
padding-bottom: var(--td-comp-paddingTB-s);
|
|
173
173
|
}
|
|
174
|
-
.qd-service-table[data-v-
|
|
174
|
+
.qd-service-table[data-v-1bab93e0] .t-table__filter--bottom-buttons {
|
|
175
175
|
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);
|
|
176
176
|
}
|
|
177
|
-
.qd-service-table--mini[data-v-
|
|
177
|
+
.qd-service-table--mini[data-v-1bab93e0] .t-table__filter-pop-content-inner {
|
|
178
178
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
|
|
179
179
|
}
|
|
180
|
-
.qd-service-table--mini[data-v-
|
|
180
|
+
.qd-service-table--mini[data-v-1bab93e0] .t-table__filter--bottom-buttons {
|
|
181
181
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs);
|
|
182
182
|
}
|
|
183
|
-
.qd-service-table--mini[data-v-
|
|
183
|
+
.qd-service-table--mini[data-v-1bab93e0] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
|
|
184
184
|
padding: 0;
|
|
185
185
|
}
|
|
186
|
-
.qd-service-table--mini[data-v-
|
|
186
|
+
.qd-service-table--mini[data-v-1bab93e0] .t-table__filter-pop-content-inner:has(
|
|
187
187
|
.qd-service-table-filter-input,
|
|
188
188
|
.qd-service-table-filter-custom
|
|
189
189
|
) {
|
|
190
190
|
padding-bottom: var(--td-comp-paddingTB-xs);
|
|
191
191
|
}
|
|
192
|
-
.qd-service-table[data-v-
|
|
192
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item {
|
|
193
193
|
width: 266px;
|
|
194
194
|
}
|
|
195
|
-
.qd-service-table[data-v-
|
|
196
|
-
.qd-service-table[data-v-
|
|
197
|
-
.qd-service-table[data-v-
|
|
195
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__search,
|
|
196
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__all,
|
|
197
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__options {
|
|
198
198
|
padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
|
|
199
199
|
}
|
|
200
|
-
.qd-service-table[data-v-
|
|
200
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__all {
|
|
201
201
|
display: flex;
|
|
202
202
|
align-items: center;
|
|
203
203
|
padding: 0 var(--td-comp-paddingLR-s);
|
|
204
204
|
border-bottom: 1px solid var(--td-component-stroke);
|
|
205
205
|
}
|
|
206
|
-
.qd-service-table[data-v-
|
|
206
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__options {
|
|
207
207
|
display: flex;
|
|
208
208
|
flex-direction: column;
|
|
209
209
|
height: 206px;
|
|
210
210
|
padding: 0 var(--td-comp-paddingLR-s);
|
|
211
211
|
overflow-y: auto;
|
|
212
212
|
}
|
|
213
|
-
.qd-service-table[data-v-
|
|
213
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__count {
|
|
214
214
|
margin-left: var(--td-comp-margin-xs);
|
|
215
215
|
color: var(--td-text-color-placeholder);
|
|
216
216
|
}
|
|
217
|
-
.qd-service-table[data-v-
|
|
217
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item__cell {
|
|
218
218
|
pointer-events: none;
|
|
219
219
|
}
|
|
220
|
-
.qd-service-table[data-v-
|
|
221
|
-
.qd-service-table[data-v-
|
|
220
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item .t-checkbox,
|
|
221
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item .t-radio {
|
|
222
222
|
display: flex;
|
|
223
223
|
align-items: center;
|
|
224
224
|
}
|
|
225
|
-
.qd-service-table[data-v-
|
|
226
|
-
.qd-service-table[data-v-
|
|
225
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item .t-checkbox__label,
|
|
226
|
+
.qd-service-table[data-v-1bab93e0] .qd-service-table-filter-item .t-radio__label {
|
|
227
227
|
display: inline-flex;
|
|
228
228
|
flex: 1 1 0;
|
|
229
229
|
align-items: center;
|
|
230
230
|
min-width: 0;
|
|
231
231
|
overflow: hidden;
|
|
232
232
|
}
|
|
233
|
-
.qd-service-table--mini[data-v-
|
|
233
|
+
.qd-service-table--mini[data-v-1bab93e0] .qd-service-table-filter-item__search {
|
|
234
234
|
padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
|
|
235
235
|
}
|
|
236
|
-
.qd-service-table--mini[data-v-
|
|
237
|
-
.qd-service-table--mini[data-v-
|
|
236
|
+
.qd-service-table--mini[data-v-1bab93e0] .qd-service-table-filter-item__all,
|
|
237
|
+
.qd-service-table--mini[data-v-1bab93e0] .qd-service-table-filter-item__options {
|
|
238
238
|
padding: 0 var(--td-comp-paddingLR-xs);
|
|
239
239
|
}
|
|
240
|
-
@keyframes qst-cell-ants-
|
|
240
|
+
@keyframes qst-cell-ants-1bab93e0 {
|
|
241
241
|
to {
|
|
242
242
|
background-position: 8px 0, -8px 100%, 0 -8px, 100% 8px;
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
@media (prefers-reduced-motion: reduce) {
|
|
246
|
-
[data-v-
|
|
246
|
+
[data-v-1bab93e0] td.qd-service-table__copied-cell {
|
|
247
247
|
animation: none;
|
|
248
248
|
}
|
|
249
249
|
}
|
|
@@ -2,7 +2,7 @@ import './index.css'
|
|
|
2
2
|
import _sfc_main from "./index.vue2.mjs";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1bab93e0"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdServiceTable as default
|
|
8
8
|
};
|
|
@@ -364,8 +364,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
364
364
|
emit: __emit
|
|
365
365
|
}) {
|
|
366
366
|
useCssVars((_ctx) => ({
|
|
367
|
-
"
|
|
368
|
-
"
|
|
367
|
+
"v7fcd2546": affixedHeaderTransform.value,
|
|
368
|
+
"ad8fa3dc": expandedRowWidth.value
|
|
369
369
|
}));
|
|
370
370
|
const props = __props;
|
|
371
371
|
const emit = __emit;
|
|
@@ -1103,10 +1103,34 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1103
1103
|
columns
|
|
1104
1104
|
};
|
|
1105
1105
|
}
|
|
1106
|
+
function solidifyLeafMinWidth(columns) {
|
|
1107
|
+
return columns.map((item) => {
|
|
1108
|
+
if (!item.children?.length) return item;
|
|
1109
|
+
return {
|
|
1110
|
+
...item,
|
|
1111
|
+
children: solidifyGroupChildren(item.children)
|
|
1112
|
+
};
|
|
1113
|
+
});
|
|
1114
|
+
}
|
|
1115
|
+
function solidifyGroupChildren(columns) {
|
|
1116
|
+
return columns.map((item) => {
|
|
1117
|
+
if (item.children?.length) {
|
|
1118
|
+
return {
|
|
1119
|
+
...item,
|
|
1120
|
+
children: solidifyGroupChildren(item.children)
|
|
1121
|
+
};
|
|
1122
|
+
}
|
|
1123
|
+
if (!isEmpty(item.width) || isEmpty(item.minWidth)) return item;
|
|
1124
|
+
return {
|
|
1125
|
+
...item,
|
|
1126
|
+
width: Number(item.minWidth)
|
|
1127
|
+
};
|
|
1128
|
+
});
|
|
1129
|
+
}
|
|
1106
1130
|
const autoWidthColumns = computed(() => {
|
|
1107
1131
|
const observedWidth = tableContentWidth.value;
|
|
1108
1132
|
const containerWidth = observedWidth > 0 ? (tableContentEl.value?.clientWidth ?? observedWidth) - 1 : 0;
|
|
1109
|
-
const columns = reProps.value.columns;
|
|
1133
|
+
const columns = solidifyLeafMinWidth(reProps.value.columns);
|
|
1110
1134
|
const noWidthCols = columns.filter((c) => isEmpty(c.width));
|
|
1111
1135
|
const fixedWidth = columns.filter((c) => !isEmpty(c.width)).reduce((sum, c) => sum + Number(c.width), 0);
|
|
1112
1136
|
if (containerWidth <= 0 || !noWidthCols.length) return columns;
|
package/dist/index.mjs
CHANGED
|
@@ -34,9 +34,10 @@ import { PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE, PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUE
|
|
|
34
34
|
import { default as default24 } from "./components/form/index.vue.mjs";
|
|
35
35
|
import { default as default25 } from "./components/form/item.vue.mjs";
|
|
36
36
|
import { qdFormGrid, qdFormGutter } from "./components/form/props.mjs";
|
|
37
|
-
import { PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY } from "./components/grid/config.mjs";
|
|
37
|
+
import { DEFAULT_GRID_WIDTH, PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY } from "./components/grid/config.mjs";
|
|
38
38
|
import { default as default26 } from "./components/grid/index.vue.mjs";
|
|
39
39
|
import { default as default27 } from "./components/grid/item.vue.mjs";
|
|
40
|
+
import { mergeGridValue, resolveGridSpan } from "./components/grid/utils.mjs";
|
|
40
41
|
import { default as default28 } from "./components/left-ribbon-tag/index.vue.mjs";
|
|
41
42
|
import { default as default29 } from "./components/org/tag/index.vue.mjs";
|
|
42
43
|
import { default as default30 } from "./components/read-write/index.vue.mjs";
|
|
@@ -68,6 +69,7 @@ import * as auth from "./utils/auth.mjs";
|
|
|
68
69
|
import { useUICsl } from "./utils/tools.mjs";
|
|
69
70
|
import { formatDuration } from "./utils/date.mjs";
|
|
70
71
|
export {
|
|
72
|
+
DEFAULT_GRID_WIDTH,
|
|
71
73
|
PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE,
|
|
72
74
|
PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE,
|
|
73
75
|
PROVIDE_FORM_RESET_QUEUE,
|
|
@@ -125,6 +127,7 @@ export {
|
|
|
125
127
|
hasPermiDirective,
|
|
126
128
|
hasRole,
|
|
127
129
|
hasRoleDirective,
|
|
130
|
+
mergeGridValue,
|
|
128
131
|
parseVModelPath,
|
|
129
132
|
qdAsyncCompute,
|
|
130
133
|
qdCompute,
|
|
@@ -132,6 +135,7 @@ export {
|
|
|
132
135
|
qdFormGutter,
|
|
133
136
|
qdUploadAcceptMap,
|
|
134
137
|
qdUseComputeValue,
|
|
138
|
+
resolveGridSpan,
|
|
135
139
|
resolveVModelBinding,
|
|
136
140
|
setValueByPath,
|
|
137
141
|
useAgentChat,
|