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.

104 lines
3.6 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
* @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