vue中expand-change使用

Posted 小小菜_v

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue中expand-change使用相关的知识,希望对你有一定的参考价值。

vue - table 展开行展示与table表不关联的数据

template:

<template>
  <el-table
    :data="tableData"
    row-key="id"
    :expand-row-keys="expandKeys"
    @expand-change="expandChange"
    style="width: 100%">
    <el-table-column type="expand">
      <template slot-scope="props">
        <el-form label-position="left" inline class="demo-table-expand">
          <el-form-item label="商品厂商">
            <span>{{ props.row.vendor}}</span>
          </el-form-item>
        </el-form>
      </template>
    </el-table-column>
    <el-table-column
      label="商品 ID"
      prop="id">
    </el-table-column>
    <el-table-column
      label="商品名称"
      prop="name">
    </el-table-column>
    <el-table-column
      label="描述"
      prop="desc">
    </el-table-column>
  </el-table>
</template>

<style>
  .demo-table-expand {
    font-size: 0;
  }
  .demo-table-expand label {
    width: 90px;
    color: #99a9bf;
  }
  .demo-table-expand .el-form-item {
    margin-right: 0;
    margin-bottom: 0;
    width: 50%;
  }
</style>

<script>
  export default {
    data() {
      return {
      form:{
          id: '',
          name: '',
          desc: '',
          vendor:''
        },
      	expandKeys:[],
        tableData: []
      }
    },
    methods:{
        expandChange(row,expandRows){
        if(this.expandKeys.indexOf(row.id) >= 0){
        	//首期当前行
        	this.expandKeys.shift()
        	return;
        	}
        	//恢复默认值
        	let _this = this
        	_this.checklist = {}
        	const data = {
        	"id": row.id,
            }
            axios
            .post(maintainFront.api_url + "getInfo", JSON.stringify(data))
            .then(res => {
	            _this.checklist = res.data
	            if (JSON.stringify(_this.checklist) == '{}'){
		            _this.expandKeys.shift()
		            _this.expandKeys.push(row.id)
		            altert("信息为空")
	            }else{
		            row["vendor"] = _this.checklist["vendor"]
		            _this.expandKeys.shift()
		            _this.expandKeys.push(row.id)
	            }
	            })
	            .catch(function (error){
	            	console.log(error);
	            });
	            if (expandRows.length >1){
	            	expandRows.shift()
	            }
	        }
    	}
  }
</script>

以上是关于vue中expand-change使用的主要内容,如果未能解决你的问题,请参考以下文章

vue —— VSCode代码片段

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段(vue主模板)

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置