上传组件封装需求分析
在基于elementUI库做的商城后台管理中,需求最大的是商品管理表单这块,因为需要录入各种各样的商品图片信息。加上后台要求要传递小于2M的图片,因此封装了一个upload.vue组件作为上传页面的子组件,它用于管理图片上传逻辑。
upload.vue解析
upload主要用于实现表单上传图片的需求,主要由input +img 构成当没有图片的时候显示默认图片,有图片则显示上传图片,因为input样式不太符合需求所以只是将起设置为不可见,不能将其设置为display:none。否则将将无法触发input的change事件
upload.vue代码如下:
<template> <div> <div class="upload-box" :style="imgStyle"> <!-- 用户改变图片按钮的点击 触发上传图片事件 --> <input type="file" :ref="imgType$1" @change="upload(formVal$1,imgType$1)" class="upload-input" /> <!-- img 的 src 用于渲染一个 图片路径 传入图片路径 渲染出图片 --> <img :src="/UploadFiles/2021-04-02/formVal$1[imgType$1]">商品页中使用upload组件
在good.vue中我们引入upload组件。并且传递相应表单对象,需上传的图片类型的属性,以及图片显示样式给子组件
good.vue核心代码:
<template> <el-form ref="form" :model="form" label-width="80px" label-position="top" :rules="rules"> <!-- 无关代码略 --> <el-form-item label="详情图" prop="sDetailImg" ref="sDetailImg"> <uploadImg :form-val="form" :img-type="'sDetailImg'" :img-style="detailImgStl" @clearValidate="clearValidate"></uploadImg> </el-form-item> <el-form-item> <el-row style="text-align:center;"> <el-button type="primary" size="medium" @click.stop="submit('form')" v-if="!form.ID">保存</el-button> <el-button type="primary" size="medium" @click.stop="submit('form')" v-else-if="form.ID">修改</el-button> <el-button size="medium" @click.stop="resetForm('form')">重置</el-button> </el-row> </el-form-item> </el-form> <!-- 略 --> </template> <script> import uploadImg from "../common/uploadImg"; //图片上传 export default { name: "good", //组件名字用户缓存 data: function() { return { form: { ID: NULL, //其他字段略 sDetailImg: "" //商品详细图 }, detailImgStl: { width: "350px", height: "150px" }, rules: { sDetailImg: [{ required: true, message: "请填写详细图信息", trigger: "change" }], } } }, methods: { //这里监听子组件回写的信息,用户清除上传成功之后还显示图片未上传的bug clearValidate: function(imgName) { //清空图片上传成功提示图片没有上传的验证字段 this.$refs[imgName].clearValidate(); }, //重置表单 resetForm: function(formName) { this.confirm("确认重置表单", function(self) { self.$refs[formName].resetFields(); }) } }, } </script>写在最后
关于图片上传之前我也写过一个小程序版本,总体看来pc端的图片上传相对于小程序 要复杂一点,这个封装只能满足当下单图上传的需求也有他的不足之处。当然也可以扩展为多图上传,关于多图上传的网上也有很多例子。这里不再一一赘述。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
风云阁资源网 Design By www.bgabc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
风云阁资源网 Design By www.bgabc.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 群星《歌手2024 第13期》[FLAC/分轨][325.93MB]
- 阿木乃《爱情买卖》DTS-ES【NRG镜像】
- 江蕾《爱是这样甜》DTS-WAV
- VA-Hair(OriginalBroadwayCastRecording)(1968)(PBTHAL24-96FLAC)
- 博主分享《美末2RE》PS5 Pro运行画面 玩家仍不买账
- 《双城之战2》超多新歌MV发布:林肯公园再次献声
- 群星《说唱梦工厂 第11期》[320K/MP3][63.25MB]
- 群星《说唱梦工厂 第11期》[FLAC/分轨][343.07MB]
- 群星《闪光的夏天 第5期》[320K/MP3][79.35MB]
- 秀兰玛雅.1999-友情人【大旗】【WAV+CUE】
- 小米.2020-我想在城市里当一个乡下人【滚石】【FLAC分轨】
- 齐豫.2003-THE.UNHEARD.OF.CHYI.3CD【苏活音乐】【WAV+CUE】
- 黄乙玲1986-讲什么山盟海誓[日本东芝版][WAV+CUE]
- 曾庆瑜1991-柔情陷阱[台湾派森东芝版][WAV+CUE]
- 陈建江《享受男声》DTS-ES6.1【WAV】