index.ts 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. namespace hangyetoufang {
  2. const { line, upLine,clearchart } = require("./F2");
  3. const { line1, upLine1, clearchart1 } = require("./F21");
  4. let { getTrendHard,getTrendSoft } = 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: "feiyong",
  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. getTrendHard({
  90. type: this.data.select[this.data.select_act].type,
  91. industryId: channelItem.channelId,
  92. dataType: this.data.array.index
  93. }),
  94. getTrendSoft({
  95. type: this.data.select1[this.data.select_act1].type,
  96. industryId: channelItem.channelId,
  97. dataType: this.data.array.index
  98. }),
  99. ]).then((res: any[]) => {
  100. let li = res[0] || []
  101. let list: adDay = {
  102. before: [],
  103. now: []
  104. }, key = this.data.select[this.data.select_act].proportionType;
  105. for (let i = 0; i < (li.harddatabase || []).length; i++) {
  106. const v = (li.harddatabase || [])[i];
  107. v[key] = Number(v[key] || 0)
  108. list.before.push(v)
  109. }
  110. for (let i = 0; i < (li.harddatacompare || []).length; i++) {
  111. const v = (li.harddatacompare || [])[i];
  112. v[key] = Number(v[key] || 0)
  113. list.now.push(v)
  114. }
  115. let li1 = res[1] || []
  116. let list1: adDay = {
  117. before: [],
  118. now: []
  119. }, key1 = this.data.select1[this.data.select_act1].proportionType;
  120. for (let i = 0; i < (li1.softdatabase || []).length; i++) {
  121. const v = (li1.softdatabase || [])[i];
  122. v[key1] = Number(v[key1] || 0)
  123. list1.before.push(v)
  124. }
  125. for (let i = 0; i < (li1.softdatacompare || []).length; i++) {
  126. const v = (li1.softdatacompare || [])[i];
  127. v[key1] = Number(v[key1] || 0)
  128. list1.now.push(v)
  129. }
  130. this.setData({
  131. DayList1: list1,
  132. DayList: list,
  133. onInitChart: line.bind(this),
  134. onInitChart1: line1.bind(this)
  135. })
  136. })
  137. },
  138. upData() {
  139. let channelItem = this.data.channel;
  140. Promise.all([
  141. getTrendHard({
  142. type: this.data.select[this.data.select_act].type,
  143. industryId: channelItem.channelId,
  144. dataType: this.data.array.index
  145. }),
  146. ]).then((res: any[]) => {
  147. let li = res[0] || []
  148. let list: adDay = {
  149. before: [],
  150. now: []
  151. }, key = this.data.select[this.data.select_act].proportionType;
  152. for (let i = 0; i < (li.harddatabase || []).length; i++) {
  153. const v = (li.harddatabase || [])[i];
  154. v[key] = Number(v[key] || 0)
  155. list.before.push(v)
  156. }
  157. for (let i = 0; i < (li.harddatacompare || []).length; i++) {
  158. const v = (li.harddatacompare || [])[i];
  159. v[key] = Number(v[key] || 0)
  160. list.now.push(v)
  161. }
  162. console.log(list)
  163. this.setData({
  164. DayList: list,
  165. },()=>{
  166. upLine.bind(this)()
  167. })
  168. })
  169. },
  170. upData1() {
  171. let channelItem = this.data.channel;
  172. Promise.all([
  173. getTrendSoft({
  174. type: this.data.select1[this.data.select_act1].type,
  175. industryId: channelItem.channelId,
  176. dataType: this.data.array.index
  177. }),
  178. ]).then((res: any[]) => {
  179. let li = res[0] || []
  180. let list: adDay = {
  181. before: [],
  182. now: []
  183. }, key = this.data.select1[this.data.select_act1].proportionType;
  184. for (let i = 0; i < (li.softdatabase || []).length; i++) {
  185. const v = (li.softdatabase || [])[i];
  186. v[key] = Number(v[key] || 0)
  187. list.before.push(v)
  188. }
  189. for (let i = 0; i < (li.softdatacompare || []).length; i++) {
  190. const v = (li.softdatacompare || [])[i];
  191. v[key] = Number(v[key] || 0)
  192. list.now.push(v)
  193. }
  194. this.setData({
  195. DayList1: list,
  196. },()=>{
  197. upLine1.bind(this)()
  198. })
  199. })
  200. },
  201. channelChange(event: wxPicker) {
  202. this.setData({
  203. select_act: Number(event.detail.value)
  204. }, () => this.upData())
  205. },
  206. channelChange1(event: wxPicker) {
  207. this.setData({
  208. select_act1: Number(event.detail.value)
  209. }, () => this.upData1())
  210. }
  211. }
  212. })
  213. }