ll-plus 2.3.9 → 2.3.10
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/es/components/upload-image/index.d.ts +4 -1
- package/es/components/upload-image/src/upload-image.d.ts +1 -0
- package/es/components/upload-image/src/upload-image.mjs +4 -0
- package/es/components/upload-image/src/upload-image.mjs.map +1 -1
- package/es/components/upload-image/src/upload-image.vue.d.ts +4 -1
- package/es/components/upload-image/src/upload-image.vue2.mjs +4 -4
- package/es/components/upload-image/src/upload-image.vue2.mjs.map +1 -1
- package/index.full.js +7 -3
- package/index.full.min.js +13 -13
- package/index.full.min.js.map +1 -1
- package/index.full.min.mjs +13 -13
- package/index.full.min.mjs.map +1 -1
- package/index.full.mjs +7 -3
- package/lib/components/upload-image/index.d.ts +4 -1
- package/lib/components/upload-image/src/upload-image.d.ts +1 -0
- package/lib/components/upload-image/src/upload-image.js +4 -0
- package/lib/components/upload-image/src/upload-image.js.map +1 -1
- package/lib/components/upload-image/src/upload-image.vue.d.ts +4 -1
- package/lib/components/upload-image/src/upload-image.vue2.js +3 -3
- package/lib/components/upload-image/src/upload-image.vue2.js.map +1 -1
- package/package.json +1 -1
- package/types/packages/components/upload-image/index.d.ts +4 -1
- package/types/packages/components/upload-image/src/upload-image.d.ts +1 -0
- package/types/packages/components/upload-image/src/upload-image.vue.d.ts +4 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<import("vue").DefineComponent<{
|
|
2
2
|
readonly value: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown, readonly [], boolean>;
|
|
3
3
|
readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
4
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
4
5
|
readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
|
|
5
6
|
readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
|
|
6
7
|
readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
|
|
@@ -25,7 +26,6 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
25
26
|
readonly prototype: any;
|
|
26
27
|
})[], unknown, unknown, () => void, boolean>;
|
|
27
28
|
}, {
|
|
28
|
-
loading: import("vue").Ref<boolean>;
|
|
29
29
|
props: import("@vue/shared").LooseRequired<{
|
|
30
30
|
readonly value: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown>;
|
|
31
31
|
readonly accept: string;
|
|
@@ -43,6 +43,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
43
43
|
readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
44
44
|
readonly iconName: string;
|
|
45
45
|
readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
46
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
46
47
|
readonly imgSize: number;
|
|
47
48
|
readonly onChange?: ((value: string | string[]) => any) | undefined;
|
|
48
49
|
readonly "onUpdate:value"?: ((value: string | string[]) => any) | undefined;
|
|
@@ -81,6 +82,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
81
82
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
82
83
|
readonly value: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown, readonly [], boolean>;
|
|
83
84
|
readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
85
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
84
86
|
readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
|
|
85
87
|
readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
|
|
86
88
|
readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
|
|
@@ -124,6 +126,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
|
|
|
124
126
|
readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
125
127
|
readonly iconName: string;
|
|
126
128
|
readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
129
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
127
130
|
readonly imgSize: number;
|
|
128
131
|
}, {}>>;
|
|
129
132
|
export default LlUploadImage;
|
|
@@ -5,6 +5,7 @@ import type UploadImage from './upload-image.vue';
|
|
|
5
5
|
export declare const uploadImageProps: {
|
|
6
6
|
readonly value: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown, readonly [], boolean>;
|
|
7
7
|
readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
8
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
8
9
|
readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
|
|
9
10
|
readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
|
|
10
11
|
readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-image.mjs","sources":["../../../../../packages/components/upload-image/src/upload-image.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\n\nimport type {\n UploadProps,\n FileType\n} from 'ant-design-vue/es/upload/interface.d.ts'\n\nimport type { UploadRequestOption } from 'ant-design-vue/es/vc-upload/interface.d.ts'\n\nimport type UploadImage from './upload-image.vue'\n\nexport const uploadImageProps = buildProps({\n value: {\n type: definePropType<string | string[]>([String, Array]),\n default: []\n },\n imgLoading: {\n type: Boolean,\n default: false\n },\n iconName: {\n type: String,\n default: 'icon-add'\n },\n maxCount: {\n type: Number,\n default: 1\n },\n accept: {\n type: String,\n default: '.jpg,.png,.jpeg,.svg'\n },\n imgSize: {\n type: Number,\n default: 2 * 1024 * 1024\n },\n tip: {\n type: [String, Boolean],\n default: true\n },\n beforeUpload: {\n type: definePropType<UploadProps['beforeUpload']>(Function),\n default: () => true\n },\n customRequest: {\n type: definePropType<\n (options: UploadRequestOption, base64: string) => void\n >(Function),\n default: (): void => {}\n }\n} as const)\n\nexport const uploadImageEmits = {\n change: (value: string | string[]) => !!value,\n 'update:value': (value: string | string[]) => !!value\n} as const\n\nexport type RcFileType = FileType\n\nexport type RcUploadRequestOption = UploadRequestOption\n\nexport type RcUploadProps = UploadProps\n\n// props\nexport type UploadImageProps = ExtractPropTypes<typeof uploadImageProps>\n\n// emits\nexport type UploadImageEmits = typeof uploadImageEmits\n\n// instance\nexport type UploadImageInstance = InstanceType<typeof UploadImage>\n"],"names":[],"mappings":";;;;AAaO,MAAM,mBAAmB,UAAW,CAAA;AAAA,EACzC,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,cAAA,CAAkC,CAAC,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,IACvD,SAAS,EAAC;AAAA,GACZ;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,UAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,sBAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,IAAI,IAAO,GAAA,IAAA;AAAA,GACtB;AAAA,EACA,GAAK,EAAA;AAAA,IACH,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtB,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAA4C,QAAQ,CAAA;AAAA,IAC1D,SAAS,MAAM,IAAA;AAAA,GACjB;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAEJ,QAAQ,CAAA;AAAA,IACV,SAAS,MAAY;AAAA,KAAC;AAAA,GACxB;AACF,CAAU,EAAA;AAEH,MAAM,gBAAmB,GAAA;AAAA,EAC9B,MAAQ,EAAA,CAAC,KAA6B,KAAA,CAAC,CAAC,KAAA;AAAA,EACxC,cAAgB,EAAA,CAAC,KAA6B,KAAA,CAAC,CAAC,KAAA;AAClD;;;;"}
|
|
1
|
+
{"version":3,"file":"upload-image.mjs","sources":["../../../../../packages/components/upload-image/src/upload-image.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\n\nimport type {\n UploadProps,\n FileType\n} from 'ant-design-vue/es/upload/interface.d.ts'\n\nimport type { UploadRequestOption } from 'ant-design-vue/es/vc-upload/interface.d.ts'\n\nimport type UploadImage from './upload-image.vue'\n\nexport const uploadImageProps = buildProps({\n value: {\n type: definePropType<string | string[]>([String, Array]),\n default: []\n },\n imgLoading: {\n type: Boolean,\n default: false\n },\n useBase64: {\n type: Boolean,\n default: true\n },\n iconName: {\n type: String,\n default: 'icon-add'\n },\n maxCount: {\n type: Number,\n default: 1\n },\n accept: {\n type: String,\n default: '.jpg,.png,.jpeg,.svg'\n },\n imgSize: {\n type: Number,\n default: 2 * 1024 * 1024\n },\n tip: {\n type: [String, Boolean],\n default: true\n },\n beforeUpload: {\n type: definePropType<UploadProps['beforeUpload']>(Function),\n default: () => true\n },\n customRequest: {\n type: definePropType<\n (options: UploadRequestOption, base64: string) => void\n >(Function),\n default: (): void => {}\n }\n} as const)\n\nexport const uploadImageEmits = {\n change: (value: string | string[]) => !!value,\n 'update:value': (value: string | string[]) => !!value\n} as const\n\nexport type RcFileType = FileType\n\nexport type RcUploadRequestOption = UploadRequestOption\n\nexport type RcUploadProps = UploadProps\n\n// props\nexport type UploadImageProps = ExtractPropTypes<typeof uploadImageProps>\n\n// emits\nexport type UploadImageEmits = typeof uploadImageEmits\n\n// instance\nexport type UploadImageInstance = InstanceType<typeof UploadImage>\n"],"names":[],"mappings":";;;;AAaO,MAAM,mBAAmB,UAAW,CAAA;AAAA,EACzC,KAAO,EAAA;AAAA,IACL,IAAM,EAAA,cAAA,CAAkC,CAAC,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,IACvD,SAAS,EAAC;AAAA,GACZ;AAAA,EACA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EACA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,UAAA;AAAA,GACX;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,CAAA;AAAA,GACX;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,OAAS,EAAA,sBAAA;AAAA,GACX;AAAA,EACA,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,MAAA;AAAA,IACN,OAAA,EAAS,IAAI,IAAO,GAAA,IAAA;AAAA,GACtB;AAAA,EACA,GAAK,EAAA;AAAA,IACH,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtB,OAAS,EAAA,IAAA;AAAA,GACX;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,IAAA,EAAM,eAA4C,QAAQ,CAAA;AAAA,IAC1D,SAAS,MAAM,IAAA;AAAA,GACjB;AAAA,EACA,aAAe,EAAA;AAAA,IACb,IAAA,EAAM,eAEJ,QAAQ,CAAA;AAAA,IACV,SAAS,MAAY;AAAA,KAAC;AAAA,GACxB;AACF,CAAU,EAAA;AAEH,MAAM,gBAAmB,GAAA;AAAA,EAC9B,MAAQ,EAAA,CAAC,KAA6B,KAAA,CAAC,CAAC,KAAA;AAAA,EACxC,cAAgB,EAAA,CAAC,KAA6B,KAAA,CAAC,CAAC,KAAA;AAClD;;;;"}
|
|
@@ -2,6 +2,7 @@ import type { FileType } from 'ant-design-vue/es/upload/interface.d.ts';
|
|
|
2
2
|
declare const _default: import("vue").DefineComponent<{
|
|
3
3
|
readonly value: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown, readonly [], boolean>;
|
|
4
4
|
readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
5
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
5
6
|
readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
|
|
6
7
|
readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
|
|
7
8
|
readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
|
|
@@ -26,7 +27,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
26
27
|
readonly prototype: any;
|
|
27
28
|
})[], unknown, unknown, () => void, boolean>;
|
|
28
29
|
}, {
|
|
29
|
-
loading: import("vue").Ref<boolean>;
|
|
30
30
|
props: import("@vue/shared").LooseRequired<{
|
|
31
31
|
readonly value: import("ll-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown>;
|
|
32
32
|
readonly accept: string;
|
|
@@ -44,6 +44,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
44
44
|
readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
45
45
|
readonly iconName: string;
|
|
46
46
|
readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
47
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
47
48
|
readonly imgSize: number;
|
|
48
49
|
readonly onChange?: ((value: string | string[]) => any) | undefined;
|
|
49
50
|
readonly "onUpdate:value"?: ((value: string | string[]) => any) | undefined;
|
|
@@ -82,6 +83,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
82
83
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
83
84
|
readonly value: import("ll-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | string[]) | (() => string | string[]) | ((new (...args: any[]) => string | string[]) | (() => string | string[]))[], unknown, unknown, readonly [], boolean>;
|
|
84
85
|
readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
|
|
86
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
|
85
87
|
readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
|
|
86
88
|
readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
|
|
87
89
|
readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
|
|
@@ -125,6 +127,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
125
127
|
readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
|
|
126
128
|
readonly iconName: string;
|
|
127
129
|
readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
130
|
+
readonly useBase64: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
128
131
|
readonly imgSize: number;
|
|
129
132
|
}, {}>;
|
|
130
133
|
export default _default;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, useAttrs, ref, computed, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createVNode, mergeProps, withCtx, createBlock, withModifiers, toDisplayString, Fragment, renderList } from 'vue';
|
|
2
2
|
import { omit } from 'lodash-es';
|
|
3
3
|
import '../../../utils/index.mjs';
|
|
4
4
|
import { uploadImageProps, uploadImageEmits } from './upload-image.mjs';
|
|
@@ -14,7 +14,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
14
14
|
props: uploadImageProps,
|
|
15
15
|
emits: uploadImageEmits,
|
|
16
16
|
setup(__props, { emit: __emit }) {
|
|
17
|
-
const loading = ref(false);
|
|
18
17
|
const props = __props;
|
|
19
18
|
const emits = __emit;
|
|
20
19
|
const bem = createNamespace("upload-image");
|
|
@@ -52,9 +51,10 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
52
51
|
return isType && isSize && props.beforeUpload?.(file, FileList);
|
|
53
52
|
};
|
|
54
53
|
const customRequest = async (res) => {
|
|
55
|
-
loading.value = true;
|
|
56
54
|
const fileUrl = await fileToBase64(res.file);
|
|
57
|
-
props.
|
|
55
|
+
if (props.useBase64) {
|
|
56
|
+
props.maxCount === 1 ? innerValue.value = [fileUrl] : innerValue.value.push(fileUrl);
|
|
57
|
+
}
|
|
58
58
|
try {
|
|
59
59
|
props.customRequest?.(res, fileUrl);
|
|
60
60
|
} catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-image.vue2.mjs","sources":["../../../../../packages/components/upload-image/src/upload-image.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <div :class=\"bem.m('preview-box')\">\n <a-upload\n v-model:fileList=\"fileList\"\n v-bind=\"getBindValue\"\n :accept=\"props.accept\"\n :show-upload-list=\"false\"\n :max-count=\"props.maxCount\"\n :multiple=\"computedMultiple\"\n :before-upload=\"beforeUpload\"\n :custom-request=\"customRequest\"\n :class=\"bem.m('upload')\"\n list-type=\"picture-card\"\n >\n <a-spin size=\"small\" :spinning=\"props.imgLoading\">\n <a-image\n v-if=\"innerValue.length > 0\"\n :preview=\"{ visible: false }\"\n :width=\"100\"\n :height=\"100\"\n :src=\"innerValue[0]\"\n :style=\"{\n objectFit: 'contain'\n }\"\n >\n <template #previewMask>\n <div :class=\"bem.m('preview-mask')\">\n <a href=\"javascript:;\" @click.stop=\"imageVisible = true\">\n <ll-icon\n :icon-name=\"`icon-pwd-look`\"\n :class=\"bem.e('image-icon')\"\n />\n </a>\n <a href=\"javascript:;\" @click.stop=\"handleRemoveImage\">\n <ll-icon\n :icon-name=\"`icon-delete`\"\n :class=\"bem.e('image-icon')\"\n />\n </a>\n </div>\n </template>\n </a-image>\n <ll-icon v-else :icon-name=\"props.iconName\" style=\"font-size: 30px\" />\n </a-spin>\n </a-upload>\n <p :class=\"bem.e('tip')\">{{ computedTip }}</p>\n </div>\n\n <div style=\"display: none\">\n <a-image-preview-group\n :preview=\"{\n visible: imageVisible,\n onVisibleChange: (vis: boolean) => (imageVisible = vis)\n }\"\n >\n <a-image v-for=\"item in innerValue\" :key=\"item\" :src=\"item\" />\n </a-image-preview-group>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, useAttrs, computed } from 'vue'\nimport { omit } from 'lodash-es'\nimport { createNamespace, formatFileSize, fileToBase64 } from '@ll-plus/utils'\nimport { uploadImageProps, uploadImageEmits } from './upload-image'\nimport { message, Form } from 'ant-design-vue'\n\nimport type {\n UploadProps,\n FileType\n} from 'ant-design-vue/es/upload/interface.d.ts'\n// import type {\n// // BeforeUploadFileType,\n// UploadRequestOption\n// } from 'ant-design-vue/es/vc-upload/interface.d.ts'\n//1.Init props/emits/bem/attrs\n\ndefineOptions({ name: 'LlUploadImage' })\n\nconst
|
|
1
|
+
{"version":3,"file":"upload-image.vue2.mjs","sources":["../../../../../packages/components/upload-image/src/upload-image.vue"],"sourcesContent":["<template>\n <div :class=\"bem.b()\">\n <div :class=\"bem.m('preview-box')\">\n <a-upload\n v-model:fileList=\"fileList\"\n v-bind=\"getBindValue\"\n :accept=\"props.accept\"\n :show-upload-list=\"false\"\n :max-count=\"props.maxCount\"\n :multiple=\"computedMultiple\"\n :before-upload=\"beforeUpload\"\n :custom-request=\"customRequest\"\n :class=\"bem.m('upload')\"\n list-type=\"picture-card\"\n >\n <a-spin size=\"small\" :spinning=\"props.imgLoading\">\n <a-image\n v-if=\"innerValue.length > 0\"\n :preview=\"{ visible: false }\"\n :width=\"100\"\n :height=\"100\"\n :src=\"innerValue[0]\"\n :style=\"{\n objectFit: 'contain'\n }\"\n >\n <template #previewMask>\n <div :class=\"bem.m('preview-mask')\">\n <a href=\"javascript:;\" @click.stop=\"imageVisible = true\">\n <ll-icon\n :icon-name=\"`icon-pwd-look`\"\n :class=\"bem.e('image-icon')\"\n />\n </a>\n <a href=\"javascript:;\" @click.stop=\"handleRemoveImage\">\n <ll-icon\n :icon-name=\"`icon-delete`\"\n :class=\"bem.e('image-icon')\"\n />\n </a>\n </div>\n </template>\n </a-image>\n <ll-icon v-else :icon-name=\"props.iconName\" style=\"font-size: 30px\" />\n </a-spin>\n </a-upload>\n <p :class=\"bem.e('tip')\">{{ computedTip }}</p>\n </div>\n\n <div style=\"display: none\">\n <a-image-preview-group\n :preview=\"{\n visible: imageVisible,\n onVisibleChange: (vis: boolean) => (imageVisible = vis)\n }\"\n >\n <a-image v-for=\"item in innerValue\" :key=\"item\" :src=\"item\" />\n </a-image-preview-group>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, useAttrs, computed } from 'vue'\nimport { omit } from 'lodash-es'\nimport { createNamespace, formatFileSize, fileToBase64 } from '@ll-plus/utils'\nimport { uploadImageProps, uploadImageEmits } from './upload-image'\nimport { message, Form } from 'ant-design-vue'\n\nimport type {\n UploadProps,\n FileType\n} from 'ant-design-vue/es/upload/interface.d.ts'\n// import type {\n// // BeforeUploadFileType,\n// UploadRequestOption\n// } from 'ant-design-vue/es/vc-upload/interface.d.ts'\n//1.Init props/emits/bem/attrs\n\ndefineOptions({ name: 'LlUploadImage' })\n\nconst props = defineProps(uploadImageProps)\n\nconst emits = defineEmits(uploadImageEmits)\n\nconst bem = createNamespace('upload-image')\n\nconst attrs = useAttrs()\n\nconst fileList = ref([])\n\nconst imageVisible = ref(false)\n\nconst innerValue = ref<string[]>(\n Array.isArray(props.value)\n ? [...props.value]\n : props.value\n ? [props.value]\n : []\n)\n\nconst formItemContext = Form.useInjectFormItemContext()\n\nconst computedAccept = computed(() => {\n return props.accept\n ? props.accept\n .split(',')\n .map(e => e.replace('.', ''))\n .join(',')\n : props.accept\n})\n\nconst computedTip = computed(() => {\n return typeof props.tip === 'string'\n ? props.tip\n : props.tip\n ? `支持${computedAccept.value}格式,不超过${formatFileSize(\n props.imgSize\n )}。`\n : ''\n})\n\nconst computedMultiple = computed(() => props.maxCount > 1)\n\nconst getBindValue = computed(() => ({\n ...omit({ ...attrs }, [...Object.keys(uploadImageProps)])\n}))\n\nconst beforeUpload = async (file: FileType, FileList: FileType[]) => {\n const fileType = file.type.toLowerCase().replace('image/', '')\n const isType = props.accept.includes(fileType)\n const isSize = file.size <= props.imgSize\n if (!isType) {\n message.error(`${file.name} 需要为${computedAccept.value}格式。`)\n return false\n }\n if (!isSize) {\n message.error(`${file.name} 文件不得大于${formatFileSize(props.imgSize)}。`)\n return false\n }\n return isType && isSize && props.beforeUpload?.(file, FileList)\n}\n\nconst customRequest: UploadProps['customRequest'] = async (res: any) => {\n const fileUrl = (await fileToBase64(res.file)) as string\n if (props.useBase64) {\n props.maxCount === 1\n ? (innerValue.value = [fileUrl])\n : innerValue.value.push(fileUrl)\n }\n try {\n props.customRequest?.(res, fileUrl)\n } catch (error) {\n innerValue.value.splice(innerValue.value.length - 1, 1)\n message.error('上传失败')\n }\n}\n\nconst handleRemoveImage = async () => {\n const index = innerValue.value.length - 1\n innerValue.value.splice(index, 1)\n\n setValue()\n}\n\nconst setValue = () => {\n const value =\n props.maxCount === 1\n ? innerValue.value.length\n ? innerValue.value[0]\n : ''\n : innerValue.value\n emits('update:value', value)\n emits('change', value)\n formItemContext.onFieldChange()\n}\n\nwatch(\n () => props.value,\n newVal => {\n if (newVal !== innerValue.value) {\n innerValue.value = Array.isArray(newVal)\n ? [...newVal]\n : newVal\n ? [newVal]\n : []\n }\n }\n)\n\nwatch(\n innerValue,\n () => {\n setValue()\n },\n {\n deep: true\n }\n)\n</script>\n"],"names":[],"mappings":"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"}
|
package/index.full.js
CHANGED
|
@@ -76756,6 +76756,10 @@
|
|
|
76756
76756
|
type: Boolean,
|
|
76757
76757
|
default: false
|
|
76758
76758
|
},
|
|
76759
|
+
useBase64: {
|
|
76760
|
+
type: Boolean,
|
|
76761
|
+
default: true
|
|
76762
|
+
},
|
|
76759
76763
|
iconName: {
|
|
76760
76764
|
type: String,
|
|
76761
76765
|
default: "icon-add"
|
|
@@ -76798,7 +76802,6 @@
|
|
|
76798
76802
|
props: uploadImageProps,
|
|
76799
76803
|
emits: uploadImageEmits,
|
|
76800
76804
|
setup(__props, { emit: __emit }) {
|
|
76801
|
-
const loading = require$$0.ref(false);
|
|
76802
76805
|
const props = __props;
|
|
76803
76806
|
const emits = __emit;
|
|
76804
76807
|
const bem = createNamespace("upload-image");
|
|
@@ -76836,9 +76839,10 @@
|
|
|
76836
76839
|
return isType && isSize && props.beforeUpload?.(file, FileList);
|
|
76837
76840
|
};
|
|
76838
76841
|
const customRequest = async (res) => {
|
|
76839
|
-
loading.value = true;
|
|
76840
76842
|
const fileUrl = await fileToBase64(res.file);
|
|
76841
|
-
props.
|
|
76843
|
+
if (props.useBase64) {
|
|
76844
|
+
props.maxCount === 1 ? innerValue.value = [fileUrl] : innerValue.value.push(fileUrl);
|
|
76845
|
+
}
|
|
76842
76846
|
try {
|
|
76843
76847
|
props.customRequest?.(res, fileUrl);
|
|
76844
76848
|
} catch (error) {
|