dropdawnButtonWrapper.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. mgJsComponentHandler.addDefaultComponent('mg-dropdawn-btn-wrapper', {
  2. template : '#t-mg-dropdawn-btn-wrapper',
  3. props: [
  4. 'component_id',
  5. 'component_namespace',
  6. 'component_index'
  7. ],
  8. data : function() {
  9. return {
  10. dropOpen: false
  11. };
  12. },
  13. created: function () {
  14. },
  15. methods: {
  16. toogleDropdawn: function(event) {
  17. var self = this;
  18. self.dropOpen = !self.dropOpen;
  19. },
  20. hideDrop :function(event){
  21. var self = this;
  22. self.dropOpen = false;
  23. self.$nextTick(function() {
  24. var clickedEl = document.elementFromPoint(event.clientX, event.clientY);
  25. if (!$(clickedEl).hasClass('mg-drop-target-btn') && $(clickedEl).parents('.mg-drop-target-btn').length === 0) {
  26. $(clickedEl).click();
  27. }
  28. });
  29. },
  30. notHideDrop: function(event){
  31. event.preventDefault();
  32. event.stopPropagation();
  33. var self = this;
  34. self.dropOpen = true;
  35. },
  36. loadModal: function(event, targetId, namespace, index){
  37. mgPageControler.vueLoader.loadModal(event, targetId,
  38. typeof namespace !== 'undefined' ? namespace : getItemNamespace(targetId),
  39. typeof index !== 'undefined' ? index : getItemIndex(targetId));
  40. },
  41. makeCustomAction : function(functionName, params, event, namespace, index) {
  42. mgPageControler.vueLoader.makeCustomAction(functionName, params, event, namespace, index);
  43. },
  44. redirect : function (event, params, targetBlank) {
  45. mgPageControler.vueLoader.redirect(event, params, targetBlank);
  46. }
  47. }
  48. });