【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】

这篇具有很好参考价值的文章主要介绍了【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

若依框架开发代码生成的图片上传列表不回显问题解决!



前言

使用若依框架进行项目开发的时会用到框架自带的代码生成功能,极大方便我们进行项目开发。基于框架开发肯定会有一些功能需要自行优化定制,在设计数据库表代码生成的同时有图片的展示需求,因此在若依框架中发现了图片在列表中回显不显示的问题,接下来我们看看如何解决该问题。


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题再现

1.设计表 person(员工表) 有 id (id) \ name(姓名) \ gender (性别)\ photo (证件照)

【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】

2.使用若依代码生成功能,导入person表,代码生成

【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】
【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】

3.将生成的代码导入到项目中得到如下列表和表单(插入数据),图片仅在提交、修改表单中回显,列表没有显示,如下图。

【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】
【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】

二、问题解析

1.在若依框架中图片上传与回显引用了 components 组件组件中的 ImageUpload 与 ImagePreview

//mian.js
// 文件上传组件
import FileUpload from "@/components/FileUpload"
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
//*************这是分割线*****************
// 全局组件挂载
Vue.component('ImageUpload', ImageUpload)
Vue.component('ImagePreview', ImagePreview)

2.person.vue 使用ImageUpload组件上传图片

<el-form-item label="证件照" prop="photo">
	<image-upload v-model="form.photo"/>
</el-form-item>

3.person.vue 使用ImagePreview组件回显图片,得到的却是OSS回传的oss_id 值,所以在 image-oreview 组件才不回显图片,这时我们需要拿到图片的url地址才是正确的回显方式。

      <el-table-column label="证件照" align="center" prop="photo" width="100">
        <template slot-scope="scope">
          <image-preview :src="scope.row.photo" :width="50" :height="50"/>
        </template>
      </el-table-column>

【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】


4.person.vue为何会出现不回显的情况出现呢?我们找到 components > ImageUpload文件夹

查看里面的 uploadedSuccessfully 方法和数据关系,我们可以看到上传的过程中用到了OSS对象存储,这时候我们就可以从根源发现问题,在图片上传的时候对象调用了如下方法,因此回显的内容就是 oss_id 而并不是图片的 url 地址。

    // 上传结束处理
    uploadedSuccessfully() {
      if (this.number > 0 && this.uploadList.length === this.number) {
        this.fileList = this.fileList.concat(this.uploadList);
        this.uploadList = [];
        this.number = 0;
        this.$emit("input", this.listToString(this.fileList));
        this.$modal.closeLoading();
      }
    },

【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】


二、问题解决

1.修改 uploadedSuccessfully 方法

在上传图片的过程中,调用了父子组件 $emit 这时发现了什么?我们可以看到在提交图片那里可以使用 @input 来获取调用方法,这时我们可以直接获取到该图片的信息。

//****************修改前
    // 上传结束处理
    uploadedSuccessfully() {
      if (this.number > 0 && this.uploadList.length === this.number) {
        this.fileList = this.fileList.concat(this.uploadList);
        this.uploadList = [];
        this.number = 0;
        this.$emit("input", this.listToString(this.fileList));
        this.$modal.closeLoading();
      }
    },
//*****************修改后
    // 上传结束处理
    uploadedSuccessfully() {
      if (this.number > 0 && this.uploadList.length === this.number) {
        this.fileList = this.fileList.concat(this.uploadList);
        this.uploadList = [];
        this.number = 0;
        this.$emit("input", this.listToString(this.fileList), this.fileList);
        this.$modal.closeLoading();
      }
    },

我们在控制台打印一下 this.fileList 可以看到有了我们想要的 url 了


【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】


2.添加新字段 photos 用来存放图片 url

【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】


随后在后端实体类以及 PersonMapper.xml 添加字段 photos 重新build项目并启动


3.修改前端代码与方法

添加操作:还需在表单重置方法上添加 photos:undefined

//***********修改前
        <el-form-item label="证件照" prop="photo">
          <image-upload v-model="form.photo"/>
        </el-form-item>
//***********修改后
        <el-form-item label="证件照" prop="photo">
          <image-upload @input="getImgUrl" v-model="form.photo"/>
        </el-form-item>
        
    // 表单重置
    reset() {
        photos:undefined
        }

添加 method 方法获取上面我们讲到的 url 并存入到我们新加的字段中去。

    getImgUrl(id,item){
      this.form.photos=item[0].url
    },

4.回显操作

列表代码:

//*********修改前:
      <el-table-column label="证件照" align="center" prop="photo" width="100">
        <template slot-scope="scope">
          <image-preview :src="scope.row.photo" :width="50" :height="50"/>
        </template>
      </el-table-column>
//*********修改后:在:src="scope.row.photos"处进行了改动
      <el-table-column label="证件照" align="center" prop="photos" width="100">
        <template slot-scope="scope">
          <image-preview :src="scope.row.photos" :width="50" :height="50"/>
        </template>
      </el-table-column>


