当前位置: 首页 > news >正文

【若依框架实现上传文件组件】

若依框架中只有个人中心有上传图片组件,但是这个组件不适用于el-dialog中的el-form表单页面在这里插入图片描述

于是通过elementui重新写了一个上传组件,如图是实现效果
在这里插入图片描述
vue代码

<el-dialog :title="title" v-model="find" width="600px" :close-on-click-modal="false" :draggable="true" append-to-body><el-form :model="form" :rules="rules" ref="userRef" label-width="80px"><el-row><el-col :span="12"><el-form-item label="用户名称" prop="nickName"><el-input v-model="form.nickName" placeholder="请输入用户名称" maxlength="30" :disabled="true" /></el-form-item></el-col></el-row><el-row><el-col :span="12"><el-form-item label="登录密码" prop="password"><el-input v-model="form.password" placeholder="请输入登录密码" type="password" maxlength="20" :disabled="true" /></el-form-item></el-col></el-row><el-row><el-col :lg="2" :md="2"><el-form-item label="上传照片"><div class="custom-upload"><el-uploadclass="upload-demo"action="#"style="width: 200px":on-change="handleFileChange":file-list="fileList":auto-upload="false"accept="image/*":disabled="true"><!-- 上传按钮 --><el-button slot="trigger" type="primary" :disabled="true">选择文件<el-icon class="el-icon-upload" v-model="form.avatar"></el-icon></el-button></el-upload><!-- 图片预览 --><img v-if="previewImage" :src="previewImage" alt="Preview" style="max-width: 100%; margin-top: 10px;"></div></el-form-item></el-col></el-row></el-form><template #footer><div class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></template></el-dialog>

js代码

<script setup name="User">
import { uploadImg } from "@/api/system/user"; //这是个人中心上传照片的接口,可以直接拿过来用const previewImage = ref('');
const fileList = ref([]);const data = reactive({form: {},
});const {  form  } = toRefs(data);/** 处理文件改变事件 */
function handleFileChange(file) {const selectedFile = file.raw;if (selectedFile) {const reader = new FileReader();reader.readAsDataURL(selectedFile);reader.onload = () => {previewImage.value = reader.result;const formData = new FormData();formData.append('avatarfile', selectedFile);uploadImg(formData).then(response => {console.log('上传成功:', response.imgUrl);// 如果需要其他操作,可以在这里进行处理form.value.avatar=response.imgUrl}).catch(error => {console.error('上传失败:', error);});};}fileList.value = [file];
}</script >
http://www.lryc.cn/news/252614.html

相关文章:

  • 玩转大数据5:构建可扩展的大数据架构
  • 【华为数据之道学习笔记】非数字原生企业的特点
  • Kubernetes学习笔记-Part.01 Kubernets与docker
  • k8s学习
  • 测试:JMeter和LoadRunner比较
  • (C语言)通过循环按行顺序为一个矩阵赋予1,3,5,7,9,等奇数,然后输出矩阵左下角的值。
  • GitHub项目推荐-Deoldify
  • 微前端qiankun示例 Umi3.5
  • 熬夜会秃头——beta冲刺Day7
  • IntelliJ IDEA设置中文界面
  • RTSP流媒体播放器
  • 使用正则表达式时-可能会导致性能下降的情况
  • Maven生命周期
  • 深度学习(五):pytorch迁移学习之resnet50
  • 面试官:说说synchronized与ReentrantLock的区别
  • 数据结构学习笔记——广义表
  • 为什么每次optimizer.zero_grad()
  • 一个页面从输入 URL 到页面加载显示完成,这个过程中都发生了什么
  • iOS ------ UICollectionView
  • ElasticSearch知识体系详解
  • Linux自启服务提示:systemd[1]: *.service: main process exited, code=exited, status=1问题
  • LoadBalancer将服务暴露到外部实现负载均衡purelb-layer2模式配置介绍
  • Spring Bean的生命周期各阶段详解附源码
  • LoadBalancer将服务暴露到外部实现负载均衡Openelb-layer2模式配置介绍
  • Android异步之旅:探索IntentService
  • 131.类型题-计算数学序列的和,请编写函数fun,其功能是S=……【满分解题代码+详细分析】(数学序列的和类型题-C/C++JavaPython实现)
  • 【Unity动画】状态机中层的融合原理与用法详解
  • 等保之道:从基础出发,解密网站防护的重要性
  • 7. 系统信息与系统资源
  • 【重点】【滑动窗口】239. 滑动窗口最大值