copy.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. <template>
  2. <div style="height:100vh; min-height:1080px;">
  3. <!-- 头部 -->
  4. <div class="header">
  5. <h1 style="color: #77F8FF;">惠州市就业驿站大数据</h1>
  6. <div class="time">{{ formattedTime }}</div>
  7. </div>
  8. <!-- 内容区 -->
  9. <div class="body-content">
  10. <!-- 左 -->
  11. <div class="side" style="padding-left: 20px;">
  12. <div class="content-box">
  13. <div class="box-title">企业占比</div>
  14. <div class="chart-box" id="yearSystemApplyBox"></div>
  15. </div>
  16. <div class="content-box">
  17. <div class="box-title">岗位占比</div>
  18. <div class="chart-box" id="employedCountBox"></div>
  19. </div>
  20. <div class="content-box">
  21. <div class="box-title">全市企业情况</div>
  22. <div class="chart-box" id="ordinaryDifficultyCountBox"></div>
  23. </div>
  24. </div>
  25. <!-- 中 -->
  26. <div class="center">
  27. <div class="center-1">
  28. <div class="nav">
  29. <div class="nav-items">
  30. <div class="nav-1"></div>
  31. <h2 style="color: #77F8FF;">总体概况</h2></div>
  32. <div class="nav-items nav-active">
  33. <div class="nav-2"></div>
  34. <h2 style="color: #77F8FF;">企业情况</h2></div>
  35. <div class="nav-items">
  36. <div class="nav-3"></div>
  37. <h2 style="color: #77F8FF;">求职情况</h2></div>
  38. <div class="nav-items">
  39. <div class="nav-4"></div>
  40. <h2 style="color: #77F8FF;">服务情况</h2></div>
  41. </div>
  42. <div class="s-box">
  43. <div class="statistics t-1">
  44. <div style="margin: 8px 0 0 18px; position: revert;">
  45. <div class="s-title">岗位数</div>
  46. <div class="s-number">{{ allSystemDataCountList.count.postCount }}</div>
  47. <div class="waves" style="right: -187px; top: 42px"></div>
  48. </div>
  49. </div>
  50. <div class="statistics t-2">
  51. <div style="margin: 8px 0 0 78px; position: revert;">
  52. <div class="s-title">企业数</div>
  53. <div class="s-number">{{ allSystemDataCountList.count.companyCount }}</div>
  54. <div class="waves" style="left: -86px; top: 42px"></div>
  55. </div>
  56. </div>
  57. <div class="statistics t-3">
  58. <div style="margin: 78px 0 0 98px; position: revert;">
  59. <div class="s-title">推荐岗位数</div>
  60. <div class="s-number">{{ allSystemDataCountList.count.jobUserCount }}</div>
  61. <div class="waves" style="left: -106px; top: -141px"></div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <div class="center-2">
  67. <div class="box-bigtitle">企业规模情况</div>
  68. <div class="chart-box" id="allSystemDatBox"></div>
  69. </div>
  70. </div>
  71. <!-- 右 -->
  72. <div class="side" style="padding-right: 20px;">
  73. <div class="content-box">
  74. <div class="box-title">本周新增企业</div>
  75. <div class="chart-box">
  76. </div>
  77. </div>
  78. <div class="content-box">
  79. <div class="box-title">本月新增企业</div>
  80. <div class="chart-box">
  81. </div>
  82. </div>
  83. <div class="content-box">
  84. <div class="box-title">本季度新增企业</div>
  85. <div class="chart-box">
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. </template>
  92. <script setup lang="ts">
  93. import {computed, onBeforeUnmount, onMounted, ref} from "vue";
  94. import dayjs from "dayjs";
  95. import weekOfYear from 'dayjs/plugin/weekOfYear';
  96. import weekday from 'dayjs/plugin/weekday';
  97. dayjs.extend(weekOfYear);
  98. dayjs.extend(weekday);
  99. // 全市数据情况
  100. const allSystemDataCountList = ref({
  101. count: {
  102. companyCount: 0,
  103. postCount: 0,
  104. jobUserCount: 0
  105. },
  106. list: []
  107. });
  108. // 实时时间
  109. const currentTime = ref(new Date());
  110. const formattedTime = computed(() => {
  111. const days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
  112. const year = currentTime.value.getFullYear();
  113. const month = (currentTime.value.getMonth() + 1).toString().padStart(2, '0');
  114. const date = currentTime.value.getDate().toString().padStart(2, '0');
  115. const day = days[currentTime.value.getDay()];
  116. const hours = currentTime.value.getHours().toString().padStart(2, '0');
  117. const minutes = currentTime.value.getMinutes().toString().padStart(2, '0');
  118. // const seconds = currentTime.value.getSeconds().toString().padStart(2, '0');
  119. return `${year}-${month}-${date} ${day} ${hours}:${minutes}`;
  120. });
  121. function updateTime() {
  122. currentTime.value = new Date();
  123. }
  124. onMounted(() => {
  125. updateTime();
  126. const timer = setInterval(updateTime, 1000);
  127. onBeforeUnmount(() => {
  128. clearInterval(timer);
  129. });
  130. })
  131. </script>
  132. <style scoped>
  133. @import url('@/views/dataScreen/html/css/reset.css');
  134. @import url('@/views/dataScreen/html/css/style.css');
  135. </style>