qidian-vue-ui 2.0.56 → 2.0.57

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 (34) hide show
  1. package/dist/components/auto-tooltip/index.vue2.mjs +1 -1
  2. package/dist/components/crud/table/index.vue2.mjs +4 -4
  3. package/dist/components/dialog/index.vue.mjs +2 -2
  4. package/dist/components/drawer/index.vue.mjs +2 -2
  5. package/dist/components/file-viewer/index.vue2.mjs +1 -1
  6. package/dist/components/icon/index.vue.mjs +1 -1
  7. package/dist/components/multi-file-viewer/index.vue.mjs +1 -1
  8. package/dist/components/office/pdf/index.vue2.mjs +1 -1
  9. package/dist/components/office/pdf/utils/image2pdf.mjs +1 -1
  10. package/dist/components/service/table/edit-cell.mjs +1 -1
  11. package/dist/components/service/table/index.css +55 -52
  12. package/dist/components/service/table/index.vue.mjs +1 -1
  13. package/dist/components/service/table/index.vue2.mjs +40 -10
  14. package/dist/components/tinymce/index.vue2.mjs +1 -1
  15. package/dist/components/tinymce/preview.vue2.mjs +1 -1
  16. package/dist/components/upload/file-flow-file-list-display/index.vue2.mjs +1 -1
  17. package/dist/components/upload/image-file-list-display/index.vue.mjs +1 -1
  18. package/dist/components/upload/image-flow-file-list-display/index.vue.mjs +1 -1
  19. package/dist/directive/hasPermi.mjs +1 -1
  20. package/dist/directive/hasRole.mjs +1 -1
  21. package/dist/hooks/useAgentChat/index.mjs +1 -1
  22. package/dist/hooks/useDict/index.mjs +1 -1
  23. package/dist/hooks/useModal.mjs +2 -2
  24. package/dist/hooks/useUserAvatar/index.mjs +1 -1
  25. package/dist/index.mjs +4 -4
  26. package/dist/utils/{auth/index.mjs → auth.mjs} +1 -1
  27. package/dist/utils/{date/index.mjs → date.mjs} +3 -3
  28. package/package.json +1 -1
  29. /package/dist/utils/{auth/index.d.ts → auth.d.ts} +0 -0
  30. /package/dist/utils/{date/index.d.ts → date.d.ts} +0 -0
  31. /package/dist/utils/{overlayStack/index.d.ts → overlayStack.d.ts} +0 -0
  32. /package/dist/utils/{overlayStack/index.mjs → overlayStack.mjs} +0 -0
  33. /package/dist/utils/{tools/index.d.ts → tools.d.ts} +0 -0
  34. /package/dist/utils/{tools/index.mjs → tools.mjs} +0 -0
@@ -2,7 +2,7 @@ import './index.css'
2
2
  import { defineComponent, useCssVars, useTemplateRef, ref, computed, watch, nextTick, createElementBlock, openBlock, createVNode, renderSlot, unref, withCtx, withDirectives, normalizeClass, createTextVNode, toDisplayString } from "vue";
3
3
  import { resizeDirective } from "qidian-shared";
4
4
  import { Tooltip } from "tdesign-vue-next";
5
- import { reAttach } from "../../utils/tools/index.mjs";
5
+ import { reAttach } from "../../utils/tools.mjs";
6
6
  const _hoisted_1 = { class: "qd-auto-tooltip" };
