Commit f256c122 authored by liujiangnan's avatar liujiangnan

feat: 全选

parent 2f4c3ded
......@@ -2155,7 +2155,7 @@
"__id__": 48
}
],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 51
......@@ -2486,7 +2486,7 @@
"__id__": 56
}
],
"_active": true,
"_active": false,
"_components": [
{
"__id__": 59
......
......@@ -134,6 +134,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
itemsContent.removeAllChildren();
templateItem.active = true;
let checkAllActive = false;
for (let i = 0; i < rows.length; i++) {
const row = rows[i];
const itemClone = cc.instantiate(templateItem);
......@@ -143,14 +144,13 @@ export default class SceneComponent extends MyCocosSceneComponent {
cc.find(`syllabus_item/label_disable`, itemClone).active = false;
cc.find(`syllabus_item/label`, itemClone).getComponent(cc.Label).string = row.text_en;
cc.find(`syllabus_item/label_disable`, itemClone).getComponent(cc.Label).string = row.text_en;
if (row.has_child) {
cc.find(`Canvas/mainpage/toolbar/check_all`).active = false;
} else {
cc.find(`Canvas/mainpage/toolbar/check_all`).active = true;
if (!row.has_child) {
checkAllActive = true;
}
itemClone.attr({treeNodeId: row.id, treeNodePid: row.pid, hasChild: row.has_child});
}
cc.find(`Canvas/mainpage/toolbar/check_all`).active = checkAllActive;
templateItem.active = false;
setTimeout(() => {
......@@ -159,15 +159,30 @@ export default class SceneComponent extends MyCocosSceneComponent {
}
checkAll() {
checkAll(evt: cc.Event) {
// 全选按钮
const txt = cc.find(`text`, evt.currentTarget).getComponent(cc.Label).string;
const node = cc.find(`Canvas/mainpage/view/content`);
for (let i = 0; i < node.children.length; i++) {
const nd = node.children[i];
const sure = cc.find(`syllabus_item/sure`, nd);
nd.attr({itemChecked: true});
sure.active = true;
cc.find(`syllabus_item/label_disable`, nd).active = true;
if (txt === '全选') {
for (let i = 0; i < node.children.length; i++) {
const nd = node.children[i];
const sure = cc.find(`syllabus_item/sure`, nd);
nd.attr({itemChecked: true});
sure.active = true;
cc.find(`syllabus_item/label_disable`, nd).active = true;
}
cc.find(`Canvas/mainpage/toolbar/choice_full`).active = true;
cc.find(`Canvas/mainpage/toolbar/check_all/text`).getComponent(cc.Label).string = `全不选`;
} else {
for (let i = 0; i < node.children.length; i++) {
const nd = node.children[i];
const sure = cc.find(`syllabus_item/sure`, nd);
nd.attr({itemChecked: false});
sure.active = false;
cc.find(`syllabus_item/label_disable`, nd).active = false;
}
cc.find(`Canvas/mainpage/toolbar/choice_full`).active = false;
cc.find(`Canvas/mainpage/toolbar/check_all/text`).getComponent(cc.Label).string = `全选`;
}
}
......@@ -175,11 +190,27 @@ export default class SceneComponent extends MyCocosSceneComponent {
async loadTreeNode(evt: cc.Event) {
const node = evt.currentTarget;
if (!node.hasChild) {
cc.find(`Canvas/mainpage/toolbar/check_all`).active = true;
// 单个单词
const sure = cc.find(`syllabus_item/sure`, node);
sure.active = !sure.active;
cc.find(`syllabus_item/label_disable`, node).active = sure.active;
node.attr({itemChecked: sure.active});
const arr = cc.find(`Canvas/mainpage/view/content`).children;
let sureBtnActive = false;
let checkAllText = `全不选`;
for (let i = 0; i < arr.length; i++) {
const nd = arr[i];
if (nd["itemChecked"]) {
sureBtnActive = true;
} else {
checkAllText = `全选`;
}
}
cc.find(`Canvas/mainpage/toolbar/choice_full`).active = sureBtnActive;
cc.find(`Canvas/mainpage/toolbar/check_all/text`).getComponent(cc.Label).string = checkAllText;
return;
}
if (!this.canTouch) {
......@@ -200,7 +231,8 @@ export default class SceneComponent extends MyCocosSceneComponent {
return;
}
this.canTouch = false;
cc.find(`Canvas/mainpage/toolbar/choice_full`).active = false;
cc.find(`Canvas/mainpage/toolbar/check_all`).active = false;
const node = this.nodePath.pop();
if (node && node.treeNodePid) {
this.pid = node.treeNodePid;
......@@ -219,7 +251,8 @@ export default class SceneComponent extends MyCocosSceneComponent {
return;
}
this.canTouch = false;
cc.find(`Canvas/mainpage/toolbar/choice_full`).active = false;
cc.find(`Canvas/mainpage/toolbar/check_all`).active = false;
this.pid = null;
this.nodePath = [];
await this.loadData();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment