@vunk/form 1.1.71 → 1.1.73

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 (64) hide show
  1. package/components/button/src/ctx.d.ts +7 -7
  2. package/components/button/src/index.vue.d.ts +26 -26
  3. package/components/cascader/src/ctx.d.ts +3 -3
  4. package/components/cascader/src/index.vue.d.ts +29 -29
  5. package/components/checkbox/src/ctx.d.ts +6 -6
  6. package/components/checkbox/src/index.vue.d.ts +22 -22
  7. package/components/color-picker/src/ctx.d.ts +5 -5
  8. package/components/color-picker/src/index.vue.d.ts +15 -15
  9. package/components/date-picker/src/ctx.d.ts +5 -5
  10. package/components/date-picker/src/index.vue.d.ts +28 -28
  11. package/components/download-plus/index.css +74 -0
  12. package/components/download-plus/index.d.ts +4 -0
  13. package/components/download-plus/index.js +418 -0
  14. package/components/download-plus/src/api.d.ts +13 -0
  15. package/components/download-plus/src/api.js +1 -0
  16. package/components/download-plus/src/const.d.ts +9 -0
  17. package/components/download-plus/src/const.js +1 -0
  18. package/components/download-plus/src/ctx.d.ts +83 -0
  19. package/components/download-plus/src/ctx.js +1 -0
  20. package/components/download-plus/src/index.css +1 -0
  21. package/components/download-plus/src/index.vue.d.ts +199 -0
  22. package/components/download-plus/src/types.d.ts +17 -0
  23. package/components/download-plus/src/types.js +1 -0
  24. package/components/esri-input-geojson/src/ctx.d.ts +3 -3
  25. package/components/esri-input-geojson/src/index.vue.d.ts +23 -23
  26. package/components/form/src/ctx.d.ts +1 -1
  27. package/components/form/src/index.vue.d.ts +5 -5
  28. package/components/form-item/src/ctx.d.ts +1 -1
  29. package/components/form-item/src/index.vue.d.ts +3 -3
  30. package/components/geoinput/src/ctx.d.ts +1 -1
  31. package/components/geoinput/src/index.vue.d.ts +12 -12
  32. package/components/geoinput-read/src/core.vue.d.ts +29 -29
  33. package/components/geoinput-read/src/ctx.d.ts +7 -7
  34. package/components/geoinput-read/src/index.vue.d.ts +19 -19
  35. package/components/geoinput-update/src/ctx.d.ts +7 -7
  36. package/components/geoinput-update/src/index.vue.d.ts +31 -31
  37. package/components/input/src/ctx.d.ts +7 -7
  38. package/components/input/src/index.vue.d.ts +27 -27
  39. package/components/input-link/src/ctx.d.ts +1 -1
  40. package/components/input-link/src/index.vue.d.ts +12 -12
  41. package/components/input-number/src/ctx.d.ts +3 -3
  42. package/components/input-number/src/index.vue.d.ts +11 -11
  43. package/components/radio/src/ctx.d.ts +5 -5
  44. package/components/radio/src/index.vue.d.ts +19 -19
  45. package/components/select/src/ctx.d.ts +8 -8
  46. package/components/select/src/index.vue.d.ts +59 -59
  47. package/components/slider/src/ctx.d.ts +5 -5
  48. package/components/slider/src/index.vue.d.ts +19 -19
  49. package/components/switch/src/ctx.d.ts +5 -5
  50. package/components/switch/src/index.vue.d.ts +19 -19
  51. package/components/upload/src/ctx.d.ts +6 -6
  52. package/components/upload/src/index.vue.d.ts +17 -17
  53. package/components/upload-plus/index.css +2 -0
  54. package/components/upload-plus/index.js +43 -13
  55. package/components/upload-plus/src/api.js +6 -6
  56. package/components/upload-plus/src/ctx.d.ts +22 -6
  57. package/components/upload-plus/src/ctx.js +1 -1
  58. package/components/upload-plus/src/index.vue.d.ts +16 -15
  59. package/components/van-cascader/src/ctx.d.ts +1 -1
  60. package/components/van-cascader/src/index.vue.d.ts +19 -19
  61. package/components/var-datetime-picker/src/ctx.d.ts +1 -1
  62. package/components/var-datetime-picker/src/index.vue.d.ts +6 -6
  63. package/index.css +79 -0
  64. package/package.json +1 -1
