Clue.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const _Http = getApp().globalData.http;
  2. Component({
  3. options: {
  4. addGlobalClass: true,
  5. },
  6. properties: {
  7. update: {
  8. type: Function
  9. }
  10. },
  11. lifetimes: {
  12. attached: function () {
  13. getApp().globalData.Language.getLanguagePackage(this)
  14. this.triggerEvent('update', "Clue")
  15. }
  16. },
  17. data: {
  18. tabsList: [{
  19. label: "数据概况",
  20. model: "#DataOverview"
  21. }, {
  22. label: "近12月线索新增分析",
  23. model: "#NewAnalysisAdded"
  24. }, {
  25. label: "近12月线索跟进分析",
  26. model: "#followUpAnalysis"
  27. }, {
  28. label: "近12月线索转化分析",
  29. model: "#AnalysisOfLeadConversion"
  30. }],
  31. tabsActive: 0,
  32. init: false
  33. },
  34. methods: {
  35. getList() {
  36. this.partialRenewal()
  37. this.data.init = true;
  38. },
  39. tabsChange({
  40. detail
  41. }) {
  42. this.setData({
  43. tabsActive: detail
  44. });
  45. this.partialRenewal();
  46. },
  47. //局部数据更新 tabs
  48. partialRenewal() {
  49. try {
  50. const model = this.data.tabsList[this.data.tabsActive].model;
  51. if (model) {
  52. const Component = this.selectComponent(model);
  53. Component.getList(true);
  54. }
  55. this.data.model = model;
  56. } catch (error) {
  57. setTimeout(() => {
  58. this.partialRenewal();
  59. }, 100)
  60. }
  61. },
  62. getContent() {
  63. const model = this.data.tabsList[this.data.tabsActive].model;
  64. if (model) return this.selectComponent(model).data.content
  65. }
  66. }
  67. })