You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
2.0 KiB
JavaScript

import { dataConfig, settingConfig } from '../EchartsRender/settingConfig'
import cloneDeep from 'lodash/cloneDeep'
import sortList from './echartListSort'
// 遍历 当前文件夹下的所有文件,找到中文.js文件然后导出
const files = require.context('./', true, /[\u4e00-\u9fa5]+.js$/)
const echartsList = getEchartsList(files)
// 获取echarts配置
function getEchartsList (files) {
const configMapList = {}
files.keys().forEach((key) => {
// 取到 "基础折线图"
const configName = key.split('/')[2].replace('.js', '')
configMapList[configName] = files(key).default
})
const echartsList = []
for (const configMapKey in configMapList) {
const index = sortList.findIndex((item) => item === configMapKey)
const config = configMapList[configMapKey]
echartsList[index] = {
version: config.version,
category: configMapKey,
name: config.name,
title: config.title,
border: { type: '', titleHeight: 60, fontSize: 30, color: ['#5B8FF9', '#61DDAA', '#5D7092', '#F6BD16', '#6F5EF9'], padding: [16, 16, 16, 16] },
icon: null,
img: require(`../Echarts/images/${config.title}.png`),
className:
'com.gccloud.dataroom.core.module.chart.components.CustomComponentChart',
w: config?.option?.width || 450,
h: config?.option?.height || 320,
x: 0,
y: 0,
rotateX: config.rotateX || 0,
rotateY: config.rotateY || 0,
rotateZ: config.rotateZ || 0,
perspective: config.perspective || 0,
skewX: config.skewX || 0,
skewY: config.skewY || 0,
type: 'echartsComponent',
loading: false,
// 把默认右侧配置与自定义右侧配置集合
option: {
...config.option,
...cloneDeep(settingConfig)
},
setting: config.setting, // 右侧面板自定义配置
dataHandler: config.dataHandler, // 数据自定义处理js脚本
optionHandler: config.optionHandler, // 配置自定义处理js脚本
...cloneDeep(dataConfig)
}
}
return echartsList
}
export default echartsList