按钮信息及其点击事件是从后台传值过来的
例如:
{
Name: "按钮1",
BtnId: "But1",
BtnScript: "console.log('按钮1')",
},
实现步骤:
1.接收后台返回的按钮信息
getBtns() {
//发送请求,这里省略,直接拿到按钮信息
let data=[
{
Name: "按钮1",
BtnId: "But1",
BtnScript: "console.log('按钮1')",
},
{
Name: "按钮2",
BtnId: "But2",
BtnScript: "console.log('按钮2')",
},
];
this.btnsArr=data;
}
2.动态生成按钮
<el-button
type="primary"
v-for="(item, index) in btnsArr"
:key="index"
@click="runBtnEvent(item)"
>{{ item.Name }}
</el-button>
3.实现点击事件
runBtnEvent(btn) {
eval(btn.BtnScript);
},
只需要使用eval执行按钮对应的语句即可。