index.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. const app = getApp();
  2. import * as echarts from '../../../../ec-canvas/echarts' // 这个是自己实际的目录
  3. Component({
  4. data:{
  5. Ec: { lazyLoad: true, },
  6. },
  7. lifetimes: {
  8. attached: function () {
  9. var token = wx.getStorageSync('token');
  10. if(token){
  11. this.getYearProduceSatateList();
  12. }else{
  13. var list = [
  14. {name:"生产",data:[{name:"2022",value:30,},{name:"2021",value:30,},{name:"2020",value:20,},{name:"2019",value:30,}]},
  15. {name:"销售",data:[{name:"2022",value:50,},{name:"2021",value:30,},{name:"2020",value:30,},{name:"2019",value:30,}]},
  16. {name:"在途",data:[{name:"2022",value:50,},{name:"2021",value:30,},{name:"2020",value:30,},{name:"2019",value:30,}]},
  17. {name:"交付",data:[{name:"2022",value:50,},{name:"2021",value:30,},{name:"2020",value:30,},{name:"2019",value:30,}]},
  18. ]
  19. this.init(list);
  20. }
  21. },
  22. moved: function () { },
  23. detached: function () { },
  24. },
  25. methods:{
  26. getYearProduceSatateList(){
  27. app.requestP({
  28. url: '/daping/yearProduceSatate',
  29. method: 'post',
  30. }).then(res=>{
  31. var orderType = [{name:'生产',type:'produce'},{name:'销售',type:'sell'},{name:'在途',type:'trans'},{name:'交付',type:'end'}];
  32. var datas = [];
  33. for (var index = 0; index < orderType.length; index++) {
  34. var types = [];
  35. res.data.data.map((item,i)=>{
  36. types.push({
  37. name:item.year,value:item[orderType[index].type],
  38. })
  39. if(i == res.data.data.length-1){
  40. datas.push(
  41. {name:orderType[index].name, data:types}
  42. )
  43. }
  44. })
  45. }
  46. this.init(datas)
  47. })
  48. },
  49. init(list){
  50. var that = this;
  51. that.selectComponent('#chartConDom').init((canvas, width, height, dpr) => {
  52. const chart = echarts.init(canvas, null, {
  53. width: width,
  54. height: height,
  55. devicePixelRatio: dpr
  56. });
  57. var option = that.getOrderWarnOption(list);
  58. chart.setOption(option);
  59. return chart;
  60. });
  61. },
  62. getOrderWarnOption(list){
  63. var fontSize = 10
  64. var fontColor = "#999999"
  65. return {
  66. color:["#583DC8","#D1B645","#31CE7B","#5B7DEB"],
  67. title:{
  68. text:"产品年报数据",
  69. show:false,
  70. textStyle:{
  71. color:fontColor,
  72. fontSize:fontSize,
  73. },
  74. left:'10%',
  75. top:0,
  76. },
  77. grid: {
  78. top: '10%',
  79. left: '6%',
  80. right: '10%',
  81. bottom: '3%',
  82. containLabel: true
  83. },
  84. tooltip: {
  85. trigger: 'axis',
  86. axisPointer: {
  87. type: 'cross',
  88. }
  89. },
  90. legend:{
  91. show:true,
  92. icon:"circle",
  93. right:'',
  94. top:0,
  95. itemWidth:fontSize*0.8,
  96. itemHeight:fontSize*0.8,
  97. textStyle:{
  98. fontSize:fontSize,
  99. color:fontColor,
  100. },
  101. data:list.map(item=>item.name)
  102. },
  103. yAxis: {
  104. type: 'value',
  105. axisTick:{show:false,},
  106. axisLabel:{
  107. fontSize:fontSize,
  108. color:fontColor,
  109. },
  110. },
  111. xAxis: {
  112. type: 'category',
  113. boundaryGap: false,
  114. axisTick:{show:false,},
  115. axisLabel:{
  116. fontSize:fontSize,
  117. color:fontColor,
  118. },
  119. data: list[0].data.map(item=>item.name)
  120. },
  121. series:this.setOptItem(list),
  122. }
  123. },
  124. setOptItem(list){
  125. var data = []
  126. for(var i in list){
  127. data.push({
  128. type: 'line',
  129. stack: 'Total',
  130. areaStyle: {},
  131. lineStyle: { width:1,},
  132. silent:1,
  133. symbolSize:1,
  134. name:list[i].name,
  135. data:list[i].data
  136. })
  137. }
  138. return data
  139. },
  140. },
  141. })