rightPie.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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. var list = [
  12. {name:"支",data:[{name:"北京",value:30,},{name:"上海",value:30,},{name:"杭州",value:20,},{name:"天津",value:30,}]},
  13. {name:"包",data:[{name:"北京",value:50,},{name:"上海",value:30,},{name:"杭州",value:30,},{name:"天津",value:30,}]},
  14. {name:"箱",data:[{name:"北京",value:50,},{name:"上海",value:30,},{name:"杭州",value:30,},{name:"天津",value:30,}]},
  15. {name:"托盘",data:[{name:"北京",value:50,},{name:"上海",value:30,},{name:"杭州",value:30,},{name:"天津",value:30,}]},
  16. ]
  17. this.init(list);
  18. }
  19. },
  20. moved: function () { },
  21. detached: function () { },
  22. },
  23. properties:{
  24. prductIndex:{
  25. type:String,
  26. value:'',
  27. }
  28. },
  29. observers:{
  30. 'prductIndex':function(nv,ol){
  31. var token = wx.getStorageSync('token');
  32. if(token && nv){
  33. this.getCityPackageTypeState(nv);
  34. }
  35. }
  36. },
  37. methods:{
  38. getCityPackageTypeState(productName){
  39. app.requestP({
  40. url: '/daping/cityPackageTypeState?productName='+productName,
  41. method: 'post',
  42. }).then(res=>{
  43. var packageType = [{name:'支',type:10},{name:'包',type:20},{name:'箱',type:30},{name:'托盘',type:40},{name:'其他',type:50}];
  44. var datas = [];
  45. for (var index = 0; index < packageType.length; index++) {
  46. var types = [];
  47. res.data.data.map((item,i)=>{
  48. types.push({
  49. name:item.city,value:item[packageType[index].type],
  50. })
  51. if(i == res.data.data.length-1){
  52. datas.push(
  53. {name:packageType[index].name, data:types}
  54. )
  55. }
  56. })
  57. }
  58. this.initChart(datas);
  59. })
  60. },
  61. initChart(list){
  62. var that = this;
  63. that.selectComponent('#chartConDom').init((canvas, width, height, dpr) => {
  64. const chart = echarts.init(canvas, null, {
  65. width: width,
  66. height: height,
  67. devicePixelRatio: dpr
  68. });
  69. var option = that.getOrderWarnOption(list);
  70. chart.setOption(option);
  71. return chart;
  72. });
  73. },
  74. getOrderWarnOption(list){
  75. var fontSize = 10
  76. var fontColor = "#999999"
  77. return {
  78. color:["#7A4AFF","#28E556","#2D59E6","#FFAE36","#EA1C43",],
  79. title:{
  80. text:"不同产品包装",
  81. show:0,
  82. textStyle:{
  83. color:fontColor,
  84. fontSize:fontSize,
  85. },
  86. left:'1%',
  87. top:0,
  88. },
  89. grid: {
  90. top: '20%',
  91. left: '6%',
  92. right: '4%',
  93. bottom: '3%',
  94. containLabel: true
  95. },
  96. legend:{
  97. icon:"circle",
  98. right:'10%',
  99. top:0,
  100. itemWidth:fontSize*0.8,
  101. itemHeight:fontSize*0.8,
  102. textStyle:{
  103. fontSize:fontSize,
  104. color:fontColor,
  105. },
  106. data:list.map(item=>item.name)
  107. },
  108. tooltip: {
  109. trigger: 'axis',
  110. axisPointer: {
  111. type: 'cross',
  112. }
  113. },
  114. yAxis: {
  115. type: 'value',
  116. axisTick:{show:false,},
  117. axisLabel:{
  118. fontSize:fontSize,
  119. color:fontColor,
  120. },
  121. },
  122. xAxis: {
  123. type: 'category',
  124. axisTick:{show:false,},
  125. axisLabel:{
  126. fontSize:fontSize,
  127. color:fontColor,
  128. },
  129. data:list.length ? list[0].data.map(item=>item.name) : []
  130. },
  131. series:this.setOptItem(list),
  132. }
  133. },
  134. setOptItem(list){
  135. var data = []
  136. for(var i in list){
  137. data.push({
  138. type: 'bar',
  139. silent:1,
  140. barMaxWidth:this.fontSize*1.5,
  141. name:list[i].name,
  142. data:list[i].data
  143. })
  144. }
  145. return data
  146. },
  147. },
  148. })