vue element 单张图片上传,不展示图片

功能点:点击上传图片按钮,进行上传图片,并把列表那一项数据 带上一起传参

 

<!-- 上传图片,哪里需要显示上传图片按钮,把这段代码放在那 getTableList是获取列表数据方法 -->
<UploadImg :value="scope.row" @getTableList="getTableList" v-if="scope.row.filePath === '0' && scope.row.discardTime ===null " title="上传图片" recordType="fit" class="upload-file-text" />
// 图片组件
<template>
    <el-upload
        :headers="headers"
        class="m-l-10"
        action="/api/prevent-admin/file/upload/multFileByRecordType"
        accept="jpg,png,jpeg"
        :on-success="handleAvatarSuccess"
        :before-upload="beforeAvatarUpload"
        :show-file-list="false"
        :data="uploadData"
        >
        <el-button type="text">{{title}}</el-button>
    </el-upload>
</template>

<script>
    import { Loading } from 'element-ui'
    let loadingInstance = null
    export default {
        props: {
            // 列表点击的那项数据
            value: {
                default: ''
            },
            // 按钮文字
            title: {
                default: '点击上传'
            },
            // 页面类型
            recordType: {
                default: ''
            }
        },
        data() {
            return {
                headers: {
                    Authorization: 'Bearer ' + localStorage.getItem('Authorization')
                },
                // 图片上传的数据
                uploadData: {
                    dataId: '',
                    files: '',
                    recordType: '',
                    surverId: ''
                }
            }
        },
        created () {
            this.uploadData={
                dataId: this.value.id,
                recordType: this.recordType,
                surverId: this.value.ssid
            }
        },
        methods: {
            beforeAvatarUpload (file) {
                this.uploadData.files = file
                loadingInstance =Loading.service(this.$store.state.LoadingoOptions)
                // 图片格式,大小校验
                const testmsg = /^(\s|\S)+(jpg|png|JPG|PNG|jpeg)+$/.test(file.type)
                const isLt2M = file.size / 1024 / 1024 < 2
                if (!testmsg) {
                    this.$message.error('上传图片格式不对!')
                    loadingInstance.close()
                    return false
                }
                if (!isLt2M) {
                    this.$message.error('上传头像图片大小不能超过 2MB!')
                    loadingInstance.close()
                    return false
                }
                return testmsg && isLt2M
            },
            handleAvatarSuccess (res, file) {
                setTimeout(() => {
                    loadingInstance.close()
                }, 500)
                if (res.code !== 200) {
                    this.$message.error(res.msg)
                    return false
                }
                this.$message.success('上传成功')
                // 图片上传成功,调取列表接口
                this.$emit('getTableList')
            }
        }
    }
</script>

<style lang="less" scoped>
.el-upload{display:inline-block;}
</style>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学不会•

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值