index.ts 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. namespace quanpanqushi {
  2. const { line, upLine,clearchart } = require("./F2");
  3. const { line1, upLine1,clearchart1 } = require("./F21");
  4. let { getMarket } = require('../../../../utils/api')
  5. let first = true;
  6. Component({
  7. /**
  8. * 组件的属性列表
  9. */
  10. properties: {
  11. array: {
  12. type: Object
  13. },
  14. channel: {
  15. type: Object
  16. },
  17. },
  18. observers: {
  19. 'array': function () {
  20. !first && this.upData()
  21. !first && this.upData1()
  22. },
  23. 'channel': function () {
  24. !first && this.upData()
  25. !first && this.upData1()
  26. },
  27. },
  28. ready() {
  29. this.init();
  30. first = false;
  31. },
  32. detached: function() {
  33. // 在组件实例被从页面节点树移除时执行
  34. clearchart()
  35. clearchart1()
  36. },
  37. /**
  38. * 组件的初始数据
  39. */
  40. data: {
  41. onInitChart: undefined,
  42. onInitChart1: undefined,
  43. DayList: {},
  44. DayList1: {},
  45. select_act: 0,
  46. select: [
  47. {
  48. text: "费用",
  49. proportionType: "fee",
  50. type: 3,
  51. unit: "元",
  52. },
  53. {
  54. text: "时长",
  55. proportionType: "timeSize",
  56. type: 2,
  57. unit: "分",
  58. },
  59. {
  60. text: "频次",
  61. proportionType: "pinci",
  62. type: 1,
  63. unit: "次",
  64. },
  65. ],
  66. select_act1: 0,
  67. select1: [
  68. {
  69. text: "时长",
  70. proportionType: "timeSize",
  71. type: 2,
  72. unit: "分",
  73. },
  74. {
  75. text: "频次",
  76. proportionType: "pinci",
  77. type: 1,
  78. unit: "次",
  79. },
  80. ]
  81. },
  82. /**
  83. * 组件的方法列表
  84. */
  85. methods: {
  86. init() {
  87. let channelItem = this.data.channel;
  88. Promise.all([
  89. getMarket({
  90. dataType: this.data.select[this.data.select_act].type,
  91. indexTime: this.data.array.index,
  92. tableType: 1
  93. }),
  94. getMarket({
  95. dataType: this.data.select[this.data.select_act].type,
  96. indexTime: this.data.array.index,
  97. tableType: 2
  98. }),
  99. ]).then((res: any[]) => {
  100. let li = res[0] || []
  101. let list: adDay = {
  102. before: [],
  103. now: []
  104. }, beforeKey = li[0].linkType, key = this.data.select[this.data.select_act].proportionType;
  105. for (let i = 0; i < li.length; i++) {
  106. const v = li[i];
  107. v[key] = Number(v[key] || 0)
  108. v.linkType === beforeKey ? list.before.push(v) : list.now.push(v)
  109. }
  110. let li1 = res[1] || []
  111. let list1: adDay = {
  112. before: [],
  113. now: []
  114. }, beforeKey1 = li1[0].linkType, key1 = this.data.select1[this.data.select_act1].proportionType;
  115. for (let i = 0; i < li1.length; i++) {
  116. const v = li1[i];
  117. v[key1] = Number(v[key1] || 0)
  118. v.linkType === beforeKey1 ? list1.before.push(v) : list1.now.push(v)
  119. }
  120. this.setData({
  121. DayList1: list1,
  122. DayList: list,
  123. onInitChart: line.bind(this),
  124. onInitChart1: line1.bind(this)
  125. })
  126. })
  127. },
  128. upData() {
  129. let channelItem = this.data.channel;
  130. Promise.all([
  131. getMarket({
  132. dataType: this.data.select[this.data.select_act].type,
  133. indexTime: this.data.array.index,
  134. tableType: 1
  135. }),
  136. ]).then((res: any[]) => {
  137. let li = res[0] || []
  138. let list: adDay = {
  139. before: [],
  140. now: []
  141. }, beforeKey = li[0].linkType, key = this.data.select[this.data.select_act].proportionType;
  142. for (let i = 0; i < li.length; i++) {
  143. const v = li[i];
  144. v[key] = Number(v[key] || 0)
  145. v.linkType === beforeKey ? list.before.push(v) : list.now.push(v)
  146. }
  147. this.setData({
  148. DayList: list,
  149. }, () => {
  150. upLine.bind(this)()
  151. })
  152. })
  153. },
  154. upData1() {
  155. Promise.all([
  156. getMarket({
  157. dataType: this.data.select[this.data.select_act].type,
  158. indexTime: this.data.array.index,
  159. tableType: 2
  160. }),
  161. ]).then((res: any[]) => {
  162. let li = res[0] || []
  163. let list: adDay = {
  164. before: [],
  165. now: []
  166. }, beforeKey = li[0].linkType, key = this.data.select1[this.data.select_act1].proportionType;
  167. for (let i = 0; i < li.length; i++) {
  168. const v = li[i];
  169. v[key] = Number(v[key] || 0)
  170. v.linkType === beforeKey ? list.before.push(v) : list.now.push(v)
  171. }
  172. this.setData({
  173. DayList1: list,
  174. }, () => {
  175. upLine1.bind(this)()
  176. })
  177. })
  178. },
  179. channelChange(event: wxPicker) {
  180. this.setData({
  181. select_act: Number(event.detail.value)
  182. }, () => this.upData())
  183. },
  184. channelChange1(event: wxPicker) {
  185. this.setData({
  186. select_act1: Number(event.detail.value)
  187. }, () => this.upData1())
  188. }
  189. }
  190. })
  191. }