原文链接:uniapp : 仿钉钉考勤统计页面的日历组件,通过日历展示每日考勤打卡情况,支持在日历上打两种不同类型的点,大致适配各种分辨率 - northwest - 博客园 (cnblogs.com)
效果图
不带月份变化事件

带月份变化事件

介绍
本文使用的组件在上面的组件基础上做了一些个性化适配,增加了如下内容:
本文中的组件样式能适配不同的分辨率,但打点样式可能在细微之处有所不同(不是那么居中)
4.重点:适配ipad大屏请进行如下配置!!!适配ipad大屏请进行如下配置!!!适配ipad大屏请进行如下配置!!!
在pages.json 的 globalStyle 中添加如下三行配置内容:
- "globalStyle": {
- "rpxCalcMaxDeviceWidth": 1024,
- "rpxCalcBaseDeviceWidth": 375,
- "rpxCalcIncludeWidth": 750
- }
使用方法(一):不带月份选择
在项目中新建pages的同级目录components,将uni-calendar文件放在里面

3.在main.js中添加如下代码引入组件
- import myCalender from "./components/uni-calendar/components/uni-calendar/uni-calendar.vue";
- Vue.component('my-calender',myCalender);

- <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>
效果图:

使用方法(二):带月份选择
打开uni-calendar.vue

修改代码:

在引用组件的页面添加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);
- }
- },
效果图:

使用方法(三):如何自定义样式的数量和类型
打开uni-calendar-item.vue

看到这个地方:

一些小小的缺憾