edit_event_view.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. btn = instantiate(this.type_btn)
  29. btn.parent = this.type_content
  30. btn.getComponent(edit_event_view_select_btn).initView(-2,"搜索",this.onTypeItemClick.bind(this))
  31. config.event_type_map.forEach((v,k)=>{
  32. let item = instantiate(this.type_btn)
  33. item.parent = this.type_content
  34. item.getComponent(edit_event_view_select_btn).initView(k,v,this.onTypeItemClick.bind(this))
  35. })
  36. this.m_cur_select_type = -1;
  37. this.updateView()
  38. }
  39. allBtnUnSelect(){
  40. for (let index = 0; index < this.type_content.children.length; index++) {
  41. const element = this.type_content.children[index];
  42. element.getComponent(edit_event_view_select_btn).unselectStatus()
  43. }
  44. }
  45. onTypeItemClick(item:edit_event_view_select_btn){
  46. this.allBtnUnSelect()
  47. item.selectStatus()
  48. if(this.m_cur_select_type!=item.getType()){
  49. this.m_cur_select_type = item.getType()
  50. this.updateView()
  51. }
  52. }
  53. updateView(){
  54. this.content.removeAllChildren()
  55. let list = this.getEventListByType()
  56. for (let index = 0; index < list.length; index++) {
  57. const element = list[index];
  58. let item = instantiate(this.event_item_prefab)
  59. item.parent = this.content;
  60. item.getComponent(event_item_view).initView(element.type,element,this.onDeleteItem.bind(this))
  61. }
  62. }
  63. public onDeleteItem(item:event_item){
  64. let task_data = main.Singleton.edit_scene_view.getTaskData()
  65. if(task_data!=null){
  66. for (let index = 0; index < task_data.event_list.length; index++) {
  67. const element = task_data.event_list[index];
  68. if(element.event_id===item.event_id){
  69. task_data.event_list.splice(index,1)
  70. this.updateView()
  71. ClientEvent.dispatchEvent(config.Event.UpdateEditScene)
  72. break;
  73. }
  74. }
  75. }
  76. }
  77. getEventListByType(){
  78. let list = Attributes.Singleton.getEventList()
  79. if(this.m_cur_select_type==-1){
  80. return list;
  81. }else if(this.m_cur_select_type==2){
  82. return []
  83. }else{
  84. let temp:event_item[] = []
  85. for (let index = 0; index < list.length; index++) {
  86. const element = list[index];
  87. if(element.type==this.m_cur_select_type){
  88. temp.push(element)
  89. }
  90. }
  91. return temp;
  92. }
  93. }
  94. }