customerChart.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. <template>
  2. <!-- 客户统计图 外部 报表 订单统计 -->
  3. <div id="cusChart" :style="{ width: '100%', height: '600px' }"></div>
  4. </template>
  5. <script>
  6. import * as echarts from 'echarts'
  7. // import { cusChart } from '@api/reportForms/order-statistics.js'
  8. export default {
  9. name: 'DepartmentChart', // 部门统计图
  10. data() {
  11. return {
  12. // newData: {
  13. // departmentArr: [],
  14. //realQuantityArr: []
  15. // localMoneyArr: []
  16. // }
  17. }
  18. },
  19. mounted() {
  20. // this.getChartData()
  21. this.initEcharts()
  22. },
  23. methods: {
  24. // 1、先获取 chart 数据
  25. getChartData() {
  26. // depChart().then(res => {
  27. // if (res.success) {
  28. // if (res.result) {
  29. // res.result.forEach(item => {
  30. // this.departmentArr.push(item.departmentArr)
  31. // this.realQuantityArr.push(item.realQuantityArr)
  32. // this.localMoneyArr.push(item.localMoneyArr)
  33. // })
  34. // console.log('返回的数组', this.departmentArr, this.realQuantityArr, this.localMoneyArr)
  35. // }
  36. // }
  37. // //2、执行chart
  38. // this.$nextTick(() => {
  39. // this.initEcharts()
  40. // })
  41. // })
  42. },
  43. initEcharts() {
  44. const myChart = echarts.init(document.getElementById('cusChart')) //dark ,深色主题
  45. // 配置
  46. const option = {
  47. title: {
  48. bpttom: '20',
  49. text: '客户统计表',
  50. textStyle: {
  51. fontSize: 18,
  52. color: '#5470c6'
  53. }
  54. },
  55. tooltip: {
  56. trigger: 'axis',
  57. axisPointer: {
  58. type: 'cross',
  59. crossStyle: {
  60. color: '#999'
  61. }
  62. }
  63. // textStyle: {
  64. // fontSize: 18
  65. // }
  66. },
  67. legend: {
  68. // textStyle: {
  69. // fontSize: 16,
  70. // color: '#5470c6'
  71. // },
  72. data: [
  73. '实际数量',
  74. '本币金额'
  75. // {
  76. // name: '染损(%)',
  77. // icon: 'circle' // 图例的图标样式
  78. // }
  79. ]
  80. },
  81. grid: {
  82. show: true, //是否显示直角坐标系网格。[ default: false ]
  83. left: '6%', // 组件离容器左侧的距离。
  84. right: '6%',
  85. borderColor: 'none', //网格的边框颜色
  86. bottom: '20%' //
  87. },
  88. xAxis: {
  89. type: 'category',
  90. axisLabel: {
  91. interval: 0 //控制X轴刻度全部显示
  92. // rotate: 30 //倾斜角度
  93. },
  94. axisPointer: {
  95. type: 'shadow'
  96. },
  97. data: ['FD', 'PMK', 'AUCHAN', 'BIOWORLD', 'CB', 'DUNNES', 'EVA-L']
  98. // data: this.departmentArr
  99. },
  100. yAxis: [
  101. {
  102. type: 'value',
  103. name: '实际数量',
  104. min: 0,
  105. max: 100000,
  106. interval: 10000,
  107. axisLabel: {
  108. // formatter: '{value} ml'
  109. }
  110. },
  111. {
  112. type: 'value',
  113. name: '本币金额',
  114. min: 0,
  115. max: 1200000,
  116. interval: 200000,
  117. axisLabel: {
  118. // formatter: '{value} °C'
  119. }
  120. }
  121. ],
  122. series: [
  123. {
  124. name: '实际数量',
  125. type: 'bar',
  126. // tooltip: {
  127. // valueFormatter: function(value) {
  128. // // return value + ' ml';
  129. // }
  130. // },
  131. // 折现部门渐变色
  132. // areaStyle: {
  133. // normal: {
  134. // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  135. // { offset: 0, color: 'rgba(216, 61, 65,0.5)' },
  136. // { offset: 0.5, color: 'rgba(216, 61, 65,0.2)' },
  137. // { offset: 1, color: 'rgba(216, 61, 65,0.08)' }
  138. // ])
  139. // }
  140. // },
  141. barWidth: '30%',
  142. data: [90000, 40000, 87666, 65555, 26347, 87687, 26546]
  143. // data: this.dyeLossRateArr
  144. },
  145. {
  146. name: '本币金额',
  147. type: 'line',
  148. tooltip: {
  149. // valueFormatter: function(value) {
  150. // // return value + ' ml'
  151. // }
  152. },
  153. data: [22443, 68176, 71276, 50176, 70176, 68976, 38276]
  154. }
  155. ]
  156. }
  157. // 渲染
  158. myChart.setOption(option)
  159. window.addEventListener('resize', () => {
  160. if (myChart) {
  161. myChart.resize()
  162. }
  163. })
  164. },
  165. // watch: {
  166. // 3、监听数据变化
  167. // newData: {
  168. // deep: true,
  169. // handler() {
  170. // 数据变化,执行
  171. // const { cvenNameArr, dyeLossRateArr } = this.newData
  172. // this.initEcharts(cvenNameArr, dyeLossRateArr)
  173. // console.log('333')
  174. // }
  175. // }
  176. // }
  177. }
  178. }
  179. </script>
  180. <style lang="less" scoped>
  181. @import '~@assets/less/common.less';
  182. @import '~@assets/less/overwriter.less';
  183. /deep/ .ant-table-thead > tr > th {
  184. text-align: center;
  185. // font-weight: 700;
  186. }
  187. /deep/ .ant-table-tbody {
  188. text-align: center;
  189. }
  190. // /deep/ th.replacecolor {
  191. // background-color: #ccc;
  192. // }
  193. /deep/ .ant-table-footer .ant-table.body {
  194. // overflow: hidden !important;
  195. }
  196. /deep/ .ant-table.ant-table-bordered .ant-table-footer {
  197. border: none;
  198. padding: 0;
  199. }
  200. </style>