qidian-vue-ui 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/form/index.css +26 -28
- package/dist/components/form/index.vue.mjs +1 -1
- package/dist/components/form/index.vue2.mjs +57 -6
- package/dist/components/form/item.css +2 -2
- package/dist/components/form/item.vue.mjs +1 -1
- package/dist/components/form/item.vue2.mjs +4 -1
- package/dist/components/service-popup-table-select/index.vue.mjs +1 -1
- package/dist/components/service-popup-table-select/index.vue2.mjs +100 -21
- package/dist/components/service-popup-table-select/index2.css +10 -6
- package/dist/components/service-popup-table-select/props.d.ts +1 -0
- package/dist/components/service-popup-table-select/props.mjs +2 -1
- package/dist/components/service-popup-table-select/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,33 +1,17 @@
|
|
|
1
|
-
.qd-form--descriptions[data-v-
|
|
1
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-grid {
|
|
2
2
|
border-top: 1px solid var(--td-component-border);
|
|
3
3
|
border-left: 1px solid var(--td-component-border);
|
|
4
4
|
}
|
|
5
|
-
.qd-form--descriptions[data-v-
|
|
5
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-grid-item {
|
|
6
6
|
border-right: 1px solid var(--td-component-border);
|
|
7
7
|
border-bottom: 1px solid var(--td-component-border);
|
|
8
8
|
}
|
|
9
|
-
.qd-form--descriptions[data-v-
|
|
10
|
-
display: grid;
|
|
11
|
-
grid-row: span 2 !important;
|
|
12
|
-
grid-template-rows: subgrid;
|
|
13
|
-
}
|
|
14
|
-
.qd-form--descriptions[data-v-7b85acc1] .t-form__item {
|
|
9
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .t-form__item {
|
|
15
10
|
display: flex;
|
|
16
11
|
align-items: stretch;
|
|
17
12
|
height: 100%;
|
|
18
13
|
}
|
|
19
|
-
.qd-form--descriptions[data-v-
|
|
20
|
-
display: contents;
|
|
21
|
-
}
|
|
22
|
-
.qd-form--descriptions[data-v-7b85acc1] .t-form__item:has(> .t-form__label--top) .t-form__controls {
|
|
23
|
-
height: auto;
|
|
24
|
-
min-height: min-content;
|
|
25
|
-
}
|
|
26
|
-
.qd-form--descriptions[data-v-7b85acc1] .t-form__item:has(> .t-form__label--top) .t-form__controls-content {
|
|
27
|
-
min-height: min-content;
|
|
28
|
-
white-space: normal;
|
|
29
|
-
}
|
|
30
|
-
.qd-form--descriptions[data-v-7b85acc1] .t-form__label {
|
|
14
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .t-form__label {
|
|
31
15
|
display: flex;
|
|
32
16
|
flex-direction: column;
|
|
33
17
|
justify-content: center;
|
|
@@ -35,20 +19,17 @@
|
|
|
35
19
|
padding: var(--td-comp-paddingLR-m) var(--td-comp-paddingLR-l);
|
|
36
20
|
height: 100%;
|
|
37
21
|
}
|
|
38
|
-
.qd-form--descriptions[data-v-
|
|
39
|
-
border-right: 1px solid var(--td-component-border);
|
|
40
|
-
}
|
|
41
|
-
.qd-form--descriptions[data-v-7b85acc1] .t-form__label--top {
|
|
22
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .t-form__label--top {
|
|
42
23
|
border-bottom: 1px solid var(--td-component-border);
|
|
43
24
|
align-items: center;
|
|
44
|
-
height: auto;
|
|
25
|
+
height: var(--qd-form-description-label-height, auto);
|
|
45
26
|
white-space: normal;
|
|
46
27
|
}
|
|
47
|
-
.qd-form--descriptions[data-v-
|
|
28
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .t-form__label--top + .t-form__controls > .t-form__controls-content {
|
|
48
29
|
justify-content: center;
|
|
49
30
|
text-align: center;
|
|
50
31
|
}
|
|
51
|
-
.qd-form--descriptions[data-v-
|
|
32
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .t-form__controls {
|
|
52
33
|
flex: 1 1 0;
|
|
53
34
|
overflow: hidden;
|
|
54
35
|
display: flex;
|
|
@@ -58,6 +39,23 @@
|
|
|
58
39
|
margin-left: 0 !important;
|
|
59
40
|
height: 100%;
|
|
60
41
|
}
|
|
61
|
-
.qd-form--descriptions[data-v-
|
|
42
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-form-item--label-top {
|
|
43
|
+
display: grid;
|
|
44
|
+
grid-template-rows: auto minmax(min-content, auto);
|
|
45
|
+
grid-row: span 2 !important;
|
|
46
|
+
}
|
|
47
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-form-item--label-top > .t-form__item {
|
|
48
|
+
display: contents;
|
|
49
|
+
}
|
|
50
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-form-item--label-top .t-form__controls-content {
|
|
51
|
+
white-space: normal;
|
|
52
|
+
}
|
|
53
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-form-item--empty-content .t-form__controls {
|
|
62
54
|
padding: 0 !important;
|
|
55
|
+
min-height: 0;
|
|
56
|
+
height: 0;
|
|
57
|
+
overflow: hidden;
|
|
58
|
+
}
|
|
59
|
+
.qd-form--descriptions[data-v-2ca4a3ef] .qd-form-item:not(.qd-form-item--label-top):not(.qd-form-item--label-width-full) .t-form__label {
|
|
60
|
+
border-right: 1px solid var(--td-component-border);
|
|
63
61
|
}
|
|
@@ -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-2ca4a3ef"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdForm as default
|
|
8
8
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './index.css'
|
|
2
|
-
import { defineComponent, mergeDefaults, provide, nextTick, onBeforeUnmount, useTemplateRef, ref, computed, withDirectives, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot, normalizeProps, guardReactiveProps,
|
|
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";
|
|
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
|
-
import { createExposeProxy, easyCopy, hasOwn, to, suspectedWrapperPromise } from "qidian-shared";
|
|
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";
|
|
@@ -49,6 +49,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
49
49
|
emits: ["update:modelValue"],
|
|
50
50
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
51
51
|
const vLoading = LoadingDirective;
|
|
52
|
+
const vResize = resizeDirective;
|
|
52
53
|
const props = __props;
|
|
53
54
|
const emit = __emit;
|
|
54
55
|
const { data } = useVModels(props, emit, { passive: true });
|
|
@@ -81,6 +82,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
81
82
|
});
|
|
82
83
|
});
|
|
83
84
|
const formRef = useTemplateRef("form");
|
|
85
|
+
const gridRef = useTemplateRef("gridRef");
|
|
84
86
|
const submitShowErrorMessage = ref();
|
|
85
87
|
const submitScrollToFirstError = ref();
|
|
86
88
|
let submitResolver;
|
|
@@ -233,6 +235,49 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
233
235
|
return res;
|
|
234
236
|
}
|
|
235
237
|
};
|
|
238
|
+
function syncDescriptionLabelRows() {
|
|
239
|
+
if (!reProps.value.descriptions) return;
|
|
240
|
+
const gridEl = gridRef.value?.$el ?? null;
|
|
241
|
+
if (!gridEl) return;
|
|
242
|
+
const items = Array.from(gridEl.querySelectorAll(".qd-form-item--label-top"));
|
|
243
|
+
if (!items.length) return;
|
|
244
|
+
const rows = /* @__PURE__ */ new Map();
|
|
245
|
+
for (const item of items) {
|
|
246
|
+
const top = item.offsetTop;
|
|
247
|
+
let rowKey = top;
|
|
248
|
+
for (const key of rows.keys()) {
|
|
249
|
+
if (Math.abs(key - top) <= 1) {
|
|
250
|
+
rowKey = key;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
const rowItems = rows.get(rowKey);
|
|
255
|
+
if (rowItems) rowItems.push(item);
|
|
256
|
+
else rows.set(rowKey, [item]);
|
|
257
|
+
}
|
|
258
|
+
for (const rowItems of rows.values()) {
|
|
259
|
+
let maxHeight = 0;
|
|
260
|
+
for (const item of rowItems) {
|
|
261
|
+
const label = item.querySelector(".t-form__label");
|
|
262
|
+
if (!label) continue;
|
|
263
|
+
label.style.setProperty("--qd-form-description-label-height", "");
|
|
264
|
+
maxHeight = Math.max(maxHeight, label.offsetHeight);
|
|
265
|
+
}
|
|
266
|
+
for (const item of rowItems) {
|
|
267
|
+
item.querySelector(".t-form__label")?.style.setProperty("--qd-form-description-label-height", `${maxHeight}px`);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
watch(
|
|
272
|
+
[() => reProps.value.formItems, data],
|
|
273
|
+
() => {
|
|
274
|
+
nextTick(syncDescriptionLabelRows);
|
|
275
|
+
},
|
|
276
|
+
{ deep: true }
|
|
277
|
+
);
|
|
278
|
+
onMounted(() => {
|
|
279
|
+
nextTick(syncDescriptionLabelRows);
|
|
280
|
+
});
|
|
236
281
|
__expose(createExposeProxy(expose, formRef));
|
|
237
282
|
return (_ctx, _cache) => {
|
|
238
283
|
return withDirectives((openBlock(), createBlock(unref(Form), mergeProps({
|
|
@@ -250,19 +295,25 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
250
295
|
default: withCtx(() => [
|
|
251
296
|
renderSlot(_ctx.$slots, "header", { context: unref(data) }, void 0, true),
|
|
252
297
|
renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(reProps.value.gridOptions)), () => [
|
|
253
|
-
|
|
298
|
+
withDirectives((openBlock(), createBlock(unref(QdGrid), mergeProps({
|
|
299
|
+
ref_key: "gridRef",
|
|
300
|
+
ref: gridRef
|
|
301
|
+
}, reProps.value.gridOptions), {
|
|
254
302
|
default: withCtx(() => [
|
|
255
303
|
(openBlock(true), createElementBlock(Fragment, null, renderList(reProps.value.formItems, (item, index) => {
|
|
256
304
|
return openBlock(), createBlock(QdFormItem, mergeProps({
|
|
257
305
|
key: index,
|
|
258
306
|
"crud-mode": __props.crudMode,
|
|
259
307
|
context: unref(data),
|
|
260
|
-
"default-clearable": __props.defaultClearable
|
|
261
|
-
|
|
308
|
+
"default-clearable": __props.defaultClearable,
|
|
309
|
+
"label-align": item.labelAlign ?? reProps.value.formOptions.labelAlign
|
|
310
|
+
}, { ref_for: true }, item), null, 16, ["crud-mode", "context", "default-clearable", "label-align"]);
|
|
262
311
|
}), 128))
|
|
263
312
|
]),
|
|
264
313
|
_: 1
|
|
265
|
-
}, 16)
|
|
314
|
+
}, 16)), [
|
|
315
|
+
[unref(vResize), syncDescriptionLabelRows]
|
|
316
|
+
])
|
|
266
317
|
], true),
|
|
267
318
|
renderSlot(_ctx.$slots, "footer", { context: unref(data) }, void 0, true)
|
|
268
319
|
]),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
.qd-form-item[data-v-
|
|
1
|
+
.qd-form-item[data-v-ad6b610c] > .t-form__item > .t-form__controls > .t-form__controls-content > *:not(.t-switch) {
|
|
2
2
|
width: 100%;
|
|
3
3
|
}
|
|
4
|
-
.qd-form-item__component[data-v-
|
|
4
|
+
.qd-form-item__component[data-v-ad6b610c]:not(.t-switch) {
|
|
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-ad6b610c"]]);
|
|
6
6
|
export {
|
|
7
7
|
QdFormItem as default
|
|
8
8
|
};
|
|
@@ -95,7 +95,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
95
95
|
key: 0,
|
|
96
96
|
class: [
|
|
97
97
|
"qd-form-item",
|
|
98
|
-
reProps.value.formItemOptions.name ? `qd-form-item__${reProps.value.formItemOptions.name}` : ""
|
|
98
|
+
reProps.value.formItemOptions.name ? `qd-form-item__${reProps.value.formItemOptions.name}` : "",
|
|
99
|
+
reProps.value.formItemOptions.labelAlign === "top" ? "qd-form-item--label-top" : "",
|
|
100
|
+
reProps.value.formItemOptions.labelWidth === "100%" ? "qd-form-item--label-width-full" : "",
|
|
101
|
+
!reProps.value.configRendererOptions.config && !_ctx.$slots.default ? "qd-form-item--empty-content" : ""
|
|
99
102
|
]
|
|
100
103
|
}, reProps.value.gridItemOptions), {
|
|
101
104
|
default: withCtx(() => [
|
|
@@ -4,7 +4,7 @@ import _sfc_main from "./index.vue2.mjs";
|
|
|
4
4
|
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
6
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
7
|
-
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
7
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2084d5ab"]]);
|
|
8
8
|
export {
|
|
9
9
|
index as default
|
|
10
10
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import './index2.css'
|
|
2
2
|
import './index.css'
|
|
3
|
-
import { defineComponent, mergeDefaults, useTemplateRef, ref, reactive, computed, watch, createVNode, onMounted, createBlock, openBlock, unref, mergeProps,
|
|
3
|
+
import { defineComponent, mergeDefaults, useTemplateRef, ref, reactive, computed, watch, createVNode, onMounted, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot, createElementBlock, Fragment, renderList, createTextVNode, toDisplayString, isRef, createSlots, normalizeProps, guardReactiveProps } from "vue";
|
|
4
4
|
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";
|
|
5
5
|
import { isEmpty, identifyType, extractSlotsWithPrefix, hasOwn } from "qidian-shared";
|
|
6
6
|
import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
|
|
7
|
-
import { Popup, Select, Option,
|
|
7
|
+
import { Popup, Select, Option, InputAdornment, Input, Button, Space } from "tdesign-vue-next";
|
|
8
8
|
import { useConfig } from "../config-provider/useConfig.mjs";
|
|
9
9
|
import { qdDialogTableSelectSearchGrid } from "../service-dialog-table-select/props.mjs";
|
|
10
10
|
import { qdServiceSelectKeys } from "../service-select/props.mjs";
|
|
@@ -30,6 +30,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
30
30
|
addConfirmBtn: {},
|
|
31
31
|
addCancelBtn: {},
|
|
32
32
|
addInput: {},
|
|
33
|
+
mode: {},
|
|
34
|
+
quoteBtn: {},
|
|
33
35
|
title: {},
|
|
34
36
|
permiPrefix: {},
|
|
35
37
|
tableMinHeight: {
|
|
@@ -350,7 +352,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
350
352
|
const reProps = computed(() => {
|
|
351
353
|
const {
|
|
352
354
|
modelValue: modelValue2,
|
|
353
|
-
popupVisible:
|
|
355
|
+
popupVisible: popupVisibleProp,
|
|
354
356
|
popupProps,
|
|
355
357
|
fillOptions,
|
|
356
358
|
searchData: searchData2,
|
|
@@ -367,6 +369,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
367
369
|
valueType,
|
|
368
370
|
clearable,
|
|
369
371
|
creatable,
|
|
372
|
+
mode,
|
|
373
|
+
quoteBtn,
|
|
370
374
|
placeholder,
|
|
371
375
|
size,
|
|
372
376
|
onClear,
|
|
@@ -387,7 +391,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
387
391
|
});
|
|
388
392
|
const onVisibleChange = rePopupOptions.onVisibleChange;
|
|
389
393
|
rePopupOptions.onVisibleChange = (visible, context) => {
|
|
394
|
+
if (mode === "input" && !popupVisible.value && visible) return;
|
|
390
395
|
onVisibleChange?.(visible, context);
|
|
396
|
+
popupVisible.value = visible;
|
|
391
397
|
if (visible) {
|
|
392
398
|
fillOptionsWatchStop?.();
|
|
393
399
|
handleOpen();
|
|
@@ -449,8 +455,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
449
455
|
...qdServiceSelectKeys,
|
|
450
456
|
...keys
|
|
451
457
|
};
|
|
458
|
+
const effectiveCreatable = mode === "input" || creatable;
|
|
459
|
+
const quoteBtnOptions = merge({}, {
|
|
460
|
+
content: "引用",
|
|
461
|
+
onClick: openPopup,
|
|
462
|
+
disabled: tdReadonly.value || tdDisabled.value
|
|
463
|
+
}, typeof quoteBtn === "string" ? {
|
|
464
|
+
content: quoteBtn
|
|
465
|
+
} : quoteBtn);
|
|
452
466
|
return {
|
|
453
|
-
|
|
467
|
+
mode,
|
|
468
|
+
creatable: effectiveCreatable,
|
|
469
|
+
quoteBtnOptions,
|
|
454
470
|
fillOptions,
|
|
455
471
|
keys: reKeys,
|
|
456
472
|
popupOptions: rePopupOptions,
|
|
@@ -482,7 +498,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
482
498
|
addInputOptions,
|
|
483
499
|
models: {
|
|
484
500
|
modelValue: modelValue2,
|
|
485
|
-
popupVisible:
|
|
501
|
+
popupVisible: popupVisibleProp,
|
|
486
502
|
searchData: searchData2,
|
|
487
503
|
data: inData,
|
|
488
504
|
columnControllerVisible: columnControllerVisible2,
|
|
@@ -516,6 +532,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
516
532
|
}
|
|
517
533
|
return modelValue.value;
|
|
518
534
|
});
|
|
535
|
+
const inputValue = computed({
|
|
536
|
+
get: () => modelValue.value ?? "",
|
|
537
|
+
set: (val) => {
|
|
538
|
+
modelValue.value = val;
|
|
539
|
+
}
|
|
540
|
+
});
|
|
541
|
+
let lastConfirmedValue;
|
|
542
|
+
let suppressNextBlur = false;
|
|
519
543
|
function cleanEmptyChildren(rows, childrenKey) {
|
|
520
544
|
if (!childrenKey) return rows;
|
|
521
545
|
return rows.map((row) => {
|
|
@@ -568,6 +592,33 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
568
592
|
selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value];
|
|
569
593
|
}
|
|
570
594
|
}
|
|
595
|
+
function openPopup(e) {
|
|
596
|
+
e.stopPropagation();
|
|
597
|
+
if (tdReadonly.value || tdDisabled.value) return;
|
|
598
|
+
popupVisible.value = true;
|
|
599
|
+
reProps.value.popupOptions.onVisibleChange?.(true, {
|
|
600
|
+
e,
|
|
601
|
+
trigger: "trigger-element-click"
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
function onInputFocus() {
|
|
605
|
+
lastConfirmedValue = modelValue.value;
|
|
606
|
+
}
|
|
607
|
+
function onInputBlur(_value) {
|
|
608
|
+
if (suppressNextBlur) {
|
|
609
|
+
suppressNextBlur = false;
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
const value = modelValue.value;
|
|
613
|
+
if (value === lastConfirmedValue) return;
|
|
614
|
+
lastConfirmedValue = value;
|
|
615
|
+
confirmCustom(value);
|
|
616
|
+
}
|
|
617
|
+
function onInputClear(context) {
|
|
618
|
+
suppressNextBlur = true;
|
|
619
|
+
handleClear(context);
|
|
620
|
+
lastConfirmedValue = modelValue.value;
|
|
621
|
+
}
|
|
571
622
|
function handleClear(context) {
|
|
572
623
|
selectedRowKeys.value = [];
|
|
573
624
|
selectedRows.value = [];
|
|
@@ -580,6 +631,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
580
631
|
});
|
|
581
632
|
reProps.value.onClear?.(context);
|
|
582
633
|
}
|
|
634
|
+
function confirmCustom(value, e) {
|
|
635
|
+
reProps.value.onCreate?.(value);
|
|
636
|
+
reProps.value.onChange?.(value, {
|
|
637
|
+
e,
|
|
638
|
+
option: null,
|
|
639
|
+
selectedOptions: [],
|
|
640
|
+
trigger: "check"
|
|
641
|
+
});
|
|
642
|
+
}
|
|
583
643
|
function confirmAddCustom(e) {
|
|
584
644
|
reProps.value.onCreate?.(addCustom.value);
|
|
585
645
|
reProps.value.onChange?.(addCustom.value, {
|
|
@@ -614,43 +674,42 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
614
674
|
__expose(expose);
|
|
615
675
|
return (_ctx, _cache) => {
|
|
616
676
|
return openBlock(), createBlock(unref(Popup), mergeProps({
|
|
617
|
-
|
|
618
|
-
"onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => isRef(popupVisible) ? popupVisible.value = $event : null)
|
|
677
|
+
visible: unref(popupVisible)
|
|
619
678
|
}, reProps.value.popupOptions), {
|
|
620
679
|
content: withCtx(() => [createVNode(unref(QdCrudTable), mergeProps({
|
|
621
680
|
ref: "table",
|
|
622
681
|
class: "qd-popup-table-select__table",
|
|
623
682
|
"search-data": unref(searchData),
|
|
624
|
-
"onUpdate:searchData": _cache[
|
|
683
|
+
"onUpdate:searchData": _cache[2] || (_cache[2] = ($event) => isRef(searchData) ? searchData.value = $event : null),
|
|
625
684
|
data: unref(data),
|
|
626
|
-
"onUpdate:data": _cache[
|
|
685
|
+
"onUpdate:data": _cache[3] || (_cache[3] = ($event) => isRef(data) ? data.value = $event : null),
|
|
627
686
|
"selected-row-keys": selectedRowKeys.value,
|
|
628
|
-
"onUpdate:selectedRowKeys": _cache[
|
|
687
|
+
"onUpdate:selectedRowKeys": _cache[4] || (_cache[4] = ($event) => selectedRowKeys.value = $event),
|
|
629
688
|
"active-row-keys": selectedRowKeys.value,
|
|
630
|
-
"onUpdate:activeRowKeys": _cache[
|
|
689
|
+
"onUpdate:activeRowKeys": _cache[5] || (_cache[5] = ($event) => selectedRowKeys.value = $event),
|
|
631
690
|
"column-controller-visible": unref(columnControllerVisible),
|
|
632
|
-
"onUpdate:columnControllerVisible": _cache[
|
|
691
|
+
"onUpdate:columnControllerVisible": _cache[6] || (_cache[6] = ($event) => isRef(columnControllerVisible) ? columnControllerVisible.value = $event : null),
|
|
633
692
|
"expanded-rowKeys": unref(expandedRowKeys),
|
|
634
|
-
"onUpdate:expandedRowKeys": _cache[
|
|
693
|
+
"onUpdate:expandedRowKeys": _cache[7] || (_cache[7] = ($event) => isRef(expandedRowKeys) ? expandedRowKeys.value = $event : null),
|
|
635
694
|
"filter-value": unref(filterValue),
|
|
636
|
-
"onUpdate:filterValue": _cache[
|
|
695
|
+
"onUpdate:filterValue": _cache[8] || (_cache[8] = ($event) => isRef(filterValue) ? filterValue.value = $event : null),
|
|
637
696
|
sort: unref(sort),
|
|
638
|
-
"onUpdate:sort": _cache[
|
|
697
|
+
"onUpdate:sort": _cache[9] || (_cache[9] = ($event) => isRef(sort) ? sort.value = $event : null),
|
|
639
698
|
"expanded-tree-nodes": unref(expandedTreeNodes),
|
|
640
|
-
"onUpdate:expandedTreeNodes": _cache[
|
|
699
|
+
"onUpdate:expandedTreeNodes": _cache[10] || (_cache[10] = ($event) => isRef(expandedTreeNodes) ? expandedTreeNodes.value = $event : null),
|
|
641
700
|
"reserve-selected-row-on-paginate": "",
|
|
642
701
|
"active-row-type": "multiple"
|
|
643
702
|
}, reProps.value.tableOptions, {
|
|
644
703
|
onSelectChange: handleSelectChange
|
|
645
704
|
}), createSlots({
|
|
646
705
|
_: 2
|
|
647
|
-
}, [reProps.value.creatable ? {
|
|
706
|
+
}, [reProps.value.mode === "select" && reProps.value.creatable ? {
|
|
648
707
|
name: "table-bottom-content",
|
|
649
708
|
fn: withCtx(() => [addCustom.visible ? (openBlock(), createElementBlock("div", _hoisted_1, [renderSlot(_ctx.$slots, "add-input", {
|
|
650
709
|
addCustom
|
|
651
710
|
}, () => [createVNode(unref(Input), mergeProps({
|
|
652
711
|
modelValue: addCustom.value,
|
|
653
|
-
"onUpdate:modelValue": _cache[
|
|
712
|
+
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => addCustom.value = $event),
|
|
654
713
|
autofocus: ""
|
|
655
714
|
}, reProps.value.addInputOptions), null, 16, ["modelValue"])], true), createVNode(unref(Space), {
|
|
656
715
|
size: "small"
|
|
@@ -683,7 +742,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
683
742
|
})]), 1040, ["search-data", "data", "selected-row-keys", "active-row-keys", "column-controller-visible", "expanded-rowKeys", "filter-value", "sort", "expanded-tree-nodes"])]),
|
|
684
743
|
default: withCtx(() => [renderSlot(_ctx.$slots, "default", {
|
|
685
744
|
selectedRows: selectedRows.value
|
|
686
|
-
}, () => [
|
|
745
|
+
}, () => [reProps.value.mode === "select" ? (openBlock(), createBlock(unref(Select), mergeProps({
|
|
746
|
+
key: 0,
|
|
687
747
|
"model-value": selectValue.value,
|
|
688
748
|
options: selectedRows.value,
|
|
689
749
|
"popup-visible": false
|
|
@@ -702,9 +762,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
702
762
|
}, 1032, ["value", "label"]);
|
|
703
763
|
}), 128))]),
|
|
704
764
|
_: 1
|
|
705
|
-
}, 16, ["model-value", "options"])
|
|
765
|
+
}, 16, ["model-value", "options"])) : (openBlock(), createBlock(unref(InputAdornment), {
|
|
766
|
+
key: 1
|
|
767
|
+
}, {
|
|
768
|
+
append: withCtx(() => [createVNode(unref(Button), mergeProps({
|
|
769
|
+
class: "qd-popup-table-select__input-trigger"
|
|
770
|
+
}, reProps.value.quoteBtnOptions), null, 16)]),
|
|
771
|
+
default: withCtx(() => [createVNode(unref(Input), {
|
|
772
|
+
modelValue: inputValue.value,
|
|
773
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event),
|
|
774
|
+
clearable: reProps.value.selectOptions.clearable,
|
|
775
|
+
readonly: reProps.value.selectOptions.readonly,
|
|
776
|
+
disabled: reProps.value.selectOptions.disabled,
|
|
777
|
+
placeholder: reProps.value.selectOptions.placeholder,
|
|
778
|
+
size: reProps.value.selectOptions.size,
|
|
779
|
+
onFocus: onInputFocus,
|
|
780
|
+
onBlur: onInputBlur,
|
|
781
|
+
onClear: onInputClear
|
|
782
|
+
}, null, 8, ["modelValue", "clearable", "readonly", "disabled", "placeholder", "size"])]),
|
|
783
|
+
_: 1
|
|
784
|
+
}))], true)]),
|
|
706
785
|
_: 3
|
|
707
|
-
}, 16, ["
|
|
786
|
+
}, 16, ["visible"]);
|
|
708
787
|
};
|
|
709
788
|
}
|
|
710
789
|
});
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
.qd-popup-table-select__table[data-v-
|
|
2
|
-
.qd-popup-table-select__table[data-v-
|
|
1
|
+
.qd-popup-table-select__table[data-v-2084d5ab] .qd-crud-search > .t-loading__parent > .t-card__body,
|
|
2
|
+
.qd-popup-table-select__table[data-v-2084d5ab] .qd-crud-table__body > .t-loading__parent > .t-card__body {
|
|
3
3
|
padding: 0 !important;
|
|
4
4
|
}
|
|
5
|
-
.qd-popup-table-select__table[data-v-
|
|
5
|
+
.qd-popup-table-select__table[data-v-2084d5ab] .qd-crud-table__toolbar {
|
|
6
6
|
display: none;
|
|
7
7
|
}
|
|
8
|
-
.qd-popup-table-select__table[data-v-
|
|
8
|
+
.qd-popup-table-select__table[data-v-2084d5ab] .qd-service-table {
|
|
9
9
|
margin-top: 0;
|
|
10
10
|
}
|
|
11
|
-
.qd-popup-table-select__table-add[data-v-
|
|
11
|
+
.qd-popup-table-select__table-add[data-v-2084d5ab] {
|
|
12
12
|
margin-top: var(--td-comp-margin-m);
|
|
13
13
|
display: flex;
|
|
14
14
|
}
|
|
15
|
-
.qd-popup-table-select__table-add .t-input__wrap[data-v-
|
|
15
|
+
.qd-popup-table-select__table-add .t-input__wrap[data-v-2084d5ab] {
|
|
16
16
|
flex: 1 1 0;
|
|
17
17
|
overflow: hidden;
|
|
18
18
|
margin-right: var(--td-comp-margin-m);
|
|
19
19
|
}
|
|
20
|
+
.qd-popup-table-select__input-trigger[data-v-2084d5ab] {
|
|
21
|
+
border-top-left-radius: 0;
|
|
22
|
+
border-bottom-left-radius: 0;
|
|
23
|
+
}
|
|
@@ -5,6 +5,7 @@ export declare const qdServicePopupTableSelectProps: {
|
|
|
5
5
|
readonly disabled: undefined;
|
|
6
6
|
readonly clearable: false;
|
|
7
7
|
readonly valueType: "value";
|
|
8
|
+
readonly mode: "select";
|
|
8
9
|
readonly data: () => never[];
|
|
9
10
|
readonly columnControllerVisible: undefined;
|
|
10
11
|
readonly displayColumns: undefined;
|
|
@@ -9,5 +9,7 @@ export interface QdServicePopupTableSelectProps<D extends TableRowData = TableRo
|
|
|
9
9
|
addConfirmBtn?: string | TdButtonProps | null;
|
|
10
10
|
addCancelBtn?: string | TdButtonProps | null;
|
|
11
11
|
addInput?: string | TdInputProps | null;
|
|
12
|
+
mode?: 'select' | 'input';
|
|
13
|
+
quoteBtn?: string | TdButtonProps | null;
|
|
12
14
|
}
|
|
13
15
|
export type QdServicePopupTableSelectInstanceFunctions = QdCrudTableInstanceFunctions;
|