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

招生处网站建设方案网站设计与实现作业

招生处网站建设方案,网站设计与实现作业,做网站设计的价格,网站后台系统Upload 上传组件的使用 官方文档链接使用el-upload组件上传文件 具体参数说明,如何实现上传、下载、删除等功能获取文件列表进行file-list格式匹配代码 文件展示列表自定义为表格展示 使用的具体参数说明文件大小展示问题(KB/MB)文件下载代码…
Upload 上传组件的使用
  • 官方文档链接
  • 使用el-upload组件上传文件
    • 具体参数说明,如何实现上传、下载、删除等功能
    • 获取文件列表进行file-list格式匹配
    • 代码
  • 文件展示列表自定义为表格展示
    • 使用的具体参数说明
    • 文件大小展示问题(KB/MB)
    • 文件下载
    • 代码
  • 上传文件大小与文件类型校验

官方文档链接

官方文档 https://element.eleme.cn/#/zh-CN/component/upload

使用el-upload组件上传文件

在这里插入图片描述

具体参数说明,如何实现上传、下载、删除等功能

  • action:文件上传地址,我的项目里已经封装好了请求。使用的时候需要依据项目填写。

  • show-file-list: 是否显示已上传文件列表。

  • headers:设置上传的请求头部。我的项目需要传token。

  • on-preview:点击文件列表中已上传的文件时的钩子。
    可以在这个这个回调方法里写下载功能部分代码,实现点击文件下载功能。

  • on-remove:文件列表移除文件时的钩子。
    在文件列表回显时,使用数组fileData记录id列,执行删除回调时,匹配id,因为删除回调方法返回的file中不记录id,只记录url,可通过url相同返回id,再调用删除接口。

  • on-successfunction(response, file, fileList) 文件上传成功时的钩子。
    如果不设置auto-upload:false ,则选取文件后立即进行上传,成功回调后使用返回的参数调用接口,完成文件上传。

获取文件列表进行file-list格式匹配

  • file-list :上传的文件列表, 例如: [{name: ‘food.jpg’, url: ‘https://xxx.cdn.com/xxx.jpg’}]
  • 列表回显时,需要将返回列表对应参数赋值给file-list对应的数组fileData 。

代码

<template><basic-container><el-form :model="dataForm" ref="dataForm" label-width="140px"><el-form-item><el-upload class="upload-demo" ref="upload" :headers="headers" action="/admin/sys-file/upload":on-preview="handlePreview" :on-remove="handleRemove" :on-success="handleAvatarSuccess" :file-list="fileData"><el-button slot="trigger" size="small" type="primary">上传文件</el-button></el-upload></el-form-item></el-form></basic-container>
</template>

<script>
import {
getObj,
addObj,
putObj,
fetchList,
getnoticeId,
delObj
} from ‘@/api/policy/noticeattachment’
import store from ‘@/store’
import { mapState} from ‘vuex’
export default {
data() {
return {
dataForm: {
id: 0,
noticeId: ‘’,
attachName: ‘’,
attachUrl: ‘’,
},
dataList: [],
fileData: [],
headers: {
‘Authorization’: 'Bearer ' + store.getters.access_token,
},
}
},
methods: {
init(id) {
// console.log(id)
this.dataForm.noticeId = id
//数组每次需要清空
this.fileData.splice(0, this.fileData.length);
this.KaTeX parse error: Expected 'EOF', got '&' at position 167: …ken operator">=&̲gt;</span> <spa…refs[‘dataForm’].resetFields();
if (this.dataForm.noticeId) {
getnoticeId(this.dataForm.noticeId).then(response => {
this.dataList = response.data.data;
this.dataList.forEach(list => {
this.fileData.push({
name: list.attachName,
url: list.attachUrl,
id: list.id //删除时使用
})
})
});
}
});
},
//移除回调
handleRemove(file, fileList) {
let resultArr = this.fileData.filter((item) => {
return item.url === file.url
});
// console.log(resultArr[0])
this.dataForm.id = resultArr[0].id
this.KaTeX parse error: Expected 'EOF', got '&' at position 167: …ken operator">=&̲gt;</span> <spa…message.success(‘删除成功’)
})
},
// 表单提交
dataFormSubmit() {
this.KaTeX parse error: Expected 'EOF', got '&' at position 369: …ken operator">=&̲gt;</span> <spa…message.success(‘修改成功’)
});
} else {
addObj(this.dataForm).then(data => {
this.$message.success(‘添加成功’)
})
}
}
})
}
}
}
</script>

文件展示列表自定义为表格展示

在这里插入图片描述

使用的具体参数说明

  • show-file-list: 是否显示已上传文件列表。
    展示自定义表格样式需要设置show-file-list=“false”
  • on-successfunction(response, file, fileList) 文件上传成功时的钩子。
    如果不设置auto-upload:false ,则选取文件后立即进行上传,成功回调后使用返回的参数调用接口,完成文件上传。

文件大小展示问题(KB/MB)

  • 上传文件时size默认传file返回的size大小(默认为1字节),在表格展示时进行判断,如果大于1MB展示单位为MB,小于1MB展示单位KB。
  • MB:size / 1024 / 1024
  • KB:size / 1024
    (既然提到字节,可能有的人不熟悉字节,这里顺便记录一下字节转换关系)
    字节也叫Byte,是计算机数据的基本存储单位。
    8bit(位)=1Byte(字节)
    1024Byte(字节)=1KB
    1024KB=1MB
    1024MB=1GB
    1024GB=1TB
    其中:K是千 M是兆 G是吉咖 T是太拉。

文件下载

  • 点击下载按钮,实现下载此文件。使用a标签,传入对应文件name和url。具体代码下面记录。

代码

