event_hide.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { _decorator, Component, instantiate, Label, Node, Prefab } from 'cc';
  2. import { attributes_data, event_item_hide, event_widget_more_event_item, widget_item_data } from '../../../data/data';
  3. import { tools } from '../../tools';
  4. import { Attributes } from '../Attributes';
  5. import { ClientEvent } from '../../clientEvent';
  6. import { config } from '../../config';
  7. import { edit_event_more_item } from './edit_event_more_item';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('event_hide')
  10. export class event_hide extends Component {
  11. private m_data:event_item_hide = null;
  12. @property(Node) btn_select_widget:Node = null;
  13. @property(Node) lab_select_widget:Node = null;
  14. @property(Node) btn_more:Node = null;
  15. @property(Node) content:Node = null;
  16. @property(Prefab) item_more_prefab:Prefab = null;
  17. protected start(): void {
  18. this.btn_more.on(Node.EventType.TOUCH_END, ()=> {
  19. this.onClickMoreBtn()
  20. },this)
  21. }
  22. public initView(data:event_item_hide){
  23. this.m_data = data;
  24. this.btn_select_widget.on(Node.EventType.TOUCH_END,()=>{
  25. let list = Attributes.Singleton.get_cur_scene_all_only_widget()
  26. if(list.length<=0){
  27. return tools.showToast("当前场景没有添加控件!")
  28. }
  29. tools.show_select_widget_list(list,(item:widget_item_data)=>{
  30. this.m_data.binding_widget_id = item.att.id;
  31. this.updateStatus()
  32. },this.m_data.binding_widget_id)
  33. })
  34. this.updateStatus()
  35. this.updateMoreListStatus()
  36. ClientEvent.on(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
  37. }
  38. protected onDestroy(): void {
  39. ClientEvent.off(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
  40. }
  41. UpdateAttributesToView(data:attributes_data,update_type:string){
  42. if(this.m_data.binding_widget_id===data.id&&update_type===config.attributes_list_type.delete){
  43. this.m_data.binding_widget_id = -1;
  44. this.updateStatus()
  45. }
  46. }
  47. updateStatus(){
  48. if(this.m_data.binding_widget_id===-1){
  49. this.lab_select_widget.getComponent(Label).string = "选择要隐藏的控件"
  50. }else{
  51. this.lab_select_widget.getComponent(Label).string = "隐藏的控件id:"+this.m_data.binding_widget_id;
  52. }
  53. }
  54. onClickMoreBtn() {
  55. let list = Attributes.Singleton.get_cur_scene_all_only_widget()
  56. if(list.length<=0){
  57. return tools.showToast("当前场景没有添控件!")
  58. }
  59. tools.show_select_widget_list(list,(item:widget_item_data)=>{
  60. if(item.att.id == this.m_data.binding_widget_id) {
  61. return
  62. }
  63. var have_index:number = -1
  64. for(let i=0; i<this.m_data.binding_widget_list.length; i++) {
  65. const element = this.m_data.binding_widget_list[i]
  66. if(element.binding_widget_id == item.att.id) {
  67. have_index = i
  68. break
  69. }
  70. }
  71. if(have_index!=-1) {
  72. this.m_data.binding_widget_list.splice(have_index,1)
  73. }
  74. let more_item = new event_widget_more_event_item
  75. more_item.binding_widget_id = item.att.id
  76. more_item.binding_widget_remark = item.att.remark
  77. this.m_data.binding_widget_list.push(more_item)
  78. this.updateMoreListStatus()
  79. },this.m_data.binding_widget_id)
  80. }
  81. updateMoreListStatus() {
  82. if(this.m_data.binding_widget_list==undefined) {
  83. this.m_data.binding_widget_list = []
  84. }
  85. this.content.removeAllChildren()
  86. for(let index = 0; index < this.m_data.binding_widget_list.length; index ++) {
  87. const element = this.m_data.binding_widget_list[index]
  88. let item = instantiate(this.item_more_prefab);
  89. item.parent = this.content;
  90. item.getComponent(edit_event_more_item).initView(element, ()=>{
  91. this.m_data.binding_widget_list.splice(index,1)
  92. this.updateMoreListStatus()
  93. })
  94. }
  95. }
  96. }