@@ -0,0 +1,418 @@
1
+ import { _VkfFormItemCtx, VkfFormItem } from '@vunk/form/components/form-item';
2
+ import { openBlock, createElementBlock, createElementVNode, defineComponent, watchEffect, ref, watch, onBeforeUnmount, resolveComponent, createBlock, mergeProps, withCtx, createVNode, Fragment, renderList, normalizeClass, normalizeStyle, createCommentVNode, createTextVNode } from 'vue';
3
+ import { rFile } from '@skzz/platform/api/basic';
4
+ import { restFetch as restFetch$1 } from '@skzz/platform/shared/fetch/platform';
5
+ import { ElButtonGroup, ElButton, ElInput } from 'element-plus';
6
+ import { RestFetch } from '@vunk/core/shared/utils-fetch';
7
+ import { useModelComputed } from '@vunk/core/composables';
8
+
9
+ const props = {
10
+ ..._VkfFormItemCtx.props,
11
+ fileId: {
12
+ type: String,
13
+ default: ""
14
+ },
15
+ url: {
16
+ type: String,
17
+ default: void 0
18
+ },
19
+ /**
20
+ * @description 分片大小
21
+ */
22
+ chunkSize: {
23
+ type: Number,
24
+ default: 1024 * 1024 * 10
25
+ },
26
+ fileServiceType: {
27
+ type: String,
28
+ default: void 0
29
+ },
30
+ /**
31
+ * @description
32
+ * v-model:fileStatus 当前文件状态: wait, doPause, pause, doDownload, downloading, error, done
33
+ */
34
+ fileStatus: {
35
+ type: String,
36
+ default: void 0
37
+ }
38
+ };
39
+ const emits = {
40
+ "update:fileStatus": null
41
+ };
42
+
43
+ var Status = /* @__PURE__ */ ((Status2) => {
44
+ Status2["wait"] = "wait";
45
+ Status2["doPause"] = "doPause";
46
+ Status2["pause"] = "pause";
47
+ Status2["doDownload"] = "doDownload";
48
+ Status2["downloading"] = "downloading";
49
+ Status2["error"] = "error";
50
+ Status2["done"] = "done";
51
+ return Status2;
52
+ })(Status || {});
53
+
54
+ const KeyConfig = {
55
+ TokenKey: "VUNK_SKZZ_REST_TOKEN",
56
+ ApplicationKey: "VUNK_SKZZ_REST_APPLICATION",
57
+ TenantKey: "VUNK_SKZZ_REST_TENANT"
58
+ };
59
+ function getToken() {
60
+ return localStorage.getItem(KeyConfig.TokenKey) || "";
61
+ }
62
+
63
+ const restFetch = new RestFetch({
64
+ baseURL: restFetch$1.baseURL,
65
+ presetRequestInit: (config) => {
66
+ const header = config.headers;
67
+ const token = getToken();
68
+ if (token) {
69
+ header.set("Token", token);
70
+ }
71
+ return config;
72
+ }
73
+ });
74
+ const downChunk = (params, init) => {
75
+ return new Promise((resolve, reject) => {
76
+ const xhr = new XMLHttpRequest();
77
+ let url = `${restFetch.baseURL}/file/downloadByRange?fileId=${params.fileId}`;
78
+ if (params.fileServiceType) {
79
+ url += `&fileServiceType=${params.fileServiceType}`;
80
+ xhr.setRequestHeader("fileServiceType", params.fileServiceType);
81
+ }
82
+ if (init?.onprogress) {
83
+ xhr.onprogress = init?.onprogress;
84
+ }
85
+ xhr.open("GET", url, true);
86
+ xhr.responseType = "blob";
87
+ xhr.setRequestHeader("Token", getToken());
88
+ xhr.setRequestHeader("tenant", "default");
89
+ xhr.setRequestHeader("application", "platform");
90
+ xhr.setRequestHeader("Content-Range", `bytes=${params.start}-${params.end}`);
91
+ xhr.setRequestHeader("Accept-Ranges", "bytes");
92
+ xhr.onreadystatechange = (e) => {
93
+ const target = e.target;
94
+ if (xhr.readyState === 4) {
95
+ if (xhr.status === 200 || xhr.status === 206) {
96
+ if (init?.xhrs) {
97
+ const i = init.xhrs.findIndex((req) => req === xhr);
98
+ init.xhrs.splice(i, 1);
99
+ }
100
+ resolve({
101
+ data: target.response
102
+ });
103
+ } else if (xhr.status === 500) {
104
+ reject(target.response);
105
+ }
106
+ }
107
+ };
108
+ xhr.onerror = () => {
109
+ reject(xhr.response);
110
+ };
111
+ xhr.send();
112
+ init?.xhrs?.push(xhr);
113
+ });
114
+ };
115
+
116
+ /*! Element Plus Icons Vue v2.1.0 */
117
+
118
+
119
+ // unplugin-vue:/plugin-vue/export-helper
120
+ var export_helper_default = (sfc, props) => {
121
+ let target = sfc.__vccOpts || sfc;
122
+ for (let [key, val] of props) target[key] = val;
123
+ return target;
124
+ };
125
+
126
+ // unplugin-vue:/home/runner/work/element-plus-icons/element-plus-icons/packages/vue/src/components/download.vue?vue&type=script&lang.ts
127
+ var download_vue_vue_type_script_lang_default = {
128
+ name: "Download"
129
+ };
130
+ var _hoisted_191 = {
131
+ xmlns: "http://www.w3.org/2000/svg",
132
+ viewBox: "0 0 1024 1024"
133
+ },
134
+ _hoisted_291 = /* @__PURE__ */createElementVNode("path", {
135
+ fill: "currentColor",
136
+ d: "M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64zm384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64v450.304z"
137
+ }, null, -1
138
+ /* HOISTED */),
139
+ _hoisted_390 = [_hoisted_291];
140
+ function _sfc_render91(_ctx, _cache, $props, $setup, $data, $options) {
141
+ return openBlock(), createElementBlock("svg", _hoisted_191, _hoisted_390);
142
+ }
143
+ var download_default = /* @__PURE__ */export_helper_default(download_vue_vue_type_script_lang_default, [["render", _sfc_render91], ["__file", "download.vue"]]);
144
+
145
+ var script = defineComponent({
146
+ name: "VkfDownloadPlus",
147
+ components: {
148
+ VkfFormItem,
149
+ ElButtonGroup,
150
+ ElButton,
151
+ ElInput
152
+ },
153
+ props,
154
+ emits,
155
+ setup(props2, {
156
+ emit
157
+ }) {
158
+ const formItemBindProps = _VkfFormItemCtx.createBindProps(props2);
159
+ watchEffect(() => {
160
+ restFetch.baseURL = props2.url || restFetch$1.baseURL;
161
+ });
162
+ const fileInfo = ref();
163
+ rFileInfo();
164
+ watch(() => props2.fileId, rFileInfo);
165
+ function rFileInfo() {
166
+ if (!props2.fileId) {
167
+ return;
168
+ }
169
+ rFile({
170
+ fileId: props2.fileId
171
+ }).then((res) => {
172
+ fileInfo.value = res;
173
+ });
174
+ }
175
+ const chunks = ref([]);
176
+ const downloadingXhrs = ref([]);
177
+ const fileStatus = useModelComputed({
178
+ default: Status.wait,
179
+ key: "fileStatus"
180
+ }, props2, emit);
181
+ const handleDownload = () => {
182
+ if (!fileInfo.value) {
183
+ return;
184
+ }
185
+ const fileSize = fileInfo.value.size;
186
+ const fileId = fileInfo.value.id;
187
+ const chunksLength = Math.ceil(fileSize / props2.chunkSize);
188
+ chunks.value = Array.from({
189
+ length: chunksLength
190
+ }, (_, i) => {
191
+ const start = i * props2.chunkSize;
192
+ const end = Math.min(start + props2.chunkSize, fileSize) - 1;
193
+ let downloadedChunk = {};
194
+ if (chunks.value[i] && chunks.value[i].start === start && chunks.value[i].end === end && chunks.value[i].status === Status.done) {
195
+ downloadedChunk = chunks.value[i];
196
+ }
197
+ return {
198
+ start,
199
+ end,
200
+ index: i,
201
+ status: Status.wait,
202
+ fileId,
203
+ fileServiceType: props2.fileServiceType,
204
+ progress: 0,
205
+ ...downloadedChunk
206
+ };
207
+ });
208
+ fileStatus.value = Status.downloading;
209
+ const needDownloadChunks = chunks.value.filter((v) => v.status === Status.wait || v.status === Status.error);
210
+ rChunkFiles(needDownloadChunks).then(() => {
211
+ const blobs = chunks.value.map((item) => {
212
+ return item.data;
213
+ });
214
+ return new Blob(blobs, {
215
+ type: "application/octet-stream"
216
+ });
217
+ }).then((blob) => {
218
+ const url = URL.createObjectURL(blob);
219
+ const a = document.createElement("a");
220
+ a.href = url;
221
+ a.download = fileInfo.value?.realName || "\u672A\u77E5\u6587\u4EF6";
222
+ a.click();
223
+ URL.revokeObjectURL(url);
224
+ }).then(() => {
225
+ fileStatus.value = Status.done;
226
+ }).catch(() => {
227
+ fileStatus.value = Status.error;
228
+ });
229
+ };
230
+ watch(() => fileStatus.value, (newVal) => {
231
+ if (newVal === Status.doDownload) {
232
+ handleDownload();
233
+ }
234
+ });
235
+ function rChunkFiles(chunks2, max = 4, retrys = 10) {
236
+ return new Promise((resolve, reject) => {
237
+ const len = chunks2.length;
238
+ let counter = 0;
239
+ if (len === 0) {
240
+ return resolve(void 0);
241
+ }
242
+ const retryArr = [];
243
+ const start = async () => {
244
+ while (counter < len && max > 0) {
245
+ max--;
246
+ const i = chunks2.findIndex((v) => v.status === Status.wait || v.status === Status.error);
247
+ const currentChunk = chunks2[i];
248
+ if (currentChunk) {
249
+ currentChunk.status = Status.downloading;
250
+ downChunk(currentChunk, {
251
+ onprogress(ev) {
252
+ currentChunk.progress = parseInt(ev.loaded / ev.total * 100 + "");
253
+ },
254
+ xhrs: downloadingXhrs.value
255
+ }).then((res) => {
256
+ currentChunk.status = Status.done;
257
+ currentChunk.data = res.data;
258
+ max++;
259
+ counter++;
260
+ }).then(() => {
261
+ if (counter === len) {
262
+ resolve(void 0);
263
+ } else {
264
+ start();
265
+ }
266
+ }).catch(() => {
267
+ currentChunk.status = Status.error;
268
+ const index = currentChunk.index;
269
+ if (typeof retryArr[index] !== "number") {
270
+ retryArr[index] = 0;
271
+ }
272
+ retryArr[index]++;
273
+ console.warn(index, currentChunk, retryArr[index], "\u6B21\u62A5\u9519");
274
+ currentChunk.progress = -1;
275
+ if (retryArr[index] >= retrys) {
276
+ return reject();
277
+ }
278
+ max++;
279
+ start();
280
+ });
281
+ }
282
+ }
283
+ };
284
+ start();
285
+ });
286
+ }
287
+ const handlePause = () => {
288
+ downloadingXhrs.value.forEach((xhr) => {
289
+ xhr.abort();
290
+ });
291
+ downloadingXhrs.value = [];
292
+ fileStatus.value = Status.pause;
293
+ };
294
+ watch(() => fileStatus.value, (newVal) => {
295
+ if (newVal === Status.doPause) {
296
+ handlePause();
297
+ }
298
+ });
299
+ onBeforeUnmount(() => {
300
+ handlePause();
301
+ });
302
+ return {
303
+ formItemBindProps,
304
+ fileInfo,
305
+ handleDownload,
306
+ handlePause,
307
+ Status,
308
+ chunks,
309
+ fileStatus,
310
+ Download: download_default
311
+ };
312
+ }
313
+ });
314
+
315
+ const _hoisted_1 = {
316
+ class: "vkf-download-plus-main"
317
+ };
318
+ const _hoisted_2 = {
319
+ class: "vkf-download-plus-label"
320
+ };
321
+ const _hoisted_3 = {
322
+ key: 0,
323
+ class: "vkf-download-plus-cube-x"
324
+ };
325
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
326
+ const _component_ElInput = resolveComponent("ElInput");
327
+ const _component_el_button = resolveComponent("el-button");
328
+ const _component_el_button_group = resolveComponent("el-button-group");
329
+ const _component_VkfFormItem = resolveComponent("VkfFormItem");
330
+ return openBlock(), createBlock(
331
+ _component_VkfFormItem,
332
+ mergeProps(_ctx.formItemBindProps, {
333
+ class: "vkf-download-plus"
334
+ }),
335
+ {
336
+ default: withCtx(() => [createElementVNode("div", _hoisted_1, [createElementVNode("label", _hoisted_2, [createVNode(_component_ElInput, {
337
+ "prefix-icon": _ctx.Download,
338
+ "model-value": _ctx.fileInfo?.realName,
339
+ readonly: ""
340
+ }, null, 8, ["prefix-icon", "model-value"]), _ctx.fileStatus === _ctx.Status.downloading || _ctx.fileStatus === _ctx.Status.pause ? (openBlock(), createElementBlock("div", _hoisted_3, [(openBlock(true), createElementBlock(
341
+ Fragment,
342
+ null,
343
+ renderList(_ctx.chunks, (chunk) => {
344
+ return openBlock(), createElementBlock(
345
+ "div",
346
+ {
347
+ key: chunk.fileId + "-" + chunk.index,
348
+ class: normalizeClass(["vkf-download-plus-cube", {
349
+ "error": chunk.status == _ctx.Status.error
350
+ }]),
351
+ style: normalizeStyle({
352
+ width: 100 / _ctx.chunks.length + "%"
353
+ })
354
+ },
355
+ [createElementVNode(
356
+ "div",
357
+ {
358
+ class: normalizeClass({
359
+ "uploading": chunk.progress > 0 && chunk.progress < 100,
360
+ "success": chunk.progress == 100
361
+ }),
362
+ style: normalizeStyle({
363
+ height: chunk.progress + "%"
364
+ })
365
+ },
366
+ null,
367
+ 6
368
+ /* CLASS, STYLE */
369
+ )],
370
+ 6
371
+ /* CLASS, STYLE */
372
+ );
373
+ }),
374
+ 128
375
+ /* KEYED_FRAGMENT */
376
+ ))])) : createCommentVNode("v-if", true)]), createVNode(_component_el_button_group, {
377
+ class: "vkf-download-plus-btng"
378
+ }, {
379
+ default: withCtx(() => [_ctx.fileStatus === _ctx.Status.downloading ? (openBlock(), createBlock(_component_el_button, {
380
+ key: 0,
381
+ type: "danger",
382
+ onClick: _ctx.handlePause
383
+ }, {
384
+ default: withCtx(() => [createTextVNode(" \u6682\u505C ")]),
385
+ _: 1
386
+ /* STABLE */
387
+ }, 8, ["onClick"])) : (openBlock(), createBlock(_component_el_button, {
388
+ key: 1,
389
+ type: "primary",
390
+ onClick: _ctx.handleDownload
391
+ }, {
392
+ default: withCtx(() => [createTextVNode(" \u4E0B\u8F7D ")]),
393
+ _: 1
394
+ /* STABLE */
395
+ }, 8, ["onClick"]))]),
396
+ _: 1
397
+ /* STABLE */
398
+ })])]),
399
+ _: 1
400
+ /* STABLE */
401
+ },
402
+ 16
403
+ /* FULL_PROPS */
404
+ );
405
+ }
406
+
407
+ script.render = render;
408
+ script.__file = "download-plus/src/index.vue";
409
+
410
+ var types = /*#__PURE__*/Object.freeze({
411
+ __proto__: null
412
+ });
413
+
414
+ script.install = (app) => {
415
+ app.component(script.name || "VkfDownloadPlus", script);
416
+ };
417
+
418
+ export { script as VkfDownloadPlus, types as __VkfDownloadPlus, script as default };
@@ -0,0 +1,13 @@
1
+ import { RestFetch } from '@vunk/core/shared/utils-fetch';
2
+ export declare const restFetch: RestFetch;
3
+ export declare const downChunk: (params: {
4
+ fileId: string;
5
+ start: number;
6
+ end: number;
7
+ fileServiceType?: string;
8
+ }, init?: {
9
+ onprogress?: XMLHttpRequestEventTarget['onprogress'];
10
+ xhrs?: XMLHttpRequest[];
11
+ }) => Promise<{
12
+ data: Blob;
13
+ }>;
@@ -0,0 +1 @@
1
+ import{RestFetch as l}from"@vunk/core/shared/utils-fetch";import{restFetch as u}from"@skzz/platform/shared/fetch/platform";const T={TokenKey:"VUNK_SKZZ_REST_TOKEN",ApplicationKey:"VUNK_SKZZ_REST_APPLICATION",TenantKey:"VUNK_SKZZ_REST_TENANT"};function c(){return localStorage.getItem(T.TokenKey)||""}const i=new l({baseURL:u.baseURL,presetRequestInit:t=>{const s=t.headers,r=c();return r&&s.set("Token",r),t}}),R=(t,s)=>new Promise((r,n)=>{const e=new XMLHttpRequest;let o=`${i.baseURL}/file/downloadByRange?fileId=${t.fileId}`;t.fileServiceType&&(o+=`&fileServiceType=${t.fileServiceType}`,e.setRequestHeader("fileServiceType",t.fileServiceType)),s?.onprogress&&(e.onprogress=s?.onprogress),e.open("GET",o,!0),e.responseType="blob",e.setRequestHeader("Token",c()),e.setRequestHeader("tenant","default"),e.setRequestHeader("application","platform"),e.setRequestHeader("Content-Range",`bytes=${t.start}-${t.end}`),e.setRequestHeader("Accept-Ranges","bytes"),e.onreadystatechange=p=>{const a=p.target;if(e.readyState===4)if(e.status===200||e.status===206){if(s?.xhrs){const d=s.xhrs.findIndex(f=>f===e);s.xhrs.splice(d,1)}r({data:a.response})}else e.status===500&&n(a.response)},e.onerror=()=>{n(e.response)},e.send(),s?.xhrs?.push(e)});export{R as downChunk,i as restFetch};
@@ -0,0 +1,9 @@
1
+ export declare enum Status {
2
+ wait = "wait",
3
+ doPause = "doPause",
4
+ pause = "pause",
5
+ doDownload = "doDownload",
6
+ downloading = "downloading",
7
+ error = "error",
8
+ done = "done"
9
+ }
@@ -0,0 +1 @@
1
+ var d=(o=>(o.wait="wait",o.doPause="doPause",o.pause="pause",o.doDownload="doDownload",o.downloading="downloading",o.error="error",o.done="done",o))(d||{});export{d as Status};
@@ -0,0 +1,83 @@
1
+ import { Status } from './const';
2
+ import { PropType } from 'vue';
3
+ export declare const props: {
4
+ fileId: {
5
+ type: StringConstructor;
6
+ default: string;
7
+ };
8
+ url: {
9
+ type: StringConstructor;
10
+ default: any;
11
+ };
12
+ /**
13
+ * @description 分片大小
14
+ */
15
+ chunkSize: {
16
+ type: NumberConstructor;
17
+ default: number;
18
+ };
19
+ fileServiceType: {
20
+ type: PropType<import("../../upload-plus/src/types").FileServiceType>;
21
+ default: any;
22
+ };
23
+ /**
24
+ * @description
25
+ * v-model:fileStatus 当前文件状态: wait, doPause, pause, doDownload, downloading, error, done
26
+ */
27
+ fileStatus: {
28
+ type: PropType<Status>;
29
+ default: any;
30
+ };
31
+ label: StringConstructor;
32
+ labelWidth: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, "", boolean>;
33
+ prop: {
34
+ readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | string[]) | (() => import("element-plus").FormItemProp) | ((new (...args: any[]) => string | string[]) | (() => import("element-plus").FormItemProp))[], unknown, unknown>>;
35
+ readonly required: false;
36
+ readonly validator: (val: unknown) => boolean;
37
+ __epPropKey: true;
38
+ };
39
+ required: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
40
+ rules: {
41
+ readonly type: PropType<unknown>;
42
+ readonly required: false;
43
+ readonly validator: (val: unknown) => boolean;
44
+ __epPropKey: true;
45
+ };
46
+ error: StringConstructor;
47
+ validateStatus: {
48
+ readonly type: PropType<import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "error" | "success" | "validating", unknown>>;
49
+ readonly required: false;
50
+ readonly validator: (val: unknown) => boolean;
51
+ __epPropKey: true;
52
+ };
53
+ for: StringConstructor;
54
+ inlineMessage: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, BooleanConstructor], unknown, unknown, "", boolean>;
55
+ showMessage: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
56
+ formItemSize: {
57
+ type: PropType<"default" | "small" | "large">;
58
+ default: "default" | "small" | "large";
59
+ };
60
+ formItemSlots: {
61
+ type: PropType<import("../../form-item/src/types").FormItemSlots>;
62
+ default: any;
63
+ };
64
+ elRef: {
65
+ type: PropType<any>;
66
+ required: boolean;
67
+ };
68
+ inline: {
69
+ type: BooleanConstructor;
70
+ default: boolean;
71
+ };
72
+ readonly: {
73
+ type: BooleanConstructor;
74
+ default: any;
75
+ };
76
+ labelPosition: {
77
+ type: PropType<"right">;
78
+ default: string;
79
+ };
80
+ };
81
+ export declare const emits: {
82
+ 'update:fileStatus': any;
83
+ };
@@ -0,0 +1 @@
1
+ import{_VkfFormItemCtx as t}from"@vunk/form/components/form-item";const e={...t.props,fileId:{type:String,default:""},url:{type:String,default:void 0},chunkSize:{type:Number,default:1024*1024*10},fileServiceType:{type:String,default:void 0},fileStatus:{type:String,default:void 0}},i={"update:fileStatus":null};export{i as emits,e as props};