uniapp : 仿钉钉考勤统计页面的日历组件,通过日历展示每日考勤打卡情况,支持在日历上打两种不同类型的点,大致适配各种分辨率

效果图

  1. 不带月份变化事件

  2. 带月份变化事件

demo的github地址

介绍

  1. 使用的组件基于uni-calendar,插件市场地址,组件示例

  2. 本文使用的组件在上面的组件基础上做了一些个性化适配,增加了如下内容:

    • 系统当前日期样式由[白底蓝字]调整为[淡蓝色圆形背景白字]
    • 选中日期样式由[蓝色矩形背景白字]调整为[蓝色圆形背景白字]
    • 在日期上打点的样式由[日期右上角]调整为[日期底部正中间]
    • 提供两种不同的打点样式
    • 增加月份变化事件的外部调用接口
    • 怎么添加多种不同的打点样式
    • 去掉了[今日]快捷按钮
  3. 本文中的组件样式能适配不同的分辨率,但打点样式可能在细微之处有所不同(不是那么居中)

4.重点:适配ipad大屏请进行如下配置!!!适配ipad大屏请进行如下配置!!!适配ipad大屏请进行如下配置!!!

在pages.json 的 globalStyle 中添加如下三行配置内容:

	"globalStyle": {
		"rpxCalcMaxDeviceWidth": 1024,
		"rpxCalcBaseDeviceWidth": 375,
		"rpxCalcIncludeWidth": 750
	}

使用方法(一):不带月份选择

  1. 点击此处下载github上的demo

  2. 在项目中新建pages的同级目录components,将uni-calendar文件放在里面

3.在main.js中添加如下代码引入组件

import myCalender from "./components/uni-calendar/components/uni-calendar/uni-calendar.vue";
Vue.component('my-calender',myCalender);

  1. 在页面中加载组件
<template>
	<view>
		<my-calender :clearDate="true" :showMonth="false" :insert="true" :selected="selected" :lunar="false"
			:start-date="'1990-01-01'" :end-date="'2099-01-01'" @change="dateChange">
		</my-calender>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				selected: [{
					date: '2022-03-18', // date为所需要打点的日期
					type: "abnormal" // abnormal显示为橙色点
				}, {
					date: '2022-03-19',
					type: "normal" // normal显示为蓝色点
				}],
			}
		},
		methods: {
			/**
			 * 选中日期的触发事件
			 */
			dateChange: function(e) {
				console.log(e);
			},
		},
	}
</script>
  • 需要打点,请配置selected参数
  • 需要显示农历,请配置lunar参数为true
  • 需要月份水印,请配置showMonth参数为true
  • 这里的月份是写死的,固定为:系统当前日期的月份

效果图:

使用方法(二):带月份选择

  1. 打开uni-calendar.vue

  2. 修改代码:

  3. 在引用组件的页面添加monthSwitch事件

	<view>
		<my-calender :clearDate="true" :showMonth="false" :insert="true" :selected="selected" :lunar="false"
			:start-date="'1990-01-01'" :end-date="'2099-01-01'" @monthSwitch="monthSwitch" @change="dateChange">
		</my-calender>
	</view>
		methods: {
			/**
			 * 选中日期的触发事件
			 */
			dateChange: function(e) {
				console.log(e);
			},
			/**
			 *  选中月份的触发事件
			 */
			monthSwitch:function(e){
				console.log(e);
			}
		},

效果图:

使用方法(三):如何自定义样式的数量和类型

  1. 打开uni-calendar-item.vue

  2. 看到这个地方:

一些小小的缺憾

  • 打点的位置,在某些分辨率上,并没有特别居中
  • 圆形背景,在某些分辨率上,并没有特别圆,可能有个平头

posted on   northwest  阅读(6620)  评论(1编辑  收藏  举报

相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示