iview Tab表格里面把时间轴里面的时间段,用开始-结束时间,阴影显示在Tab上

    //查询所有播表时间轴
    load_getTimeAxis() { 
        this.$axios({
            method: 'get',
            url: this.baseURL + '/broadcast/timeAxis/getTimeAxis_View',
            params: {
                currentPage: this.currentPage,
                pageSize: this.pageSize,
            }
        })
        .then((res)=> {
            console.log(res.data);
            this.historyData = res.data.list;  //把结果拿到的数据赋给table
            this.dataCount = res.data.total; //所有的条数
        }).catch((error) =>{})
    },
    times(){
        // 24*60*60 = 86400 秒
        // 02:00- 02:30   1.( 2*60*60 = 7200)  7200 秒 / 86400 秒=  0.083;   2.(2.5*60*60 / 24*60*60 = 0.104;)  第一个点的位置是在 8.3% 到 10.4% 的位置
    },
    // 计算left值
    countLeftValue(timeRange) {
        // let width = this.$refs.timeBox
        // let timeRange = "00:00:00-01:01:00";
        let totalTime = 24*60*60 // s
        let startTime = timeRange.split('-')[0].split(':')[0] *60 * 60 + timeRange.split('-')[0].split(':')[1] *60 + Number(timeRange.split('-')[0].split(':')[2]) // 秒
        let endTime = timeRange.split('-')[1].split(':')[0] *60 * 60 + timeRange.split('-')[1].split(':')[1] *60 + Number(timeRange.split('-')[1].split(':')[2])  // 秒
        let left = (startTime / totalTime) * 100 + '%'
        let width =( (endTime - startTime) / totalTime) * 100 + '%'
        console.log(endTime, startTime, totalTime, width)
        return {left: left, width: width}
    },
    //列表左侧checkbox
    selectTable(data){   
        this.selectData = data;
        console.log(data);
    },
    //修改每页显示条数时调用
    pages(num) { 
        this.pageSize = num;
        this.changepage(1);
    },
    changepage(index) {

    },

},
created(){
    //查询所有播表时间轴
    this.load_getTimeAxis();
},

真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】

computed:{
    // this.countLeftValue()
},
mounted(){

}

}



**方法二**


列子:


beginTime:"00:00:00",


endTime:"11:59:59",


如果返回的一个开始时间和结束时间,并且以这个为时间轴的起点  和重点位置;


这时,需要重新计算每行的 总时间:totalTime


let new\_endTime = endTime.split('-')[0].split(':')[0] \*60 \* 60 + endTime.split('-')[0].split(':')[1] \*60 + Number(endTime.split('-')[0].split(':')[2]); // 秒


let new\_beginTime = beginTime.split('-')[0].split(':')[0] \*60 \* 60 + beginTime.split('-')[0].split(':')[1] \*60 + Number(beginTime.split('-')[0].split(':')[2]); // 秒


let totalTime = (new\_endTime - new\_beginTime);



**小心有坑:**


left 的值会变化;如果起始时间 从0点0分0秒 开始是正常的,否则有bug;


let left = (start\_Time / totalTime) \*100;


let width =( (end\_Time - start\_Time) / totalTime)\*100 + '%';



if( left >100 ){


left = (left - 100 )+ '%'


}else{


left = left + '%'


}


详细代码如下:



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 iView 的 `DatePicker` 和 `TimePicker` 组件配合使用来实现日期时间选择器,并且可以通过设置 `disabledDate` 函数来限制开始时间结束时间。 以下是一个示例代码: ```html <template> <div> <DatePicker v-model="startDate" :disabledDate="disabledStartDate" placeholder="开始时间" /> <TimePicker v-model="startTime" :disabledHours="disabledStartHours" :disabledMinutes="disabledStartMinutes" :disabledSeconds="disabledStartSeconds" placeholder="开始时间" /> <DatePicker v-model="endDate" :disabledDate="disabledEndDate" placeholder="结束时间" /> <TimePicker v-model="endTime" :disabledHours="disabledEndHours" :disabledMinutes="disabledEndMinutes" :disabledSeconds="disabledEndSeconds" placeholder="结束时间" /> </div> </template> <script> export default { data() { return { startDate: null, startTime: null, endDate: null, endTime: null, }; }, methods: { disabledStartDate(date) { if (!this.endDate) { return false; } return date && date.valueOf() > this.endDate.valueOf(); }, disabledEndDate(date) { if (!this.startDate) { return false; } return date && date.valueOf() < this.startDate.valueOf(); }, disabledStartHours() { if (!this.startTime) { return []; } return Array.from({ length: 24 }, (_, i) => i).slice(0, this.endTime.getHours()); }, disabledStartMinutes(h) { if (!this.startTime || h < this.endTime.getHours()) { return []; } return Array.from({ length: 60 }, (_, i) => i).slice(0, this.endTime.getMinutes()); }, disabledStartSeconds(h, m) { if (!this.startTime || h < this.endTime.getHours() || m < this.endTime.getMinutes()) { return []; } return Array.from({ length: 60 }, (_, i) => i).slice(0, this.endTime.getSeconds()); }, disabledEndHours() { if (!this.endTime) { return []; } return Array.from({ length: 24 }, (_, i) => i).slice(this.startTime.getHours() + 1); }, disabledEndMinutes(h) { if (!this.endTime || h > this.startTime.getHours() + 1) { return []; } return Array.from({ length: 60 }, (_, i) => i).slice(this.startTime.getMinutes() + 1); }, disabledEndSeconds(h, m) { if (!this.endTime || h > this.startTime.getHours() + 1 || m > this.startTime.getMinutes() + 1) { return []; } return Array.from({ length: 60 }, (_, i) => i).slice(this.startTime.getSeconds() + 1); }, }, }; </script> ``` 在上面的示例代码中,我们使用了四个数据属性 `startDate`、`startTime`、`endDate` 和 `endTime` 来分别存储用户选择的开始日期时间结束日期时间。 在 `DatePicker` 和 `TimePicker` 组件上,我们使用 `v-model` 指令将其与数据属性绑定,以实现双向绑定。 在 `DatePicker` 组件上,我们通过设置 `disabledDate` 函数来禁用开始时间晚于结束时间的日期。 在 `TimePicker` 组件上,我们通过设置 `disabledHours`、`disabledMinutes` 和 `disabledSeconds` 函数来禁用开始时间晚于结束时间的时、分、秒。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值