更新记录

1.0.3(2023-12-15) 下载此版本

删除无用的文件,添加 极简主题

1.0.2(2023-12-15) 下载此版本

支持自定义顶点个数,不支持手动指定顶点位置,只能通过计算得出

1.0.1(2023-12-15) 下载此版本

支持自定义顶点个数,不支持,手动支持顶点位置,只能通过计算得出

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
× × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

cj-polygonal

在实际使用中,宽高可能需要手动计算后指定(重点)

参数 说明 默认值
width 300
height 300
data [{label,value,displayValue}],有多少个对象,就有多少个顶点。[label:标签名,value:属性值] -
theme 主题:default、dark、bright、minimalist default
type 类型:square(方形),circular(圆形) square
title 标题(适配不是很好,建议直接该组件只显示图,及所需要的属性标签) -
vertexPositionsArrInit TODO 所有顶点的位置,后续实现自定义顶点需要用到 -
maxValue 属性的最大值 100
centerPointInit 中点:{x,y},如果不指定,则是中心点 -
isTextAdaptation 是否需要文字适配:第一个会往里缩,不修改偏移角度的时候有用 false
padding 内间距(图案到边界的距离) 2
startAngleInit 开始度数(起始就是偏转角度),这个是具体的度数(默认是从最右边开始的) 0
scaleNumberInit 刻度数(包含中心点)【不建议刻度太多,10个以内吧,不然可能会有适配的问题,因为刻度线是占了空间的】 7
distanceInit 每个刻度的间隔,是通过计算出来的(指定之后不再计算) -
bgColorInit 整体的背景颜色 -
lineColorInit 线条的颜色(刻度线) -
lineWidth 线的宽度 1
showBoundary 是否显示分界线 true
boundaryColorInit 分界线的颜色 -
boundaryWidth 分界线的宽度 -
textColorInit 文字颜色 -
fontStyle 字体样式 bold 10px Arial
patternLineColorInit 图案的线条颜色 -
patternLineWidth 图案的线条宽度 2
patternFillColorInit 图案的填充色 -
patternImage 填充图案(会覆盖填充色)[例如: /static/pattern.png] -
titleFillColorInit 标题填充颜色 -
xTextShifting 文字x轴偏移比例,显示的文字,其实也是一个更大的多边形 1
yTextShifting 文字y轴偏移比例,displayValue 和 label 的垂直间隔 1

示例代码


<template>
    <view class="content">
        <view>
            <cj-polygonal :data="data" :width="width" :height="height" :title="title" :theme="theme"></cj-polygonal>
        </view>
    </view>
</template>

<script>
    export default {
        data() {
            return {
                theme: "default",
                width: 300,
                height: 400,
                title: "个人能力属性图",
                data: [{
                    label: "力量",
                    value: 100,
                    //显示值
                    displayValue: "85KG"
                }, {
                    label: "天赋",
                    value: 84,
                    displayValue: "56点",
                }, {
                    label: "智力",
                    value: 66,
                    displayValue: "66点",
                }, {
                    label: "敏捷",
                    value: 49,
                    displayValue: '36点',
                }, {
                    label: "坚毅",
                    value: 33,
                    displayValue: '50点',
                }, {
                    label: "防御",
                    value: 16.66,
                    displayValue: '优秀',
                }]
            }
        },
        onLoad() {
            let arr = ["bright", "default", "dark", "minimalist"]
            setInterval(() => {
                for (var i = 0; i < this.data.length; i++) {
                    this.data[i].value = Math.floor(Math.random() * 100)
                    this.data[i].displayValue = this.data[i].value + "点"
                }
                this.theme = arr[Math.floor(Math.random() * 4)]
            }, 1000)
        },
        methods: {

        }
    }
</script>

<style>
    .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问