index.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <script lang="ts" setup>
  2. import { ref, reactive } from 'vue';
  3. import TrendCard from './components/TrendCard.vue';
  4. import SimpleCard from './components/SimpleCard.vue';
  5. import Divider from './components/Divider.vue';
  6. import Echarts from '@/components/ReEcharts/index.vue';
  7. import { EChartsOption } from 'echarts';
  8. const prompt = reactive({ summary: {}, stage: {}, bulletin: {} });
  9. const option: EChartsOption = {
  10. grid: { top: 0, bottom: 20, left: 60 },
  11. yAxis: {
  12. type: 'category',
  13. data: ['验证客户', '赢单', '输单']
  14. },
  15. xAxis: {
  16. type: 'value'
  17. },
  18. series: [
  19. {
  20. barWidth: 20,
  21. data: [0, 20, 40, 60, 80, 100],
  22. type: 'bar'
  23. }
  24. ]
  25. };
  26. </script>
  27. <template>
  28. <div
  29. class="m-5 bg-white min-h-full p-4 rounded relative flex gap-12 items-start"
  30. >
  31. <section class="flex-[4]">
  32. <div class="flex gap-3 mb-4">
  33. <div class="w-40">
  34. <el-select size="small"></el-select>
  35. </div>
  36. <div class="w-40">
  37. <el-select size="small"></el-select>
  38. </div>
  39. </div>
  40. <div class="border-gray-200 border rounded p-3">
  41. <div class="flex gap-1.5 items-center mb-3">
  42. <div class="text-sm font-medium">销售简报</div>
  43. <el-icon><QuestionFilled class="text-gray-500 text-sm" /></el-icon>
  44. </div>
  45. <div class="grid xl:grid-cols-4 lg:grid-cols-3 grid-cols-2 gap-4">
  46. <TrendCard title="新增客户" :number="4" unit="人" />
  47. <TrendCard title="新增联系人" :number="4" unit="人" />
  48. <TrendCard title="新增商机" :number="4" unit="个" />
  49. <TrendCard title="新增销售订单" :number="4" unit="个" />
  50. <TrendCard title="销售订单金额" :number="4" unit="元" />
  51. <TrendCard title="商机金额" :number="4" unit="元" />
  52. <TrendCard title="新增线索" :number="4" unit="个" />
  53. </div>
  54. </div>
  55. <div class="my-8 flex gap-4 items-start">
  56. <div class="border-gray-200 border rounded p-3 flex-1">
  57. <div class="text-sm font-medium">数据汇总</div>
  58. <div class="flex gap-3 mb-8 mt-2">
  59. <div class="w-40">
  60. <el-select size="small"></el-select>
  61. </div>
  62. <div class="w-40">
  63. <el-select size="small"></el-select>
  64. </div>
  65. </div>
  66. <Divider title="客户汇总" />
  67. <div class="my-6 grid grid-cols-4 gap-2">
  68. <SimpleCard />
  69. <SimpleCard />
  70. <SimpleCard />
  71. <SimpleCard />
  72. </div>
  73. <Divider title="商机汇总" />
  74. <div class="my-6 grid grid-cols-4 gap-2">
  75. <SimpleCard />
  76. <SimpleCard />
  77. <SimpleCard />
  78. <SimpleCard />
  79. </div>
  80. <Divider title="线索汇总" />
  81. <div class="my-6 grid grid-cols-4 gap-2">
  82. <SimpleCard />
  83. <SimpleCard />
  84. <SimpleCard />
  85. <SimpleCard />
  86. </div>
  87. </div>
  88. <div class="border-gray-200 border rounded p-3 flex-1">
  89. <div class="text-sm font-medium">商机阶段</div>
  90. <div class="flex gap-3 mb-8 mt-2">
  91. <div class="w-40">
  92. <el-select size="small"></el-select>
  93. </div>
  94. <div class="w-40">
  95. <el-select size="small"></el-select>
  96. </div>
  97. </div>
  98. <div class="h-60">
  99. <Echarts :option="option"></Echarts>
  100. </div>
  101. </div>
  102. </div>
  103. </section>
  104. <nav class="flex-1 min-w-60 sticky right-0 top-9">
  105. <div class="border border-gray-200 rounded w-3/4 text-sm text-gray-500">
  106. <div class="p-2 bg-sky-100 border-l-2 border-blue-700">仅本人</div>
  107. <div class="p-2">本人及下属</div>
  108. <div class="p-2">仅本部门</div>
  109. <div class="p-2">本部门及下属</div>
  110. </div>
  111. <div class="border border-gray-200 rounded text-sm text-gray-500 mt-4">
  112. <div class="p-2 bg-sky-100 border-l-2 border-blue-700">本月</div>
  113. <div class="p-2">本周</div>
  114. <div class="p-2">本年</div>
  115. <div class="p-2">
  116. <div>自定义</div>
  117. <el-date-picker
  118. type="daterange"
  119. class="max-w-full mt-2"
  120. ></el-date-picker>
  121. </div>
  122. </div>
  123. </nav>
  124. </div>
  125. </template>