Files
EasySoft-ZenTaoPMS/module/screen/test/screen.class.php
T

128 lines
3.7 KiB
PHP

<?php
class screenTest
{
public $componentList = array();
public function __construct()
{
global $tester;
$this->objectModel = $tester->loadModel('screen');
$this->initScreen();
}
/**
* 测试getList。
* Test getList.
*
* @param int $dimensionID 维度ID。
* @return array
*/
public function getListTest(int $dimensionID): array
{
return $this->objectModel->getList($dimensionID);
}
/**
* 测试getByID。
* Test getByID.
*
* @param int $screenID
* @param int $year
* @param int $dept
* @param string $account
* @return object|bool
* @access public
* @return object|bool
*/
public function getByIDTest(int $screenID, int $year = 0, int $dept = 0, string $account = ''): object|bool
{
return $this->objectModel->getByID($screenID, $year, $dept, $account);
}
/**
* 初始化大屏数据。
* Initialize screen data.
*
* @access public
* @return void
*/
public function initScreen(): void
{
global $tester,$app;
$appPath = $app->getAppRoot();
$sqlFile = $appPath . 'data/screen.sql';
$tester->dbh->exec(file_get_contents($sqlFile));
}
public function getAllComponent(array $filters = array())
{
if(!empty($this->componentList))
{
$componentList = $this->componentList;
}
else
{
global $tester;
$sql = "SELECT * FROM `zt_screen`";
$screenList = $tester->dbh->query($sql)->fetchAll();
$componentList = [];
foreach($screenList as $screen)
{
if(!in_array($screen->id, array(5, 6, 8)))
{
$componentList = array_merge($componentList, json_decode($screen->scheme));
}
else
{
$scheme = json_decode($screen->scheme);
if($scheme) $componentList = array_merge($componentList, $scheme->componentList);
}
}
$this->componentList = $componentList;
}
return array_filter($componentList, function($component)use($filters){
foreach($filters as $field => $value)
{
if(isset($component->$field) && $component->$field == $value) return true;
}
return false;
});
}
public function completeComponent($component)
{
if(isset($component->key) && $component->key === 'Select') return array(null, $component);
$chartID = zget($component->chartConfig, 'sourceID', '');
if(!$chartID) return array(null, $component);
global $tester;
$type = $component->chartConfig->package == 'Tables' ? 'pivot' : 'chart';
$table = $type == 'chart' ? TABLE_CHART : TABLE_PIVOT;
$chart = $tester->dao->select('*')->from($table)->where('id')->eq($chartID)->fetch();
return array($chart, $component);
}
/**
* 测试completeComponent。
* Test completeComponent.
*
* @param object $chart
* @param string $type
* @param array $filters
* @param object $component
* @access public
* @return array
*/
public function completeComponentTest(object $chart, string $type, array $filters, object $component)
{
return $this->objectModel->completeComponent($chart, $type, $filters, $component);
}
public function getChartOptionTest(object $chart, object $component)
{
return $this->objectModel->getChartOption($chart, $component, array());
}
}