Commit f256c122 authored by liujiangnan's avatar liujiangnan

feat: 全选

parent 2f4c3ded
...@@ -2155,7 +2155,7 @@ ...@@ -2155,7 +2155,7 @@
"__id__": 48 "__id__": 48
} }
], ],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 51 "__id__": 51
...@@ -2486,7 +2486,7 @@ ...@@ -2486,7 +2486,7 @@
"__id__": 56 "__id__": 56
} }
], ],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 59 "__id__": 59
......
...@@ -134,6 +134,7 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -134,6 +134,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
itemsContent.removeAllChildren(); itemsContent.removeAllChildren();
templateItem.active = true; templateItem.active = true;
let checkAllActive = false;
for (let i = 0; i < rows.length; i++) { for (let i = 0; i < rows.length; i++) {
const row = rows[i]; const row = rows[i];
const itemClone = cc.instantiate(templateItem); const itemClone = cc.instantiate(templateItem);
...@@ -143,14 +144,13 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -143,14 +144,13 @@ export default class SceneComponent extends MyCocosSceneComponent {
cc.find(`syllabus_item/label_disable`, itemClone).active = false; 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`, itemClone).getComponent(cc.Label).string = row.text_en;
cc.find(`syllabus_item/label_disable`, 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) { if (!row.has_child) {
cc.find(`Canvas/mainpage/toolbar/check_all`).active = false; checkAllActive = true;
} else {
cc.find(`Canvas/mainpage/toolbar/check_all`).active = true;
} }
itemClone.attr({treeNodeId: row.id, treeNodePid: row.pid, hasChild: row.has_child}); itemClone.attr({treeNodeId: row.id, treeNodePid: row.pid, hasChild: row.has_child});
} }
cc.find(`Canvas/mainpage/toolbar/check_all`).active = checkAllActive;
templateItem.active = false; templateItem.active = false;
setTimeout(() => { setTimeout(() => {
...@@ -159,9 +159,11 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -159,9 +159,11 @@ 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`); const node = cc.find(`Canvas/mainpage/view/content`);
if (txt === '全选') {
for (let i = 0; i < node.children.length; i++) { for (let i = 0; i < node.children.length; i++) {
const nd = node.children[i]; const nd = node.children[i];
const sure = cc.find(`syllabus_item/sure`, nd); const sure = cc.find(`syllabus_item/sure`, nd);
...@@ -169,17 +171,46 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -169,17 +171,46 @@ export default class SceneComponent extends MyCocosSceneComponent {
sure.active = true; sure.active = true;
cc.find(`syllabus_item/label_disable`, nd).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 = `全选`;
}
} }
canTouch = true; canTouch = true;
async loadTreeNode(evt: cc.Event) { async loadTreeNode(evt: cc.Event) {
const node = evt.currentTarget; const node = evt.currentTarget;
if (!node.hasChild) { if (!node.hasChild) {
cc.find(`Canvas/mainpage/toolbar/check_all`).active = true;
// 单个单词 // 单个单词
const sure = cc.find(`syllabus_item/sure`, node); const sure = cc.find(`syllabus_item/sure`, node);
sure.active = !sure.active; sure.active = !sure.active;
cc.find(`syllabus_item/label_disable`, node).active = sure.active; cc.find(`syllabus_item/label_disable`, node).active = sure.active;
node.attr({itemChecked: 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; return;
} }
if (!this.canTouch) { if (!this.canTouch) {
...@@ -200,7 +231,8 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -200,7 +231,8 @@ export default class SceneComponent extends MyCocosSceneComponent {
return; return;
} }
this.canTouch = false; 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(); const node = this.nodePath.pop();
if (node && node.treeNodePid) { if (node && node.treeNodePid) {
this.pid = node.treeNodePid; this.pid = node.treeNodePid;
...@@ -219,7 +251,8 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -219,7 +251,8 @@ export default class SceneComponent extends MyCocosSceneComponent {
return; return;
} }
this.canTouch = false; 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.pid = null;
this.nodePath = []; this.nodePath = [];
await this.loadData(); 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