* Add date filter to metric in screen designer.
This commit is contained in:
@@ -1541,6 +1541,20 @@ class metricModel extends model
|
||||
return in_array('scope', array_column($header, 'name'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过header来判断一个度量项有没有日期的概念。
|
||||
* Judge whether a metric has the concept of an date.
|
||||
*
|
||||
* header 通过 metric 模块的 getViewTableHeader 方法取得
|
||||
* @param array $header 表头
|
||||
* @access public
|
||||
* @return bool
|
||||
*/
|
||||
public function isDateMetric($header)
|
||||
{
|
||||
return in_array('date', array_column($header, 'name'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取一个echarts的配置项。
|
||||
* Get options of echarts by head and data.
|
||||
|
||||
+31
-10
@@ -354,21 +354,22 @@ class screenModel extends model
|
||||
*/
|
||||
public function buildMetricFilters($metric)
|
||||
{
|
||||
$this->loadModel('metric');
|
||||
$scope = $metric->scope;
|
||||
|
||||
$filters = array();
|
||||
if($scope != 'system')
|
||||
{
|
||||
$filter = new stdclass();
|
||||
$filter->from = 'query';
|
||||
$filter->field = $scope;
|
||||
$filter->name = $this->lang->$scope->common;
|
||||
$filter->type = 'select';
|
||||
$filter->typeOption = $scope;
|
||||
$filter->default = null;
|
||||
$scopeFilter = new stdclass();
|
||||
$scopeFilter->from = 'query';
|
||||
$scopeFilter->field = $scope;
|
||||
$scopeFilter->name = $this->lang->$scope->common;
|
||||
$scopeFilter->type = 'select';
|
||||
$scopeFilter->typeOption = $scope;
|
||||
$scopeFilter->default = null;
|
||||
|
||||
$objectPairs = $this->loadModel('metric')->getPairsByScope($scope, true);
|
||||
$filter->options = array_map(function($objectID, $objectName)
|
||||
$objectPairs = $this->metric->getPairsByScope($scope, true);
|
||||
$scopeFilter->options = array_map(function($objectID, $objectName)
|
||||
{
|
||||
return array(
|
||||
'label' => $objectName,
|
||||
@@ -378,7 +379,27 @@ class screenModel extends model
|
||||
array_keys($objectPairs),
|
||||
array_values($objectPairs));
|
||||
|
||||
$filters[] = $filter;
|
||||
$filters[] = $scopeFilter;
|
||||
}
|
||||
|
||||
$resultHeader = $this->metric->getViewTableHeader($metric);
|
||||
if($this->metric->isDateMetric($resultHeader))
|
||||
{
|
||||
$beginFilter = new stdclass();
|
||||
$beginFilter->from = 'query';
|
||||
$beginFilter->field = 'begin';
|
||||
$beginFilter->type = 'date';
|
||||
$beginFilter->typeOption = null;
|
||||
$beginFilter->default = null;
|
||||
$filters[] = $beginFilter;
|
||||
|
||||
$endFilter = new stdclass();
|
||||
$endFilter->from = 'query';
|
||||
$endFilter->field = 'end';
|
||||
$endFilter->type = 'date';
|
||||
$endFilter->typeOption = null;
|
||||
$endFilter->default = null;
|
||||
$filters[] = $endFilter;
|
||||
}
|
||||
|
||||
return $filters;
|
||||
|
||||
Reference in New Issue
Block a user