完成回显

这时候我们就看到了回显的内容了,重新进行图片上传或修改就能看到图片了,点击查看。
【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】
是不是觉得非常有趣呢?觉得有用的话欢迎支持~


总结

每天总结一点经验,都会有量变的结果!文章来源地址https://www.toymoban.com/news/detail-470574.html

到了这里,关于【若依框架 RuoYi-Vue Ruo-Yi-Plus 图片回显不显示问题,OSS文件上传】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 若依ruoyi-vue前端组件的使用指南

    若依ruoyi-vue提供了丰富的前端组件,可以帮助开发人员快速搭建现代化的Web应用。本文将介绍如何使用Ruoyi Vue的前端组件,包括自定义组件、组件注册和组件通信。 1. 自定义组件 自定义组件允许开发人员根据项目需求创建新的组件,以实现特定的功能或样式。在Ruoyi Vue中,

    2024年04月25日
    浏览(44)
  • 若依管理系统搭建教程,ruoyi-vue环境搭建

    启动后端 修改数据库连接,编辑 resources 目录下的 application-druid.yml 修改服务器配置, 编辑resources目录下的application.yml  开发环境配置 打包工程文件 在 ruoyi 项目的 bin 目录下执行 package.bat 打包Web工程,生成war/jar包文件。 然后会在项目下生成 target 文件夹包含 war 或 jar 提示

    2024年01月22日
    浏览(56)
  • [ RuoYi ] 若依前后端分离 RuoYi-Vue 项目 war 包 Tomcat 项目部署

    Apache Tomcat® - Apache Tomcat 9 Software Downloads https://tomcat.apache.org/download-90.cgi Tomcat的主要特点和功能包括: ①Servlet和JSP容器:Tomcat作为一个Web服务器,可以解释执行Java Servlet和JSP代码,处理HTTP请求和响应,生成动态的Web页面。 ②独立性和易用性:Tomcat是一个独立的服务器,可以

    2024年02月07日
    浏览(59)
  • 若依(RuoYi-Vue)+Flowable工作流前后端整合教程

    此教程适合若依前后端分离项目,其他项目可以在扩展列表中进行查找。 近期公司里需要对很久以前的RuoYi-Vue前后端分离项目扩展出flowable的功能,当然这个重任也是落在了我的身上(不然也不会有这篇文章),然后我在官网看到了RuoYi-Vue-Flowable这个项目,按照文档提供的迁

    2023年04月21日
    浏览(58)
  • 开源项目学习:若依RuoYi-Vue后台管理系统【环境搭建】

    第一章 环境搭建 第二章 项目运行 第三章 阅读源码:例子-新增用户接口 第四章 基于ruoyi-vue开发新项目 本文尽量贴近零基础入门,献给初入门的学弟学妹们! 文章基本流程:环境配置→运行项目→阅读源码 安装环境时最好修改安装路径! Java开发必备! JDK下载:http://www

    2023年04月19日
    浏览(55)
  • ruoyi-vue 新建模块--若依前后端分离系统代码生成。

    1. 在数据库中创建表 有几个要点: 1、必须要有自增主键; 2、必须要有表注释; 3、每个字段必须有注释; 》 2.使用代码生成功能,生成 基础代码 2.1 修改代码生成器中配置文件 generator.yml 修改完成后 → 需要重新启动右上角的RuoYiApplication 2.2 使用 系统工具 代码生成 创建菜

    2024年02月03日
    浏览(51)
  • 若依管理系统RuoYi-Vue(前后端分离版)项目启动教程

    RuoYi-Vue  是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源,支持分布式事务

    2024年02月06日
    浏览(61)
  • Linux服务器部署若依(ruoyi-vue),从购买服务器到部署完成保姆级教程

    Huawei Cloud EulerOS 还是 centos7,纠结了一段时间,了解到EulerOS是对centos8的延续版本,相当于官方不对centos8继续维护了, 最后还是选 CentOS 7.9 64bit,网上可查找的工具更多且官方还在持续维护。 这里简单购买了一个月先试用一下 点击远程登录 第一步先重置密码 一定在适当的地

    2024年04月14日
    浏览(49)
  • ruoyi-vue(若依前后端分离版本)环境搭建 用idea 安装redis 后端配置 配置node环境 前端配置

    1.在https://gitee.com/y_project/RuoYi-Vue下载源码并解压至本地文件 2.将sql文件下的两个sql文件导入数据库生成表  3.在E:eclipsespaceoneRuoYi-Vue-masterruoyi-adminsrcmainresourcesapplication-druid.yml修改数据库名和密码 4.在E:eclipsespaceoneRuoYi-Vue-masterruoyi-adminsrcmainresourcesapplication.yml配置red

    2024年04月14日
    浏览(50)
  • RuoYi-Vue-Plus搭建(若依)

     项目简介 业务功能 拉取代码 建库建表 修改配置 后端启动 前端启动 项目访问(http://localhost:81) ​​ ​ ​ ​

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包