tnblog
首页
视频
资源
登录

vue3 格子报表统计模板

212人阅读 2025/5/5 11:49 总访问:891498 评论:0 收藏:0 手机
分类: 前端

代码如下:

  1. <template>
  2. <div class="waterFeeStatistics-container">
  3. <div class="term-base-list">
  4. <div class="card-item item-1">
  5. <div class="item-title">海运数量</div>
  6. <div class="item-content">
  7. <span class="item-amount">6</span>
  8. <span class="item-unit"></span>
  9. </div>
  10. <div class="item-icon-img" />
  11. </div>
  12. <div class="card-item item-4">
  13. <div class="item-title">物流园数量</div>
  14. <div class="item-content">
  15. <span class="item-amount">6</span>
  16. <span class="item-unit"></span>
  17. </div>
  18. <div class="item-icon-img" />
  19. </div>
  20. <div class="card-item item-5">
  21. <div class="item-title">快递数据</div>
  22. <div class="item-content">
  23. <span class="item-amount">6</span>
  24. <span class="item-unit"></span>
  25. </div>
  26. <div class="item-icon-img" />
  27. </div>
  28. <div class="card-item item-6">
  29. <div class="item-title">用户数量</div>
  30. <div class="item-content">
  31. <span class="item-amount">6</span>
  32. <span class="item-unit"></span>
  33. </div>
  34. <div class="item-icon-img" />
  35. </div>
  36. <div class="card-item item-7">
  37. <div class="item-title">其他数量</div>
  38. <div class="item-content">
  39. <span class="item-amount">6</span>
  40. <span class="item-unit"></span>
  41. </div>
  42. <div class="item-icon-img" />
  43. </div>
  44. </div>
  45. </div>
  46. </template>
  47. <script setup lang="ts" name="tasks">
  48. import { defineAsyncComponent, reactive, onMounted, toRefs, ref } from 'vue';
  49. const state = reactive({
  50. title: '更新',
  51. schoolID: null,
  52. schoolList: [
  53. {
  54. id: 1,
  55. name: '小',
  56. },
  57. {
  58. id: 2,
  59. name: '大',
  60. },
  61. ],
  62. });
  63. // 这样暴露出来后页面可以直接使用schoolList,而不需要state.schoolList
  64. const { schoolList } = toRefs(state);
  65. // 表格数据
  66. const tableData = ref<any[]>([]);
  67. const loading = ref(false);
  68. const pageIndex = ref(1);
  69. // 详情弹窗
  70. const dialogVisible = ref(false);
  71. const detailLoading = ref(false);
  72. const detail = ref<any>({});
  73. onMounted(() => {
  74. pageIndex.value = 1;
  75. });
  76. </script>
  77. <style scoped="scoped" lang="scss">
  78. .waterFeeStatistics-container{
  79. margin-bottom: 20px;
  80. }
  81. .term-base-list {
  82. display: flex;
  83. justify-content: space-between;
  84. margin-right: -15px;
  85. .card-item {
  86. // width: 220px;
  87. flex: 1;
  88. margin-right: 15px;
  89. // height: 100px;
  90. height: 93px;
  91. padding: 10px;
  92. color: #fff;
  93. border-radius: 6px;
  94. position: relative;
  95. box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
  96. .item-title {
  97. font-size: 16px;
  98. }
  99. .item-content {
  100. position: absolute;
  101. width: 100%;
  102. text-align: center;
  103. top: 36px;
  104. left: 0px;
  105. .item-amount {
  106. font-size: 25px;
  107. }
  108. .item-unit {
  109. font-size: 16px;
  110. margin-left: 5px;
  111. }
  112. }
  113. .item-icon-img {
  114. position: absolute;
  115. bottom: 8px;
  116. right: 10px;
  117. }
  118. }
  119. .item-1 {
  120. background: linear-gradient(90deg, #2fe5c2, #13c6fa);
  121. .item-icon-img {
  122. width: 48px;
  123. height: 40px;
  124. background-image: url('/src/assets/imgs/class_count.png');
  125. }
  126. }
  127. .item-2 {
  128. background: linear-gradient(90deg, #61bdfe, #278adc);
  129. .item-icon-img {
  130. width: 40px;
  131. height: 39px;
  132. background-image: url('/src/assets/imgs/stu_count.png');
  133. }
  134. }
  135. .item-3 {
  136. background: linear-gradient(90deg, #5686d6, #315dbf);
  137. .item-icon-img {
  138. width: 52px;
  139. height: 38px;
  140. background-image: url('/src/assets/imgs/evaluation_course_count.png');
  141. }
  142. }
  143. .item-4 {
  144. background: linear-gradient(90deg, #646ba4, #90b7d8);
  145. .item-icon-img {
  146. width: 43px;
  147. height: 37px;
  148. background-image: url('/src/assets/imgs/knowledge_count.png');
  149. }
  150. }
  151. .item-5 {
  152. background: linear-gradient(90deg, #fea39d, #ff6f8f);
  153. .item-icon-img {
  154. width: 42px;
  155. height: 38px;
  156. background-image: url('/src/assets/imgs/labroom_course_count.png');
  157. }
  158. }
  159. .item-6 {
  160. background: linear-gradient(90deg, #5bccf2, #5da5e3);
  161. .item-icon-img {
  162. width: 38px;
  163. height: 38px;
  164. background-image: url('/src/assets/imgs/labroom_course_count.png');
  165. }
  166. }
  167. .item-7 {
  168. background: linear-gradient(90deg, #d1c6f8, #a2c4f7);
  169. .item-icon-img {
  170. width: 43px;
  171. height: 37px;
  172. background-image: url('/src/assets/imgs/pro_count.png');
  173. }
  174. }
  175. }
  176. </style>

tip:图标没有加进来,不要可以去掉


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

vue3,vue组件,props给一个对象参数。vue组件间传参数vue父组件给子组件传参数。组件参数类型。父组件调用子组件的方法。vue组件事件监听,给子组件传递方法,子组件调用父组件方法

[TOC]组件可以使用props给组件传值,可以同时传递多个,可以是任意类型,比如字符串或者对象。 下面是个简单的例子: &lt...

vue3最基础的数据加载,表格table

vue3表格加载一点静态数据 &lt;template&gt; &lt;el-table :data=&quot;tableData&quot; style=&quot;width: 100%&quot...

vue3 Element Plus 表单输入框放到一行

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。 通过设置 inline 属性为 true 可以让表单域变为行内的表单域...

vue3 Element ui Plus 表格 分页,vue3 el-pagination分页

其实就是el-pagination控件的使用而已 &lt;template&gt; &lt;div&gt; &lt;el-table :data=&quot;tableData&quot; ...

vue触发a标签的点击事件。vue3 dom操作 触发点击事件 。文件选择库只会触发一次change事件的问题

[TOC]vue触发a标签的点击事件直接操作dom节点的方式比较简单 &lt;button @click=&quot;handleBtnClick&quot;&gt;点击按钮&...

vue3 ref的使用多个ref的使用。通过ref触发点击事件

多个ref获取的方法可以使用一样的,通过变量名来区分就行了 const vabUploadRef = ref() const multipleTableRef = ref() ...

vue elementui,vue3 element plus 文件上传的时候设置其他参数。后台.net接收传递的额外参数。图片上传

比如上传文件的时候额外传递两个select选择的值 前台前面上传文件的时候要提供默认参数很简单,el-upload绑定一个data即可...

vue,vue3 打开新页面,页面跳转。vue跳转到一个新页面。vue路由传参,vue3路由传参,vue3 获取路由参数

[TOC]VUE页面跳转本地页面跳转 goApplicationCenter() { //进行页面跳转 let path = &quot;/application-center&quo...

vuevue3组件封装,vue组件模板。简单组件模板。基础组件模板。vue引入自定义的组件。vue使用自定义的组件。插槽slot使用。vue封装格子效果,一块一块的grid布局效果

[TOC]vue封装组件的简单模板贴一个简单模板方便自定义组件的时候直接复制 &lt;template&gt; &lt;div class=&quot;app...

.net6 Signalr+vue3 的运用(上)

.net6 Signalr+Vue3 的运用(上)[TOC] 什么是 SignalR?ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加...

.net6 Signalr+vue3 的运用(下)

.net6 Signalr+Vue3 的运用(下)[TOC] 上篇链接:https://www.tnblog.net/hb/article/details/7961SignalR 中的用户 Sig...

.net6 Signalr+vue3 配合Ingress Nginx的运用

.net6 Signalr+Vue3 配合Ingress Nginx的运用[TOC] 结合上篇:https://www.tnblog.net/hb/article/details/7963 项目打...

vue3 Element Plus 表格使用vue3常用界面搭配。vue3基础模板使用

一个简单的表格加时间搜索界面效果如下: 代码如下: &lt;template&gt; &lt;div class=&quot;app-container&quot;&g...

vue3 如何加prototype。vue3使用globalProperties

在2.X版本中创建一个vue 实例是通过 new Vue()来实现的,到了3.X中则是通过使用createApp这个 API返回一个应用实例,并且可...
这一生多幸运赶上过你.
排名
8
文章
243
粉丝
7
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术