qidian-vue-ui 1.1.31 → 1.1.33

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 (170) hide show
  1. package/dist/components/card/props.mjs.map +1 -1
  2. package/dist/components/config-provider/config.mjs.map +1 -1
  3. package/dist/components/config-provider/useConfig.mjs.map +1 -1
  4. package/dist/components/crud/define.d.ts +2 -1
  5. package/dist/components/crud/define.mjs.map +1 -1
  6. package/dist/components/crud/index.d.ts +4 -5
  7. package/dist/components/crud/list/index.d.ts +2 -0
  8. package/dist/components/crud/list/index.vue.mjs +8 -0
  9. package/dist/components/crud/list/index.vue.mjs.map +1 -0
  10. package/dist/components/crud/{list.vue2.mjs → list/index.vue2.mjs} +10 -10
  11. package/dist/components/crud/list/index.vue2.mjs.map +1 -0
  12. package/dist/components/crud/list/props.d.ts +5 -0
  13. package/dist/components/crud/list/props.mjs +9 -0
  14. package/dist/components/crud/list/props.mjs.map +1 -0
  15. package/dist/components/crud/list/types.d.ts +9 -0
  16. package/dist/components/crud/search/index.d.ts +2 -0
  17. package/dist/components/crud/{search.vue.d.ts → search/index.vue.d.ts} +4 -4
  18. package/dist/components/crud/search/index.vue.mjs +8 -0
  19. package/dist/components/crud/search/index.vue.mjs.map +1 -0
  20. package/dist/components/crud/{search.vue2.mjs → search/index.vue2.mjs} +10 -10
  21. package/dist/components/crud/search/index.vue2.mjs.map +1 -0
  22. package/dist/components/crud/search/props.d.ts +26 -0
  23. package/dist/components/crud/search/props.mjs +19 -0
  24. package/dist/components/crud/search/props.mjs.map +1 -0
  25. package/dist/components/crud/search/types.d.ts +5 -0
  26. package/dist/components/crud/table/index.d.ts +2 -0
  27. package/dist/components/crud/table/index.vue.mjs +8 -0
  28. package/dist/components/crud/table/index.vue.mjs.map +1 -0
  29. package/dist/components/crud/{table.vue2.mjs → table/index.vue2.mjs} +23 -23
  30. package/dist/components/crud/table/index.vue2.mjs.map +1 -0
  31. package/dist/components/crud/{props.d.ts → table/props.d.ts} +0 -31
  32. package/dist/components/crud/table/props.mjs +16 -0
  33. package/dist/components/crud/table/props.mjs.map +1 -0
  34. package/dist/components/crud/{types.d.ts → table/types.d.ts} +6 -15
  35. package/dist/components/dict/checkbox-group/index.d.ts +2 -0
  36. package/dist/components/dict/checkbox-group/index.vue.mjs +8 -0
  37. package/dist/components/dict/checkbox-group/index.vue.mjs.map +1 -0
  38. package/dist/components/dict/{checkbox-group.vue2.mjs → checkbox-group/index.vue2.mjs} +14 -9
  39. package/dist/components/dict/checkbox-group/index.vue2.mjs.map +1 -0
  40. package/dist/components/dict/checkbox-group/props.d.ts +9 -0
  41. package/dist/components/dict/checkbox-group/props.mjs +13 -0
  42. package/dist/components/dict/checkbox-group/props.mjs.map +1 -0
  43. package/dist/components/dict/checkbox-group/types.d.ts +6 -0
  44. package/dist/components/dict/index.d.ts +4 -5
  45. package/dist/components/dict/radio-group/index.d.ts +2 -0
  46. package/dist/components/dict/radio-group/index.vue.mjs +8 -0
  47. package/dist/components/dict/radio-group/index.vue.mjs.map +1 -0
  48. package/dist/components/dict/{radio-group.vue2.mjs → radio-group/index.vue2.mjs} +6 -6
  49. package/dist/components/dict/radio-group/index.vue2.mjs.map +1 -0
  50. package/dist/components/dict/radio-group/props.d.ts +7 -0
  51. package/dist/components/dict/radio-group/props.mjs +11 -0
  52. package/dist/components/dict/radio-group/props.mjs.map +1 -0
  53. package/dist/components/dict/radio-group/types.d.ts +4 -0
  54. package/dist/components/dict/select/index.d.ts +2 -0
  55. package/dist/components/dict/{select.vue.mjs → select/index.vue.mjs} +8 -7
  56. package/dist/components/dict/select/index.vue.mjs.map +1 -0
  57. package/dist/components/dict/select/index.vue2.mjs +5 -0
  58. package/dist/components/dict/select/index.vue2.mjs.map +1 -0
  59. package/dist/components/dict/select/props.d.ts +11 -0
  60. package/dist/components/dict/select/props.mjs +15 -0
  61. package/dist/components/dict/select/props.mjs.map +1 -0
  62. package/dist/components/dict/select/types.d.ts +7 -0
  63. package/dist/components/dict/tag/index.d.ts +2 -0
  64. package/dist/components/dict/{tag.vue.d.ts → tag/index.vue.d.ts} +7 -7
  65. package/dist/components/dict/tag/index.vue.mjs +8 -0
  66. package/dist/components/dict/tag/index.vue.mjs.map +1 -0
  67. package/dist/components/dict/{tag.vue2.mjs → tag/index.vue2.mjs} +8 -8
  68. package/dist/components/dict/tag/index.vue2.mjs.map +1 -0
  69. package/dist/components/dict/tag/props.d.ts +5 -0
  70. package/dist/components/dict/tag/props.mjs +10 -0
  71. package/dist/components/dict/tag/props.mjs.map +1 -0
  72. package/dist/components/dict/tag/types.d.ts +9 -0
  73. package/dist/components/form/item.vue.mjs +1 -1
  74. package/dist/components/form/item.vue2.mjs +1 -1
  75. package/dist/components/form/item.vue2.mjs.map +1 -1
  76. package/dist/components/office/pdf/config.mjs.map +1 -1
  77. package/dist/components/org/index.d.ts +1 -2
  78. package/dist/components/org/select/index.d.ts +2 -0
  79. package/dist/components/org/select/index.vue.mjs +4 -4
  80. package/dist/components/org/select/props.mjs +1 -1
  81. package/dist/components/org/select/props.mjs.map +1 -1
  82. package/dist/components/service/dialog-table-select/index.d.ts +2 -0
  83. package/dist/components/service/dialog-table-select/index.vue.d.ts +27 -0
  84. package/dist/components/service/dialog-table-select/props.d.ts +32 -0
  85. package/dist/components/service/dialog-table-select/types.d.ts +5 -0
  86. package/dist/components/service/index.d.ts +3 -4
  87. package/dist/components/service/list/index.d.ts +2 -0
  88. package/dist/components/service/list/index.vue.mjs +8 -0
  89. package/dist/components/service/list/index.vue.mjs.map +1 -0
  90. package/dist/components/service/{list.vue2.mjs → list/index.vue2.mjs} +4 -4
  91. package/dist/components/service/list/index.vue2.mjs.map +1 -0
  92. package/dist/components/service/list/props.d.ts +4 -0
  93. package/dist/components/service/list/props.mjs +8 -0
  94. package/dist/components/service/list/props.mjs.map +1 -0
  95. package/dist/components/service/list/types.d.ts +15 -0
  96. package/dist/components/service/select/index.d.ts +2 -0
  97. package/dist/components/service/select/index.vue.mjs +8 -0
  98. package/dist/components/service/select/index.vue.mjs.map +1 -0
  99. package/dist/components/service/{select.vue2.mjs → select/index.vue2.mjs} +5 -5
  100. package/dist/components/service/select/index.vue2.mjs.map +1 -0
  101. package/dist/components/service/select/props.d.ts +19 -0
  102. package/dist/components/service/select/props.mjs +24 -0
  103. package/dist/components/service/select/props.mjs.map +1 -0
  104. package/dist/components/service/select/types.d.ts +15 -0
  105. package/dist/components/service/table/index.d.ts +2 -0
  106. package/dist/components/service/table/index.vue.mjs +8 -0
  107. package/dist/components/service/table/index.vue.mjs.map +1 -0
  108. package/dist/components/service/{table.vue2.mjs → table/index.vue2.mjs} +4 -4
  109. package/dist/components/service/table/index.vue2.mjs.map +1 -0
  110. package/dist/components/service/{props.d.ts → table/props.d.ts} +0 -23
  111. package/dist/components/service/{props.mjs → table/props.mjs} +0 -26
  112. package/dist/components/service/table/props.mjs.map +1 -0
  113. package/dist/components/service/table/types.d.ts +18 -0
  114. package/dist/components/upload/index.vue.mjs +1 -1
  115. package/dist/components/upload/index.vue2.mjs +36 -12
  116. package/dist/components/upload/index.vue2.mjs.map +1 -1
  117. package/dist/components/upload/props.d.ts +1 -0
  118. package/dist/components/upload/props.mjs +1 -0
  119. package/dist/components/upload/props.mjs.map +1 -1
  120. package/dist/components/upload/types.d.ts +4 -2
  121. package/dist/hooks/useModal.mjs.map +1 -1
  122. package/dist/index.mjs +18 -18
  123. package/dist/qidian-vue-ui.css +96 -85
  124. package/package.json +1 -1
  125. package/dist/components/crud/list.vue.mjs +0 -8
  126. package/dist/components/crud/list.vue.mjs.map +0 -1
  127. package/dist/components/crud/list.vue2.mjs.map +0 -1
  128. package/dist/components/crud/props.mjs +0 -37
  129. package/dist/components/crud/props.mjs.map +0 -1
  130. package/dist/components/crud/search.vue.mjs +0 -8
  131. package/dist/components/crud/search.vue.mjs.map +0 -1
  132. package/dist/components/crud/search.vue2.mjs.map +0 -1
  133. package/dist/components/crud/table.vue.mjs +0 -8
  134. package/dist/components/crud/table.vue.mjs.map +0 -1
  135. package/dist/components/crud/table.vue2.mjs.map +0 -1
  136. package/dist/components/dict/checkbox-group.vue.mjs +0 -8
  137. package/dist/components/dict/checkbox-group.vue.mjs.map +0 -1
  138. package/dist/components/dict/checkbox-group.vue2.mjs.map +0 -1
  139. package/dist/components/dict/props.d.ts +0 -32
  140. package/dist/components/dict/props.mjs +0 -40
  141. package/dist/components/dict/props.mjs.map +0 -1
  142. package/dist/components/dict/radio-group.vue.mjs +0 -8
  143. package/dist/components/dict/radio-group.vue.mjs.map +0 -1
  144. package/dist/components/dict/radio-group.vue2.mjs.map +0 -1
  145. package/dist/components/dict/select.vue.mjs.map +0 -1
  146. package/dist/components/dict/select.vue2.mjs +0 -5
  147. package/dist/components/dict/select.vue2.mjs.map +0 -1
  148. package/dist/components/dict/tag.vue.mjs +0 -8
  149. package/dist/components/dict/tag.vue.mjs.map +0 -1
  150. package/dist/components/dict/tag.vue2.mjs.map +0 -1
  151. package/dist/components/dict/types.d.ts +0 -22
  152. package/dist/components/service/list.vue.mjs +0 -8
  153. package/dist/components/service/list.vue.mjs.map +0 -1
  154. package/dist/components/service/list.vue2.mjs.map +0 -1
  155. package/dist/components/service/props.mjs.map +0 -1
  156. package/dist/components/service/select.vue.mjs +0 -8
  157. package/dist/components/service/select.vue.mjs.map +0 -1
  158. package/dist/components/service/select.vue2.mjs.map +0 -1
  159. package/dist/components/service/table.vue.mjs +0 -8
  160. package/dist/components/service/table.vue.mjs.map +0 -1
  161. package/dist/components/service/table.vue2.mjs.map +0 -1
  162. package/dist/components/service/types.d.ts +0 -44
  163. /package/dist/components/crud/{list.vue.d.ts → list/index.vue.d.ts} +0 -0
  164. /package/dist/components/crud/{table.vue.d.ts → table/index.vue.d.ts} +0 -0
  165. /package/dist/components/dict/{checkbox-group.vue.d.ts → checkbox-group/index.vue.d.ts} +0 -0
  166. /package/dist/components/dict/{radio-group.vue.d.ts → radio-group/index.vue.d.ts} +0 -0
  167. /package/dist/components/dict/{select.vue.d.ts → select/index.vue.d.ts} +0 -0
  168. /package/dist/components/service/{list.vue.d.ts → list/index.vue.d.ts} +0 -0
  169. /package/dist/components/service/{select.vue.d.ts → select/index.vue.d.ts} +0 -0
  170. /package/dist/components/service/{table.vue.d.ts → table/index.vue.d.ts} +0 -0
