@gct-paas/core-web 0.1.4-dev.12 → 0.1.4-dev.13

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 (90) hide show
  1. package/dist/de_DE-Dlmr1Wso.js +152 -0
  2. package/dist/en_US-B9GNh9s3.js +173 -0
  3. package/dist/es_ES-CdOh6_BZ.js +159 -0
  4. package/dist/fr_FR-DA5AJaJ_.js +168 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/ja_JP-DE6fp7p7.js +140 -0
  7. package/dist/loader.esm.min.js +9583 -0
  8. package/dist/{monaco-editor-BHuf3IVH.js → monaco-editor-Di2Ob0f2.js} +37 -38
  9. package/dist/objectSpread2-fLnUNEWu.js +62 -0
  10. package/dist/pt_PT-DqWIQ8Sv.js +134 -0
  11. package/dist/ru_RU-B7eejpuq.js +165 -0
  12. package/dist/tr_TR-Cp-TWGG5.js +167 -0
  13. package/dist/{useMonacoEditor-CfhCBaPa.js → useMonacoEditor-B4gp3RiK.js} +753 -817
  14. package/dist/vi_VN-BWekEft9.js +85 -0
  15. package/dist/zh_CN-CaadhslE.js +174 -0
  16. package/dist/zh_TW-DHMPuQGm.js +169 -0
  17. package/es/components/field-upload/index.d.ts +2 -0
  18. package/es/components/field-upload/index.mjs +7 -0
  19. package/es/components/field-upload/src/FieldUpload.vue.d.ts +37 -0
  20. package/es/components/field-upload/src/FieldUpload.vue.mjs +5 -0
  21. package/es/components/field-upload/src/FieldUpload.vue_vue_type_script_setup_true_name_FieldUpload_lang.mjs +111 -0
  22. package/es/components/field-upload/src/components/base-upload.vue.d.ts +21 -0
  23. package/es/components/field-upload/src/components/base-upload.vue.mjs +7 -0
  24. package/es/components/field-upload/src/components/base-upload.vue_vue_type_script_name_baseUpload_setup_true_lang.mjs +227 -0
  25. package/es/components/field-upload/src/components/base-upload.vue_vue_type_style_index_0_scoped_f53b6ac6_lang.css +76 -0
  26. package/es/components/field-upload/src/components/file-list.vue.d.ts +17 -0
  27. package/es/components/field-upload/src/components/file-list.vue.mjs +7 -0
  28. package/es/components/field-upload/src/components/file-list.vue_vue_type_script_setup_true_name_fileList_lang.mjs +129 -0
  29. package/es/components/field-upload/src/components/file-list.vue_vue_type_style_index_0_scoped_3918aad0_lang.css +129 -0
  30. package/es/components/field-upload/src/components/upload-design.vue.d.ts +5 -0
  31. package/es/components/field-upload/src/components/upload-design.vue.mjs +7 -0
  32. package/es/components/field-upload/src/components/upload-design.vue_vue_type_script_name_UploadDesign_setup_true_lang.mjs +43 -0
  33. package/es/components/field-upload/src/components/upload-design.vue_vue_type_style_index_0_scoped_1e5189c1_lang.css +43 -0
  34. package/es/components/field-upload/src/hooks/hooks.d.ts +4 -0
  35. package/es/components/field-upload/src/hooks/hooks.mjs +47 -0
  36. package/es/components/field-upload/src/types/index.d.ts +42 -0
  37. package/es/components/field-upload/src/types/index.mjs +24 -0
  38. package/es/components/image-upload/index.d.ts +2 -0
  39. package/es/components/image-upload/index.mjs +7 -0
  40. package/es/components/image-upload/src/ImageUpload.vue.d.ts +32 -0
  41. package/es/components/image-upload/src/ImageUpload.vue.mjs +5 -0
  42. package/es/components/image-upload/src/ImageUpload.vue_vue_type_script_setup_true_name_ImageUpload_lang.mjs +74 -0
  43. package/es/components/image-upload/src/components/base-upload.vue.d.ts +24 -0
  44. package/es/components/image-upload/src/components/base-upload.vue.mjs +8 -0
  45. package/es/components/image-upload/src/components/base-upload.vue_vue_type_script_name_baseUpload_setup_true_lang.mjs +209 -0
  46. package/es/components/image-upload/src/components/base-upload.vue_vue_type_style_index_0_scoped_3248e630_lang.css +73 -0
  47. package/es/components/image-upload/src/components/base-upload.vue_vue_type_style_index_1_lang.css +3 -0
  48. package/es/components/image-upload/src/components/upload-design.vue.d.ts +6 -0
  49. package/es/components/image-upload/src/components/upload-design.vue.mjs +7 -0
  50. package/es/components/image-upload/src/components/upload-design.vue_vue_type_script_name_UploadDesign_setup_true_lang.mjs +33 -0
  51. package/es/components/image-upload/src/components/upload-design.vue_vue_type_style_index_0_scoped_575d3a1a_lang.css +33 -0
  52. package/es/components/image-upload/src/hooks/hooks.d.ts +2 -0
  53. package/es/components/image-upload/src/types/index.d.ts +34 -0
  54. package/es/components/image-upload/src/types/index.mjs +8 -0
  55. package/es/components/index.d.ts +3 -1
  56. package/es/components/index.mjs +2 -0
  57. package/es/hooks/useLocale.d.ts +365 -1
  58. package/es/hooks/useLocale.mjs +20 -24
  59. package/es/index.d.ts +1 -0
  60. package/es/index.mjs +10 -6
  61. package/es/loader.d.ts +1 -0
  62. package/es/modules/Cropper/hooks/useFile.mjs +21 -0
  63. package/es/modules/Cropper/index.d.ts +1 -0
  64. package/es/modules/Cropper/index.mjs +12 -0
  65. package/es/modules/Cropper/src/CopperFreeModal.vue.mjs +7 -0
  66. package/es/modules/Cropper/src/CopperFreeModal.vue_vue_type_script_setup_true_name_CropperModal_lang.mjs +299 -0
  67. package/es/modules/Cropper/src/CopperFreeModal.vue_vue_type_style_index_0_scoped_28afc2ab_lang.css +48 -0
  68. package/es/modules/Cropper/src/CopperModal.vue.mjs +7 -0
  69. package/es/modules/Cropper/src/CopperModal.vue_vue_type_script_setup_true_name_CropperModal_lang.mjs +283 -0
  70. package/es/modules/Cropper/src/CopperModal.vue_vue_type_style_index_0_scoped_f42f8311_lang.css +71 -0
  71. package/es/modules/Cropper/src/Cropper.vue.d.ts +1 -1
  72. package/es/modules/Cropper/src/Cropper.vue.mjs +25 -0
  73. package/es/modules/Cropper/src/Cropper.vue_vue_type_script_lang.mjs +173 -0
  74. package/es/modules/Cropper/src/Cropper.vue_vue_type_style_index_0_lang.css +4 -0
  75. package/es/modules/Cropper/src/CropperAvatar.vue.mjs +7 -0
  76. package/es/modules/Cropper/src/CropperAvatar.vue_vue_type_script_setup_true_name_CropperAvatar_lang.mjs +116 -0
  77. package/es/modules/Cropper/src/CropperAvatar.vue_vue_type_style_index_0_scoped_b5d65cd4_lang.css +39 -0
  78. package/es/modules/Cropper/src/CropperFree.vue.mjs +7 -0
  79. package/es/modules/Cropper/src/CropperFree.vue_vue_type_script_setup_true_name_CropperPhoto_lang.mjs +165 -0
  80. package/es/modules/Cropper/src/CropperFree.vue_vue_type_style_index_0_scoped_3cc5e19b_lang.css +83 -0
  81. package/es/modules/code-editor/index.d.ts +3 -3
  82. package/es/modules/code-editor/monaco-editor.vue.d.ts +1 -1
  83. package/es/modules/code-editor/monaco-editor.vue.mjs +2 -2
  84. package/es/modules/code-editor/monaco-editor.vue_vue_type_script_setup_true_name_code-editor_lang.mjs +4 -3
  85. package/es/modules/code-editor/{monaco-editor.vue_vue_type_style_index_0_scoped_254c9227_lang.css → monaco-editor.vue_vue_type_style_index_0_scoped_ccf22884_lang.css} +9 -9
  86. package/es/modules/gct-table/editor/gct-table-date/gct-table-date.mjs +1 -1
  87. package/es/modules/gct-table/editor/gct-table-text/gct-table-text.mjs +1 -1
  88. package/package.json +7 -7
  89. package/dist/index.esm.min.js +0 -9864
  90. /package/es/modules/gct-table/editor/{gct-table-text/gct-table-text.css → gct-table-date/gct-table-date.css} +0 -0
