vue3开源组件vue-activity-calendar,类似GitHub贡献图的高自由度组件

在这里插入图片描述

使用方式

本组件需要在Vue3上运行,使用方式:

    npm install vue-activity-calendar

全局引入

main.js

//你需要引入该组件
import ActivityCalendar from "vue-activity-calendar";
//同时引入css文件,确保基本样式可用
import "vue-activity-calendar/style.css"; 
//以下是vue3的组件装载环节,这里不详细描述了
const app = createApp(App);
app.use(ActivityCalendar); 

App.vue
注意组件导出的名称是“ActivityCalendar”

<template>
  <ActivityCalendar
    :data="data"
    :width="40"
    :height="7"
    :cellLength="20"
    :cellInterval="10"
    :colors="colors"
    :cellBorderRadius="4" 
    :fontSize="12"
    :showLevelFlag="false"
  />
</template>

按需引入

demo.vue

//单独引入该组件
import { ActivityCalendar } from "vue-activity-calendar";
//同时引入css文件,确保基本样式可用
import "vue-activity-calendar/style.css";  
<template>
  <ActivityCalendar
    :data="data"
    :width="40"
    :height="7"
    :cellLength="20"
    :cellInterval="10"
    :colors="colors"
    :cellBorderRadius="4" 
    :fontSize="12"
    :showLevelFlag="false"
  />
</template>

那么接下来就能正常使用了

文档

参数类型描述
dataArray必要. 你要渲染的数据,它应该是一个数组,并且它的元素是对象结构,具体为{ date: “2022-09-22”, count: 5 },其中date表示日期,格式为:‘yyyy-mm-dd’,count表示程度(活跃度)
endDateString默认本地日期. 截止日期
widthNumber默认35. 宽度w,一共容纳w个小单元格
heightNumber默认7. 高度h,一共容纳h个小单元格
cellLengthNumber默认16. 单元格边长,单位px
cellIntervalNumber默认6. 单元格间隔,单位px
cellBorderRadiusNumber默认3. 单元格的border-radius属性值,单位px
headerArray默认为中文的[一月~十二月]. 图表的表头显示的文字,传入长为12的字符串数组
showHeaderBoolean默认true. 是否显示header
backgroundColorString默认#ffffff. 图表背景颜色传入rgb十六位数值
colorsArray<String>默认[“#f5f5f5”,“#ebfaff”,“#e5f9ff”,“#c7f1ff”,“#86e0fe”,“#3ecefe”,]. 不同程度对应的颜色
showWeekDayFlagBoolean默认true. 是否显示星期标志(显示于左侧)
WeekDayFlagTextArray<String>可自定义. 自定义星期标志的内容
levelMapperFunciton可自定义. 该函数用于将data数组元素中的count数值映射成第n个颜色,即colors[n]
showLevelFlagBoolean默认true. 是否显示颜色层级示意图(显示于右下方)
levelFlagTextArray<String>可自定义. 颜色层级示意图的两侧的文字,需要一个长度为2的字符串数组
fontSizeNumber默认12. 文字大小,单位px
fontColorString默认#080808. 文字颜色
clickEventFunciton可自定义. 单元格点击事件回调函数

以下是levelMapper的默认函数,仅作为参考,作者建议:colors传入颜色十六进制字符串数组,假设长度为8,也就是分为8个活跃度层级,那么levelMapper应当设置8个条件分支,根据count分配等级,返回值就是colors数组的索引值index

function levelMapper(count) {
  if (count == 0) {
    return 0;
  } else if (count <= 1) {
    return 1;
  } else if (count <= 3) {
    return 2;
  } else if (count <= 6) {
    return 3;
  } else if (count <= 9) {
    return 4;
  } else {
    return 5;
  }
}

https://github.com/cz2542079957/vue-activity-calendar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值