index.ts 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. namespace zhongdiankehu {
  2. let { getMarket } = require('../../../../utils/api')
  3. let first = true;
  4. Component({
  5. /**
  6. * 组件的属性列表
  7. */
  8. properties: {
  9. array: {
  10. type: Object
  11. },
  12. channel: {
  13. type: Object
  14. },
  15. },
  16. observers: {
  17. 'array': function () {
  18. !first && this.upData()
  19. !first && this.upData1()
  20. },
  21. 'channel': function () {
  22. !first && this.upData()
  23. !first && this.upData1()
  24. },
  25. },
  26. ready() {
  27. this.init();
  28. first = false;
  29. },
  30. /**
  31. * 组件的初始数据
  32. */
  33. data: {
  34. onInitChart: undefined,
  35. onInitChart1: undefined,
  36. DayList: [],
  37. DayList1: [],
  38. DayList3: [],
  39. DayList4: [],
  40. select_act: 0,
  41. select: [
  42. {
  43. text: "费用",
  44. proportionType: "fee",
  45. type: 3,
  46. unit: "元",
  47. },
  48. {
  49. text: "时长",
  50. proportionType: "timeSize",
  51. type: 2,
  52. unit: "分",
  53. },
  54. {
  55. text: "频次",
  56. proportionType: "pinci",
  57. type: 1,
  58. unit: "次",
  59. },
  60. ],
  61. select_act1: 0,
  62. select1: [
  63. {
  64. text: "时长",
  65. proportionType: "timeSize",
  66. type: 2,
  67. unit: "分",
  68. },
  69. {
  70. text: "频次",
  71. proportionType: "pinci",
  72. type: 1,
  73. unit: "次",
  74. },
  75. ]
  76. },
  77. /**
  78. * 组件的方法列表
  79. */
  80. methods: {
  81. init() {
  82. let channelItem = this.data.channel;
  83. Promise.all([
  84. getMarket({
  85. dataType: this.data.select[this.data.select_act].type,
  86. indexTime: this.data.array.index,
  87. tableType: 8
  88. }),
  89. getMarket({
  90. dataType: this.data.select[this.data.select_act].type,
  91. indexTime: this.data.array.index,
  92. tableType: 9
  93. }),
  94. getMarket({
  95. dataType: this.data.select1[this.data.select_act1].type,
  96. indexTime: this.data.array.index,
  97. tableType: 10
  98. }),
  99. getMarket({
  100. dataType: this.data.select1[this.data.select_act1].type,
  101. indexTime: this.data.array.index,
  102. tableType: 11
  103. }),
  104. ]).then((res: any[]) => {
  105. let realMarster = res[0].filter((v: any) => v.linkType === "2"), key = this.data.select[this.data.select_act].proportionType;
  106. for (let i = 0; i < res[0].length; i++) {
  107. const v = res[0][i];
  108. if (v.linkType === "2") continue;
  109. realMarster.map((item: any, o: number) => {
  110. v [key] = Number(v[key])
  111. if (item.name === v.name) realMarster[o].compare = v[key] < item[key];
  112. });
  113. }
  114. realMarster = realMarster.map((v:any)=>{
  115. v[key] = Number(v[key])
  116. return v
  117. })
  118. let brand = res[1].filter((v: any) => v.linkType === "2");
  119. for (let i = 0; i < res[1].length; i++) {
  120. const v = res[1][i];
  121. if (v.linkType === "2") continue;
  122. brand.map((item: any, o: number) => {
  123. v [key] = Number(v[key])
  124. if (item.name === v.name) brand[o].compare = v[key] < item[key];
  125. });
  126. }
  127. brand = brand.map((v:any)=>{
  128. v[key] = Number(v[key])
  129. return v
  130. })
  131. let realy = res[2].filter((v: any) => v.linkType === "2");
  132. for (let i = 0; i < res[2].length; i++) {
  133. const v = res[2][i];
  134. if (v.linkType === "2") continue;
  135. realy.map((item: any, o: number) => {
  136. v [key] = Number(v[key])
  137. if (item.name === v.name) realy[o].compare = v[key] < item[key];
  138. });
  139. }
  140. realy = realy.map((v:any)=>{
  141. v[key] = Number(v[key])
  142. return v
  143. })
  144. let brandy = res[3].filter((v: any) => v.linkType === "2");
  145. for (let i = 0; i < res[3].length; i++) {
  146. const v = res[3][i];
  147. if (v.linkType === "2") continue;
  148. brandy.map((item: any, o: number) => {
  149. v [key] = Number(v[key])
  150. if (item.name === v.name) brandy[o].compare = v[key] < item[key];
  151. });
  152. }
  153. brandy = brandy.map((v:any)=>{
  154. v[key] = Number(v[key])
  155. return v
  156. })
  157. this.setData({
  158. DayList: realMarster,
  159. DayList1: brand,
  160. DayList3: realy,
  161. DayList4: brandy,
  162. })
  163. })
  164. },
  165. upData() {
  166. Promise.all([
  167. getMarket({
  168. dataType: this.data.select[this.data.select_act].type,
  169. indexTime: this.data.array.index,
  170. tableType: 8
  171. }),
  172. getMarket({
  173. dataType: this.data.select[this.data.select_act].type,
  174. indexTime: this.data.array.index,
  175. tableType: 9
  176. }),
  177. ]).then((res: any[]) => {
  178. let realMarster = res[0].filter((v: any) => v.linkType === "2"), key = this.data.select[this.data.select_act].proportionType;
  179. for (let i = 0; i < res[0].length; i++) {
  180. const v = res[0][i];
  181. if (v.linkType === "2") continue;
  182. realMarster.map((item: any, o: number) => {
  183. v [key] = Number(v[key])
  184. if (item.name === v.name) realMarster[o].compare = v[key] < item[key];
  185. });
  186. }
  187. realMarster = realMarster.map((v:any)=>{
  188. v[key] = Number(v[key])
  189. return v
  190. })
  191. let brand = res[0].filter((v: any) => v.linkType === "2");
  192. for (let i = 0; i < res[0].length; i++) {
  193. const v = res[0][i];
  194. if (v.linkType === "2") continue;
  195. brand.map((item: any, o: number) => {
  196. v [key] = Number(v[key])
  197. if (item.name === v.name) brand[o].compare = v[key] < item[key];
  198. });
  199. }
  200. brand = brand.map((v:any)=>{
  201. v[key] = Number(v[key])
  202. return v
  203. })
  204. console.log(realMarster)
  205. this.setData({
  206. DayList: realMarster,
  207. DayList1: brand,
  208. })
  209. })
  210. },
  211. upData1() {
  212. let channelItem = this.data.channel,key = this.data.select[this.data.select_act].proportionType;;
  213. Promise.all([
  214. getMarket({
  215. dataType: this.data.select1[this.data.select_act1].type,
  216. indexTime: this.data.array.index,
  217. tableType: 10
  218. }),
  219. getMarket({
  220. dataType: this.data.select1[this.data.select_act1].type,
  221. indexTime: this.data.array.index,
  222. tableType: 11
  223. }),
  224. ]).then((res: any[]) => {
  225. let realy = res[0].filter((v: any) => v.linkType === "2");
  226. for (let i = 0; i < res[0].length; i++) {
  227. const v = res[0][i];
  228. if (v.linkType === "2") continue;
  229. realy.map((item: any, o: number) => {
  230. v [key] = Number(v[key])
  231. if (item.name === v.name) realy[o].compare = v[key] < item[key];
  232. });
  233. }
  234. realy = realy.map((v:any)=>{
  235. v[key] = Number(v[key])
  236. return v
  237. })
  238. let brandy = res[1].filter((v: any) => v.linkType === "2");
  239. for (let i = 0; i < res[1].length; i++) {
  240. const v = res[1][i];
  241. if (v.linkType === "2") continue;
  242. brandy.map((item: any, o: number) => {
  243. v [key] = Number(v[key])
  244. if (item.name === v.name) brandy[o].compare = v[key] < item[key];
  245. });
  246. }
  247. brandy = brandy.map((v:any)=>{
  248. v[key] = Number(v[key])
  249. return v
  250. })
  251. this.setData({
  252. DayList3: realy,
  253. DayList4: brandy,
  254. })
  255. })
  256. },
  257. channelChange(event: wxPicker) {
  258. this.setData({
  259. select_act: Number(event.detail.value)
  260. }, () => this.upData())
  261. },
  262. channelChange1(event: wxPicker) {
  263. this.setData({
  264. select_act1: Number(event.detail.value)
  265. }, () => this.upData())
  266. }
  267. }
  268. })
  269. }