7
7
  const _hoisted_2 = {
8
8
  key: 0,
@@ -19,7 +19,7 @@ import _sfc_main$2 from "../../dialog/form.vue.mjs";
19
19
  import QdColumnsController from "../../columns-controller/index.vue.mjs";
20
20
  import get from "../../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.mjs";
21
21
  import QdServiceTable from "../../service/table/index.vue.mjs";
22
- import { hasPermiOr } from "../../../utils/auth/index.mjs";
22
+ import { hasPermiOr } from "../../../utils/auth.mjs";
23
23
  const _hoisted_1 = {
24
24
  key: 0,
25
25
  class: "qd-crud-table__toolbar-separator"
@@ -1085,14 +1085,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1085
1085
  const {
1086
1086
  colIndex,
1087
1087
  rowIndex,
1088
- index: index$1,
1088
+ index,
1089
1089
  mapKey
1090
1090
  } = cellIndex;
1091
1091
  if (isEmpty(colIndex) && isEmpty(rowIndex)) {
1092
- ifRenderMap[`${mapKey || "action"}.${index$1}`] = ifRender;
1092
+ ifRenderMap[`${mapKey || "action"}.${index}`] = ifRender;
1093
1093
  return;
1094
1094
  }
1095
- ifRenderMap[`${colIndex}.${rowIndex}.${index$1}`] = ifRender;
1095
+ ifRenderMap[`${colIndex}.${rowIndex}.${index}`] = ifRender;
1096
1096
  }
1097
1097
  function getActionSeparator(action, cellIndex) {
1098
1098
  const {
@@ -4,8 +4,8 @@ import { useDraggable, useVModels } from "../../node_modules/.pnpm/@vueuse_core@
4
4
  import { useActivated, domOn, suspectedWrapperPromise, isEmpty, filterSlots } from "qidian-shared";
5
5
  import { FullscreenExitIcon, FullscreenIcon } from "tdesign-icons-vue-next";
6
6
  import { Dialog, Divider, Button } from "tdesign-vue-next";
7
- import { OVERLAY_TRANSPARENT_CLASS, OVERLAY_CLOSING_CLASS, updateOverlayMasks, markPreviousOverlaysTransparent, registerOverlayEsc, setOverlayActive, unregisterOverlayEsc, setOverlayEscEnabled, focusTopOverlay } from "../../utils/overlayStack/index.mjs";
8
- import { reAttach, resolveAttachParent, getTransformOffset } from "../../utils/tools/index.mjs";
7
+ import { OVERLAY_TRANSPARENT_CLASS, OVERLAY_CLOSING_CLASS, updateOverlayMasks, markPreviousOverlaysTransparent, registerOverlayEsc, setOverlayActive, unregisterOverlayEsc, setOverlayEscEnabled, focusTopOverlay } from "../../utils/overlayStack.mjs";
8
+ import { reAttach, resolveAttachParent, getTransformOffset } from "../../utils/tools.mjs";
9
9
  import { useConfig } from "../config-provider/useConfig.mjs";
10
10
  import { qdDialogProps } from "./props.mjs";
11
11
  import debounce from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/debounce.mjs";
@@ -3,8 +3,8 @@ import { defineComponent, mergeDefaults, getCurrentInstance, ref, computed, watc
3
3
  import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
4
4
  import { useActivated, suspectedWrapperPromise } from "qidian-shared";
5
5
  import { Drawer } from "tdesign-vue-next";
6
- import { OVERLAY_CLOSING_CLASS, OVERLAY_TRANSPARENT_CLASS, markPreviousOverlaysTransparent, registerOverlayEsc, setOverlayActive, updateOverlayMasks, unregisterOverlayEsc, setOverlayEscEnabled, focusTopOverlay } from "../../utils/overlayStack/index.mjs";
7
- import { reAttach, resolveAttachParent } from "../../utils/tools/index.mjs";
6
+ import { OVERLAY_CLOSING_CLASS, OVERLAY_TRANSPARENT_CLASS, markPreviousOverlaysTransparent, registerOverlayEsc, setOverlayActive, updateOverlayMasks, unregisterOverlayEsc, setOverlayEscEnabled, focusTopOverlay } from "../../utils/overlayStack.mjs";
7
+ import { reAttach, resolveAttachParent } from "../../utils/tools.mjs";
8
8
  import { useConfig } from "../config-provider/useConfig.mjs";
9
9
  import { qdDrawerProps } from "./props.mjs";
10
10
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -3,7 +3,7 @@ import { defineComponent, ref, computed, watch, nextTick, createElementBlock, op
3
3
  import { allRenderers } from "@file-viewer/preset-all";
4
4
  import { FileViewer } from "@file-viewer/vue3";
5
5
  import { ImageViewer } from "tdesign-vue-next";
6
- import { isImage, reAttach } from "../../utils/tools/index.mjs";
6
+ import { isImage, reAttach } from "../../utils/tools.mjs";
7
7
  import { useTheme } from "../../hooks/useTheme.mjs";
8
8
  import QdOfficePdf from "../office/pdf/index.vue.mjs";
9
9
  import merge from "../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/merge.mjs";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, defineAsyncComponent, createBlock, openBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
2
2
  import { formatGlob } from "qidian-shared";
3
- import { useUICsl } from "../../utils/tools/index.mjs";
3
+ import { useUICsl } from "../../utils/tools.mjs";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  ...{
6
6
  name: "QdIcon"
@@ -2,7 +2,7 @@ import './index.css'
2
2
  import { defineComponent, mergeDefaults, ref, computed, watch, onUnmounted, createBlock, openBlock, resolveDynamicComponent, mergeProps, withCtx, createElementBlock, Fragment, createVNode, createElementVNode, unref, renderList, createTextVNode, toDisplayString, createCommentVNode, nextTick } from "vue";
3
3
  import { useActivated } from "qidian-shared";
4
4
  import { Menu, MenuItem, Empty, ImageViewer } from "tdesign-vue-next";
5
- import { isImage, reAttach } from "../../utils/tools/index.mjs";
5
+ import { isImage, reAttach } from "../../utils/tools.mjs";
6
6
  import { useConfig } from "../config-provider/useConfig.mjs";
7
7
  import _sfc_main$1 from "../dialog/index.vue.mjs";
8
8
  /* empty css */
@@ -4,7 +4,7 @@ import { defineComponent, inject, computed, ref, shallowRef, onMounted, watch, o
4
4
  import { resizeDirective, toPrecision, to, isDev } from "qidian-shared";
5
5
  import { ChevronLeftIcon, ChevronRightIcon, ZoomOutIcon, ZoomInIcon, CenterFocusStrongFilledIcon, CenterFocusStrongIcon, RollbackIcon, RollfrontIcon } from "tdesign-icons-vue-next";
6
6
  import { Loading, Tooltip, Button, InputNumber, Divider } from "tdesign-vue-next";
7
- import { useUICsl, getPublicUrl } from "../../../utils/tools/index.mjs";
7
+ import { useUICsl, getPublicUrl } from "../../../utils/tools.mjs";
8
8
  import { PROVIDE_OFFICE } from "../../config-provider/config.mjs";
9
9
  import { useConfig } from "../../config-provider/useConfig.mjs";
10
10
  import { ADAPTIVE_VIEW, ZOOM_SCALE_LIMIT } from "./config.mjs";
@@ -1,5 +1,5 @@
1
1
  import { to } from "qidian-shared";
2
- import { isImage } from "../../../../utils/tools/index.mjs";
2
+ import { isImage } from "../../../../utils/tools.mjs";
3
3
  function isImageUrl(url) {
4
4
  return isImage(url);
5
5
  }
@@ -41,7 +41,7 @@ function createRowEditContext(sourceRow, getEditedRow, colKey, updateEditedCellV
41
41
  const proxy = new Proxy(target, {
42
42
  get(currentTarget, key, receiver) {
43
43
  const value = Reflect.get(currentTarget, key, receiver);
44
- if (typeof key !== "string" || !isProxyable(value)) return value;
44
+ if (typeof key !== "string" || key.startsWith("__v") || !isProxyable(value)) return value;
45
45
  return wrap(value, parentPath ? `${parentPath}.${key}` : key);
46
46
  },
47
47
  set(currentTarget, key, value, receiver) {
@@ -1,167 +1,170 @@
1
- .qd-service-table[data-v-d8bf5443] {
1
+ .qd-service-table[data-v-75599918] {
2
2
  height: 100%;
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  }
6
- .qd-service-table[data-v-d8bf5443] > .t-table__content {
6
+ .qd-service-table[data-v-75599918] > .t-table__content {
7
7
  flex: 1;
8
8
  }
9
- .qd-service-table--mini[data-v-d8bf5443] {
9
+ .qd-service-table--mini[data-v-75599918] {
10
10
  font: var(--td-font-body-small);
11
11
  }
12
- .qd-service-table--mini[data-v-d8bf5443] th,
13
- .qd-service-table--mini[data-v-d8bf5443] tr:not(.t-table__expanded-row) > td {
12
+ .qd-service-table--mini[data-v-75599918] th,
13
+ .qd-service-table--mini[data-v-75599918] tr:not(.t-table__expanded-row) > td {
14
14
  padding: var(--td-comp-paddingTB-xxs) var(--td-comp-paddingLR-xxs);
15
15
  line-height: var(--td-line-height-body-small);
16
16
  }
17
- .qd-service-table--mini[data-v-d8bf5443] .t-table__row-full-element {
17
+ .qd-service-table--mini[data-v-75599918] .t-table__row-full-element {
18
18
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-s);
19
19
  }
20
- .qd-service-table--hide-empty-image[data-v-d8bf5443] .t-table__empty {
20
+ .qd-service-table--hide-empty-image[data-v-75599918] .t-table__empty {
21
21
  min-height: auto;
22
22
  }
23
- .qd-service-table--hide-empty-image[data-v-d8bf5443] .t-table__empty .t-empty {
23
+ .qd-service-table--hide-empty-image[data-v-75599918] .t-table__empty .t-empty {
24
24
  padding: 0 !important;
25
25
  }
26
- .qd-service-table--hide-empty-image[data-v-d8bf5443] .t-table__empty .t-empty__image {
26
+ .qd-service-table--hide-empty-image[data-v-75599918] .t-table__empty .t-empty__image {
27
27
  display: none;
28
28
  }
29
- .qd-service-table--hide-empty-image[data-v-d8bf5443] .t-table__empty .t-empty__title {
29
+ .qd-service-table--hide-empty-image[data-v-75599918] .t-table__empty .t-empty__title {
30
30
  margin-top: 0;
31
31
  }
32
- .qd-service-table[data-v-d8bf5443] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
32
+ .qd-service-table[data-v-75599918] .t-table__tree-col:not(:has(.t-table__tree-op-icon)) {
33
33
  margin-left: calc(var(--td-font-size-body-large) + var(--td-comp-margin-s));
34
34
  }
35
- .qd-service-table[data-v-d8bf5443] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
35
+ .qd-service-table[data-v-75599918] .t-table__tree-leaf-node .t-table__tree-op-icon:empty {
36
36
  width: calc(var(--td-font-size-body-large) + var(--td-comp-margin-s));
37
37
  }
38
- .qd-service-table[data-v-d8bf5443] .t-affix > .t-table__affixed-header-elm-wrap,
39
- .qd-service-table[data-v-d8bf5443] .t-affix > .t-table__scrollbar--obvious {
40
- transform: var(--v108cdedc);
38
+ .qd-service-table[data-v-75599918] .t-affix > .t-table__affixed-header-elm-wrap,
39
+ .qd-service-table[data-v-75599918] .t-affix > .t-table__scrollbar--obvious {
40
+ transform: var(--v298ee7ef);
41
41
  }
42
- .qd-service-table--horizontal-bar-static[data-v-d8bf5443] .t-table__scrollbar--obvious {
42
+ .qd-service-table--horizontal-bar-static[data-v-75599918] .t-table__scrollbar--obvious {
43
43
  visibility: hidden;
44
44
  pointer-events: none;
45
45
  }
46
- .qd-service-table[data-v-d8bf5443] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
46
+ .qd-service-table[data-v-75599918] .t-table__expanded-row .qd-service-table--horizontal-bar-static > div:has(> div > .t-table__scrollbar--obvious) {
47
47
  display: none;
48
48
  }
49
- .qd-service-table[data-v-d8bf5443] .t-table__expanded-row > td {
49
+ .qd-service-table[data-v-75599918] .t-table__expanded-row > td {
50
50
  height: 0;
51
51
  }
52
- .qd-service-table[data-v-d8bf5443] .t-table__affixed-header-elm-wrap {
52
+ .qd-service-table[data-v-75599918] .t-table__affixed-header-elm-wrap {
53
53
  height: auto !important;
54
54
  }
55
- .qd-service-table[data-v-d8bf5443] .t-table__affixed-header-elm {
55
+ .qd-service-table[data-v-75599918] .t-table__affixed-header-elm {
56
56
  position: relative;
57
57
  scrollbar-width: none;
58
58
  }
59
- .qd-service-table[data-v-d8bf5443] .t-table__affixed-header-elm::-webkit-scrollbar {
59
+ .qd-service-table[data-v-75599918] .t-table__affixed-header-elm::-webkit-scrollbar {
60
60
  display: none;
61
61
  width: 0;
62
62
  height: 0;
63
63
  }
64
- .qd-service-table[data-v-d8bf5443] .t-table__virtual-scroll-cursor + table {
64
+ .qd-service-table[data-v-75599918] .t-table__virtual-scroll-cursor + table {
65
65
  border-collapse: separate;
66
66
  }
67
- .qd-service-table[data-v-d8bf5443] .t-table__expanded-row-inner,
68
- .qd-service-table[data-v-d8bf5443] .t-table__row-filter-inner {
67
+ .qd-service-table[data-v-75599918] .t-table__expanded-row-inner,
68
+ .qd-service-table[data-v-75599918] .t-table__row-filter-inner {
69
69
  display: block;
70
70
  position: sticky;
71
71
  left: 0;
72
- width: var(--v28fb2a5e) !important;
72
+ width: var(--v668d03b8) !important;
73
73
  }
74
- .qd-service-table[data-v-d8bf5443] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
74
+ .qd-service-table[data-v-75599918] .t-table__cell-wrap > .t-form__controls > .t-form__controls-content > *:not(.t-switch):not(.t-tag):not(.t-icon):not(.qd-file-icon) {
75
75
  width: 100%;
76
76
  }
77
- .qd-service-table[data-v-d8bf5443] .qd-service-table__non-editable-col {
77
+ .qd-service-table[data-v-75599918] .qd-service-table__non-editable-col {
78
78
  background-color: color-mix(in srgb, var(--td-bg-color-component) 50%, transparent);
79
79
  }
80
- .qd-service-table[data-v-d8bf5443] .qd-service-table__non-editable-col:is(
80
+ .qd-service-table[data-v-75599918] .qd-service-table__selected-cell {
81
+ box-shadow: inset 0 0 0 1px var(--td-brand-color);
82
+ }
83
+ .qd-service-table[data-v-75599918] .qd-service-table__non-editable-col:is(
81
84
  .t-table__cell--fixed-left,
82
85
  .t-table__cell--fixed-right
83
86
  ) {
84
87
  background-color: inherit;
85
88
  background-image: linear-gradient(color-mix(in srgb, var(--td-bg-color-secondarycontainer) 50%, transparent), color-mix(in srgb, var(--td-bg-color-secondarycontainer) 50%, transparent));
86
89
  }
87
- .qd-service-table--disable-horizontal-scroll[data-v-d8bf5443] colgroup > col {
90
+ .qd-service-table--disable-horizontal-scroll[data-v-75599918] colgroup > col {
88
91
  width: auto !important;
89
92
  }
90
- .qd-service-table[data-v-d8bf5443] .t-table__filter-pop-content-inner {
93
+ .qd-service-table[data-v-75599918] .t-table__filter-pop-content-inner {
91
94
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
92
95
  }
93
- .qd-service-table[data-v-d8bf5443] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
96
+ .qd-service-table[data-v-75599918] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
94
97
  padding: 0;
95
98
  }
96
- .qd-service-table[data-v-d8bf5443] .t-table__filter-pop-content-inner:has(
99
+ .qd-service-table[data-v-75599918] .t-table__filter-pop-content-inner:has(
97
100
  .qd-service-table-filter-input,
98
101
  .qd-service-table-filter-custom
99
102
  ) {
100
103
  padding-bottom: var(--td-comp-paddingTB-s);
101
104
  }
102
- .qd-service-table[data-v-d8bf5443] .t-table__filter--bottom-buttons {
105
+ .qd-service-table[data-v-75599918] .t-table__filter--bottom-buttons {
103
106
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s);
104
107
  }
105
- .qd-service-table--mini[data-v-d8bf5443] .t-table__filter-pop-content-inner {
108
+ .qd-service-table--mini[data-v-75599918] .t-table__filter-pop-content-inner {
106
109
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
107
110
  }
108
- .qd-service-table--mini[data-v-d8bf5443] .t-table__filter--bottom-buttons {
111
+ .qd-service-table--mini[data-v-75599918] .t-table__filter--bottom-buttons {
109
112
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs);
110
113
  }
111
- .qd-service-table--mini[data-v-d8bf5443] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
114
+ .qd-service-table--mini[data-v-75599918] .t-table__filter-pop-content-inner:has(.qd-service-table-filter-item) {
112
115
  padding: 0;
113
116
  }
114
- .qd-service-table--mini[data-v-d8bf5443] .t-table__filter-pop-content-inner:has(
117
+ .qd-service-table--mini[data-v-75599918] .t-table__filter-pop-content-inner:has(
115
118
  .qd-service-table-filter-input,
116
119
  .qd-service-table-filter-custom
117
120
  ) {
118
121
  padding-bottom: var(--td-comp-paddingTB-xs);
119
122
  }
120
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item {
123
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item {
121
124
  width: 266px;
122
125
  }
123
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__search,
124
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__all,
125
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__options {
126
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__search,
127
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__all,
128
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__options {
126
129
  padding: var(--td-comp-paddingTB-s) var(--td-comp-paddingLR-s) 0;
127
130
  }
128
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__all {
131
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__all {
129
132
  display: flex;
130
133
  align-items: center;
131
134
  padding: 0 var(--td-comp-paddingLR-s);
132
135
  border-bottom: 1px solid var(--td-component-stroke);
133
136
  }
134
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__options {
137
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__options {
135
138
  display: flex;
136
139
  flex-direction: column;
137
140
  height: 206px;
138
141
  padding: 0 var(--td-comp-paddingLR-s);
139
142
  overflow-y: auto;
140
143
  }
141
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__count {
144
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__count {
142
145
  margin-left: var(--td-comp-margin-xs);
143
146
  color: var(--td-text-color-placeholder);
144
147
  }
145
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item__cell {
148
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item__cell {
146
149
  pointer-events: none;
147
150
  }
148
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item .t-checkbox,
149
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item .t-radio {
151
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item .t-checkbox,
152
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item .t-radio {
150
153
  display: flex;
151
154
  align-items: center;
152
155
  }
153
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item .t-checkbox__label,
154
- .qd-service-table[data-v-d8bf5443] .qd-service-table-filter-item .t-radio__label {
156
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item .t-checkbox__label,
157
+ .qd-service-table[data-v-75599918] .qd-service-table-filter-item .t-radio__label {
155
158
  display: inline-flex;
156
159
  flex: 1 1 0;
157
160
  align-items: center;
158
161
  min-width: 0;
159
162
  overflow: hidden;
160
163
  }
161
- .qd-service-table--mini[data-v-d8bf5443] .qd-service-table-filter-item__search {
164
+ .qd-service-table--mini[data-v-75599918] .qd-service-table-filter-item__search {
162
165
  padding: var(--td-comp-paddingTB-xs) var(--td-comp-paddingLR-xs) 0;
163
166
  }
164
- .qd-service-table--mini[data-v-d8bf5443] .qd-service-table-filter-item__all,
165
- .qd-service-table--mini[data-v-d8bf5443] .qd-service-table-filter-item__options {
167
+ .qd-service-table--mini[data-v-75599918] .qd-service-table-filter-item__all,
168
+ .qd-service-table--mini[data-v-75599918] .qd-service-table-filter-item__options {
166
169
  padding: 0 var(--td-comp-paddingLR-xs);
167
170
  }
@@ -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-d8bf5443"]]);
5
+ const QdServiceTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-75599918"]]);
6
6
  export {
7
7
  QdServiceTable as default
8
8
  };
@@ -6,7 +6,7 @@ import { LoadingIcon, AddRectangleIcon, MinusRectangleIcon } from "tdesign-icons
6
6
  import { EnhancedTable, Table, Empty } from "tdesign-vue-next";
7
7
  import { validate } from "tdesign-vue-next/es/form/utils/form-model.mjs";
8
8
  import { useModal } from "../../../hooks/useModal.mjs";
9
- import { getTransformOffset } from "../../../utils/tools/index.mjs";
9
+ import { getTransformOffset } from "../../../utils/tools.mjs";
10
10
  import { useConfig } from "../../config-provider/useConfig.mjs";
11
11
  import { getQdFormComponentName, resolveQdFormItemOptions } from "../../form/utils.mjs";
12
12
  import QdServiceTableEditCell from "./edit-cell.mjs";
@@ -339,8 +339,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
339
339
  emit: __emit
340
340
  }) {
341
341
  useCssVars((_ctx) => ({
342
- "v108cdedc": affixedHeaderTransform.value,
343
- "v28fb2a5e": expandedRowWidth.value
342
+ "v298ee7ef": affixedHeaderTransform.value,
343
+ "v668d03b8": expandedRowWidth.value
344
344
  }));
345
345
  const props = __props;
346
346
  const emit = __emit;
@@ -398,6 +398,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
398
398
  const editingCells = shallowRef([]);
399
399
  const activeEditingCell = shallowRef();
400
400
  const autofocusEditingCell = shallowRef();
401
+ const selectedCell = shallowRef();
401
402
  const editingCellValidationErrors = shallowRef(/* @__PURE__ */ new Map());
402
403
  const expandedRowProxyMap = /* @__PURE__ */ new WeakMap();
403
404
  let dataChangePending = false;
@@ -1241,6 +1242,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1241
1242
  function isEditingCell(row, colKey) {
1242
1243
  return !!findEditingCell(row, colKey);
1243
1244
  }
1245
+ function isSelectedCell(row, colKey) {
1246
+ if (!selectedCell.value) return false;
1247
+ return getRowValue(selectedCell.value.row) === getRowValue(row) && selectedCell.value.colKey === colKey;
1248
+ }
1244
1249
  function resolveFormItemLazy(column) {
1245
1250
  const formItem = column.formItem;
1246
1251
  if (!formItem) return false;
@@ -1336,8 +1341,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1336
1341
  void exitEditingCell(activeEditingCell.value);
1337
1342
  }
1338
1343
  function handleCellClick(context) {
1339
- if (tableReadonly.value) return;
1340
1344
  const column = context.col;
1345
+ selectedCell.value = {
1346
+ row: context.row,
1347
+ colKey: column.colKey
1348
+ };
1349
+ if (tableReadonly.value) return;
1341
1350
  if (column.formItem) {
1342
1351
  const editingCell = findEditingCell(context.row, column.colKey);
1343
1352
  if (editingCell) enterEditingCell(editingCell, false);
@@ -1376,15 +1385,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1376
1385
  }
1377
1386
  function handleDocumentKeydown(event) {
1378
1387
  if (!activated.value) return;
1379
- if (event.key !== "Escape" || !activeEditingCell.value || event.defaultPrevented) return;
1388
+ if (event.key !== "Escape" || event.defaultPrevented) return;
1389
+ if (!activeEditingCell.value && !selectedCell.value) return;
1380
1390
  const target = event.target;
1381
1391
  if (target?.closest(".t-select-input--popup-visible, .t-popup__content, .t-dialog, .t-drawer, .t-image-viewer, .qd-multi-file-viewer")) {
1382
1392
  return;
1383
1393
  }
1394
+ selectedCell.value = void 0;
1384
1395
  exitActiveEditingCell();
1385
1396
  }
1386
1397
  function handleDocumentClick(event) {
1387
- if (!activated.value || !editingCells.value.length) return;
1398
+ if (!activated.value) return;
1399
+ if (!editingCells.value.length && !selectedCell.value) return;
1388
1400
  const hasVisibleDialog = Array.from(document.querySelectorAll(".t-dialog")).some((element) => element.getClientRects().length);
1389
1401
  const hasVisibleDrawer = Array.from(document.querySelectorAll(".t-drawer")).some((element) => element.classList.contains("t-drawer--open") || element.getAnimations({
1390
1402
  subtree: true
@@ -1392,6 +1404,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1392
1404
  if (hasVisibleDialog || hasVisibleDrawer) return;
1393
1405
  const insideInteractiveArea = event.composedPath().some((target) => target instanceof Element && target.matches("td, .t-popup, .qd-dialog, .t-dialog, .t-drawer, .t-image-viewer, .qd-multi-file-viewer, [data-popper-placement]"));
1394
1406
  if (insideInteractiveArea) return;
1407
+ selectedCell.value = void 0;
1395
1408
  void exitAllEditingCells();
1396
1409
  }
1397
1410
  function getFirstValidationError(results) {
@@ -1973,11 +1986,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1973
1986
  } : {}
1974
1987
  };
1975
1988
  const columnClassName = reColumn.className === void 0 ? [] : Array.isArray(reColumn.className) ? reColumn.className : [reColumn.className];
1989
+ const selectedCellClass = (context) => context.type === "td" && isSelectedCell(context.row, column.colKey) ? "qd-service-table__selected-cell" : "";
1990
+ const finalizeColumn = (col) => {
1991
+ const previousAttrs = col.attrs;
1992
+ col.attrs = (context) => ({
1993
+ ...typeof previousAttrs === "function" ? previousAttrs(context) : previousAttrs,
1994
+ onClickCapture: () => {
1995
+ if (context.type !== "td") return;
1996
+ selectedCell.value = {
1997
+ row: context.row,
1998
+ colKey: column.colKey
1999
+ };
2000
+ }
2001
+ });
2002
+ return col;
2003
+ };
1976
2004
  if (tableReadonly.value || !formItem) {
1977
2005
  if (!children && formItemColumns.value.length) {
1978
- reColumn.className = [...columnClassName, (context) => context.type === "td" ? "qd-service-table__non-editable-col" : ""];
2006
+ reColumn.className = [...columnClassName, selectedCellClass, (context) => context.type === "td" ? "qd-service-table__non-editable-col" : ""];
2007
+ } else if (!children) {
2008
+ reColumn.className = [...columnClassName, selectedCellClass];
1979
2009
  }
1980
- return reColumn;
2010
+ return finalizeColumn(reColumn);
1981
2011
  }
1982
2012
  const columnAttrs = column.attrs;
1983
2013
  reColumn.attrs = (context) => {
@@ -1997,7 +2027,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1997
2027
  }
1998
2028
  };
1999
2029
  };
2000
- reColumn.className = [...columnClassName, "qd-service-table__form-item-col", (context) => context.type === "td" && !resolveFormItemIfRender(column, context.row) ? "qd-service-table__non-editable-col" : ""];
2030
+ reColumn.className = [...columnClassName, "qd-service-table__form-item-col", selectedCellClass, (context) => context.type === "td" && !resolveFormItemIfRender(column, context.row) ? "qd-service-table__non-editable-col" : ""];
2001
2031
  const generatedEdit = {
2002
2032
  component: QdServiceTableEditCell,
2003
2033
  showEditIcon: false,
@@ -2067,7 +2097,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
2067
2097
  ...typeof explicitEdit?.props === "function" ? explicitEdit.props(context) : explicitEdit?.props
2068
2098
  })
2069
2099
  };
2070
- return reColumn;
2100
+ return finalizeColumn(reColumn);
2071
2101
  });
2072
2102
  }
2073
2103
  function getCurrentTableContentEl() {
@@ -3,7 +3,7 @@ import { defineComponent, mergeDefaults, computed, ref, inject, useTemplateRef,
3
3
  import TinymceVue from "@tinymce/tinymce-vue";
4
4
  import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.2.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { MD5, isEmpty, to, createExposeProxy } from "qidian-shared";
6
- import { getPublicUrl } from "../../utils/tools/index.mjs";
6
+ import { getPublicUrl } from "../../utils/tools.mjs";
7
7
  import { PROVIDE_TINYMCE, PROVIDE_UPLOAD } from "../config-provider/config.mjs";
8
8
  import { useConfig } from "../config-provider/useConfig.mjs";
9
9
  import { qdTinymceProps } from "./props.mjs";
@@ -1,6 +1,6 @@
1
1
  import './preview.css'
2
2
  import { defineComponent, mergeDefaults, inject, computed, createElementBlock, openBlock, createElementVNode } from "vue";
3
- import { getPublicUrl } from "../../utils/tools/index.mjs";
3
+ import { getPublicUrl } from "../../utils/tools.mjs";
4
4
  import { PROVIDE_TINYMCE } from "../config-provider/config.mjs";
5
5
  import { qdTinymcePreviewProps } from "./props.mjs";
6
6
  const _hoisted_1 = { class: "qd-tinymce-preview" };
@@ -3,7 +3,7 @@ import { defineComponent, computed, createElementBlock, openBlock, createElement
3
3
  import { formatByte } from "qidian-shared";
4
4
  import { TimeFilledIcon, ErrorCircleFilledIcon, CheckCircleFilledIcon, FileIcon } from "tdesign-icons-vue-next";
5
5
  import { Image, Button, Loading } from "tdesign-vue-next";
6
- import { isImage } from "../../../utils/tools/index.mjs";
6
+ import { isImage } from "../../../utils/tools.mjs";
7
7
  import { getFileType, handleAbridgeName } from "../common.mjs";
8
8
  import QdFileIcon from "../../file-icon/index.vue.mjs";
9
9
  const _hoisted_1 = { class: "qd-upload__flow-table-wrapper" };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useSlots, computed, createElementBlock, openBlock, createCommentVNode, Fragment, renderList, createBlock, createVNode, createElementVNode, unref, toDisplayString, renderSlot, withCtx, withModifiers, createTextVNode, normalizeClass } from "vue";
2
2
  import { ErrorCircleFilledIcon, DeleteIcon, BrowseIcon, AddIcon } from "tdesign-icons-vue-next";
3
3
  import { Loading, Image, Space, Divider, Link } from "tdesign-vue-next";
4
- import { isImage } from "../../../utils/tools/index.mjs";
4
+ import { isImage } from "../../../utils/tools.mjs";
5
5
  import { getFileType, handleAbridgeName, hasSlotContent } from "../common.mjs";
6
6
  import QdFileIcon from "../../file-icon/index.vue.mjs";
7
7
  const _hoisted_1 = { class: "t-upload__card" };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, useSlots, createElementBlock, openBlock, Fragment, renderList, createElementVNode, createCommentVNode, normalizeClass, createBlock, createVNode, unref, toDisplayString, renderSlot, withCtx, withModifiers, createTextVNode } from "vue";
2
2
  import { ErrorCircleFilledIcon, BrowseIcon, DeleteIcon, CheckCircleFilledIcon, TimeFilledIcon } from "tdesign-icons-vue-next";
3
3
  import { Loading, Image, Space, Divider } from "tdesign-vue-next";
4
- import { isImage } from "../../../utils/tools/index.mjs";
4
+ import { isImage } from "../../../utils/tools.mjs";
5
5
  import { getFileType, handleAbridgeName, hasSlotContent } from "../common.mjs";
6
6
  import QdFileIcon from "../../file-icon/index.vue.mjs";
7
7
  const _hoisted_1 = { class: "t-upload__card clearfix" };
@@ -1,4 +1,4 @@
1
- import { hasPermiOr } from "../utils/auth/index.mjs";
1
+ import { hasPermiOr } from "../utils/auth.mjs";
2
2
  const hasPermiDirective = {
3
3
  mounted(el, binding) {
4
4
  checkPermission(el, binding);
@@ -1,4 +1,4 @@
1
- import { hasRoleOr } from "../utils/auth/index.mjs";
1
+ import { hasRoleOr } from "../utils/auth.mjs";
2
2
  const hasRoleDirective = {
3
3
  mounted(el, binding) {
4
4
  checkRole(el, binding);
@@ -3,7 +3,7 @@ import { isEmpty, to, suspectedWrapperPromise, parseRelaxedJSON } from "qidian-s
3
3
  import { ref, onBeforeUnmount } from "vue";
4
4
  import { useConfig } from "../../components/config-provider/useConfig.mjs";
5
5
  import { useModal } from "../useModal.mjs";
6
- import { useUICsl } from "../../utils/tools/index.mjs";
6
+ import { useUICsl } from "../../utils/tools.mjs";
7
7
  import { fetchEventSource } from "../../node_modules/.pnpm/@microsoft_fetch-event-source@2.0.1/node_modules/@microsoft/fetch-event-source/lib/esm/fetch.mjs";
8
8
  const csl = useUICsl("useAgentChat");
9
9
  function useAgentChat(options) {
@@ -1,6 +1,6 @@
1
1
  import { camelize, to, isEmpty, findEnum, suspectedWrapperPromise } from "qidian-shared";
2
2
  import { ref, watchEffect, toRefs } from "vue";
3
- import { useUICsl } from "../../utils/tools/index.mjs";
3
+ import { useUICsl } from "../../utils/tools.mjs";
4
4
  const csl = useUICsl("useDict");
5
5
  const dictCache = /* @__PURE__ */ new Map();
6
6
  const dictPromiseCache = /* @__PURE__ */ new Map();
@@ -2,8 +2,8 @@ import { suspectedWrapperPromise, isEmpty } from "qidian-shared";
2
2
  import { DialogPlugin, NotifyPlugin, MessagePlugin } from "tdesign-vue-next";
3
3
  import { getCurrentInstance, onDeactivated, onActivated, nextTick, isVNode } from "vue";
4
4
  import { useConfig } from "../components/config-provider/useConfig.mjs";
5
- import { setOverlayActive, OVERLAY_DEACTIVATED_CLASS, updateOverlayMasks, focusTopOverlay, OVERLAY_CLOSING_CLASS, unregisterOverlayEsc, setOverlayEscEnabled, registerOverlayEsc, setOverlayOpenedTime, markPreviousOverlaysTransparent } from "../utils/overlayStack/index.mjs";
6
- import { reAttach, resolveAttachParent } from "../utils/tools/index.mjs";
5
+ import { setOverlayActive, OVERLAY_DEACTIVATED_CLASS, updateOverlayMasks, focusTopOverlay, OVERLAY_CLOSING_CLASS, unregisterOverlayEsc, setOverlayEscEnabled, registerOverlayEsc, setOverlayOpenedTime, markPreviousOverlaysTransparent } from "../utils/overlayStack.mjs";
6
+ import { reAttach, resolveAttachParent } from "../utils/tools.mjs";
7
7
  const visibleDialogInstances = /* @__PURE__ */ new Set();
8
8
  const aliveDialogInstances = /* @__PURE__ */ new Set();
9
9
  let modalSeq = 0;
@@ -1,6 +1,6 @@
1
1
  import { isEmpty, validator, to } from "qidian-shared";
2
2
  import { ref } from "vue";
3
- import { useUICsl } from "../../utils/tools/index.mjs";
3
+ import { useUICsl } from "../../utils/tools.mjs";
4
4
  const csl = useUICsl("useUserAvatar");
5
5
  const avatarCache = /* @__PURE__ */ new Map();
6
6
  const avatarPromiseCache = /* @__PURE__ */ new Map();
package/dist/index.mjs CHANGED
@@ -63,9 +63,9 @@ import { usePerfectScrollbar } from "./hooks/usePerfectScrollbar.mjs";
63
63
  import { useReadonly } from "./hooks/useReadonly.mjs";
64
64
  import { useTheme } from "./hooks/useTheme.mjs";
65
65
  import { useUserAvatar } from "./hooks/useUserAvatar/index.mjs";
66
- import * as index from "./utils/auth/index.mjs";
67
- import { useUICsl } from "./utils/tools/index.mjs";
68
- import { formatDuration } from "./utils/date/index.mjs";
66
+ import * as auth from "./utils/auth.mjs";
67
+ import { useUICsl } from "./utils/tools.mjs";
68
+ import { formatDuration } from "./utils/date.mjs";
69
69
  export {
70
70
  PROVIDE_FORM_ADD_AFTER_SUBMIT_QUEUE,
71
71
  PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE,
@@ -110,7 +110,7 @@ export {
110
110
  default11 as QdServiceTreeSelect,
111
111
  default37 as QdSteps,
112
112
  default38 as QdUpload,
113
- index as auth,
113
+ auth,
114
114
  defineQdCrudList,
115
115
  defineQdCrudTable,
116
116
  defineQdCrudTabsTable,
@@ -1,4 +1,4 @@
1
- import { useUICsl } from "../tools/index.mjs";
1
+ import { useUICsl } from "./tools.mjs";
2
2
  const csl = useUICsl("auth");
3
3
  function authPermission(permission) {
4
4
  const allPermission = "*:*:*";
@@ -1,6 +1,6 @@
1
- import dayjs from "../../_virtual/dayjs.min.mjs";
2
- import { useConfig } from "../../components/config-provider/useConfig.mjs";
3
- import { useUICsl } from "../tools/index.mjs";
1
+ import dayjs from "../_virtual/dayjs.min.mjs";
2
+ import { useConfig } from "../components/config-provider/useConfig.mjs";
3
+ import { useUICsl } from "./tools.mjs";
4
4
  const csl = useUICsl("date");
5
5
  function formatDuration(startDate, endDate) {
6
6
  const { t } = useConfig("timeFormat");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qidian-vue-ui",
3
- "version": "2.0.56",
3
+ "version": "2.0.57",
4
4
  "description": "基于 TDesign 的 QiDian Vue UI 组件库",
5
5
  "author": "qidian",
6
6
  "license": "MIT",
File without changes
File without changes
File without changes
File without changes