@@ -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-f0674a59"]]);
4
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-30edd76e"]]);
5
5
  export {
6
6
  index as default
7
7
  };
@@ -1,4 +1,4 @@
1
- import { defineComponent, mergeDefaults, computed, inject, useTemplateRef, ref, watch, onMounted, createBlock, openBlock, unref, mergeProps, isRef, createSlots, withCtx, createCommentVNode, createVNode, createTextVNode, toDisplayString, withModifiers, createElementVNode, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
1
+ 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";
2
2
  import { qdUploadSizeLimit, qdUploadProps } from "./props.mjs";
3
3
  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";
4
4
  import { Upload, Space, Button, Popup, Badge } from "tdesign-vue-next";
@@ -17,7 +17,7 @@ import { useDisabled } from "../../hooks/useDisabled.mjs";
17
17
  import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from "../form/config.mjs";
18
18
  /* empty css */
19
19
  import { qdUploadAcceptMap } from "./config.mjs";
20
- import { qdDictConvStrSeparator } from "../dict/props.mjs";
20
+ import { qdDictConvStrSeparator } from "../dict/tag/props.mjs";
21
21
  const _sfc_main = /* @__PURE__ */ defineComponent({
22
22
  ...{
23
23
  name: "QdUpload"
@@ -32,6 +32,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
32
32
  theme: {},
33
33
  accept: {},
34
34
  onlyView: { type: Boolean },
35
+ showManualButton: { type: Boolean },
35
36
  listOssByIds: {},
36
37
  listOssByUrls: {},
37
38
  del: {},
@@ -157,7 +158,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
157
158
  bucketConfigKey,
158
159
  showImageFileName,
159
160
  showUploadProgress,
161
+ showThumbnail,
160
162
  draggable,
163
+ showManualButton,
161
164
  ...uploadOptions
162
165
  } = props;
163
166
  const globalUploadPropsV = globalUploadProps.value;
@@ -246,6 +249,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
246
249
  onRemove: reOnRemove,
247
250
  showImageFileName: onlyView ? false : showImageFileName,
248
251
  showUploadProgress: onlyView ? false : showUploadProgress,
252
+ showThumbnail: onlyView ? true : showThumbnail,
249
253
  draggable: onlyView ? false : draggable,
250
254
  ...uploadOptions
251
255
  };
@@ -271,6 +275,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
271
275
  ...listOssByUrls
272
276
  },
273
277
  del: { ...globalUploadPropsV?.del, ...del },
278
+ showManualButton,
274
279
  uploadOptions: reUploadOptions,
275
280
  models: {
276
281
  modelValue: modelValue2,
@@ -278,6 +283,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
278
283
  }
279
284
  };
280
285
  });
286
+ const popupUploadTheme = computed(() => {
287
+ switch (props.theme) {
288
+ case "btn-image-popup":
289
+ return "image";
290
+ default:
291
+ return "file-flow";
292
+ }
293
+ });
281
294
  const expose = {};
