index.vue 2.4 KB

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