Clue.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. label: "有效线索未跟进天数分析",
  32. model: "#YXXSWGJTSFX"
  33. }],
  34. tabsActive: 0,
  35. init: false
  36. },
  37. methods: {
  38. getList() {
  39. this.partialRenewal()
  40. this.data.init = true;
  41. },
  42. tabsChange({
  43. detail
  44. }) {
  45. this.setData({
  46. tabsActive: detail
  47. });
  48. this.partialRenewal();
  49. },
  50. //局部数据更新 tabs
  51. partialRenewal() {
  52. try {
  53. const model = this.data.tabsList[this.data.tabsActive].model;
  54. if (model) {
  55. const Component = this.selectComponent(model);
  56. Component.getList(true);
  57. }
  58. this.data.model = model;
  59. } catch (error) {
  60. setTimeout(() => {
  61. this.partialRenewal();
  62. }, 100)
  63. }
  64. },
  65. getContent() {
  66. const model = this.data.tabsList[this.data.tabsActive].model;
  67. if (model) return this.selectComponent(model).data.content
  68. }
  69. }
  70. })