@@ -0,0 +1,43 @@
1
+ .progress-wrap[data-v-1e5189c1] {
2
+ display: flex;
3
+ margin-top: 16px;
4
+ }
5
+ .progress-wrap .progress-box[data-v-1e5189c1] {
6
+ flex: 1;
7
+ display: flex;
8
+ flex-direction: column;
9
+ line-height: 22px;
10
+ align-self: center;
11
+ }
12
+ .progress-wrap .progress-box[data-v-1e5189c1] .ant-progress {
13
+ line-height: 0.4;
14
+ }
15
+ .progress-wrap .progress-box[data-v-1e5189c1] .ant-progress .ant-progress-text {
16
+ position: absolute;
17
+ right: 0;
18
+ top: -14px;
19
+ line-height: 0.6;
20
+ color: #797a7d;
21
+ }
22
+ .progress-wrap .progress-box[data-v-1e5189c1] .ant-progress-show-info .ant-progress-outer {
23
+ margin-right: 0;
24
+ padding-right: 0;
25
+ }
26
+ .progress-wrap .progress-box[data-v-1e5189c1] .ant-progress-show-info .ant-progress-outer .ant-progress-inner {
27
+ background: #e6e9ef;
28
+ }
29
+ .progress-wrap .icon[data-v-1e5189c1] {
30
+ margin-left: 24px;
31
+ font-size: 16px;
32
+ color: #212528 !important;
33
+ align-self: center;
34
+ }
35
+ [data-v-1e5189c1] .ant-upload.ant-upload-drag {
36
+ background: #f7f8fa;
37
+ }
38
+ [data-v-1e5189c1] .ant-upload.ant-upload-drag.ant-upload-disabled {
39
+ opacity: 0.5;
40
+ }
41
+ [data-v-1e5189c1] .ant-upload.ant-upload-drag .ant-upload {
42
+ padding: 40px 0;
43
+ }
@@ -0,0 +1,4 @@
1
+ import { UploadTypeEnum } from '../types';
2
+ export declare const getFileSize: (url: string) => Promise<unknown>;
3
+ export declare const sizeParser: (size: number) => string;
4
+ export declare const typeParser: (fileName: string) => "img" | "PDF" | UploadTypeEnum.JPG | UploadTypeEnum.JPEG | UploadTypeEnum.PNG | UploadTypeEnum.BMP | UploadTypeEnum.DOCX | UploadTypeEnum.XLSX | UploadTypeEnum.DOC | UploadTypeEnum.MP4 | UploadTypeEnum.AVI | UploadTypeEnum.PPT | UploadTypeEnum.GIF | "MP4" | "ssl" | "attachment";
@@ -0,0 +1,47 @@
1
+ import { UploadTypeEnum } from "../types/index.mjs";
2
+ //#region src/components/field-upload/src/hooks/hooks.ts
3
+ var getFileSize = (url) => {
4
+ return new Promise((resolve, reject) => {
5
+ const xhr = new XMLHttpRequest();
6
+ xhr.open("GET", url);
7
+ xhr.responseType = "blob";
8
+ xhr.onload = () => {
9
+ if (xhr.status === 200) {
10
+ const blob = xhr.response;
11
+ const reader = new FileReader();
12
+ reader.onloadend = () => {
13
+ resolve(blob.size);
14
+ };
15
+ reader.readAsText(blob);
16
+ } else reject(`Error ${xhr.status}: ${xhr.statusText}`);
17
+ };
18
+ xhr.send();
19
+ });
20
+ };
21
+ var sizeParser = (size) => {
22
+ if (size / 1024 < 1) return (size / 1024).toFixed(2) + "K";
23
+ if (size / 1024 / 10 < 1) return (size / 1024).toFixed(1) + "K";
24
+ if (size / 1024 / 1024 < 1) return (size / 1024).toFixed(0) + "K";
25
+ if (size / 1024 / 1024 / 10 < 1) return (size / 1024 / 1024).toFixed(2) + "M";
26
+ return (size / 1024 / 1024).toFixed(2) + "M";
27
+ };
28
+ var typeParser = (fileName) => {
29
+ const arr = fileName?.split(".") ?? [];
30
+ let type = arr[arr.length - 1] || "png";
31
+ type = type.toLowerCase();
32
+ if ([
33
+ UploadTypeEnum.PNG,
34
+ UploadTypeEnum.JPG,
35
+ UploadTypeEnum.JPEG,
36
+ UploadTypeEnum.BMP,
37
+ UploadTypeEnum.GIF
38
+ ].includes(type)) return "img";
39
+ if ([UploadTypeEnum.DOCX, UploadTypeEnum.DOC].includes(type)) return UploadTypeEnum.DOC;
40
+ if ([UploadTypeEnum.MP4, UploadTypeEnum.AVI].includes(type)) return "MP4";
41
+ if (type === UploadTypeEnum.PDF) return "PDF";
42
+ if (type === UploadTypeEnum.CER) return "ssl";
43
+ if (Object.values(UploadTypeEnum).includes(type)) return type;
44
+ return "attachment";
45
+ };
46
+ //#endregion
47
+ export { getFileSize, sizeParser, typeParser };
@@ -0,0 +1,42 @@
1
+ export declare enum UploadTypeEnum {
2
+ JPG = "jpg",
3
+ JPEG = "jpeg",
4
+ PNG = "png",
5
+ BMP = "bmp",
6
+ DOCX = "docx",
7
+ PDF = "pdf",
8
+ XLSX = "xlsx",
9
+ DOC = "doc",
10
+ MP4 = "mp4",
11
+ AVI = "avi",
12
+ PPT = "ppt",
13
+ GIF = "gif",
14
+ CER = "cer"
15
+ }
16
+ export interface AttrObjType {
17
+ /** 单个文件大小 */
18
+ maxSize?: number;
19
+ /** 最大上传数量 */
20
+ maxCount?: number;
21
+ /** 支持的格式数组 */
22
+ accept?: string[];
23
+ /** 支持的格式 */
24
+ acceptStr?: string;
25
+ }
26
+ export declare enum statusEnum {
27
+ EXCEPTION = "exception",
28
+ ACTIVE = "active"
29
+ }
30
+ export interface fileType {
31
+ name: string;
32
+ path: string;
33
+ size: number;
34
+ }
35
+ export interface FileItemType {
36
+ uid: string;
37
+ name?: string;
38
+ status?: statusEnum;
39
+ path?: string;
40
+ fileSize?: number;
41
+ percentNum?: number;
42
+ }
@@ -0,0 +1,24 @@
1
+ //#region src/components/field-upload/src/types/index.ts
2
+ var UploadTypeEnum = /* @__PURE__ */ function(UploadTypeEnum) {
3
+ UploadTypeEnum["JPG"] = "jpg";
4
+ UploadTypeEnum["JPEG"] = "jpeg";
5
+ UploadTypeEnum["PNG"] = "png";
6
+ UploadTypeEnum["BMP"] = "bmp";
7
+ UploadTypeEnum["DOCX"] = "docx";
8
+ UploadTypeEnum["PDF"] = "pdf";
9
+ UploadTypeEnum["XLSX"] = "xlsx";
10
+ UploadTypeEnum["DOC"] = "doc";
11
+ UploadTypeEnum["MP4"] = "mp4";
12
+ UploadTypeEnum["AVI"] = "avi";
13
+ UploadTypeEnum["PPT"] = "ppt";
14
+ UploadTypeEnum["GIF"] = "gif";
15
+ UploadTypeEnum["CER"] = "cer";
16
+ return UploadTypeEnum;
17
+ }({});
18
+ var statusEnum = /* @__PURE__ */ function(statusEnum) {
19
+ statusEnum["EXCEPTION"] = "exception";
20
+ statusEnum["ACTIVE"] = "active";
21
+ return statusEnum;
22
+ }({});
23
+ //#endregion
24
+ export { UploadTypeEnum, statusEnum };
@@ -0,0 +1,2 @@
1
+ import { WithInstall } from '../../utils';
2
+ export declare const ImageUpload: WithInstall<unknown>;
@@ -0,0 +1,7 @@
1
+ import ImageUpload_default from "./src/ImageUpload.vue.mjs";
2
+ import { withInstall } from "../../utils/with-install.mjs";
3
+ import "../../utils/index.mjs";
4
+ //#region src/components/image-upload/index.ts
5
+ var ImageUpload = withInstall(ImageUpload_default);
6
+ //#endregion
7
+ export { ImageUpload };
@@ -0,0 +1,32 @@
1
+ import { MaterialEnum } from '@gct-paas/core';
2
+ type __VLS_Props = {
3
+ modelKey?: string;
4
+ modelValue?: string;
5
+ readonly: boolean;
6
+ disabled: boolean;
7
+ /** 设计模式 */
8
+ isDesign: boolean;
9
+ /** 单个文件大小 */
10
+ maxSize?: number;
11
+ /** 最大上传数量 */
12
+ maxCount?: number;
13
+ /** 支持的格式数组 */
14
+ accept?: string[];
15
+ materialType: MaterialEnum;
16
+ /** 表格模式 */
17
+ isTable?: boolean;
18
+ /** 表单校验 */
19
+ beforeUpload?: (file: File) => Promise<unknown>;
20
+ /** 浮层渲染父节点 */
21
+ getContainer?: () => HTMLElement;
22
+ };
23
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
24
+ "update:modelValue": (...args: any[]) => void;
25
+ onBeforeUpload: (...args: any[]) => void;
26
+ saveTableRow: (...args: any[]) => void;
27
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
28
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
29
+ onOnBeforeUpload?: ((...args: any[]) => any) | undefined;
30
+ onSaveTableRow?: ((...args: any[]) => any) | undefined;
31
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
32
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import ImageUpload_vue_vue_type_script_setup_true_name_ImageUpload_lang_default from "./ImageUpload.vue_vue_type_script_setup_true_name_ImageUpload_lang.mjs";
2
+ //#region src/components/image-upload/src/ImageUpload.vue
3
+ var ImageUpload_default = ImageUpload_vue_vue_type_script_setup_true_name_ImageUpload_lang_default;
4
+ //#endregion
5
+ export { ImageUpload_default as default };
@@ -0,0 +1,74 @@
1
+ import upload_design_default from "./components/upload-design.vue.mjs";
2
+ import base_upload_default from "./components/base-upload.vue.mjs";
3
+ import { createBlock, createElementBlock, defineComponent, openBlock } from "vue";
4
+ import "@gct-paas/core";
5
+ //#region src/components/image-upload/src/ImageUpload.vue?vue&type=script&setup=true&name=ImageUpload&lang.ts
6
+ var _hoisted_1 = { class: "image-upload-wrapper w-full" };
7
+ var ImageUpload_vue_vue_type_script_setup_true_name_ImageUpload_lang_default = /* @__PURE__ */ defineComponent({
8
+ __name: "ImageUpload",
9
+ props: {
10
+ modelKey: {},
11
+ modelValue: {},
12
+ readonly: { type: Boolean },
13
+ disabled: { type: Boolean },
14
+ isDesign: { type: Boolean },
15
+ maxSize: {},
16
+ maxCount: {},
17
+ accept: {},
18
+ materialType: {},
19
+ isTable: { type: Boolean },
20
+ beforeUpload: { type: Function },
21
+ getContainer: { type: Function }
22
+ },
23
+ emits: [
24
+ "update:modelValue",
25
+ "onBeforeUpload",
26
+ "saveTableRow"
27
+ ],
28
+ setup(__props, { emit: __emit }) {
29
+ const emit = __emit;
30
+ const updateValue = (value) => {
31
+ return emit("update:modelValue", value);
32
+ };
33
+ const saveTableRowData = () => {
34
+ /**列字段时候触发保存 */
35
+ emit("saveTableRow");
36
+ };
37
+ return (_ctx, _cache) => {
38
+ return openBlock(), createElementBlock("div", _hoisted_1, [__props.isDesign ? (openBlock(), createBlock(upload_design_default, {
39
+ key: 0,
40
+ disabled: __props.disabled,
41
+ readonly: __props.readonly
42
+ }, null, 8, ["disabled", "readonly"])) : (openBlock(), createBlock(base_upload_default, {
43
+ key: 1,
44
+ readonly: __props.readonly,
45
+ disabled: __props.disabled,
46
+ "max-size": __props.maxSize,
47
+ "max-count": __props.maxCount,
48
+ accept: __props.accept,
49
+ "model-key": __props.modelKey,
50
+ "model-value": __props.modelValue,
51
+ "is-table": __props.isTable,
52
+ "before-upload": __props.beforeUpload,
53
+ "material-type": __props.materialType,
54
+ "get-container": __props.getContainer,
55
+ "onUpdate:modelValue": updateValue,
56
+ onSaveTableRow: saveTableRowData
57
+ }, null, 8, [
58
+ "readonly",
59
+ "disabled",
60
+ "max-size",
61
+ "max-count",
62
+ "accept",
63
+ "model-key",
64
+ "model-value",
65
+ "is-table",
66
+ "before-upload",
67
+ "material-type",
68
+ "get-container"
69
+ ]))]);
70
+ };
71
+ }
72
+ });
73
+ //#endregion
74
+ export { ImageUpload_vue_vue_type_script_setup_true_name_ImageUpload_lang_default as default };
@@ -0,0 +1,24 @@
1
+ import { MaterialEnum } from '@gct-paas/core';
2
+ type __VLS_Props = {
3
+ modelKey?: string;
4
+ modelValue?: string;
5
+ readonly: boolean;
6
+ disabled: boolean;
7
+ maxCount?: number;
8
+ maxSize?: number;
9
+ accept?: string[];
10
+ isTable?: boolean;
11
+ beforeUpload?: (file: File) => Promise<unknown>;
12
+ materialType?: MaterialEnum;
13
+ getContainer?: () => HTMLElement;
14
+ };
15
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
16
+ "update:modelValue": (...args: any[]) => void;
17
+ onBeforeUpload: (...args: any[]) => void;
18
+ saveTableRow: (...args: any[]) => void;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
21
+ onOnBeforeUpload?: ((...args: any[]) => any) | undefined;
22
+ onSaveTableRow?: ((...args: any[]) => any) | undefined;
23
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
24
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.mjs";
2
+ import base_upload_vue_vue_type_script_name_baseUpload_setup_true_lang_default from "./base-upload.vue_vue_type_script_name_baseUpload_setup_true_lang.mjs";
3
+ import './base-upload.vue_vue_type_style_index_1_lang.css';import './base-upload.vue_vue_type_style_index_0_scoped_3248e630_lang.css';/* empty css */
4
+ /* empty css */
5
+ //#region src/components/image-upload/src/components/base-upload.vue
6
+ var base_upload_default = /* @__PURE__ */ _plugin_vue_export_helper_default(base_upload_vue_vue_type_script_name_baseUpload_setup_true_lang_default, [["__scopeId", "data-v-3248e630"]]);
7
+ //#endregion
8
+ export { base_upload_default as default };
@@ -0,0 +1,209 @@
1
+ import { statusEnum } from "../types/index.mjs";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, openBlock, ref, renderList, resolveComponent, toDisplayString, unref, vShow, watch, withCtx, withDirectives, withModifiers } from "vue";
3
+ import { cloneDeep } from "lodash-es";
4
+ import { MaterialEnum, Uploader, t, uuid2 } from "@gct-paas/core";
5
+ import { message } from "ant-design-vue";
6
+ //#region src/components/image-upload/src/components/base-upload.vue?vue&type=script&name=baseUpload&setup=true&lang.ts
7
+ var _hoisted_1 = {
8
+ class: "ant-upload-text",
9
+ style: { "font-size": "14px" }
10
+ };
11
+ var _hoisted_2 = {
12
+ key: 0,
13
+ class: "img-box"
14
+ };
15
+ var _hoisted_3 = ["onClick"];
16
+ var base_upload_vue_vue_type_script_name_baseUpload_setup_true_lang_default = /* @__PURE__ */ defineComponent({
17
+ __name: "base-upload",
18
+ props: {
19
+ modelKey: {},
20
+ modelValue: {},
21
+ readonly: { type: Boolean },
22
+ disabled: { type: Boolean },
23
+ maxCount: {},
24
+ maxSize: {},
25
+ accept: {},
26
+ isTable: { type: Boolean },
27
+ beforeUpload: { type: Function },
28
+ materialType: {},
29
+ getContainer: { type: Function }
30
+ },
31
+ emits: [
32
+ "update:modelValue",
33
+ "onBeforeUpload",
34
+ "saveTableRow"
35
+ ],
36
+ setup(__props, { emit: __emit }) {
37
+ const fileLen = ref(0);
38
+ const fileList = ref([]);
39
+ const emit = __emit;
40
+ const props = __props;
41
+ const getPopContainer = props.getContainer || document.body;
42
+ const value = computed({
43
+ get() {
44
+ try {
45
+ return props.modelValue ? props.modelValue.split(",") : [];
46
+ } catch (error) {
47
+ return [];
48
+ }
49
+ },
50
+ set(value) {
51
+ if (value?.length > 0) emit("update:modelValue", value);
52
+ else emit("update:modelValue", []);
53
+ }
54
+ });
55
+ watch(() => props.modelValue, async () => {
56
+ const P = (props.modelValue ? props.modelValue.split(",") : []).map(async (url) => {
57
+ const path = void 0 + url;
58
+ return {
59
+ uid: uuid2(16, 16),
60
+ path,
61
+ name: url.split("/").at(-1),
62
+ status: void 0,
63
+ fileSize: 0,
64
+ percentNum: 0
65
+ };
66
+ });
67
+ fileList.value = await Promise.all(P);
68
+ }, { immediate: true });
69
+ const acceptList = computed(() => {
70
+ const _accept = cloneDeep(props.accept || []);
71
+ const handleAccept = [...new Set(_accept)];
72
+ const allAccepts = [];
73
+ handleAccept.forEach((ext) => {
74
+ allAccepts.push(ext);
75
+ if (ext === ext.toLowerCase()) allAccepts.push(ext.toUpperCase());
76
+ if (ext === ext.toUpperCase()) allAccepts.push(ext.toLowerCase());
77
+ });
78
+ return [...new Set(allAccepts)].map((i) => "." + i);
79
+ });
80
+ const fileaccept = computed(() => {
81
+ return acceptList.value + "" || "image/*";
82
+ });
83
+ const showUpload = computed(() => {
84
+ if (props.maxCount === null || props.maxCount === void 0) return true;
85
+ return fileList.value.length < props.maxCount;
86
+ });
87
+ const isMultiple = computed(() => {
88
+ if (props.maxCount === null || props.maxCount === void 0) return true;
89
+ return props.maxCount > 1;
90
+ });
91
+ async function beforeUploadFn({ file }) {
92
+ fileLen.value += 1;
93
+ if (fileLen.value > props.maxCount) {
94
+ fileLen.value -= 1;
95
+ return;
96
+ }
97
+ const localPath = URL.createObjectURL(file);
98
+ console.log(file, localPath);
99
+ fileList.value = [...fileList.value, {
100
+ uid: file.uid,
101
+ name: file.name,
102
+ fileSize: file.size,
103
+ path: localPath,
104
+ percentNum: 0,
105
+ status: statusEnum.ACTIVE
106
+ }];
107
+ await uploadFile(file);
108
+ }
109
+ async function uploadFile(file) {
110
+ let findItem = fileList.value.find((item) => item.uid === file.uid) || {};
111
+ try {
112
+ await Uploader.beforeUploadFun(file, {
113
+ maxSize: props.maxSize || 5,
114
+ acceptList: (props.accept || []).map((i) => "." + i),
115
+ beforeUpload: async (file) => {
116
+ if (props.beforeUpload && Object.prototype.toString.call(props.beforeUpload) === "[object Function]") return props.beforeUpload(file);
117
+ }
118
+ });
119
+ const timer = setInterval(() => {
120
+ if (findItem.percentNum && findItem.percentNum < 95) findItem["percentNum"] += 7;
121
+ }, 100);
122
+ try {
123
+ const path = await Uploader.uploadByFile(file, true, props.modelKey);
124
+ value.value = [...value.value, path];
125
+ findItem = Object.assign(findItem, {
126
+ path: void 0 + path,
127
+ percentNum: 100,
128
+ status: void 0
129
+ });
130
+ clearInterval(timer);
131
+ await nextTick();
132
+ /**列字段时候触发保存 */
133
+ props.isTable && emit("saveTableRow");
134
+ } catch (err) {
135
+ fileLen.value -= 1;
136
+ console.warn(err);
137
+ findItem["status"] = statusEnum.EXCEPTION;
138
+ clearInterval(timer);
139
+ }
140
+ } catch (error) {
141
+ fileLen.value -= 1;
142
+ message.warn(error);
143
+ fileList.value.splice(fileList.value.length - 1, 1);
144
+ }
145
+ }
146
+ async function deleteFile(index) {
147
+ fileLen.value -= 1;
148
+ fileList.value.splice(index, 1);
149
+ value.value.splice(index, 1);
150
+ value.value = [...value.value];
151
+ await nextTick();
152
+ }
153
+ return (_ctx, _cache) => {
154
+ const _component_a_upload_dragger = resolveComponent("a-upload-dragger");
155
+ const _component_a_progress = resolveComponent("a-progress");
156
+ const _component_a_image = resolveComponent("a-image");
157
+ const _component_close_circle_filled = resolveComponent("close-circle-filled");
158
+ const _component_a_image_preview_group = resolveComponent("a-image-preview-group");
159
+ return openBlock(), createElementBlock(Fragment, null, [withDirectives(createVNode(_component_a_upload_dragger, {
160
+ class: normalizeClass(__props.disabled ? "upload-disabled" : ""),
161
+ style: { "margin": "4px 0" },
162
+ disabled: __props.disabled,
163
+ "custom-request": beforeUploadFn,
164
+ multiple: isMultiple.value,
165
+ "file-list": [],
166
+ accept: fileaccept.value
167
+ }, {
168
+ default: withCtx(() => [_cache[0] || (_cache[0] = createElementVNode("div", null, [createElementVNode("i", { class: "iconfont icon-tupian-shili" })], -1)), createElementVNode("p", _hoisted_1, toDisplayString(unref(t)("sys.pageDesigner.clickOrDragToUpload")), 1)]),
169
+ _: 1
170
+ }, 8, [
171
+ "class",
172
+ "disabled",
173
+ "multiple",
174
+ "accept"
175
+ ]), [[vShow, showUpload.value && !__props.readonly]]), fileList.value.length ? (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(_component_a_image_preview_group, { preview: { getContainer: unref(getPopContainer) } }, {
176
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(fileList.value, (item, index) => {
177
+ return openBlock(), createElementBlock("div", {
178
+ key: index,
179
+ class: normalizeClass(["img-item float-left mr-8px my-4px", { "material-table-field": __props.materialType === unref(MaterialEnum).MaterialTableField }])
180
+ }, [
181
+ item.status ? (openBlock(), createBlock(_component_a_progress, {
182
+ key: 0,
183
+ "stroke-width": 4,
184
+ "show-info": false,
185
+ percent: item.percentNum
186
+ }, null, 8, ["percent"])) : createCommentVNode("", true),
187
+ createVNode(_component_a_image, {
188
+ width: "100px",
189
+ height: "100px",
190
+ src: item.path,
191
+ preview: { maskClassName: "custom-image-preview" }
192
+ }, {
193
+ previewMask: withCtx(() => [..._cache[1] || (_cache[1] = [])]),
194
+ _: 1
195
+ }, 8, ["src"]),
196
+ !item.status && !__props.disabled && !__props.readonly ? (openBlock(), createElementBlock("div", {
197
+ key: 1,
198
+ class: "delete-icon-box",
199
+ onClick: withModifiers(($event) => deleteFile(index), ["stop"])
200
+ }, [createVNode(_component_close_circle_filled, { class: "delete-icon" })], 8, _hoisted_3)) : createCommentVNode("", true)
201
+ ], 2);
202
+ }), 128))]),
203
+ _: 1
204
+ }, 8, ["preview"])])) : createCommentVNode("", true)], 64);
205
+ };
206
+ }
207
+ });
208
+ //#endregion
209
+ export { base_upload_vue_vue_type_script_name_baseUpload_setup_true_lang_default as default };
@@ -0,0 +1,73 @@
1
+ .icon-tupian-shili[data-v-3248e630] {
2
+ color: var(--ant-primary-color);
3
+ font-size: 56px;
4
+ line-height: 56px;
5
+ }
6
+ [data-v-3248e630] .ant-image-mask {
7
+ border-radius: 4px;
8
+ font-size: 18px;
9
+ }
10
+ [data-v-3248e630] .ant-image .ant-image-img {
11
+ border-radius: 4px;
12
+ object-fit: contain;
13
+ }
14
+ .img-box[data-v-3248e630] {
15
+ max-height: 268px;
16
+ overflow-y: auto;
17
+ }
18
+ .img-box[data-v-3248e630]::-webkit-scrollbar {
19
+ display: block;
20
+ width: 3px;
21
+ }
22
+ .img-box .img-item[data-v-3248e630] {
23
+ position: relative;
24
+ width: 102px;
25
+ height: 102px;
26
+ border: 1px dashed #d9d9d9;
27
+ border-radius: 4px;
28
+ background-color: #f7f8fa;
29
+ }
30
+ .img-box .img-item .ant-progress[data-v-3248e630] {
31
+ display: flex;
32
+ position: absolute;
33
+ z-index: 1;
34
+ align-items: center;
35
+ height: 100%;
36
+ padding: 10px;
37
+ border-radius: 4px;
38
+ background-color: rgba(0, 0, 0, 0.5);
39
+ }
40
+ .img-box .img-item.material-table-field[data-v-3248e630]:nth-child(4n + 4) {
41
+ margin-right: 0;
42
+ }
43
+ .img-box .img-item .delete-icon-box[data-v-3248e630] {
44
+ position: absolute;
45
+ top: 0;
46
+ right: 0;
47
+ cursor: pointer;
48
+ }
49
+ .img-box .img-item .delete-icon-box .delete-icon[data-v-3248e630] {
50
+ color: rgba(0, 0, 0, 0.56);
51
+ font-size: 24px;
52
+ }
53
+ .img-box .img-item .delete-icon-box .delete-icon[data-v-3248e630]:hover {
54
+ color: rgba(0, 0, 0, 0.65);
55
+ }
56
+ [data-v-3248e630] .ant-upload.ant-upload-drag {
57
+ background: #f7f8fa;
58
+ }
59
+ [data-v-3248e630] .ant-upload.ant-upload-drag.ant-upload-disabled {
60
+ opacity: 1;
61
+ }
62
+ [data-v-3248e630] .ant-upload.ant-upload-drag .ant-upload {
63
+ padding: 40px 0;
64
+ }
65
+ .upload-disabled .icon-tupian-shili[data-v-3248e630] {
66
+ color: #c3c3c3;
67
+ }
68
+ [data-v-3248e630] .ant-upload.ant-upload-drag.upload-disabled p.ant-upload-text {
69
+ color: #c3c3c3;
70
+ }
71
+ [data-v-3248e630] .custom-image-preview.ant-image-mask {
72
+ background: transparent;
73
+ }
@@ -0,0 +1,3 @@
1
+ .ant-image-preview-mask {
2
+ z-index: 1031;
3
+ }
@@ -0,0 +1,6 @@
1
+ type __VLS_Props = {
2
+ disabled: boolean;
3
+ readonly: boolean;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _plugin_vue_export_helper_default from "../../../../_virtual/_plugin-vue_export-helper.mjs";
2
+ import upload_design_vue_vue_type_script_name_UploadDesign_setup_true_lang_default from "./upload-design.vue_vue_type_script_name_UploadDesign_setup_true_lang.mjs";
3
+ import './upload-design.vue_vue_type_style_index_0_scoped_575d3a1a_lang.css';/* empty css */
4
+ //#region src/components/image-upload/src/components/upload-design.vue
5
+ var upload_design_default = /* @__PURE__ */ _plugin_vue_export_helper_default(upload_design_vue_vue_type_script_name_UploadDesign_setup_true_lang_default, [["__scopeId", "data-v-575d3a1a"]]);
6
+ //#endregion
7
+ export { upload_design_default as default };
@@ -0,0 +1,33 @@
1
+ import { createBlock, createElementBlock, createElementVNode, defineComponent, normalizeClass, openBlock, resolveComponent, toDisplayString, withCtx } from "vue";
2
+ //#region src/components/image-upload/src/components/upload-design.vue?vue&type=script&name=UploadDesign&setup=true&lang.ts
3
+ var _hoisted_1 = {
4
+ class: "ant-upload-text",
5
+ style: { "font-size": "14px" }
6
+ };
7
+ var _hoisted_2 = {
8
+ key: 1,
9
+ class: "upload-readonly"
10
+ };
11
+ var upload_design_vue_vue_type_script_name_UploadDesign_setup_true_lang_default = /* @__PURE__ */ defineComponent({
12
+ __name: "upload-design",
13
+ props: {
14
+ disabled: { type: Boolean },
15
+ readonly: { type: Boolean }
16
+ },
17
+ setup(__props) {
18
+ return (_ctx, _cache) => {
19
+ const _component_a_upload_dragger = resolveComponent("a-upload-dragger");
20
+ return !__props.readonly ? (openBlock(), createBlock(_component_a_upload_dragger, {
21
+ key: 0,
22
+ class: normalizeClass(__props.disabled ? "upload-disabled" : ""),
23
+ "file-list": [],
24
+ disabled: __props.disabled
25
+ }, {
26
+ default: withCtx(() => [_cache[0] || (_cache[0] = createElementVNode("div", null, [createElementVNode("i", { class: "iconfont icon-tupian-shili" })], -1)), createElementVNode("p", _hoisted_1, toDisplayString(_ctx.$t("sys.pageDesigner.clickOrDragToUpload")), 1)]),
27
+ _: 1
28
+ }, 8, ["class", "disabled"])) : (openBlock(), createElementBlock("div", _hoisted_2, [..._cache[1] || (_cache[1] = [createElementVNode("i", { class: "iconfont icon-tupian-shili" }, null, -1)])]));
29
+ };
30
+ }
31
+ });
32
+ //#endregion
33
+ export { upload_design_vue_vue_type_script_name_UploadDesign_setup_true_lang_default as default };