|
|
/*
|
|
|
* @description: webpack读取当前文件夹下的所有 图表的js文件配置, 生成g2Plot配置列表
|
|
|
* @Date: 2023-03-28 10:40:22
|
|
|
* @Author: xing.heng
|
|
|
*/
|
|
|
import { dataConfig, settingConfig } from '../PlotRender/settingConfig'
|
|
|
import { mapData } from 'data-room-ui/BasicComponents/Map/settingConfig'
|
|
|
import { FlyMapData } from 'data-room-ui/BasicComponents/FlyMap/settingConfig'
|
|
|
import { candlestickData } from 'data-room-ui/BasicComponents/Candlestick/settingConfig'
|
|
|
import { sankeyData } from 'data-room-ui/BasicComponents/Sankey/settingConfig'
|
|
|
// import _ from 'lodash'
|
|
|
import cloneDeep from 'lodash/cloneDeep'
|
|
|
import sortList from './plotListSort'
|
|
|
// 遍历 当前文件夹下的所有文件,找到中文.js文件,然后导出
|
|
|
const files = require.context('./', true, /[\u4e00-\u9fa5]+.js$/)
|
|
|
const plotList = getPlotList(files)
|
|
|
const customPlots = getCustomPlots()
|
|
|
// 获取plot配置
|
|
|
function getPlotList (files) {
|
|
|
const configMapList = {}
|
|
|
files.keys().forEach((key) => {
|
|
|
// ./折线图/基础折线图.js
|
|
|
// 取到 "基础折线图"
|
|
|
const configName = key.split('/')[2].replace('.js', '')
|
|
|
configMapList[configName] = files(key).default
|
|
|
})
|
|
|
const plotList = []
|
|
|
for (const configMapKey in configMapList) {
|
|
|
const index = sortList.findIndex((item) => item === configMapKey)
|
|
|
const config = configMapList[configMapKey]
|
|
|
|
|
|
plotList[index] = {
|
|
|
version: config.version,
|
|
|
category: configMapKey,
|
|
|
name: config.name,
|
|
|
title: config.title,
|
|
|
border: { type: '', titleHeight: 60, fontSize: 16, isTitle: true, padding: [16, 16, 16, 16] },
|
|
|
icon: null,
|
|
|
img: require(`../G2Plots/images/componentLogo/${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: 'customComponent',
|
|
|
chartType: config.chartType,
|
|
|
loading: false,
|
|
|
option: {
|
|
|
...config.option,
|
|
|
...cloneDeep(settingConfig)
|
|
|
},
|
|
|
setting: config.setting, // 右侧面板自定义配置
|
|
|
dataHandler: config.dataHandler, // 数据自定义处理js脚本
|
|
|
optionHandler: config.optionHandler, // 配置自定义处理js脚本
|
|
|
...cloneDeep(dataConfig)
|
|
|
}
|
|
|
}
|
|
|
return plotList
|
|
|
}
|
|
|
export function getCustomPlots () {
|
|
|
const customList = window.BS_CONFIG?.customPlots || []
|
|
|
|
|
|
const list = []
|
|
|
customList.forEach((config) => {
|
|
|
list.push({
|
|
|
version: config.version,
|
|
|
category: config.category,
|
|
|
name: config.name,
|
|
|
title: config.title,
|
|
|
border: { type: '', titleHeight: 60, fontSize: 16, isTitle: true, padding: [16, 16, 16, 16] },
|
|
|
icon: null,
|
|
|
img: config.img,
|
|
|
className:
|
|
|
'com.gccloud.dataroom.core.module.chart.components.CustomComponentChart',
|
|
|
w: 450,
|
|
|
h: 320,
|
|
|
x: 0,
|
|
|
y: 0,
|
|
|
type: 'customComponent',
|
|
|
chartType: config.chartType,
|
|
|
option: {
|
|
|
...config.option,
|
|
|
...cloneDeep(settingConfig)
|
|
|
},
|
|
|
setting: config.setting, // 右侧面板自定义配置
|
|
|
dataHandler: config.dataHandler, // 数据自定义处理js脚本
|
|
|
optionHandler: config.optionHandler, // 配置自定义处理js脚本
|
|
|
...cloneDeep(dataConfig)
|
|
|
})
|
|
|
})
|
|
|
return list
|
|
|
}
|
|
|
|
|
|
const plots = [...plotList, ...customPlots, sankeyData, candlestickData, mapData, FlyMapData]
|
|
|
console.log('plotList', plots)
|
|
|
export default plots
|