qidian-vue-ui 1.1.59 → 1.1.60

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 (44) hide show
  1. package/dist/components/config-provider/index.d.ts +24 -0
  2. package/dist/components/config-provider/types.d.ts +8 -0
  3. package/dist/components/config-provider/useConfig.d.ts +32 -0
  4. package/dist/components/dialog/form.vue.mjs +11 -13
  5. package/dist/components/dialog/form.vue.mjs.map +1 -1
  6. package/dist/components/dialog/props.d.ts +16 -0
  7. package/dist/components/dialog/props.mjs +2 -1
  8. package/dist/components/dialog/props.mjs.map +1 -1
  9. package/dist/components/form/config.d.ts +1 -0
  10. package/dist/components/form/config.mjs +3 -1
  11. package/dist/components/form/config.mjs.map +1 -1
  12. package/dist/components/form/index.css +5 -5
  13. package/dist/components/form/index.d.ts +1 -1
  14. package/dist/components/form/index.vue.mjs +1 -1
  15. package/dist/components/form/index.vue2.mjs +18 -2
  16. package/dist/components/form/index.vue2.mjs.map +1 -1
  17. package/dist/components/import-dialog/index.d.ts +2 -0
  18. package/dist/components/import-dialog/index.vue.d.ts +14 -0
  19. package/dist/components/import-dialog/index.vue.mjs +180 -0
  20. package/dist/components/import-dialog/index.vue.mjs.map +1 -0
  21. package/dist/components/import-dialog/index.vue2.mjs +5 -0
  22. package/dist/components/import-dialog/index.vue2.mjs.map +1 -0
  23. package/dist/components/import-dialog/props.d.ts +5 -0
  24. package/dist/components/import-dialog/props.mjs +9 -0
  25. package/dist/components/import-dialog/props.mjs.map +1 -0
  26. package/dist/components/import-dialog/types.d.ts +9 -0
  27. package/dist/components/index.d.ts +1 -0
  28. package/dist/components/upload/index.css +26 -26
  29. package/dist/components/upload/index.vue.mjs +2 -2
  30. package/dist/components/upload/index.vue2.mjs +10 -4
  31. package/dist/components/upload/index.vue2.mjs.map +1 -1
  32. package/dist/components/upload/types.d.ts +1 -0
  33. package/dist/index.mjs +48 -45
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/locales/en-US.d.ts +8 -0
  36. package/dist/locales/en-US.mjs +8 -0
  37. package/dist/locales/en-US.mjs.map +1 -1
  38. package/dist/locales/zh-CN.d.ts +8 -0
  39. package/dist/locales/zh-CN.mjs +8 -0
  40. package/dist/locales/zh-CN.mjs.map +1 -1
  41. package/dist/locales/zh-TW.d.ts +8 -0
  42. package/dist/locales/zh-TW.mjs +8 -0
  43. package/dist/locales/zh-TW.mjs.map +1 -1
  44. package/package.json +1 -1
