uni-app 自定义选择日期1(2021-09-16)

效果图:

 组件:ren-calendar.vue

<template>
    <view class="calendar-wrapper">
        <view class="header" v-if="headerBar">
            <view class="pre" @click="changeMonth('pre')">上个月</view>
            <view>{ {y+'年'+formatNum(m)+'月'}}</view>
            <view class="next" @click="changeMonth('next')">下个月</view>
        </view>
        <view class="week">
            <view class="week-day" v-for="(item, index) in weekDay" :key="index">{ { item }}</view>
        </view>
        <view :class="{ hide: !monthOpen }" class="content" :style="{ height: height }">
            <view :style="{ top: positionTop + 'rpx' }" class="days">
                <view class="item" v-for="(item, index) in dates" :key="index">
                    <view class="day" @click="selectOne(item, $event)" :class="{
                            choose: choose == `${item.year}-${item.month}-${item.date}`&&item.isCurM,
                            nolm: !item.isCurM,
                            today: isToday(item.year, item.month, item.date),
                            isWorkDay: isWorkDay(item.year, item.month, item.date)
                        }">
                        { { Number(item.date) }}
                    </view>
                    <view class="markDay" v-if="isMarkDay(item.year, item.month, item.date)&&item.isCurM"></view>
                    <!-- <view class="today-text" v-if="isToday(item.year, item.month, item.date)">今</view> -->
                </view>
            </view>
        </view>
        <image src="https://i.loli.net/2020/07/16/2MmZsucVTlRjSwK.png" mode="scaleToFill" v-if="collapsible"
            @click="toggle" class="weektoggle" :class="{ down: monthOpen }"></image>
    </view>
</template>

<script>
    export default {
        name: 'ren-calendar',
        props: {
            // 星期几为第一天(0为星期日)
            weekstart: {
                type: Number,
                default: 0
            },
            // 标记的日期
            markDays: {
                type: Array,
                default: () => {
                    return [];
                }
            },
            //是否展示月份切换按钮
            headerBar: {
                type: Boolean,
                default: true
            },
            // 是否展开
            open: {
                type: Boolean,
                default: true
            },
            //是否可收缩
            collapsible: {
                type: Boolean,
                default: true
            },
            //未来日期是否不可点击
            disabledAfter: {
                type: Boolean,
                default: false
            }
        },
        data() {
            return {
                weektext: ['日', '一', '二', '三', '四', '五', '六'],
                y: new Date().getFullYear(), /

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
步骤如下: 1. 创建一个uni-app项目,选择合适的模板,比如HBuilder里面的“uni-app框架模板”。 2. 在项目中新建一个“工时统计”页面,可以通过在pages目录下新建一个“timesheet”页面,并在pages.json中配置路由。 3. 在页面中设计好工时统计需要的UI界面,比如可以使用uni-ui或者自定义组件库。 4. 给页面中的控件添加事件处理函数,比如点击“添加工时”按钮时,弹出一个对话框让用户输入工作日期、工作时间、备注等信息,然后将这些信息添加到工时列表中。 5. 设计好工时列表的数据结构,比如可以使用一个数组来存储每个工时的信息。每个工时可以包含日期、时间、备注等属性。 6. 在页面中显示工时列表,可以使用uni-ui中的列表控件,或者自己实现一个列表控件。 7. 实现工时列表的编辑和删除功能。当用户长按某个工时时,弹出一个菜单,让用户可以编辑或删除该工时。 8. 设计好统计界面,显示每周、每月或每年的工作总时间统计信息。可以使用echarts等开源图表库来绘制统计图表。 9. 实现导入和导出功能,让用户可以将工时数据保存为excel或者csv格式的文件,或者从文件中导入工时数据。 10. 测试应用的各项功能,调试出现的问题并修复。 以上就是使用uni-app实现工时统计的主要步骤。其中涉及到UI设计、事件处理、数据结构设计、组件实现、图表绘制以及数据导入导出等方面的知识。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyxhzdm

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值