Merge branch 'zhouxin_feedback_1646' into 'master'

* Resolve feedback #1646.

See merge request easycorp/zentaopms!6503
This commit is contained in:
孙广明
2022-12-08 06:05:14 +00:00
3 changed files with 59 additions and 5 deletions
+32
View File
@@ -939,6 +939,38 @@ class commonModel extends model
echo "<div class='btn-group header-btn'>" . $html . '</div>';
}
/**
* Format the date to YYYY-mm-dd, format the datetime to YYYY-mm-dd HH:ii:ss.
*
* @param int $date
* @param string $type date|datetime|''
* @access public
* @return string
*/
public function formatDate($date, $type = '')
{
$datePattern = '\w{4}(\/|-)\w{1,2}(\/|-)\w{1,2}';
$datetimePattern = $datePattern . ' \w{1,2}\:\w{1,2}\:\w{1,2}';
if(empty($type))
{
if(!preg_match("/$datePattern/", $date) and !preg_match("/$datetimePattern/", $date)) return $date;
if(preg_match("/$datePattern/", $date) === 1) $type = 'date';
if(preg_match("/$datetimePattern/", $date) === 1) $type = 'datetime';
}
if(helper::isZeroDate($date))
{
if($type == 'date') return '0000-00-00';
if($type == 'datetime') return '0000-00-00 00:00:00';
}
if($type == 'date') $format = 'Y-m-d';
if($type == 'datetime') $format = 'Y-m-d H:i:s';
return date($format, strtotime($date));
}
/**
* Get main nav items list
*
+2 -2
View File
@@ -12,8 +12,8 @@ $config->transfer->fieldList['sort'] = '';
$config->transfer->fieldList['dataSource'] = array('module' => '', 'method' => '', 'params' => '', 'pairs' => '', 'lang' => '');
$config->transfer->initFunction = 'title,control,required,';
$config->transfer->dateFeilds = 'estStarted,realStarted,deadline,openedDate,assignedDate,finishedDate,canceledDate,closedDate,lastEditedDate,';
$config->transfer->datetimeFeilds = '';
$config->transfer->dateFields = 'estStarted,realStarted,deadline,openedDate,assignedDate,finishedDate,canceledDate,closedDate,lastEditedDate,';
$config->transfer->datetimeFields = '';
$config->transfer->listFields = '';
$config->transfer->sysLangFields = ',pri,status,type,mode,severity,os,browser,resolution,confirmed,source,reviewResult,stage,change,category';
$config->transfer->sysDataFields = 'execution,product,user';
+25 -3
View File
@@ -506,10 +506,32 @@ class transferModel extends model
{
$modelData = $this->getDatasByFile($tmpFile);
}
$modelData = $this->processDate($modelData);
if(isset($fields['id'])) unset($fields['id']);
return $modelData;
}
/**
* Process datas, convert date to YYYY-mm-dd, convert datetime to YYYY-mm-dd HH:ii:ss.
*
* @param array $datas
* @access public
* @return array
*/
public function processDate($datas)
{
foreach($datas as $index => $data)
{
foreach($data as $field => $value)
{
if(strpos($this->modelConfig->dateFields, $field) !== false or strpos($this->modelConfig->datetimeFields, $field) !== false) $data->$field = $this->loadModel('common')->formatDate($value);
}
$datas[$index] = $data;
}
return $datas;
}
/**
* Get rows from excel.
*
@@ -940,7 +962,7 @@ class transferModel extends model
foreach($data as $field => $cellValue)
{
if(empty($cellValue)) continue;
if(strpos($this->transferConfig->dateFeilds, $field) !== false and helper::isZeroDate($cellValue)) $datas[$key]->$field = '';
if(strpos($this->transferConfig->dateFields, $field) !== false and helper::isZeroDate($cellValue)) $datas[$key]->$field = '';
if(is_array($cellValue)) continue;
if(!empty($fieldList[$field]['from']) and in_array($fieldList[$field]['control'], array('select', 'multiple')))
@@ -1325,8 +1347,8 @@ class transferModel extends model
if(!isset($modelConfig->export)) $modelConfig->export = new stdClass();
if(!isset($modelConfig->import)) $modelConfig->export = new stdClass();
$modelConfig->dateFeilds = isset($modelConfig->dateFeilds) ? $modelConfig->dateFeilds : $transferConfig->dateFeilds;
$modelConfig->datetimeFeilds = isset($modelConfig->datetimeFeilds) ? $modelConfig->datetimeFeilds : $transferConfig->datetimeFeilds;
$modelConfig->dateFields = isset($modelConfig->dateFields) ? $modelConfig->dateFields : $transferConfig->dateFields;
$modelConfig->datetimeFields = isset($modelConfig->datetimeFields) ? $modelConfig->datetimeFields : $transferConfig->datetimeFields;
$modelConfig->sysLangFields = isset($modelConfig->sysLangFields) ? $modelConfig->sysLangFields : $transferConfig->sysLangFields;
$modelConfig->sysDataFields = isset($modelConfig->sysDataFields) ? $modelConfig->sysDataFields : $transferConfig->sysDataFields;
$modelConfig->listFields = isset($modelConfig->listFields) ? $modelConfig->listFields : $transferConfig->listFields;