show_widget_list.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import { _decorator, Component, instantiate, Node, Prefab } from 'cc';
  2. import { Attributes } from './Attributes';
  3. import { widget_item } from './widget_item';
  4. import { widget_item_data } from '../../data/data';
  5. import { ClientEvent } from '../clientEvent';
  6. import { config } from '../config';
  7. import { tools } from '../tools';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('show_widget_list')
  10. export class show_widget_list extends Component {
  11. @property(Node) content:Node = null;
  12. @property(Node) btn_close:Node = null;
  13. @property(Prefab) item_prefab:Prefab = null;
  14. private call_back = null;
  15. @property(Node) btn_show_all:Node =null;
  16. @property(Node) btn_hide_all:Node = null;
  17. public show(list){
  18. for (let index = 0; index < list.length; index++) {
  19. const element = list[index];
  20. let item = instantiate(this.item_prefab)
  21. item.parent = this.content;
  22. let item_component = item.getComponent(widget_item)
  23. item_component.initHideDragOtherList()
  24. item_component.hideContainerChilden()
  25. item_component.initView(element,this.onItemClick.bind(this),null)
  26. item_component.showButtonDelete(true,this.onItemDeleteClick.bind(this))
  27. }
  28. this.btn_close.on(Node.EventType.TOUCH_END,()=>{
  29. this.close()
  30. })
  31. this.btn_show_all.on(Node.EventType.TOUCH_END,()=>{
  32. this.onShowAll()
  33. })
  34. this.btn_hide_all.on(Node.EventType.TOUCH_END,()=>{
  35. this.onHideAll()
  36. })
  37. }
  38. onShowAll(){
  39. for (let index = 0; index < this.content.children.length; index++) {
  40. const item = this.content.children[index];
  41. if(item.getComponent(widget_item).getShowWidgetData()!=null){
  42. let type = item.getComponent(widget_item).getShowWidgetData().type;
  43. if(type!=config.Widget_Type_List.TEXT_SOUND){
  44. item.getComponent(widget_item).setSelectStatus()
  45. }
  46. }
  47. }
  48. }
  49. onHideAll(){
  50. for (let index = 0; index < this.content.children.length; index++) {
  51. const item = this.content.children[index];
  52. if(item.getComponent(widget_item).getShowWidgetData()!=null){
  53. let type = item.getComponent(widget_item).getShowWidgetData().type;
  54. if(type!=config.Widget_Type_List.TEXT_SOUND){
  55. item.getComponent(widget_item).setUnSelectStatus()
  56. }
  57. }
  58. }
  59. }
  60. onItemClick(data:widget_item_data){
  61. ClientEvent.dispatchEvent(config.Event.UpdateAttributesToView,data.att,config.attributes_list_type.active)
  62. }
  63. onItemDeleteClick(item:widget_item) {
  64. let data = item.getData()
  65. tools.show_dialog('是否删除当前控件',()=>{
  66. item.node.removeFromParent()
  67. ClientEvent.dispatchEvent(config.Event.UpdateAttributesToView,data.att,config.attributes_list_type.delete)
  68. })
  69. }
  70. close(){
  71. this.node.destroy()
  72. }
  73. }