qidian-vue-ui 1.1.25 → 1.1.27

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 (32) hide show
  1. package/dist/components/avatar/index.vue.mjs +1 -1
  2. package/dist/components/avatar/index.vue2.mjs +1 -1
  3. package/dist/components/avatar/index.vue2.mjs.map +1 -1
  4. package/dist/components/config-provider/index.d.ts +6 -0
  5. package/dist/components/config-provider/types.d.ts +2 -0
  6. package/dist/components/config-provider/useConfig.d.ts +8 -0
  7. package/dist/components/crud/list.vue.mjs +1 -1
  8. package/dist/components/crud/list.vue2.mjs +6 -26
  9. package/dist/components/crud/list.vue2.mjs.map +1 -1
  10. package/dist/components/crud/search.vue.d.ts +3 -3
  11. package/dist/components/crud/search.vue.mjs +1 -1
  12. package/dist/components/crud/search.vue2.mjs +110 -8
  13. package/dist/components/crud/search.vue2.mjs.map +1 -1
  14. package/dist/components/crud/table.vue.mjs +1 -1
  15. package/dist/components/crud/table.vue2.mjs +6 -23
  16. package/dist/components/crud/table.vue2.mjs.map +1 -1
  17. package/dist/components/crud/types.d.ts +4 -1
  18. package/dist/components/image/index.vue.mjs +1 -1
  19. package/dist/components/image/index.vue.mjs.map +1 -1
  20. package/dist/components/org/select/index.vue.mjs +3 -2
  21. package/dist/components/org/select/index.vue.mjs.map +1 -1
  22. package/dist/locales/en-US.d.ts +2 -0
  23. package/dist/locales/en-US.mjs +4 -2
  24. package/dist/locales/en-US.mjs.map +1 -1
  25. package/dist/locales/zh-CN.d.ts +2 -0
  26. package/dist/locales/zh-CN.mjs +4 -2
  27. package/dist/locales/zh-CN.mjs.map +1 -1
  28. package/dist/locales/zh-TW.d.ts +2 -0
  29. package/dist/locales/zh-TW.mjs +4 -2
  30. package/dist/locales/zh-TW.mjs.map +1 -1
  31. package/dist/qidian-vue-ui.css +35 -22
  32. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./index.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4f36ffc5"]]);
4
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3698cec3"]]);
5
5
  export {
6
6
  index as default
7
7
  };
@@ -53,7 +53,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
53
53
  } = props;
54
54
  const reAlt = avatarOptions.alt || name;
55
55
  const serviceOptions = { service: service || globalAvatarProps.value?.service };
