Easy Pivot Logo
  • Pricing

Manual

OverviewFolder SystemData Sources
Grid DashboardChart ComponentsCommon ComponentsQuery ParameterChart LinkageDashboard Global SettingsCockpit Dashboard3D Scene
User and RoleRestful Interfaces

Integration

Dashboard

Common Components

Common Components

Text

  • The Text component can serve as a paragraph title.
  • Structure includes: Title, Subtitle, and Icon.
  • If the subtitle is left blank, it doesn't occupy space in preview.

  • Configuration Items
  • Title and subtitle support direct click-to-edit or editing in the configuration panel.

Rich Text

Default mode is a common rich text editor.

Markdown

Switch to Markdown mode.

HTML

HTML mode, supports click event definition.

Define Click Events

  1. Supported parameters in JS event definition include params, native axios (for external service requests), etc.
// params are parameters passed in JS calls
const params = {
    event, // Click event object
    token, // Current user authentication token
    _axios, // BI axios request instance, used for BI's own service requests. Using this instance avoids setting request headers.
    boardParameters,  // Dashboard parameters
    variables, // Environment variables
};
  1. The HTML can contain multiple elements. Use params.event.target to determine if the clicked element is the target object.
  2. The example below demonstrates requesting the server via event definition to export multiple complex reports.
const target = params.event.target;
// console.log(_axios);
// Replace with loading icon
if (target.getAttribute('id') == 'download') {
    const url = target.getAttribute('url');
    if (target.isExport) {
        return;
    }
    const originalContent = target.innerHTML; // Save original content
    target.innerHTML = '<i className="el-icon-loading"></i> Downloading...';
    target.isExport = true;

    // Passing a reports object array allows downloading multiple reports
    const reports = [{
        id: 230216164924406,
        name: 'Mexico',
        filters: [{
            datasetId: 1,
            columnName: 'sales_country',
            filterType: '=',
            values: ['Mexico'],
        }],
        // Environment variables
        variables: {
            foo: 'bar',
            month_range: '1,10'
        }
    }, {
        id: 230216164924406,
        name: 'Canada',
        filters: [{
            datasetId: 1,
            columnName: 'sales_country',
            filterType: '=',
            values: ['Canada'],
        }]
    }];

    // reportView/exportExcelById downloads Excel by report ID.
    // Passing id downloads a single report.
    // Passing a reports object array downloads multiple reports.
    // The same report can appear multiple times, controlled by filters.
    params._axios.post('reportView/exportExcelById',
            {
                reports: JSON.stringify(reports)
                // id: 230216164924406
            }, {
                responseType: 'blob',
                headers: {
                // This header section is not needed if using params._axios.
                // If using native axios for external services, set as needed.
                    'Content-Type': 'application/x-www-form-urlencoded',
                    token: params.token
                }
            })
        .then(response => {
            // Create URL and download file
            const url = window.URL.createObjectURL(response.data);
            const a = document.createElement('a');
            a.href = url;
            a.download = 'Report.xlsx'; // Set download file name
            document.body.appendChild(a);
            a.click();
            window.URL.revokeObjectURL(url); // Release URL
        }).catch(error => {
            console.error('Download failed', error);
        })
        .finally(() => {
            // Restore original content and click functionality
            target.innerHTML = originalContent;
            target.style.pointerEvents = 'auto';
            target.isExport = false;
        });
}

Image

  • Supports Image Carousel for multiple images.
  • Supports uploading images or network image URLs.
  • Network image URLs support environment variable parsing.

Add IFrame Component

IFrame Interactive Linkage

IFrame and Dashboard Interactive Linkage

Iframe and dashboard can interact through the postMessage mechanism. The iframe sends messages in an agreed format, and the dashboard listens and processes different types of messages. The message format supported by iframe is as follows:

Environment Variables

  1. Single Variable
window.parent.postMessage({
    name: 'ibi.widgetLink',
    params: [
        {type: 'env', val: {id: 'year', value: 2025}},
    ],
}, '*');
  1. Multiple Variables
window.parent.postMessage({
    name: 'ibi.widgetLink',
    params: [
        {type: 'env', val: {id: 'year', value: 2025}},
        {type: 'env', val: {id: 'month', value: 10}},
    ],
}, '*');

Popup Chart

window.parent.postMessage({
    name: 'ibi.widgetLink',
    params: [
        {
            type: 'popup-widget',
            targetId: 1, // Chart ID
            val: { alias: 'Year', column: 'the_year', type: "=", values: ['2025'] }
        },
    ],
}, '*');

Dataset

window.parent.postMessage({
    name: 'ibi.widgetLink',
    params: [
        {
            type: "dataset",
            targetId: 1, // Dataset ID
            val: { alias: 'Year', column: 'the_year', type: "=", values: ['2025'] }
        },
    ],
}, '*');

Chart

window.parent.postMessage({
    name: 'ibi.widgetLink',
    params: [
        {
            type: "widget",
            targetId: 'xp1lbw1j9cs', // Chart sid
            val: { alias: 'Year', column: 'the_year', type: "=", values: ['2025'] }
        },
    ],
}, '*');

VueJS Code Demo

<template>
    <div className="home">
        <img alt="Vue logo" src="../assets/logo.png" />
        <h1>{{ msg }}</h1>
        <button @click="env"> Env Variable </button>
        <button @click="popupWidget"> Popup Chart </button>
        <button @click="dataset"> Dataset </button>
        <button @click="widget"> Chart </button>
    </div>
</template>

<script>
export default {
    name: 'Linkage Example',
    props: {
    },
    data() {
        return {
            msg: "Welcome to Your Vue.js App"
        }
    },
    methods: {
        env() {
            window.parent.postMessage({
                name: 'ibi.widgetLink',
                params: [
                    {type: 'env', val: {id: 'year', value: 2025}},
                    {type: 'env', val: {id: 'month', value: 10}},
                ],
            }, '*');
        },
        popupWidget() {
            window.parent.postMessage({
                name: 'ibi.widgetLink',
                params: [
                    {
                        type: 'popup-widget', targetId: 1,
                        val: { alias: 'Year', column: 'the_year', type: "=", values: ['2016'] }
                    },
                ],
            }, '*');
        },
        dataset() {
            window.parent.postMessage({
                name: 'ibi.widgetLink',
                params: [
                    {
                        type: "dataset", targetId: 1,
                        val: { alias: 'Year', column: 'the_year', type: "=", values: ['2016'] }
                    },
                ],
            }, '*');
        },
        widget() {
            window.parent.postMessage({
                name: 'ibi.widgetLink',
                params: [
                    {
                        type: "widget", targetId: 'xp1lbw1j9cs',
                        val: { alias: 'Year', column: 'the_year', type: "=", values: ['2016'] }
                    },
                ],
            }, '*');
        },
    }
};
</script>

{/* Add "scoped" attribute to limit CSS to this component only */}
<style>
h3 {
    margin: 40px 0 0;
}

ul {
    list-style-type: none;
    padding: 0;
}

li {
    display: inline-block;
    margin: 0 10px;
}

a {
    color: #42b983;
}
.home button {
    margin-right: 5px;
}
</style>

Chart Components

Chart Components

Query Parameter

Query Parameter Components

On this page

TextRich TextMarkdownHTMLDefine Click EventsImageAdd IFrame ComponentIFrame Interactive LinkageEnvironment VariablesPopup ChartDatasetChartVueJS Code Demo
Log InStart Free