当前位置: 首页 > 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>

结果展示

http://www.lryc.cn/news/351351.html

相关文章:

  • 无线网络安全技术基础
  • sheng的学习笔记-docker部署Greenplum
  • 【投稿资讯】区块链会议CCF A -- SP 2025 截止6.6、11.14 附录用率
  • C++哪些函数不能被声明为虚函数
  • vue中数据已经改变了,但是table里面内容没更新渲染!
  • 头歌实践教学平台:Junit实训入门篇
  • matlab使用教程(80)—修改图形对象的透明度
  • mysql bin 日志转成sql
  • 河南道路与桥梁乙级资质申请:注册证书与职称证书准备
  • 3D工业视觉
  • 使用auth_basic模块进行基础认证
  • 深度解析物联网平台:优化数据点位管理的实战策略
  • Spring常见问题
  • MiniMax Golang2轮面试,期望薪资25K
  • MyBatis系统学习篇 - MyBatis的缓存
  • K-means聚类模型
  • 免费分享一套微信小程序旅游推荐(智慧旅游)系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】,帅呆了~~
  • Matlab 2023b学习笔记1——界面认识
  • C++ sort排序的总和应用题
  • [力扣]——231.2的幂
  • 【css】引入背景图时候,路径写入@会报错
  • 【有手就行】使用你自己的声音做语音合成,CPU都能跑,亲测有效
  • 《ESP8266通信指南》番外-(附完整代码)ESP8266获取DHT11接入(基于Lua)
  • [IMX6ULL驱动开发]-Linux对中断的处理(一)
  • PHP基础学习笔记(面向对象OOP)
  • Mysql超详细安装配置教程(保姆级图文)
  • HR招聘测评,如何判断候选人的团队协作能力?
  • [STM32-HAL库]Flash库-HAL库-复杂数据读写-STM32CUBEMX开发-HAL库开发系列-主控STM32F103C6T6
  • windows 下访问 csdn 异常问题
  • vue3结合element-plus之如何优雅的使用表格