@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.
- package/dist/de_DE-Dlmr1Wso.js +152 -0
- package/dist/en_US-B9GNh9s3.js +173 -0
- package/dist/es_ES-CdOh6_BZ.js +159 -0
- package/dist/fr_FR-DA5AJaJ_.js +168 -0
- package/dist/index.min.css +1 -1
- package/dist/ja_JP-DE6fp7p7.js +140 -0
- package/dist/loader.esm.min.js +9583 -0
- package/dist/{monaco-editor-BHuf3IVH.js → monaco-editor-Di2Ob0f2.js} +37 -38
- package/dist/objectSpread2-fLnUNEWu.js +62 -0
- package/dist/pt_PT-DqWIQ8Sv.js +134 -0
- package/dist/ru_RU-B7eejpuq.js +165 -0
- package/dist/tr_TR-Cp-TWGG5.js +167 -0
- package/dist/{useMonacoEditor-CfhCBaPa.js → useMonacoEditor-B4gp3RiK.js} +753 -817
- package/dist/vi_VN-BWekEft9.js +85 -0
- package/dist/zh_CN-CaadhslE.js +174 -0
- package/dist/zh_TW-DHMPuQGm.js +169 -0
- package/es/components/field-upload/index.d.ts +2 -0
- package/es/components/field-upload/index.mjs +7 -0
- package/es/components/field-upload/src/FieldUpload.vue.d.ts +37 -0
- package/es/components/field-upload/src/FieldUpload.vue.mjs +5 -0
- package/es/components/field-upload/src/FieldUpload.vue_vue_type_script_setup_true_name_FieldUpload_lang.mjs +111 -0
- package/es/components/field-upload/src/components/base-upload.vue.d.ts +21 -0
- package/es/components/field-upload/src/components/base-upload.vue.mjs +7 -0
- package/es/components/field-upload/src/components/base-upload.vue_vue_type_script_name_baseUpload_setup_true_lang.mjs +227 -0
- package/es/components/field-upload/src/components/base-upload.vue_vue_type_style_index_0_scoped_f53b6ac6_lang.css +76 -0
- package/es/components/field-upload/src/components/file-list.vue.d.ts +17 -0
- package/es/components/field-upload/src/components/file-list.vue.mjs +7 -0
- package/es/components/field-upload/src/components/file-list.vue_vue_type_script_setup_true_name_fileList_lang.mjs +129 -0
- package/es/components/field-upload/src/components/file-list.vue_vue_type_style_index_0_scoped_3918aad0_lang.css +129 -0
- package/es/components/field-upload/src/components/upload-design.vue.d.ts +5 -0
- package/es/components/field-upload/src/components/upload-design.vue.mjs +7 -0
- package/es/components/field-upload/src/components/upload-design.vue_vue_type_script_name_UploadDesign_setup_true_lang.mjs +43 -0
- package/es/components/field-upload/src/components/upload-design.vue_vue_type_style_index_0_scoped_1e5189c1_lang.css +43 -0
- package/es/components/field-upload/src/hooks/hooks.d.ts +4 -0
- package/es/components/field-upload/src/hooks/hooks.mjs +47 -0
- package/es/components/field-upload/src/types/index.d.ts +42 -0
- package/es/components/field-upload/src/types/index.mjs +24 -0
- package/es/components/image-upload/index.d.ts +2 -0
- package/es/components/image-upload/index.mjs +7 -0
- package/es/components/image-upload/src/ImageUpload.vue.d.ts +32 -0
- package/es/components/image-upload/src/ImageUpload.vue.mjs +5 -0
- package/es/components/image-upload/src/ImageUpload.vue_vue_type_script_setup_true_name_ImageUpload_lang.mjs +74 -0
- package/es/components/image-upload/src/components/base-upload.vue.d.ts +24 -0
- package/es/components/image-upload/src/components/base-upload.vue.mjs +8 -0
- package/es/components/image-upload/src/components/base-upload.vue_vue_type_script_name_baseUpload_setup_true_lang.mjs +209 -0
- package/es/components/image-upload/src/components/base-upload.vue_vue_type_style_index_0_scoped_3248e630_lang.css +73 -0
- package/es/components/image-upload/src/components/base-upload.vue_vue_type_style_index_1_lang.css +3 -0
- package/es/components/image-upload/src/components/upload-design.vue.d.ts +6 -0
- package/es/components/image-upload/src/components/upload-design.vue.mjs +7 -0
- package/es/components/image-upload/src/components/upload-design.vue_vue_type_script_name_UploadDesign_setup_true_lang.mjs +33 -0
- package/es/components/image-upload/src/components/upload-design.vue_vue_type_style_index_0_scoped_575d3a1a_lang.css +33 -0
- package/es/components/image-upload/src/hooks/hooks.d.ts +2 -0
- package/es/components/image-upload/src/types/index.d.ts +34 -0
- package/es/components/image-upload/src/types/index.mjs +8 -0
- package/es/components/index.d.ts +3 -1
- package/es/components/index.mjs +2 -0
- package/es/hooks/useLocale.d.ts +365 -1
- package/es/hooks/useLocale.mjs +20 -24
- package/es/index.d.ts +1 -0
- package/es/index.mjs +10 -6
- package/es/loader.d.ts +1 -0
- package/es/modules/Cropper/hooks/useFile.mjs +21 -0
- package/es/modules/Cropper/index.d.ts +1 -0
- package/es/modules/Cropper/index.mjs +12 -0
- package/es/modules/Cropper/src/CopperFreeModal.vue.mjs +7 -0
- package/es/modules/Cropper/src/CopperFreeModal.vue_vue_type_script_setup_true_name_CropperModal_lang.mjs +299 -0
- package/es/modules/Cropper/src/CopperFreeModal.vue_vue_type_style_index_0_scoped_28afc2ab_lang.css +48 -0
- package/es/modules/Cropper/src/CopperModal.vue.mjs +7 -0
- package/es/modules/Cropper/src/CopperModal.vue_vue_type_script_setup_true_name_CropperModal_lang.mjs +283 -0
- package/es/modules/Cropper/src/CopperModal.vue_vue_type_style_index_0_scoped_f42f8311_lang.css +71 -0
- package/es/modules/Cropper/src/Cropper.vue.d.ts +1 -1
- package/es/modules/Cropper/src/Cropper.vue.mjs +25 -0
- package/es/modules/Cropper/src/Cropper.vue_vue_type_script_lang.mjs +173 -0
- package/es/modules/Cropper/src/Cropper.vue_vue_type_style_index_0_lang.css +4 -0
- package/es/modules/Cropper/src/CropperAvatar.vue.mjs +7 -0
- package/es/modules/Cropper/src/CropperAvatar.vue_vue_type_script_setup_true_name_CropperAvatar_lang.mjs +116 -0
- package/es/modules/Cropper/src/CropperAvatar.vue_vue_type_style_index_0_scoped_b5d65cd4_lang.css +39 -0
- package/es/modules/Cropper/src/CropperFree.vue.mjs +7 -0
- package/es/modules/Cropper/src/CropperFree.vue_vue_type_script_setup_true_name_CropperPhoto_lang.mjs +165 -0
- package/es/modules/Cropper/src/CropperFree.vue_vue_type_style_index_0_scoped_3cc5e19b_lang.css +83 -0
- package/es/modules/code-editor/index.d.ts +3 -3
- package/es/modules/code-editor/monaco-editor.vue.d.ts +1 -1
- package/es/modules/code-editor/monaco-editor.vue.mjs +2 -2
- package/es/modules/code-editor/monaco-editor.vue_vue_type_script_setup_true_name_code-editor_lang.mjs +4 -3
- 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
- package/es/modules/gct-table/editor/gct-table-date/gct-table-date.mjs +1 -1
- package/es/modules/gct-table/editor/gct-table-text/gct-table-text.mjs +1 -1
- package/package.json +7 -7
- package/dist/index.esm.min.js +0 -9864
- /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,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,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 };
|