qidian-vue-ui 1.2.5 → 1.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/components/crud/list/index.vue2.mjs +1 -1
  2. package/dist/components/crud/search/index.vue2.mjs +1 -1
  3. package/dist/components/crud/table/index.vue2.mjs +1 -1
  4. package/dist/components/dialog/form.vue.mjs +1 -1
  5. package/dist/components/dialog/index.vue.mjs +1 -1
  6. package/dist/components/dict/checkbox-group/index.vue2.mjs +1 -1
  7. package/dist/components/dict/radio-group/index.vue2.mjs +1 -1
  8. package/dist/components/dict/select/index.vue.mjs +1 -1
  9. package/dist/components/form/index.vue2.mjs +1 -1
  10. package/dist/components/import-dialog/index.vue.mjs +1 -1
  11. package/dist/components/md-editor/index.vue2.mjs +1 -1
  12. package/dist/components/office/pdf/index.vue2.mjs +1 -1
  13. package/dist/components/org/select/index.vue.mjs +1 -1
  14. package/dist/components/read-write/index.vue2.mjs +1 -1
  15. package/dist/components/service/list/index.vue2.mjs +1 -1
  16. package/dist/components/service/table/index.css +17 -2
  17. package/dist/components/service/table/index.vue.mjs +1 -1
  18. package/dist/components/service/table/index.vue2.mjs +91 -7
  19. package/dist/components/service/table/index.vue2.mjs.map +1 -1
  20. package/dist/components/service-dialog-table-select/index.vue2.mjs +1 -1
  21. package/dist/components/service-popup-table-select/index.vue2.mjs +1 -1
  22. package/dist/components/service-select/index.vue2.mjs +1 -1
  23. package/dist/components/upload/index.vue2.mjs +1 -1
  24. package/dist/hooks/usePerfectScrollbar.d.ts +3 -3
  25. package/dist/hooks/usePerfectScrollbar.mjs +48 -18
  26. package/dist/hooks/usePerfectScrollbar.mjs.map +1 -1
  27. package/dist/node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs +388 -0
  28. package/dist/node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs.map +1 -0
  29. package/dist/node_modules/.pnpm/{@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_ → @vueuse_shared@14.2.0_vue@3.5.26_typescript@5.9.3_}/node_modules/@vueuse/shared/dist/index.mjs +28 -2
  30. package/dist/node_modules/.pnpm/@vueuse_shared@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs.map +1 -0
  31. package/dist/styles/index.css +18 -6
  32. package/package.json +3 -3
  33. package/dist/node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs +0 -125
  34. package/dist/node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs.map +0 -1
  35. package/dist/node_modules/.pnpm/@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs.map +0 -1
@@ -2,7 +2,7 @@ import './index.css'
2
2
  import { defineComponent, mergeDefaults, computed, useTemplateRef, onMounted, createElementBlock, openBlock, normalizeClass, createCommentVNode, createVNode, createBlock, unref, mergeProps, isRef, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, nextTick } from "vue";
3
3
  import { extractSlotsWithPrefix } from "qidian-shared";
4
4
  import { Space } from "tdesign-vue-next";
5
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
+ 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";
6
6
  import { qdCrudListProps } from "./props.mjs";
7
7
  import QdCrudSearch from "../search/index.vue.mjs";
8
8
  import QdServiceList from "../../service/list/index.vue.mjs";
@@ -1,6 +1,6 @@
1
1
  import './index.css'
2
2
  import { defineComponent, mergeDefaults, useCssVars, computed, useTemplateRef, ref, onMounted, withDirectives, createBlock, openBlock, unref, createSlots, withCtx, createVNode, mergeProps, isRef, createCommentVNode, normalizeClass, createTextVNode, toDisplayString, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
3
- import { useVModel } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
3
+ import { useVModel } from "../../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
4
  import { Space, Button } from "tdesign-vue-next";
5
5
  import { ChevronDownIcon } from "tdesign-icons-vue-next";
6
6
  import { qdSearchGrid, qdCrudSearchProps } from "./props.mjs";
@@ -1,6 +1,6 @@
1
1
  import './index.css'
2
2
  import { defineComponent, mergeDefaults, computed, reactive, useTemplateRef, ref, onMounted, createElementBlock, openBlock, withDirectives, createCommentVNode, createVNode, createBlock, unref, mergeProps, isRef, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, vShow, createElementVNode, Fragment, withModifiers, nextTick, shallowRef, triggerRef } from "vue";
3
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
3
+ import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
4
  import { easyCopy, suspectedWrapperPromise, extractSlotsWithPrefix, isEmpty, generateRandomString, to } from "qidian-shared";
5
5
  import { qdCrudTableProps } from "./props.mjs";
6
6
  import { useConfig } from "../../config-provider/useConfig.mjs";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, mergeDefaults, useTemplateRef, ref, computed, createBlock, openBlock, mergeProps, unref, isRef, createSlots, withCtx, createVNode, renderList, renderSlot, normalizeProps, guardReactiveProps, createTextVNode, toDisplayString } from "vue";
2
2
  import { Button } from "tdesign-vue-next";
3
3
  import { qdDialogFormProps } from "./props.mjs";
4
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
+ import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { suspectedWrapperPromise, isEmpty, easyCopy, extractSlotsWithPrefix, extractSlotsWithoutPrefix } from "qidian-shared";
6
6
  import _sfc_main$1 from "./index.vue.mjs";
7
7
  /* empty css */
