event_show_question_select.ts 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { _decorator, Component, instantiate, Label, Node, Prefab } from 'cc';
  2. import { ClientEvent } from '../../clientEvent';
  3. import { attributes_data, event_item_show_question_select, event_item_show_question_select_item, widget_item_data } from '../../../data/data';
  4. import { Attributes } from '../Attributes';
  5. import { tools } from '../../tools';
  6. import { config } from '../../config';
  7. import { show_question_select_item } from './show_question_select_item';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('event_show_question_select')
  10. export class event_show_question_select extends Component {
  11. @property(Node) content:Node = null;
  12. @property(Node) btn_select_widget:Node = null;
  13. @property(Node) lab_select_widget:Node = null;
  14. @property(Prefab) prefab_item:Prefab = null;
  15. private cur_widget_item_data:widget_item_data = null;
  16. private m_data:event_item_show_question_select = null;
  17. public initView(data:event_item_show_question_select){
  18. this.m_data = data;
  19. this.btn_select_widget.on(Node.EventType.TOUCH_END,()=>{
  20. let list = Attributes.Singleton.get_cur_scene_widget_by_type(config.Widget_Type_List.QUESTION_SELECT)
  21. if(list.length<=0){
  22. return tools.showToast("当前场景没有问题选择页面!")
  23. }
  24. tools.show_select_widget_list(list,(item:widget_item_data)=>{
  25. this.m_data.binding_widget_id = item.att.id;
  26. this.cur_widget_item_data = item;
  27. this.updateStatus()
  28. },this.m_data.binding_widget_id)
  29. })
  30. this.updateStatus()
  31. ClientEvent.on(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
  32. }
  33. protected onDestroy(): void {
  34. ClientEvent.off(config.Event.UpdateAttributesToView,this.UpdateAttributesToView,this)
  35. }
  36. UpdateAttributesToView(data:attributes_data,update_type:string){
  37. if(this.m_data.binding_widget_id===data.id){
  38. if(update_type===config.attributes_list_type.delete){
  39. this.m_data.binding_widget_id = -1;
  40. }else if(update_type===config.attributes_list_type.question_select){
  41. this.cur_widget_item_data = Attributes.Singleton.get_cur_scene_widget_by_id(this.m_data.binding_widget_id);
  42. this.updateStatus()
  43. }
  44. }
  45. }
  46. updateStatus(){
  47. if(this.m_data.binding_widget_id===-1){
  48. this.content.active = false;
  49. this.lab_select_widget.getComponent(Label).string = "选择问题选择控件"
  50. }else{
  51. this.content.active = true;
  52. this.lab_select_widget.getComponent(Label).string = "选择问题选择控件id:"+this.m_data.binding_widget_id;
  53. if(this.cur_widget_item_data==null){
  54. this.cur_widget_item_data = Attributes.Singleton.get_cur_scene_widget_by_id(this.m_data.binding_widget_id);
  55. }
  56. this.initListView()
  57. }
  58. }
  59. initListView(){
  60. this.content.removeAllChildren()
  61. let list = this.cur_widget_item_data.att.question_select.btn_question_list;
  62. for (let index = 0; index < list.length; index++) {
  63. const element = list[index];
  64. let item = instantiate(this.prefab_item)
  65. item.parent = this.content;
  66. let _event_item_show_question_select_item:event_item_show_question_select_item = null;
  67. if( this.m_data.question_list[index]==null||this.m_data.question_list[index]==undefined){
  68. _event_item_show_question_select_item = new event_item_show_question_select_item()
  69. _event_item_show_question_select_item.binding_event_id = -1;
  70. _event_item_show_question_select_item.isRight = false;
  71. this.m_data.question_list.push(_event_item_show_question_select_item)
  72. }else{
  73. _event_item_show_question_select_item = this.m_data.question_list[index]
  74. }
  75. item.getComponent(show_question_select_item).initView(element,_event_item_show_question_select_item)
  76. }
  77. }
  78. }