编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

vue-admin-template封装头像(vue template admin)

wxchong 2024-10-02 02:35:25 开源技术 14 ℃ 0 评论

1.封装头像组件

<template>
<el-upload
class="avatar-uploader"
        action=""
        :show-file-list="false"
        :before-upload="beforeAvatarUpload"
        >
<!-- (自动上传)action是上传地址 人资项目不需要 人资项目(手动上传)  -->
<!-- show-file-list不展示列表 -->
<img v-if="value" :src="value" class="avatar">
<i v-else class="el-icon-plus avatar-uploader-icon" />
</el-upload>
</template>

<script>
export default {
        props: {
        value: {
        type: String,
default: ''
        }
        },
        methods: {
        // 检查函数 判断文件的类型还有大小 return  true(继续上传)/false(停止上传)
        beforeAvatarUpload(file) {
        // jpeg png gif bmp

        const isJPG = ['image/jpeg', 'image/png', 'image/gif', 'image/bmp'].includes(file.type)
        const isLt2M = file.size / 1024 / 1024 < 5 // 5M

        if (!isJPG) {
        this.$message.error('上传头像图片只能是 JPG PNG GIF BMP 格式!')
        }
        if (!isLt2M) {
        this.$message.error('上传头像图片大小不能超过 5MB!')
        }
        return isJPG && isLt2M
        }
        }
        }
</script>

<style>
    .avatar-uploader .el-upload {
            border: 1px dashed #d9d9d9;
            border-radius: 6px;
            cursor: pointer;
            position: relative;
            overflow: hidden;
            }
            .avatar-uploader .el-upload:hover {
            border-color: #409EFF;
            }
            .avatar-uploader-icon {
            font-size: 28px;
            color: #8c939d;
            width: 178px;
            height: 178px;
            line-height: 178px;
            text-align: center;
            }
            .avatar {
            width: 178px;
            height: 178px;
            display: block;
            }
</style>

2.引入组件


3.父组件利用v-modal给子组件传值

<!-- 放置上传图片 -->
<image-upload v-model="userInfo.staffPhoto" />

子组件用props接收

        props: {
                value: {
                type: String,
default: ''
        }
        },

子组件显示props值value

<img v-if="value" :src="value" class="avatar">

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表