Skip to content

Commit 16b4b6d

Browse files
DoverDeedoverlee
andauthored
fit: 增加CropperAvatar组件图片上传大小限制默认最大5M (#2928)
Co-authored-by: doverlee <[email protected]>
1 parent c28224f commit 16b4b6d

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

src/components/Cropper/src/CropperAvatar.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
@upload-success="handleUploadSuccess"
2626
:uploadApi="uploadApi"
2727
:src="sourceValue"
28+
:size="size"
2829
/>
2930
</div>
3031
</template>
@@ -54,6 +55,7 @@
5455
btnProps: { type: Object as PropType<ButtonProps> },
5556
btnText: { type: String, default: '' },
5657
uploadApi: { type: Function as PropType<({ file: Blob, name: string }) => Promise<void>> },
58+
size: { type: Number, default: 5 },
5759
};
5860
5961
export default defineComponent({

src/components/Cropper/src/CropperModal.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,14 @@
130130
type: Function as PropType<(params: apiFunParams) => Promise<any>>,
131131
},
132132
src: { type: String },
133+
size: { type: Number },
133134
};
134135
135136
export default defineComponent({
136137
name: 'CropperModal',
137138
components: { BasicModal, Space, CropperImage, Upload, Avatar, Tooltip },
138139
props,
139-
emits: ['uploadSuccess', 'register'],
140+
emits: ['uploadSuccess', 'uploadError', 'register'],
140141
setup(props, { emit }) {
141142
let filename = '';
142143
const src = ref(props.src || '');
@@ -151,6 +152,10 @@
151152
152153
// Block upload
153154
function handleBeforeUpload(file: File) {
155+
if (props.size && file.size > 1024 * 1024 * props.size) {
156+
emit('uploadError', { msg: t('component.cropper.imageTooBig') });
157+
return;
158+
}
154159
const reader = new FileReader();
155160
reader.readAsDataURL(file);
156161
src.value = '';

src/locales/lang/en/component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export default {
1111
cropper: {
1212
selectImage: 'Select Image',
1313
uploadSuccess: 'Uploaded success!',
14+
imageTooBig: 'Image too big',
1415
modalTitle: 'Avatar upload',
1516
okText: 'Confirm and upload',
1617
btn_reset: 'Reset',

src/locales/lang/zh-CN/component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export default {
1111
cropper: {
1212
selectImage: '选择图片',
1313
uploadSuccess: '上传成功',
14+
imageTooBig: '图片超限',
1415
modalTitle: '头像上传',
1516
okText: '确认并上传',
1617
btn_reset: '重置',

0 commit comments

Comments
 (0)