vue&elementUI杂记

 
 
1. form表单中input输入框输入文字,回车后页面被刷新 @keyup.enter.native
解决方法: form标签内加@submit.native.prevent
 
2. 下拉选没法回显,考虑后台返回数据格式与当前vaule值格式不匹配
 
3.el-upload 文件上传很差用,考虑替换成formData上传的形式,禁用自动上传
代码实现:
<el-upload class="upload-demo" ref="upload" action="" :on-preview="handlePreview" :on-remove="handleRemove"
      :file-list="fileList" :limit="1"  :on-exceed="handleExceed" :auto-upload="false" style="position: relative; left: 86%; margin-left: -175px; width: 175px">
      <el-button slot="trigger" size="small" type="primary" v-if="isSelect">选取文件</el-button>
      <el-button style="margin-left: 10px;" size="small" type="success" v-if="isUpload" @click="submitUpload">上传文件</el-button>
    </el-upload>
 
  let formData = new window.FormData();
        this.$refs.upload.uploadFiles.forEach(element => {
          formData.append('file', element.raw)
          console.log(element)
        });
        let res = await this.$http.postFile('/api/files/upload', formData);
 
async function postFile(_url, obj) {
    obj = obj || {};
    var cfg = {
        method: 'POST',
        credentials: 'include',
        body: obj
    }
 
    let res = await fetch(_url, cfg);
    let json = await res.json()
 
    toLogin(json)
 
    return json
 
}
 
4. 表格中使用popover
 
v-model: 绑定的变量为一个数组,
点击取消时将数组中对应值修改成false
<el-popover placement="top" width="160" v-model="visible[scope.row.id]"  trigger="click">
            <p>请确认是否删除?</p>
            <div style="text-align: right; margin: 0">
              <el-button size="mini" type="text" @click="visible.splice(scope.row.id, 1, false)">取消</el-button>
              <el-button type="primary" size="mini" @click="deleteRelationship(scope.row)">肯定</el-button>
            </div>
            <el-button slot="reference" type='text' size="mini"  v-if="isDelete" @click="visible[scope.row.id] = true">删除</el-button>
          </el-popover>
 
 
5. a标签实现pdf预览功能,设置target="_blank",打开新的标签页
 
6. 父组件点击肯定按钮,对子组件中表单输入内容校验后提交
   const base = new Promise((resolve, reject) => {      
            return this.$refs['base_form'].validate((valid) => {  
              if (valid) {  
                 resolve() 
              }
            })    
        })
        const butt = new Promise((resolve, reject) => {      
            return this.$refs['progress_butt'].$refs['butt_form'].validate((valid) => {        
              if (valid) {  
                 resolve() 
              }     
            })    
          })
 
Promise.all([base, butt]).then(()=>{      
             let post = { }
                this.postProgress(post);  
            }).catch(() => {       
              console.log('submit error')     
          })
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息