<template><basic-container><el-upload class="upload-demo"ref="upload":headers="headers"action="/admin/sys-file/upload":on-success="handleAvatarSuccess":show-file-list="false"><el-button slot="trigger" size="small" type="primary">上传文件</el-button></el-upload><el-table class="down" :data="dataList" border stripe style="width: 100%;margin-top: 20px;"><el-table-column prop="attachName" label="文件名称"></el-table-column><el-table-column prop="attachSize" label="文件大小"><template slot-scope="scope"><span v-if="scope.row.attachSize / 1024 / 1024 < 1">{{(scope.row.attachSize / 1024).toFixed(2) + 'KB'}}</span><span v-else>{{(scope.row.attachSize / 1024 / 1024).toFixed(2) + 'MB'}}</span></template></el-table-column><el-table-column prop="createTime" label="上传时间"></el-table-column><el-table-column width="150px" label="操作"><template slot-scope="scope"><el-button size="small" type="text"><a @click="downloadFile(scope.row.attachName,scope.row.attachUrl)">下载</a></el-button><el-button size="small" type="text" @click="deleteHandle(scope.row.id)">删除</el-button></template></el-table-column></el-table></el-form></basic-container>
</template>

<script>
import {
getObj,
addObj,
putObj,
fetchList,
getnoticeId,
delObj
} from ‘@/api/policy/noticeattachment’
import store from ‘@/store’
import { mapState} from ‘vuex’
export default {
data() {
return {
dataForm: {
id: 0,
noticeId: ‘’,
attachName: ‘’,
attachUrl: ‘’,
attachSize: ‘’,
},
dataList: [],
headers: {
‘Authorization’: 'Bearer ' + store.getters.access_token,
},
}
},
methods: {
init(id) {
this.dataForm.noticeId = id
this.KaTeX parse error: Expected 'EOF', got '&' at position 167: …ken operator">=&̲gt;</span> <spa…confirm(‘是否确认删除该附件’, ‘提示’, {
confirmButtonText: ‘确定’,
cancelButtonText: ‘取消’,
type: ‘warning’
}).then(function () {
return delObj(id)
}).then(data => {
this.KaTeX parse error: Expected 'EOF', got '}' at position 469: …n punctuation">}̲</span><span cl…message.success(‘添加成功’)
this.getDataList()
})
}
}
}
</script>
<style lang=“scss” scoped=“scoped”>
.down >>> a {
color: #409EFF;
}
</style>

上传文件大小与文件类型校验

  1. 可以在beforeUpload方法中进行过滤。
  2. 使用accept参数

我自己的项目里暂时没有限制,后续有需求的话会进行更新。这里不做过多概述。
下面po官网代码:

<el-uploadclass="avatar-uploader"action="https://jsonplaceholder.typicode.com/posts/":show-file-list="false":on-success="handleAvatarSuccess":before-upload="beforeAvatarUpload"><img v-if="imageUrl" :src="imageUrl" class="avatar"><i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>

<script>
export default {
data() {
return {
imageUrl: ‘’
};
},
methods: {
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
},
beforeAvatarUpload(file) {
const isJPG = file.type === ‘image/jpeg’;
const isLt2M = file.size / 1024 / 1024 < 2;

    <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>isJPG<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span><span class="token keyword">this</span><span class="token punctuation">.</span>$message<span class="token punctuation">.</span><span class="token function">error</span><span class="token punctuation">(</span><span class="token string">'上传头像图片只能是 JPG 格式!'</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token punctuation">}</span><span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>isLt2M<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span><span class="token keyword">this</span><span class="token punctuation">.</span>$message<span class="token punctuation">.</span><span class="token function">error</span><span class="token punctuation">(</span><span class="token string">'上传头像图片大小不能超过 2MB!'</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token punctuation">}</span><span class="token keyword">return</span> isJPG <span class="token operator">&amp;&amp;</span> isLt2M<span class="token punctuation">;</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>

}
</script>

差不多使用到的就这些啦,如果有新需求会继续记录。

http://www.yayakq.cn/news/396670/

相关文章:

  • 做印刷的有什么网站网站集群怎么做
  • 找网上公司做网站网页升级紧急通知直播
  • 从域名到网站建设完成的流程福田做棋牌网站建设找哪家公司好
  • 建网站必需服务器吗小程序商城怎么推广引流
  • 郑州市哪里有网站建设关键词排名优化工具
  • python网站开发 pdf安全的南昌网站制作
  • 网站怎么做成手机版建设电子商务网站的必要性
  • 大型网站建设开发设计公司广州外贸公司
  • 网站建设与推广的区别创建网页模板的作用
  • 潜江建设网站室内设计软件培训
  • 便捷网站建设推广外包
  • 怎么网站设计网站建设公司的服务定位
  • 网站规划建设案例动漫设计网站
  • 建设企业银行网站多少优质网站的衡量标准
  • 页面设计粉色好处长沙网站托管seo优化公司
  • 网站正在建设中 英文dw做的网站怎么在vs
  • 四川省城乡建设厅官方网站wordpress 最新 调用
  • 湖南建设网站官网做视频上传可以赚钱的网站
  • 淘宝网站是哪个公司做的泰州企业建站系统
  • 30天网站建设实录视频大型电商网站开发
  • 举例网站联盟网页加速器浏览器
  • 网站建设与维护中国出版社房地产中介
  • 室内设计找工作网站公司宣传页的样板
  • 浙江网站建设公司推荐应用制作器
  • 批量上传网站产品电子商务网站
  • 个人网站设计及实现wordpress页码
  • 简单网页制作代码模板页优化软件
  • 咸宁网站建设解决方案黔江网站制作
  • 网站权重如何查询一个网站做3个关键词够
  • 酒店网站免费建设外包网站