vue子组件向父组件传值
子组件向父组件传值
描述需求
子组件点确定按钮的时候需要带一个对象到父组件页面
子组件代码
<template>
<div class="add_channels">
<el-dialog title="选择渠道" :visible.sync="visible" @close="$emit('update:show', false)">
<div>
<el-table :data="dataSource" @selection-change="selectionChange">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column property="name" label="渠道名称" align="center"></el-table-column>
</el-table>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="visible=false">取 消</el-button>
<el-button type="primary" @click="setChannel()">添加</el-button>//这里是子组件添加的方法
</div>
</el-dialog>
</div>
</template>
<script>
import ApiSetting from "@/api"
export default {
props: {
show: {
type: Boolean,
default: false
}
},
data() {
return {
showArray:[],//定义一个数组
dynamicTags1: [],
currentPage4: 4,
}
},
methods: {
selectionChange(val) { //代理人选中的列表
var dynamicTags1 = [];
var arr = []
for(var i = 0; i < val.length; i++) {
var item = {};//定义一个空对象
item['id'] = val[i].id;//对象里添加属性
item['name'] = val[i].name;//对象里添加属性
dynamicTags1.push(item);//将对象追加到数组里。。。。
this.showArray = dynamicTags1;
}
},
setChannel() {
this.visible = false;
this.$emit('transferChannel',this.showArray)//子组件通知父组件更新。前面的是:父组件调用子组件的方法名,后面的是:要传过去的对象
},
}
}
</script>
父组件代码
<template>
<div class="task_list">
<!--选择渠道-->
<choose-channel :show.sync="dialogChannelVisible" @transferChannel="getChannel"></choose-channel>//这里是调用子组件的地方
</div>
</template>
<script>
import ApiSetting from "@/api"
import chooseChannel from '../common/choose_channel.vue'
export default {
components: {
addPerson,
chooseChannel
},
data() {
return {
loading: true,
dynamicTags: [], //代理人的选择器
dynamicTag: [], //渠道的选择器
taskName: '', //任务名称
userList: [],
}
},
created() {
let param = {
bone: '任务晋升管理',
btwo: '任务管理',
btwoUrl: '/task_promote/task',
}
this.$store.dispatch('switchBreadcrumb', param)
this.getList();
this.gettasktemplateList();
},
methods: {
getChannel(msg) {//////////////////父组件拿值的地方
this.dynamicTag = msg;
},
distribution() { //立即分配的提交
var agentArray = this.dynamicTags;
var channelArray = this.dynamicTag;
//整合渠道代理人的数组对象
var arr = [];
for(var i = 0; i < agentArray.length; i++) {
var item = {};
item['userId'] = agentArray[i].id;
item['userType'] = 2;
arr.push(item);
}
for(var i = 0; i < channelArray.length; i++) {
var item = {};
item['userId'] = channelArray[i].id;
item['userType'] = 1;
arr.push(item);
}
this.userList = arr;
let params = {
"taskTemplateId": this.form.taskTemplateId,
"cycleType": this.form.cycleType,
"name": this.taskName,
"startTime": this.daterange[0],
"endTime": this.daterange[1],
"userList": this.userList
}
this.$http(ApiSetting.tasklist_dispatch, params)
.then((res) => {
if(res.data.code == 200) {
this.dialogTaskVisible = false;
this.getList();
}
}).catch(err => {})
},
taskResult: function(id) {
this.$router.push({
path: '/task_promote/result', //路由跳转传参
query: {
id: id
}
})
}
}
}
</script>
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
· 《HelloGitHub》第 108 期
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单