Vue render渲染 时间戳转时间,时间转时间戳及渲染进度条

本文介绍如何在Vue项目中实现表格中的时间格式化显示及进度条功能,包括时间戳转换为日期格式的方法及使用Progress组件展示任务完成进度的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一.格式化时间

 

效果图:

time

实现上述界面代码如下:

 

 data() {
            return {
                loading: false,
                demandData: [],
                demandcount: 0,//总条数
                skip: 0, //分页
                pageSize: this.LIMIT,
                columns: [
                    {
                        title: '编号',
                        width: 60,
                        align: 'center',
                        type: 'index'
                    },

                    {
                        title: '标签名称',
                        key: 'd_title'
                    },
                    {
                        title: '创建者',
                        key: 'd_create_user'
                    },
                    {
                        title: '内容描述',
                        key: 'd_content',
                        width: "20%"
                    },
                    {
                        title: '创建时间',
                        key: 'd_create_time',
                        render: (h, params) => {
                            const row = params.row;
                            return h('div', [
                                h('span', {}, this.timeStamp(row.d_create_time)),
                            ]);
                        }
                    },
                    {
                        title: '修改时间',
                        key: 'd_change_times'
                    },
                    {
                        title: '完成进度',
                        key: 'd_progress',
                        render: (h, params) => {
                            return h('div',[
                                h('Progress', {
                                    props: {
                                        type: 'Progress',
                                        size: 'small',
                                        percent:parseInt(params.row.d_progress)
                                    }
                                }, params.row.d_progress+'%'),])
                        }

                    },
                    {
                        title: '操作',
                        key: 'operation',
                        align: 'center',
                        render: (h, params) => {
                            return h('div', [
                                h('Button', {
                                    props: {
                                        type: 'primary',
                                        size: 'small'
                                    },
                                    style: {
                                        marginRight: '5px'
                                    },
                                    on: {
                                        click: () => {

                                            console.log(params);

                                            // this.$router.push({path: '/xxxx', query: {fc_id: params.row.fc_id}});

                                            alert(1)
                                        }
                                    }
                                }, '分配'),
                                h('Button', {
                                    props: {
                                        type: 'primary',
                                        size: 'small'
                                    },
                                    style: {
                                        marginRight: '5px'
                                    },
                                    on: {
                                        click: () => {

                                            console.log(params);

                                            alert(2)


                                        }
                                    }
                                }, '编辑'),
                                h('Button', {
                                    props: {
                                        type: 'primary',
                                        size: 'small'
                                    },
                                    style: {
                                        marginRight: '5px'
                                    },
                                    on: {
                                        click: () => {

                                            console.log(params);

                                            // this.$router.push({path: '/xxxx', query: {fc_id: params.row.fc_id}});


                                            alert(3)
                                        }
                                    }
                                }, '备注'),
                                h('Button', {
                                    props: {
                                        type: 'primary',
                                        size: 'small'
                                    },
                                    style: {
                                        marginRight: '0px'
                                    },
                                    on: {
                                        click: () => {

                                            console.log(params);

                                            // this.$router.push({path: '/xxxx', query: {fc_id: params.row.fc_id}});


                                            alert(4)
                                        }
                                    }
                                }, '修改')
                            ]);
                        }
                    }
                ]
            }
        },

 

数据表:

data

 

显示时间具体代码:

 {
                        title: '创建时间',
                        key: 'd_create_time',
                        render: (h, params) => {
                            const row = params.row;
                            return h('div', [
                                h('span', {}, this.timeStamp(row.d_create_time)),
                            ]);
                        }
                    }

 

时间转化工具类:

 

 //时间戳转时间
      Vue.prototype.timeStamp = function (time) {
          var date = new Date(time * 1000);
          var Y = date.getFullYear() + '-';
          var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
          var D = date.getDate() + ' ';
          var h = date.getHours() + ':';
          var m = date.getMinutes() + ':';
          var s = date.getSeconds();

          if(D < 10){
              D = "0" + D;
          }
          return Y + M + D

      }
      //时间转时间戳
      Vue.prototype.time = function (index) {
          var strtime = index;
          var date = new Date(strtime);
          var time = Date.parse(date) / 1000;
          return time
      }

 

二.进度条:

 

 {
                        title: '完成进度',
                        key: 'd_progress',
                        render: (h, params) => {
                            return h('div',[
                                h('Progress', {
                                    props: {
                                        type: 'Progress',
                                        size: 'small',
                                        percent:parseInt(params.row.d_progress)
                                    }
                                }, params.row.d_progress+'%'),])
                        }

                    }

 

其他具体界面实现请查看:https://www.iviewui.com/components/table

### Ant Design Vue 表格 时间格式化方法 在 Ant Design Vue 中,可以通过自定义列渲染器来实现表格内的时间格式化功能。具体来说,在 `columns` 配置项中指定一列的数据索引,并通过作用域插槽(scoped slot)处理该列显示的内容。 对于时间字段而言,通常会先获取原始数据中的日期字符串或时间戳,再利用 JavaScript 的内置对象如 Date 或者借助第三方库 moment.js 来完成格式换工作[^1]。 下面是一个简单的例子展示如何在一个名为 `created_at` 的列里应用这种技术: ```javascript // 假设这是组件内的部分代码片段 data() { return { columns: [ { title: '创建时间', dataIndex: 'created_at', scopedSlots: { customRender: 'createdAt' } }, // ...其他配置... ], }; }, methods: { formatTime(timeStamp) { const date = new Date(parseInt(timeStamp)); let year = date.getFullYear(); let month = ("0" + (date.getMonth() + 1)).slice(-2); let day = ("0" + date.getDate()).slice(-2); let hour = ("0" + date.getHours()).slice(-2); let minute = ("0" + date.getMinutes()).slice(-2); let second = ("0" + date.getSeconds()).slice(-2); return `${year}-${month}-${day} ${hour}:${minute}:${second}`; } } ``` ```html <!-- 对应于上述JavaScript代码 --> <template> <!-- 使用a-table标签表示ADVue的表格组件 --> <a-table :columns="columns" :dataSource="data"> <!-- 定义用于呈现特定单元格内容的slot --> <span slot="createdAt" slot-scope="text">{{formatTime(text)}}</span> </a-table> </template> ``` 此示例展示了如何将 Unix 时间戳化为更易读的形式并呈现在表格之中。当然也可以根据实际需求调整函数逻辑以适应不同的输入格式和期望输出样式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值