From 0aff4015672313ab69265d726078978bce566abf Mon Sep 17 00:00:00 2001 From: Davont Date: Wed, 28 Feb 2024 15:19:56 +0800 Subject: [PATCH] fix(chart-beta): add build:chartTheme command and implement chartBetaTheme function (#1436) * fix(chart-beta): formatting issues in chart components * fix(chart-beta): formatting issues in chart components * fix(chart-beta): Update dependencies and imports in chart modules * fix(chart-beta): Update dependencies and imports in chart modules * Merge branch 'dev' of https://github.com/opentiny/tiny-vue into dev * fix: add build:chartTheme command and implement chartBetaTheme function --- internals/cli/package.json | 3 +- .../src/commands/build/build-chart-theme.ts | 42 +++++++++++++++++++ internals/cli/src/commands/build/index.ts | 3 +- internals/cli/src/index.ts | 4 +- package.json | 3 +- .../chart-histogram/src/histogram.ts | 3 ++ 6 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 internals/cli/src/commands/build/build-chart-theme.ts diff --git a/internals/cli/package.json b/internals/cli/package.json index b7a9a9b3f..987517fb0 100644 --- a/internals/cli/package.json +++ b/internals/cli/package.json @@ -50,7 +50,8 @@ "create:mapping": "esno src/commands/create/create-mapping.ts", "build:entry-react": "esno src/index.ts build:entry-react", "create:mapping-react": "esno src/commands/create/create-mapping-react.ts", - "build:react": "esno src/index.ts build:react" + "build:react": "esno src/index.ts build:react", + "build:chartTheme": "esno src/index.ts build:chartTheme" }, "dependencies": { "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0", diff --git a/internals/cli/src/commands/build/build-chart-theme.ts b/internals/cli/src/commands/build/build-chart-theme.ts new file mode 100644 index 000000000..4ac49e248 --- /dev/null +++ b/internals/cli/src/commands/build/build-chart-theme.ts @@ -0,0 +1,42 @@ +import fs from 'node:fs' +import path from 'node:path' + +const changeTheme = () => { + const THEMES = { + dark: 'DARK', + light: 'LIGHT', + bpit: 'BPIT_LIGHT', + bpit_dark: 'BPIT_DARK', + cloud_dark: 'CLOUD_DARK', + cloud: 'CLOUD_LIGHT', + hdesign: 'HDESIGN_LIGHT', + hdesign_dark: 'HDESIGN_DARK' + } + + // 获取命令行参数 + const theme = THEMES[process.argv[3]] || process.argv[3] || THEMES.bpit + + // 确保提供了正确的主题参数 + if (!theme) { + process.exit(1) + } + + // 你想要替换的文件 + const filePath = path.join( + __dirname, + '../../../../../packages/vue/scr/chart-beta/chart-core/base/feature/token/constants.ts' + ) + + // 读取文件内容 + let content = fs.readFileSync(filePath, 'utf-8') + + // 替换 process.env.VAR_NAME 为对应主题的值 + content = content.replace(/const\sDEFAULT_THEME\s=\sTHEMES\.[a-zA-Z_]+/g, `const DEFAULT_THEME = THEMES.${theme}`) + + // 写入新内容到文件 + fs.writeFileSync(filePath, content, 'utf-8') +} + +export const chartBetaTheme = () => { + changeTheme() +} diff --git a/internals/cli/src/commands/build/index.ts b/internals/cli/src/commands/build/index.ts index dd8175971..f06f18494 100644 --- a/internals/cli/src/commands/build/index.ts +++ b/internals/cli/src/commands/build/index.ts @@ -2,4 +2,5 @@ export * from './build-ui' export * from './build-entry' export * from './build-runtime' export * from './build-ui-react' -export * from './build-entry-react' \ No newline at end of file +export * from './build-entry-react' +export * from './build-chart-theme' diff --git a/internals/cli/src/index.ts b/internals/cli/src/index.ts index 03f3832ff..94d1de4f6 100644 --- a/internals/cli/src/index.ts +++ b/internals/cli/src/index.ts @@ -1,7 +1,7 @@ #!/usr/bin/env node import { Command, Option } from 'commander' import { createIconSaas } from './commands/create/index.js' -import { buildUi, buildEntry, buildRuntime, buildReact, buildEntryReact } from './commands/build' +import { buildUi, buildEntry, buildRuntime, buildReact, buildEntryReact, chartBetaTheme } from './commands/build' import { releaseAurora } from './commands/release/releaseAurora' const program = new Command() @@ -14,6 +14,8 @@ program.command('build:entry-react').description('生成 react 组件库入口') program.command('build:entry').description('生成组件库入口').action(buildEntry) +program.command('build:chartTheme').description('切换chart-beta主题').action(chartBetaTheme) + program .command('build:ui') .description('打包组件库') diff --git a/package.json b/package.json index 50c3c3823..3c0ba1e59 100644 --- a/package.json +++ b/package.json @@ -59,6 +59,7 @@ "build:runtime": "pnpm -C internals/cli build:runtime", "// ---------- 构建相关脚本 ----------": "", "build:ui": "pnpm create:icon-saas && pnpm create:mapping && pnpm build:entry && gulp themeConcat && pnpm -C internals/cli build:ui", + "build:chartTheme": "pnpm -C internals/cli build:chartTheme", "build:renderless": "pnpm -C packages/renderless build:fast", "build:theme": "gulp themeConcat && pnpm -C packages/theme build:fast", "build:themeSaas": "pnpm -C packages/theme-saas build:fast", @@ -251,4 +252,4 @@ "> 1%", "last 2 versions" ] -} \ No newline at end of file +} diff --git a/packages/vue/src/chart-beta/chart-histogram/src/histogram.ts b/packages/vue/src/chart-beta/chart-histogram/src/histogram.ts index 77e95c9eb..ac4bdd487 100644 --- a/packages/vue/src/chart-beta/chart-histogram/src/histogram.ts +++ b/packages/vue/src/chart-beta/chart-histogram/src/histogram.ts @@ -102,6 +102,9 @@ const getValueData = (seriesTemp, dims) => { const getBarSeries = (args) => { const { axisSite, barGap, dimAxisType, dims, innerRows, isHistogram, itemStyle } = args + if (!itemStyle.barWidth) { + itemStyle.barWidth = 'auto' + } const { label, labelMap, metrics, opacity, showLine = [], stack } = args let { secondAxis, secondDimAxisIndex, series = [], seriesTemp = {}, stackMap, stackNum = 0 } = {} secondAxis = (isHistogram ? axisSite?.right : axisSite?.top) || []