ll-plus 2.3.7 → 2.3.8

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 (27) hide show
  1. package/es/components/upload-image/index.d.ts +5 -0
  2. package/es/components/upload-image/src/upload-image.d.ts +1 -0
  3. package/es/components/upload-image/src/upload-image.mjs +4 -0
  4. package/es/components/upload-image/src/upload-image.mjs.map +1 -1
  5. package/es/components/upload-image/src/upload-image.vue.d.ts +5 -0
  6. package/es/components/upload-image/src/upload-image.vue2.mjs +56 -44
  7. package/es/components/upload-image/src/upload-image.vue2.mjs.map +1 -1
  8. package/es/utils/props/runtime.d.ts +2 -2
  9. package/index.full.js +59 -43
  10. package/index.full.min.js +12 -12
  11. package/index.full.min.js.map +1 -1
  12. package/index.full.min.mjs +12 -12
  13. package/index.full.min.mjs.map +1 -1
  14. package/index.full.mjs +59 -43
  15. package/lib/components/upload-image/index.d.ts +5 -0
  16. package/lib/components/upload-image/src/upload-image.d.ts +1 -0
  17. package/lib/components/upload-image/src/upload-image.js +4 -0
  18. package/lib/components/upload-image/src/upload-image.js.map +1 -1
  19. package/lib/components/upload-image/src/upload-image.vue.d.ts +5 -0
  20. package/lib/components/upload-image/src/upload-image.vue2.js +55 -43
  21. package/lib/components/upload-image/src/upload-image.vue2.js.map +1 -1
  22. package/lib/utils/props/runtime.d.ts +2 -2
  23. package/package.json +1 -1
  24. package/types/packages/components/upload-image/index.d.ts +5 -0
  25. package/types/packages/components/upload-image/src/upload-image.d.ts +1 -0
  26. package/types/packages/components/upload-image/src/upload-image.vue.d.ts +5 -0
  27. package/types/packages/utils/props/runtime.d.ts +2 -2
@@ -1,5 +1,6 @@
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
+ readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
3
4
  readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
4
5
  readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
5
6
  readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
@@ -24,6 +25,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
24
25
  readonly prototype: any;
25
26
  })[], unknown, unknown, () => void, boolean>;
