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

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

若依框架中只有个人中心有上传图片组件,但是这个组件不适用于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-upload
                     class="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.kler.cn/news/162369.html

相关文章:

  • 在装有 PostgreSQL 14 的 Red Hat8上安装 `pg_cron`
  • MTU TCP-MSS(转载)
  • 鸿蒙原生应用/元服务开发-新版本端云一体化模板体验反馈
  • 电商早报 | 12月8日|母婴电商宝贝格子北京总部已人去楼空
  • 基于SpringBoot+Vue学生成绩管理系统前后端分离(源码+数据库)
  • 网络编程基础api
  • Javascript 前端分页——根据页面大小(pageSize)和总行数(total)计算总页面数(totalPage)
  • 校园网无法登录IEEE
  • 健身检测设备——智能脂肪秤芯片方案
  • gitlab注册无中国区电话验证问题
  • 免费的AI改写工具推荐,AI改写工具大全
  • vivado $clog2函数
  • Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)
  • 时间复杂度为 O(n^2) 的排序算法 | 京东物流技术团队
  • 智能优化算法应用:基于蜣螂算法无线传感器网络(WSN)覆盖优化 - 附代码
  • 批量免费AI写作工具,批量免费AI写作软件
  • 华为电视盒子 EC6108V9C 刷机成linux系统
  • 【推荐系统】推荐算法数学基础
  • 【C++】:STL源码剖析之vector类容器的底层模拟实现
  • Theamleaf导出pdf模版编写(原始th/td编写表格)
  • 前端:HTML+CSS+JavaScript实现轮播图2
  • 网络运维与网络安全 学习笔记2023.12.1
  • 设计图中时序图
  • 搞懂HashTable, HashMap, ConcurrentHashMap 的区别,看着一篇就足够了!!!
  • API成批分配漏洞介绍与解决方案
  • 游戏策划常用的ChatGPT通用提示词模板
  • vue实现页面之间的el-select同步数据选项
  • 【大数据】HBase 中的列和列族
  • 【数据结构】字典树(Trie树)算法总结
  • pydantic的基础用法