logologo
Начало
Руководство
Разработка
Плагины
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Начало
Руководство
Разработка
Плагины
API
logologo
Обзор
Быстрый старт

Обзор функций

Запрос данных
Опции диаграммы
Предпросмотр и сохранение
Использование переменных окружения контекста
Фильтры страницы и взаимодействие

Продвинутый уровень

Запрос данных в режиме SQL
Пользовательская настройка диаграмм
Пользовательские события взаимодействия
Часто задаваемые вопросы
Лучшие практики
Previous PageЗапрос данных в режиме SQL
Next PageПользовательские события взаимодействия
Уведомление о переводе ИИ

Эта документация была автоматически переведена ИИ.

#Настройка диаграмм в пользовательском режиме

В пользовательском режиме вы можете настраивать диаграммы, написав JavaScript-код в редакторе. На основе ctx.data вы возвращаете полный объект option ECharts. Это подходит для объединения нескольких серий данных, создания сложных всплывающих подсказок и динамических стилей. Теоретически поддерживаются все функции и типы диаграмм ECharts.

clipboard-image-1761524637

#Контекст данных

  • ctx.data.objects: массив объектов (каждая строка как объект)
  • ctx.data.rows: двумерный массив (с заголовком)
  • ctx.data.columns: двумерный массив, сгруппированный по столбцам

Рекомендуемое использование: Объединяйте данные в dataset.source. Подробное описание использования вы найдете в документации ECharts:

Набор данных (Dataset)

Оси координат

Примеры

Давайте рассмотрим самый простой пример:

#Пример 1: Столбчатая диаграмма количества заказов по месяцам

20251027082816

return {
  dataset: { source: ctx.data.objects || [] },
  xAxis: { type: 'category' },
  yAxis: {},
  series: [
    {
      type: 'bar',
      showSymbol: false,
    },
  ],
}

#Пример 2: Диаграмма тренда продаж

clipboard-image-1761525188

return {
  dataset: {
    source: ctx.data.objects.reverse()
  },
  title: {
    text: "Monthly Sales Trend",
    subtext: "Last 12 Months",
    left: "center"
  },
  tooltip: {
    trigger: "axis",
    axisPointer: {
      type: "cross"
    }
  },
  legend: {
    data: ["Revenue", "Order Count", "Avg Order Value"],
    bottom: 0
  },
  grid: {
    left: "5%",
    right: "5%",
    bottom: "60",
    top: "80",
    containLabel: true
  },
  xAxis: {
    type: "category",
    boundaryGap: false,
    axisLabel: {
      rotate: 45
    }
  },
  yAxis: [
    {
      type: "value",
      name: "Amount(¥)",
      position: "left",
      axisLabel: {
        formatter: (value) => {
          return (value/10000).toFixed(0) + '0k';
        }
      }
    },
    {
      type: "value",
      name: "Order Count",
      position: "right"
    }
  ],
  series: [
    {
      name: "Revenue",
      type: "line",
      smooth: true,
      encode: {
        x: "month",
        y: "monthly_revenue"
      },
      areaStyle: {
        opacity: 0.3
      },
      itemStyle: {
        color: "#5470c6"
      }
    },
    {
      name: "Order Count",
      type: "bar",
      yAxisIndex: 1,
      encode: {
        x: "month",
        y: "order_count"
      },
      itemStyle: {
        color: "#91cc75",
        opacity: 0.6
      }
    },
    {
      name: "Avg Order Value",
      type: "line",
      encode: {
        x: "month",
        y: "avg_order_value"
      },
      itemStyle: {
        color: "#fac858"
      },
      lineStyle: {
        type: "dashed"
      }
    }
  ]
}

Рекомендации:

  • Соблюдайте стиль чистых функций: генерируйте option только на основе ctx.data и избегайте побочных эффектов.
  • Изменения в именах столбцов запроса влияют на индексацию; стандартизируйте имена и подтвердите их в разделе «Просмотр данных» перед изменением кода.
  • При больших объемах данных избегайте сложных синхронных вычислений в JS; при необходимости выполняйте агрегацию на этапе запроса.

#Дополнительные примеры

Для получения дополнительных примеров использования вы можете обратиться к демонстрационному приложению NocoBase.

Вы также можете просмотреть официальные примеры ECharts, чтобы найти желаемый эффект диаграммы, а затем использовать и скопировать соответствующий JS-код конфигурации.

#Предварительный просмотр и сохранение

20251027083938

  • Нажмите «Предварительный просмотр» справа или внизу, чтобы обновить диаграмму и проверить конфигурацию JS.
  • Нажмите «Сохранить», чтобы сохранить текущую конфигурацию JS в базу данных.
  • Нажмите «Отмена», чтобы вернуться к последнему сохраненному состоянию.