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