index.vue 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div class="p-4">
  3. <GrowCard :loading="loading" :list="growCardList" class="enter-y" />
  4. <orderEchart title="订单数据统计" class="!my-4 enter-y" @change="Search" :echartData="echartData" :loading="loading" />
  5. </div>
  6. </template>
  7. <script lang="ts" setup>
  8. import { ref, onMounted, reactive } from 'vue';
  9. import { orderTotal,orderTrend } from '/@/api/statistics/index';
  10. import { GrowCardItem } from '../data';
  11. import GrowCard from '../components/GrowCard.vue';
  12. import orderEchart from '../components/orderEchart.vue';
  13. const loading = ref(true);
  14. const growCardList = ref<GrowCardItem[]>([]);
  15. const echartData = reactive({
  16. xdata:[],
  17. downOrder:[],
  18. incrementOrder:[],
  19. partOrder:[],
  20. })
  21. const SearchData = reactive({
  22. startTime:'',
  23. endTime:'',
  24. dataType:0,
  25. type:2
  26. })
  27. onMounted(() => {
  28. getData();
  29. getList()
  30. });
  31. async function getList() {
  32. let downlist = [],xdata = []
  33. const {downOrder,incrementOrder,partOrder} = await orderTrend(SearchData);
  34. downOrder.map(ele => {
  35. xdata.push(ele.groupKey)
  36. downlist.push(ele.count)
  37. })
  38. echartData.xdata = xdata
  39. echartData.downOrder = downlist
  40. echartData.incrementOrder = incrementOrder.map(ele => ele.count)
  41. echartData.partOrder = partOrder &&partOrder.map(ele => ele.count)|| []
  42. }
  43. function Search(val){
  44. const {startTime,endTime,dataType,type} = val
  45. console.log('params',val)
  46. SearchData.startTime = startTime
  47. SearchData.endTime = endTime
  48. SearchData.dataType = dataType
  49. SearchData.type = type
  50. getList()
  51. }
  52. async function getData() {
  53. try {
  54. loading.value = true;
  55. const {preMonThPowCount,preMonThDownCount,preMonThPartCount} = await orderTotal();
  56. let list:GrowCardItem[] = [
  57. {
  58. title: '上月权益订单数',
  59. icon: 'fxemoji:notchedrightsemi3dot',
  60. value: preMonThPowCount,
  61. unit: '人',
  62. color: 'blue',
  63. action: '月',
  64. },
  65. {
  66. title: '上月下载订单数',
  67. icon: 'download-count|svg',
  68. value: preMonThDownCount,
  69. unit: '人',
  70. color: 'orange',
  71. action: '月',
  72. },
  73. {
  74. title: '上月配件订单数',
  75. icon: 'transaction|svg',
  76. value: preMonThPartCount,
  77. unit: '人',
  78. color: 'blue',
  79. action: '月',
  80. },
  81. ];
  82. loading.value = false;
  83. growCardList.value =list
  84. } catch (error) {
  85. loading.value = false;
  86. }
  87. }
  88. </script>