122 lines
3.7 KiB
JavaScript
122 lines
3.7 KiB
JavaScript
/*
|
||
* @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,
|
||
];
|
||
export default plots;
|