@@ -3,7 +3,7 @@ import { defineComponent, mergeDefaults, ref, computed, createBlock, openBlock,
3
3
  import { qdDialogProps } from "./props.mjs";
4
4
  import { Dialog } from "tdesign-vue-next";
5
5
  import { FullscreenExitIcon, FullscreenIcon } from "tdesign-icons-vue-next";
6
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
6
+ 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";
7
7
  import { suspectedWrapperPromise, filterSlots } from "qidian-shared";
8
8
  const _hoisted_1 = { key: 1 };
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -3,7 +3,7 @@ import { defineComponent, mergeDefaults, computed, toRef, withDirectives, create
3
3
  import { qdDictConvStrSeparator } from "../tag/props.mjs";
4
4
  import { qdDictCheckboxGroupProps } from "./props.mjs";
5
5
  import { CheckboxGroup, LoadingDirective } from "tdesign-vue-next";
6
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
6
+ 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";
7
7
  import { isEmpty } from "qidian-shared";
8
8
  import { useDictDynamic } from "../../../hooks/useDict/index.mjs";
9
9
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -2,7 +2,7 @@ import './index.css'
2
2
  import { defineComponent, mergeDefaults, toRef, computed, withDirectives, createBlock, openBlock, unref, mergeProps, isRef } from "vue";
3
3
  import { qdDictRadioGroupProps } from "./props.mjs";
4
4
  import { RadioGroup, LoadingDirective } from "tdesign-vue-next";
5
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
+ 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";
6
6
  import { useDictDynamic } from "../../../hooks/useDict/index.mjs";
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  ...{
@@ -2,7 +2,7 @@ import { defineComponent, mergeDefaults, computed, toRef, createBlock, openBlock
2
2
  import { qdDictConvStrSeparator } from "../tag/props.mjs";
3
3
  import { qdDictSelectProps } from "./props.mjs";
4
4
  import { Select } from "tdesign-vue-next";
5
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
+ 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";
6
6
  import { isEmpty } from "qidian-shared";
7
7
  import { useDictDynamic } from "../../../hooks/useDict/index.mjs";
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -5,7 +5,7 @@ import QdFormItem from "./item.vue.mjs";
5
5
  import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE, PROVIDE_FORM_RESET_QUEUE } from "./config.mjs";
6
6
  import { easyCopy, suspectedWrapperPromise, hasOwn, to } from "qidian-shared";
7
7
  import { qdFormGrid, qdFormProps } from "./props.mjs";
8
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
8
+ 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";
9
9
  import { useModal } from "../../hooks/useModal.mjs";
10
10
  import { useConfig } from "../config-provider/useConfig.mjs";
11
11
  import merge from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, mergeDefaults, computed, ref, createVNode, createBlock, openBlock, unref, isRef, isVNode } from "vue";
2
2
  import { Alert, Space, Button } from "tdesign-vue-next";
3
3
  import { qdImportDialogProps } from "./props.mjs";
4
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
+ import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { isEmpty, easyDownload, suspectedWrapperPromise } from "qidian-shared";
6
6
  import { useConfig } from "../config-provider/useConfig.mjs";
7
7
  import QdUpload from "../upload/index.vue.mjs";
@@ -2,7 +2,7 @@ import './index2.css'
2
2
  import './index.css'
3
3
  import { defineComponent, mergeDefaults, inject, ref, computed, useTemplateRef, onMounted, createBlock, openBlock, unref, mergeProps, isRef, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps } from "vue";
4
4
  import "../../node_modules/.pnpm/md-editor-v3@6.2.1_vue@3.5.26_typescript@5.9.3_/node_modules/md-editor-v3/lib/es/index.mjs";
5
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
+ 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";
6
6
  import { FormItemInjectionKey } from "../../node_modules/.pnpm/tdesign-vue-next@1.17.1_vue@3.5.26_typescript@5.9.3_/node_modules/tdesign-vue-next/es/form/consts/index.mjs";
7
7
  import { qdMdEditorToolbars, qdMdEditorProps } from "./props.mjs";
8
8
  import ve from "../../node_modules/.pnpm/md-editor-v3@6.2.1_vue@3.5.26_typescript@5.9.3_/node_modules/md-editor-v3/lib/es/MdEditor.mjs";
@@ -10,7 +10,7 @@ import { ADAPTIVE_VIEW, ZOOM_SCALE_LIMIT } from "./config.mjs";
10
10
  import { useZoom } from "./hooks/useZoom.mjs";
11
11
  import { useConfig } from "../../config-provider/useConfig.mjs";
12
12
  import { PROVIDE_OFFICE } from "../../config-provider/config.mjs";
13
- import { useDebounceFn } from "../../../node_modules/.pnpm/@vueuse_shared@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs";
13
+ import { useDebounceFn } from "../../../node_modules/.pnpm/@vueuse_shared@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/shared/dist/index.mjs";
14
14
  const _hoisted_1 = {
15
15
  key: 0,
16
16
  class: "qd-office-pdf__controls"
@@ -3,7 +3,7 @@ import { defineComponent, mergeDefaults, computed, inject, createBlock, openBloc
3
3
  import { Option } from "tdesign-vue-next";
4
4
  import { qdOrgSelectKeys, qdOrgSelectProps } from "./props.mjs";
5
5
  import { PROVIDE_ORG } from "../../config-provider/config.mjs";
6
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
6
+ 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";
7
7
  import { isEmpty } from "qidian-shared";
8
8
  import merge from "../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
9
9
  import get from "../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.mjs";
@@ -3,7 +3,7 @@ import { defineComponent, mergeDefaults, reactive, computed, createVNode, watch,
3
3
  import { qdReadWriteProps } from "./props.mjs";
4
4
  import { Loading, Input, Space, Button } from "tdesign-vue-next";
5
5
  import { Edit2Icon, CheckIcon, CloseIcon } from "tdesign-icons-vue-next";
6
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
6
+ 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";
7
7
  import { useTimer, isEmpty } from "qidian-shared";
8
8
  import { useReadonly } from "../../hooks/useReadonly.mjs";
9
9
  import { useDisabled } from "../../hooks/useDisabled.mjs";
@@ -3,7 +3,7 @@ import { defineComponent, mergeDefaults, useTemplateRef, computed, onMounted, on
3
3
  import { List, Empty, LoadingDirective } from "tdesign-vue-next";
4
4
  import { qdServiceListProps } from "./props.mjs";
5
5
  import { useServiceLoadMore, filterSlots } from "qidian-shared";
6
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
6
+ 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";
7
7
  import { useConfig } from "../../config-provider/useConfig.mjs";
8
8
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
9
  ...{
@@ -1,8 +1,23 @@
1
- .qd-service-table[data-v-1a791aae] {
1
+ .qd-service-table[data-v-a2319a6b] {
2
2
  height: 100%;
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  }
6
- .qd-service-table[data-v-1a791aae] > .t-table__content {
6
+ .qd-service-table[data-v-a2319a6b] > .t-table__content {
7
7
  flex: 1;
8
8
  }
9
+ .qd-service-table[data-v-a2319a6b] .t-table__affixed-header-elm-wrap {
10
+ box-sizing: content-box;
11
+ padding-bottom: 6px;
12
+ }
13
+ [data-v-a2319a6b]:not(.qd-service-table--content-ps-visible) .t-table__header.ps--active-x .ps__rail-x,[data-v-a2319a6b]:not(.qd-service-table--content-ps-visible) .t-table__affixed-header-elm.ps--active-x .ps__rail-x {
14
+ display: block;
15
+ }
16
+ .qd-service-table--content-ps-visible[data-v-a2319a6b] .t-table__header .ps__rail-x,
17
+ .qd-service-table--content-ps-visible[data-v-a2319a6b] .t-table__affixed-header-elm .ps__rail-x {
18
+ display: none;
19
+ }
20
+ .qd-service-table--inside-table-content[data-v-a2319a6b] .t-table__header.ps--active-x .ps__rail-x,
21
+ .qd-service-table--inside-table-content[data-v-a2319a6b] .t-table__affixed-header-elm.ps--active-x .ps__rail-x {
22
+ opacity: 0.9;
23
+ }
@@ -2,7 +2,7 @@ import './index.css'
2
2
  import _sfc_main from "./index.vue2.mjs";
3
3
  /* empty css */
4
4
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
5
- const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1a791aae"]]);
5
+ const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-a2319a6b"]]);
6
6
  export {
7
7
  QdServiceTable as default
8
8
  };
@@ -1,9 +1,9 @@
1
1
  import './index.css'
2
- import { defineComponent, mergeDefaults, useTemplateRef, ref, computed, createVNode, nextTick, watch, onMounted, onActivated, createBlock, openBlock, resolveDynamicComponent, unref, mergeProps, isRef, createSlots, withCtx, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
2
+ import { defineComponent, mergeDefaults, useTemplateRef, ref, computed, createVNode, nextTick, watch, onMounted, onActivated, onDeactivated, onBeforeUnmount, withDirectives, createBlock, openBlock, resolveDynamicComponent, unref, mergeProps, isRef, createSlots, withCtx, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
3
3
  import { EnhancedTable, Table, Empty } from "tdesign-vue-next";
4
- import { easyCopy, isEmpty, suspectedWrapperPromise, useServicePagination } from "qidian-shared";
4
+ import { easyCopy, isEmpty, suspectedWrapperPromise, useServicePagination, resizeDirective, getScrollEl } from "qidian-shared";
5
5
  import { qdServiceTableTreeConfig, qdServiceTableProps } from "./props.mjs";
6
- import { useVModels } from "../../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
6
+ import { useIntersectionObserver, useMouseInElement, 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";
7
7
  import { LoadingIcon, AddRectangleIcon, MinusRectangleIcon } from "tdesign-icons-vue-next";
8
8
  import { useConfig } from "../../config-provider/useConfig.mjs";
9
9
  import { usePerfectScrollbar } from "../../../hooks/usePerfectScrollbar.mjs";
@@ -315,6 +315,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
315
315
  } = useVModels(props, emit, {
316
316
  passive: true
317
317
  });
318
+ const vResize = resizeDirective;
318
319
  const {
319
320
  t
320
321
  } = useConfig("crud");
@@ -327,12 +328,68 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
327
328
  top: 0,
328
329
  left: 0
329
330
  };
330
- usePerfectScrollbar(() => tableRef.value?.$el.querySelector(".t-table__content"), {
331
+ const outsideScrollEl = ref(null);
332
+ const tableHeaderEl = ref(null);
333
+ const tableContentEl = ref(null);
334
+ const tableContentH = ref(0);
335
+ const tableContentVisible = ref(false);
336
+ const tableContentPsVisible = ref(false);
337
+ const isScrollSyncing = ref(false);
338
+ const {
339
+ ps: tableContentPs
340
+ } = usePerfectScrollbar(tableContentEl, {
331
341
  watch: {
332
342
  source: data,
333
343
  force: true
344
+ },
345
+ onScrollX: (evt) => {
346
+ if (isScrollSyncing.value) return;
347
+ if (!tableHeaderEl.value) return;
348
+ isScrollSyncing.value = true;
349
+ tableHeaderEl.value.scrollLeft = evt.target.scrollLeft;
350
+ requestAnimationFrame(() => {
351
+ isScrollSyncing.value = false;
352
+ });
334
353
  }
335
354
  });
355
+ usePerfectScrollbar(tableHeaderEl, {
356
+ suppressScrollY: true,
357
+ watch: {
358
+ source: data,
359
+ force: true
360
+ },
361
+ onScrollX: (evt) => {
362
+ if (isScrollSyncing.value) return;
363
+ if (!tableContentEl.value) return;
364
+ isScrollSyncing.value = true;
365
+ tableContentEl.value.scrollLeft = evt.target.scrollLeft;
366
+ requestAnimationFrame(() => {
367
+ isScrollSyncing.value = false;
368
+ });
369
+ }
370
+ });
371
+ const {
372
+ stop: tableContentPsStop,
373
+ pause: tableContentPsPause,
374
+ resume: tableContentPsResume
375
+ } = useIntersectionObserver(() => tableContentPs.value?.scrollbarX, ([entry]) => {
376
+ tableContentPsVisible.value = entry?.isIntersecting || false;
377
+ }, {
378
+ root: outsideScrollEl
379
+ });
380
+ const {
381
+ stop: tableContentStop,
382
+ pause: tableContentPause,
383
+ resume: tableContentResume
384
+ } = useIntersectionObserver(tableContentEl, ([entry]) => {
385
+ tableContentVisible.value = entry?.isIntersecting || false;
386
+ }, {
387
+ root: outsideScrollEl
388
+ });
389
+ const {
390
+ isOutside: isOutsideTableContent,
391
+ stop: outsideTableContentStop
392
+ } = useMouseInElement(tableContentEl);
336
393
  const reProps = computed(() => {
337
394
  const {
338
395
  service,
@@ -366,6 +423,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
366
423
  onScroll,
367
424
  onRowClick,
368
425
  bordered,
426
+ headerAffixedTop,
369
427
  ...tableOptions
370
428
  } = props;
371
429
  const reTableOptions = tableOptions;
@@ -516,6 +574,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
516
574
  scrollRecord.top = scrollTop;
517
575
  scrollRecord.left = scrollLeft;
518
576
  };
577
+ const reHeaderAffixedTop = outsideScrollEl.value && tableContentVisible.value ? Object.assign({
578
+ container: () => outsideScrollEl.value
579
+ }, headerAffixedTop) : headerAffixedTop;
519
580
  return {
520
581
  loadingWithData,
521
582
  tableOptions: {
@@ -526,6 +587,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
526
587
  tree: reTree,
527
588
  onScroll: reOnScroll,
528
589
  onRowClick,
590
+ headerAffixedTop: reHeaderAffixedTop,
529
591
  bordered: bordered ?? tableT("bordered") ?? true
530
592
  },
531
593
  externalLoad: loading2,
@@ -648,6 +710,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
648
710
  return keys;
649
711
  }, []);
650
712
  }
713
+ function onResize(entries) {
714
+ const el = entries[0].target;
715
+ outsideScrollEl.value = getScrollEl(el);
716
+ const headerEl = el.querySelector(".t-table__affixed-header-elm") || el.querySelector(".t-table__header");
717
+ tableHeaderEl.value = headerEl;
718
+ const contentEl = el.querySelector(".t-table__content");
719
+ tableContentEl.value = contentEl;
720
+ let contentH = 0;
721
+ if (contentEl) contentH = contentEl.clientHeight;
722
+ tableContentH.value = contentH;
723
+ }
651
724
  const expose = {
652
725
  data: serviceData,
653
726
  dataList,
@@ -692,12 +765,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
692
765
  });
693
766
  onActivated(() => {
694
767
  resumeScrollRecord();
768
+ tableContentPsResume();
769
+ tableContentResume();
770
+ });
771
+ onDeactivated(() => {
772
+ tableContentPsPause();
773
+ tableContentPause();
774
+ });
775
+ onBeforeUnmount(() => {
776
+ tableContentPsStop();
777
+ tableContentStop();
778
+ outsideTableContentStop();
695
779
  });
696
780
  __expose(expose);
697
781
  return (_ctx, _cache) => {
698
- return openBlock(), createBlock(resolveDynamicComponent(reProps.value.tableOptions.tree ? unref(EnhancedTable) : unref(Table)), mergeProps({
782
+ return withDirectives((openBlock(), createBlock(resolveDynamicComponent(reProps.value.tableOptions.tree ? unref(EnhancedTable) : unref(Table)), mergeProps({
699
783
  ref: "table",
700
- class: ["qd-service-table", __props.headerBg ? "" : "t-table--header-bg-inherit"],
784
+ class: ["qd-service-table", __props.headerBg ? "" : "t-table--header-bg-inherit", tableContentPsVisible.value ? "qd-service-table--content-ps-visible" : "", unref(isOutsideTableContent) ? "" : "qd-service-table--inside-table-content"],
701
785
  "selected-row-keys": unref(selectedRowKeys),
702
786
  "onUpdate:selectedRowKeys": _cache[0] || (_cache[0] = ($event) => isRef(selectedRowKeys) ? selectedRowKeys.value = $event : null),
703
787
  "active-row-keys": unref(activeRowKeys),
@@ -729,7 +813,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
729
813
  name,
730
814
  fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, name, normalizeProps(guardReactiveProps(slotProps)), void 0, true)])
731
815
  };
732
- })]), 1040, ["class", "selected-row-keys", "active-row-keys", "column-controller-visible", "display-columns", "expanded-row-keys", "filter-value", "sort", "expanded-tree-nodes", "loading", "data", "pagination"]);
816
+ })]), 1040, ["class", "selected-row-keys", "active-row-keys", "column-controller-visible", "display-columns", "expanded-row-keys", "filter-value", "sort", "expanded-tree-nodes", "loading", "data", "pagination"])), [[unref(vResize), onResize]]);
733
817
  };
734
818
  }
735
819
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/service/table/index.vue"],"sourcesContent":["<template>\n <component\n :is=\"reProps.tableOptions.tree ? TEnhancedTable : TTable\"\n ref=\"table\"\n :class=\"['qd-service-table', headerBg ? '' : 't-table--header-bg-inherit']\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"activeRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-row-keys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n v-bind=\"reProps.tableOptions\"\n :loading=\"tableLoad\"\n :data=\"data\"\n :pagination=\"rePagination\"\n >\n <template #empty>\n <t-empty class=\"qd-service-table__empty\" :title=\"t('emptyText')\" />\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </component>\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 type { ComponentPublicInstance } from 'vue'\n import type {\n TableRowData,\n TdEnhancedTableProps,\n EnhancedTableInstanceFunctions\n } from 'tdesign-vue-next'\n import type { ServicePageParams, ServicePageRes, ServicePagination } from 'qidian-shared'\n import type { QdServiceTableInstanceFunctions, QdServiceTableProps } from './types'\n import { computed, onMounted, useTemplateRef, ref, onActivated, watch, nextTick } from 'vue'\n import {\n Table as TTable,\n EnhancedTable as TEnhancedTable,\n Empty as TEmpty\n } from 'tdesign-vue-next'\n import { easyCopy, isEmpty, suspectedWrapperPromise, useServicePagination } from 'qidian-shared'\n import { qdServiceTableProps, qdServiceTableTreeConfig } from './props'\n import { useVModels } from '@vueuse/core'\n import { AddRectangleIcon, LoadingIcon, MinusRectangleIcon } from 'tdesign-icons-vue-next'\n import { useConfig } from '../../config-provider/useConfig'\n import { get } from 'lodash-es'\n import { usePerfectScrollbar } from '../../../hooks'\n\n defineOptions({\n name: 'QdServiceTable'\n })\n\n type Props = QdServiceTableProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceTableProps)\n const emit = defineEmits<{\n 'update:data': [Props['data']]\n 'update:selectedRowKeys': [Props['selectedRowKeys']]\n 'update:activeRowKeys': [Props['activeRowKeys']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, { passive: true })\n\n const { t } = useConfig('crud')\n const { t: tableT } = useConfig('table')\n const tableRef = useTemplateRef<EnhancedTableInstanceFunctions & ComponentPublicInstance>('table')\n const treeLoadIds = ref<(string | number)[]>([])\n const scrollRecord = { top: 0, left: 0 }\n\n usePerfectScrollbar(() => tableRef.value?.$el.querySelector('.t-table__content'), {\n watch: {\n source: data,\n force: true\n }\n })\n\n const reProps = computed(() => {\n const {\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n cacheKey,\n cacheTime,\n pollingInterval,\n onBefore,\n onAfter,\n onSuccess,\n onError,\n\n loadingWithData,\n\n loading,\n selectType,\n data,\n selectedRowKeys,\n activeRowKeys,\n columns,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n\n selectOnRowClick,\n expandOnRowClick,\n tree,\n onScroll,\n onRowClick,\n bordered,\n ...tableOptions\n } = props\n\n // 处理懒加载配置\n const reTableOptions = tableOptions as TdEnhancedTableProps<D>\n let reTransformRes = transformRes\n\n const reTree = tree ? { ...tree, ...easyCopy(qdServiceTableTreeConfig) } : tree\n\n if (reTree?.lazyLoad) {\n reTransformRes = async (res) => {\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(res))\n if (trErr) throw trErr\n\n temp = trRes\n } else {\n temp = res as ServicePageRes<D>\n }\n\n temp.records.forEach((item) => {\n if (item.children) return\n\n item.children = true as unknown as D[]\n })\n\n return temp\n }\n\n // 如果用户没有配置 treeExpandAndFoldIcon,生成默认的\n if (!tableOptions.treeExpandAndFoldIcon) {\n reTableOptions.treeExpandAndFoldIcon = (h, { row, type }) => {\n const children = row.children as unknown\n\n if (treeLoadIds.value.includes(row.id) && children === true) {\n return <LoadingIcon style={{ color: 'var(--td-brand-color)' }} />\n }\n\n if (children === true && row.__qdTreeLoaded) {\n return <AddRectangleIcon style={{ color: 'transparent', cursor: 'default' }} />\n }\n\n return type === 'expand' ? <AddRectangleIcon /> : <MinusRectangleIcon />\n }\n }\n\n // 如果用户没有配置 onExpandedTreeNodesChange,生成默认的\n if (!tableOptions.onExpandedTreeNodesChange) {\n reTableOptions.onExpandedTreeNodesChange = async (currentExpandedTreeNodes, options) => {\n const { row, rowState } = options\n if (!service || !row || !rowState) return\n\n const { level } = rowState\n const { __qdTreeLoaded } = row\n const { maxLevel } = reTree\n const id = row[props.rowKey || qdServiceTableProps.rowKey]\n\n // 如果已加载或达到最大层级,不再加载\n if (\n treeLoadIds.value.includes(id) ||\n __qdTreeLoaded ||\n isEmpty(level) ||\n (!isEmpty(maxLevel) && level! >= maxLevel!)\n ) {\n return\n }\n\n // 设置加载状态\n treeLoadIds.value.push(id)\n tableRef.value?.setData(id, { ...row, __qdTreeLoaded: true })\n\n const { transformParams, transformRes } = reTree\n\n const currentParams = options\n let tParams: TP | undefined\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n tParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(\n service(tParams || (currentParams as TP))\n )\n if (serviceErr) {\n removeTreeLoadId(id)\n throw serviceErr\n }\n\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes, options))\n if (trErr) {\n removeTreeLoadId(id)\n throw trErr\n }\n\n temp = trRes\n } else {\n temp = serviceRes as ServicePageRes<D>\n }\n\n removeTreeLoadId(id)\n if (!temp.records) temp.records = []\n if (isEmpty(temp.total)) temp.total = temp.records.length\n\n if (!temp.records.length) return\n\n const childrenKey = reTree.childrenKey || qdServiceTableTreeConfig.childrenKey\n tableRef.value?.setData(id, {\n ...row,\n __qdTreeLoaded: true,\n [childrenKey]: []\n })\n tableRef.value?.appendTo(\n id,\n temp.records.map((item) => {\n if (item.children) return item\n\n return {\n ...item,\n [childrenKey]: isEmpty(maxLevel) ? true : level! + 1 < maxLevel!\n }\n })\n )\n }\n }\n }\n\n const reColumns = columns || []\n if (selectType) {\n const selectIdx = reColumns.findIndex(\n (item) => item.type === 'single' || item.type === 'multiple'\n )\n const defaultSelect: (typeof reColumns)[number] = {\n colKey: 'row-select',\n type: selectType,\n align: 'center',\n width: 50\n }\n\n if (selectIdx > -1) {\n reColumns[selectIdx] = {\n ...defaultSelect,\n ...reColumns[selectIdx]\n }\n } else {\n reColumns.unshift(defaultSelect)\n }\n }\n\n const reSelectOnRowClick =\n selectOnRowClick ??\n (onRowClick ? undefined : !expandOnRowClick && !reTree?.expandTreeNodeOnClick)\n\n const reOnScroll: typeof onScroll = (params) => {\n onScroll?.(params)\n\n const target = params.e.target as HTMLElement\n if (!target) return\n\n const { scrollTop, scrollLeft } = target\n scrollRecord.top = scrollTop\n scrollRecord.left = scrollLeft\n }\n\n return {\n loadingWithData,\n tableOptions: {\n ...reTableOptions,\n\n columns: reColumns,\n selectOnRowClick: reSelectOnRowClick,\n expandOnRowClick,\n tree: reTree,\n onScroll: reOnScroll,\n onRowClick,\n bordered: bordered ?? tableT('bordered') ?? true\n } as unknown as TdEnhancedTableProps<TableRowData>,\n externalLoad: loading,\n serviceOptions: {\n service,\n manual,\n transformParams,\n transformRes: reTransformRes,\n pagination,\n cacheKey,\n cacheTime,\n pollingInterval,\n onBefore,\n onAfter,\n onSuccess,\n onError\n },\n models: {\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const {\n data: serviceData,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n current,\n pageSize,\n total,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = useServicePagination({\n ...reProps.value.serviceOptions,\n onSuccess: async (res) => {\n data.value = res.list\n\n if (reProps.value.tableOptions.tree?.defaultExpandAll) {\n tableRef.value?.foldAll()\n nextTick(() => {\n tableRef.value?.expandAll()\n })\n }\n reProps.value.serviceOptions.onSuccess?.(res)\n }\n })\n\n const tableLoad = computed<TdEnhancedTableProps['loading']>(() => {\n const { externalLoad, loadingWithData } = reProps.value\n if (externalLoad) return true\n if (!data.value?.length && firstLoad.value) return true\n if (manualTriggerLoad.value) {\n if (data.value?.length) {\n if (loadingWithData) return true\n return false\n }\n return true\n }\n\n return false\n })\n\n const rePagination = computed(() => {\n return !reProps.value.serviceOptions.service ||\n reProps.value.serviceOptions.pagination === false\n ? undefined\n : {\n current: current.value,\n pageSize: pageSize.value,\n total: total.value,\n pageSizeOptions: [5, 10, 20, 50, 100],\n onCurrentChange: changeCurrent,\n onPageSizeChange: changePageSize\n }\n })\n\n function removeTreeLoadId(id: (typeof treeLoadIds.value)[number]) {\n const index = treeLoadIds.value.findIndex((item) => item === id)\n if (index === -1) return\n\n treeLoadIds.value.splice(index, 1)\n }\n\n function resumeScrollRecord() {\n const el = tableRef.value?.$el\n if (!el) return\n\n // NOTE 暂时不考虑虚拟列表\n const scrollEl = el.querySelector('.t-table__content')\n if (!scrollEl) return\n\n const { scrollTop, scrollLeft } = scrollEl\n const { top, left } = scrollRecord\n if (top === scrollTop && left === scrollLeft) return\n\n scrollEl.scrollTo({ top, left })\n }\n\n function getAllColKeys(cols: typeof reProps.value.tableOptions.columns) {\n if (!cols) return []\n\n return cols.reduce((keys: string[], col) => {\n if (col.children && col.children.length > 0) {\n keys.push(...getAllColKeys(col.children))\n } else if (col.colKey) {\n keys.push(col.colKey)\n }\n return keys\n }, [])\n }\n\n const expose = {\n data: serviceData,\n dataList,\n tableLoad,\n firstLoad,\n manualTriggerLoad,\n loading,\n current,\n pageSize,\n total,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } as unknown as QdServiceTableInstanceFunctions<\n D,\n R,\n P,\n TP,\n Pag,\n typeof props.tree extends object ? true : false\n >\n\n watch(\n columnControllerVisible,\n (visible) => {\n const { columns } = reProps.value.tableOptions\n if (visible && !displayColumns.value && columns) {\n displayColumns.value = getAllColKeys(columns)\n }\n },\n { immediate: true }\n )\n\n onMounted(() => {\n if (props.tree) {\n Object.assign(expose, tableRef.value)\n } else {\n const getData: QdServiceTableInstanceFunctions<D, R, P, TP, Pag, false>['getData'] = (\n key\n ) => {\n return data.value.find(\n (item: D) => get(item, props.rowKey || qdServiceTableProps.rowKey) === key\n )\n }\n Object.assign(expose, tableRef.value, { getData })\n }\n })\n\n onActivated(() => {\n resumeScrollRecord()\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-service-table {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > :deep(.t-table__content) {\n flex: 1;\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","data","selectedRowKeys","activeRowKeys","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","t","useConfig","tableT","tableRef","useTemplateRef","treeLoadIds","ref","scrollRecord","top","left","usePerfectScrollbar","value","$el","querySelector","watch","source","force","reProps","computed","service","manual","transformParams","transformRes","pagination","cacheKey","cacheTime","pollingInterval","onBefore","onAfter","onSuccess","onError","loadingWithData","loading","selectType","columns","selectOnRowClick","expandOnRowClick","tree","onScroll","onRowClick","bordered","tableOptions","reTableOptions","reTransformRes","reTree","easyCopy","qdServiceTableTreeConfig","lazyLoad","res","temp","trErr","trRes","suspectedWrapperPromise","records","forEach","item","children","treeExpandAndFoldIcon","h","row","type","includes","id","_createVNode2","LoadingIcon","color","__qdTreeLoaded","AddRectangleIcon","cursor","MinusRectangleIcon","onExpandedTreeNodesChange","currentExpandedTreeNodes","options","rowState","level","maxLevel","rowKey","qdServiceTableProps","isEmpty","push","setData","currentParams","tParams","tpErr","tpRes","serviceErr","serviceRes","removeTreeLoadId","total","length","childrenKey","appendTo","map","reColumns","selectIdx","findIndex","defaultSelect","colKey","align","width","unshift","reSelectOnRowClick","undefined","expandTreeNodeOnClick","reOnScroll","params","target","e","scrollTop","scrollLeft","externalLoad","serviceOptions","models","serviceData","dataList","firstLoad","manualTriggerLoad","current","pageSize","changeCurrent","changePageSize","changePagination","runAsync","run","cancel","refresh","refreshAsync","mutate","useServicePagination","list","defaultExpandAll","foldAll","nextTick","expandAll","tableLoad","rePagination","pageSizeOptions","onCurrentChange","onPageSizeChange","index","splice","resumeScrollRecord","el","scrollEl","scrollTo","getAllColKeys","cols","reduce","keys","col","expose","visible","immediate","onMounted","Object","assign","getData","key","find","get","onActivated","__expose","_createBlock","_resolveDynamicComponent","_unref","TEnhancedTable","TTable","_mergeProps","class","headerBg","$event","empty","_createVNode","TEmpty","title","$slots","_","name","fn","_withCtx","slotProps","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../../src/components/service/table/index.vue"],"sourcesContent":["<template>\n <component\n :is=\"reProps.tableOptions.tree ? TEnhancedTable : TTable\"\n ref=\"table\"\n :class=\"[\n 'qd-service-table',\n headerBg ? '' : 't-table--header-bg-inherit',\n tableContentPsVisible ? 'qd-service-table--content-ps-visible' : '',\n isOutsideTableContent ? '' : 'qd-service-table--inside-table-content'\n ]\"\n v-resize=\"onResize\"\n v-model:selected-row-keys=\"selectedRowKeys\"\n v-model:active-row-keys=\"activeRowKeys\"\n v-model:column-controller-visible=\"columnControllerVisible\"\n v-model:display-columns=\"displayColumns\"\n v-model:expanded-row-keys=\"expandedRowKeys\"\n v-model:filter-value=\"filterValue\"\n v-model:sort=\"sort\"\n v-model:expanded-tree-nodes=\"expandedTreeNodes\"\n v-bind=\"reProps.tableOptions\"\n :loading=\"tableLoad\"\n :data=\"data\"\n :pagination=\"rePagination\"\n >\n <template #empty>\n <t-empty class=\"qd-service-table__empty\" :title=\"t('emptyText')\" />\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </component>\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 type { ComponentPublicInstance } from 'vue'\n import type {\n TableRowData,\n TdEnhancedTableProps,\n EnhancedTableInstanceFunctions\n } from 'tdesign-vue-next'\n import type { ServicePageParams, ServicePageRes, ServicePagination } from 'qidian-shared'\n import type { QdServiceTableInstanceFunctions, QdServiceTableProps } from './types'\n import {\n computed,\n onMounted,\n useTemplateRef,\n ref,\n onActivated,\n watch,\n nextTick,\n onDeactivated,\n onBeforeUnmount\n } from 'vue'\n import {\n Table as TTable,\n EnhancedTable as TEnhancedTable,\n Empty as TEmpty\n } from 'tdesign-vue-next'\n import { easyCopy, isEmpty, suspectedWrapperPromise, useServicePagination } from 'qidian-shared'\n import { qdServiceTableProps, qdServiceTableTreeConfig } from './props'\n import { useIntersectionObserver, useMouseInElement, useVModels } from '@vueuse/core'\n import { AddRectangleIcon, LoadingIcon, MinusRectangleIcon } from 'tdesign-icons-vue-next'\n import { useConfig } from '../../config-provider/useConfig'\n import { get } from 'lodash-es'\n import { usePerfectScrollbar } from '../../../hooks'\n import { getScrollEl, resizeDirective } from 'qidian-shared'\n\n defineOptions({\n name: 'QdServiceTable'\n })\n\n type Props = QdServiceTableProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdServiceTableProps)\n const emit = defineEmits<{\n 'update:data': [Props['data']]\n 'update:selectedRowKeys': [Props['selectedRowKeys']]\n 'update:activeRowKeys': [Props['activeRowKeys']]\n 'update:columnControllerVisible': [Props['columnControllerVisible']]\n 'update:displayColumns': [Props['displayColumns']]\n 'update:expandedRowKeys': [Props['expandedRowKeys']]\n 'update:filterValue': [Props['filterValue']]\n 'update:sort': [Props['sort']]\n 'update:expandedTreeNodes': [Props['expandedTreeNodes']]\n }>()\n const {\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n } = useVModels<typeof props, keyof typeof emit>(props, emit, { passive: true })\n\n const vResize = resizeDirective\n const { t } = useConfig('crud')\n const { t: tableT } = useConfig('table')\n const tableRef = useTemplateRef<EnhancedTableInstanceFunctions & ComponentPublicInstance>('table')\n const treeLoadIds = ref<(string | number)[]>([])\n\n const scrollRecord = { top: 0, left: 0 }\n const outsideScrollEl = ref<HTMLElement | null>(null)\n const tableHeaderEl = ref<HTMLElement | null>(null)\n const tableContentEl = ref<HTMLElement | null>(null)\n const tableContentH = ref(0)\n const tableContentVisible = ref(false)\n const tableContentPsVisible = ref(false)\n const isScrollSyncing = ref(false)\n\n const { ps: tableContentPs } = usePerfectScrollbar(tableContentEl, {\n watch: {\n source: data,\n force: true\n },\n onScrollX: (evt) => {\n if (isScrollSyncing.value) return\n if (!tableHeaderEl.value) return\n\n isScrollSyncing.value = true\n tableHeaderEl.value.scrollLeft = (evt.target as HTMLElement).scrollLeft\n requestAnimationFrame(() => {\n isScrollSyncing.value = false\n })\n }\n })\n\n usePerfectScrollbar(tableHeaderEl, {\n suppressScrollY: true,\n watch: {\n source: data,\n force: true\n },\n onScrollX: (evt) => {\n if (isScrollSyncing.value) return\n if (!tableContentEl.value) return\n\n isScrollSyncing.value = true\n tableContentEl.value.scrollLeft = (evt.target as HTMLElement).scrollLeft\n requestAnimationFrame(() => {\n isScrollSyncing.value = false\n })\n }\n })\n\n const {\n stop: tableContentPsStop,\n pause: tableContentPsPause,\n resume: tableContentPsResume\n } = useIntersectionObserver(\n () => tableContentPs.value?.scrollbarX,\n ([entry]) => {\n tableContentPsVisible.value = entry?.isIntersecting || false\n },\n {\n root: outsideScrollEl\n }\n )\n\n const {\n stop: tableContentStop,\n pause: tableContentPause,\n resume: tableContentResume\n } = useIntersectionObserver(\n tableContentEl,\n ([entry]) => {\n tableContentVisible.value = entry?.isIntersecting || false\n },\n {\n root: outsideScrollEl\n }\n )\n\n const { isOutside: isOutsideTableContent, stop: outsideTableContentStop } =\n useMouseInElement(tableContentEl)\n\n const reProps = computed(() => {\n const {\n service,\n manual,\n transformParams,\n transformRes,\n pagination,\n cacheKey,\n cacheTime,\n pollingInterval,\n onBefore,\n onAfter,\n onSuccess,\n onError,\n\n loadingWithData,\n\n loading,\n selectType,\n data,\n selectedRowKeys,\n activeRowKeys,\n columns,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes,\n\n selectOnRowClick,\n expandOnRowClick,\n tree,\n onScroll,\n onRowClick,\n bordered,\n headerAffixedTop,\n ...tableOptions\n } = props\n\n // 处理懒加载配置\n const reTableOptions = tableOptions as TdEnhancedTableProps<D>\n let reTransformRes = transformRes\n\n const reTree = tree ? { ...tree, ...easyCopy(qdServiceTableTreeConfig) } : tree\n\n if (reTree?.lazyLoad) {\n reTransformRes = async (res) => {\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(res))\n if (trErr) throw trErr\n\n temp = trRes\n } else {\n temp = res as ServicePageRes<D>\n }\n\n temp.records.forEach((item) => {\n if (item.children) return\n\n item.children = true as unknown as D[]\n })\n\n return temp\n }\n\n // 如果用户没有配置 treeExpandAndFoldIcon,生成默认的\n if (!tableOptions.treeExpandAndFoldIcon) {\n reTableOptions.treeExpandAndFoldIcon = (h, { row, type }) => {\n const children = row.children as unknown\n\n if (treeLoadIds.value.includes(row.id) && children === true) {\n return <LoadingIcon style={{ color: 'var(--td-brand-color)' }} />\n }\n\n if (children === true && row.__qdTreeLoaded) {\n return <AddRectangleIcon style={{ color: 'transparent', cursor: 'default' }} />\n }\n\n return type === 'expand' ? <AddRectangleIcon /> : <MinusRectangleIcon />\n }\n }\n\n // 如果用户没有配置 onExpandedTreeNodesChange,生成默认的\n if (!tableOptions.onExpandedTreeNodesChange) {\n reTableOptions.onExpandedTreeNodesChange = async (currentExpandedTreeNodes, options) => {\n const { row, rowState } = options\n if (!service || !row || !rowState) return\n\n const { level } = rowState\n const { __qdTreeLoaded } = row\n const { maxLevel } = reTree\n const id = row[props.rowKey || qdServiceTableProps.rowKey]\n\n // 如果已加载或达到最大层级,不再加载\n if (\n treeLoadIds.value.includes(id) ||\n __qdTreeLoaded ||\n isEmpty(level) ||\n (!isEmpty(maxLevel) && level! >= maxLevel!)\n ) {\n return\n }\n\n // 设置加载状态\n treeLoadIds.value.push(id)\n tableRef.value?.setData(id, { ...row, __qdTreeLoaded: true })\n\n const { transformParams, transformRes } = reTree\n\n const currentParams = options\n let tParams: TP | undefined\n\n if (transformParams) {\n const [tpErr, tpRes] = await suspectedWrapperPromise(transformParams(currentParams))\n if (tpErr) throw tpErr\n tParams = tpRes\n }\n\n const [serviceErr, serviceRes] = await suspectedWrapperPromise(\n service(tParams || (currentParams as TP))\n )\n if (serviceErr) {\n removeTreeLoadId(id)\n throw serviceErr\n }\n\n let temp: ServicePageRes<D> | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes, options))\n if (trErr) {\n removeTreeLoadId(id)\n throw trErr\n }\n\n temp = trRes\n } else {\n temp = serviceRes as ServicePageRes<D>\n }\n\n removeTreeLoadId(id)\n if (!temp.records) temp.records = []\n if (isEmpty(temp.total)) temp.total = temp.records.length\n\n if (!temp.records.length) return\n\n const childrenKey = reTree.childrenKey || qdServiceTableTreeConfig.childrenKey\n tableRef.value?.setData(id, {\n ...row,\n __qdTreeLoaded: true,\n [childrenKey]: []\n })\n tableRef.value?.appendTo(\n id,\n temp.records.map((item) => {\n if (item.children) return item\n\n return {\n ...item,\n [childrenKey]: isEmpty(maxLevel) ? true : level! + 1 < maxLevel!\n }\n })\n )\n }\n }\n }\n\n const reColumns = columns || []\n if (selectType) {\n const selectIdx = reColumns.findIndex(\n (item) => item.type === 'single' || item.type === 'multiple'\n )\n const defaultSelect: (typeof reColumns)[number] = {\n colKey: 'row-select',\n type: selectType,\n align: 'center',\n width: 50\n }\n\n if (selectIdx > -1) {\n reColumns[selectIdx] = {\n ...defaultSelect,\n ...reColumns[selectIdx]\n }\n } else {\n reColumns.unshift(defaultSelect)\n }\n }\n\n const reSelectOnRowClick =\n selectOnRowClick ??\n (onRowClick ? undefined : !expandOnRowClick && !reTree?.expandTreeNodeOnClick)\n\n const reOnScroll: typeof onScroll = (params) => {\n onScroll?.(params)\n\n const target = params.e.target as HTMLElement\n if (!target) return\n\n const { scrollTop, scrollLeft } = target\n scrollRecord.top = scrollTop\n scrollRecord.left = scrollLeft\n }\n\n const reHeaderAffixedTop =\n outsideScrollEl.value && tableContentVisible.value\n ? Object.assign({ container: () => outsideScrollEl.value }, headerAffixedTop)\n : headerAffixedTop\n\n return {\n loadingWithData,\n tableOptions: {\n ...reTableOptions,\n\n columns: reColumns,\n selectOnRowClick: reSelectOnRowClick,\n expandOnRowClick,\n tree: reTree,\n onScroll: reOnScroll,\n onRowClick,\n headerAffixedTop: reHeaderAffixedTop,\n bordered: bordered ?? tableT('bordered') ?? true\n } as unknown as TdEnhancedTableProps<TableRowData>,\n externalLoad: loading,\n serviceOptions: {\n service,\n manual,\n transformParams,\n transformRes: reTransformRes,\n pagination,\n cacheKey,\n cacheTime,\n pollingInterval,\n onBefore,\n onAfter,\n onSuccess,\n onError\n },\n models: {\n data,\n selectedRowKeys,\n activeRowKeys,\n columnControllerVisible,\n displayColumns,\n expandedRowKeys,\n filterValue,\n sort,\n expandedTreeNodes\n }\n }\n })\n\n const {\n data: serviceData,\n dataList,\n firstLoad,\n manualTriggerLoad,\n loading,\n current,\n pageSize,\n total,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } = useServicePagination({\n ...reProps.value.serviceOptions,\n onSuccess: async (res) => {\n data.value = res.list\n\n if (reProps.value.tableOptions.tree?.defaultExpandAll) {\n tableRef.value?.foldAll()\n nextTick(() => {\n tableRef.value?.expandAll()\n })\n }\n reProps.value.serviceOptions.onSuccess?.(res)\n }\n })\n\n const tableLoad = computed<TdEnhancedTableProps['loading']>(() => {\n const { externalLoad, loadingWithData } = reProps.value\n if (externalLoad) return true\n if (!data.value?.length && firstLoad.value) return true\n if (manualTriggerLoad.value) {\n if (data.value?.length) {\n if (loadingWithData) return true\n return false\n }\n return true\n }\n\n return false\n })\n\n const rePagination = computed(() => {\n return !reProps.value.serviceOptions.service ||\n reProps.value.serviceOptions.pagination === false\n ? undefined\n : {\n current: current.value,\n pageSize: pageSize.value,\n total: total.value,\n pageSizeOptions: [5, 10, 20, 50, 100],\n onCurrentChange: changeCurrent,\n onPageSizeChange: changePageSize\n }\n })\n\n function removeTreeLoadId(id: (typeof treeLoadIds.value)[number]) {\n const index = treeLoadIds.value.findIndex((item) => item === id)\n if (index === -1) return\n\n treeLoadIds.value.splice(index, 1)\n }\n\n function resumeScrollRecord() {\n const el = tableRef.value?.$el\n if (!el) return\n\n // NOTE 暂时不考虑虚拟列表以及外层滚动\n const scrollEl = el.querySelector('.t-table__content')\n if (!scrollEl) return\n\n const { scrollTop, scrollLeft } = scrollEl\n const { top, left } = scrollRecord\n if (top === scrollTop && left === scrollLeft) return\n\n scrollEl.scrollTo({ top, left })\n }\n\n function getAllColKeys(cols: typeof reProps.value.tableOptions.columns) {\n if (!cols) return []\n\n return cols.reduce((keys: string[], col) => {\n if (col.children && col.children.length > 0) {\n keys.push(...getAllColKeys(col.children))\n } else if (col.colKey) {\n keys.push(col.colKey)\n }\n return keys\n }, [])\n }\n\n function onResize(entries: ResizeObserverEntry[]) {\n const el = entries[0].target as HTMLElement\n outsideScrollEl.value = getScrollEl(el as HTMLElement)\n\n const headerEl =\n el.querySelector('.t-table__affixed-header-elm') || el.querySelector('.t-table__header')\n tableHeaderEl.value = headerEl as typeof tableHeaderEl.value\n\n const contentEl = el.querySelector('.t-table__content')\n tableContentEl.value = contentEl as typeof tableContentEl.value\n let contentH = 0\n if (contentEl) contentH = contentEl.clientHeight\n tableContentH.value = contentH\n }\n\n const expose = {\n data: serviceData,\n dataList,\n tableLoad,\n firstLoad,\n manualTriggerLoad,\n loading,\n current,\n pageSize,\n total,\n changeCurrent,\n changePageSize,\n changePagination,\n runAsync,\n run,\n cancel,\n refresh,\n refreshAsync,\n mutate\n } as unknown as QdServiceTableInstanceFunctions<\n D,\n R,\n P,\n TP,\n Pag,\n typeof props.tree extends object ? true : false\n >\n\n watch(\n columnControllerVisible,\n (visible) => {\n const { columns } = reProps.value.tableOptions\n if (visible && !displayColumns.value && columns) {\n displayColumns.value = getAllColKeys(columns)\n }\n },\n { immediate: true }\n )\n\n onMounted(() => {\n if (props.tree) {\n Object.assign(expose, tableRef.value)\n } else {\n const getData: QdServiceTableInstanceFunctions<D, R, P, TP, Pag, false>['getData'] = (\n key\n ) => {\n return data.value.find(\n (item: D) => get(item, props.rowKey || qdServiceTableProps.rowKey) === key\n )\n }\n Object.assign(expose, tableRef.value, { getData })\n }\n })\n\n onActivated(() => {\n resumeScrollRecord()\n tableContentPsResume()\n tableContentResume()\n })\n\n onDeactivated(() => {\n tableContentPsPause()\n tableContentPause()\n })\n\n onBeforeUnmount(() => {\n tableContentPsStop()\n tableContentStop()\n outsideTableContentStop()\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-service-table {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n & > :deep(.t-table__content) {\n flex: 1;\n }\n\n :deep(.t-table__affixed-header-elm-wrap) {\n box-sizing: content-box;\n padding-bottom: 6px;\n }\n\n :not(&--content-ps-visible) {\n :deep(.t-table__header.ps--active-x),\n :deep(.t-table__affixed-header-elm.ps--active-x) {\n .ps__rail-x {\n display: block;\n }\n }\n }\n\n &--content-ps-visible {\n :deep(.t-table__header),\n :deep(.t-table__affixed-header-elm) {\n .ps__rail-x {\n display: none;\n }\n }\n }\n\n &--inside-table-content {\n :deep(.t-table__header.ps--active-x),\n :deep(.t-table__affixed-header-elm.ps--active-x) {\n .ps__rail-x {\n opacity: 0.9;\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","data","selectedRowKeys","activeRowKeys","columnControllerVisible","displayColumns","expandedRowKeys","filterValue","sort","expandedTreeNodes","useVModels","passive","vResize","resizeDirective","t","useConfig","tableT","tableRef","useTemplateRef","treeLoadIds","ref","scrollRecord","top","left","outsideScrollEl","tableHeaderEl","tableContentEl","tableContentH","tableContentVisible","tableContentPsVisible","isScrollSyncing","ps","tableContentPs","usePerfectScrollbar","watch","source","force","onScrollX","evt","value","scrollLeft","target","requestAnimationFrame","suppressScrollY","stop","tableContentPsStop","pause","tableContentPsPause","resume","tableContentPsResume","useIntersectionObserver","scrollbarX","entry","isIntersecting","root","tableContentStop","tableContentPause","tableContentResume","isOutside","isOutsideTableContent","outsideTableContentStop","useMouseInElement","reProps","computed","service","manual","transformParams","transformRes","pagination","cacheKey","cacheTime","pollingInterval","onBefore","onAfter","onSuccess","onError","loadingWithData","loading","selectType","columns","selectOnRowClick","expandOnRowClick","tree","onScroll","onRowClick","bordered","headerAffixedTop","tableOptions","reTableOptions","reTransformRes","reTree","easyCopy","qdServiceTableTreeConfig","lazyLoad","res","temp","trErr","trRes","suspectedWrapperPromise","records","forEach","item","children","treeExpandAndFoldIcon","h","row","type","includes","id","_createVNode2","LoadingIcon","color","__qdTreeLoaded","AddRectangleIcon","cursor","MinusRectangleIcon","onExpandedTreeNodesChange","currentExpandedTreeNodes","options","rowState","level","maxLevel","rowKey","qdServiceTableProps","isEmpty","push","setData","currentParams","tParams","tpErr","tpRes","serviceErr","serviceRes","removeTreeLoadId","total","length","childrenKey","appendTo","map","reColumns","selectIdx","findIndex","defaultSelect","colKey","align","width","unshift","reSelectOnRowClick","undefined","expandTreeNodeOnClick","reOnScroll","params","e","scrollTop","reHeaderAffixedTop","Object","assign","container","externalLoad","serviceOptions","models","serviceData","dataList","firstLoad","manualTriggerLoad","current","pageSize","changeCurrent","changePageSize","changePagination","runAsync","run","cancel","refresh","refreshAsync","mutate","useServicePagination","list","defaultExpandAll","foldAll","nextTick","expandAll","tableLoad","rePagination","pageSizeOptions","onCurrentChange","onPageSizeChange","index","splice","resumeScrollRecord","el","$el","scrollEl","querySelector","scrollTo","getAllColKeys","cols","reduce","keys","col","onResize","entries","getScrollEl","headerEl","contentEl","contentH","clientHeight","expose","visible","immediate","onMounted","getData","key","find","get","onActivated","onDeactivated","onBeforeUnmount","__expose","_createBlock","_resolveDynamicComponent","_unref","TEnhancedTable","TTable","_mergeProps","class","headerBg","$event","empty","_createVNode","TEmpty","title","$slots","_","name","fn","_withCtx","slotProps","_renderSlot","_ctx","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFE,UAAMA,QAAQC;AACd,UAAMC,OAAOC;AAWb,UAAM;AAAA,MACJC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IACF,IAAIC,WAA4Cb,OAAOE,MAAM;AAAA,MAAEY,SAAS;AAAA,IAAK,CAAC;AAE9E,UAAMC,UAAUC;AAChB,UAAM;AAAA,MAAEC;AAAAA,IAAE,IAAIC,UAAU,MAAM;AAC9B,UAAM;AAAA,MAAED,GAAGE;AAAAA,IAAO,IAAID,UAAU,OAAO;AACvC,UAAME,WAAWC,eAAyE,OAAO;AACjG,UAAMC,cAAcC,IAAyB,EAAE;AAE/C,UAAMC,eAAe;AAAA,MAAEC,KAAK;AAAA,MAAGC,MAAM;AAAA;AACrC,UAAMC,kBAAkBJ,IAAwB,IAAI;AACpD,UAAMK,gBAAgBL,IAAwB,IAAI;AAClD,UAAMM,iBAAiBN,IAAwB,IAAI;AACnD,UAAMO,gBAAgBP,IAAI,CAAC;AAC3B,UAAMQ,sBAAsBR,IAAI,KAAK;AACrC,UAAMS,wBAAwBT,IAAI,KAAK;AACvC,UAAMU,kBAAkBV,IAAI,KAAK;AAEjC,UAAM;AAAA,MAAEW,IAAIC;AAAAA,IAAe,IAAIC,oBAAoBP,gBAAgB;AAAA,MACjEQ,OAAO;AAAA,QACLC,QAAQlC;AAAAA,QACRmC,OAAO;AAAA;MAETC,WAAYC,SAAQ;AAClB,YAAIR,gBAAgBS,MAAO;AAC3B,YAAI,CAACd,cAAcc,MAAO;AAE1BT,wBAAgBS,QAAQ;AACxBd,sBAAcc,MAAMC,aAAcF,IAAIG,OAAuBD;AAC7DE,8BAAsB,MAAM;AAC1BZ,0BAAgBS,QAAQ;AAAA,QAC1B,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAEDN,wBAAoBR,eAAe;AAAA,MACjCkB,iBAAiB;AAAA,MACjBT,OAAO;AAAA,QACLC,QAAQlC;AAAAA,QACRmC,OAAO;AAAA;MAETC,WAAYC,SAAQ;AAClB,YAAIR,gBAAgBS,MAAO;AAC3B,YAAI,CAACb,eAAea,MAAO;AAE3BT,wBAAgBS,QAAQ;AACxBb,uBAAea,MAAMC,aAAcF,IAAIG,OAAuBD;AAC9DE,8BAAsB,MAAM;AAC1BZ,0BAAgBS,QAAQ;AAAA,QAC1B,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAED,UAAM;AAAA,MACJK,MAAMC;AAAAA,MACNC,OAAOC;AAAAA,MACPC,QAAQC;AAAAA,IACV,IAAIC,wBACF,MAAMlB,eAAeO,OAAOY,YAC5B,CAAC,CAACC,KAAK,MAAM;AACXvB,4BAAsBU,QAAQa,OAAOC,kBAAkB;AAAA,IACzD,GACA;AAAA,MACEC,MAAM9B;AAAAA,IACR,CACF;AAEA,UAAM;AAAA,MACJoB,MAAMW;AAAAA,MACNT,OAAOU;AAAAA,MACPR,QAAQS;AAAAA,QACNP,wBACFxB,gBACA,CAAC,CAAC0B,KAAK,MAAM;AACXxB,0BAAoBW,QAAQa,OAAOC,kBAAkB;AAAA,IACvD,GACA;AAAA,MACEC,MAAM9B;AAAAA,IACR,CACF;AAEA,UAAM;AAAA,MAAEkC,WAAWC;AAAAA,MAAuBf,MAAMgB;AAAAA,IAAwB,IACtEC,kBAAkBnC,cAAc;AAElC,UAAMoC,UAAUC,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QAEAC;AAAAA,QAEAC,SAAAA;AAAAA,QACAC;AAAAA,QACA7E,MAAAA;AAAAA,QACAC,iBAAAA;AAAAA,QACAC,eAAAA;AAAAA,QACA4E;AAAAA,QACA3E,yBAAAA;AAAAA,QACAC,gBAAAA;AAAAA,QACAC,iBAAAA;AAAAA,QACAC,aAAAA;AAAAA,QACAC,MAAAA;AAAAA,QACAC,mBAAAA;AAAAA,QAEAuE;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACAC;AAAAA,QACA,GAAGC;AAAAA,MACL,IAAI1F;AAGJ,YAAM2F,iBAAiBD;AACvB,UAAIE,iBAAiBtB;AAErB,YAAMuB,SAASR,OAAO;AAAA,QAAE,GAAGA;AAAAA,QAAM,GAAGS,SAASC,wBAAwB;AAAA,MAAE,IAAIV;AAE3E,UAAIQ,QAAQG,UAAU;AACpBJ,yBAAiB,OAAOK,QAAQ;AAC9B,cAAIC;AACJ,cAAI5B,cAAc;AAChB,kBAAM,CAAC6B,OAAOC,KAAK,IAAI,MAAMC,wBAAwB/B,aAAa2B,GAAG,CAAC;AACtE,gBAAIE,MAAO,OAAMA;AAEjBD,mBAAOE;AAAAA,UACT,OAAO;AACLF,mBAAOD;AAAAA,UACT;AAEAC,eAAKI,QAAQC,QAASC,UAAS;AAC7B,gBAAIA,KAAKC,SAAU;AAEnBD,iBAAKC,WAAW;AAAA,UAClB,CAAC;AAED,iBAAOP;AAAAA,QACT;AAGA,YAAI,CAACR,aAAagB,uBAAuB;AACvCf,yBAAee,wBAAwB,CAACC,GAAG;AAAA,YAAEC;AAAAA,YAAKC;AAAAA,UAAK,MAAM;AAC3D,kBAAMJ,WAAWG,IAAIH;AAErB,gBAAInF,YAAYoB,MAAMoE,SAASF,IAAIG,EAAE,KAAKN,aAAa,MAAM;AAC3D,qBAAAO,YAAAC,aAAA;AAAA,gBAAA,SAA2B;AAAA,kBAAEC,OAAO;AAAA,gBAAwB;AAAA,cAAC,GAAA,IAAA;AAAA,YAC/D;AAEA,gBAAIT,aAAa,QAAQG,IAAIO,gBAAgB;AAC3C,qBAAAH,YAAAI,kBAAA;AAAA,gBAAA,SAAgC;AAAA,kBAAEF,OAAO;AAAA,kBAAeG,QAAQ;AAAA,gBAAU;AAAA,cAAC,GAAA,IAAA;AAAA,YAC7E;AAEA,mBAAOR,SAAS,WAAQG,YAAAI,kBAAA,MAAA,IAAA,IAAAJ,YAAAM,oBAAA,MAAA,IAAA;AAAA,UAC1B;AAAA,QACF;AAGA,YAAI,CAAC5B,aAAa6B,2BAA2B;AAC3C5B,yBAAe4B,4BAA4B,OAAOC,0BAA0BC,YAAY;AACtF,kBAAM;AAAA,cAAEb;AAAAA,cAAKc;AAAAA,YAAS,IAAID;AAC1B,gBAAI,CAACtD,WAAW,CAACyC,OAAO,CAACc,SAAU;AAEnC,kBAAM;AAAA,cAAEC;AAAAA,YAAM,IAAID;AAClB,kBAAM;AAAA,cAAEP;AAAAA,YAAe,IAAIP;AAC3B,kBAAM;AAAA,cAAEgB;AAAAA,YAAS,IAAI/B;AACrB,kBAAMkB,KAAKH,IAAI5G,MAAM6H,UAAUC,oBAAoBD,MAAM;AAGzD,gBACEvG,YAAYoB,MAAMoE,SAASC,EAAE,KAC7BI,kBACAY,QAAQJ,KAAK,KACZ,CAACI,QAAQH,QAAQ,KAAKD,SAAUC,UACjC;AACA;AAAA,YACF;AAGAtG,wBAAYoB,MAAMsF,KAAKjB,EAAE;AACzB3F,qBAASsB,OAAOuF,QAAQlB,IAAI;AAAA,cAAE,GAAGH;AAAAA,cAAKO,gBAAgB;AAAA,YAAK,CAAC;AAE5D,kBAAM;AAAA,cAAE9C,iBAAAA;AAAAA,cAAiBC,cAAAA;AAAAA,YAAa,IAAIuB;AAE1C,kBAAMqC,gBAAgBT;AACtB,gBAAIU;AAEJ,gBAAI9D,kBAAiB;AACnB,oBAAM,CAAC+D,OAAOC,KAAK,IAAI,MAAMhC,wBAAwBhC,iBAAgB6D,aAAa,CAAC;AACnF,kBAAIE,MAAO,OAAMA;AACjBD,wBAAUE;AAAAA,YACZ;AAEA,kBAAM,CAACC,YAAYC,UAAU,IAAI,MAAMlC,wBACrClC,QAAQgE,WAAYD,aAAoB,CAC1C;AACA,gBAAII,YAAY;AACdE,+BAAiBzB,EAAE;AACnB,oBAAMuB;AAAAA,YACR;AAEA,gBAAIpC;AACJ,gBAAI5B,eAAc;AAChB,oBAAM,CAAC6B,OAAOC,KAAK,IAAI,MAAMC,wBAAwB/B,cAAaiE,YAAYd,OAAO,CAAC;AACtF,kBAAItB,OAAO;AACTqC,iCAAiBzB,EAAE;AACnB,sBAAMZ;AAAAA,cACR;AAEAD,qBAAOE;AAAAA,YACT,OAAO;AACLF,qBAAOqC;AAAAA,YACT;AAEAC,6BAAiBzB,EAAE;AACnB,gBAAI,CAACb,KAAKI,QAASJ,MAAKI,UAAU,CAAA;AAClC,gBAAIyB,QAAQ7B,KAAKuC,KAAK,EAAGvC,MAAKuC,QAAQvC,KAAKI,QAAQoC;AAEnD,gBAAI,CAACxC,KAAKI,QAAQoC,OAAQ;AAE1B,kBAAMC,cAAc9C,OAAO8C,eAAe5C,yBAAyB4C;AACnEvH,qBAASsB,OAAOuF,QAAQlB,IAAI;AAAA,cAC1B,GAAGH;AAAAA,cACHO,gBAAgB;AAAA,cAChB,CAACwB,WAAW,GAAG,CAAA;AAAA,YACjB,CAAC;AACDvH,qBAASsB,OAAOkG,SACd7B,IACAb,KAAKI,QAAQuC,IAAKrC,UAAS;AACzB,kBAAIA,KAAKC,SAAU,QAAOD;AAE1B,qBAAO;AAAA,gBACL,GAAGA;AAAAA,gBACH,CAACmC,WAAW,GAAGZ,QAAQH,QAAQ,IAAI,OAAOD,QAAS,IAAIC;AAAAA;YAE3D,CAAC,CACH;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,YAAMkB,YAAY5D,WAAW,CAAA;AAC7B,UAAID,YAAY;AACd,cAAM8D,YAAYD,UAAUE,UACzBxC,UAASA,KAAKK,SAAS,YAAYL,KAAKK,SAAS,UACpD;AACA,cAAMoC,gBAA4C;AAAA,UAChDC,QAAQ;AAAA,UACRrC,MAAM5B;AAAAA,UACNkE,OAAO;AAAA,UACPC,OAAO;AAAA;AAGT,YAAIL,YAAY,IAAI;AAClBD,oBAAUC,SAAS,IAAI;AAAA,YACrB,GAAGE;AAAAA,YACH,GAAGH,UAAUC,SAAS;AAAA;QAE1B,OAAO;AACLD,oBAAUO,QAAQJ,aAAa;AAAA,QACjC;AAAA,MACF;AAEA,YAAMK,qBACJnE,qBACCI,aAAagE,SAAY,CAACnE,oBAAoB,CAACS,QAAQ2D;AAE1D,YAAMC,aAA+BC,YAAW;AAC9CpE,mBAAWoE,MAAM;AAEjB,cAAM9G,SAAS8G,OAAOC,EAAE/G;AACxB,YAAI,CAACA,OAAQ;AAEb,cAAM;AAAA,UAAEgH;AAAAA,UAAWjH;AAAAA,QAAW,IAAIC;AAClCpB,qBAAaC,MAAMmI;AACnBpI,qBAAaE,OAAOiB;AAAAA,MACtB;AAEA,YAAMkH,qBACJlI,gBAAgBe,SAASX,oBAAoBW,QACzCoH,OAAOC,OAAO;AAAA,QAAEC,WAAWA,MAAMrI,gBAAgBe;AAAAA,MAAM,GAAG+C,gBAAgB,IAC1EA;AAEN,aAAO;AAAA,QACLV;AAAAA,QACAW,cAAc;AAAA,UACZ,GAAGC;AAAAA,UAEHT,SAAS4D;AAAAA,UACT3D,kBAAkBmE;AAAAA,UAClBlE;AAAAA,UACAC,MAAMQ;AAAAA,UACNP,UAAUmE;AAAAA,UACVlE;AAAAA,UACAE,kBAAkBoE;AAAAA,UAClBrE,UAAUA,YAAYrE,OAAO,UAAU,KAAK;AAAA;QAE9C8I,cAAcjF;AAAAA,QACdkF,gBAAgB;AAAA,UACd/F;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC,cAAcsB;AAAAA,UACdrB;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC;AAAAA,UACAC;AAAAA;QAEFqF,QAAQ;AAAA,UACN/J,MAAAA;AAAAA,UACAC,iBAAAA;AAAAA,UACAC,eAAAA;AAAAA,UACAC,yBAAAA;AAAAA,UACAC,gBAAAA;AAAAA,UACAC,iBAAAA;AAAAA,UACAC,aAAAA;AAAAA,UACAC,MAAAA;AAAAA,UACAC,mBAAAA;AAAAA,QACF;AAAA;IAEJ,CAAC;AAED,UAAM;AAAA,MACJR,MAAMgK;AAAAA,MACNC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAvF;AAAAA,MACAwF;AAAAA,MACAC;AAAAA,MACAhC;AAAAA,MACAiC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,QACEC,qBAAqB;AAAA,MACvB,GAAGlH,QAAQvB,MAAMwH;AAAAA,MACjBrF,WAAW,OAAOoB,QAAQ;AACxB7F,aAAKsC,QAAQuD,IAAImF;AAEjB,YAAInH,QAAQvB,MAAMgD,aAAaL,MAAMgG,kBAAkB;AACrDjK,mBAASsB,OAAO4I,QAAO;AACvBC,mBAAS,MAAM;AACbnK,qBAASsB,OAAO8I,UAAS;AAAA,UAC3B,CAAC;AAAA,QACH;AACAvH,gBAAQvB,MAAMwH,eAAerF,YAAYoB,GAAG;AAAA,MAC9C;AAAA,IACF,CAAC;AAED,UAAMwF,YAAYvH,SAA0C,MAAM;AAChE,YAAM;AAAA,QAAE+F;AAAAA,QAAclF;AAAAA,UAAoBd,QAAQvB;AAClD,UAAIuH,aAAc,QAAO;AACzB,UAAI,CAAC7J,KAAKsC,OAAOgG,UAAU4B,UAAU5H,MAAO,QAAO;AACnD,UAAI6H,kBAAkB7H,OAAO;AAC3B,YAAItC,KAAKsC,OAAOgG,QAAQ;AACtB,cAAI3D,gBAAiB,QAAO;AAC5B,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT,CAAC;AAED,UAAM2G,eAAexH,SAAS,MAAM;AAClC,aAAO,CAACD,QAAQvB,MAAMwH,eAAe/F,WACnCF,QAAQvB,MAAMwH,eAAe3F,eAAe,QAC1CgF,SACA;AAAA,QACEiB,SAASA,QAAQ9H;AAAAA,QACjB+H,UAAUA,SAAS/H;AAAAA,QACnB+F,OAAOA,MAAM/F;AAAAA,QACbiJ,iBAAiB,CAAC,GAAG,IAAI,IAAI,IAAI,GAAG;AAAA,QACpCC,iBAAiBlB;AAAAA,QACjBmB,kBAAkBlB;AAAAA;IAE1B,CAAC;AAED,aAASnC,iBAAiBzB,IAAwC;AAChE,YAAM+E,QAAQxK,YAAYoB,MAAMsG,UAAWxC,UAASA,SAASO,EAAE;AAC/D,UAAI+E,UAAU,GAAI;AAElBxK,kBAAYoB,MAAMqJ,OAAOD,OAAO,CAAC;AAAA,IACnC;AAEA,aAASE,qBAAqB;AAC5B,YAAMC,KAAK7K,SAASsB,OAAOwJ;AAC3B,UAAI,CAACD,GAAI;AAGT,YAAME,WAAWF,GAAGG,cAAc,mBAAmB;AACrD,UAAI,CAACD,SAAU;AAEf,YAAM;AAAA,QAAEvC;AAAAA,QAAWjH;AAAAA,MAAW,IAAIwJ;AAClC,YAAM;AAAA,QAAE1K;AAAAA,QAAKC;AAAAA,MAAK,IAAIF;AACtB,UAAIC,QAAQmI,aAAalI,SAASiB,WAAY;AAE9CwJ,eAASE,SAAS;AAAA,QAAE5K;AAAAA,QAAKC;AAAAA,MAAK,CAAC;AAAA,IACjC;AAEA,aAAS4K,cAAcC,MAAiD;AACtE,UAAI,CAACA,KAAM,QAAO,CAAA;AAElB,aAAOA,KAAKC,OAAO,CAACC,MAAgBC,QAAQ;AAC1C,YAAIA,IAAIjG,YAAYiG,IAAIjG,SAASiC,SAAS,GAAG;AAC3C+D,eAAKzE,KAAK,GAAGsE,cAAcI,IAAIjG,QAAQ,CAAC;AAAA,QAC1C,WAAWiG,IAAIxD,QAAQ;AACrBuD,eAAKzE,KAAK0E,IAAIxD,MAAM;AAAA,QACtB;AACA,eAAOuD;AAAAA,MACT,GAAG,CAAA,CAAE;AAAA,IACP;AAEA,aAASE,SAASC,SAAgC;AAChD,YAAMX,KAAKW,QAAQ,CAAC,EAAEhK;AACtBjB,sBAAgBe,QAAQmK,YAAYZ,EAAiB;AAErD,YAAMa,WACJb,GAAGG,cAAc,8BAA8B,KAAKH,GAAGG,cAAc,kBAAkB;AACzFxK,oBAAcc,QAAQoK;AAEtB,YAAMC,YAAYd,GAAGG,cAAc,mBAAmB;AACtDvK,qBAAea,QAAQqK;AACvB,UAAIC,WAAW;AACf,UAAID,UAAWC,YAAWD,UAAUE;AACpCnL,oBAAcY,QAAQsK;AAAAA,IACxB;AAEA,UAAME,SAAS;AAAA,MACb9M,MAAMgK;AAAAA,MACNC;AAAAA,MACAoB;AAAAA,MACAnB;AAAAA,MACAC;AAAAA,MACAvF;AAAAA,MACAwF;AAAAA,MACAC;AAAAA,MACAhC;AAAAA,MACAiC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA;AAUF7I,UACE9B,yBACC4M,aAAY;AACX,YAAM;AAAA,QAAEjI;AAAAA,MAAQ,IAAIjB,QAAQvB,MAAMgD;AAClC,UAAIyH,WAAW,CAAC3M,eAAekC,SAASwC,SAAS;AAC/C1E,uBAAekC,QAAQ4J,cAAcpH,OAAO;AAAA,MAC9C;AAAA,IACF,GACA;AAAA,MAAEkI,WAAW;AAAA,IAAK,CACpB;AAEAC,cAAU,MAAM;AACd,UAAIrN,MAAMqF,MAAM;AACdyE,eAAOC,OAAOmD,QAAQ9L,SAASsB,KAAK;AAAA,MACtC,OAAO;AACL,cAAM4K,UACJC,SACG;AACH,iBAAOnN,KAAKsC,MAAM8K,KACfhH,UAAYiH,IAAIjH,MAAMxG,MAAM6H,UAAUC,oBAAoBD,MAAM,MAAM0F,GACzE;AAAA,QACF;AACAzD,eAAOC,OAAOmD,QAAQ9L,SAASsB,OAAO;AAAA,UAAE4K;AAAAA,QAAQ,CAAC;AAAA,MACnD;AAAA,IACF,CAAC;AAEDI,gBAAY,MAAM;AAChB1B,yBAAkB;AAClB5I,2BAAoB;AACpBQ,yBAAkB;AAAA,IACpB,CAAC;AAED+J,kBAAc,MAAM;AAClBzK,0BAAmB;AACnBS,wBAAiB;AAAA,IACnB,CAAC;AAEDiK,oBAAgB,MAAM;AACpB5K,yBAAkB;AAClBU,uBAAgB;AAChBK,8BAAuB;AAAA,IACzB,CAAC;AAED8J,aAAaX,MAAM;;0CAhnBnBY,YA8BYC,wBA7BL9J,QAAAvB,MAAQgD,aAAaL,OAAO2I,MAAAC,aAAA,IAAiBD,MAAAE,KAAA,CAAM,GAD1DC,WA8BY;AAAA,QA5BV5M,KAAI;AAAA,QACH6M,OAAK,qBAAoCnO,QAAAoO,WAAQ,KAAA,8BAA4CrM,sBAAAU,QAAqB,yCAAA,IAAsDsL,MAAAlK,qBAAA,IAAqB,KAAA,wCAAA;AAAA,QAOtL,qBAAmBkK,MAAA3N,eAAA;AAAA,mGAAAA,gBAAeqC,QAAA4L,SAAA;AAAA,QAClC,mBAAiBN,MAAA1N,aAAA;AAAA,+FAAAA,cAAaoC,QAAA4L,SAAA;AAAA,QAC9B,6BAA2BN,MAAAzN,uBAAA;AAAA,mHAAAA,wBAAuBmC,QAAA4L,SAAA;AAAA,QAClD,mBAAiBN,MAAAxN,cAAA;AAAA,iGAAAA,eAAckC,QAAA4L,SAAA;AAAA,QAC/B,qBAAmBN,MAAAvN,eAAA;AAAA,mGAAAA,gBAAeiC,QAAA4L,SAAA;AAAA,QAClC,gBAAcN,MAAAtN,WAAA;AAAA,2FAAAA,YAAWgC,QAAA4L,SAAA;AAAA,QACzB3N,MAAMqN,MAAArN,IAAA;AAAA,6EAAAA,KAAI+B,QAAA4L,SAAA;AAAA,QACV,uBAAqBN,MAAApN,iBAAA;AAAA,uGAAAA,kBAAiB8B,QAAA4L,SAAA;AAAA,MACtC,GAAArK,QAAAvB,MAAQgD,cAAY;AAAA,QAC3BV,SAASyG,UAAA/I;AAAAA,QACTtC,MAAM4N,MAAA5N,IAAA;AAAA,QACNmE,YAAYmH,aAAAhJ;AAAAA;QAEF6L,eACT,MAAmE,CAAnEC,YAAmER,MAAAS,KAAA,GAAA;AAAA,UAA1DL,OAAM;AAAA,UAA2BM,OAAOV,MAAA/M,CAAA,EAAC,WAAA;AAAA;;qBAGtB0N,KAAAA,QAAM,CAAlBC,GAAGC,SAAI;;;UACvBC,IAAAC,QAD6CC,eAAS,CACtDC,WAAwCC,KAAAP,QAA3BE,MAAIM,eAAAC,mBAAUJ,SAAS,CAAA,GAAAzF,QAAA,IAAA,CAAA;;8OAnB5BoD,QAAQ,CAAA;;;;"}
@@ -4,7 +4,7 @@ import { isEmpty, useDoubleClick, suspectedWrapperPromise, extractSlotsWithPrefi
4
4
  import { Select, Input, Space, Button } from "tdesign-vue-next";
5
5
  import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
6
6
  import { qdDialogTableSelectSearchGrid, qdServiceDialogTableSelectProps } from "./props.mjs";
7
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
7
+ 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";
8
8
  import { qdServiceSelectKeys } from "../service-select/props.mjs";
9
9
  import { useConfig } from "../config-provider/useConfig.mjs";
10
10
  import merge from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
@@ -5,7 +5,7 @@ import { isEmpty, identifyType, extractSlotsWithPrefix } from "qidian-shared";
5
5
  import { Popup, Select, Input, Space, Button } from "tdesign-vue-next";
6
6
  import { AddIcon, SearchIcon } from "tdesign-icons-vue-next";
7
7
  import { qdServicePopup, qdServicePopupTableSelectProps } from "./props.mjs";
8
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
8
+ 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";
9
9
  import { qdDialogTableSelectSearchGrid } from "../service-dialog-table-select/props.mjs";
10
10
  import { qdServiceSelectKeys } from "../service-select/props.mjs";
11
11
  import { useConfig } from "../config-provider/useConfig.mjs";
@@ -1,7 +1,7 @@
1
1
  import './index.css'
2
2
  import { defineComponent, mergeDefaults, computed, ref, watch, onMounted, onActivated, onDeactivated, createBlock, openBlock, unref, mergeProps, isRef, createSlots, withCtx, renderSlot, createCommentVNode, renderList, normalizeProps, guardReactiveProps } from "vue";
3
3
  import { Select, Loading } from "tdesign-vue-next";
4
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
+ import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { isEmpty, useServiceLoadMore, toArr, extractSlotsWithoutPrefix, checkSameObject } from "qidian-shared";
6
6
  import { qdServiceSelectKeys, qdServiceSelectProps } from "./props.mjs";
7
7
  import { useConfig } from "../config-provider/useConfig.mjs";
@@ -1,7 +1,7 @@
1
1
  import './index.css'
2
2
  import { defineComponent, mergeDefaults, computed, inject, useTemplateRef, ref, watch, onMounted, createBlock, openBlock, unref, mergeProps, isRef, createSlots, withCtx, createCommentVNode, createTextVNode, toDisplayString, createVNode, withModifiers, normalizeClass, createElementVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
3
3
  import { qdUploadSizeLimit, qdUploadProps } from "./props.mjs";
4
- import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
+ import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { Upload, Space, Button, Popup, Badge } from "tdesign-vue-next";
6
6
  import { UploadIcon, BrowseIcon } from "tdesign-icons-vue-next";
7
7
  import { isEmpty, useTimer, easyCopy, checkSameObject, to, isTypeByName, suspectedWrapperPromise } from "qidian-shared";
@@ -5,11 +5,11 @@ export interface PerfectScrollbarOptions extends Omit<PerfectScrollbar.Options,
5
5
  source: WatchSource;
6
6
  force?: boolean;
7
7
  } & WatchOptions<Readonly<boolean>>;
8
+ onScroll?: (event: Event) => void;
9
+ onScrollY?: (event: Event) => void;
10
+ onScrollX?: (event: Event) => void;
8
11
  }
9
12
  export declare function usePerfectScrollbar(target: MaybeRef<HTMLElement | string | null | undefined> | (() => HTMLElement | string | null | undefined), options?: PerfectScrollbarOptions): {
10
13
  ps: Ref<PerfectScrollbar | undefined, PerfectScrollbar | undefined>;
11
- update: () => void;
12
- debounceUpdate: import("lodash").DebouncedFunc<() => void>;
13
- create: () => void;
14
14
  destroy: () => void;
15
15
  };