282
295
  const uploadFiles = (options) => {
283
296
  uploadRef.value?.uploadFiles(options?.files);
@@ -412,12 +425,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
412
425
  const [err, res] = await to(apiFn(newVal));
413
426
  if (err) return;
414
427
  fileList.value = res.map((item) => {
415
- const { url, ossId, originalName, size, createTime } = item;
428
+ const { url, ossId, originalName, fileSize, contentType, createTime } = item;
416
429
  return {
417
430
  url,
418
431
  uid: ossId,
419
432
  name: originalName,
420
- size,
433
+ size: fileSize,
434
+ type: contentType,
421
435
  uploadTime: createTime,
422
436
  response: { status: "success", url, ossId, name: originalName, uploadTime: createTime },
423
437
  status: "success"
@@ -436,19 +450,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
436
450
  class: [
437
451
  "qd-upload",
438
452
  `qd-upload--${reProps.value.theme}`,
439
- reProps.value.onlyView ? "qd-upload--only-view" : ""
453
+ reProps.value.onlyView ? "qd-upload--only-view" : "",
454
+ !reProps.value.uploadOptions.showUploadProgress && reProps.value.onlyView ? "qd-upload--hide-progress" : "",
455
+ !reProps.value.uploadOptions.autoUpload && reProps.value.showManualButton ? "" : "qd-upload--hide-manual-upload"
440
456
  ],
441
457
  files: unref(fileList),
442
458
  "onUpdate:files": _cache[2] || (_cache[2] = ($event) => isRef(fileList) ? fileList.value = $event : null)
443
459
  }, reProps.value.uploadOptions), createSlots({
444
460
  default: withCtx(() => [
445
- __props.theme === "btn-image-popup" ? (openBlock(), createBlock(unref(Space), {
461
+ ["btn-file-popup", "btn-image-popup"].includes(__props.theme) ? (openBlock(), createBlock(unref(Space), {
446
462
  key: 0,
447
463
  align: "center",
448
464
  size: "small"
449
465
  }, {
450
466
  default: withCtx(() => [
451
- createVNode(unref(Button), {
467
+ !reProps.value.onlyView ? (openBlock(), createBlock(unref(Button), {
468
+ key: 0,
452
469
  variant: "outline",
453
470
  disabled: reProps.value.uploadOptions.disabled
454
471
  }, {
@@ -459,25 +476,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
459
476
  createTextVNode(" " + toDisplayString(!unref(fileList).length ? unref(t)("triggerUploadText").fileInput : reProps.value.uploadOptions.max === 1 || !reProps.value.uploadOptions.multiple ? unref(t)("triggerUploadText").reupload : unref(t)("triggerUploadText").continueUpload), 1)
460
477
  ]),
461
478
  _: 1
462
- }, 8, ["disabled"]),
479
+ }, 8, ["disabled"])) : createCommentVNode("", true),
463
480
  unref(fileList).length ? (openBlock(), createBlock(unref(Popup), {
464
- key: 0,
481
+ key: 1,
465
482
  "show-arrow": "",
466
483
  trigger: "click"
467
484
  }, {
468
485
  content: withCtx(() => [
469
486
  createVNode(unref(Upload), {
487
+ class: normalizeClass([
488
+ "qd-upload__popup-upload",
489
+ reProps.value.uploadOptions.disabled ? "qd-upload__popup-upload--disabled" : ""
490
+ ]),
470
491
  files: popupFileList.value,
471
492
  "onUpdate:files": _cache[1] || (_cache[1] = ($event) => popupFileList.value = $event),
472
- theme: "image",
493
+ theme: popupUploadTheme.value,
473
494
  disabled: reProps.value.uploadOptions.disabled,
474
- "on-remove": reProps.value.handlePopupRemove
495
+ "on-remove": reProps.value.handlePopupRemove,
496
+ "show-thumbnail": reProps.value.uploadOptions.showThumbnail,
497
+ "show-image-file-name": reProps.value.uploadOptions.showImageFileName,
498
+ "show-upload-progress": reProps.value.uploadOptions.showUploadProgress
475
499
  }, {
476
500
  trigger: withCtx(() => [..._cache[3] || (_cache[3] = [
477
501
  createElementVNode("span", { style: { "display": "none" } }, null, -1)
478
502
  ])]),
479
503
  _: 1
480
- }, 8, ["files", "disabled", "on-remove"])
504
+ }, 8, ["class", "files", "theme", "disabled", "on-remove", "show-thumbnail", "show-image-file-name", "show-upload-progress"])
481
505
  ]),
482
506
  default: withCtx(() => [
483
507
  createVNode(unref(Badge), {
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/upload/index.vue"],"sourcesContent":["<template>\n <t-upload\n ref=\"upload\"\n :class=\"[\n 'qd-upload',\n `qd-upload--${reProps.theme}`,\n reProps.onlyView ? 'qd-upload--only-view' : ''\n ]\"\n v-model:files=\"fileList\"\n v-bind=\"reProps.uploadOptions\"\n >\n <template v-if=\"theme === 'btn-image-popup'\">\n <t-space align=\"center\" size=\"small\">\n <t-button variant=\"outline\" :disabled=\"reProps.uploadOptions.disabled\">\n <template #icon><upload-icon /></template>\n {{\n !fileList.length\n ? t('triggerUploadText').fileInput\n : reProps.uploadOptions.max === 1 || !reProps.uploadOptions.multiple\n ? t('triggerUploadText').reupload\n : t('triggerUploadText').continueUpload\n }}\n </t-button>\n\n <t-popup v-if=\"fileList.length\" show-arrow trigger=\"click\">\n <t-badge :count=\"fileList.length\" size=\"small\" :offset=\"[2, 2]\" @click.stop>\n <t-button variant=\"outline\">\n <template #icon><browse-icon /></template>\n {{ t('viewFileText') }}\n </t-button>\n </t-badge>\n\n <template #content>\n <t-upload\n v-model:files=\"popupFileList\"\n theme=\"image\"\n :disabled=\"reProps.uploadOptions.disabled\"\n :on-remove=\"reProps.handlePopupRemove\"\n >\n <template #trigger><span style=\"display: none\"></span></template>\n </t-upload>\n </template>\n </t-popup>\n </t-space>\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-upload>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n F extends UploadFile = UploadFile,\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP,\n UR = unknown,\n UP extends string | string[] = string | string[],\n TUP = UP,\n DR = unknown,\n DP extends string | number | (string | number)[] = string | number | (string | number)[],\n TDP = DP\n \"\n>\n import type {\n SizeLimitObj,\n TdUploadProps,\n UploadFile,\n UploadInstanceFunctions\n } from 'tdesign-vue-next'\n import type {\n QdUploadDeleteResult,\n QdUploadInstanceFunctions,\n QdUploadListOssByIdsResult,\n QdUploadProps\n } from './types'\n import { qdUploadProps, qdUploadSizeLimit } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, inject, onMounted, useTemplateRef, ref, watch } from 'vue'\n import {\n Upload as TUpload,\n Button as TButton,\n Popup as TPopup,\n Space as TSpace,\n Badge as TBadge\n } from 'tdesign-vue-next'\n import { UploadIcon, BrowseIcon } from 'tdesign-icons-vue-next'\n import {\n checkSameObject,\n easyCopy,\n isEmpty,\n isTypeByName,\n suspectedWrapperPromise,\n to,\n useTimer\n } from 'qidian-shared'\n import dayjs from 'dayjs'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { useConfig } from '../config-provider/useConfig'\n import { useModal, useDisabled, useReadonly } from '../../hooks'\n import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from '../form'\n import { qdUploadAcceptMap } from './config'\n import { qdDictConvStrSeparator } from '../dict/props'\n\n defineOptions({\n name: 'QdUpload'\n })\n\n type Props = QdUploadProps<F, OR, OP, TOP, UR, UP, TUP, DR, DP, TDP>\n\n const props = withDefaults(defineProps<Props>(), qdUploadProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:files': [Props['files']]\n }>()\n const { modelValue, files: fileList } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const reModelValue = computed({\n get: () => {\n const { convStr } = reProps.value\n const value = modelValue.value\n if (isEmpty(value)) return []\n if (typeof value === 'string') {\n return value.split((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n }\n\n return value\n },\n set: (val) => {\n const { convStr } = reProps.value\n if (convStr) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n return\n }\n\n modelValue.value = val\n }\n })\n\n const formAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, undefined)\n const { t } = useConfig('upload')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const { msgError, msgWarning } = useModal()\n const uploadRef = useTemplateRef<UploadInstanceFunctions>('upload')\n const { timer: uploadTimer, clearTimer: clearUploadTimer } = useTimer('interval')\n\n const delList = ref<(string | number)[]>([])\n\n const popupFileList = computed(() => [...fileList.value])\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n const reProps = computed(() => {\n const {\n modelValue,\n files,\n convStr,\n valueMode,\n theme,\n sizeLimit,\n accept,\n multiple,\n disabled,\n beforeUpload,\n onValidate,\n formatResponse,\n onSuccess,\n onRemove,\n\n onlyView,\n listOssByIds,\n listOssByUrls,\n del,\n\n action,\n bucketConfigKey,\n showImageFileName,\n showUploadProgress,\n draggable,\n ...uploadOptions\n } = props\n const globalUploadPropsV = globalUploadProps.value\n\n const reAction = action || globalUploadPropsV?.action\n const actionUrl = typeof reAction === 'string' ? reAction : reAction?.(bucketConfigKey)\n\n const reSizeLimit = easyCopy(qdUploadSizeLimit) as\n | SizeLimitObj\n | undefined\n if (reSizeLimit) {\n if (typeof sizeLimit === 'number') {\n reSizeLimit.size = sizeLimit\n reSizeLimit.message = t('sizeLimitMessage')\n } else {\n Object.assign(reSizeLimit, { message: t('sizeLimitMessage') }, sizeLimit)\n }\n }\n\n const acceptStr = (\n accept ? accept : theme.includes('image') ? qdUploadAcceptMap.image : qdUploadAcceptMap.default\n ).join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (accept && !isTypeByName(file.name, accept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${accept} ${t('fileFormatNotSupportedMessage')[1]}`\n )\n return false\n }\n\n return true\n }\n\n const reOnValidate: typeof onValidate = (context) => {\n if (onValidate) {\n onValidate(context)\n return\n }\n\n switch (context.type) {\n case 'FILES_OVER_LENGTH_LIMIT':\n msgWarning(`${t('maxUploadMessage')[0]}${props.max}${t('maxUploadMessage')[1]}`)\n break\n case 'FILTER_FILE_SAME_NAME':\n msgWarning(t('sameNameMessage'))\n break\n case 'FILE_OVER_SIZE_LIMIT':\n msgWarning(`${context.files.map((t) => t.name).join(',')} ${t('fileSizeExceedsLimit')}`)\n break\n }\n }\n\n const reFormatResponse: typeof formatResponse = (res, context) => {\n if (formatResponse) return formatResponse(res, context)\n\n if (res.code === 200) {\n const { url, ossId, fileName, uploadTime } = res.data || {}\n return {\n success: true,\n url,\n name: fileName,\n ossId,\n uploadTime: uploadTime || dayjs().format('YYYY-MM-DD HH:mm:ss')\n }\n }\n\n return { status: 'fail', error: res.message || res.msg || t('fileUploadFailed') }\n }\n\n const reOnSuccess: typeof onSuccess = (context) => {\n onSuccess?.(context)\n updateModelValue(fileList.value)\n }\n\n const reOnRemove: typeof onRemove = (context) => {\n onRemove?.(context)\n const { ossId } = context.file?.response || {}\n\n if (ossId) {\n if (props.autoUpload) to(handleDel(ossId))\n else addDel(ossId)\n }\n\n updateModelValue(fileList.value)\n }\n\n const handlePopupRemove: typeof onRemove = (context) => {\n reOnRemove(context)\n if (isEmpty(context.index)) return\n\n fileList.value.splice(context.index, 1)\n }\n\n const reUploadOptions = {\n action: actionUrl,\n theme: ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(theme)\n ? theme\n : 'custom',\n sizeLimit: reSizeLimit,\n accept: acceptStr,\n multiple: multiple ?? props.max !== 1,\n disabled: onlyView ? true : (disabled ?? (tdDisabled.value || tdReadonly.value)),\n beforeUpload: reBeforeUpload,\n onValidate: reOnValidate,\n formatResponse: reFormatResponse,\n onSuccess: reOnSuccess,\n onRemove: reOnRemove,\n showImageFileName: onlyView ? false : showImageFileName,\n showUploadProgress: onlyView ? false : showUploadProgress,\n draggable: onlyView ? false : draggable,\n ...uploadOptions\n } as TdUploadProps\n\n if (globalUploadPropsV) {\n Object.entries(globalUploadPropsV).forEach(([key, value]) => {\n if (['action'].includes(key) || isEmpty(value)) return\n ;(reUploadOptions as Record<string, unknown>)[key] = value\n })\n }\n\n return {\n theme,\n convStr,\n valueMode,\n accept,\n handlePopupRemove,\n onlyView,\n listOssByIds: {\n ...globalUploadPropsV?.listOssByIds,\n ...listOssByIds\n } as Props['listOssByIds'],\n listOssByUrls: {\n ...globalUploadPropsV?.listOssByUrls,\n ...listOssByUrls\n } as Props['listOssByUrls'],\n del: { ...globalUploadPropsV?.del, ...del } as Props['del'],\n uploadOptions: reUploadOptions,\n models: {\n modelValue,\n files\n }\n }\n })\n\n const expose = {} as QdUploadInstanceFunctions\n\n const uploadFiles: QdUploadInstanceFunctions['uploadFiles'] = (options) => {\n uploadRef.value?.uploadFiles(options?.files)\n\n return new Promise((resolve, reject) => {\n uploadTimer.value = setInterval(() => {\n const isFinished = fileList.value.every((item) => item.status !== 'progress')\n if (!isFinished) return\n\n clearUploadTimer()\n updateModelValue(fileList.value)\n\n const errorList = fileList.value.filter((item) => item.status === 'fail')\n if (errorList.length) {\n const msg = `${errorList.map((item) => item.name).join(',')} ${t('fileUploadFailed')}`\n if (options?.showErrorMessage !== false) {\n msgError(msg)\n }\n reject(new Error(msg))\n return\n }\n\n resolve(fileList.value)\n }, 100)\n })\n }\n\n function updateModelValue(files: UploadFile[]) {\n const tempModelValue: typeof reModelValue.value = []\n files.forEach((item) => {\n if (item.status !== 'success') return\n tempModelValue.push(item.response![reProps.value.valueMode])\n })\n reModelValue.value = tempModelValue\n }\n\n async function handleDel(\n ossId: string | number | (string | number)[],\n showErrorMessage?: boolean\n ) {\n const { del } = reProps.value\n if (!del) return\n\n const { service, transformParams, transformRes } = del\n\n const currentParams = ossId\n let tParams: TDP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as DP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TDP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadDeleteResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadDeleteResult\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message && showErrorMessage !== false) msgError(message)\n throw new Error(message)\n }\n }\n\n async function addDel(ossId: string | number) {\n delList.value.push(ossId)\n }\n\n async function getOssByIds(ossId: string | number | (string | number)[]) {\n const { listOssByIds } = reProps.value\n if (!listOssByIds) return []\n\n const { service, transformParams, transformRes } = listOssByIds\n\n const currentParams = ossId\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TOP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function getOssByUrls(ossId: string | string[]) {\n const { listOssByUrls } = reProps.value\n if (!listOssByUrls) return []\n\n const { service, transformParams, transformRes } = listOssByUrls\n\n const currentParams = ossId\n let tParams: TUP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as UP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TUP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function uploadBeforeFormSubmit() {\n const [err] = await to(uploadFiles({ showErrorMessage: false }))\n if (err) return { success: false, message: err.message }\n return true\n }\n\n async function delBeforeFormSubmit() {\n if (!delList.value.length) return true\n\n const [err] = await to(handleDel(delList.value, false))\n if (err) return true\n return true\n }\n\n formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit)\n formAddBeforeSubmitQueue?.(delBeforeFormSubmit)\n\n watch(\n reModelValue,\n async (newVal, oldVal) => {\n if (!newVal.length || checkSameObject(newVal, oldVal) || fileList.value.length) return\n\n const { valueMode } = reProps.value\n const apiFn = valueMode === 'url' ? getOssByUrls : getOssByIds\n const [err, res] = await to(apiFn(newVal))\n if (err) return\n\n fileList.value = res.map((item) => {\n const { url, ossId, originalName, size, createTime } = item\n\n return {\n url,\n uid: ossId,\n name: originalName,\n size,\n uploadTime: createTime,\n response: { status: 'success', url, ossId, name: originalName, uploadTime: createTime },\n status: 'success'\n }\n }) as unknown as F[]\n },\n { deep: true, immediate: true }\n )\n\n onMounted(() => {\n Object.assign(expose, uploadRef.value, { uploadFiles })\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-upload {\n :deep(.t-upload) {\n &__dragger {\n min-width: 336px;\n min-height: 144px;\n width: 100%;\n height: 100%;\n }\n }\n\n &--only-view {\n :deep(.t-upload) {\n &__flow-op,\n &__trigger,\n &__flow-bottom {\n display: none;\n }\n\n &__flow-table,\n &__flow-card-area {\n margin-top: 0;\n }\n\n .t-image-viewer__trigger {\n display: none;\n }\n\n &__card {\n .t-upload__card-item.t-is-background:last-child {\n display: none;\n }\n }\n }\n }\n }\n</style>\n"],"names":["modelValue","t","_openBlock","_createBlock","_unref","_mergeProps","_createSlots","TSpace","_createVNode","TButton","_toDisplayString","TPopup","TUpload","_createElementVNode","TBadge","_createTextVNode","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.vue2.mjs","sources":["../../../src/components/upload/index.vue"],"sourcesContent":["<template>\n <t-upload\n ref=\"upload\"\n :class=\"[\n 'qd-upload',\n `qd-upload--${reProps.theme}`,\n reProps.onlyView ? 'qd-upload--only-view' : '',\n !reProps.uploadOptions.showUploadProgress && reProps.onlyView\n ? 'qd-upload--hide-progress'\n : '',\n !reProps.uploadOptions.autoUpload && reProps.showManualButton\n ? ''\n : 'qd-upload--hide-manual-upload'\n ]\"\n v-model:files=\"fileList\"\n v-bind=\"reProps.uploadOptions\"\n >\n <template v-if=\"['btn-file-popup', 'btn-image-popup'].includes(theme)\">\n <t-space align=\"center\" size=\"small\">\n <t-button\n v-if=\"!reProps.onlyView\"\n variant=\"outline\"\n :disabled=\"reProps.uploadOptions.disabled\"\n >\n <template #icon><upload-icon /></template>\n {{\n !fileList.length\n ? t('triggerUploadText').fileInput\n : reProps.uploadOptions.max === 1 || !reProps.uploadOptions.multiple\n ? t('triggerUploadText').reupload\n : t('triggerUploadText').continueUpload\n }}\n </t-button>\n\n <t-popup v-if=\"fileList.length\" show-arrow trigger=\"click\">\n <t-badge :count=\"fileList.length\" size=\"small\" :offset=\"[2, 2]\" @click.stop>\n <t-button variant=\"outline\">\n <template #icon><browse-icon /></template>\n {{ t('viewFileText') }}\n </t-button>\n </t-badge>\n\n <template #content>\n <t-upload\n :class=\"[\n 'qd-upload__popup-upload',\n reProps.uploadOptions.disabled ? 'qd-upload__popup-upload--disabled' : ''\n ]\"\n v-model:files=\"popupFileList\"\n :theme=\"popupUploadTheme\"\n :disabled=\"reProps.uploadOptions.disabled\"\n :on-remove=\"reProps.handlePopupRemove\"\n :show-thumbnail=\"reProps.uploadOptions.showThumbnail\"\n :show-image-file-name=\"reProps.uploadOptions.showImageFileName\"\n :show-upload-progress=\"reProps.uploadOptions.showUploadProgress\"\n >\n <template #trigger><span style=\"display: none\"></span></template>\n </t-upload>\n </template>\n </t-popup>\n </t-space>\n </template>\n\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotProps\">\n <slot :name=\"name\" v-bind=\"slotProps\" />\n </template>\n </t-upload>\n</template>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n F extends UploadFile = UploadFile,\n OR = unknown,\n OP extends string | number | (string | number)[] = string | number | (string | number)[],\n TOP = OP,\n UR = unknown,\n UP extends string | string[] = string | string[],\n TUP = UP,\n DR = unknown,\n DP extends string | number | (string | number)[] = string | number | (string | number)[],\n TDP = DP\n \"\n>\n import type {\n SizeLimitObj,\n TdUploadProps,\n UploadFile,\n UploadInstanceFunctions\n } from 'tdesign-vue-next'\n import type {\n QdUploadDeleteResult,\n QdUploadInstanceFunctions,\n QdUploadListOssByIdsResult,\n QdUploadProps\n } from './types'\n import { qdUploadProps, qdUploadSizeLimit } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, inject, onMounted, useTemplateRef, ref, watch } from 'vue'\n import {\n Upload as TUpload,\n Button as TButton,\n Popup as TPopup,\n Space as TSpace,\n Badge as TBadge\n } from 'tdesign-vue-next'\n import { UploadIcon, BrowseIcon } from 'tdesign-icons-vue-next'\n import {\n checkSameObject,\n easyCopy,\n isEmpty,\n isTypeByName,\n suspectedWrapperPromise,\n to,\n useTimer\n } from 'qidian-shared'\n import dayjs from 'dayjs'\n import { PROVIDE_UPLOAD } from '../config-provider/config'\n import { useConfig } from '../config-provider/useConfig'\n import { useModal, useDisabled, useReadonly } from '../../hooks'\n import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from '../form'\n import { qdUploadAcceptMap } from './config'\n import { qdDictConvStrSeparator } from '../dict/tag/props'\n\n defineOptions({\n name: 'QdUpload'\n })\n\n type Props = QdUploadProps<F, OR, OP, TOP, UR, UP, TUP, DR, DP, TDP>\n\n const props = withDefaults(defineProps<Props>(), qdUploadProps)\n const emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']]\n 'update:files': [Props['files']]\n }>()\n const { modelValue, files: fileList } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const reModelValue = computed({\n get: () => {\n const { convStr } = reProps.value\n const value = modelValue.value\n if (isEmpty(value)) return []\n if (typeof value === 'string') {\n return value.split((typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator)\n }\n\n return value\n },\n set: (val) => {\n const { convStr } = reProps.value\n if (convStr) {\n modelValue.value = val.join(\n (typeof convStr === 'string' ? convStr : '') || qdDictConvStrSeparator\n )\n return\n }\n\n modelValue.value = val\n }\n })\n\n const formAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, undefined)\n const { t } = useConfig('upload')\n const tdReadonly = useReadonly()\n const tdDisabled = useDisabled()\n const { msgError, msgWarning } = useModal()\n const uploadRef = useTemplateRef<UploadInstanceFunctions>('upload')\n const { timer: uploadTimer, clearTimer: clearUploadTimer } = useTimer('interval')\n\n const delList = ref<(string | number)[]>([])\n\n const popupFileList = computed(() => [...fileList.value])\n\n const globalUploadProps = inject(\n PROVIDE_UPLOAD,\n computed(() => undefined)\n )\n const reProps = computed(() => {\n const {\n modelValue,\n files,\n convStr,\n valueMode,\n theme,\n sizeLimit,\n accept,\n multiple,\n disabled,\n beforeUpload,\n onValidate,\n formatResponse,\n onSuccess,\n onRemove,\n\n onlyView,\n listOssByIds,\n listOssByUrls,\n del,\n\n action,\n bucketConfigKey,\n showImageFileName,\n showUploadProgress,\n showThumbnail,\n draggable,\n\n showManualButton,\n ...uploadOptions\n } = props\n const globalUploadPropsV = globalUploadProps.value\n\n const reAction = action || globalUploadPropsV?.action\n const actionUrl = typeof reAction === 'string' ? reAction : reAction?.(bucketConfigKey)\n\n const reSizeLimit = easyCopy(qdUploadSizeLimit) as SizeLimitObj | undefined\n if (reSizeLimit) {\n if (typeof sizeLimit === 'number') {\n reSizeLimit.size = sizeLimit\n reSizeLimit.message = t('sizeLimitMessage')\n } else {\n Object.assign(reSizeLimit, { message: t('sizeLimitMessage') }, sizeLimit)\n }\n }\n\n const acceptStr = (\n accept\n ? accept\n : theme.includes('image')\n ? qdUploadAcceptMap.image\n : qdUploadAcceptMap.default\n ).join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (accept && !isTypeByName(file.name, accept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${accept} ${t('fileFormatNotSupportedMessage')[1]}`\n )\n return false\n }\n\n return true\n }\n\n const reOnValidate: typeof onValidate = (context) => {\n if (onValidate) {\n onValidate(context)\n return\n }\n\n switch (context.type) {\n case 'FILES_OVER_LENGTH_LIMIT':\n msgWarning(`${t('maxUploadMessage')[0]}${props.max}${t('maxUploadMessage')[1]}`)\n break\n case 'FILTER_FILE_SAME_NAME':\n msgWarning(t('sameNameMessage'))\n break\n case 'FILE_OVER_SIZE_LIMIT':\n msgWarning(`${context.files.map((t) => t.name).join(',')} ${t('fileSizeExceedsLimit')}`)\n break\n }\n }\n\n const reFormatResponse: typeof formatResponse = (res, context) => {\n if (formatResponse) return formatResponse(res, context)\n\n if (res.code === 200) {\n const { url, ossId, fileName, uploadTime } = res.data || {}\n return {\n success: true,\n url,\n name: fileName,\n ossId,\n uploadTime: uploadTime || dayjs().format('YYYY-MM-DD HH:mm:ss')\n }\n }\n\n return { status: 'fail', error: res.message || res.msg || t('fileUploadFailed') }\n }\n\n const reOnSuccess: typeof onSuccess = (context) => {\n onSuccess?.(context)\n updateModelValue(fileList.value)\n }\n\n const reOnRemove: typeof onRemove = (context) => {\n onRemove?.(context)\n const { ossId } = context.file?.response || {}\n\n if (ossId) {\n if (props.autoUpload) to(handleDel(ossId))\n else addDel(ossId)\n }\n\n updateModelValue(fileList.value)\n }\n\n const handlePopupRemove: typeof onRemove = (context) => {\n reOnRemove(context)\n if (isEmpty(context.index)) return\n\n fileList.value.splice(context.index, 1)\n }\n\n const reUploadOptions = {\n action: actionUrl,\n theme: ['custom', 'file', 'file-input', 'file-flow', 'image', 'image-flow'].includes(theme)\n ? theme\n : 'custom',\n sizeLimit: reSizeLimit,\n accept: acceptStr,\n multiple: multiple ?? props.max !== 1,\n disabled: onlyView ? true : (disabled ?? (tdDisabled.value || tdReadonly.value)),\n beforeUpload: reBeforeUpload,\n onValidate: reOnValidate,\n formatResponse: reFormatResponse,\n onSuccess: reOnSuccess,\n onRemove: reOnRemove,\n showImageFileName: onlyView ? false : showImageFileName,\n showUploadProgress: onlyView ? false : showUploadProgress,\n showThumbnail: onlyView ? true : showThumbnail,\n draggable: onlyView ? false : draggable,\n ...uploadOptions\n } as TdUploadProps\n\n if (globalUploadPropsV) {\n Object.entries(globalUploadPropsV).forEach(([key, value]) => {\n if (['action'].includes(key) || isEmpty(value)) return\n ;(reUploadOptions as Record<string, unknown>)[key] = value\n })\n }\n\n return {\n theme,\n convStr,\n valueMode,\n accept,\n handlePopupRemove,\n onlyView,\n listOssByIds: {\n ...globalUploadPropsV?.listOssByIds,\n ...listOssByIds\n } as Props['listOssByIds'],\n listOssByUrls: {\n ...globalUploadPropsV?.listOssByUrls,\n ...listOssByUrls\n } as Props['listOssByUrls'],\n del: { ...globalUploadPropsV?.del, ...del } as Props['del'],\n showManualButton,\n uploadOptions: reUploadOptions,\n models: {\n modelValue,\n files\n }\n }\n })\n\n const popupUploadTheme = computed(() => {\n switch (props.theme) {\n case 'btn-image-popup':\n return 'image'\n default:\n return 'file-flow'\n }\n })\n\n const expose = {} as QdUploadInstanceFunctions\n\n const uploadFiles: QdUploadInstanceFunctions['uploadFiles'] = (options) => {\n uploadRef.value?.uploadFiles(options?.files)\n\n return new Promise((resolve, reject) => {\n uploadTimer.value = setInterval(() => {\n const isFinished = fileList.value.every((item) => item.status !== 'progress')\n if (!isFinished) return\n\n clearUploadTimer()\n updateModelValue(fileList.value)\n\n const errorList = fileList.value.filter((item) => item.status === 'fail')\n if (errorList.length) {\n const msg = `${errorList.map((item) => item.name).join(',')} ${t('fileUploadFailed')}`\n if (options?.showErrorMessage !== false) {\n msgError(msg)\n }\n reject(new Error(msg))\n return\n }\n\n resolve(fileList.value)\n }, 100)\n })\n }\n\n function updateModelValue(files: UploadFile[]) {\n const tempModelValue: typeof reModelValue.value = []\n files.forEach((item) => {\n if (item.status !== 'success') return\n tempModelValue.push(item.response![reProps.value.valueMode])\n })\n reModelValue.value = tempModelValue\n }\n\n async function handleDel(\n ossId: string | number | (string | number)[],\n showErrorMessage?: boolean\n ) {\n const { del } = reProps.value\n if (!del) return\n\n const { service, transformParams, transformRes } = del\n\n const currentParams = ossId\n let tParams: TDP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as DP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TDP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadDeleteResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadDeleteResult\n }\n\n if (typeof res === 'boolean') {\n res = { success: res, message: '' }\n }\n\n if (!res) {\n res = { success: true, message: '' }\n }\n\n const message = res.message\n if (res.success === false) {\n if (message && showErrorMessage !== false) msgError(message)\n throw new Error(message)\n }\n }\n\n async function addDel(ossId: string | number) {\n delList.value.push(ossId)\n }\n\n async function getOssByIds(ossId: string | number | (string | number)[]) {\n const { listOssByIds } = reProps.value\n if (!listOssByIds) return []\n\n const { service, transformParams, transformRes } = listOssByIds\n\n const currentParams = ossId\n let tParams: TOP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as OP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TOP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function getOssByUrls(ossId: string | string[]) {\n const { listOssByUrls } = reProps.value\n if (!listOssByUrls) return []\n\n const { service, transformParams, transformRes } = listOssByUrls\n\n const currentParams = ossId\n let tParams: TUP | undefined\n\n if (transformParams) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformParams(currentParams as UP))\n if (trErr) throw trErr\n\n tParams = trRes\n }\n\n const [serviceErr, serviceRes] = await to(service(tParams || (currentParams as unknown as TUP)))\n if (serviceErr) throw serviceErr\n\n let res: QdUploadListOssByIdsResult | undefined\n if (transformRes) {\n const [trErr, trRes] = await suspectedWrapperPromise(transformRes(serviceRes))\n if (trErr) throw trErr\n\n res = trRes\n } else {\n res = serviceRes as QdUploadListOssByIdsResult\n }\n\n return res\n }\n\n async function uploadBeforeFormSubmit() {\n const [err] = await to(uploadFiles({ showErrorMessage: false }))\n if (err) return { success: false, message: err.message }\n return true\n }\n\n async function delBeforeFormSubmit() {\n if (!delList.value.length) return true\n\n const [err] = await to(handleDel(delList.value, false))\n if (err) return true\n return true\n }\n\n formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit)\n formAddBeforeSubmitQueue?.(delBeforeFormSubmit)\n\n watch(\n reModelValue,\n async (newVal, oldVal) => {\n if (!newVal.length || checkSameObject(newVal, oldVal) || fileList.value.length) return\n\n const { valueMode } = reProps.value\n const apiFn = valueMode === 'url' ? getOssByUrls : getOssByIds\n const [err, res] = await to(apiFn(newVal))\n if (err) return\n\n fileList.value = res.map((item) => {\n const { url, ossId, originalName, fileSize, contentType, createTime } = item\n\n return {\n url,\n uid: ossId,\n name: originalName,\n size: fileSize,\n type: contentType,\n uploadTime: createTime,\n response: { status: 'success', url, ossId, name: originalName, uploadTime: createTime },\n status: 'success'\n }\n }) as unknown as F[]\n },\n { deep: true, immediate: true }\n )\n\n onMounted(() => {\n Object.assign(expose, uploadRef.value, { uploadFiles })\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-upload {\n :deep(.t-upload) {\n &__dragger {\n min-width: 336px;\n min-height: 144px;\n width: 100%;\n height: 100%;\n }\n\n &__flow {\n width: 100%;\n max-width: 100%;\n }\n }\n\n &__popup-upload {\n :deep(.t-image-viewer__trigger) {\n display: none;\n }\n\n :deep(.t-upload) {\n &__flow-table {\n margin-top: 0;\n }\n }\n\n &--disabled {\n :deep(.t-upload) {\n &__flow-table {\n th:last-child,\n td:last-child {\n display: none;\n }\n }\n }\n }\n }\n\n &--only-view:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) {\n :deep(.t-upload) {\n &__flow-op,\n &__trigger,\n &__flow-bottom {\n display: none;\n }\n\n &__flow-table,\n &__flow-card-area {\n margin-top: 0;\n }\n\n .t-image-viewer__trigger {\n display: none;\n }\n\n &__card {\n .t-upload__card-item.t-is-background:last-child {\n display: none;\n }\n }\n }\n }\n\n &--hide-manual-upload {\n :deep(.t-upload) {\n &__flow-bottom {\n display: none;\n margin-top: 0;\n }\n }\n }\n\n &--hide-progress {\n :deep(.t-upload) {\n &__flow-table {\n th:last-child,\n td:last-child {\n display: none;\n }\n }\n }\n }\n }\n</style>\n"],"names":["modelValue","t","_openBlock","_createBlock","_unref","_mergeProps","_createSlots","TSpace","TButton","_createVNode","_toDisplayString","TPopup","TUpload","_normalizeClass","_createElementVNode","TBadge","_createTextVNode","$slots","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps"],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare const qdUploadProps: {
19
19
  readonly uploadPastedFiles: true;
20
20
  readonly useMockProgress: true;
21
21
  readonly withCredentials: false;
22
+ readonly showManualButton: false;
22
23
  readonly del: undefined;
23
24
  };
24
25
  export declare const qdUploadSizeLimit: {
@@ -19,6 +19,7 @@ const qdUploadProps = {
19
19
  uploadPastedFiles: true,
20
20
  useMockProgress: true,
21
21
  withCredentials: false,
22
+ showManualButton: false,
22
23
  del: void 0
23
24
  };
24
25
  const qdUploadSizeLimit = {
@@ -1 +1 @@
1
- {"version":3,"file":"props.mjs","sources":["../../../src/components/upload/props.ts"],"sourcesContent":["export const qdUploadProps = {\n modelValue: () => [],\n files: () => [],\n convStr: false,\n valueMode: 'ossId',\n theme: 'file',\n draggable: undefined,\n autoUpload: false,\n allowUploadDuplicateFile: true,\n isBatchUpload: false,\n uploadAllFilesInOneRequest: false,\n method: 'POST',\n multiple: undefined,\n name: 'file',\n disabled: undefined,\n showImageFileName: true,\n showThumbnail: true,\n showUploadProgress: true,\n uploadPastedFiles: true,\n useMockProgress: true,\n withCredentials: false,\n del: undefined\n} as const\n\nexport const qdUploadSizeLimit = {\n size: 5,\n unit: 'MB'\n}\n"],"names":[],"mappings":"AAAO,MAAM,gBAAgB;AAAA,EAC3B,YAAY,MAAM,CAAA;AAAA,EAClB,OAAO,MAAM,CAAA;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,4BAA4B;AAAA,EAC5B,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,KAAK;AACP;AAEO,MAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AACR;"}
1
+ {"version":3,"file":"props.mjs","sources":["../../../src/components/upload/props.ts"],"sourcesContent":["export const qdUploadProps = {\n modelValue: () => [],\n files: () => [],\n convStr: false,\n valueMode: 'ossId',\n theme: 'file',\n draggable: undefined,\n autoUpload: false,\n allowUploadDuplicateFile: true,\n isBatchUpload: false,\n uploadAllFilesInOneRequest: false,\n method: 'POST',\n multiple: undefined,\n name: 'file',\n disabled: undefined,\n showImageFileName: true,\n showThumbnail: true,\n showUploadProgress: true,\n uploadPastedFiles: true,\n useMockProgress: true,\n withCredentials: false,\n showManualButton: false,\n del: undefined\n} as const\n\nexport const qdUploadSizeLimit = {\n size: 5,\n unit: 'MB'\n}\n"],"names":[],"mappings":"AAAO,MAAM,gBAAgB;AAAA,EAC3B,YAAY,MAAM,CAAA;AAAA,EAClB,OAAO,MAAM,CAAA;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,0BAA0B;AAAA,EAC1B,eAAe;AAAA,EACf,4BAA4B;AAAA,EAC5B,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,MAAM;AAAA,EACN,UAAU;AAAA,EACV,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,KAAK;AACP;AAEO,MAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AACR;"}
@@ -3,7 +3,8 @@ export type QdUploadListOssByIdsResult = {
3
3
  url: string;
4
4
  ossId: string;
5
5
  originalName: string;
6
- size: number;
6
+ fileSize?: number;
7
+ contentType?: string;
7
8
  createTime: string;
8
9
  }[];
9
10
  export type QdUploadDeleteResult = boolean | {
@@ -16,9 +17,10 @@ export interface QdUploadProps<F extends UploadFile = UploadFile, OR = unknown,
16
17
  bucketConfigKey?: string;
17
18
  convStr?: boolean | string;
18
19
  valueMode?: 'ossId' | 'url';
19
- theme?: TdUploadProps['theme'] | 'btn-image-popup';
20
+ theme?: TdUploadProps['theme'] | 'btn-file-popup' | 'btn-image-popup';
20
21
  accept?: string[];
21
22
  onlyView?: boolean;
23
+ showManualButton?: boolean;
22
24
  listOssByIds?: {
23
25
  service: (url: TOP) => Promise<OR>;
24
26
  transformParams?: (url: OP) => Promise<TOP> | TOP;
@@ -1 +1 @@
1
- {"version":3,"file":"useModal.mjs","sources":["../../src/hooks/useModal.ts"],"sourcesContent":["import type {\n DialogOptions,\n MessageInfoOptions,\n NotificationOptions,\n MessageInstance,\n NotificationInstance,\n TNode\n} from 'tdesign-vue-next'\nimport { MessagePlugin, DialogPlugin, NotifyPlugin } from 'tdesign-vue-next'\nimport { useConfig } from '../components/config-provider/useConfig'\nimport { isEmpty, suspectedWrapperPromise } from 'qidian-shared'\n\ninterface QdDialogOptions extends Omit<DialogOptions, 'onConfirm'> {\n onConfirm?: (context: {\n e: MouseEvent | KeyboardEvent\n }) => void | Promise<void> | boolean | Promise<boolean>\n}\n\nexport function useModal() {\n const { t } = useConfig('modal')\n\n function messageOptionsMerge(content: string | MessageInfoOptions): MessageInfoOptions {\n if (typeof content === 'string') {\n return {\n content,\n zIndex: 100001\n }\n }\n\n return {\n zIndex: 100001,\n ...content\n }\n }\n\n function messageCore(\n theme: 'info' | 'success' | 'warning' | 'error' | 'loading',\n content: string | MessageInfoOptions,\n duration?: number\n ) {\n return MessagePlugin[theme](messageOptionsMerge(content), duration)\n }\n\n function msg(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('info', content, duration)\n }\n\n function msgSuccess(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('success', content, duration)\n }\n\n function msgError(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('error', content, duration)\n }\n\n function msgWarning(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('warning', content, duration)\n }\n\n function msgLoading(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('loading', content, duration)\n }\n\n function msgClose(options: Promise<MessageInstance>) {\n MessagePlugin.close(options)\n }\n\n function msgCloseAll() {\n MessagePlugin.closeAll()\n }\n\n function alertOptionsMerge(body: string | DialogOptions): QdDialogOptions {\n if (typeof body === 'string') {\n return {\n header: t('systemPromptText'),\n body,\n zIndex: 100001\n }\n }\n\n return {\n header: t('systemPromptText'),\n zIndex: 100001,\n ...body\n }\n }\n\n function alertCore(\n theme: 'default' | 'info' | 'success' | 'error' | 'warning',\n content: string | QdDialogOptions\n ) {\n const options = alertOptionsMerge(content)\n const instance = DialogPlugin.alert({\n ...options,\n theme: theme === 'error' ? 'danger' : theme,\n onConfirm: async (context) => {\n const { onConfirm } = options\n if (onConfirm) {\n const [err, res] = await suspectedWrapperPromise(onConfirm(context))\n if (err) return\n if (isEmpty(res) || res) instance?.destroy()\n return\n }\n\n instance?.destroy()\n },\n onClose: (context) => {\n options.onClose?.(context)\n instance?.destroy()\n },\n })\n\n return instance\n }\n\n function alert(content: string | DialogOptions) {\n return alertCore('info', content)\n }\n\n function alertSuccess(content: string | DialogOptions) {\n return alertCore('success', content)\n }\n\n function alertError(content: string | DialogOptions) {\n return alertCore('error', content)\n }\n\n function alertWarning(content: string | DialogOptions) {\n return alertCore('warning', content)\n }\n\n function notifyOptionsMerge(content: string | TNode): NotificationOptions {\n return {\n content,\n zIndex: 100001\n }\n }\n\n function notifyCore(theme: 'info' | 'success' | 'error' | 'warning', content: string | TNode) {\n return NotifyPlugin[theme](notifyOptionsMerge(content))\n }\n\n function notify(content: string | TNode) {\n return notifyCore('info', content)\n }\n\n function notifySuccess(content: string | TNode) {\n return notifyCore('success', content)\n }\n\n function notifyError(content: string | TNode) {\n return notifyCore('error', content)\n }\n\n function notifyWarning(content: string | TNode) {\n return notifyCore('warning', content)\n }\n\n function notifyClose(options: Promise<NotificationInstance>) {\n NotifyPlugin.close(options)\n }\n\n function notifyCloseAll() {\n NotifyPlugin.closeAll()\n }\n\n function confirm(\n options:\n | string\n | Pick<\n DialogOptions,\n | 'header'\n | 'body'\n | 'theme'\n | 'confirmBtn'\n | 'cancelBtn'\n | 'closeBtn'\n | 'closeOnEscKeydown'\n | 'closeOnOverlayClick'\n >,\n onConfirm: (context: {\n e: MouseEvent | KeyboardEvent\n }) => void | Promise<void> | boolean | Promise<boolean>,\n onClose?: () => void\n ) {\n const reOptions = alertOptionsMerge(options)\n const instance = DialogPlugin.confirm({\n ...reOptions,\n onConfirm: async (context) => {\n instance.update({\n confirmBtn: { loading: true },\n closeOnOverlayClick: false,\n closeOnEscKeydown: false,\n closeBtn: false,\n cancelBtn: { disabled: true }\n })\n const [err, res] = await suspectedWrapperPromise(onConfirm(context))\n\n if (err) {\n instance.update({\n confirmBtn: { loading: false },\n closeOnOverlayClick: reOptions.closeOnOverlayClick,\n closeOnEscKeydown: reOptions.closeOnEscKeydown,\n closeBtn: reOptions.closeBtn,\n cancelBtn: { disabled: false }\n })\n return\n }\n\n if (isEmpty(res) || res) instance?.destroy()\n },\n onClose: () => {\n onClose?.()\n instance?.destroy()\n }\n })\n\n return instance\n }\n\n return {\n messageOptionsMerge,\n messageCore,\n msg,\n msgSuccess,\n msgError,\n msgWarning,\n msgLoading,\n msgClose,\n msgCloseAll,\n\n alertOptionsMerge,\n alertCore,\n alert,\n alertSuccess,\n alertError,\n alertWarning,\n\n notifyOptionsMerge,\n notifyCore,\n notify,\n notifySuccess,\n notifyError,\n notifyWarning,\n notifyClose,\n notifyCloseAll,\n confirm\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useModal.mjs","sources":["../../src/hooks/useModal.ts"],"sourcesContent":["import type {\n DialogOptions,\n MessageInfoOptions,\n NotificationOptions,\n MessageInstance,\n NotificationInstance,\n TNode\n} from 'tdesign-vue-next'\nimport { MessagePlugin, DialogPlugin, NotifyPlugin } from 'tdesign-vue-next'\nimport { useConfig } from '../components/config-provider/useConfig'\nimport { isEmpty, suspectedWrapperPromise } from 'qidian-shared'\n\ninterface QdDialogOptions extends Omit<DialogOptions, 'onConfirm'> {\n onConfirm?: (context: {\n e: MouseEvent | KeyboardEvent\n }) => void | Promise<void> | boolean | Promise<boolean>\n}\n\nexport function useModal() {\n const { t } = useConfig('modal')\n\n function messageOptionsMerge(content: string | MessageInfoOptions): MessageInfoOptions {\n if (typeof content === 'string') {\n return {\n content,\n zIndex: 100001\n }\n }\n\n return {\n zIndex: 100001,\n ...content\n }\n }\n\n function messageCore(\n theme: 'info' | 'success' | 'warning' | 'error' | 'loading',\n content: string | MessageInfoOptions,\n duration?: number\n ) {\n return MessagePlugin[theme](messageOptionsMerge(content), duration)\n }\n\n function msg(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('info', content, duration)\n }\n\n function msgSuccess(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('success', content, duration)\n }\n\n function msgError(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('error', content, duration)\n }\n\n function msgWarning(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('warning', content, duration)\n }\n\n function msgLoading(content: string | MessageInfoOptions, duration?: number) {\n return messageCore('loading', content, duration)\n }\n\n function msgClose(options: Promise<MessageInstance>) {\n MessagePlugin.close(options)\n }\n\n function msgCloseAll() {\n MessagePlugin.closeAll()\n }\n\n function alertOptionsMerge(body: string | DialogOptions): QdDialogOptions {\n if (typeof body === 'string') {\n return {\n header: t('systemPromptText'),\n body,\n zIndex: 100001\n }\n }\n\n return {\n header: t('systemPromptText'),\n zIndex: 100001,\n ...body\n }\n }\n\n function alertCore(\n theme: 'default' | 'info' | 'success' | 'error' | 'warning',\n content: string | QdDialogOptions\n ) {\n const options = alertOptionsMerge(content)\n const instance = DialogPlugin.alert({\n ...options,\n theme: theme === 'error' ? 'danger' : theme,\n onConfirm: async (context) => {\n const { onConfirm } = options\n if (onConfirm) {\n const [err, res] = await suspectedWrapperPromise(onConfirm(context))\n if (err) return\n if (isEmpty(res) || res) instance?.destroy()\n return\n }\n\n instance?.destroy()\n },\n onClose: (context) => {\n options.onClose?.(context)\n instance?.destroy()\n }\n })\n\n return instance\n }\n\n function alert(content: string | DialogOptions) {\n return alertCore('info', content)\n }\n\n function alertSuccess(content: string | DialogOptions) {\n return alertCore('success', content)\n }\n\n function alertError(content: string | DialogOptions) {\n return alertCore('error', content)\n }\n\n function alertWarning(content: string | DialogOptions) {\n return alertCore('warning', content)\n }\n\n function notifyOptionsMerge(content: string | TNode): NotificationOptions {\n return {\n content,\n zIndex: 100001\n }\n }\n\n function notifyCore(theme: 'info' | 'success' | 'error' | 'warning', content: string | TNode) {\n return NotifyPlugin[theme](notifyOptionsMerge(content))\n }\n\n function notify(content: string | TNode) {\n return notifyCore('info', content)\n }\n\n function notifySuccess(content: string | TNode) {\n return notifyCore('success', content)\n }\n\n function notifyError(content: string | TNode) {\n return notifyCore('error', content)\n }\n\n function notifyWarning(content: string | TNode) {\n return notifyCore('warning', content)\n }\n\n function notifyClose(options: Promise<NotificationInstance>) {\n NotifyPlugin.close(options)\n }\n\n function notifyCloseAll() {\n NotifyPlugin.closeAll()\n }\n\n function confirm(\n options:\n | string\n | Pick<\n DialogOptions,\n | 'header'\n | 'body'\n | 'theme'\n | 'confirmBtn'\n | 'cancelBtn'\n | 'closeBtn'\n | 'closeOnEscKeydown'\n | 'closeOnOverlayClick'\n >,\n onConfirm: (context: {\n e: MouseEvent | KeyboardEvent\n }) => void | Promise<void> | boolean | Promise<boolean>,\n onClose?: () => void\n ) {\n const reOptions = alertOptionsMerge(options)\n const instance = DialogPlugin.confirm({\n ...reOptions,\n onConfirm: async (context) => {\n instance.update({\n confirmBtn: { loading: true },\n closeOnOverlayClick: false,\n closeOnEscKeydown: false,\n closeBtn: false,\n cancelBtn: { disabled: true }\n })\n const [err, res] = await suspectedWrapperPromise(onConfirm(context))\n\n if (err) {\n instance.update({\n confirmBtn: { loading: false },\n closeOnOverlayClick: reOptions.closeOnOverlayClick,\n closeOnEscKeydown: reOptions.closeOnEscKeydown,\n closeBtn: reOptions.closeBtn,\n cancelBtn: { disabled: false }\n })\n return\n }\n\n if (isEmpty(res) || res) instance?.destroy()\n },\n onClose: () => {\n onClose?.()\n instance?.destroy()\n }\n })\n\n return instance\n }\n\n return {\n messageOptionsMerge,\n messageCore,\n msg,\n msgSuccess,\n msgError,\n msgWarning,\n msgLoading,\n msgClose,\n msgCloseAll,\n\n alertOptionsMerge,\n alertCore,\n alert,\n alertSuccess,\n alertError,\n alertWarning,\n\n notifyOptionsMerge,\n notifyCore,\n notify,\n notifySuccess,\n notifyError,\n notifyWarning,\n notifyClose,\n notifyCloseAll,\n confirm\n }\n}\n"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -6,17 +6,17 @@ import { QdConfigProvider } from "./components/config-provider/index.mjs";
6
6
  import { default as default5 } from "./components/config-renderer/index.vue.mjs";
7
7
  import { qdAsyncCompute, qdCompute, qdUseComputeValue } from "./components/config-renderer/compute.mjs";
8
8
  import { getValueByPath, parseVModelPath, resolveVModelBinding, setValueByPath } from "./components/config-renderer/utils.mjs";
9
- import { default as default6 } from "./components/crud/table.vue.mjs";
10
- import { default as default7 } from "./components/crud/list.vue.mjs";
11
- import { default as default8 } from "./components/crud/search.vue.mjs";
9
+ import { default as default6 } from "./components/crud/list/index.vue.mjs";
10
+ import { default as default7 } from "./components/crud/search/index.vue.mjs";
11
+ import { default as default8 } from "./components/crud/table/index.vue.mjs";
12
12
  import { defineQdCrudList, defineQdCrudTable } from "./components/crud/define.mjs";
13
13
  import { default as default9 } from "./components/dialog/index.vue.mjs";
14
14
  /* empty css */
15
15
  import { default as default10 } from "./components/dialog/form.vue.mjs";
16
- import { default as default11 } from "./components/dict/select.vue.mjs";
17
- import { default as default12 } from "./components/dict/radio-group.vue.mjs";
18
- import { default as default13 } from "./components/dict/checkbox-group.vue.mjs";
19
- import { default as default14 } from "./components/dict/tag.vue.mjs";
16
+ import { default as default11 } from "./components/dict/checkbox-group/index.vue.mjs";
17
+ import { default as default12 } from "./components/dict/radio-group/index.vue.mjs";
18
+ import { default as default13 } from "./components/dict/select/index.vue.mjs";
19
+ import { default as default14 } from "./components/dict/tag/index.vue.mjs";
20
20
  import { default as default15 } from "./components/office/pdf/index.vue.mjs";
21
21
  import { default as default16 } from "./components/org/select/index.vue.mjs";
22
22
  /* empty css */
@@ -28,9 +28,9 @@ import { default as default19 } from "./components/grid/index.vue.mjs";
28
28
  import { default as default20 } from "./components/grid/item.vue.mjs";
29
29
  import { PROVIDE_GRID_ITEM_PROPS_KEY, PROVIDE_GRID_WIDTH_KEY } from "./components/grid/config.mjs";
30
30
  import { default as default21 } from "./components/image/index.vue.mjs";
31
- import { default as default22 } from "./components/service/table.vue.mjs";
32
- import { default as default23 } from "./components/service/list.vue.mjs";
33
- import { default as default24 } from "./components/service/select.vue.mjs";
31
+ import { default as default22 } from "./components/service/list/index.vue.mjs";
32
+ import { default as default23 } from "./components/service/select/index.vue.mjs";
33
+ import { default as default24 } from "./components/service/table/index.vue.mjs";
34
34
  import { default as default25 } from "./components/upload/index.vue.mjs";
35
35
  import { qdUploadAcceptMap } from "./components/upload/config.mjs";
36
36
  import { hasPermi, hasPermiDirective } from "./directive/hasPermi.mjs";
@@ -52,14 +52,14 @@ export {
52
52
  default4 as QdCard,
53
53
  QdConfigProvider,
54
54
  default5 as QdConfigRenderer,
55
- default7 as QdCrudList,
56
- default8 as QdCrudSearch,
57
- default6 as QdCrudTable,
55
+ default6 as QdCrudList,
56
+ default7 as QdCrudSearch,
57
+ default8 as QdCrudTable,
58
58
  default9 as QdDialog,
59
59
  default10 as QdDialogForm,
60
- default13 as QdDictCheckboxGroup,
60
+ default11 as QdDictCheckboxGroup,
61
61
  default12 as QdDictRadioGroup,
62
- default11 as QdDictSelect,
62
+ default13 as QdDictSelect,
63
63
  default14 as QdDictTag,
64
64
  default17 as QdForm,
65
65
  default18 as QdFormItem,
@@ -68,9 +68,9 @@ export {
68
68
  default21 as QdImage,
69
69
  default15 as QdOfficePdf,
70
70
  default16 as QdOrgSelect,
71
- default23 as QdServiceList,
72
- default24 as QdServiceSelect,
73
- default22 as QdServiceTable,
71
+ default22 as QdServiceList,
72
+ default23 as QdServiceSelect,
73
+ default24 as QdServiceTable,
74
74
  default25 as QdUpload,
75
75
  auth,
76
76
  defineQdCrudList,