56
- const reImageProps = merge(imageProps, qdAvatarImageProps);
56
+ const reImageProps = merge({}, imageProps, qdAvatarImageProps);
57
57
  return {
58
58
  avatarOptions: {
59
59
  ...avatarOptions,
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/avatar/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-avatar\">\n <t-avatar\n v-loading=\"{ loading, size: 'small' }\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template #icon>\n <slot name=\"icon\"><user-icon /></slot>\n </template>\n\n <template v-for=\"name in filterSlots($slots, ['icon'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-avatar>\n\n <span v-if=\"reProps.name\" :class=\"`qd-avatar__name ${nameClassName}`\">{{ reProps.name }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdAvatarProps } from './types'\n import type { AbortWrapperPromise } from 'qidian-shared'\n import { Avatar as TAvatar } from 'tdesign-vue-next'\n import { UserIcon } from 'tdesign-icons-vue-next'\n import { abortWrapper, filterSlots, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarImageProps, qdAvatarProps } from './props'\n import { ref, computed, watch, inject } from 'vue'\n import { PROVIDE_AVATAR } from '../config-provider/config'\n import { useUserAvatar } from '../../hooks'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdAvatar'\n })\n\n const props = withDefaults(defineProps<QdAvatarProps>(), qdAvatarProps)\n\n const globalAvatarProps = inject(\n PROVIDE_AVATAR,\n computed(() => undefined)\n )\n\n const { loading, getAvatar } = useUserAvatar()\n let serviceAbort: AbortWrapperPromise<Awaited<ReturnType<typeof getAvatar>>> | undefined\n\n const reImage = ref<string | number | undefined>()\n const reProps = computed(() => {\n const {\n name,\n mode,\n avatarClassName,\n nameClassName,\n image,\n service,\n imageProps,\n ...avatarOptions\n } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n const reImageProps = merge(imageProps, qdAvatarImageProps)\n\n return {\n avatarOptions: {\n ...avatarOptions,\n imageProps: reImageProps,\n alt: reAlt\n },\n serviceOptions,\n name,\n mode,\n avatarClassName,\n nameClassName,\n image\n }\n })\n\n watch(\n () => reProps.value.image,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n serviceAbort?.abort?.('abort')\n const { mode, serviceOptions } = reProps.value\n if (mode === 'ossId') {\n const { service } = serviceOptions\n if (!service || isEmpty(newVal) || validator(newVal, 'url')) {\n reImage.value = newVal\n return\n }\n\n serviceAbort = abortWrapper(getAvatar(newVal))\n const res = await serviceAbort\n reImage.value = res\n return\n }\n\n reImage.value = newVal\n },\n { immediate: true }\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-avatar {\n display: inline-flex;\n align-items: center;\n font: var(--td-font-body-medium);\n color: var(--td-text-color-primary);\n\n &__name {\n margin-left: var(--td-comp-margin-s);\n }\n }\n</style>\n"],"names":["_openBlock","_createElementBlock","_createBlock","_unref","TAvatar","_mergeProps","_renderSlot","_createVNode","$slots","_withCtx","_normalizeProps","_guardReactiveProps","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,EAAE,SAAS,UAAA,IAAc,cAAA;AAC/B,QAAI;AAEJ,UAAM,UAAU,IAAA;AAChB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AACJ,YAAM,QAAQ,cAAc,OAAO;AACnC,YAAM,iBAAiB,EAAE,SAAS,WAAW,kBAAkB,OAAO,QAAA;AACtE,YAAM,eAAe,MAAM,YAAY,kBAAkB;AAEzD,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UACH,YAAY;AAAA,UACZ,KAAK;AAAA,QAAA;AAAA,QAEP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,sBAAc,QAAQ,OAAO;AAC7B,cAAM,EAAE,MAAM,eAAA,IAAmB,QAAQ;AACzC,YAAI,SAAS,SAAS;AACpB,gBAAM,EAAE,YAAY;AACpB,cAAI,CAAC,WAAW,QAAQ,MAAM,KAAK,UAAU,QAAQ,KAAK,GAAG;AAC3D,oBAAQ,QAAQ;AAChB;AAAA,UACF;AAEA,yBAAe,aAAa,UAAU,MAAM,CAAC;AAC7C,gBAAM,MAAM,MAAM;AAClB,kBAAQ,QAAQ;AAChB;AAAA,QACF;AAEA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AAnGpB,aAAAA,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM;AAAA,qCAhBJC,YAaWC,MAAAC,MAAA,GAbXC,WAaW,EAXR,OAAO,QAAA,gBAAA,GACA,QAAA,MAAQ,eAAa;AAAA,UAC5B,OAAK,OAAS,QAAA,UAAO,WAAgB,QAAA,aAAe,QAAA;AAAA,QAAA;UAE1C,cACT,MAAsC;AAAA,YAAtCC,WAAsC,yBAAtC,MAAsC;AAAA,cAApBC,YAAaJ,MAAA,QAAA,CAAA;AAAA,YAAA;;;;qBAGRA,MAAA,WAAA,EAAYK,KAAAA,QAAM,CAAA,MAAA,CAAA,GAAA,CAA1B,SAAI;;;cACnB,IAAAC,QAAA,CAD+D,cAAS;AAAA,gBACxEH,WAAwC,KAAA,QAA3B,MAAII,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,cAAA;;;;0CAVzBR,MAAA,OAAA,GAAO,MAAA,QAAA,CAAA;AAAA,QAAA;QAcV,QAAA,MAAQ,qBAApBF,mBAA+F,QAAA;AAAA;UAApE,yCAA0B,QAAA,aAAa,EAAA;AAAA,QAAA,GAAOW,gBAAA,QAAA,MAAQ,IAAI,GAAA,CAAA;;;;;"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/avatar/index.vue"],"sourcesContent":["<template>\n <div class=\"qd-avatar\">\n <t-avatar\n v-loading=\"{ loading, size: 'small' }\"\n :class=\"avatarClassName\"\n v-bind=\"reProps.avatarOptions\"\n :image=\"typeof reImage === 'number' ? reImage + '' : reImage\"\n >\n <template #icon>\n <slot name=\"icon\"><user-icon /></slot>\n </template>\n\n <template v-for=\"name in filterSlots($slots, ['icon'])\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-avatar>\n\n <span v-if=\"reProps.name\" :class=\"`qd-avatar__name ${nameClassName}`\">{{ reProps.name }}</span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdAvatarProps } from './types'\n import type { AbortWrapperPromise } from 'qidian-shared'\n import { Avatar as TAvatar } from 'tdesign-vue-next'\n import { UserIcon } from 'tdesign-icons-vue-next'\n import { abortWrapper, filterSlots, isEmpty, validator } from 'qidian-shared'\n import { qdAvatarImageProps, qdAvatarProps } from './props'\n import { ref, computed, watch, inject } from 'vue'\n import { PROVIDE_AVATAR } from '../config-provider/config'\n import { useUserAvatar } from '../../hooks'\n import { merge } from 'lodash-es'\n\n defineOptions({\n name: 'QdAvatar'\n })\n\n const props = withDefaults(defineProps<QdAvatarProps>(), qdAvatarProps)\n\n const globalAvatarProps = inject(\n PROVIDE_AVATAR,\n computed(() => undefined)\n )\n\n const { loading, getAvatar } = useUserAvatar()\n let serviceAbort: AbortWrapperPromise<Awaited<ReturnType<typeof getAvatar>>> | undefined\n\n const reImage = ref<string | number | undefined>()\n const reProps = computed(() => {\n const {\n name,\n mode,\n avatarClassName,\n nameClassName,\n image,\n service,\n imageProps,\n ...avatarOptions\n } = props\n const reAlt = avatarOptions.alt || name\n const serviceOptions = { service: service || globalAvatarProps.value?.service }\n const reImageProps = merge({}, imageProps, qdAvatarImageProps)\n\n return {\n avatarOptions: {\n ...avatarOptions,\n imageProps: reImageProps,\n alt: reAlt\n },\n serviceOptions,\n name,\n mode,\n avatarClassName,\n nameClassName,\n image\n }\n })\n\n watch(\n () => reProps.value.image,\n async (newVal, oldVal) => {\n if (newVal === oldVal) return\n\n serviceAbort?.abort?.('abort')\n const { mode, serviceOptions } = reProps.value\n if (mode === 'ossId') {\n const { service } = serviceOptions\n if (!service || isEmpty(newVal) || validator(newVal, 'url')) {\n reImage.value = newVal\n return\n }\n\n serviceAbort = abortWrapper(getAvatar(newVal))\n const res = await serviceAbort\n reImage.value = res\n return\n }\n\n reImage.value = newVal\n },\n { immediate: true }\n )\n</script>\n\n<style lang=\"less\" scoped>\n .qd-avatar {\n display: inline-flex;\n align-items: center;\n font: var(--td-font-body-medium);\n color: var(--td-text-color-primary);\n\n &__name {\n margin-left: var(--td-comp-margin-s);\n }\n }\n</style>\n"],"names":["_openBlock","_createElementBlock","_createBlock","_unref","TAvatar","_mergeProps","_renderSlot","_createVNode","$slots","_withCtx","_normalizeProps","_guardReactiveProps","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCE,UAAM,QAAQ;AAEd,UAAM,oBAAoB;AAAA,MACxB;AAAA,MACA,SAAS,MAAM,MAAS;AAAA,IAAA;AAG1B,UAAM,EAAE,SAAS,UAAA,IAAc,cAAA;AAC/B,QAAI;AAEJ,UAAM,UAAU,IAAA;AAChB,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM;AAAA,QACJ;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,GAAG;AAAA,MAAA,IACD;AACJ,YAAM,QAAQ,cAAc,OAAO;AACnC,YAAM,iBAAiB,EAAE,SAAS,WAAW,kBAAkB,OAAO,QAAA;AACtE,YAAM,eAAe,MAAM,IAAI,YAAY,kBAAkB;AAE7D,aAAO;AAAA,QACL,eAAe;AAAA,UACb,GAAG;AAAA,UACH,YAAY;AAAA,UACZ,KAAK;AAAA,QAAA;AAAA,QAEP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAAA,IAEJ,CAAC;AAED;AAAA,MACE,MAAM,QAAQ,MAAM;AAAA,MACpB,OAAO,QAAQ,WAAW;AACxB,YAAI,WAAW,OAAQ;AAEvB,sBAAc,QAAQ,OAAO;AAC7B,cAAM,EAAE,MAAM,eAAA,IAAmB,QAAQ;AACzC,YAAI,SAAS,SAAS;AACpB,gBAAM,EAAE,YAAY;AACpB,cAAI,CAAC,WAAW,QAAQ,MAAM,KAAK,UAAU,QAAQ,KAAK,GAAG;AAC3D,oBAAQ,QAAQ;AAChB;AAAA,UACF;AAEA,yBAAe,aAAa,UAAU,MAAM,CAAC;AAC7C,gBAAM,MAAM,MAAM;AAClB,kBAAQ,QAAQ;AAChB;AAAA,QACF;AAEA,gBAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,EAAE,WAAW,KAAA;AAAA,IAAK;;;AAnGpB,aAAAA,UAAA,GAAAC,mBAiBM,OAjBN,YAiBM;AAAA,qCAhBJC,YAaWC,MAAAC,MAAA,GAbXC,WAaW,EAXR,OAAO,QAAA,gBAAA,GACA,QAAA,MAAQ,eAAa;AAAA,UAC5B,OAAK,OAAS,QAAA,UAAO,WAAgB,QAAA,aAAe,QAAA;AAAA,QAAA;UAE1C,cACT,MAAsC;AAAA,YAAtCC,WAAsC,yBAAtC,MAAsC;AAAA,cAApBC,YAAaJ,MAAA,QAAA,CAAA;AAAA,YAAA;;;;qBAGRA,MAAA,WAAA,EAAYK,KAAAA,QAAM,CAAA,MAAA,CAAA,GAAA,CAA1B,SAAI;;;cACnB,IAAAC,QAAA,CAD+D,cAAS;AAAA,gBACxEH,WAAwC,KAAA,QAA3B,MAAII,eAAAC,mBAAU,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,cAAA;;;;0CAVzBR,MAAA,OAAA,GAAO,MAAA,QAAA,CAAA;AAAA,QAAA;QAcV,QAAA,MAAQ,qBAApBF,mBAA+F,QAAA;AAAA;UAApE,yCAA0B,QAAA,aAAa,EAAA;AAAA,QAAA,GAAOW,gBAAA,QAAA,MAAQ,IAAI,GAAA,CAAA;;;;;"}
@@ -35,6 +35,8 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
35
35
  deleteWrapperBodyText?: string;
36
36
  collapseSearchText?: string;
37
37
  expandSearchText?: string;
38
+ hideSearchText?: string;
39
+ showSearchText?: string;
38
40
  refreshText?: string;
39
41
  collapseTreeText?: string;
40
42
  expandTreeText?: string;
@@ -108,6 +110,8 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
108
110
  deleteWrapperBodyText?: string;
109
111
  collapseSearchText?: string;
110
112
  expandSearchText?: string;
113
+ hideSearchText?: string;
114
+ showSearchText?: string;
111
115
  refreshText?: string;
112
116
  collapseTreeText?: string;
113
117
  expandTreeText?: string;
@@ -172,6 +176,8 @@ export declare const QdConfigProvider: import("vue").DefineComponent<{
172
176
  deleteWrapperBodyText?: string;
173
177
  collapseSearchText?: string;
174
178
  expandSearchText?: string;
179
+ hideSearchText?: string;
180
+ showSearchText?: string;
175
181
  refreshText?: string;
176
182
  collapseTreeText?: string;
177
183
  expandTreeText?: string;
@@ -45,6 +45,8 @@ export interface QdConfigProviderProps {
45
45
  deleteWrapperBodyText?: string;
46
46
  collapseSearchText?: string;
47
47
  expandSearchText?: string;
48
+ hideSearchText?: string;
49
+ showSearchText?: string;
48
50
  refreshText?: string;
49
51
  collapseTreeText?: string;
50
52
  expandTreeText?: string;
@@ -26,6 +26,8 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
26
26
  deleteWrapperBodyText?: string;
27
27
  collapseSearchText?: string;
28
28
  expandSearchText?: string;
29
+ hideSearchText?: string;
30
+ showSearchText?: string;
29
31
  refreshText?: string;
30
32
  collapseTreeText?: string;
31
33
  expandTreeText?: string;
@@ -85,6 +87,8 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
85
87
  deleteWrapperBodyText?: string;
86
88
  collapseSearchText?: string;
87
89
  expandSearchText?: string;
90
+ hideSearchText?: string;
91
+ showSearchText?: string;
88
92
  refreshText?: string;
89
93
  collapseTreeText?: string;
90
94
  expandTreeText?: string;
@@ -144,6 +148,8 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
144
148
  deleteWrapperBodyText?: string;
145
149
  collapseSearchText?: string;
146
150
  expandSearchText?: string;
151
+ hideSearchText?: string;
152
+ showSearchText?: string;
147
153
  refreshText?: string;
148
154
  collapseTreeText?: string;
149
155
  expandTreeText?: string;
@@ -204,6 +210,8 @@ export declare function useConfig<T extends keyof NonNullable<QdConfigProviderPr
204
210
  deleteWrapperBodyText?: string;
205
211
  collapseSearchText?: string;
206
212
  expandSearchText?: string;
213
+ hideSearchText?: string;
214
+ showSearchText?: string;
207
215
  refreshText?: string;
208
216
  collapseTreeText?: string;
209
217
  expandTreeText?: string;
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./list.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const list = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-66a035f0"]]);
4
+ const list = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b27a5389"]]);
5
5
  export {
6
6
  list as default
7
7
  };
@@ -1,10 +1,10 @@
1
- import { defineComponent, mergeDefaults, computed, useTemplateRef, onMounted, createElementBlock, openBlock, normalizeClass, createCommentVNode, createVNode, createBlock, mergeProps, unref, isRef, createSlots, withCtx, createTextVNode, toDisplayString, renderList, renderSlot, normalizeProps, guardReactiveProps, nextTick } from "vue";
1
+ import { defineComponent, mergeDefaults, computed, useTemplateRef, onMounted, createElementBlock, openBlock, normalizeClass, createCommentVNode, createVNode, createBlock, mergeProps, unref, isRef, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, nextTick } from "vue";
2
2
  import { extractSlotsWithPrefix } from "qidian-shared";
3
- import { Space, Button } from "tdesign-vue-next";
3
+ import { Space } from "tdesign-vue-next";
4
4
  import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.22_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
5
  import { qdCrudListProps } from "./props.mjs";
6
6
  import "tdesign-icons-vue-next";
7
- import { useConfig } from "../config-provider/useConfig.mjs";
7
+ import "../../locales/zh-CN.mjs";
8
8
  /* empty css */
9
9
  import QdServiceList from "../service/list.vue.mjs";
10
10
  /* empty css */
@@ -81,9 +81,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
81
81
  } = useVModels(props, emit, {
82
82
  passive: true
83
83
  });
84
- const {
85
- t
86
- } = useConfig("crud");
87
84
  const reProps = computed(() => {
88
85
  const {
89
86
  data: data2,
@@ -141,27 +138,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
141
138
  data: unref(searchData),
142
139
  "onUpdate:data": _cache[0] || (_cache[0] = ($event) => isRef(searchData) ? searchData.value = $event : null)
143
140
  }, reProps.value.searchOptions, {
144
- "on-submit": triggerSearch
141
+ onSubmit: triggerSearch,
142
+ onSearch: handleSearch,
143
+ onReset: handleResetSearch
145
144
  }), createSlots({
146
- "form-footer": withCtx(() => [createVNode(unref(Space), {
147
- align: "center",
148
- size: "small"
149
- }, {
150
- default: withCtx(() => [createVNode(unref(Button), {
151
- type: "submit",
152
- onClick: handleSearch
153
- }, {
154
- default: withCtx(() => [createTextVNode(toDisplayString(unref(t)("searchText")), 1)]),
155
- _: 1
156
- }), createVNode(unref(Button), {
157
- variant: "outline",
158
- onClick: handleResetSearch
159
- }, {
160
- default: withCtx(() => [createTextVNode(toDisplayString(unref(t)("resetText")), 1)]),
161
- _: 1
162
- })]),
163
- _: 1
164
- })]),
165
145
  _: 2
166
146
  }, [renderList(unref(extractSlotsWithPrefix)(_ctx.$slots, "search"), (item) => {
167
147
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"list.vue2.mjs","sources":["../../../src/components/crud/list.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'qd-crud-list',\n reProps.serviceListOptions.scroll?.target ? 'qd-crud-list--has-scroll-target' : ''\n ]\"\n >\n <div v-if=\"reProps.searchOptions?.items?.length || $slots.actions\" class=\"qd-crud-list__header\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n ref=\"search\"\n v-model:data=\"searchData\"\n v-bind=\"reProps.searchOptions\"\n :on-submit=\"triggerSearch\"\n >\n <template #form-footer>\n <t-space align=\"center\" size=\"small\">\n <t-button type=\"submit\" @click=\"handleSearch\">{{ t('searchText') }}</t-button>\n <t-button variant=\"outline\" @click=\"handleResetSearch\">{{ t('resetText') }}</t-button>\n </t-space>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-search>\n\n <div v-if=\"$slots.actions\" class=\"qd-crud-list__toolbar\">\n <t-space align=\"center\" size=\"small\">\n <slot name=\"actions\" />\n </t-space>\n </div>\n </div>\n\n <qd-service-list ref=\"list\" v-model:data=\"data\" v-bind=\"reProps.serviceListOptions\">\n <template v-if=\"$slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'list')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-list>\n </div>\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 { TableRowData } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudListInstanceFunctions, QdCrudListProps } from './types'\n import type { QdFormSubmitContext } from '../form'\n import type { QdServiceListProps } from '../service'\n import { computed, nextTick, onMounted, useTemplateRef } from 'vue'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n import { Space as TSpace, Button as TButton } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { qdCrudListProps } from './props'\n import { QdServiceList } from '../service'\n import QdCrudSearch from './search.vue'\n import { useConfig } from '../config-provider/useConfig'\n\n type Props = QdCrudListProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudListProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n }>()\n const { data, searchData } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t } = useConfig('crud')\n\n const reProps = computed(() => {\n const { data, searchData: inSearchData, search, transformParams, ...serviceListOptions } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n return {\n searchOptions: search,\n serviceListOptions: {\n ...serviceListOptions,\n transformParams: mergedTransformParams\n } as QdServiceListProps<D, R, P, TP, Pag>,\n models: {\n data,\n searchData: inSearchData\n }\n }\n })\n\n const searchRef = useTemplateRef('search')\n const listRef = useTemplateRef('list')\n\n function handleSearch() {}\n\n async function handleResetSearch() {\n searchRef.value?.reset()\n await nextTick()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n listRef.value?.refresh()\n }\n\n const expose = {} as QdCrudListInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n Object.assign(expose, listRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-list {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n &__header + .qd-service-list {\n margin-top: var(--td-comp-margin-l);\n }\n\n .qd-crud-search + .qd-crud-list__toolbar {\n margin-top: var(--td-comp-margin-l);\n }\n\n &__header > .qd-crud-search {\n :deep(.qd-form) {\n display: flex;\n align-items: flex-end;\n flex-flow: row wrap;\n\n & > .qd-grid {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-l);\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n }\n\n & > .qd-service-list {\n flex: 1 1 0;\n }\n\n &--has-scroll-target {\n & > .qd-service-list {\n flex: auto;\n }\n\n .qd-crud-list {\n &__header {\n position: sticky;\n top: 0;\n z-index: 10;\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","data","searchData","useVModels","passive","t","useConfig","reProps","computed","inSearchData","search","transformParams","serviceListOptions","mergedTransformParams","params","merged","value","searchOptions","models","searchRef","useTemplateRef","listRef","handleSearch","handleResetSearch","reset","nextTick","submit","triggerSearch","validateResult","refresh","expose","onMounted","Object","assign","__expose","_createElementBlock","class","_normalizeClass","scroll","target","items","length","$slots","actions","_openBlock","_hoisted_1","_createBlock","QdCrudSearch","_mergeProps","ref","_unref","$event","_createSlots","_createVNode","TSpace","align","size","TButton","type","onClick","variant","extractSlotsWithPrefix","item","name","filterName","fn","_withCtx","slotProps","_renderSlot","_ctx","originalName","undefined","_hoisted_2","_","default"],"mappings":"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"}
1
+ {"version":3,"file":"list.vue2.mjs","sources":["../../../src/components/crud/list.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'qd-crud-list',\n reProps.serviceListOptions.scroll?.target ? 'qd-crud-list--has-scroll-target' : ''\n ]\"\n >\n <div v-if=\"reProps.searchOptions?.items?.length || $slots.actions\" class=\"qd-crud-list__header\">\n <qd-crud-search\n v-if=\"reProps.searchOptions?.items?.length\"\n ref=\"search\"\n v-model:data=\"searchData\"\n v-bind=\"reProps.searchOptions\"\n @submit=\"triggerSearch\"\n @search=\"handleSearch\"\n @reset=\"handleResetSearch\"\n >\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'search')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-crud-search>\n\n <div v-if=\"$slots.actions\" class=\"qd-crud-list__toolbar\">\n <t-space align=\"center\" size=\"small\">\n <slot name=\"actions\" />\n </t-space>\n </div>\n </div>\n\n <qd-service-list ref=\"list\" v-model:data=\"data\" v-bind=\"reProps.serviceListOptions\">\n <template v-if=\"$slots.default\" #default=\"slotProps\">\n <slot v-bind=\"slotProps\" />\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'list')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-service-list>\n </div>\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 { TableRowData } from 'tdesign-vue-next'\n import type { ServiceMaybePageParams, ServicePageParams, ServicePagination } from 'qidian-shared'\n import type { QdCrudListInstanceFunctions, QdCrudListProps } from './types'\n import type { QdFormSubmitContext } from '../form'\n import type { QdServiceListInstanceFunctions, QdServiceListProps } from '../service'\n import { computed, nextTick, onMounted, useTemplateRef } from 'vue'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n import { Space as TSpace } from 'tdesign-vue-next'\n import { useVModels } from '@vueuse/core'\n import { qdCrudListProps } from './props'\n import { QdServiceList } from '../service'\n import QdCrudSearch from './search.vue'\n\n type Props = QdCrudListProps<D, R, P, TP, Pag>\n\n const props = withDefaults(defineProps<Props>(), qdCrudListProps)\n const emit = defineEmits<{\n 'update:searchData': [Props['searchData']]\n 'update:data': [Props['data']]\n }>()\n const { data, searchData } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const reProps = computed(() => {\n const { data, searchData: inSearchData, search, transformParams, ...serviceListOptions } = props\n\n const mergedTransformParams = (params: ServiceMaybePageParams<Pag>) => {\n const merged = { ...params, ...searchData.value } as ServiceMaybePageParams<Pag>\n if (transformParams) return transformParams(merged)\n return merged\n }\n\n return {\n searchOptions: search,\n serviceListOptions: {\n ...serviceListOptions,\n transformParams: mergedTransformParams\n } as QdServiceListProps<D, R, P, TP, Pag>,\n models: {\n data,\n searchData: inSearchData\n }\n }\n })\n\n const searchRef = useTemplateRef('search')\n const listRef = useTemplateRef<QdServiceListInstanceFunctions<D, R, P, TP, Pag>>('list')\n\n function handleSearch() {}\n\n async function handleResetSearch() {\n searchRef.value?.reset()\n await nextTick()\n searchRef.value?.submit()\n }\n\n function triggerSearch({ validateResult }: QdFormSubmitContext<typeof searchData.value>) {\n if (validateResult !== true) return\n\n listRef.value?.refresh()\n }\n\n const expose = {} as QdCrudListInstanceFunctions<D, R, P, TP, Pag>\n\n onMounted(() => {\n Object.assign(expose, listRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-list {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n\n &__header + .qd-service-list {\n margin-top: var(--td-comp-margin-l);\n }\n\n .qd-crud-search + .qd-crud-list__toolbar {\n margin-top: var(--td-comp-margin-l);\n }\n\n &__header > .qd-crud-search {\n :deep(.qd-form) {\n display: flex;\n align-items: flex-end;\n flex-flow: row wrap;\n\n & > .qd-grid {\n flex: 1 1 0;\n overflow: hidden;\n margin-right: var(--td-comp-margin-l);\n }\n }\n }\n\n &__toolbar {\n display: flex;\n justify-content: space-between;\n }\n\n & > .qd-service-list {\n flex: 1 1 0;\n }\n\n &--has-scroll-target {\n & > .qd-service-list {\n flex: auto;\n }\n\n .qd-crud-list {\n &__header {\n position: sticky;\n top: 0;\n z-index: 10;\n }\n }\n }\n }\n</style>\n"],"names":["props","__props","emit","__emit","data","searchData","useVModels","passive","reProps","computed","inSearchData","search","transformParams","serviceListOptions","mergedTransformParams","params","merged","value","searchOptions","models","searchRef","useTemplateRef","listRef","handleSearch","handleResetSearch","reset","nextTick","submit","triggerSearch","validateResult","refresh","expose","onMounted","Object","assign","__expose","_createElementBlock","class","_normalizeClass","scroll","target","items","length","$slots","actions","_openBlock","_hoisted_1","_createBlock","QdCrudSearch","_mergeProps","ref","_unref","$event","onSubmit","onSearch","onReset","extractSlotsWithPrefix","item","name","filterName","fn","_withCtx","slotProps","_renderSlot","_ctx","originalName","undefined","_hoisted_2","_createVNode","TSpace","align","size","_createSlots","_","default"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import type { QdSearchProps } from './types';
2
- declare var __VLS_7: string, __VLS_8: any, __VLS_17: string, __VLS_18: any;
2
+ declare var __VLS_8: string, __VLS_9: any, __VLS_50: string, __VLS_51: any;
3
3
  type __VLS_Slots = {} & {
4
- [K in NonNullable<typeof __VLS_7>]?: (props: typeof __VLS_8) => any;
4
+ [K in NonNullable<typeof __VLS_8>]?: (props: typeof __VLS_9) => any;
5
5
  } & {
6
- [K in NonNullable<typeof __VLS_17>]?: (props: typeof __VLS_18) => any;
6
+ [K in NonNullable<typeof __VLS_50>]?: (props: typeof __VLS_51) => any;
7
7
  };
8
8
  declare const __VLS_component: import("vue").DefineComponent<QdSearchProps, {
9
9
  clearValidate: (fields?: (string | number)[] | undefined) => void;
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./search.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const QdCrudSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-2cf11b71"]]);
4
+ const QdCrudSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-664474ec"]]);
5
5
  export {
6
6
  QdCrudSearch as default
7
7
  };
@@ -1,19 +1,23 @@
1
- import { defineComponent, mergeDefaults, computed, useTemplateRef, onMounted, createBlock, openBlock, unref, createSlots, withCtx, createVNode, mergeProps, isRef, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
1
+ import { defineComponent, mergeDefaults, useCssVars, computed, useTemplateRef, ref, onMounted, resolveDirective, withDirectives, createBlock, openBlock, unref, createSlots, withCtx, createVNode, mergeProps, isRef, createCommentVNode, normalizeClass, createTextVNode, toDisplayString, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
2
2
  import { useVModel } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.22_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
3
+ import { Space, Button } from "tdesign-vue-next";
4
+ import { ChevronDownIcon } from "tdesign-icons-vue-next";
3
5
  import { qdCrudSearchProps } from "./props.mjs";
4
6
  import QdCard from "../card/index.vue.mjs";
5
7
  import _sfc_main$1 from "../form/index.vue.mjs";
6
- import "tdesign-vue-next";
7
8
  import { extractSlotsWithPrefix } from "qidian-shared";
8
9
  /* empty css */
9
10
  /* empty css */
10
11
  /* empty css */
12
+ import { useConfig } from "../config-provider/useConfig.mjs";
11
13
  const _sfc_main = /* @__PURE__ */ defineComponent({
12
14
  ...{
13
15
  name: "QdCrudSearch"
14
16
  },
15
17
  __name: "search",
16
18
  props: /* @__PURE__ */ mergeDefaults({
19
+ onSearch: { type: Function },
20
+ onReset: { type: Function },
17
21
  crudMode: {},
18
22
  items: {},
19
23
  loading: { type: Boolean },
@@ -37,37 +41,133 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
37
41
  showErrorMessage: { type: Boolean },
38
42
  statusIcon: { type: Boolean },
39
43
  submitWithWarningMessage: { type: Boolean },
40
- onReset: { type: Function },
41
44
  onValidate: { type: Function },
42
45
  gutter: {},
43
46
  grid: {}
44
47
  }, qdCrudSearchProps),
45
48
  emits: ["update:data"],
46
49
  setup(__props, { expose: __expose, emit: __emit }) {
50
+ useCssVars((_ctx) => ({
51
+ "aff4bb32": cardH.value
52
+ }));
47
53
  const props = __props;
48
54
  const emit = __emit;
49
55
  const data = useVModel(props, "data", emit, { passive: true });
56
+ const { t } = useConfig("crud");
50
57
  const reProps = computed(() => {
51
- const { data: data2, ...formOptions } = props;
58
+ const { data: data2, onSearch, onReset, ...formOptions } = props;
52
59
  return {
53
60
  formOptions,
61
+ onSearch,
62
+ onReset,
54
63
  models: { data: data2 }
55
64
  };
56
65
  });
66
+ const cardRef = useTemplateRef("card");
67
+ const showExpand = ref(false);
68
+ const expand = ref(false);
69
+ const oneLineH = ref("auto");
70
+ const cardH = computed(() => expand.value ? "auto" : oneLineH.value);
57
71
  const formRef = useTemplateRef("form");
72
+ function getPadding(element, top, bottom) {
73
+ const styles = getComputedStyle(element);
74
+ const pt = parseInt(styles.paddingTop) || 0;
75
+ const pb = parseInt(styles.paddingBottom) || 0;
76
+ return pt + pb;
77
+ }
78
+ function onResize() {
79
+ const el = cardRef.value?.$el;
80
+ if (!el) {
81
+ resetExpand();
82
+ return;
83
+ }
84
+ const grid = el.querySelector(".qd-grid");
85
+ if (!grid) {
86
+ resetExpand();
87
+ return;
88
+ }
89
+ const gridItems = el.querySelectorAll(".qd-grid-item");
90
+ if (!gridItems.length) {
91
+ resetExpand();
92
+ return;
93
+ }
94
+ const heights = Array.from(gridItems, (item) => item.offsetHeight);
95
+ const maxItemHeight = Math.max(...heights);
96
+ if (grid.scrollHeight - 1 < maxItemHeight) {
97
+ resetExpand();
98
+ return;
99
+ }
100
+ const cardBody = el.querySelector(".t-card__body");
101
+ const totalHeight = maxItemHeight + (cardBody ? getPadding(cardBody) : 0) + getPadding(el);
102
+ showExpand.value = true;
103
+ oneLineH.value = `${totalHeight}px`;
104
+ }
105
+ function resetExpand() {
106
+ showExpand.value = false;
107
+ oneLineH.value = "auto";
108
+ expand.value = false;
109
+ }
58
110
  const expose = {};
59
111
  onMounted(() => {
60
112
  Object.assign(expose, formRef.value);
61
113
  });
62
114
  __expose(expose);
63
115
  return (_ctx, _cache) => {
64
- return openBlock(), createBlock(unref(QdCard), { class: "qd-crud-search" }, createSlots({
116
+ const _directive_resize = resolveDirective("resize");
117
+ return withDirectives((openBlock(), createBlock(unref(QdCard), {
118
+ ref: "card",
119
+ class: "qd-crud-search"
120
+ }, createSlots({
65
121
  default: withCtx(() => [
66
122
  createVNode(unref(_sfc_main$1), mergeProps({
67
123
  ref: "form",
68
124
  data: unref(data),
69
- "onUpdate:data": _cache[0] || (_cache[0] = ($event) => isRef(data) ? data.value = $event : null)
70
- }, reProps.value.formOptions), createSlots({ _: 2 }, [
125
+ "onUpdate:data": _cache[1] || (_cache[1] = ($event) => isRef(data) ? data.value = $event : null)
126
+ }, reProps.value.formOptions), createSlots({
127
+ footer: withCtx(() => [
128
+ createVNode(unref(Space), {
129
+ align: "center",
130
+ size: "small"
131
+ }, {
132
+ default: withCtx(() => [
133
+ showExpand.value ? (openBlock(), createBlock(unref(Button), {
134
+ key: 0,
135
+ class: normalizeClass(["qd-crud-search__more", expand.value ? "qd-crud-search__more--expand" : ""]),
136
+ variant: "text",
137
+ onClick: _cache[0] || (_cache[0] = ($event) => expand.value = !expand.value)
138
+ }, {
139
+ suffix: withCtx(() => [
140
+ createVNode(unref(ChevronDownIcon))
141
+ ]),
142
+ default: withCtx(() => [
143
+ createTextVNode(toDisplayString(expand.value ? unref(t)("collapseSearchText") : unref(t)("expandSearchText")) + " ", 1)
144
+ ]),
145
+ _: 1
146
+ }, 8, ["class"])) : createCommentVNode("", true),
147
+ createVNode(unref(Button), {
148
+ type: "submit",
149
+ onClick: reProps.value.onSearch
150
+ }, {
151
+ default: withCtx(() => [
152
+ createTextVNode(toDisplayString(unref(t)("searchText")), 1)
153
+ ]),
154
+ _: 1
155
+ }, 8, ["onClick"]),
156
+ createVNode(unref(Button), {
157
+ variant: "outline",
158
+ onClick: reProps.value.onReset
159
+ }, {
160
+ default: withCtx(() => [
161
+ createTextVNode(toDisplayString(unref(t)("resetText")), 1)
162
+ ]),
163
+ _: 1
164
+ }, 8, ["onClick"])
165
+ ]),
166
+ _: 1
167
+ })
168
+ ]),
169
+ _: 2
170
+ }, [
71
171
  renderList(unref(extractSlotsWithPrefix)(_ctx.$slots, "form"), (item) => {
72
172
  return {
73
173
  name: item.filterName,
@@ -88,7 +188,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
88
188
  ])
89
189
  };
90
190
  })
91
- ]), 1024);
191
+ ]), 1024)), [
192
+ [_directive_resize, onResize]
193
+ ]);
92
194
  };
93
195
  }
94
196
  });
@@ -1 +1 @@
1
- {"version":3,"file":"search.vue2.mjs","sources":["../../../src/components/crud/search.vue"],"sourcesContent":["<template>\n <qd-card class=\"qd-crud-search\">\n <template v-for=\"item in extractSlotsWithPrefix($slots, 'card')\" #[item.filterName]=\"slotProps\">\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n\n <qd-form ref=\"form\" v-model:data=\"data\" v-bind=\"reProps.formOptions\">\n <template v-for=\"item in extractSlotsWithPrefix($slots, 'form')\" #[item.filterName]=\"slotProps\">\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-form>\n </qd-card>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdSearchProps } from './types'\n import type { FormInstanceFunctions } from 'tdesign-vue-next'\n import { computed, onMounted, useTemplateRef } from 'vue'\n import { useVModel } from '@vueuse/core'\n import { qdCrudSearchProps } from './props'\n import { QdCard } from '../card'\n import { QdForm } from '../form'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n\n defineOptions({\n name: 'QdCrudSearch'\n })\n\n const props = withDefaults(defineProps<QdSearchProps>(), qdCrudSearchProps)\n const emit = defineEmits<{\n 'update:data': [QdSearchProps['data']]\n }>()\n const data = useVModel(props, 'data', emit, { passive: true })\n\n const reProps = computed(() => {\n const { data, ...formOptions } = props\n\n return {\n formOptions,\n models: { data }\n }\n })\n\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n\n const expose = {} as FormInstanceFunctions\n\n onMounted(() => {\n Object.assign(expose, formRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-search {\n & > :deep(.t-card__body) {\n height: 100%;\n }\n }\n</style>\n"],"names":["data","_createBlock","_unref","_createSlots","_createVNode","_mergeProps","$slots","_withCtx","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BE,UAAM,QAAQ;AACd,UAAM,OAAO;AAGb,UAAM,OAAO,UAAU,OAAO,QAAQ,MAAM,EAAE,SAAS,MAAM;AAE7D,UAAM,UAAU,SAAS,MAAM;AAC7B,YAAM,EAAE,MAAAA,OAAM,GAAG,gBAAgB;AAEjC,aAAO;AAAA,QACL;AAAA,QACA,QAAQ,EAAE,MAAAA,MAAAA;AAAAA,MAAK;AAAA,IAEnB,CAAC;AAED,UAAM,UAAU,eAAsC,MAAM;AAE5D,UAAM,SAAS,CAAA;AAEf,cAAU,MAAM;AACd,aAAO,OAAO,QAAQ,QAAQ,KAAK;AAAA,IACrC,CAAC;AAED,aAAa,MAAM;;0BAlDnBC,YAUUC,MAAA,MAAA,GAAA,EAVD,OAAM,iBAAA,GAAgBC,YAAA;AAAA,yBAK7B,MAIU;AAAA,UAJVC,YAIUF,oBAJVG,WAIU;AAAA,YAJD,KAAI;AAAA,YAAe,MAAMH,MAAA,IAAA;AAAA,iFAAA,KAAI,QAAA,SAAA;AAAA,UAAA,GAAU,QAAA,MAAQ,WAAW,GAAAC,YAAA,EAAA,GAAA,KAAA;AAAA,uBACxCD,MAAA,sBAAA,EAAuBI,KAAAA,QAAM,MAAA,GAAA,CAArC,SAAI;;gBAA6C,MAAA,KAAK;AAAA,gBACrE,IAAAC,QAAA,CADmF,cAAS;AAAA,kBAC5FC,WAAqD,KAAA,QAAxC,KAAK,gDAAsB,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,gBAAA;;;;;;;mBAN5BN,MAAA,sBAAA,EAAuBI,KAAAA,QAAM,MAAA,GAAA,CAArC,SAAI;;YAA6C,MAAA,KAAK;AAAA,YACrE,IAAAC,QAAA,CADmF,cAAS;AAAA,cAC5FC,WAAqD,KAAA,QAAxC,KAAK,gDAAsB,SAAS,CAAA,GAAA,QAAA,IAAA;AAAA,YAAA;;;;;;;"}
1
+ {"version":3,"file":"search.vue2.mjs","sources":["../../../src/components/crud/search.vue"],"sourcesContent":["<template>\n <qd-card ref=\"card\" v-resize=\"onResize\" class=\"qd-crud-search\">\n <template v-for=\"item in extractSlotsWithPrefix($slots, 'card')\" #[item.filterName]=\"slotProps\">\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n\n <qd-form ref=\"form\" v-model:data=\"data\" v-bind=\"reProps.formOptions\">\n <template #footer>\n <t-space align=\"center\" size=\"small\">\n <t-button\n v-if=\"showExpand\"\n :class=\"['qd-crud-search__more', expand ? 'qd-crud-search__more--expand' : '']\"\n variant=\"text\"\n @click=\"expand = !expand\"\n >\n {{ expand ? t('collapseSearchText') : t('expandSearchText') }}\n <template #suffix><chevron-down-icon /></template>\n </t-button>\n <t-button type=\"submit\" @click=\"reProps.onSearch\">{{ t('searchText') }}</t-button>\n <t-button variant=\"outline\" @click=\"reProps.onReset\">{{ t('resetText') }}</t-button>\n </t-space>\n </template>\n\n <template\n v-for=\"item in extractSlotsWithPrefix($slots, 'form')\"\n #[item.filterName]=\"slotProps\"\n >\n <slot :name=\"item.originalName\" v-bind=\"slotProps\" />\n </template>\n </qd-form>\n </qd-card>\n</template>\n\n<script setup lang=\"ts\">\n import type { QdSearchProps } from './types'\n import type { FormInstanceFunctions } from 'tdesign-vue-next'\n import { computed, onMounted, ref, useTemplateRef } from 'vue'\n import { useVModel } from '@vueuse/core'\n import { Space as TSpace, Button as TButton } from 'tdesign-vue-next'\n import { ChevronDownIcon } from 'tdesign-icons-vue-next'\n import { qdCrudSearchProps } from './props'\n import { QdCard } from '../card'\n import { QdForm } from '../form'\n import { extractSlotsWithPrefix } from 'qidian-shared'\n import { useConfig } from '../config-provider/useConfig'\n\n defineOptions({\n name: 'QdCrudSearch'\n })\n\n const props = withDefaults(defineProps<QdSearchProps>(), qdCrudSearchProps)\n const emit = defineEmits<{\n 'update:data': [QdSearchProps['data']]\n }>()\n const data = useVModel(props, 'data', emit, { passive: true })\n\n const { t } = useConfig('crud')\n\n const reProps = computed(() => {\n const { data, onSearch, onReset, ...formOptions } = props\n\n return {\n formOptions,\n onSearch,\n onReset,\n models: { data }\n }\n })\n\n const cardRef = useTemplateRef('card')\n const showExpand = ref(false)\n const expand = ref(false)\n const oneLineH = ref('auto')\n const cardH = computed(() => (expand.value ? 'auto' : oneLineH.value))\n const formRef = useTemplateRef<FormInstanceFunctions>('form')\n\n function getPadding(element: Element, top: boolean, bottom: boolean): number {\n const styles = getComputedStyle(element)\n const pt = top ? parseInt(styles.paddingTop) || 0 : 0\n const pb = bottom ? parseInt(styles.paddingBottom) || 0 : 0\n return pt + pb\n }\n\n function onResize() {\n const el = cardRef.value?.$el as HTMLElement | undefined\n if (!el) {\n resetExpand()\n return\n }\n\n const grid = el.querySelector('.qd-grid')\n if (!grid) {\n resetExpand()\n return\n }\n\n const gridItems = el.querySelectorAll('.qd-grid-item')\n if (!gridItems.length) {\n resetExpand()\n return\n }\n\n const heights = Array.from(gridItems, (item) => (item as HTMLElement).offsetHeight)\n const maxItemHeight = Math.max(...heights)\n\n if (grid.scrollHeight - 1 < maxItemHeight) {\n resetExpand()\n return\n }\n\n const cardBody = el.querySelector('.t-card__body')\n const totalHeight =\n maxItemHeight + (cardBody ? getPadding(cardBody, true, true) : 0) + getPadding(el, true, true)\n\n showExpand.value = true\n oneLineH.value = `${totalHeight}px`\n }\n\n function resetExpand() {\n showExpand.value = false\n oneLineH.value = 'auto'\n expand.value = false\n }\n\n const expose = {} as FormInstanceFunctions\n\n onMounted(() => {\n Object.assign(expose, formRef.value)\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-crud-search {\n height: v-bind(cardH);\n\n & > :deep(.t-card__body) {\n height: 100%;\n\n .qd-form,\n .qd-grid {\n height: 100%;\n }\n }\n\n &__more {\n :deep(.t-icon) {\n transition: transform cubic-bezier(0.38, 0, 0.24, 1) 0.2s;\n }\n\n &--expand :deep(.t-icon) {\n transform: rotate(-180deg);\n }\n }\n }\n</style>\n"],"names":["data","_createBlock","_unref","_createVNode","_mergeProps","_createSlots","TSpace","TButton","_createTextVNode","_toDisplayString","$slots","_withCtx","_renderSlot"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./table.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-36533111"]]);
4
+ const table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-98fd422f"]]);
5
5
  export {
6
6
  table as default
7
7
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent, mergeDefaults, computed, reactive, useTemplateRef, ref, onMounted, createElementBlock, openBlock, withDirectives, createCommentVNode, createVNode, createBlock, mergeProps, unref, isRef, createSlots, withCtx, createTextVNode, toDisplayString, renderList, renderSlot, normalizeProps, guardReactiveProps, vShow, createElementVNode, Fragment, withModifiers, nextTick, shallowRef, triggerRef } from "vue";
1
+ import { defineComponent, mergeDefaults, computed, reactive, useTemplateRef, ref, onMounted, createElementBlock, openBlock, withDirectives, createCommentVNode, createVNode, createBlock, mergeProps, unref, isRef, createSlots, renderList, withCtx, renderSlot, normalizeProps, guardReactiveProps, vShow, createElementVNode, Fragment, withModifiers, nextTick, shallowRef, triggerRef } from "vue";
2
2
  import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.22_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
3
3
  import { easyCopy, suspectedWrapperPromise, extractSlotsWithPrefix, isEmpty, generateRandomString, to } from "qidian-shared";
4
4
  import { qdCrudTableProps } from "./props.mjs";
@@ -551,7 +551,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
551
551
  }
552
552
  function mergeAction(defaultOptions, currentOptions, crudForm) {
553
553
  if (currentOptions === false || !currentOptions) return;
554
- const mergeOptions = merge(defaultOptions, currentOptions);
554
+ const mergeOptions = merge({}, defaultOptions, currentOptions);
555
555
  mergeOptions.permi = buildActionPermi(mergeOptions);
556
556
  if (mergeOptions.crudMode !== "del") {
557
557
  mergeOptions.form = buildActionForm(mergeOptions, crudForm);
@@ -843,27 +843,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
843
843
  "onUpdate:data": _cache[0] || (_cache[0] = ($event) => isRef(searchData) ? searchData.value = $event : null),
844
844
  class: [!searchVisible.value ? "qd-crud-search--hide" : ""]
845
845
  }, reProps.value.searchOptions, {
846
- "on-submit": triggerSearch
846
+ onSubmit: triggerSearch,
847
+ onSearch: handleSearch,
848
+ onReset: handleResetSearch
847
849
  }), createSlots({
848
- "form-footer": withCtx(() => [createVNode(unref(Space), {
849
- align: "center",
850
- size: "small"
851
- }, {
852
- default: withCtx(() => [createVNode(unref(Button), {
853
- type: "submit",
854
- onClick: handleSearch
855
- }, {
856
- default: withCtx(() => [createTextVNode(toDisplayString(unref(t)("searchText")), 1)]),
857
- _: 1
858
- }), createVNode(unref(Button), {
859
- variant: "outline",
860
- onClick: handleResetSearch
861
- }, {
862
- default: withCtx(() => [createTextVNode(toDisplayString(unref(t)("resetText")), 1)]),
863
- _: 1
864
- })]),
865
- _: 1
866
- })]),
867
850
  _: 2
868
851
  }, [renderList(unref(extractSlotsWithPrefix)(_ctx.$slots, "search"), (item) => {
869
852
  return {
@@ -902,7 +885,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
902
885
  }, {
903
886
  default: withCtx(() => [reProps.value.searchOptions?.items?.length ? (openBlock(), createBlock(unref(Tooltip), {
904
887
  key: 0,
905
- content: searchVisible.value ? unref(t)("collapseSearchText") : unref(t)("expandSearchText")
888
+ content: searchVisible.value ? unref(t)("hideSearchText") : unref(t)("showSearchText")
906
889
  }, {
907
890
  default: withCtx(() => [createVNode(unref(Button), {
908
891
  variant: "text",