26
27
  }, {
28
+ loading: import("vue").Ref<boolean>;
27
29
  props: import("@vue/shared").LooseRequired<{
28
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>;
29
31
  readonly accept: string;
@@ -40,6 +42,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
40
42
  readonly maxCount: number;
41
43
  readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
42
44
  readonly iconName: string;
45
+ readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
43
46
  readonly imgSize: number;
44
47
  readonly onChange?: ((value: string | string[]) => any) | undefined;
45
48
  readonly "onUpdate:value"?: ((value: string | string[]) => any) | undefined;
@@ -77,6 +80,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
77
80
  readonly 'update:value': (value: string | string[]) => boolean;
78
81
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
79
82
  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
+ readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
80
84
  readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
81
85
  readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
82
86
  readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
@@ -119,6 +123,7 @@ export declare const LlUploadImage: import("ll-plus/es/utils").SFCWithInstall<im
119
123
  readonly maxCount: number;
120
124
  readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
121
125
  readonly iconName: string;
126
+ readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
122
127
  readonly imgSize: number;
123
128
  }, {}>>;
124
129
  export default LlUploadImage;
@@ -4,6 +4,7 @@ import type { UploadRequestOption } from 'ant-design-vue/es/vc-upload/interface.
4
4
  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
+ readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
7
8
  readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
8
9
  readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
9
10
  readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
@@ -7,6 +7,10 @@ const uploadImageProps = buildProps({
7
7
  type: definePropType([String, Array]),
8
8
  default: []
9
9
  },
10
+ imgLoading: {
11
+ type: Boolean,
12
+ default: false
13
+ },
10
14
  iconName: {
11
15
  type: String,
12
16
  default: "icon-add"
@@ -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 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,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 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,6 +1,7 @@
1
1
  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
+ readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, 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,6 +26,7 @@ declare const _default: import("vue").DefineComponent<{
25
26
  readonly prototype: any;
26
27
  })[], unknown, unknown, () => void, boolean>;
27
28
  }, {
29
+ loading: import("vue").Ref<boolean>;
28
30
  props: import("@vue/shared").LooseRequired<{
29
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>;
30
32
  readonly accept: string;
@@ -41,6 +43,7 @@ declare const _default: import("vue").DefineComponent<{
41
43
  readonly maxCount: number;
42
44
  readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
43
45
  readonly iconName: string;
46
+ readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
44
47
  readonly imgSize: number;
45
48
  readonly onChange?: ((value: string | string[]) => any) | undefined;
46
49
  readonly "onUpdate:value"?: ((value: string | string[]) => any) | undefined;
@@ -78,6 +81,7 @@ declare const _default: import("vue").DefineComponent<{
78
81
  readonly 'update:value': (value: string | string[]) => boolean;
79
82
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
80
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>;
84
+ readonly imgLoading: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
81
85
  readonly iconName: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "icon-add", boolean>;
82
86
  readonly maxCount: import("ll-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 1, boolean>;
83
87
  readonly accept: import("ll-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, ".jpg,.png,.jpeg,.svg", boolean>;
@@ -120,6 +124,7 @@ declare const _default: import("vue").DefineComponent<{
120
124
  readonly maxCount: number;
121
125
  readonly tip: import("ll-plus/es/utils").EpPropMergeType<readonly [StringConstructor, BooleanConstructor], unknown, unknown>;
122
126
  readonly iconName: string;
127
+ readonly imgLoading: import("ll-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
123
128
  readonly imgSize: number;
124
129
  }, {}>;
125
130
  export default _default;
@@ -1,4 +1,4 @@
1
- import { defineComponent, useAttrs, ref, computed, watch, resolveComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, createVNode, mergeProps, withCtx, createBlock, withModifiers, toDisplayString, Fragment, renderList } from 'vue';
1
+ import { defineComponent, ref, useAttrs, 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,6 +14,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  props: uploadImageProps,
15
15
  emits: uploadImageEmits,
16
16
  setup(__props, { emit: __emit }) {
17
+ const loading = ref(false);
17
18
  const props = __props;
18
19
  const emits = __emit;
19
20
  const bem = createNamespace("upload-image");
@@ -51,6 +52,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
51
52
  return isType && isSize && props.beforeUpload?.(file, FileList);
52
53
  };
53
54
  const customRequest = async (res) => {
55
+ loading.value = true;
54
56
  const fileUrl = await fileToBase64(res.file);
55
57
  props.maxCount === 1 ? innerValue.value = [fileUrl] : innerValue.value.push(fileUrl);
56
58
  try {
@@ -91,6 +93,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
91
93
  return (_ctx, _cache) => {
92
94
  const _component_ll_icon = resolveComponent("ll-icon");
93
95
  const _component_a_image = resolveComponent("a-image");
96
+ const _component_a_spin = resolveComponent("a-spin");
94
97
  const _component_a_upload = resolveComponent("a-upload");
95
98
  const _component_a_image_preview_group = resolveComponent("a-image-preview-group");
96
99
  return openBlock(), createElementBlock(
@@ -119,53 +122,62 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
119
122
  "list-type": "picture-card"
120
123
  }), {
121
124
  default: withCtx(() => [
122
- innerValue.value.length > 0 ? (openBlock(), createBlock(_component_a_image, {
123
- key: 0,
124
- preview: { visible: false },
125
- width: 100,
126
- height: 100,
127
- src: innerValue.value[0],
128
- style: {
129
- objectFit: "contain"
130
- }
125
+ createVNode(_component_a_spin, {
126
+ size: "small",
127
+ spinning: props.imgLoading
131
128
  }, {
132
- previewMask: withCtx(() => [
133
- createElementVNode(
134
- "div",
135
- {
136
- class: normalizeClass(unref(bem).m("preview-mask"))
137
- },
138
- [
139
- createElementVNode("a", {
140
- href: "javascript:;",
141
- onClick: _cache[0] || (_cache[0] = withModifiers(($event) => imageVisible.value = true, ["stop"]))
142
- }, [
143
- createVNode(_component_ll_icon, {
144
- "icon-name": `icon-pwd-look`,
145
- class: normalizeClass(unref(bem).e("image-icon"))
146
- }, null, 8, ["class"])
147
- ]),
148
- createElementVNode("a", {
149
- href: "javascript:;",
150
- onClick: withModifiers(handleRemoveImage, ["stop"])
151
- }, [
152
- createVNode(_component_ll_icon, {
153
- "icon-name": `icon-delete`,
154
- class: normalizeClass(unref(bem).e("image-icon"))
155
- }, null, 8, ["class"])
156
- ])
157
- ],
158
- 2
159
- /* CLASS */
160
- )
129
+ default: withCtx(() => [
130
+ innerValue.value.length > 0 ? (openBlock(), createBlock(_component_a_image, {
131
+ key: 0,
132
+ preview: { visible: false },
133
+ width: 100,
134
+ height: 100,
135
+ src: innerValue.value[0],
136
+ style: {
137
+ objectFit: "contain"
138
+ }
139
+ }, {
140
+ previewMask: withCtx(() => [
141
+ createElementVNode(
142
+ "div",
143
+ {
144
+ class: normalizeClass(unref(bem).m("preview-mask"))
145
+ },
146
+ [
147
+ createElementVNode("a", {
148
+ href: "javascript:;",
149
+ onClick: _cache[0] || (_cache[0] = withModifiers(($event) => imageVisible.value = true, ["stop"]))
150
+ }, [
151
+ createVNode(_component_ll_icon, {
152
+ "icon-name": `icon-pwd-look`,
153
+ class: normalizeClass(unref(bem).e("image-icon"))
154
+ }, null, 8, ["class"])
155
+ ]),
156
+ createElementVNode("a", {
157
+ href: "javascript:;",
158
+ onClick: withModifiers(handleRemoveImage, ["stop"])
159
+ }, [
160
+ createVNode(_component_ll_icon, {
161
+ "icon-name": `icon-delete`,
162
+ class: normalizeClass(unref(bem).e("image-icon"))
163
+ }, null, 8, ["class"])
164
+ ])
165
+ ],
166
+ 2
167
+ /* CLASS */
168
+ )
169
+ ]),
170
+ _: 1
171
+ /* STABLE */
172
+ }, 8, ["src"])) : (openBlock(), createBlock(_component_ll_icon, {
173
+ key: 1,
174
+ "icon-name": props.iconName,
175
+ style: { "font-size": "30px" }
176
+ }, null, 8, ["icon-name"]))
161
177
  ]),
162
178
  _: 1
163
179
  /* STABLE */
164
- }, 8, ["src"])) : (openBlock(), createBlock(_component_ll_icon, {
165
- key: 1,
166
- "icon-name": props.iconName,
167
- style: { "font-size": "30px" }
168
- }, null, 8, ["icon-name"]))
180
+ }, 8, ["spinning"])
169
181
  ]),
170
182
  _: 1
171
183
  /* STABLE */
@@ -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-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-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 props.maxCount === 1\n ? (innerValue.value = [fileUrl])\n : innerValue.value.push(fileUrl)\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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"}
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 loading = ref(false)\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 loading.value = true\n const fileUrl = (await fileToBase64(res.file)) as string\n props.maxCount === 1\n ? (innerValue.value = [fileUrl])\n : innerValue.value.push(fileUrl)\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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"}
@@ -27,6 +27,6 @@ export declare const buildProp: <Type = never, Value = never, Validator = never,
27
27
  export type TestProps = Record<string, {
28
28
  [epPropKey]: true;
29
29
  } | NativePropType | EpPropInput<any, any, any, any, any>>;
30
- export declare const buildProps: <Props extends Record<string, {
30
+ export declare const buildProps: <Props extends Record<string, NativePropType | EpPropInput<any, any, any, any, any> | {
31
31
  __epPropKey: true;
32
- } | NativePropType | EpPropInput<any, any, any, any, any>>>(props: Props) => { [K in keyof Props]: IfEpProp<Props[K], Props[K], IfNativePropType<Props[K], Props[K], EpPropConvert<Props[K]>>>; };
32
+ }>>(props: Props) => { [K in keyof Props]: IfEpProp<Props[K], Props[K], IfNativePropType<Props[K], Props[K], EpPropConvert<Props[K]>>>; };
package/index.full.js CHANGED
@@ -76638,6 +76638,10 @@
76638
76638
  type: definePropType([String, Array]),
76639
76639
  default: []
76640
76640
  },
76641
+ imgLoading: {
76642
+ type: Boolean,
76643
+ default: false
76644
+ },
76641
76645
  iconName: {
76642
76646
  type: String,
76643
76647
  default: "icon-add"
@@ -76680,6 +76684,7 @@
76680
76684
  props: uploadImageProps,
76681
76685
  emits: uploadImageEmits,
76682
76686
  setup(__props, { emit: __emit }) {
76687
+ const loading = require$$0.ref(false);
76683
76688
  const props = __props;
76684
76689
  const emits = __emit;
76685
76690
  const bem = createNamespace("upload-image");
@@ -76717,6 +76722,7 @@
76717
76722
  return isType && isSize && props.beforeUpload?.(file, FileList);
76718
76723
  };
76719
76724
  const customRequest = async (res) => {
76725
+ loading.value = true;
76720
76726
  const fileUrl = await fileToBase64(res.file);
76721
76727
  props.maxCount === 1 ? innerValue.value = [fileUrl] : innerValue.value.push(fileUrl);
76722
76728
  try {
@@ -76757,6 +76763,7 @@
76757
76763
  return (_ctx, _cache) => {
76758
76764
  const _component_ll_icon = require$$0.resolveComponent("ll-icon");
76759
76765
  const _component_a_image = require$$0.resolveComponent("a-image");
76766
+ const _component_a_spin = require$$0.resolveComponent("a-spin");
76760
76767
  const _component_a_upload = require$$0.resolveComponent("a-upload");
76761
76768
  const _component_a_image_preview_group = require$$0.resolveComponent("a-image-preview-group");
76762
76769
  return require$$0.openBlock(), require$$0.createElementBlock(
@@ -76785,53 +76792,62 @@
76785
76792
  "list-type": "picture-card"
76786
76793
  }), {
76787
76794
  default: require$$0.withCtx(() => [
76788
- innerValue.value.length > 0 ? (require$$0.openBlock(), require$$0.createBlock(_component_a_image, {
76789
- key: 0,
76790
- preview: { visible: false },
76791
- width: 100,
76792
- height: 100,
76793
- src: innerValue.value[0],
76794
- style: {
76795
- objectFit: "contain"
76796
- }
76795
+ require$$0.createVNode(_component_a_spin, {
76796
+ size: "small",
76797
+ spinning: props.imgLoading
76797
76798
  }, {
76798
- previewMask: require$$0.withCtx(() => [
76799
- require$$0.createElementVNode(
76800
- "div",
76801
- {
76802
- class: require$$0.normalizeClass(require$$0.unref(bem).m("preview-mask"))
76803
- },
76804
- [
76805
- require$$0.createElementVNode("a", {
76806
- href: "javascript:;",
76807
- onClick: _cache[0] || (_cache[0] = require$$0.withModifiers(($event) => imageVisible.value = true, ["stop"]))
76808
- }, [
76809
- require$$0.createVNode(_component_ll_icon, {
76810
- "icon-name": `icon-pwd-look`,
76811
- class: require$$0.normalizeClass(require$$0.unref(bem).e("image-icon"))
76812
- }, null, 8, ["class"])
76813
- ]),
76814
- require$$0.createElementVNode("a", {
76815
- href: "javascript:;",
76816
- onClick: require$$0.withModifiers(handleRemoveImage, ["stop"])
76817
- }, [
76818
- require$$0.createVNode(_component_ll_icon, {
76819
- "icon-name": `icon-delete`,
76820
- class: require$$0.normalizeClass(require$$0.unref(bem).e("image-icon"))
76821
- }, null, 8, ["class"])
76822
- ])
76823
- ],
76824
- 2
76825
- /* CLASS */
76826
- )
76799
+ default: require$$0.withCtx(() => [
76800
+ innerValue.value.length > 0 ? (require$$0.openBlock(), require$$0.createBlock(_component_a_image, {
76801
+ key: 0,
76802
+ preview: { visible: false },
76803
+ width: 100,
76804
+ height: 100,
76805
+ src: innerValue.value[0],
76806
+ style: {
76807
+ objectFit: "contain"
76808
+ }
76809
+ }, {
76810
+ previewMask: require$$0.withCtx(() => [
76811
+ require$$0.createElementVNode(
76812
+ "div",
76813
+ {
76814
+ class: require$$0.normalizeClass(require$$0.unref(bem).m("preview-mask"))
76815
+ },
76816
+ [
76817
+ require$$0.createElementVNode("a", {
76818
+ href: "javascript:;",
76819
+ onClick: _cache[0] || (_cache[0] = require$$0.withModifiers(($event) => imageVisible.value = true, ["stop"]))
76820
+ }, [
76821
+ require$$0.createVNode(_component_ll_icon, {
76822
+ "icon-name": `icon-pwd-look`,
76823
+ class: require$$0.normalizeClass(require$$0.unref(bem).e("image-icon"))
76824
+ }, null, 8, ["class"])
76825
+ ]),
76826
+ require$$0.createElementVNode("a", {
76827
+ href: "javascript:;",
76828
+ onClick: require$$0.withModifiers(handleRemoveImage, ["stop"])
76829
+ }, [
76830
+ require$$0.createVNode(_component_ll_icon, {
76831
+ "icon-name": `icon-delete`,
76832
+ class: require$$0.normalizeClass(require$$0.unref(bem).e("image-icon"))
76833
+ }, null, 8, ["class"])
76834
+ ])
76835
+ ],
76836
+ 2
76837
+ /* CLASS */
76838
+ )
76839
+ ]),
76840
+ _: 1
76841
+ /* STABLE */
76842
+ }, 8, ["src"])) : (require$$0.openBlock(), require$$0.createBlock(_component_ll_icon, {
76843
+ key: 1,
76844
+ "icon-name": props.iconName,
76845
+ style: { "font-size": "30px" }
76846
+ }, null, 8, ["icon-name"]))
76827
76847
  ]),
76828
76848
  _: 1
76829
76849
  /* STABLE */
76830
- }, 8, ["src"])) : (require$$0.openBlock(), require$$0.createBlock(_component_ll_icon, {
76831
- key: 1,
76832
- "icon-name": props.iconName,
76833
- style: { "font-size": "30px" }
76834
- }, null, 8, ["icon-name"]))
76850
+ }, 8, ["spinning"])
76835
76851
  ]),
76836
76852
  _: 1
76837
76853
  /* STABLE */