* [task#149892,done,1h] finish task.

This commit is contained in:
sunguangming
2025-09-23 03:19:51 +00:00
parent 425d8306af
commit 8b935cb454
3 changed files with 34 additions and 4 deletions
+4 -2
View File
@@ -222,12 +222,13 @@ class design extends control
* View a design.
*
* @param int $designID
* @param int $version
* @access public
* @return void
*/
public function view(int $designID = 0)
public function view(int $designID = 0, int $version = 0)
{
$design = $this->design->getByID($designID);
$design = $this->design->getByID($designID, $version);
$this->commonAction($design->project, $design->product, $designID, $design->type);
$this->session->set('revisionList', $this->app->getURI(true));
@@ -244,6 +245,7 @@ class design extends control
$this->view->actions = $this->loadModel('action')->getList('design', $design->id);
$this->view->repos = $this->loadModel('repo')->getRepoPairs('project', $design->project);
$this->view->project = $project;
$this->view->version = $version == 0 ? $design->version : $version;
$this->view->typeList = $project->model == 'waterfall' ? $this->lang->design->typeList : $this->lang->design->plusTypeList;
$this->display();
+9 -2
View File
@@ -254,15 +254,22 @@ class designModel extends model
* @access public
* @return object|bool
*/
public function getByID(int $designID = 0): object|bool
public function getByID(int $designID = 0, int $version = 0): object|bool
{
if(common::isTutorialMode()) return $this->loadModel('tutorial')->getDesign();
$design = $this->dao->select('*')->from(TABLE_DESIGN)->where('id')->eq($designID)->fetch();
if(!$design) return false;
if($version == 0) $version = $design->version;
$this->app->loadLang('product');
$design->files = $this->loadModel('file')->getByObject('design', $designID);
$this->loadModel('file');
$spec = $this->dao->select('name,`desc`,files')->from(TABLE_DESIGNSPEC)->where('design')->eq($designID)->andWhere('version')->eq($version)->fetch();
$design->name = !empty($spec->name) ? $spec->name : '';
$design->desc = !empty($spec->desc) ? $spec->desc : '';
$design->files = !empty($spec->files) ? $this->file->getByIdList($spec->files) : array();
$design->productName = $design->product ? $this->dao->findByID($design->product)->from(TABLE_PRODUCT)->fetch('name') : $this->lang->product->all;
$design->project = (int)$design->project;
$design->product = (int)$design->product;
+21
View File
@@ -11,10 +11,30 @@ declare(strict_types=1);
namespace zin;
jsVar('type', strtolower($design->type));
/* 版本列表。Version list. */
$versions = array();
for($i = $design->version; $i >= 1; $i--)
{
$versionItem = setting()
->text("#{$i}")
->url(inlink('view', "designID={$design->id}&version=$i"));
$versionItem->selected($version == $i);
$versions[] = $versionItem;
}
$versionBtn = count($versions) > 1 ? to::title(dropdown
(
btn(set::type('ghost'), setClass('text-link font-normal text-base'), "#{$version}"),
set::items($versions)
)) : null;
detailHeader
(
set::backUrl(createLink('design', 'browse', "projectID={$design->project}")),
to::title(entityLabel(set(array('entityID' => $design->id, 'level' => 1, 'text' => $design->name))), $design->deleted ? span(setClass('label danger'), $lang->deleted) : null),
$versionBtn
);
$canModify = common::canModify('project', $project);
@@ -75,6 +95,7 @@ if($this->design->isClickable($design, 'confirmStoryChange'))
detailBody
(
$versionBtn,
sectionList
(
section