sidebarAjax.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. mgJsComponentHandler.addDefaultComponent('mg-ajax-sidebar', {
  2. template : '#t-mg-ajax-sidebar',
  3. props: [
  4. 'component_id',
  5. 'component_namespace',
  6. 'component_index'
  7. ],
  8. data : function() {
  9. return {
  10. items: [],
  11. event: null,
  12. sidebarLoading: true
  13. };
  14. },
  15. created: function () {
  16. var self = this;
  17. self.$nextTick(function() {
  18. self.loadAjaxData();
  19. });
  20. },
  21. methods: {
  22. runClickAction: function($event, actionData) {
  23. var self = this;
  24. self.event = $event;
  25. if (typeof mgPageControler.vueLoader[actionData.action] === 'function') {
  26. mgPageControler.vueLoader[actionData.action](
  27. self.parseParam(actionData.params[0]),
  28. self.parseParam(actionData.params[1]),
  29. self.parseParam(actionData.params[2]),
  30. self.parseParam(actionData.params[3]),
  31. self.parseParam(actionData.params[4])
  32. );
  33. } else if (typeof window[actionData.action] === 'function') {
  34. window[actionData.action](
  35. self.parseParam(actionData.params[0]),
  36. self.parseParam(actionData.params[1]),
  37. self.parseParam(actionData.params[2]),
  38. self.parseParam(actionData.params[3]),
  39. self.parseParam(actionData.params[4])
  40. );
  41. } else {
  42. console.log('Action Failed');
  43. }
  44. },
  45. parseParam: function(param) {
  46. var self = this;
  47. if (param === '$event') {
  48. return self.event;
  49. }
  50. return param;
  51. },
  52. loadAjaxData: function() {
  53. var self = this;
  54. self.loading_state = true;
  55. var requestParams = {
  56. loadData: self.component_id,
  57. namespace: self.component_namespace,
  58. index: self.component_index
  59. };
  60. var response = mgPageControler.vueLoader.vloadData(requestParams);
  61. return response.done(function(data){
  62. self.items = data.data.rawData;
  63. self.sidebarLoading = false;
  64. }).fail(function(){
  65. self.sidebarLoading = false;
  66. });
  67. }
  68. }
  69. });