diff --git a/module/metric/model.php b/module/metric/model.php index 102c1f3b34..c966c40f75 100755 --- a/module/metric/model.php +++ b/module/metric/model.php @@ -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. diff --git a/module/screen/model.php b/module/screen/model.php index 2c238431f5..4a6d94ce77 100644 --- a/module/screen/model.php +++ b/module/screen/model.php @@ -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;