config.vue 2.21 KB
<template>
  <!-- Echarts 全局设置 -->
  <global-setting :optionData="optionData"> </global-setting>
  <!-- 胶囊柱图 -->
  <collapse-item :name="t('charts.chart.capChart')" expanded>
    <SettingItemBox :name="t('common.layoutText')">
      <setting-item :name="t('charts.chart.leftMargin')">
        <n-input-number v-model:value="optionData.paddingLeft" :min="10" :step="1" size="small"></n-input-number>
      </setting-item>
      <setting-item :name="t('charts.chart.rightMargin')">
        <n-input-number v-model:value="optionData.paddingRight" :min="10" :step="1" size="small"></n-input-number>
      </setting-item>
      <setting-item :name="t('charts.chart.eachHeight')">
        <n-input-number v-model:value="optionData.itemHeight" :min="0" :step="1" size="small"></n-input-number>
      </setting-item>
    </SettingItemBox>
    <SettingItemBox :name="t('common.textText')">
      <setting-item :name="t('charts.chart.allTextSize')">
        <n-input-number v-model:value="optionData.valueFontSize" :min="0" :step="1" size="small"></n-input-number>
      </setting-item>
      <setting-item :name="t('common.unitText')">
        <n-input v-model:value="optionData.unit" size="small"></n-input>
      </setting-item>

      <SettingItem>
        <n-space>
          <n-switch v-model:value="optionData.showValue" size="small"></n-switch>
          <n-text>{{t('charts.chart.showNumber')}}</n-text>
        </n-space>
      </SettingItem>
    </SettingItemBox>
    <SettingItemBox :name="t('common.colorText')">
      <setting-item v-for="(item, index) in optionData.colors" :key="index" :name="`${t('business.color')}${index}`">
        <n-color-picker v-model:value="optionData.colors[index]" size="small" :modes="['hex']"></n-color-picker>
      </setting-item>
    </SettingItemBox>
  </collapse-item>
</template>

<script setup lang="ts">
import { PropType } from 'vue'
import { GlobalSetting, CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
import { GlobalThemeJsonType } from '@/settings/chartThemes/index'

import { option } from './config'

defineProps({
  optionData: {
    type: Object as PropType<typeof option & GlobalThemeJsonType>,
    required: true
  }
})

const t = window['$t']
</script>