qidian-vue-ui 1.2.73 → 1.2.74
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/service-dialog-table-select/index.css +9 -9
- package/dist/components/service-dialog-table-select/index.vue.mjs +1 -1
- package/dist/components/service-dialog-table-select/index.vue2.mjs +20 -6
- package/dist/components/service-dialog-table-select/index.vue2.mjs.map +1 -1
- package/dist/components/service-dialog-table-select/types.d.ts +3 -2
- package/dist/components/service-popup-table-select/index.vue.mjs +1 -1
- package/dist/components/service-popup-table-select/index.vue2.mjs +19 -5
- package/dist/components/service-popup-table-select/index.vue2.mjs.map +1 -1
- package/dist/components/service-popup-table-select/index2.css +6 -6
- package/dist/components/service-popup-table-select/types.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
.qd-dialog-table-select[data-v-
|
|
1
|
+
.qd-dialog-table-select[data-v-04f2c56b] {
|
|
2
2
|
width: 100%;
|
|
3
3
|
}
|
|
4
|
-
.qd-dialog-table-select__trigger[data-v-
|
|
4
|
+
.qd-dialog-table-select__trigger[data-v-04f2c56b] {
|
|
5
5
|
width: 100%;
|
|
6
6
|
}
|
|
7
|
-
.qd-dialog-table-select__trigger[data-v-
|
|
7
|
+
.qd-dialog-table-select__trigger[data-v-04f2c56b]:not(.qd-dialog-table-select__trigger--readonly):not(.qd-dialog-table-select__trigger--disabled) {
|
|
8
8
|
cursor: pointer;
|
|
9
9
|
}
|
|
10
|
-
.qd-dialog-table-select__table[data-v-
|
|
11
|
-
.qd-dialog-table-select__table[data-v-
|
|
10
|
+
.qd-dialog-table-select__table[data-v-04f2c56b] .qd-crud-search > .t-card__body,
|
|
11
|
+
.qd-dialog-table-select__table[data-v-04f2c56b] .qd-crud-table__body > .t-card__body {
|
|
12
12
|
padding: 0 !important;
|
|
13
13
|
}
|
|
14
|
-
.qd-dialog-table-select__table[data-v-
|
|
14
|
+
.qd-dialog-table-select__table[data-v-04f2c56b] .qd-crud-table__toolbar {
|
|
15
15
|
display: none;
|
|
16
16
|
}
|
|
17
|
-
.qd-dialog-table-select__table[data-v-
|
|
17
|
+
.qd-dialog-table-select__table[data-v-04f2c56b] .qd-service-table {
|
|
18
18
|
margin-top: 0;
|
|
19
19
|
}
|
|
20
|
-
.qd-dialog-table-select__table-add[data-v-
|
|
20
|
+
.qd-dialog-table-select__table-add[data-v-04f2c56b] {
|
|
21
21
|
margin-top: var(--td-comp-margin-m);
|
|
22
22
|
display: flex;
|
|
23
23
|
}
|
|
24
|
-
.qd-dialog-table-select__table-add .t-input__wrap[data-v-
|
|
24
|
+
.qd-dialog-table-select__table-add .t-input__wrap[data-v-04f2c56b] {
|
|
25
25
|
flex: 1 1 0;
|
|
26
26
|
overflow: hidden;
|
|
27
27
|
margin-right: var(--td-comp-margin-m);
|
|
@@ -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 index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-04f2c56b"]]);
|
|
6
6
|
export {
|
|
7
7
|
index as default
|
|
8
8
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './index.css'
|
|
2
2
|
import { defineComponent, mergeDefaults, useTemplateRef, ref, reactive, computed, createVNode, watch, createElementBlock, openBlock, Fragment, createElementVNode, mergeProps, renderSlot, unref, isRef, withCtx, createSlots, renderList, normalizeProps, guardReactiveProps } 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 { isEmpty, useDoubleClick, suspectedWrapperPromise, identifyType, createExposeProxy, extractSlotsWithPrefix } from "qidian-shared";
|
|
4
|
+
import { isEmpty, useDoubleClick, suspectedWrapperPromise, identifyType, createExposeProxy, extractSlotsWithPrefix, hasOwn } from "qidian-shared";
|
|
5
5
|
import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
|
|
6
6
|
import { Select, Input, Space, Button } from "tdesign-vue-next";
|
|
7
7
|
import { useConfig } from "../config-provider/useConfig.mjs";
|
|
@@ -24,6 +24,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
24
24
|
},
|
|
25
25
|
__name: "index",
|
|
26
26
|
props: /* @__PURE__ */ mergeDefaults({
|
|
27
|
+
keys: {},
|
|
27
28
|
onCreate: {
|
|
28
29
|
type: Function
|
|
29
30
|
},
|
|
@@ -300,7 +301,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
300
301
|
creatable: {
|
|
301
302
|
type: Boolean
|
|
302
303
|
},
|
|
303
|
-
keys: {},
|
|
304
304
|
size: {},
|
|
305
305
|
valueType: {},
|
|
306
306
|
fillOptions: {},
|
|
@@ -442,7 +442,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
442
442
|
multiple,
|
|
443
443
|
readonly: tdReadonly.value,
|
|
444
444
|
disabled: tdDisabled.value,
|
|
445
|
-
keys
|
|
445
|
+
keys: keys ? {
|
|
446
|
+
...keys,
|
|
447
|
+
children: tableOptions.tree?.childrenKey
|
|
448
|
+
} : void 0,
|
|
446
449
|
valueType,
|
|
447
450
|
clearable,
|
|
448
451
|
placeholder,
|
|
@@ -480,6 +483,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
480
483
|
}
|
|
481
484
|
};
|
|
482
485
|
});
|
|
486
|
+
function cleanEmptyChildren(rows, childrenKey) {
|
|
487
|
+
if (!childrenKey) return rows;
|
|
488
|
+
return rows.map((row) => {
|
|
489
|
+
if (!hasOwn(row, childrenKey)) return row;
|
|
490
|
+
const {
|
|
491
|
+
[childrenKey]: _,
|
|
492
|
+
...rest
|
|
493
|
+
} = row;
|
|
494
|
+
return rest;
|
|
495
|
+
});
|
|
496
|
+
}
|
|
483
497
|
const handleSelectChange = useDoubleClick({
|
|
484
498
|
shouldReset: (rowKeys, options) => {
|
|
485
499
|
const change = lastRowKey !== options.currentRowKey;
|
|
@@ -487,10 +501,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
487
501
|
return change;
|
|
488
502
|
},
|
|
489
503
|
onSingleClick: (rowKeys, options) => {
|
|
490
|
-
latestSelectedRows = options.selectedRowData;
|
|
504
|
+
latestSelectedRows = cleanEmptyChildren(options.selectedRowData, reProps.value.tableOptions.tree?.childrenKey);
|
|
491
505
|
},
|
|
492
506
|
onDoubleClick: (rowKeys, options) => {
|
|
493
|
-
latestSelectedRows = options.selectedRowData;
|
|
507
|
+
latestSelectedRows = cleanEmptyChildren(options.selectedRowData, reProps.value.tableOptions.tree?.childrenKey);
|
|
494
508
|
handleConfirm();
|
|
495
509
|
}
|
|
496
510
|
});
|
|
@@ -596,7 +610,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
596
610
|
}
|
|
597
611
|
const fillOptionsWatchStop = watch(() => reProps.value.fillOptions, (fillOpts) => {
|
|
598
612
|
if (!fillOpts?.length) return;
|
|
599
|
-
selectedRows.value = fillOpts;
|
|
613
|
+
selectedRows.value = cleanEmptyChildren(fillOpts, reProps.value.tableOptions.tree?.childrenKey);
|
|
600
614
|
}, {
|
|
601
615
|
immediate: true,
|
|
602
616
|
deep: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-dialog-table-select/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-dialog-table-select\" v-bind=\"$attrs\" @click=\"openDialog\">\n <slot :selected-rows=\"selectedRows\">\n <t-select\n :class=\"[\n 'qd-dialog-table-select__trigger',\n reProps.selectOptions.readonly ? 'qd-dialog-table-select__trigger--readonly' : '',\n reProps.selectOptions.disabled ? 'qd-dialog-table-select__trigger--disabled' : ''\n ]\"\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n </slot>\n </div>\n\n <qd-dialog\n ref=\"dialog\"\n v-model:visible=\"visible\"\n :confirm-loading=\"confirmLoad\"\n v-bind=\"reProps.dialogOptions\"\n @confirm=\"handleConfirm\"\n >\n <qd-crud-table\n ref=\"table\"\n class=\"qd-dialog-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-dialog-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" autofocus v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-dialog-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </qd-dialog>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import { useVModels } from '@vueuse/core'\n import { get, merge } from 'lodash-es'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import {\n createExposeProxy,\n extractSlotsWithPrefix,\n identifyType,\n isEmpty,\n suspectedWrapperPromise,\n useDoubleClick\n } from 'qidian-shared'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import type {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import {\n Button as TButton,\n Input as TInput,\n Select as TSelect,\n Space as TSpace\n } from 'tdesign-vue-next'\n import { computed, reactive, ref, useTemplateRef, watch } from 'vue'\n\n import { useDisabled, useReadonly } from '../../hooks'\n import { useConfig } from '../config-provider/useConfig'\n import type { QdCrudTableInstanceFunctions, QdCrudTableProps } from '../crud'\n import { QdCrudTable } from '../crud'\n import type { QdDialogDone, QdDialogInstanceFunctions } from '../dialog'\n import { QdDialog } from '../dialog'\n import { qdServiceSelectKeys } from '../service-select/props'\n import {\n qdDialogTableSelectSearchGrid,\n qdServiceDialogProps,\n qdServiceDialogTableSelectProps\n } from './props'\n import type {\n QdServiceDialogTableSelectInstanceFunctions,\n QdServiceDialogTableSelectProps\n } from './types'\n\n defineOptions({\n name: 'QdServiceDialogTableSelect'\n })\n\n type Props = QdServiceDialogTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceDialogTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:visible': [Props['visible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const dialogRef = useTemplateRef<QdDialogInstanceFunctions>('dialog')\n const tableRef = useTemplateRef<QdCrudTableInstanceFunctions>('table')\n\n const confirmLoad = ref(false)\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n let latestSelectedRows: D[] = []\n let lastRowKey: string | number | undefined\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n visible,\n fillOptions,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n wrapper,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n onConfirm,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n onCancel,\n\n ...tableOptions\n } = props\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n const dialogOptions = merge(\n {},\n { ...qdServiceDialogProps, header: placeholder, onCancel },\n wrapper\n )\n const onBeforeOpen = dialogOptions.onBeforeOpen\n dialogOptions.onBeforeOpen = () => {\n onBeforeOpen?.()\n handleBeforeOpen()\n }\n const onClosed = dialogOptions.onClosed\n dialogOptions.onClosed = () => {\n onClosed?.()\n handleClosed()\n }\n\n return {\n creatable,\n fillOptions,\n selectOptions: {\n multiple,\n readonly: tdReadonly.value,\n disabled: tdDisabled.value,\n keys,\n valueType,\n clearable,\n placeholder,\n size\n },\n dialogOptions,\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n onConfirm,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const handleSelectChange = useDoubleClick<[(string | number)[], SelectOptions<D>]>({\n shouldReset: (rowKeys, options) => {\n const change = lastRowKey !== options.currentRowKey\n lastRowKey = options.currentRowKey\n return change\n },\n onSingleClick: (rowKeys, options) => {\n latestSelectedRows = options.selectedRowData\n },\n onDoubleClick: (rowKeys, options) => {\n latestSelectedRows = options.selectedRowData\n handleConfirm()\n }\n })\n\n async function handleConfirm(done?: QdDialogDone) {\n selectedRows.value = latestSelectedRows\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? latestSelectedRows.map((item) => get(item, valueKey))\n : get(latestSelectedRows[0], valueKey)\n } else {\n const rows = latestSelectedRows.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n const eventParams = [\n modelValue.value,\n {\n option: latestSelectedRows[latestSelectedRows.length - 1],\n selectedOptions: latestSelectedRows,\n trigger: 'check'\n }\n ] as const\n reProps.value.onChange?.(...eventParams)\n\n const onConfirm = reProps.value.onConfirm\n if (!onConfirm) {\n if (!done) visible.value = false\n return\n }\n\n if (!done) {\n confirmLoad.value = true\n const [err, res] = await suspectedWrapperPromise(\n onConfirm(...eventParams, (closed) => {\n visible.value = !closed\n })\n )\n confirmLoad.value = false\n if (err || res === false) return\n\n visible.value = false\n return\n }\n\n return onConfirm(...eventParams, done)\n }\n\n function openDialog() {\n const { selectOptions } = reProps.value\n if (selectOptions.readonly || selectOptions.disabled) return\n\n visible.value = true\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value, (closed: boolean) => {\n visible.value = !closed\n })\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n function handleBeforeOpen() {\n fillOptionsWatchStop?.()\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClosed() {\n if (addCustom.visible) cancelAddCustom()\n\n if (reProps.value.dialogOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n\n // 处理 fillOptions 合并逻辑\n const fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = fillOpts as D[]\n },\n { immediate: true, deep: true }\n )\n\n defineExpose(\n createExposeProxy({}, dialogRef, tableRef) as QdServiceDialogTableSelectInstanceFunctions\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dialog-table-select {\n width: 100%;\n\n &__trigger {\n width: 100%;\n\n &:not(&--readonly):not(&--disabled) {\n cursor: pointer;\n }\n }\n\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","visible","searchData","data","columnControllerVisible","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","dialogRef","useTemplateRef","tableRef","confirmLoad","ref","selectedRowKeys","selectedRows","latestSelectedRows","lastRowKey","addCustom","reactive","value","addConfirmDisabled","computed","isEmpty","reProps","fillOptions","wrapper","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","onConfirm","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","onCancel","tableOptions","addBtnOptions","merge","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","cancelAddCustom","addInputOptions","dialogOptions","qdServiceDialogProps","header","onBeforeOpen","handleBeforeOpen","onClosed","handleClosed","selectOptions","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","handleSelectChange","useDoubleClick","shouldReset","rowKeys","options","change","currentRowKey","onSingleClick","selectedRowData","onDoubleClick","handleConfirm","done","valueKey","labelKey","label","map","item","get","rows","eventParams","option","length","selectedOptions","trigger","err","res","suspectedWrapperPromise","closed","openDialog","handleClear","context","undefined","e","Object","assign","fillOptionsWatchStop","identifyType","destroyOnClose","watch","fillOpts","immediate","deep","__expose","createExposeProxy","_createElementVNode","_mergeProps","class","$attrs","_renderSlot","_ctx","$slots","_createVNode","_unref","$event","suffixIcon","SearchIcon","onSelectChange","_createSlots","_","_openBlock","_createElementBlock","_hoisted_1","_cache","autofocus","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-dialog-table-select/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-dialog-table-select\" v-bind=\"$attrs\" @click=\"openDialog\">\n <slot :selected-rows=\"selectedRows\">\n <t-select\n :class=\"[\n 'qd-dialog-table-select__trigger',\n reProps.selectOptions.readonly ? 'qd-dialog-table-select__trigger--readonly' : '',\n reProps.selectOptions.disabled ? 'qd-dialog-table-select__trigger--disabled' : ''\n ]\"\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n </slot>\n </div>\n\n <qd-dialog\n ref=\"dialog\"\n v-model:visible=\"visible\"\n :confirm-loading=\"confirmLoad\"\n v-bind=\"reProps.dialogOptions\"\n @confirm=\"handleConfirm\"\n >\n <qd-crud-table\n ref=\"table\"\n class=\"qd-dialog-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-dialog-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" autofocus v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-dialog-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </qd-dialog>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import { useVModels } from '@vueuse/core'\n import { get, merge } from 'lodash-es'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import {\n createExposeProxy,\n extractSlotsWithPrefix,\n hasOwn,\n identifyType,\n isEmpty,\n suspectedWrapperPromise,\n useDoubleClick\n } from 'qidian-shared'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import type {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import {\n Button as TButton,\n Input as TInput,\n Select as TSelect,\n Space as TSpace\n } from 'tdesign-vue-next'\n import { computed, reactive, ref, useTemplateRef, watch } from 'vue'\n\n import { useDisabled, useReadonly } from '../../hooks'\n import { useConfig } from '../config-provider/useConfig'\n import type { QdCrudTableInstanceFunctions, QdCrudTableProps } from '../crud'\n import { QdCrudTable } from '../crud'\n import type { QdDialogDone, QdDialogInstanceFunctions } from '../dialog'\n import { QdDialog } from '../dialog'\n import { qdServiceSelectKeys } from '../service-select/props'\n import {\n qdDialogTableSelectSearchGrid,\n qdServiceDialogProps,\n qdServiceDialogTableSelectProps\n } from './props'\n import type {\n QdServiceDialogTableSelectInstanceFunctions,\n QdServiceDialogTableSelectProps\n } from './types'\n\n defineOptions({\n name: 'QdServiceDialogTableSelect'\n })\n\n type Props = QdServiceDialogTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceDialogTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:visible': [Props['visible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const dialogRef = useTemplateRef<QdDialogInstanceFunctions>('dialog')\n const tableRef = useTemplateRef<QdCrudTableInstanceFunctions>('table')\n\n const confirmLoad = ref(false)\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n let latestSelectedRows: D[] = []\n let lastRowKey: string | number | undefined\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n visible,\n fillOptions,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n wrapper,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n onConfirm,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n onCancel,\n\n ...tableOptions\n } = props\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n const dialogOptions = merge(\n {},\n { ...qdServiceDialogProps, header: placeholder, onCancel },\n wrapper\n )\n const onBeforeOpen = dialogOptions.onBeforeOpen\n dialogOptions.onBeforeOpen = () => {\n onBeforeOpen?.()\n handleBeforeOpen()\n }\n const onClosed = dialogOptions.onClosed\n dialogOptions.onClosed = () => {\n onClosed?.()\n handleClosed()\n }\n\n return {\n creatable,\n fillOptions,\n selectOptions: {\n multiple,\n readonly: tdReadonly.value,\n disabled: tdDisabled.value,\n keys: keys ? { ...keys, children: tableOptions.tree?.childrenKey } : undefined,\n valueType,\n clearable,\n placeholder,\n size\n },\n dialogOptions,\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n onConfirm,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n visible,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n function cleanEmptyChildren(rows: D[], childrenKey: string | undefined): D[] {\n if (!childrenKey) return rows\n\n return rows.map((row) => {\n if (!hasOwn(row, childrenKey)) return row\n\n const { [childrenKey]: _, ...rest } = row\n return rest as D\n })\n }\n\n const handleSelectChange = useDoubleClick<[(string | number)[], SelectOptions<D>]>({\n shouldReset: (rowKeys, options) => {\n const change = lastRowKey !== options.currentRowKey\n lastRowKey = options.currentRowKey\n return change\n },\n onSingleClick: (rowKeys, options) => {\n latestSelectedRows = cleanEmptyChildren(\n options.selectedRowData,\n reProps.value.tableOptions.tree?.childrenKey\n )\n },\n onDoubleClick: (rowKeys, options) => {\n latestSelectedRows = cleanEmptyChildren(\n options.selectedRowData,\n reProps.value.tableOptions.tree?.childrenKey\n )\n handleConfirm()\n }\n })\n\n async function handleConfirm(done?: QdDialogDone) {\n selectedRows.value = latestSelectedRows\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? latestSelectedRows.map((item) => get(item, valueKey))\n : get(latestSelectedRows[0], valueKey)\n } else {\n const rows = latestSelectedRows.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n const eventParams = [\n modelValue.value,\n {\n option: latestSelectedRows[latestSelectedRows.length - 1],\n selectedOptions: latestSelectedRows,\n trigger: 'check'\n }\n ] as const\n reProps.value.onChange?.(...eventParams)\n\n const onConfirm = reProps.value.onConfirm\n if (!onConfirm) {\n if (!done) visible.value = false\n return\n }\n\n if (!done) {\n confirmLoad.value = true\n const [err, res] = await suspectedWrapperPromise(\n onConfirm(...eventParams, (closed) => {\n visible.value = !closed\n })\n )\n confirmLoad.value = false\n if (err || res === false) return\n\n visible.value = false\n return\n }\n\n return onConfirm(...eventParams, done)\n }\n\n function openDialog() {\n const { selectOptions } = reProps.value\n if (selectOptions.readonly || selectOptions.disabled) return\n\n visible.value = true\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value, (closed: boolean) => {\n visible.value = !closed\n })\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n function handleBeforeOpen() {\n fillOptionsWatchStop?.()\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClosed() {\n if (addCustom.visible) cancelAddCustom()\n\n if (reProps.value.dialogOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n\n // 处理 fillOptions 合并逻辑\n const fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = cleanEmptyChildren(\n fillOpts as D[],\n reProps.value.tableOptions.tree?.childrenKey\n )\n },\n { immediate: true, deep: true }\n )\n\n defineExpose(\n createExposeProxy({}, dialogRef, tableRef) as QdServiceDialogTableSelectInstanceFunctions\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-dialog-table-select {\n width: 100%;\n\n &__trigger {\n width: 100%;\n\n &:not(&--readonly):not(&--disabled) {\n cursor: pointer;\n }\n }\n\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","visible","searchData","data","columnControllerVisible","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","dialogRef","useTemplateRef","tableRef","confirmLoad","ref","selectedRowKeys","selectedRows","latestSelectedRows","lastRowKey","addCustom","reactive","value","addConfirmDisabled","computed","isEmpty","reProps","fillOptions","wrapper","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","onConfirm","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","onCancel","tableOptions","addBtnOptions","merge","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","cancelAddCustom","addInputOptions","dialogOptions","qdServiceDialogProps","header","onBeforeOpen","handleBeforeOpen","onClosed","handleClosed","selectOptions","children","tree","childrenKey","undefined","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","cleanEmptyChildren","rows","map","row","hasOwn","_","rest","handleSelectChange","useDoubleClick","shouldReset","rowKeys","options","change","currentRowKey","onSingleClick","selectedRowData","onDoubleClick","handleConfirm","done","valueKey","labelKey","label","item","get","eventParams","option","length","selectedOptions","trigger","err","res","suspectedWrapperPromise","closed","openDialog","handleClear","context","e","Object","assign","fillOptionsWatchStop","identifyType","destroyOnClose","watch","fillOpts","immediate","deep","__expose","createExposeProxy","_createElementVNode","_mergeProps","class","$attrs","_renderSlot","_ctx","$slots","_createVNode","_unref","$event","suffixIcon","SearchIcon","onSelectChange","_createSlots","_openBlock","_createElementBlock","_hoisted_1","_cache","autofocus","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName"],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { ServicePageParams, ServicePagination } from 'qidian-shared';
|
|
2
|
-
import type { SelectValue, SelectValueChangeTrigger, TableRowData, TdButtonProps, TdInputProps } from 'tdesign-vue-next';
|
|
2
|
+
import type { KeysType, SelectValue, SelectValueChangeTrigger, TableRowData, TdButtonProps, TdInputProps } from 'tdesign-vue-next';
|
|
3
3
|
import type { QdCrudTableInstanceFunctions, QdCrudTableProps } from '../crud';
|
|
4
4
|
import type { QdDialogInstanceFunctions, QdDialogProps } from '../dialog';
|
|
5
5
|
import type { QdDialogDone } from '../dialog';
|
|
6
6
|
import type { QdServiceSelectProps } from '../service-select';
|
|
7
|
-
export interface QdServiceDialogTableSelectProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination> extends Omit<QdCrudTableProps<D, R, P, TP, Pag>, 'add' | 'actions' | 'edit' | 'view' | 'del' | 'rowActions' | 'form' | 'selectedRowKeys' | 'activeRowKeys' | 'activeRowType' | 'rowKey' | 'selectType' | 'size' | 'reserveSelectedRowOnPaginate' | 'onAsyncLoadingClick' | 'onCellClick' | 'onChange' | 'onColumnChange' | 'onColumnControllerVisibleChange' | 'onDataChange' | 'onDisplayColumnsChange' | 'onDragSort' | 'onExpandChange' | 'onFilterChange' | 'onRowEdit' | 'onRowValidate' | 'onRowClick' | 'onRowDbClick' | 'onSelectChange' | 'onSortChange' | 'onValidate'>, Pick<QdServiceSelectProps<D, R, P, TP, Pag>, 'modelValue' | 'multiple' | 'readonly' | 'disabled' | 'placeholder' | 'clearable' | 'creatable' | '
|
|
7
|
+
export interface QdServiceDialogTableSelectProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination> extends Omit<QdCrudTableProps<D, R, P, TP, Pag>, 'add' | 'actions' | 'edit' | 'view' | 'del' | 'rowActions' | 'form' | 'selectedRowKeys' | 'activeRowKeys' | 'activeRowType' | 'rowKey' | 'selectType' | 'size' | 'reserveSelectedRowOnPaginate' | 'onAsyncLoadingClick' | 'onCellClick' | 'onChange' | 'onColumnChange' | 'onColumnControllerVisibleChange' | 'onDataChange' | 'onDisplayColumnsChange' | 'onDragSort' | 'onExpandChange' | 'onFilterChange' | 'onRowEdit' | 'onRowValidate' | 'onRowClick' | 'onRowDbClick' | 'onSelectChange' | 'onSortChange' | 'onValidate'>, Pick<QdServiceSelectProps<D, R, P, TP, Pag>, 'modelValue' | 'multiple' | 'readonly' | 'disabled' | 'placeholder' | 'clearable' | 'creatable' | 'size' | 'valueType' | 'fillOptions' | 'onClear' | 'onChange'>, Pick<QdDialogProps, 'onCancel'> {
|
|
8
|
+
keys?: KeysType;
|
|
8
9
|
onCreate?: (value: string | number | boolean, done: QdDialogDone) => void;
|
|
9
10
|
onConfirm?: (value: SelectValue, context: {
|
|
10
11
|
option?: D;
|
|
@@ -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-8bef20f2"]]);
|
|
8
8
|
export {
|
|
9
9
|
index as default
|
|
10
10
|
};
|
|
@@ -2,7 +2,7 @@ import './index2.css'
|
|
|
2
2
|
import './index.css'
|
|
3
3
|
import { defineComponent, mergeDefaults, useTemplateRef, ref, reactive, computed, watch, createVNode, onMounted, createBlock, openBlock, unref, mergeProps, isRef, withCtx, renderSlot, createSlots, renderList, createElementBlock, 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
|
-
import { isEmpty, identifyType, extractSlotsWithPrefix } from "qidian-shared";
|
|
5
|
+
import { isEmpty, identifyType, extractSlotsWithPrefix, hasOwn } from "qidian-shared";
|
|
6
6
|
import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
|
|
7
7
|
import { Popup, Select, Input, Space, Button } from "tdesign-vue-next";
|
|
8
8
|
import { useConfig } from "../config-provider/useConfig.mjs";
|
|
@@ -24,6 +24,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
24
24
|
},
|
|
25
25
|
__name: "index",
|
|
26
26
|
props: /* @__PURE__ */ mergeDefaults({
|
|
27
|
+
keys: {},
|
|
27
28
|
tableSize: {},
|
|
28
29
|
addBtn: {},
|
|
29
30
|
addConfirmBtn: {},
|
|
@@ -293,7 +294,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
293
294
|
creatable: {
|
|
294
295
|
type: Boolean
|
|
295
296
|
},
|
|
296
|
-
keys: {},
|
|
297
297
|
size: {},
|
|
298
298
|
valueType: {},
|
|
299
299
|
fillOptions: {},
|
|
@@ -450,7 +450,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
450
450
|
multiple,
|
|
451
451
|
readonly,
|
|
452
452
|
disabled,
|
|
453
|
-
keys
|
|
453
|
+
keys: keys ? {
|
|
454
|
+
...keys,
|
|
455
|
+
children: tableOptions.tree?.childrenKey
|
|
456
|
+
} : void 0,
|
|
454
457
|
valueType,
|
|
455
458
|
clearable,
|
|
456
459
|
placeholder,
|
|
@@ -486,8 +489,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
486
489
|
}
|
|
487
490
|
};
|
|
488
491
|
});
|
|
492
|
+
function cleanEmptyChildren(rows, childrenKey) {
|
|
493
|
+
if (!childrenKey) return rows;
|
|
494
|
+
return rows.map((row) => {
|
|
495
|
+
if (!hasOwn(row, childrenKey)) return row;
|
|
496
|
+
const {
|
|
497
|
+
[childrenKey]: _,
|
|
498
|
+
...rest
|
|
499
|
+
} = row;
|
|
500
|
+
return rest;
|
|
501
|
+
});
|
|
502
|
+
}
|
|
489
503
|
function handleSelectChange(rowKeys, options) {
|
|
490
|
-
selectedRows.value = options.selectedRowData;
|
|
504
|
+
selectedRows.value = cleanEmptyChildren(options.selectedRowData, reProps.value.tableOptions.tree?.childrenKey);
|
|
491
505
|
const {
|
|
492
506
|
selectOptions
|
|
493
507
|
} = reProps.value;
|
|
@@ -558,7 +572,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
558
572
|
}
|
|
559
573
|
const fillOptionsWatchStop = watch(() => reProps.value.fillOptions, (fillOpts) => {
|
|
560
574
|
if (!fillOpts?.length) return;
|
|
561
|
-
selectedRows.value = fillOpts;
|
|
575
|
+
selectedRows.value = cleanEmptyChildren(fillOpts, reProps.value.tableOptions.tree?.childrenKey);
|
|
562
576
|
}, {
|
|
563
577
|
immediate: true,
|
|
564
578
|
deep: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-popup-table-select/index.vue"],"sourcesContent":["<template>\n <t-popup v-model=\"popupVisible\" v-bind=\"reProps.popupOptions\">\n <slot :selected-rows=\"selectedRows\">\n <t-select\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n </slot>\n\n <template #content>\n <qd-crud-table\n ref=\"table\"\n class=\"qd-popup-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-popup-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" autofocus v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-popup-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" :add-custom=\"addCustom\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </template>\n </t-popup>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import { useVModels } from '@vueuse/core'\n import { get, merge } from 'lodash-es'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import { extractSlotsWithPrefix, identifyType, isEmpty } from 'qidian-shared'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import type {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import {\n Button as TButton,\n Input as TInput,\n Popup as TPopup,\n Select as TSelect,\n Space as TSpace\n } from 'tdesign-vue-next'\n import { computed, onMounted, reactive, ref, useTemplateRef, watch } from 'vue'\n\n import { useDisabled, useReadonly } from '../../hooks'\n import { useConfig } from '../config-provider/useConfig'\n import type { QdCrudTableInstanceFunctions, QdCrudTableProps } from '../crud'\n import { QdCrudTable } from '../crud'\n import { qdDialogTableSelectSearchGrid } from '../service-dialog-table-select/props'\n import { qdServiceSelectKeys } from '../service-select/props'\n import { qdServicePopupProps, qdServicePopupTableSelectProps } from './props'\n import type {\n QdServicePopupTableSelectInstanceFunctions,\n QdServicePopupTableSelectProps\n } from './types'\n\n defineOptions({\n name: 'QdServicePopupTableSelect'\n })\n\n type Props = QdServicePopupTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServicePopupTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:popupVisible': [Props['popupVisible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n popupVisible,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const tableRef = useTemplateRef<QdCrudTableInstanceFunctions>('table')\n\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n popupVisible,\n popupProps,\n fillOptions,\n searchData,\n data: inData,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n ...tableOptions\n } = props\n\n const rePopupOptions = merge(\n {},\n qdServicePopupProps,\n { trigger: 'click' } as const,\n popupProps,\n {\n disabled: tdDisabled.value || tdReadonly.value || popupProps?.disabled\n }\n )\n const onVisibleChange = rePopupOptions.onVisibleChange\n rePopupOptions.onVisibleChange = (visible, context) => {\n onVisibleChange?.(visible, context)\n\n if (visible) {\n fillOptionsWatchStop?.()\n handleOpen()\n } else {\n if (addCustom.visible) cancelAddCustom()\n if (reProps.value.popupOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n }\n\n let reOverlayClassName = rePopupOptions.overlayClassName\n if (!reOverlayClassName) {\n reOverlayClassName = 'qd-popup-table-select__overlay'\n } else if (typeof reOverlayClassName === 'string') {\n reOverlayClassName += ' qd-popup-table-select__overlay'\n } else if (identifyType(reOverlayClassName) === 'array') {\n reOverlayClassName.push('qd-popup-table-select__overlay')\n } else if (identifyType(reOverlayClassName) === 'object') {\n ;(\n reOverlayClassName as {\n [className: string]: any\n }\n )['qd-popup-table-select__overlay'] = true\n }\n\n rePopupOptions.overlayClassName = reOverlayClassName\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n return {\n creatable,\n fillOptions,\n popupOptions: rePopupOptions,\n selectOptions: {\n multiple,\n readonly,\n disabled,\n keys,\n valueType,\n clearable,\n placeholder,\n size\n },\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n popupVisible,\n searchData,\n data: inData,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n function handleSelectChange(rowKeys: (string | number)[], options: SelectOptions<D>) {\n selectedRows.value = options.selectedRowData\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? selectedRows.value.map((item) => get(item, valueKey))\n : get(selectedRows.value[0], valueKey)\n } else {\n const rows = selectedRows.value.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n reProps.value.onChange?.(modelValue.value, {\n option: selectedRows.value[selectedRows.value.length - 1] as D,\n selectedOptions: selectedRows.value as D[],\n trigger: 'check'\n })\n }\n\n function handleOpen() {\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value)\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n popupVisible.value = false\n reProps.value.popupOptions.onVisibleChange?.(popupVisible.value, {\n e,\n trigger: 'trigger-element-close'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n // 处理 fillOptions 合并逻辑\n const fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = fillOpts as D[]\n },\n { immediate: true, deep: true }\n )\n\n const expose = {} as QdServicePopupTableSelectInstanceFunctions\n\n onMounted(() => {\n Object.assign(expose, tableRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\">\n .qd-popup-table-select__overlay {\n width: min(960px, 100%);\n }\n</style>\n\n<style lang=\"less\" scoped>\n .qd-popup-table-select {\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","popupVisible","searchData","data","columnControllerVisible","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","tableRef","useTemplateRef","selectedRowKeys","ref","selectedRows","addCustom","reactive","visible","value","addConfirmDisabled","computed","isEmpty","reProps","popupProps","fillOptions","inData","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","tableOptions","rePopupOptions","merge","qdServicePopupProps","trigger","onVisibleChange","context","fillOptionsWatchStop","handleOpen","cancelAddCustom","popupOptions","destroyOnClose","reOverlayClassName","overlayClassName","identifyType","push","addBtnOptions","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","addInputOptions","selectOptions","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","handleSelectChange","rowKeys","options","selectedRowData","valueKey","labelKey","label","map","item","get","rows","option","length","selectedOptions","handleClear","undefined","e","Object","assign","watch","fillOpts","immediate","deep","expose","onMounted","__expose","_openBlock","_createBlock","_unref","_mergeProps","$event","_createVNode","class","onSelectChange","_createSlots","_","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_cache","autofocus","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName","suffixIcon","SearchIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/service-popup-table-select/index.vue"],"sourcesContent":["<template>\n <t-popup v-model=\"popupVisible\" v-bind=\"reProps.popupOptions\">\n <slot :selected-rows=\"selectedRows\">\n <t-select\n v-model=\"modelValue\"\n :options=\"selectedRows\"\n :popup-visible=\"false\"\n v-bind=\"reProps.selectOptions\"\n @clear=\"handleClear\"\n >\n <template #suffixIcon>\n <search-icon />\n </template>\n </t-select>\n </slot>\n\n <template #content>\n <qd-crud-table\n ref=\"table\"\n class=\"qd-popup-table-select__table\"\n v-model:search-data=\"searchData\"\n v-model:data=\"data\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"selectedRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:expanded-rowKeys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n reserve-selected-row-on-paginate\n active-row-type=\"multiple\"\n v-bind=\"reProps.tableOptions\"\n @select-change=\"handleSelectChange\"\n >\n <template v-if=\"reProps.creatable\" #table-bottom-content>\n <div v-if=\"addCustom.visible\" class=\"qd-popup-table-select__table-add\">\n <slot name=\"add-input\" :add-custom=\"addCustom\">\n <t-input v-model=\"addCustom.value\" autofocus v-bind=\"reProps.addInputOptions\" />\n </slot>\n\n <t-space size=\"small\">\n <slot name=\"add-confirm-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addConfirmBtnOptions\" />\n </slot>\n\n <slot name=\"add-cancel-btn\" :add-custom=\"addCustom\">\n <t-button v-bind=\"reProps.addCancelBtnOptions\" />\n </slot>\n </t-space>\n </div>\n\n <slot v-else name=\"add-btn\" :add-custom=\"addCustom\">\n <t-button class=\"qd-popup-table-select__table-add\" v-bind=\"reProps.addBtnOptions\" />\n </slot>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'table')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" :add-custom=\"addCustom\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-table>\n </template>\n </t-popup>\n</template>\n\n<script\n setup\n lang=\"tsx\"\n generic=\"\n D extends TableRowData = TableRowData,\n R = unknown,\n P = ServicePageParams,\n TP = P,\n Pag extends ServicePagination = ServicePagination\n \"\n>\n import { useVModels } from '@vueuse/core'\n import { get, merge } from 'lodash-es'\n import type { ServicePageParams, ServicePagination } from 'qidian-shared'\n import { extractSlotsWithPrefix, hasOwn, identifyType, isEmpty } from 'qidian-shared'\n import { AddIcon, SearchIcon } from 'tdesign-icons-vue-next'\n import type {\n SelectOptions,\n SelectValue,\n TableRowData,\n TdButtonProps,\n TdInputProps\n } from 'tdesign-vue-next'\n import {\n Button as TButton,\n Input as TInput,\n Popup as TPopup,\n Select as TSelect,\n Space as TSpace\n } from 'tdesign-vue-next'\n import { computed, onMounted, reactive, ref, useTemplateRef, watch } from 'vue'\n\n import { useDisabled, useReadonly } from '../../hooks'\n import { useConfig } from '../config-provider/useConfig'\n import type { QdCrudTableInstanceFunctions, QdCrudTableProps } from '../crud'\n import { QdCrudTable } from '../crud'\n import { qdDialogTableSelectSearchGrid } from '../service-dialog-table-select/props'\n import { qdServiceSelectKeys } from '../service-select/props'\n import { qdServicePopupProps, qdServicePopupTableSelectProps } from './props'\n import type {\n QdServicePopupTableSelectInstanceFunctions,\n QdServicePopupTableSelectProps\n } from './types'\n\n defineOptions({\n name: 'QdServicePopupTableSelect'\n })\n\n type Props = QdServicePopupTableSelectProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServicePopupTableSelectProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:popupVisible': [Props['popupVisible']]\n\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n modelValue,\n popupVisible,\n searchData,\n data,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('dialogTableSelect')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const tableRef = useTemplateRef<QdCrudTableInstanceFunctions>('table')\n\n const selectedRowKeys = ref<(string | number)[]>([])\n const selectedRows = ref<D[]>([])\n\n const addCustom = reactive({\n visible: false,\n value: ''\n })\n const addConfirmDisabled = computed(() => isEmpty(addCustom.value))\n\n const reProps = computed(() => {\n const {\n modelValue,\n popupVisible,\n popupProps,\n fillOptions,\n searchData,\n data: inData,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n readonly,\n\n multiple,\n disabled,\n keys,\n valueType,\n clearable,\n creatable,\n placeholder,\n size,\n\n onClear,\n onCreate,\n onChange,\n\n search,\n tableSize,\n\n addBtn,\n addConfirmBtn,\n addCancelBtn,\n addInput,\n\n ...tableOptions\n } = props\n\n const rePopupOptions = merge(\n {},\n qdServicePopupProps,\n { trigger: 'click' } as const,\n popupProps,\n {\n disabled: tdDisabled.value || tdReadonly.value || popupProps?.disabled\n }\n )\n const onVisibleChange = rePopupOptions.onVisibleChange\n rePopupOptions.onVisibleChange = (visible, context) => {\n onVisibleChange?.(visible, context)\n\n if (visible) {\n fillOptionsWatchStop?.()\n handleOpen()\n } else {\n if (addCustom.visible) cancelAddCustom()\n if (reProps.value.popupOptions.destroyOnClose) {\n data.value = []\n searchData.value = {}\n selectedRowKeys.value = []\n }\n }\n }\n\n let reOverlayClassName = rePopupOptions.overlayClassName\n if (!reOverlayClassName) {\n reOverlayClassName = 'qd-popup-table-select__overlay'\n } else if (typeof reOverlayClassName === 'string') {\n reOverlayClassName += ' qd-popup-table-select__overlay'\n } else if (identifyType(reOverlayClassName) === 'array') {\n reOverlayClassName.push('qd-popup-table-select__overlay')\n } else if (identifyType(reOverlayClassName) === 'object') {\n ;(\n reOverlayClassName as {\n [className: string]: any\n }\n )['qd-popup-table-select__overlay'] = true\n }\n\n rePopupOptions.overlayClassName = reOverlayClassName\n\n const addBtnOptions: TdButtonProps = merge(\n {},\n {\n block: true,\n theme: 'primary',\n variant: 'dashed',\n icon: () => <AddIcon />,\n content: t('addText'),\n onClick: () => {\n addCustom.visible = true\n }\n },\n typeof addBtn === 'string' ? { content: addBtn } : addBtn\n )\n\n const addConfirmBtnOptions: TdButtonProps = merge(\n {},\n {\n content: t('addConfirmText'),\n onClick: confirmAddCustom\n },\n typeof addConfirmBtn === 'string'\n ? { content: addConfirmBtn, disabled: addConfirmDisabled.value }\n : { ...addConfirmBtn, disabled: addConfirmDisabled.value || addConfirmBtn?.disabled }\n )\n\n const addCancelBtnOptions: TdButtonProps = merge(\n {},\n {\n variant: 'outline',\n content: t('addCancelText'),\n onClick: cancelAddCustom\n },\n typeof addCancelBtn === 'string' ? { content: addCancelBtn } : addCancelBtn\n )\n\n const addInputOptions: TdInputProps = merge(\n {},\n { clearable: true },\n typeof addInput === 'string' ? { placeholder: addInput } : addInput\n )\n\n return {\n creatable,\n fillOptions,\n popupOptions: rePopupOptions,\n selectOptions: {\n multiple,\n readonly,\n disabled,\n keys: keys ? { ...keys, children: tableOptions.tree?.childrenKey } : undefined,\n valueType,\n clearable,\n placeholder,\n size\n },\n tableOptions: {\n ...tableOptions,\n size: tableSize,\n search: {\n ...search,\n grid: merge({}, qdDialogTableSelectSearchGrid, search?.grid)\n },\n selectType: (multiple ? 'multiple' : 'single') as QdCrudTableProps['selectType'],\n rowKey: keys?.value || qdServiceSelectKeys.value\n },\n\n onClear,\n onCreate,\n onChange,\n\n addBtnOptions,\n addConfirmBtnOptions,\n addCancelBtnOptions,\n addInputOptions,\n\n models: {\n modelValue,\n popupVisible,\n searchData,\n data: inData,\n columnControllerVisible,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n function cleanEmptyChildren(rows: D[], childrenKey: string | undefined): D[] {\n if (!childrenKey) return rows\n\n return rows.map((row) => {\n if (!hasOwn(row, childrenKey)) return row\n\n const { [childrenKey]: _, ...rest } = row\n return rest as D\n })\n }\n\n function handleSelectChange(rowKeys: (string | number)[], options: SelectOptions<D>) {\n selectedRows.value = cleanEmptyChildren(\n options.selectedRowData,\n reProps.value.tableOptions.tree?.childrenKey\n )\n\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n const labelKey = selectOptions.keys?.label || qdServiceSelectKeys.label\n if (selectOptions.valueType === 'value') {\n modelValue.value = selectOptions.multiple\n ? selectedRows.value.map((item) => get(item, valueKey))\n : get(selectedRows.value[0], valueKey)\n } else {\n const rows = selectedRows.value.map((item) => ({\n [valueKey]: get(item, valueKey),\n [labelKey]: get(item, labelKey)\n }))\n modelValue.value = selectOptions.multiple ? rows : rows[0]\n }\n\n reProps.value.onChange?.(modelValue.value, {\n option: selectedRows.value[selectedRows.value.length - 1] as D,\n selectedOptions: selectedRows.value as D[],\n trigger: 'check'\n })\n }\n\n function handleOpen() {\n const { selectOptions } = reProps.value\n const valueKey = selectOptions.keys?.value || qdServiceSelectKeys.value\n if (identifyType(modelValue.value) === 'array') {\n selectedRowKeys.value = modelValue.value.map((item: (typeof modelValue.value)[number]) => {\n if (identifyType(item) === 'object') {\n return get(item, valueKey)\n }\n\n return item\n })\n } else if (identifyType(modelValue.value) === 'object') {\n selectedRowKeys.value = [get(modelValue.value, valueKey)]\n } else {\n selectedRowKeys.value = isEmpty(modelValue.value) ? [] : [modelValue.value]\n }\n }\n\n function handleClear(context: { e: MouseEvent }) {\n selectedRowKeys.value = []\n\n reProps.value.onChange?.(undefined as unknown as SelectValue, {\n e: context.e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'clear'\n })\n reProps.value.onClear?.(context)\n }\n\n function confirmAddCustom(e: MouseEvent) {\n reProps.value.onCreate?.(addCustom.value)\n reProps.value.onChange?.(addCustom.value, {\n e,\n option: null as unknown as D,\n selectedOptions: [],\n trigger: 'check'\n })\n popupVisible.value = false\n reProps.value.popupOptions.onVisibleChange?.(popupVisible.value, {\n e,\n trigger: 'trigger-element-close'\n })\n }\n\n function cancelAddCustom() {\n Object.assign(addCustom, {\n visible: false,\n value: ''\n })\n }\n\n // 处理 fillOptions 合并逻辑\n const fillOptionsWatchStop = watch(\n () => reProps.value.fillOptions,\n (fillOpts) => {\n if (!fillOpts?.length) return\n\n selectedRows.value = cleanEmptyChildren(\n fillOpts as D[],\n reProps.value.tableOptions.tree?.childrenKey\n )\n },\n { immediate: true, deep: true }\n )\n\n const expose = {} as QdServicePopupTableSelectInstanceFunctions\n\n onMounted(() => {\n Object.assign(expose, tableRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\">\n .qd-popup-table-select__overlay {\n width: min(960px, 100%);\n }\n</style>\n\n<style lang=\"less\" scoped>\n .qd-popup-table-select {\n &__table {\n :deep(.qd-crud) {\n &-search > .t-card__body,\n &-table__body > .t-card__body {\n padding: 0 !important;\n }\n\n &-table__toolbar {\n display: none;\n }\n }\n\n :deep(.qd-service-table) {\n margin-top: 0;\n }\n\n &-add {\n margin-top: var(--td-comp-margin-m);\n display: flex;\n\n .t-input__wrap {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-m);\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","modelValue","popupVisible","searchData","data","columnControllerVisible","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tdReadonly","useReadonly","tdDisabled","useDisabled","tableRef","useTemplateRef","selectedRowKeys","ref","selectedRows","addCustom","reactive","visible","value","addConfirmDisabled","computed","isEmpty","reProps","popupProps","fillOptions","inData","readonly","multiple","disabled","keys","valueType","clearable","creatable","placeholder","size","onClear","onCreate","onChange","search","tableSize","addBtn","addConfirmBtn","addCancelBtn","addInput","tableOptions","rePopupOptions","merge","qdServicePopupProps","trigger","onVisibleChange","context","fillOptionsWatchStop","handleOpen","cancelAddCustom","popupOptions","destroyOnClose","reOverlayClassName","overlayClassName","identifyType","push","addBtnOptions","block","theme","variant","icon","_createVNode2","AddIcon","content","onClick","addConfirmBtnOptions","confirmAddCustom","addCancelBtnOptions","addInputOptions","selectOptions","children","tree","childrenKey","undefined","grid","qdDialogTableSelectSearchGrid","selectType","rowKey","qdServiceSelectKeys","models","cleanEmptyChildren","rows","map","row","hasOwn","_","rest","handleSelectChange","rowKeys","options","selectedRowData","valueKey","labelKey","label","item","get","option","length","selectedOptions","handleClear","e","Object","assign","watch","fillOpts","immediate","deep","expose","onMounted","__expose","_openBlock","_createBlock","_unref","_mergeProps","$event","_createVNode","class","onSelectChange","_createSlots","_createElementBlock","_hoisted_1","_renderSlot","_ctx","$slots","_cache","autofocus","TSpace","TButton","_normalizeProps","_guardReactiveProps","extractSlotsWithPrefix","name","filterName","fn","_withCtx","slotProps","originalName","suffixIcon","SearchIcon"],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
.qd-popup-table-select__table[data-v-
|
|
2
|
-
.qd-popup-table-select__table[data-v-
|
|
1
|
+
.qd-popup-table-select__table[data-v-8bef20f2] .qd-crud-search > .t-card__body,
|
|
2
|
+
.qd-popup-table-select__table[data-v-8bef20f2] .qd-crud-table__body > .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-8bef20f2] .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-8bef20f2] .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-8bef20f2] {
|
|
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-8bef20f2] {
|
|
16
16
|
flex: 1 1 0;
|
|
17
17
|
overflow: hidden;
|
|
18
18
|
margin-right: var(--td-comp-margin-m);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ServicePageParams, ServicePagination } from 'qidian-shared';
|
|
2
|
-
import type { TableRowData, TdButtonProps, TdInputProps } from 'tdesign-vue-next';
|
|
2
|
+
import type { KeysType, TableRowData, TdButtonProps, TdInputProps } from 'tdesign-vue-next';
|
|
3
3
|
import type { QdCrudTableInstanceFunctions, QdCrudTableProps } from '../crud';
|
|
4
4
|
import type { QdServiceSelectProps } from '../service-select';
|
|
5
|
-
export interface QdServicePopupTableSelectProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination> extends Omit<QdCrudTableProps<D, R, P, TP, Pag>, 'add' | 'actions' | 'edit' | 'view' | 'del' | 'rowActions' | 'form' | 'selectedRowKeys' | 'activeRowKeys' | 'activeRowType' | 'rowKey' | 'selectType' | 'size' | 'reserveSelectedRowOnPaginate' | 'onAsyncLoadingClick' | 'onCellClick' | 'onChange' | 'onColumnChange' | 'onColumnControllerVisibleChange' | 'onDataChange' | 'onDisplayColumnsChange' | 'onDragSort' | 'onExpandChange' | 'onFilterChange' | 'onRowEdit' | 'onRowValidate' | 'onSelectChange' | 'onSortChange' | 'onValidate'>, Pick<QdServiceSelectProps<D, R, P, TP, Pag>, 'modelValue' | 'multiple' | 'readonly' | 'disabled' | 'placeholder' | 'clearable' | 'creatable' | '
|
|
5
|
+
export interface QdServicePopupTableSelectProps<D extends TableRowData = TableRowData, R = unknown, P = ServicePageParams, TP = P, Pag extends ServicePagination = ServicePagination> extends Omit<QdCrudTableProps<D, R, P, TP, Pag>, 'add' | 'actions' | 'edit' | 'view' | 'del' | 'rowActions' | 'form' | 'selectedRowKeys' | 'activeRowKeys' | 'activeRowType' | 'rowKey' | 'selectType' | 'size' | 'reserveSelectedRowOnPaginate' | 'onAsyncLoadingClick' | 'onCellClick' | 'onChange' | 'onColumnChange' | 'onColumnControllerVisibleChange' | 'onDataChange' | 'onDisplayColumnsChange' | 'onDragSort' | 'onExpandChange' | 'onFilterChange' | 'onRowEdit' | 'onRowValidate' | 'onSelectChange' | 'onSortChange' | 'onValidate'>, Pick<QdServiceSelectProps<D, R, P, TP, Pag>, 'modelValue' | 'multiple' | 'readonly' | 'disabled' | 'placeholder' | 'clearable' | 'creatable' | 'size' | 'valueType' | 'fillOptions' | 'popupVisible' | 'popupProps' | 'onClear' | 'onCreate' | 'onChange'> {
|
|
6
|
+
keys?: KeysType;
|
|
6
7
|
tableSize?: QdCrudTableProps['size'];
|
|
7
8
|
addBtn?: string | TdButtonProps | null;
|
|
8
9
|
addConfirmBtn?: string | TdButtonProps | null;
|