import { _decorator, Component, instantiate, Node, Prefab } from 'cc'; import { event_item } from '../../../data/data'; import { select_collect_event_item } from './select_collect_event_item'; const { ccclass, property } = _decorator; @ccclass('select_collect_event') export class select_collect_event extends Component { @property(Node) content:Node = null; @property(Node) btn_close:Node = null; @property(Prefab) item_prefab:Prefab = null; @property(Node) btn_sure:Node = null; private call_back = null; public show(list:event_item[],call,cur_event_id:number,event_list_id:number[]){ this.call_back = call; for (let index = 0; index < list.length; index++) { const element = list[index]; let isHave = false; for (let i = 0; i < event_list_id.length; i++) { const id = event_list_id[i]; if(id==element.event_id){ isHave = true; break; } } if(element.event_id!=cur_event_id){ let item = instantiate(this.item_prefab) item.parent = this.content; item.getComponent(select_collect_event_item).initView(element,isHave) } } this.btn_close.on(Node.EventType.TOUCH_END,()=>{ this.close() }) this.btn_sure.on(Node.EventType.TOUCH_END,()=>{ if(this.call_back!=null){ this.call_back(this.getSelectList()) } this.close(); }) } public getSelectList():number[]{ let temp = [] for (let index = 0; index < this.content.children.length; index++) { const element = this.content.children[index]; if( element.getComponent(select_collect_event_item).getIsSelect()){ temp.push(element.getComponent(select_collect_event_item).getData().event_id) } } return temp; } close(){ this.node.destroy() } }