From 8529a59731d744dfb87aa71d7736f223a16e32e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Tue, 24 Aug 2021 14:42:49 +0800 Subject: [PATCH] * fix for switch program by dropmenu when create project. --- module/personnel/model.php | 11 ++++++---- module/program/model.php | 43 +++++++++++++++++++++++++++++--------- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/module/personnel/model.php b/module/personnel/model.php index d3b541eede..a97a3a69bc 100644 --- a/module/personnel/model.php +++ b/module/personnel/model.php @@ -134,14 +134,17 @@ class personnelModel extends model $issueInvest = $this->getIssueInvest($accountPairs, $projects); $riskInvest = $this->getRiskInvest($accountPairs, $projects); } - $userPairs = $this->loadModel('user')->getListByAccounts(array_keys($accountPairs), 'account'); - foreach($userPairs as $user) $user->role = zget($this->lang->user->roleList, $user->role, $user->role); + + $users = $this->loadModel('user')->getListByAccounts(array_keys($accountPairs), 'account'); + foreach($users as $user) $user->role = zget($this->lang->user->roleList, $user->role, $user->role); foreach($accountPairs as $account => $projects) { - $personnelList[$account]['realname'] = $userPairs[$account]->realname; + $user = zget($users, $account, ''); + + $personnelList[$account]['realname'] = $user ? $user->realname : $account; $personnelList[$account]['account'] = $account; - $personnelList[$account]['role'] = $userPairs[$account]->role; + $personnelList[$account]['role'] = $user ? $user->role : ''; $personnelList[$account]['projects'] = $projects; $personnelList[$account]['executions'] = zget($executionPairs, $account, 0); diff --git a/module/program/model.php b/module/program/model.php index a465490ad7..ccac058729 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -546,25 +546,19 @@ class programModel extends model while($program = $stmt->fetch()) { - $link = $from == 'program' ? helper::createLink($moduleName, $methodName, "programID=$program->id") : helper::createLink('product', 'all', "programID=$program->id" . $vars); + $link = $this->getLink($moduleName, $methodName, $program->id, $vars, $from); $linkHtml = html::a($link, $program->name, '', "id='program$program->id' class='text-ellipsis' title=$program->name"); if(isset($programMenu[$program->id]) and !empty($programMenu[$program->id])) { if(!isset($programMenu[$program->parent])) $programMenu[$program->parent] = ''; $programMenu[$program->parent] .= "
  • $linkHtml"; - $programMenu[$program->parent] .= "\n"; + $programMenu[$program->parent] .= "\n"; } else { - if(isset($programMenu[$program->parent]) and !empty($programMenu[$program->parent])) - { - $programMenu[$program->parent] .= "
  • $linkHtml\n"; - } - else - { - $programMenu[$program->parent] = "
  • $linkHtml\n"; - } + if(empty($programMenu[$program->parent])) $programMenu[$program->parent] = ''; + $programMenu[$program->parent] .= "
  • $linkHtml\n"; } $programMenu[$program->parent] .= "
  • \n"; } @@ -576,6 +570,35 @@ class programModel extends model return $lastMenu; } + /** + * Get link for drop tree menu. + * + * @param string $moduleName + * @param string $methodName + * @param int $programID + * @param string $vars + * @param string $from + * @access public + * @return string + */ + public function getLink($moduleName, $methodName, $programID, $vars = '', $from = 'program') + { + if($from != 'program') return helper::createLink('product', 'all', "programID=$programID" . $vars); + + if($moduleName == 'project') + { + $moduleName = 'program'; + $methodName = 'project'; + } + if($moduleName == 'product') + { + $moduleName = 'program'; + $methodName = 'product'; + } + + return helper::createLink($moduleName, $methodName, "programID=$programID"); + } + /** * Get top program pairs. *