| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- /**
- * The preview view file of chart module of ZenTaoPMS.
- * @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd. www.zentao.net)
- * @license ZPL(https://zpl.pub/page/zplv12.html) or AGPL(https://www.gnu.org/licenses/agpl-3.0.en.html)
- * @author Chenxuan Song <songchenxuan@easycorp.ltd>
- * @package chart
- * @link https://www.zentao.net
- */
- namespace zin;
- $generateCharts = function() use($charts, $lang)
- {
- if(empty($charts)) return div(setClass('bg-canvas center text-gray w-full h-40'), $lang->chart->noChart);
- $chartList = array();
- foreach($charts as $chart)
- {
- $options = array();
- $filters = array();
- foreach($chart->filters as $filter)
- {
- $name = $filter['name'];
- $type = $filter['type'];
- $field = $filter['field'];
- $value = zget($filter, 'default', '');
- if($type == 'select' && !isset($options[$field]))
- {
- $fieldSetting = $chart->fieldSettings[$field];
- $options[$field] = $this->chart->getSysOptions($fieldSetting['type'], $fieldSetting['object'], $fieldSetting['field'], $chart->sql, zget($filter, 'saveAs', ''), $chart->driver);
- }
- $filters[] = resultFilter(set(array('title' => $name, 'type' => $type, 'name' => $field, 'value' => $value, 'items' => zget($options, $field, array()))));
- }
- $chartID = $chart->currentGroup . '_' . $chart->id;
- $chartOptions = $this->chart->getEchartOptions($chart);
- $chartList[] = panel
- (
- setID('chartPanel_' . $chartID),
- set::title($chart->name),
- set::shadow(false),
- set::headingClass('h-14'),
- set::bodyClass('pt-0'),
- $filters ? div
- (
- setID('filter_' . $chartID),
- setClass('flex justify-between bg-canvas'),
- div
- (
- setClass('flex flex-wrap w-full'),
- $filters
- ),
- button
- (
- setClass('btn primary'),
- setData(array('on' => 'click', 'call' => "loadChart('{$chartID}')")),
- set::title($lang->chart->updateCurrentChart),
- $lang->chart->query
- )
- ) : null,
- div
- (
- setID('chart_' . $chartID),
- setClass('echart-content'),
- set('data-group', $chart->currentGroup),
- set('data-id', $chart->id),
- $this->chart->isChartHaveData($chartOptions, $chart->type) ? echarts(set($chartOptions), set::width('100%'), set::height(400), $chart->type == 'waterpolo' ? set::exts('liquidfill') : null) : div
- (
- setClass('no-data'),
- div
- (
- setClass('no-data-dom'),
- span(setClass('text-muted'), $this->lang->chart->noData)
- )
- )
- )
- );
- }
- return $chartList;
- };
|