<div class="company_info" v-for="(item, index) in corpList" :key="index">
<van-uploader class="uploader_wrapper"
:after-read="(file) => afterRead(file, index)"
v-model="authList[index].authListImgs"
<div class="uploader uploader2">
<van-image
width="130px"
:max-count="1"
:src="item.FasttdfsId"
</div>
</van-uploader>
</div>
data() {
return {
corpList: [{ ...corpList }],
methods: {
afterRead(file,index) {
this.corpList[index].FastdfsId = file.content;
<div class="company_info" v-for="(item, index) in corpList" :key="index"> <van-uploader class="uploader_wrapper" :after-read="afterRead(index)"> <div class="uploader uploader2"> <van-image widt
根据约定的目录结构,自动生成优雅的文档站点和组件示例
内置ESlint,Stylelint校验规则,提交代码时自动执行校验
构建后的组件库默认支持按需约会,主题定制,Tree Shaking
执行以下命令可以快速创建一个基于Vant Cli的项目:
npx create-vant-cli-app
# 通过 npm 安装
npm i @vant/cli -D
# 通过 yarn 安装
yarn add @vant/cli --dev
安装完成后,重置以下配置添加到package.json文件中
" scripts " : {
" dev " : " vant-cli dev " ,
//upLoaderImg.js
import axios from 'axios' //引入axios
import { Toast } from 'vant' //引入Toast
function upLoaderImg (file) { //file为...
vant 上传图片(固定4张, 循环实现)
直观第一想法是写4个van-uploader组件,每个组件的方法单独分开(或者方法不分开传参不同分辨),但是一个两个还好, 2个以上这种方法使得代码冗余。
图片效果展示
(8张图片上传)
1、展示上传提示
2、命名与后端要求一致
3、可以编辑,进行回显
html代码
<van-row type="flex" justify="space-around">
<van-col span='6'
文件类型限制
首先从官方文档中可以看到开启多选上传需要 multiple 不写这个肯定是无法多选的。在上传限制中需要的方法,因为本次做的图片的多张上传,所以需要用到accept方法限制
accept=".png, .jpg, .jpeg"
各位可以根据自身需求去限制哈 。
文件大小限制
上传图片肯定要限制图片大小,不然用户上传个几十几百MB
然后我就绑定了事件 :confirm
结果他的触发机制是:加载页面时会触发,点击按钮打开模态框时会触发,点击确定会触发,点击取消也会触发。
经过查阅资料以后,可以绑定他一个事件:beforeClose
这个事件的回调 有两个参数,
第一个参数是来判断点击的是确认按钮还是取消按钮。第二个参数我感觉就是可以关闭模态框。
补充知识:修改 vant 弹窗Dialog 组件调用是确认按钮与取消按钮的文字
Props
有关props 两个属性 confirm-button-text 与 cancel-button-text 。
C是为编程人员开发的语言,面向编程人员的需要。
C语言的优点和缺点是同一特征的两个方面,即C语言给予程序员更多的自由,但同时也让程序员承担更大的风险。C在表达方面的自由会增加风险,意味着程序员可能会因此犯难以追踪的错误。
自由的代价是永远的警惕。
2.使用C语言的7个步骤
①定义程序目标
②设计程序
<div class="myBox" :class="{'big':isbig}">
// 照片文件展示 里面有的图片需要换成vant - icon
<div class="twoBox">
<div class="dragBox ">
<div class="m
:auto-upload="false" //关闭自动上传
ref="uUpload"
:action="'#'" //因为<upload>的action属性是必须的,所以如果不用默认上传,这里随便设置一个字符串就可以了。
@on-list-change="uploadChange
:after-read="afterRead"
:before-read="beforeRead"
:preview-options="{showIndicators: false}"
:max-count="1"
accept="video/*"
capture="camera"
multiple
:preview-image="false"
:preview-full-image="false"
:preview-cover="false"
<van-icon name="photograph" />
</van-uploader>
</template>
<script>
import videojs from 'video.js'
import 'video.js/dist/video-js.css'
export default {
methods: {
async beforeRead(file) {
// 判断是否为视频文件
if (file.type.indexOf('video') !== 0) {
this.$toast('请选择视频文件')
return false
async afterRead(file) {
// 创建 video 元素
const video = document.createElement('video')
video.src = URL.createObjectURL(file)
video.preload = 'metadata'
video.onloadedmetadata = async () => {
// 获取视频第一帧作为缩略图
const canvas = document.createElement('canvas')
canvas.width = video.videoWidth
canvas.height = video.videoHeight
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height)
const thumbnail = canvas.toDataURL('image/jpeg')
// 上传视频和缩略图
const formData = new FormData()
formData.append('video', file)
formData.append('thumbnail', thumbnail)
// 发送上传请求
const response = await this.$axios.post('/api/upload', formData)
this.$toast('上传成功')
// 初始化 video.js
videojs(video)
</script>