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.
@@ -1,27 +1,27 @@
1
- .qd-dialog-table-select[data-v-c1b8f770] {
1
+ .qd-dialog-table-select[data-v-04f2c56b] {
2
2
  width: 100%;
3
3
  }
4
- .qd-dialog-table-select__trigger[data-v-c1b8f770] {
4
+ .qd-dialog-table-select__trigger[data-v-04f2c56b] {
5
5
  width: 100%;
6
6
  }
7
- .qd-dialog-table-select__trigger[data-v-c1b8f770]:not(.qd-dialog-table-select__trigger--readonly):not(.qd-dialog-table-select__trigger--disabled) {
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-c1b8f770] .qd-crud-search > .t-card__body,
11
- .qd-dialog-table-select__table[data-v-c1b8f770] .qd-crud-table__body > .t-card__body {
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-c1b8f770] .qd-crud-table__toolbar {
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-c1b8f770] .qd-service-table {
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-c1b8f770] {
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-c1b8f770] {
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-c1b8f770"]]);
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' | 'keys' | 'size' | 'valueType' | 'fillOptions' | 'onClear' | 'onChange'>, Pick<QdDialogProps, 'onCancel'> {
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-b9835103"]]);
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-b9835103] .qd-crud-search > .t-card__body,
2
- .qd-popup-table-select__table[data-v-b9835103] .qd-crud-table__body > .t-card__body {
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-b9835103] .qd-crud-table__toolbar {
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-b9835103] .qd-service-table {
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-b9835103] {
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-b9835103] {
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' | 'keys' | 'size' | 'valueType' | 'fillOptions' | 'popupVisible' | 'popupProps' | 'onClear' | 'onCreate' | 'onChange'> {
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "1.2.73",
3
+ "version": "1.2.74",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",