ElementUI实现表格内嵌进度条功能

简介: ElementUI实现表格内嵌进度条功能

一、引言

在着手做项目时,尤其是后台管理系统类的项目,不难会遇到,数据用进度条的形式呈现,可视化。


二、方法

本次实验主要应用element组件中的progress。

需要使用到属性:

Type 进度条类型line/circle/dashboard
:text-inside 进度条显示文字内置在进度条内(只在 type=line 时可用)
:percentage 百分比(必填)
:color 进度条背景色(会覆盖 status 状态颜色)


三、实验结果与讨论

  1. 前期准备工作
  1. 写出基出表格

1.2使用JavaScript

当el-table元素中注入data对象数组后,在el-table-column中用prop属性来对应对象中的键名即可填入数据,用label属性来定义表格的列名。可以使用width属性来定义列宽。

Element组件地址https://element.eleme.cn/#/zh-CN/component/table

2.实现功能

使用数组,自定义进度条数值。:percentage="scope.row.progress"

根据scope.row行数据变化动态显示行内控件,progress是定义的变量进行赋值。

<template slot-scope="scope">
   <el-progress
   type="line"
   :stroke-width="15"
:percentage="scope.row.progress"
:color="blue"
   ></el-progress>
</template>

3完整实验代码

<el-table :data="jinDuData" style="width: 100%">
             <el-table-column
               prop="zhuangtai"
               label="状态"
             >
               <template scope="scope">
                 <span v-if="scope.row.zhuangtai==='进行中'" style="color: green">进行中</span>
                 <span v-else-if="scope.row.zhuangtai==='已延期'"  style="color: red">已延期</span>
                 <span v-else-if="scope.row.zhuangtai==='未开始'"  style="color: orange">未开始</span>
                 <span v-else style="color:gray"><del>已结束</del></span>
               </template>
             </el-table-column>
             <el-table-column
               prop="progress"
               label="进度"
             >
               <template slot-scope="scope">
                 <el-progress
                   type="line"
                   :stroke-width="15"
                   :percentage="scope.row.progress"
                   :color="blue"
                 ></el-progress>
               </template>
      </el-table-column>
</el-table>
<script>
export default {
 data() {
   return {
     reverse: true,
     jinDuData:[{
       zhuangtai:'进行中',
       progress:10
     },{
       zhuangtai:'进行中',
       progress:90
     },{
       zhuangtai:'已延期',
       progress:50
     },{
       zhuangtai:'已延期',
       progress:70
     },{
       zhuangtai:'未开始',
       progress:100
     },{
       zhuangtai:'已结束',
       progress:10
     },{
       zhuangtai:'已结束',
       progress:30
     }],
}
</script>


四、结语

本次实验解决的问题为table表格中内嵌进度条,实现数值自定义功能。实验过程中,多次实验可行解决方案,最终发现可以根据scope.row行数据变化动态显示行内控件。

目录
相关文章
element el-cascader动态编辑赋值后,不回显的解决方法(整理)
element el-cascader动态编辑赋值后,不回显的解决方法(整理)
|
JSON JavaScript API
【开源打印组件】vue-plugin-hiprint初体验
本文介绍对vue-plugin-hiprint部分重要代码的解析,这是一个很好的开源插件,能够自己自定义打印模板,通过后端传来的数据进行渲染打印,官方也提供了许多的api供开发者使用。界面采用了antdesign。实现了免预览的直接打印。
4007 1
【开源打印组件】vue-plugin-hiprint初体验
|
JavaScript
element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示
问题原因:多个tabs共用一个实体,动态显示隐藏列 出现了固定在右侧的列(fixed="right")错位 【解决方案】 表格的重新布局,只要table数据发生变化的时候就重新渲染表格 ```js this.$nextTick(() => { this.$refs.formname.doLayout() }) ``` 参考element官方文档 ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-e40
649 0
element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示
ModuleNotFoundError: No module named ‘mmdet.version‘
ModuleNotFoundError: No module named ‘mmdet.version‘
1689 0
|
3月前
送福利!FlowBench客户端首批内测邀请函
魔搭AIGC搭子们,集合啦!ModelScope x FlowBench 团队
157 3
|
数据格式
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
本文介绍了在ElementUI和ElementPlus中使用`el-table`组件实现合并行功能的技巧,包括多列合并和单列合并的方法,并提供了相应的示例代码和运行效果。
9563 1
使用小技巧实现el-table组件的合并行功能,ElementUI和ElementPlus都适用
|
11月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
322 6
Vue3进度条(Progress)
这是一个基于 Vue2 的进度条组件,支持线性 (`line`) 和圆形 (`circle`) 两种模式。可通过多种属性自定义进度条的样式和行为,包括宽度、进度百分比、颜色、线宽、线帽样式等。此外,还支持显示进度文本或图标,并允许通过插槽自定义内容。该组件提供了丰富的配置选项,适用于多种应用场景。
1621 5
Vue3进度条(Progress)
|
JavaScript
Vue2进度条(Progress)
这篇文章介绍了如何在Vue 3框架中创建一个可自定义设置的进度条组件,包括进度条的宽度、当前进度、线条宽度和是否显示进度信息等属性。
556 2
Vue2进度条(Progress)