
<div class="purchase-course">
<el-checkbox v-model="allChecked" @change="handleSelectAllClassfiy">全选</el-checkbox>
</div>
<div class="intent-course-wrapper">
<div class="class-category" v-for="(firItem, firIndex) in tabledata" :key="firIndex">
<div class="intent-course-header">
<el-checkbox v-model="firItem.mychecked" @change="firstChanged(firIndex)"></el-checkbox>
<el-tabs v-model="activeName" tab-position="left" @tab-click="handleClick">
<el-tab-pane :label="firItem.typeName" :name="firItem.typeName">
<div class="class-details" v-for="(subItem, subIndex) in firItem.dataK" :key="subIndex">
<el-checkbox v-model="subItem.mychecked" @change="secondChanged(firIndex)"></el-checkbox>
<div class="sub-details">
<p class="course-name">{{ subItem.name }}</p>
</div>
</div>
</el-tab-pane>
</el-tabs>
</div>
</div>
</div>
computed:{
allChecked: {
get () {
let count = 0;
for (let i = 0; i < this.tabledata.length; i += 1) {
if (this.tabledata[i].mychecked === true) {
count += 1;
} else {
count -= 1;
}
}
if (count === this.tabledata.length) {
return true;
}
return false;
},
set (val) {
return val;
}
}
},
methods:{
handleClick(tab, event) {
},
firstChanged(index) {
const { dataK } = this.tabledata[index];
if (this.tabledata[index].mychecked === false) {
dataK.forEach((item) => {
this.$set(item, 'mychecked', false);
});
} else {
dataK.forEach((item) => {
this.$set(item, 'mychecked', true);
});
}
},
secondChanged(index) {
const subData = this.tabledata[index].dataK;
let tickCount = 0;
const len = subData.length;
for (let i = 0; i < len; i += 1) {
if (subData[i].mychecked === true) {
tickCount += 1;
} else {
tickCount -= 1;
}
}
if (tickCount === len) {
this.$set(this.tabledata[index], 'mychecked', true);
} else {
this.$set(this.tabledata[index], 'mychecked', false);
}
},
handleSelectAllClassfiy(val) {
if (val) {
for (let i = 0; i < this.tabledata.length; i += 1) {
this.tabledata[i].mychecked = true;
this.firstChanged(i);
}
} else {
for (let i = 0; i < this.tabledata.length; i += 1) {
this.tabledata[i].mychecked = false;
this.firstChanged(i);
}
}
},
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类