/* * uCharts® * 高性能跨平台图表库,支持H5、APP、小程序(微信/支付宝/百度/头条/QQ/360)、Vue、Taro等支持canvas的框架平台 * Copyright (c) 2021 QIUN®秋云 https://www.ucharts.cn All rights reserved. * Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) * 复制使用请保留本段注释,感谢支持开源! * * uCharts®官方网站 * https://www.uCharts.cn * * 开源地址: * https://gitee.com/uCharts/uCharts * * uni-app插件市场地址: * http://ext.dcloud.net.cn/plugin?id=271 * */ // 主题颜色配置:如每个图表类型需要不同主题,请在对应图表类型上更改color属性 const color = ['#1890FF', '#91CB74', '#FAC858', '#EE6666', '#73C0DE', '#3CA272', '#FC8452', '#9A60B4', '#ea7ccc']; //事件转换函数,主要用作格式化x轴为时间轴,根据需求自行修改 const formatDateTime = (timeStamp, returnType) => { var date = new Date(); date.setTime(timeStamp * 1000); var y = date.getFullYear(); var m = date.getMonth() + 1; m = m < 10 ? ('0' + m) : m; var d = date.getDate(); d = d < 10 ? ('0' + d) : d; var h = date.getHours(); h = h < 10 ? ('0' + h) : h; var minute = date.getMinutes(); var second = date.getSeconds(); minute = minute < 10 ? ('0' + minute) : minute; second = second < 10 ? ('0' + second) : second; if (returnType == 'full') { return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second; } if (returnType == 'y-m-d') { return y + '-' + m + '-' + d; } if (returnType == 'h:m') { return h + ':' + minute; } if (returnType == 'h:m:s') { return h + ':' + minute + ':' + second; } return [y, m, d, h, minute, second]; } const cfu = { //demotype为自定义图表类型,一般不需要自定义图表类型,只需要改根节点上对应的类型即可 "type": ["pie", "ring", "rose", "word", "funnel", "map", "arcbar", "line", "column", "bar", "area", "radar", "gauge", "candle", "mix", "tline", "tarea", "scatter", "bubble", "demotype" ], "range": ["饼状图", "圆环图", "玫瑰图", "词云图", "漏斗图", "地图", "圆弧进度条", "折线图", "柱状图", "条状图", "区域图", "雷达图", "仪表盘", "K线图", "混合图", "时间轴折线", "时间轴区域", "散点图", "气泡图", "自定义类型" ], //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型,例如最后的"demotype" //自定义类型时需要注意"tline","tarea","scatter","bubble"等时间轴(矢量x轴)类图表,没有categories,不需要加入categories "categories": ["line", "column", "bar", "area", "radar", "gauge", "candle", "mix", "demotype"], //instance为实例变量承载属性,不要删除 "instance": {}, //option为opts及eopts承载属性,不要删除 "option": {}, //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换 "formatter": { "yAxisDemo1": function(val) { return val + '元' }, "yAxisDemo2": function(val) { return val.toFixed(2) }, "xAxisDemo1": function(val) { return val + '年' }, "xAxisDemo2": function(val) { return formatDateTime(val, 'h:m') }, "seriesDemo1": function(val) { return val + '元' }, "tooltipDemo1": function(item, category, index, opts) { if (index == 0) { return '随便用' + item.data + '年' } else { return '其他我没改' + item.data + '天' } }, "pieDemo": function(val, index, series) { if (index !== undefined) { return series[index].name + ':' + series[index].data + '元' } }, }, //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在opts参数,会将demotype与opts中option合并后渲染图表。 "demotype": { //我这里把曲线图当做了自定义图表类型,您可以根据需要随意指定类型或配置 "type": "line", "color": color, "padding": [15, 10, 0, 15], "xAxis": { "disableGrid": true, }, "yAxis": { "gridType": "dash", "dashLength": 2, }, "legend": {}, "extra": { "line": { "type": "curve", "width": 2 }, } }, //下面是自定义配置,请添加项目所需的通用配置 "pie": { "type": "pie", "color": color, "padding": [5, 5, 5, 5], "extra": { "pie": { "activeOpacity": 0.5, "activeRadius": 10, "offsetAngle": 0, "labelWidth": 15, "border": true, "borderWidth": 3, "borderColor": "#FFFFFF" }, } }, "ring": { "type": "ring", "color": color, "padding": [5, 5, 5, 5], "rotate": false, "dataLabel": true, "legend": { "show": true, "position": "right", "lineHeight": 25, }, "title": { "name": "收益率", "fontSize": 15, "color": "#666666" }, "subtitle": { "name": "70%", "fontSize": 25, "color": "#7cb5ec" }, "extra": { "ring": { "ringWidth": 30, "activeOpacity": 0.5, "activeRadius": 10, "offsetAngle": 0, "labelWidth": 15, "border": true, "borderWidth": 3, "borderColor": "#FFFFFF" }, }, }, "rose": { "type": "rose", "color": color, "padding": [5, 5, 5, 5], "legend": { "show": true, "position": "left", "lineHeight": 25, }, "extra": { "rose": { "type": "area", "minRadius": 50, "activeOpacity": 0.5, "activeRadius": 10, "offsetAngle": 0, "labelWidth": 15, "border": false, "borderWidth": 2, "borderColor": "#FFFFFF" }, } }, "word": { "type": "word", "color": color, "extra": { "word": { "type": "normal", "autoColors": false } } }, "funnel": { "type": "funnel", "color": color, "padding": [15, 15, 0, 15], "extra": { "funnel": { "activeOpacity": 0.3, "activeWidth": 10, "border": true, "borderWidth": 2, "borderColor": "#FFFFFF", "fillOpacity": 1, "labelAlign": "right" }, } }, "map": { "type": "map", "color": color, "padding": [0, 0, 0, 0], "dataLabel": true, "extra": { "map": { "border": true, "borderWidth": 1, "borderColor": "#666666", "fillOpacity": 0.6, "activeBorderColor": "#F04864", "activeFillColor": "#FACC14", "activeFillOpacity": 1 }, } }, "arcbar": { "type": "arcbar", "color": color, "title": { "name": "百分比", "fontSize": 25, "color": "#00FF00" }, "subtitle": { "name": "默认标题", "fontSize": 15, "color": "#666666" }, "extra": { "arcbar": { "type": "default", "width": 12, "backgroundColor": "#E9E9E9", "startAngle": 0.75, "endAngle": 0.25, "gap": 2 } } }, "line": { "type": "line", "color": color, "padding": [15, 10, 0, 15], "xAxis": { "disableGrid": true, }, "yAxis": { "gridType": "dash", "dashLength": 2, }, "legend": {}, "extra": { "line": { "type": "straight", "width": 2 }, } }, "tline": { "type": "line", "color": color, "padding": [15, 10, 0, 15], "xAxis": { "disableGrid": false, "boundaryGap": "justify", }, "yAxis": { "gridType": "dash", "dashLength": 2, "data": [{ "min": 0, "max": 80 }] }, "legend": {}, "extra": { "line": { "type": "curve", "width": 2 }, } }, "tarea": { "type": "area", "color": color, "padding": [15, 10, 0, 15], "xAxis": { "disableGrid": true, "boundaryGap": "justify", }, "yAxis": { "gridType": "dash", "dashLength": 2, "data": [{ "min": 0, "max": 80 }] }, "legend": {}, "extra": { "area": { "type": "curve", "opacity": 0.2, "addLine": true, "width": 2, "gradient": true }, } }, "column": { "type": "column", "color": color, "padding": [15, 15, 0, 5], "xAxis": { "disableGrid": true, }, "yAxis": { "data": [{ "min": 0 }] }, "legend": {}, "extra": { "column": { "type": "group", "width": 30, "activeBgColor": "#000000", "activeBgOpacity": 0.08 }, } }, "bar": { "type": "bar", "color": color, "padding": [15, 30, 0, 5], "xAxis": { "boundaryGap": "justify", "disableGrid": false, "min": 0, "axisLine": false }, "yAxis": {}, "legend": {}, "extra": { "bar": { "type": "group", "width": 30, "meterBorde": 1, "meterFillColor": "#FFFFFF", "activeBgColor": "#000000", "activeBgOpacity": 0.08 }, } }, "area": { "type": "area", "canvasId": "", "canvas2d": false, "background": "none", "animation": true, "timing": "easeOut", "duration": 1000, "color": [ "#1890FF", "#91CB74", "#FAC858", "#EE6666", "#73C0DE", "#3CA272", "#FC8452", "#9A60B4", "#ea7ccc" ], "padding": [ 30, 30, 0, 30 ], "rotate": false, "errorReload": true, "fontSize": 13, "fontColor": "#666666", "enableScroll": false, "touchMoveLimit": 60, "enableMarkLine": false, "dataLabel": true, "dataPointShape": true, "dataPointShapeType": "solid", "tapLegend": true, "xAxis": { "disabled": false, "axisLine": false, "axisLineColor": "#CCCCCC", "calibration": false, "fontColor": "#666666", "fontSize": 13, "rotateLabel": false, "itemCount": 5, "boundaryGap": "justify", "disableGrid": true, "gridColor": "#CCCCCC", "gridType": "dash", "dashLength": 4, "gridEval": 1, "scrollShow": false, "scrollAlign": "left", "scrollColor": "#A6A6A6", "scrollBackgroundColor": "#EFEBEF", "format": "" }, "yAxis": { "disabled": true, "disableGrid": true, "splitNumber": 5, "gridType": "dash", "dashLength": 2, "gridColor": "#CCCCCC", "padding": 10, "showTitle": false, "data": [] }, "legend": { "show": false, "position": "bottom", "float": "center", "padding": 5, "margin": 5, "backgroundColor": "rgba(0,0,0,0)", "borderColor": "rgba(0,0,0,0)", "borderWidth": 0, "fontSize": 13, "fontColor": "#666666", "lineHeight": 11, "hiddenColor": "#CECECE", "itemGap": 10 }, "extra": { "area": { "type": "curve", "opacity": 1, "addLine": true, "width": 2, "gradient": true }, "tooltip": { "showBox": true, "showArrow": true, "showCategory": false, "borderWidth": 0, "borderRadius": 0, "borderColor": "#000000", "borderOpacity": 0.7, "bgColor": "#000000", "bgOpacity": 0.7, "gridType": "solid", "dashLength": 4, "gridColor": "#CCCCCC", "fontColor": "#FFFFFF", "splitLine": true, "horizentalLine": false, "xAxisLabel": false, "yAxisLabel": false, "labelBgColor": "#FFFFFF", "labelBgOpacity": 0.7, "labelFontColor": "#666666" }, "markLine": { "type": "solid", "dashLength": 4, "data": [] } } }, "radar": { "type": "radar", "color": color, "padding": [5, 5, 5, 5], "dataLabel": false, "legend": { "show": true, "position": "right", "lineHeight": 25, }, "extra": { "radar": { "gridType": "radar", "gridColor": "#CCCCCC", "gridCount": 3, "opacity": 0.2, "max": 200 }, } }, "gauge": { "type": "gauge", "color": color, "title": { "name": "66Km/H", "fontSize": 25, "color": "#2fc25b", "offsetY": 50 }, "subtitle": { "name": "实时速度", "fontSize": 15, "color": "#1890ff", "offsetY": -50 }, "extra": { "gauge": { "type": "default", "width": 30, "labelColor": "#666666", "startAngle": 0.75, "endAngle": 0.25, "startNumber": 0, "endNumber": 100, "labelFormat": "", "splitLine": { "fixRadius": 0, "splitNumber": 10, "width": 30, "color": "#FFFFFF", "childNumber": 5, "childWidth": 12 }, "pointer": { "width": 24, "color": "auto" } } } }, "candle": { "type": "candle", "color": color, "padding": [15, 15, 0, 15], "enableScroll": true, "enableMarkLine": true, "dataLabel": false, "xAxis": { "labelCount": 4, "itemCount": 40, "disableGrid": true, "gridColor": "#CCCCCC", "gridType": "solid", "dashLength": 4, "scrollShow": true, "scrollAlign": "left", "scrollColor": "#A6A6A6", "scrollBackgroundColor": "#EFEBEF" }, "yAxis": {}, "legend": {}, "extra": { "candle": { "color": { "upLine": "#f04864", "upFill": "#f04864", "downLine": "#2fc25b", "downFill": "#2fc25b" }, "average": { "show": true, "name": ["MA5", "MA10", "MA30"], "day": [5, 10, 20], "color": ["#1890ff", "#2fc25b", "#facc14"] } }, "markLine": { "type": "dash", "dashLength": 5, "data": [{ "value": 2150, "lineColor": "#f04864", "showLabel": true }, { "value": 2350, "lineColor": "#f04864", "showLabel": true } ] } } }, "mix": { "type": "mix", "color": color, "padding": [15, 15, 0, 15], "xAxis": { "disableGrid": true, }, "yAxis": { "disabled": false, "disableGrid": false, "splitNumber": 5, "gridType": "dash", "dashLength": 4, "gridColor": "#CCCCCC", "padding": 10, "showTitle": true, "data": [] }, "legend": {}, "extra": { "mix": { "column": { "width": 20 } }, } }, "scatter": { "type": "scatter", "color": color, "padding": [15, 15, 0, 15], "dataLabel": false, "xAxis": { "disableGrid": false, "gridType": "dash", "splitNumber": 5, "boundaryGap": "justify", "min": 0 }, "yAxis": { "disableGrid": false, "gridType": "dash", }, "legend": {}, "extra": { "scatter": {}, } }, "bubble": { "type": "bubble", "color": color, "padding": [15, 15, 0, 15], "xAxis": { "disableGrid": false, "gridType": "dash", "splitNumber": 5, "boundaryGap": "justify", "min": 0, "max": 250 }, "yAxis": { "disableGrid": false, "gridType": "dash", "data": [{ "min": 0, "max": 150 }] }, "legend": {}, "extra": { "bubble": { "border": 2, "opacity": 0.5, }, } } } export default cfu;