A页面

<template>
    <div class="member-main">
        <el-form class="member-form" ref="form" :model="params" label-width="80px">
            <el-row>
                <el-form-item label="用户名" prop="name">
                    <el-input v-model="params.name" placeholder="请输入用户名" size="30"></el-input>
                </el-form-item>
                <el-form-item label="时间" prop="date">
                     <el-date-picker v-model="params.date" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd"></el-date-picker>
                </el-form-item>
            </el-row>
            <div class="el-form-button">
                <el-button type="primary" @click="toPage('lo')">查询</el-button>
                <el-button type="primary" @click="toPage('l')">重置</el-button>
            </div>
        </el-form>
        <!-- 此处引入组件 -->
        <app-table ref="apptable"></app-table>
    </div>
</template>
<script>
import AppTable from '@/components/AppTable';
export default {
    components:{
        AppTable
    },
    data(){
        return {
            params:{
                name:'',
                date:'',
            }
        }
    },
    methods: {
        toPage(dir){
            if(dir==="lo"){
                // 调用组件的方法 selectMember 并传值
                this.$refs.apptable.selectMember(this.params)
            }else{

            }
        }
    }
}
</script>

B组件

<template>
    <div class="app-table-main">
      <el-table :data="tableData" class="data_table" id="data_table">
      <el-table-column prop="id" label="编号" width="180"></el-table-column>
      <el-table-column prop="name" label="姓名" width="180"></el-table-column>
      <el-table-column prop="state" label="状态"></el-table-column>
      <el-table-column prop="date" label="录入时间"></el-table-column>
      <el-table-column label="操作">
          <el-button type="primary" @click="updateMember()">修改</el-button>
          <el-button type="warning" @click="deleteMember()">删除</el-button>
      </el-table-column>
    </el-table>
  </div>
</template>
<script type="text/ecmascript-6">
import {selectMember }from '@/api/member'

const member = {
  data(){
    return {
      tableData:[{
          id: '2016001',
          name: '小明',
          state: '这是第一条数据'
        }]
    }
  },
  methods:{
    selectMember(dir){
      selectMember(dir).then(response =>{
        //用this即可修改
        this.tableData = response.data.contentList
      })
    }
  }
}
export default member
</script>

说一下遇到的坑:

1.A页面要引入B组件并给B组件一个ref ==>   <app-table ref="apptable"></app-table>

2.A方法中调用 this.$refs.apptable.selectMember 其中 apptable时1步骤设置的 selectMember是B组件的方法

3.在B方法中可以直接使用this设置data

Logo

前往低代码交流专区

更多推荐