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

VUE3-form表单保存附件与基本信息

element-ui代码

<el-dialog :title="上传附件" v-model="dialogAdds.visible" width="500px" append-to-body>

                <el-form-item label="唯一标识">

                    <dict-tag v-if="form.groupId" :options="unique_identification" :value="form.identification" />

                    <el-input v-else v-model="form.identification" disabled style="width:260px;" />

                </el-form-item>

                <el-form-item label="设备" prop="file">

                    <template #default>

                        <div>

                            <div>

                                <label for="fileUpload">

                                    <div class="lBut"><span>选择文件</span></div>

                                </label>

                                <div class="el-upload__tip text-red">允许上传.xls .xlsx</div>

                                <input id="fileUpload" type="file" style="display: none;" accept=".xls,.xlsx" @change="handleFileChange" />

                                <div class="el-upload__tip text-red" v-if="uploadFileName">{{ uploadFileName }}</div>

                            </div>

                        </div>

                    </template>

                </el-form-item>

            </el-form>

            <template #footer>

                <div class="dialog-footer">

                    <el-button :loading="buttonLoading" type="primary" @click="submitFormMul">确 定</el-button>

                    <el-button @click="cancelAdds">取 消</el-button>

                </div>

            </template>

        </el-dialog>

js代码

<script setup lang="ts">

import axios from 'axios';

const dialogAdds = reactive<DialogOption>({

    visible: false,

    title: ''

});

// 文件上传

const handleFileChange = (event:any) => {

    if(event.target.files[0].size > 1024*1024*40){

        return proxy?.$modal.msgSuccess("上传文件不能大于40M");

    }

    // 附件名称

    uploadFileName.value=event.target.files[0].name;

    form.value.file= event.target.files[0];

}

// 保存操作

const submitFormMul = ()=>{

    deviceFormRef.value?.validate(async (valid: boolean) => {

        if (valid) {

            buttonLoading.value = true;

            const result=await axios.post(import.meta.env.VITE_APP_BASE_API+'/device/device/deviceImportByExcel', form.value, {

                headers: {

                    'Content-Type': 'multipart/form-data',

                },

            });

            if(result.data.code==601){

                proxy?.$modal.alertErrorTitle(result.data.data,"导入错误提示");

            }

            // 重置

            uploadFileName.value='';

            dialogAdds.visible = false;

            buttonLoading.value = false;

        }

    });

}

</script>

style样式

<style>

.lBut{

        width: 87px;

        height: 32px;

        font-size: 14px;

        line-height: 1.15;

        display: flex;

        justify-content: center;

        align-items: center;

        border-radius: 4px;

        padding: 8px 10px;

        margin-left: 2px;

        transition: all 0.5s;

        white-space: nowrap;

        background-color: #409eff;

        color: white;

        border: 1px solid #409eff;

    }

</style>

结果展示

相关文章:

  • 【C++初阶】—— 类和对象 (上)
  • 深入了解Redis的过期策略和内存淘汰机制
  • 5月27日
  • Spring Boot中如何实现定时任务?
  • el-select 组件获取整个对象
  • 模型实战(20)之 yolov8分类模型训练自己的数据集
  • yolov8+ROS+ubuntu18.04——学习记录
  • Redis篇 String
  • .Net Core 中间件与过滤器
  • 02 FreeRTOS 任务
  • PyCharm面板ctrl+鼠标滚轮放大缩小代码
  • 基于Pytorch框架的深度学习ShufflenetV2神经网络十七种猴子动物识别分类系统源码
  • three.js官方案例webgl_loader_fbx.html学习
  • Docker打包之后如何将进行变成压缩包进行传输和使用?
  • XSKY CTO 在英特尔存储技术峰会的演讲:LLM 存储,架构至关重要
  • 时间复杂度分析经典问题——最大子序列和
  • @angular/forms 源码解析之双向绑定
  • [译]Python中的类属性与实例属性的区别
  • 【知识碎片】第三方登录弹窗效果
  • android 一些 utils
  • ES学习笔记(12)--Symbol
  • JavaScript的使用你知道几种?(上)
  • Java比较器对数组,集合排序
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • PHP的类修饰符与访问修饰符
  • Python进阶细节
  • React系列之 Redux 架构模式
  • spring cloud gateway 源码解析(4)跨域问题处理
  • XForms - 更强大的Form
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 关于for循环的简单归纳
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 每天一个设计模式之命令模式
  • 批量截取pdf文件
  • 普通函数和构造函数的区别
  • 设计模式(12)迭代器模式(讲解+应用)
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 微信支付JSAPI,实测!终极方案
  • 找一份好的前端工作,起点很重要
  • 【干货分享】dos命令大全
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • scrapy中间件源码分析及常用中间件大全
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • #define 用法
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (4)事件处理——(7)简单事件(Simple events)
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (九)信息融合方式简介
  • (学习总结16)C++模版2
  • (译)计算距离、方位和更多经纬度之间的点