@@ -0,0 +1,180 @@
1
+ import { defineComponent, mergeDefaults, computed, ref, createVNode, createBlock, openBlock, unref, isRef, isVNode } from "vue";
2
+ import { Alert, Space, Button } from "tdesign-vue-next";
3
+ import { qdImportDialogProps } from "./props.mjs";
4
+ import { useVModels } from "../../node_modules/.pnpm/@vueuse_core@14.0.0_vue@3.5.26_typescript@5.9.3_/node_modules/@vueuse/core/dist/index.mjs";
5
+ import { isEmpty, easyDownload, suspectedWrapperPromise } from "qidian-shared";
6
+ import { useConfig } from "../config-provider/useConfig.mjs";
7
+ import QdUpload from "../upload/index.vue.mjs";
8
+ import _sfc_main$1 from "../dialog/form.vue.mjs";
9
+ import { useModal } from "../../hooks/useModal.mjs";
10
+ function _isSlot(s) {
11
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
12
+ }
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ __name: "index",
15
+ props: /* @__PURE__ */ mergeDefaults({
16
+ name: {},
17
+ downloadTpl: {
18
+ type: [String, Function]
19
+ },
20
+ downloadTplName: {},
21
+ onSuccess: {
22
+ type: Function
23
+ },
24
+ wrapper: {},
25
+ visible: {
26
+ type: Boolean
27
+ },
28
+ action: {
29
+ type: [String, Function]
30
+ },
31
+ method: {},
32
+ accept: {},
33
+ tips: {}
34
+ }, qdImportDialogProps),
35
+ emits: ["update:visible"],
36
+ setup(__props, {
37
+ expose: __expose,
38
+ emit: __emit
39
+ }) {
40
+ const props = __props;
41
+ const emit = __emit;
42
+ const {
43
+ visible
44
+ } = useVModels(props, emit, {
45
+ passive: true
46
+ });
47
+ const {
48
+ t: crudT
49
+ } = useConfig("crud");
50
+ const {
51
+ t
52
+ } = useConfig("importDialog");
53
+ const {
54
+ msgSuccess,
55
+ alertError
56
+ } = useModal();
57
+ const reProps = computed(() => {
58
+ const {
59
+ visible: visible2,
60
+ name,
61
+ downloadTpl,
62
+ downloadTplName,
63
+ onSuccess,
64
+ tips,
65
+ accept,
66
+ wrapper,
67
+ ...uploadOptions
68
+ } = props;
69
+ const reUploadOptions = {
70
+ ...uploadOptions,
71
+ accept,
72
+ tips: tips || isEmpty(accept) ? tips : `${t("fileSupport")[0]} ${accept.join(",")} ${t("fileSupport")[1]}`
73
+ };
74
+ const qdDialogOptions = {
75
+ width: "min(600px, 100%)",
76
+ ...wrapper,
77
+ header: wrapper?.header || `${crudT("importText")}${name ? ` ${name}` : ""}`,
78
+ footer: false
79
+ };
80
+ return {
81
+ name,
82
+ downloadTpl,
83
+ downloadTplName,
84
+ onSuccess,
85
+ qdUploadOptions: reUploadOptions,
86
+ qdDialogOptions,
87
+ models: visible2
88
+ };
89
+ });
90
+ const downloadTplLoad = ref(false);
91
+ const items = computed(() => [{
92
+ ifRender: !!reProps.value.downloadTpl,
93
+ col: 12,
94
+ component: {
95
+ is: () => {
96
+ let _slot;
97
+ return createVNode(Alert, {
98
+ "class": "w-full"
99
+ }, {
100
+ default: () => [createVNode(Space, {
101
+ "align": "center",
102
+ "size": "small"
103
+ }, {
104
+ default: () => [t("clickDownloadTplText"), createVNode(Button, {
105
+ "theme": "primary",
106
+ "variant": "text",
107
+ "size": "small",
108
+ "loading": downloadTplLoad.value,
109
+ "onClick": () => handleDownloadTpl()
110
+ }, _isSlot(_slot = t("downloadTplText")) ? _slot : {
111
+ default: () => [_slot]
112
+ })]
113
+ })]
114
+ });
115
+ }
116
+ }
117
+ }, {
118
+ col: 12,
119
+ name: "file",
120
+ component: {
121
+ is: QdUpload,
122
+ vModel: "file",
123
+ draggable: true,
124
+ onSuccess: () => {
125
+ msgSuccess(t("successText"));
126
+ hide();
127
+ reProps.value.onSuccess?.();
128
+ },
129
+ onFail: ({
130
+ file
131
+ }) => {
132
+ alertError({
133
+ header: t("failText"),
134
+ body: file.response?.error ? (h) => h("div", {
135
+ innerHTML: file.response?.error
136
+ }) : void 0
137
+ });
138
+ },
139
+ ...reProps.value.qdUploadOptions
140
+ }
141
+ }]);
142
+ async function handleDownloadTpl() {
143
+ const {
144
+ downloadTpl,
145
+ downloadTplName
146
+ } = reProps.value;
147
+ if (!downloadTpl) return;
148
+ if (typeof downloadTpl === "string") {
149
+ easyDownload(downloadTpl, downloadTplName || "unnamed");
150
+ return;
151
+ }
152
+ downloadTplLoad.value = true;
153
+ await suspectedWrapperPromise(downloadTpl());
154
+ downloadTplLoad.value = false;
155
+ }
156
+ function show() {
157
+ visible.value = true;
158
+ }
159
+ function hide() {
160
+ visible.value = false;
161
+ }
162
+ const expose = {
163
+ show,
164
+ hide
165
+ };
166
+ __expose(expose);
167
+ return (_ctx, _cache) => {
168
+ return openBlock(), createBlock(unref(_sfc_main$1), {
169
+ visible: unref(visible),
170
+ "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => isRef(visible) ? visible.value = $event : null),
171
+ wrapper: reProps.value.qdDialogOptions,
172
+ items: items.value
173
+ }, null, 8, ["visible", "wrapper", "items"]);
174
+ };
175
+ }
176
+ });
177
+ export {
178
+ _sfc_main as default
179
+ };
180
+ //# sourceMappingURL=index.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue.mjs","sources":["../../../src/components/import-dialog/index.vue"],"sourcesContent":["<template>\n <qd-dialog-form v-model:visible=\"visible\" :wrapper=\"reProps.qdDialogOptions\" :items=\"items\" />\n</template>\n\n<script setup lang=\"tsx\">\n import type { QdImportDialogProps } from './types'\n import type { QdDialogInstanceFunctions } from '../dialog'\n import type { QdFormItemProps } from '../form'\n import type { UploadFailContext } from 'tdesign-vue-next'\n import { Alert as TAlert, Space as TSpace, Button as TButton } from 'tdesign-vue-next'\n import { QdDialogForm } from '../dialog'\n import { QdUpload } from '../upload'\n import { qdImportDialogProps } from './props'\n import { useVModels } from '@vueuse/core'\n import { computed, ref } from 'vue'\n import { easyDownload, isEmpty, suspectedWrapperPromise } from 'qidian-shared'\n import { useModal } from '../../hooks'\n import { useConfig } from '../config-provider/useConfig'\n\n const props = withDefaults(defineProps<QdImportDialogProps>(), qdImportDialogProps)\n const emit = defineEmits<{ 'update:visible': [QdImportDialogProps['visible']] }>()\n const { visible } = useVModels<typeof props, keyof typeof emit>(props, emit, {\n passive: true\n })\n\n const { t: crudT } = useConfig('crud')\n const { t } = useConfig('importDialog')\n const { msgSuccess, alertError } = useModal()\n\n const reProps = computed(() => {\n const {\n visible,\n name,\n downloadTpl,\n downloadTplName,\n onSuccess,\n tips,\n accept,\n wrapper,\n ...uploadOptions\n } = props\n\n const reUploadOptions = {\n ...uploadOptions,\n accept,\n tips:\n tips || isEmpty(accept)\n ? tips\n : `${t('fileSupport')[0]} ${accept.join(',')} ${t('fileSupport')[1]}`\n }\n\n const qdDialogOptions = {\n width: 'min(600px, 100%)',\n ...wrapper,\n\n header: wrapper?.header || `${crudT('importText')}${name ? ` ${name}` : ''}`,\n footer: false\n }\n\n return {\n name,\n downloadTpl,\n downloadTplName,\n onSuccess,\n qdUploadOptions: reUploadOptions,\n qdDialogOptions: qdDialogOptions,\n models: visible\n }\n })\n const downloadTplLoad = ref(false)\n\n const items = computed<QdFormItemProps[]>(() => [\n {\n ifRender: !!reProps.value.downloadTpl,\n col: 12,\n component: {\n is: () => (\n <TAlert class=\"w-full\">\n <TSpace align=\"center\" size=\"small\">\n {t('clickDownloadTplText')}\n <TButton\n theme=\"primary\"\n variant=\"text\"\n size=\"small\"\n loading={downloadTplLoad.value}\n onClick={() => handleDownloadTpl()}\n >\n {t('downloadTplText')}\n </TButton>\n </TSpace>\n </TAlert>\n )\n }\n },\n {\n col: 12,\n name: 'file',\n component: {\n is: QdUpload,\n vModel: 'file',\n draggable: true,\n onSuccess: () => {\n msgSuccess(t('successText'))\n hide()\n reProps.value.onSuccess?.()\n },\n onFail: ({ file }: UploadFailContext) => {\n alertError({\n header: t('failText'),\n body: file.response?.error\n ? (h) => h('div', { innerHTML: file.response?.error })\n : undefined\n })\n },\n ...reProps.value.qdUploadOptions\n }\n }\n ])\n\n async function handleDownloadTpl() {\n const { downloadTpl, downloadTplName } = reProps.value\n if (!downloadTpl) return\n\n if (typeof downloadTpl === 'string') {\n easyDownload(downloadTpl, downloadTplName || 'unnamed')\n return\n }\n\n downloadTplLoad.value = true\n await suspectedWrapperPromise(downloadTpl())\n downloadTplLoad.value = false\n }\n\n function show() {\n visible.value = true\n }\n\n function hide() {\n visible.value = false\n }\n\n const expose: QdDialogInstanceFunctions = {\n show,\n hide\n }\n\n defineExpose(expose)\n</script>\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","props","__props","emit","__emit","visible","useVModels","passive","t","crudT","useConfig","msgSuccess","alertError","useModal","reProps","computed","name","downloadTpl","downloadTplName","onSuccess","tips","accept","wrapper","uploadOptions","reUploadOptions","isEmpty","join","qdDialogOptions","width","header","footer","qdUploadOptions","models","downloadTplLoad","ref","items","ifRender","value","col","component","is","_slot","_createVNode","TAlert","default","TSpace","TButton","onClick","handleDownloadTpl","QdUpload","vModel","draggable","hide","onFail","file","body","response","error","h","innerHTML","undefined","easyDownload","suspectedWrapperPromise","show","expose","__expose","_createBlock","_unref","QdDialogForm","$event"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./index.vue.mjs";
2
+ export {
3
+ _sfc_main as default
4
+ };
5
+ //# sourceMappingURL=index.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.vue2.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ export declare const qdImportDialogProps: {
2
+ readonly method: "POST";
3
+ readonly name: "file";
4
+ readonly accept: () => string[];
5
+ };
@@ -0,0 +1,9 @@
1
+ const qdImportDialogProps = {
2
+ method: "POST",
3
+ name: "file",
4
+ accept: () => [".xlsx", ".xls"]
5
+ };
6
+ export {
7
+ qdImportDialogProps
8
+ };
9
+ //# sourceMappingURL=props.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"props.mjs","sources":["../../../src/components/import-dialog/props.ts"],"sourcesContent":["export const qdImportDialogProps = {\n method: 'POST',\n name: 'file',\n accept: () => ['.xlsx', '.xls']\n} as const\n"],"names":[],"mappings":"AAAO,MAAM,sBAAsB;AAAA,EACjC,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ,MAAM,CAAC,SAAS,MAAM;AAChC;"}
@@ -0,0 +1,9 @@
1
+ import type { QdDialogProps } from '../dialog';
2
+ import type { QdUploadProps } from '../upload';
3
+ export interface QdImportDialogProps extends Pick<QdDialogProps, 'visible'>, Pick<QdUploadProps, 'action' | 'method' | 'name' | 'accept' | 'tips'> {
4
+ name?: string;
5
+ downloadTpl?: string | (() => void) | (() => Promise<void>);
6
+ downloadTplName?: string;
7
+ onSuccess?: () => void;
8
+ wrapper?: Pick<QdDialogProps, 'header' | 'width'>;
9
+ }
@@ -12,6 +12,7 @@ export * from './read-write';
12
12
  export * from './form';
