edit_event_view.ts 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import { _decorator, Component, instantiate, Node, Prefab, Vec3 } from 'cc';
  2. import { config } from '../../config';
  3. import { edit_event_view_select_btn } from './edit_event_view_select_btn';
  4. import { Attributes } from '../Attributes';
  5. import { event_item } from '../../../data/data';
  6. import { event_item_view } from './event_item_view';
  7. import { control } from '../control';
  8. import { main } from '../../main';
  9. import { ClientEvent } from '../../clientEvent';
  10. const { ccclass, property } = _decorator;
  11. @ccclass('edit_event_view')
  12. export class edit_event_view extends Component {
  13. @property(Prefab) event_item_prefab:Prefab = null;
  14. @property(Node) btn_close:Node = null;
  15. @property(Node) content:Node = null;
  16. @property(Node) type_content:Node = null;
  17. @property(Node) type_btn:Node = null;
  18. private m_cur_select_type:number = -1;
  19. public show(){
  20. this.btn_close.on(Node.EventType.TOUCH_END,()=>{
  21. this.node.removeFromParent()
  22. })
  23. this.type_content.removeAllChildren()
  24. let btn = instantiate(this.type_btn)
  25. btn.getComponent(edit_event_view_select_btn).initView(-1,"全部",this.onTypeItemClick.bind(this))
  26. btn.getComponent(edit_event_view_select_btn).selectStatus()
  27. btn.parent = this.type_content
  28. config.event_type_map.forEach((v,k)=>{
  29. let item = instantiate(this.type_btn)
  30. item.parent = this.type_content
  31. item.getComponent(edit_event_view_select_btn).initView(k,v,this.onTypeItemClick.bind(this))
  32. })
  33. this.m_cur_select_type = -1;
  34. this.updateView()
  35. }
  36. allBtnUnSelect(){
  37. for (let index = 0; index < this.type_content.children.length; index++) {
  38. const element = this.type_content.children[index];
  39. element.getComponent(edit_event_view_select_btn).unselectStatus()
  40. }
  41. }
  42. onTypeItemClick(item:edit_event_view_select_btn){
  43. this.allBtnUnSelect()
  44. item.selectStatus()
  45. if(this.m_cur_select_type!=item.getType()){
  46. this.m_cur_select_type = item.getType()
  47. this.updateView()
  48. }
  49. }
  50. updateView(){
  51. this.content.removeAllChildren()
  52. let list = this.getEventListByType()
  53. for (let index = 0; index < list.length; index++) {
  54. const element = list[index];
  55. let item = instantiate(this.event_item_prefab)
  56. item.parent = this.content;
  57. item.getComponent(event_item_view).initView(element.type,element,this.onDeleteItem.bind(this))
  58. }
  59. }
  60. public onDeleteItem(item:event_item){
  61. let task_data = main.Singleton.edit_scene_view.getTaskData()
  62. if(task_data!=null){
  63. for (let index = 0; index < task_data.event_list.length; index++) {
  64. const element = task_data.event_list[index];
  65. if(element.event_id===item.event_id){
  66. task_data.event_list.splice(index,1)
  67. this.updateView()
  68. ClientEvent.dispatchEvent(config.Event.UpdateEditScene)
  69. break;
  70. }
  71. }
  72. }
  73. }
  74. getEventListByType(){
  75. let list = Attributes.Singleton.getEventList()
  76. if(this.m_cur_select_type==-1){
  77. return list;
  78. }else{
  79. let temp:event_item[] = []
  80. for (let index = 0; index < list.length; index++) {
  81. const element = list[index];
  82. if(element.type==this.m_cur_select_type){
  83. temp.push(element)
  84. }
  85. }
  86. return temp;
  87. }
  88. }
  89. }