一. 准备步骤
1.在主组件页面 加入slot-scop标签
<template>
<el-table
<el-table-column prop="" show-overflow-tooltip label="">
1 <template slot-scope="scope">
<el-link
type="primary"
:underline="false"
@click="numberDetail(scope.row.id)"
>
{{scope.row.hasRank}}
</el-link>
</template>
</el-table-column>
</el-table>
<SystemNumberTable ref="SystemNumberTable"></SystemNumberTable>
</template>
2.写对应的方法调用子组件
<script>
import SystemNumberTable from "./SystemNumberTable";
export default {
components: {
SystemNumberTable
},
methods:{
numberDetail(id){
this.$refs.SystemNumberTable.refreshList(id);
},
}
}
</script>
3.在对应的组件写出你想要的弹窗表格
<template>
<div>
<el-dialog
title=""
:close-on-click-modal="false"
v-dialogDrag
:visible.sync="visible"
@close="handleClose"
>
<el-table
:data="dataList"
size="medium"
v-loading="loading"
class="table"
>
<el-table-column show-overflow-tooltip label="">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="downloadEvt(scope.row.certInfo)"
>附件
</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
data() {
return {
dataList: [],
};
},
refreshList(id) {
this.loading = true;
this.visible = true;
this.id=id;
this.$http({
url: ''
method: "get",
}).then(({ data }) => {
let certInfo = data.levelProtectManager.certInfo
let certRegistration = data.levelProtectManager.certRegistration
let gradingReport = data.levelProtectManager.gradingReport
let evalReport = data.levelProtectManager.evalReport
this.dataList.push({
certInfo,
certRegistration,
gradingReport,
evalReport
});
this.loading = false;
});
},
handleClose(){
this.dataList = []
},
downloadEvt(url) {
window.open(url, "_self");
},
}
}
</script>