13
13
  export * from './grid';
14
14
  export * from './image';
15
+ export * from './import-dialog';
15
16
  export * from './md-editor';
16
17
  export * from './service';
17
18
  export * from './service-dialog-table-select';
@@ -1,70 +1,70 @@
1
- .qd-upload[data-v-386a89ff] {
1
+ .qd-upload[data-v-3b76e6d5] {
2
2
  width: 100%;
3
3
  outline: none;
4
4
  }
5
- .qd-upload[data-v-386a89ff] .t-image-viewer__trigger {
5
+ .qd-upload[data-v-3b76e6d5] .t-image-viewer__trigger {
6
6
  display: none;
7
7
  }
8
- .qd-upload[data-v-386a89ff] .t-upload__dragger {
8
+ .qd-upload[data-v-3b76e6d5] .t-upload__dragger {
9
9
  min-width: auto;
10
10
  min-height: 144px;
11
11
  width: 100%;
12
12
  height: 100%;
13
13
  }
14
- .qd-upload[data-v-386a89ff] .t-upload__flow {
14
+ .qd-upload[data-v-3b76e6d5] .t-upload__flow {
15
15
  width: 100%;
16
16
  min-width: auto;
17
17
  max-width: 100%;
18
18
  }
19
- .qd-upload[data-v-386a89ff] .t-upload__flow-empty {
19
+ .qd-upload[data-v-3b76e6d5] .t-upload__flow-empty {
20
20
  height: auto;
21
21
  min-height: 144px;
22
22
  }
23
- .qd-upload[data-v-386a89ff] .t-upload__flow-card-area,
24
- .qd-upload[data-v-386a89ff] .t-upload__flow-table {
23
+ .qd-upload[data-v-3b76e6d5] .t-upload__flow-card-area,
24
+ .qd-upload[data-v-3b76e6d5] .t-upload__flow-table {
25
25
  margin-top: var(--td-comp-margin-s);
26
26
  }
27
- .qd-upload__popup-upload[data-v-386a89ff] .t-image-viewer__trigger {
27
+ .qd-upload__popup-upload[data-v-3b76e6d5] .t-image-viewer__trigger {
28
28
  display: none;
29
29
  }
30
- .qd-upload__popup-upload[data-v-386a89ff] .t-upload__flow-table {
30
+ .qd-upload__popup-upload[data-v-3b76e6d5] .t-upload__flow-table {
31
31
  margin-top: 0;
32
32
  }
33
- .qd-upload__popup-upload--disabled[data-v-386a89ff] .t-upload__flow-table th:last-child,
34
- .qd-upload__popup-upload--disabled[data-v-386a89ff] .t-upload__flow-table td:last-child {
33
+ .qd-upload__popup-upload--disabled[data-v-3b76e6d5] .t-upload__flow-table th:last-child,
34
+ .qd-upload__popup-upload--disabled[data-v-3b76e6d5] .t-upload__flow-table td:last-child {
35
35
  display: none;
36
36
  }
37
- .qd-upload[data-v-386a89ff]:focus .t-upload__flow-card-area,
38
- .qd-upload[data-v-386a89ff]:focus .t-upload__flow-table {
37
+ .qd-upload[data-v-3b76e6d5]:focus .t-upload__flow-card-area,
38
+ .qd-upload[data-v-3b76e6d5]:focus .t-upload__flow-table {
39
39
  border-color: var(--td-brand-color);
40
40
  }
41
- .qd-upload--only-view[data-v-386a89ff] .t-upload__flow-empty,
42
- .qd-upload--only-view[data-v-386a89ff] .t-upload__card-mask-item-divider {
41
+ .qd-upload--only-view[data-v-3b76e6d5] .t-upload__flow-empty,
42
+ .qd-upload--only-view[data-v-3b76e6d5] .t-upload__card-mask-item-divider {
43
43
  display: none;
44
44
  }
45
- .qd-upload--only-view[data-v-386a89ff] .t-upload__flow-card-area {
45
+ .qd-upload--only-view[data-v-3b76e6d5] .t-upload__flow-card-area {
46
46
  border-color: var(--td-component-border);
47
47
  }
48
- .qd-upload--only-view[data-v-386a89ff]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-op,
49
- .qd-upload--only-view[data-v-386a89ff]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__trigger,
50
- .qd-upload--only-view[data-v-386a89ff]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-bottom {
48
+ .qd-upload--only-view[data-v-3b76e6d5]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-op,
49
+ .qd-upload--only-view[data-v-3b76e6d5]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__trigger,
50
+ .qd-upload--only-view[data-v-3b76e6d5]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-bottom {
51
51
  display: none;
52
52
  }
53
- .qd-upload--only-view[data-v-386a89ff]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-table,
54
- .qd-upload--only-view[data-v-386a89ff]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-card-area {
53
+ .qd-upload--only-view[data-v-3b76e6d5]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-table,
54
+ .qd-upload--only-view[data-v-3b76e6d5]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__flow-card-area {
55
55
  margin-top: 0;
56
56
  }
57
- .qd-upload--only-view[data-v-386a89ff]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__card .t-upload__card-item.t-is-background:last-child {
57
+ .qd-upload--only-view[data-v-3b76e6d5]:not(.qd-upload--btn-image-popup):not(.qd-upload--btn-file-popup) .t-upload__card .t-upload__card-item.t-is-background:last-child {
58
58
  display: none;
59
59
  }
60
- .qd-upload--hide-manual-upload[data-v-386a89ff] .t-upload__flow-bottom {
60
+ .qd-upload--hide-manual-upload[data-v-3b76e6d5] .t-upload__flow-bottom {
61
61
  display: none;
62
62
  margin-top: 0;
63
63
  }
64
- .qd-upload--hide-progress[data-v-386a89ff] .t-upload__flow-table th:last-child,
65
- .qd-upload--hide-progress[data-v-386a89ff] .t-upload__flow-table td:last-child {
64
+ .qd-upload--hide-progress[data-v-3b76e6d5] .t-upload__flow-table th:last-child,
65
+ .qd-upload--hide-progress[data-v-3b76e6d5] .t-upload__flow-table td:last-child {
66
66
  display: none;
67
67
  }
68
- .qd-upload--disabled[data-v-386a89ff] .t-upload__flow-card-area {
68
+ .qd-upload--disabled[data-v-3b76e6d5] .t-upload__flow-card-area {
69
69
  border-color: var(--td-component-border);
70
70
  }
@@ -2,8 +2,8 @@ import './index.css'
2
2
  import _sfc_main from "./index.vue2.mjs";
3
3
  /* empty css */
4
4
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
5
- const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-386a89ff"]]);
5
+ const QdUpload = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3b76e6d5"]]);
6
6
  export {
7
- index as default
7
+ QdUpload as default
8
8
  };
9
9
  //# sourceMappingURL=index.vue.mjs.map
@@ -10,7 +10,7 @@ import { PROVIDE_UPLOAD } from "../config-provider/config.mjs";
10
10
  import { useConfig } from "../config-provider/useConfig.mjs";
11
11
  import { qdUploadAcceptMap } from "./config.mjs";
12
12
  import { qdDictConvStrSeparator } from "../dict/tag/props.mjs";
13
- import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE } from "../form/config.mjs";
13
+ import { PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, PROVIDE_FORM_RESET_QUEUE } from "../form/config.mjs";
14
14
  import { useReadonly } from "../../hooks/useReadonly.mjs";
15
15
  import { useDisabled } from "../../hooks/useDisabled.mjs";
16
16
  import { useModal } from "../../hooks/useModal.mjs";
@@ -118,6 +118,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
118
118
  }
119
119
  });
120
120
  const formAddBeforeSubmitQueue = inject(PROVIDE_FORM_ADD_BEFORE_SUBMIT_QUEUE, void 0);
121
+ const formResetQueue = inject(PROVIDE_FORM_RESET_QUEUE, void 0);
121
122
  const { t } = useConfig("upload");
122
123
  const tdReadonly = useReadonly();
123
124
  const tdDisabled = useDisabled();
@@ -233,6 +234,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
233
234
  fileList.value.splice(context.index, 1);
234
235
  };
235
236
  const reUploadOptions = {
237
+ ...uploadOptions,
236
238
  action: actionUrl,
237
239
  theme: ["custom", "file", "file-input", "file-flow", "image", "image-flow"].includes(theme) ? theme : "custom",
238
240
  sizeLimit: reSizeLimit,
@@ -247,8 +249,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
247
249
  showImageFileName: onlyView ? false : showImageFileName,
248
250
  showUploadProgress: onlyView ? false : showUploadProgress,
249
251
  showThumbnail: onlyView ? true : showThumbnail,
250
- draggable: onlyView ? false : draggable,
251
- ...uploadOptions
252
+ draggable: onlyView ? false : draggable
252
253
  };
253
254
  if (globalUploadPropsV) {
254
255
  Object.entries(globalUploadPropsV).forEach(([key, value]) => {
@@ -411,8 +412,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
411
412
  if (err) return true;
412
413
  return true;
413
414
  }
415
+ function clear() {
416
+ reModelValue.value = [];
417
+ fileList.value = [];
418
+ }
414
419
  formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit);
415
420
  formAddBeforeSubmitQueue?.(delBeforeFormSubmit);
421
+ formResetQueue?.(clear);
416
422
  watch(
417
423
  reModelValue,
418
424
  async (newVal, oldVal) => {
@@ -443,7 +449,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
443
449
  { deep: true, immediate: true }
444
450
  );
445
451
  onMounted(() => {
446
- Object.assign(expose, uploadRef.value, { uploadFiles });
452
+ Object.assign(expose, uploadRef.value, { uploadFiles, clear });
447
453
  });
448
454
  __expose(expose);
449
455
  return (_ctx, _cache) => {
@@ -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 !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 reProps.uploadOptions.disabled ? 'qd-upload--disabled' : ''\n ]\"\n v-model:files=\"fileList\"\n :tabindex=\"reProps.onlyView || reProps.uploadOptions.disabled ? '' : '0'\"\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 reAccept = accept\n ? accept\n : theme.includes('image')\n ? qdUploadAcceptMap.image\n : qdUploadAcceptMap.default\n const acceptStr = reAccept.join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (reAccept && !isTypeByName(file.name, reAccept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${reAccept} ${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 (checkSameObject(newVal, oldVal)) return\n if (!newVal.length) {\n fileList.value = []\n return\n }\n if (fileList.value.length === newVal.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 width: 100%;\n outline: none;\n\n :deep(.t-image-viewer__trigger) {\n display: none;\n }\n\n :deep(.t-upload) {\n &__dragger {\n min-width: auto;\n min-height: 144px;\n width: 100%;\n height: 100%;\n }\n\n &__flow {\n width: 100%;\n min-width: auto;\n max-width: 100%;\n\n &-empty {\n height: auto;\n min-height: 144px;\n }\n\n &-card-area,\n &-table {\n margin-top: var(--td-comp-margin-s);\n }\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 &:focus {\n :deep(.t-upload__flow-card-area),\n :deep(.t-upload__flow-table) {\n border-color: var(--td-brand-color);\n }\n }\n\n &--only-view {\n :deep(.t-upload) {\n &__flow-empty,\n &__card-mask-item-divider {\n display: none;\n }\n\n &__flow-card-area {\n border-color: var(--td-component-border);\n }\n }\n\n &: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 &__card {\n .t-upload__card-item.t-is-background:last-child {\n display: none;\n }\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 &--disabled {\n :deep(.t-upload__flow-card-area) {\n border-color: var(--td-component-border);\n }\n }\n }\n</style>\n"],"names":["modelValue","t","dayjs","_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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"}
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 reProps.uploadOptions.disabled ? 'qd-upload--disabled' : ''\n ]\"\n v-model:files=\"fileList\"\n :tabindex=\"reProps.onlyView || reProps.uploadOptions.disabled ? '' : '0'\"\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, PROVIDE_FORM_RESET_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 formResetQueue = inject(PROVIDE_FORM_RESET_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 reAccept = accept\n ? accept\n : theme.includes('image')\n ? qdUploadAcceptMap.image\n : qdUploadAcceptMap.default\n const acceptStr = reAccept.join(',')\n\n const reBeforeUpload: typeof beforeUpload = (file) => {\n if (beforeUpload) return beforeUpload(file)\n\n if (reAccept && !isTypeByName(file.name, reAccept)) {\n msgError(\n `${t('fileFormatNotSupportedMessage')[0]} ${reAccept} ${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 ...uploadOptions,\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 } 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 function clear() {\n reModelValue.value = []\n fileList.value = []\n }\n\n formAddBeforeSubmitQueue?.(uploadBeforeFormSubmit)\n formAddBeforeSubmitQueue?.(delBeforeFormSubmit)\n formResetQueue?.(clear)\n\n watch(\n reModelValue,\n async (newVal, oldVal) => {\n if (checkSameObject(newVal, oldVal)) return\n if (!newVal.length) {\n fileList.value = []\n return\n }\n if (fileList.value.length === newVal.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, clear })\n })\n\n defineExpose(expose)\n</script>\n\n<style lang=\"less\" scoped>\n .qd-upload {\n width: 100%;\n outline: none;\n\n :deep(.t-image-viewer__trigger) {\n display: none;\n }\n\n :deep(.t-upload) {\n &__dragger {\n min-width: auto;\n min-height: 144px;\n width: 100%;\n height: 100%;\n }\n\n &__flow {\n width: 100%;\n min-width: auto;\n max-width: 100%;\n\n &-empty {\n height: auto;\n min-height: 144px;\n }\n\n &-card-area,\n &-table {\n margin-top: var(--td-comp-margin-s);\n }\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 &:focus {\n :deep(.t-upload__flow-card-area),\n :deep(.t-upload__flow-table) {\n border-color: var(--td-brand-color);\n }\n }\n\n &--only-view {\n :deep(.t-upload) {\n &__flow-empty,\n &__card-mask-item-divider {\n display: none;\n }\n\n &__flow-card-area {\n border-color: var(--td-component-border);\n }\n }\n\n &: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 &__card {\n .t-upload__card-item.t-is-background:last-child {\n display: none;\n }\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 &--disabled {\n :deep(.t-upload__flow-card-area) {\n border-color: var(--td-component-border);\n }\n }\n }\n</style>\n"],"names":["modelValue","t","dayjs","_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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"}
@@ -42,4 +42,5 @@ export interface QdUploadInstanceFunctions<F extends UploadFile = UploadFile> ex
42
42
  files?: F[];
43
43
  showErrorMessage?: boolean;
44
44
  }) => Promise<F[]>;
45
+ clear: () => void;
45
46
  }