<template>
<div id="we">
<ul>
<li v-for="i in labels" :key="i.labelNameId">
<CheckboxGroup v-model="disabledGroup" @on-change="change">
<Checkbox
v-for="item in i.labelValves"
:label="i.labelNameId + ':' + item.labelId"
:key="item.labelId"
>{{item.labelValue}}</Checkbox>
</CheckboxGroup>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
disabledGroup: [],
selectLabels: [],
selectLabelsInfo: [],
labels: [
{
labelName: "配置一",
labelNameId: 1,
labelValves: [
{ labelId: 101, labelValue: "一一" },
{ labelId: 102, labelValue: "一二" }
]
},
{
labelName: "配置二",
labelNameId: 2,
labelValves: [
{ labelId: 201, labelValue: "二一" },
{ labelId: 202, labelValue: "二二" }
]
},
{
labelName: "配置三",
labelNameId: 3,
labelValves: [{ labelId: 301, labelValue: "三一" }]
}
]
};
},
methods: {
change(data) {
let obj = {};
this.selectLabels = [];
this.disabledGroup = data;
data.map(label => {
this.labels.forEach(i => {
let valArr = [];
if (label.split(":")[0] === i.labelNameId + "") {
i.labelValves.forEach(l => {
if (label.split(":")[1] === l.labelId + "") {
valArr.push(l);
}
});
obj = {
labelName: i.labelName,
labelNameId: i.labelNameId,
labelValves: valArr
};
this.selectLabels.push(obj);
}
});
});
let temp = {};
let newArry = [];
this.selectLabels.map(i => {
var key = i.labelNameId;
if (temp[key]) {
let arr = temp[key].labelValves.concat(i.labelValves);
temp[key].labelValves = arr;
temp[key].labelNameId = i.labelNameId;
temp[key].labelName = i.labelName;
} else {
temp[key] = {};
temp[key].labelValves = i.labelValves;
temp[key].labelNameId = i.labelNameId;
temp[key].labelName = i.labelName;
}
});
for (var k in temp) {
newArry.push(temp[k]);
}
this.selectLabelsInfo = newArry.slice(0, newArry.length);
}
}
};
</script>
过滤
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1全局过滤器 Vue.filter有两个参数一个是过滤器名字一个是过滤器处理函数,函数中第一个参数是默认要过滤的数...