123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495 |
- /*
- * 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', ...
- generateHslaColors(100, 50, 1, 20), ...generateHslaColors(60, 50, 1, 20), ...generateHslaColors(30, 50, 1, 20)
- ];
- function generateHslaColors(saturation, lightness, alpha, amount) {
- let colors = []
- let huedelta = Math.trunc(360 / amount)
- for (let i = 0; i < amount; i++) {
- let hue = i * huedelta
- if (hue) {
- colors.push(`hsla(${hue},${saturation}%,${lightness}%,${alpha})`)
- }
- }
- return colors
- }
- const cfe = {
- //demotype为自定义图表类型
- "type": ["pie", "ring", "rose", "funnel", "line", "column", "area", "radar", "gauge", "candle", "demotype"],
- //增加自定义图表类型,如果需要categories,请在这里加入您的图表类型例如最后的"demotype"
- "categories": ["line", "column", "area", "radar", "gauge", "candle", "demotype"],
- //instance为实例变量承载属性,option为eopts承载属性,不要删除
- "instance": {},
- "option": {},
- //下面是自定义format配置,因除H5端外的其他端无法通过props传递函数,只能通过此属性对应下标的方式来替换
- "formatter": {
- 'tooltipCustom': function(item, category, index, opts) {
- // console.log(item, category, index, opts);
- const item0 = item[0]
- let val = ''
- item.forEach(data=>{
- val += `\n${data.seriesName} : ${data.data}`
- })
- return `${item0.name}${val}`
- },
- "tooltipDemo1": function(res) {
- let result = ''
- for (let i in res) {
- if (i == 0) {
- result += res[i].axisValueLabel + '年销售额'
- }
- let value = '--'
- if (res[i].data !== null) {
- value = res[i].data
- }
- // #ifdef H5
- result += '\n' + res[i].seriesName + ':' + value + ' 万元'
- // #endif
- // #ifdef APP-PLUS
- result += '<br/>' + res[i].marker + res[i].seriesName + ':' + value + ' 万元'
- // #endif
- }
- return result;
- },
- legendFormat: function(name) {
- return "自定义图例+" + name;
- },
- yAxisFormatDemo: function(value, index) {
- return value + '元';
- },
- seriesFormatDemo: function(res) {
- return res.name + '年' + res.value + '元';
- }
- },
- //这里演示了自定义您的图表类型的option,可以随意命名,之后在组件上 type="demotype" 后,组件会调用这个花括号里的option,如果组件上还存在eopts参数,会将demotype与eopts中option合并后渲染图表。
- "demotype": {
- "color": color,
- //在这里填写echarts的option即可
- },
- //下面是自定义配置,请添加项目所需的通用配置
- "column": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'axis'
- },
- "grid": {
- "top": 30,
- "bottom": 50,
- "right": 15,
- "left": 40
- },
- "legend": {
- "left": 'left',
- "padding": [0, 0, 200, 0]
- },
- "toolbox": {
- "show": false,
- },
- "xAxis": {
- "type": 'category',
- "axisLabel": {
- "color": '#666666'
- },
- "axisLine": {
- "lineStyle": {
- "color": '#CCCCCC'
- }
- },
- "boundaryGap": true,
- "data": []
- },
- "yAxis": {
- "type": 'value',
- "axisTick": {
- "show": false,
- },
- "axisLabel": {
- "color": '#666666'
- },
- "axisLine": {
- "show": false,
- "lineStyle": {
- "color": '#CCCCCC'
- }
- },
- },
- "seriesTemplate": {
- "name": '',
- "type": 'bar',
- "data": [],
- "barWidth": 30,
- "label": {
- "show": false,
- "color": "#666666",
- "position": 'top',
- },
- },
- },
- "line": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'axis'
- },
- "grid": {
- "top": 30,
- "bottom": 50,
- "right": 15,
- "left": 40
- },
- "legend": {
- "bottom": 'left',
- },
- "toolbox": {
- "show": false,
- },
- "xAxis": {
- "type": 'category',
- "axisLabel": {
- "color": '#666666'
- },
- "axisLine": {
- "lineStyle": {
- "color": '#CCCCCC'
- }
- },
- "boundaryGap": true,
- "data": []
- },
- "yAxis": {
- "type": 'value',
- "axisTick": {
- "show": false,
- },
- "axisLabel": {
- "color": '#666666'
- },
- "axisLine": {
- "lineStyle": {
- "color": '#CCCCCC'
- }
- },
- },
- "seriesTemplate": {
- "name": '',
- "type": 'line',
- "data": [],
- "barwidth": 20,
- "label": {
- "show": true,
- "color": "#666666",
- "position": 'top',
- },
- },
- },
- "area": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'axis',
- },
- "grid": {
- "top": 50,
- "bottom": 30,
- "right": 60,
- "left": 60
- },
- "legend": {
- "type": 'scroll',
- "orient": 'horizontal',
- "left": 'left',
- "padding": [0, 30, 10, 30],
- "itemGap": 20
- },
- "toolbox": {
- "show": false,
- },
- "xAxis": {
- "type": 'category',
- "axisLabel": {
- "color": '#666666'
- },
- "axisLine": {
- "lineStyle": {
- "color": '#CCCCCC'
- }
- },
- "boundaryGap": false,
- "data": []
- },
- "yAxis": {
- "type": 'value',
- "axisTick": {
- "show": false,
- },
- "axisLabel": {
- "color": '#666666'
- },
- "axisLine": {
- "show": false,
- "lineStyle": {
- "color": '#CCCCCC'
- }
- },
- },
- "notMerge": true,
- "seriesTemplate": color.map(item => {
- return {
- "data": [],
- "type": 'line',
- "name": "",
- "color": item,
- "smooth": true,
- // "showSymbol": false,
- "areaStyle": {
- "color": {
- "x": 0,
- "y": 0,
- "x2": 0,
- "y2": 1,
- "colorStops": [{
- "offset": 0,
- "color": item, // 0% 处的颜色
- }, {
- "offset": 1,
- "color": '#FFFFFF' // 100% 处的颜色
- }],
- "global": false // 缺省为 false
- }
- },
- "label": {
- "show": false,
- "color": "#666666",
- "position": 'top',
- },
- }
- })
- },
- "pie": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'item'
- },
- "grid": {
- "top": 40,
- "bottom": 30,
- "right": 15,
- "left": 15
- },
- "legend": {
- "bottom": 'left',
- },
- "seriesTemplate": {
- "name": '',
- "type": 'pie',
- "data": [],
- "radius": '50%',
- "avoidLabelOverlap": "true",
- "label": {
- "show": true,
- "color": "#666666",
- "position": 'top',
- },
- },
- },
- "ring": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'item'
- },
- "grid": {
- "top": 0,
- "bottom": 0,
- "right": 15,
- "left": 15
- },
- "legend": {
- "type": "scroll",
- "top": 'left'
- },
- "seriesTemplate": {
- "name": '',
- "type": 'pie',
- "data": [],
- "radius": ['30%', '45%'],
- "avoidLabelOverlap": true,
- "label": {
- "show": true,
- "color": "#666666",
- "position": "bottom",
- },
- "labelLine": {
- "show": true
- },
- },
- },
- "rose": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'item'
- },
- "legend": {
- "top": 'bottom'
- },
- "seriesTemplate": {
- "name": '',
- "type": 'pie',
- "data": [],
- "radius": "55%",
- "center": ['50%', '50%'],
- "rosetype": 'area',
- },
- },
- "funnel": {
- "color": color,
- "title": {
- "text": ''
- },
- "tooltip": {
- "trigger": 'item',
- "formatter": "{b} : {c}%"
- },
- "legend": {
- "top": 'bottom'
- },
- "seriesTemplate": {
- "name": '',
- "type": 'funnel',
- "left": '10%',
- "top": 60,
- "bottom": 60,
- "width": '80%',
- "min": 0,
- "max": 100,
- "minSize": '0%',
- "maxSize": '100%',
- "sort": 'descending',
- "gap": 2,
- "label": {
- "show": true,
- "position": 'inside'
- },
- "labelLine": {
- "length": 10,
- "lineStyle": {
- "width": 1,
- "type": 'solid'
- }
- },
- "itemStyle": {
- "bordercolor": '#fff',
- "borderwidth": 1
- },
- "emphasis": {
- "label": {
- "fontSize": 20
- }
- },
- "data": [],
- },
- },
- "gauge": {
- "color": color,
- "tooltip": {
- "formatter": '{a} <br/>{b} : {c}%'
- },
- "seriesTemplate": {
- "name": '业务指标',
- "type": 'gauge',
- "detail": {
- "formatter": '{value}%'
- },
- "data": [{
- "value": 50,
- "name": '完成率'
- }]
- },
- },
- "candle": {
- "xAxis": {
- "data": []
- },
- "yAxis": {},
- "color": color,
- "title": {
- "text": ''
- },
- "dataZoom": [{
- "type": 'inside',
- "xAxisIndex": [0, 1],
- "start": 10,
- "end": 100
- },
- {
- "show": true,
- "xAxisIndex": [0, 1],
- "type": 'slider',
- "bottom": 10,
- "start": 10,
- "end": 100
- }
- ],
- "seriesTemplate": {
- "name": '',
- "type": 'k',
- "data": [],
- },
- }
- }
- function deviceWidth() {
- const device = uni.getSystemInfoSync()
- const type = cfe.area
- if (device.windowWidth < 500) {
- type.grid = {
- right: 20,
- left: 50
- }
- type.seriesTemplate.forEach(item => {
- item.showSymbol = false
- })
- }
- }
- deviceWidth()
- export default cfe;
|