From 99d340f5dc20f3d2ef28ed9949b3c3a3bddbd136 Mon Sep 17 00:00:00 2001 From: xieqiyu Date: Tue, 9 Dec 2025 05:36:35 +0000 Subject: [PATCH] * [task#153197] Add the priv of set TR point and set DCP point. --- config/zentaopms.php | 1 - module/group/lang/de.php | 1 + module/group/lang/en.php | 1 + module/group/lang/fr.php | 1 + module/group/lang/zh-cn.php | 1 + module/group/packagemanager.php | 19 ++++++++---- module/stage/config/form.php | 10 +++++-- module/stage/control.php | 50 ++++++++++++++++++++++++-------- module/stage/lang/de.php | 3 +- module/stage/lang/en.php | 3 +- module/stage/lang/fr.php | 3 +- module/stage/lang/zh-cn.php | 3 +- module/stage/ui/browse.html.php | 2 +- module/stage/ui/settype.html.php | 4 +-- 14 files changed, 69 insertions(+), 33 deletions(-) diff --git a/config/zentaopms.php b/config/zentaopms.php index c226d56845..1982e9ea2d 100644 --- a/config/zentaopms.php +++ b/config/zentaopms.php @@ -228,7 +228,6 @@ $config->openMethods[] = 'admin.register'; $config->openMethods[] = 'admin.getcaptcha'; $config->openMethods[] = 'admin.sendcode'; $config->openMethods[] = 'admin.planmodal'; -$config->openMethods[] = 'stage.setpoint'; $config->openMethods[] = 'im.authorize'; /* 登录用户可以使用的方法。The methods that can be used by the logged users. */ diff --git a/module/group/lang/de.php b/module/group/lang/de.php index 6e32bf34d4..1f5cfeb0cb 100644 --- a/module/group/lang/de.php +++ b/module/group/lang/de.php @@ -494,6 +494,7 @@ $lang->group->package->projectBuild = 'Project Build'; $lang->group->package->importCaseLib = 'Import Case Lib'; $lang->group->package->commonSetting = 'Common Setting'; $lang->group->package->stageSetting = 'Stage Setting'; +$lang->group->package->stageType = 'Stage Setting'; $lang->group->package->reviewFlow = 'Review'; $lang->group->package->reviewCheck = 'Review Checklist'; $lang->group->package->reviewCategory = 'Review Category'; diff --git a/module/group/lang/en.php b/module/group/lang/en.php index 7c7974de27..b667fc31a1 100644 --- a/module/group/lang/en.php +++ b/module/group/lang/en.php @@ -494,6 +494,7 @@ $lang->group->package->projectBuild = 'Project Build'; $lang->group->package->importCaseLib = 'Import Case Lib'; $lang->group->package->commonSetting = 'Common Setting'; $lang->group->package->stageSetting = 'Stage Setting'; +$lang->group->package->stageType = 'Stage Setting'; $lang->group->package->reviewFlow = 'Review'; $lang->group->package->reviewCheck = 'Review Checklist'; $lang->group->package->reviewCategory = 'Review Category'; diff --git a/module/group/lang/fr.php b/module/group/lang/fr.php index d05c6fc357..89e89abdf3 100644 --- a/module/group/lang/fr.php +++ b/module/group/lang/fr.php @@ -494,6 +494,7 @@ $lang->group->package->projectBuild = 'Project Build'; $lang->group->package->importCaseLib = 'Import Case Lib'; $lang->group->package->commonSetting = 'Common Setting'; $lang->group->package->stageSetting = 'Stage Setting'; +$lang->group->package->stageType = 'Stage Setting'; $lang->group->package->reviewFlow = 'Review'; $lang->group->package->reviewCheck = 'Review Checklist'; $lang->group->package->reviewCategory = 'Review Category'; diff --git a/module/group/lang/zh-cn.php b/module/group/lang/zh-cn.php index 700b10d1a8..9de05b2bb4 100644 --- a/module/group/lang/zh-cn.php +++ b/module/group/lang/zh-cn.php @@ -494,6 +494,7 @@ $lang->group->package->projectBuild = '项目构建'; $lang->group->package->importCaseLib = '导入用例库'; $lang->group->package->commonSetting = '通用配置'; $lang->group->package->stageSetting = '阶段配置'; +$lang->group->package->stageType = '阶段设置'; $lang->group->package->reviewFlow = '评审流程'; $lang->group->package->reviewCheck = '评审流程检查清单'; $lang->group->package->reviewCategory = '评审流程检查单分类'; diff --git a/module/group/packagemanager.php b/module/group/packagemanager.php index b212a9cd43..1658a88f92 100644 --- a/module/group/packagemanager.php +++ b/module/group/packagemanager.php @@ -2615,12 +2615,13 @@ $config->group->package->stageSetting = new stdclass(); $config->group->package->stageSetting->order = 40; $config->group->package->stageSetting->subset = 'projectFlow'; $config->group->package->stageSetting->privs = array(); -$config->group->package->stageSetting->privs['stage-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-setType', 'stage-delete')); -$config->group->package->stageSetting->privs['stage-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('stage-browse'), 'recommend' => array('stage-batchCreate', 'stage-edit', 'stage-setType', 'stage-delete')); -$config->group->package->stageSetting->privs['stage-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-edit', 'stage-setType', 'stage-delete')); -$config->group->package->stageSetting->privs['stage-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-setType', 'stage-delete')); -$config->group->package->stageSetting->privs['stage-setType'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-delete')); -$config->group->package->stageSetting->privs['stage-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-setType')); +$config->group->package->stageSetting->privs['stage-browse'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 10, 'depend' => array(), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-setTRpoint', 'stage-setDCPpoint', 'stage-delete')); +$config->group->package->stageSetting->privs['stage-create'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 15, 'depend' => array('stage-browse'), 'recommend' => array('stage-batchCreate', 'stage-edit', 'stage-setTRpoint', 'stage-setDCPpoint', 'stage-delete')); +$config->group->package->stageSetting->privs['stage-batchCreate'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 20, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-edit', 'stage-setTRpoint', 'stage-setDCPpoint', 'stage-delete')); +$config->group->package->stageSetting->privs['stage-edit'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-setTRpoint', 'stage-setDCPpoint', 'stage-delete')); +$config->group->package->stageSetting->privs['stage-setTRpoint'] = array('edition' => 'ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-setDCPpoint', 'stage-delete')); +$config->group->package->stageSetting->privs['stage-setDCPpoint'] = array('edition' => 'ipd', 'vision' => 'rnd', 'order' => 35, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-setTRpoint', 'stage-delete')); +$config->group->package->stageSetting->privs['stage-delete'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 40, 'depend' => array('stage-browse'), 'recommend' => array('stage-create', 'stage-batchCreate', 'stage-edit', 'stage-setTRpoint', 'stage-setDCPpoint')); $config->group->package->reviewFlow = new stdclass(); $config->group->package->reviewFlow->order = 45; @@ -3195,6 +3196,12 @@ $config->group->package->commonSetting->privs['custom-percent'] = array(' $config->group->package->commonSetting->privs['subject-browse'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 25, 'depend' => array(), 'recommend' => array()); $config->group->package->commonSetting->privs['baseline-templatetype'] = array('edition' => 'max,ipd', 'vision' => 'rnd', 'order' => 30, 'depend' => array(), 'recommend' => array()); +$config->group->package->stageType = new stdclass(); +$config->group->package->stageType->order = 15; +$config->group->package->stageType->subset = 'featureconfig'; +$config->group->package->stageType->privs = array(); +$config->group->package->stageType->privs['stage-setType'] = array('edition' => 'open,biz,max,ipd', 'vision' => 'rnd', 'order' => 5, 'depend' => array(), 'recommend' => array()); + $config->group->package->classify = new stdclass(); $config->group->package->classify->order = 30; $config->group->package->classify->subset = 'featureconfig'; diff --git a/module/stage/config/form.php b/module/stage/config/form.php index dd157e7ba9..f4a795e302 100644 --- a/module/stage/config/form.php +++ b/module/stage/config/form.php @@ -21,6 +21,10 @@ $config->stage->form->settype['lang'] = array('type' => 'string', 'required' = $config->stage->form->settype['keys'] = array('type' => 'array', 'required' => false, 'default' => array()); $config->stage->form->settype['values'] = array('type' => 'array', 'required' => false, 'default' => array()); -$config->stage->form->setpoint['id'] = array('type' => 'int', 'required' => false, 'default' => 0); -$config->stage->form->setpoint['title'] = array('type' => 'string', 'required' => true, 'default' => '', 'base' => true, 'filter' => 'trim'); -$config->stage->form->setpoint['flow'] = array('type' => 'int', 'required' => true, 'default' => 1); +$config->stage->form->settrpoint['id'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->stage->form->settrpoint['title'] = array('type' => 'string', 'required' => true, 'default' => '', 'base' => true, 'filter' => 'trim'); +$config->stage->form->settrpoint['flow'] = array('type' => 'int', 'required' => true, 'default' => 1); + +$config->stage->form->setdcppoint['id'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->stage->form->setdcppoint['title'] = array('type' => 'string', 'required' => true, 'default' => '', 'base' => true, 'filter' => 'trim'); +$config->stage->form->setdcppoint['flow'] = array('type' => 'int', 'required' => true, 'default' => 1); diff --git a/module/stage/control.php b/module/stage/control.php index db995db483..de2438a32c 100644 --- a/module/stage/control.php +++ b/module/stage/control.php @@ -46,12 +46,12 @@ class stage extends control { $this->config->stage->actionList['setTRpoint']['icon'] = 'tr-box'; $this->config->stage->actionList['setTRpoint']['hint'] = $this->lang->stage->setTRpoint; - $this->config->stage->actionList['setTRpoint']['url'] = array('module' => 'stage', 'method' => 'setPoint', 'params' => 'type=TR&stageID={id}'); + $this->config->stage->actionList['setTRpoint']['url'] = array('module' => 'stage', 'method' => 'setTRpoint', 'params' => 'stageID={id}'); $this->config->stage->actionList['setTRpoint']['data-toggle'] = 'modal'; $this->config->stage->actionList['setDCPpoint']['icon'] = 'dcp-box'; $this->config->stage->actionList['setDCPpoint']['hint'] = $this->lang->stage->setDCPpoint; - $this->config->stage->actionList['setDCPpoint']['url'] = array('module' => 'stage', 'method' => 'setPoint', 'params' => 'type=DCP&stageID={id}'); + $this->config->stage->actionList['setDCPpoint']['url'] = array('module' => 'stage', 'method' => 'setDCPpoint', 'params' => 'stageID={id}'); $this->config->stage->actionList['setDCPpoint']['data-toggle'] = 'modal'; $this->config->stage->dtable->fieldList['actions']['menu'] = array('setTRpoint', 'setDCPpoint', 'edit', 'delete'); @@ -231,7 +231,7 @@ class stage extends control return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => true)); } - $this->view->title = $this->lang->stage->common . $this->lang->hyphen . $this->lang->stage->setTypeAB; + $this->view->title = $this->lang->stage->common . $this->lang->hyphen . $this->lang->stage->setType; $this->view->currentLang = $currentLang; $this->view->lang2Set = !empty($lang2Set) ? $lang2Set : $lang; $this->view->fieldList = $fieldList; @@ -256,31 +256,57 @@ class stage extends control } /** - * 设置阶段的评审点。 - * Set point of stage. + * 设置TR评审点。 + * Set TR point of stage. * - * @param string $type TR|DCP * @param int $stageID * @access public * @return void */ - public function setPoint(string $type, int $stageID) + public function setTRpoint(int $stageID) { $this->app->loadLang('review'); if(!empty($_POST)) { - $this->lang->stage->title = $type == 'TR' ? $this->lang->stage->TRname : $this->lang->stage->DCPname; + $this->lang->stage->title = $this->lang->stage->TRname; $points = form::batchData()->get(); - $this->stage->setPoint($type, $stageID, $points); + $this->stage->setPoint('TR', $stageID, $points); if(dao::isError()) return $this->sendError(dao::getError()); return $this->sendSuccess(array('closeModal' => true, 'load' => true)); } - $this->view->type = $type; + $this->view->type = 'TR'; $this->view->approvals = $this->loadModel('approvalflow')->getPairs('project'); - $this->view->stagePoints = $this->stage->getStagePoints($type, $stageID); - $this->display(); + $this->view->stagePoints = $this->stage->getStagePoints('TR', $stageID); + $this->display('stage', 'setPoint'); + } + + /** + * 设置DCP评审点。 + * Set point of stage. + * + * @param int $stageID + * @access public + * @return void + */ + public function setDCPpoint(int $stageID) + { + $this->app->loadLang('review'); + + if(!empty($_POST)) + { + $this->lang->stage->title = $this->lang->stage->DCPname; + $points = form::batchData()->get(); + $this->stage->setPoint('DCP', $stageID, $points); + if(dao::isError()) return $this->sendError(dao::getError()); + return $this->sendSuccess(array('closeModal' => true, 'load' => true)); + } + + $this->view->type = 'DCP'; + $this->view->approvals = $this->loadModel('approvalflow')->getPairs('project'); + $this->view->stagePoints = $this->stage->getStagePoints('DCP', $stageID); + $this->display('stage', 'setPoint'); } /** diff --git a/module/stage/lang/de.php b/module/stage/lang/de.php index 1d1316fd68..93913a5327 100644 --- a/module/stage/lang/de.php +++ b/module/stage/lang/de.php @@ -26,8 +26,7 @@ $lang->stage->id = 'ID'; $lang->stage->name = 'Name'; $lang->stage->type = 'Type'; $lang->stage->percent = 'Workload %'; -$lang->stage->setType = 'Set Point'; -$lang->stage->setTypeAB = 'Stage Type'; +$lang->stage->setType = 'Stage Type'; $lang->stage->TRpoint = 'TR Point'; $lang->stage->DCPpoint = 'DCP Point'; $lang->stage->TRname = 'TR Point Name'; diff --git a/module/stage/lang/en.php b/module/stage/lang/en.php index 1d1316fd68..93913a5327 100644 --- a/module/stage/lang/en.php +++ b/module/stage/lang/en.php @@ -26,8 +26,7 @@ $lang->stage->id = 'ID'; $lang->stage->name = 'Name'; $lang->stage->type = 'Type'; $lang->stage->percent = 'Workload %'; -$lang->stage->setType = 'Set Point'; -$lang->stage->setTypeAB = 'Stage Type'; +$lang->stage->setType = 'Stage Type'; $lang->stage->TRpoint = 'TR Point'; $lang->stage->DCPpoint = 'DCP Point'; $lang->stage->TRname = 'TR Point Name'; diff --git a/module/stage/lang/fr.php b/module/stage/lang/fr.php index 1d1316fd68..93913a5327 100644 --- a/module/stage/lang/fr.php +++ b/module/stage/lang/fr.php @@ -26,8 +26,7 @@ $lang->stage->id = 'ID'; $lang->stage->name = 'Name'; $lang->stage->type = 'Type'; $lang->stage->percent = 'Workload %'; -$lang->stage->setType = 'Set Point'; -$lang->stage->setTypeAB = 'Stage Type'; +$lang->stage->setType = 'Stage Type'; $lang->stage->TRpoint = 'TR Point'; $lang->stage->DCPpoint = 'DCP Point'; $lang->stage->TRname = 'TR Point Name'; diff --git a/module/stage/lang/zh-cn.php b/module/stage/lang/zh-cn.php index 78b155b6b3..b4e16c3259 100644 --- a/module/stage/lang/zh-cn.php +++ b/module/stage/lang/zh-cn.php @@ -26,8 +26,7 @@ $lang->stage->id = 'ID'; $lang->stage->name = '阶段名称'; $lang->stage->type = '阶段类型'; $lang->stage->percent = '工作量占比'; -$lang->stage->setType = '评审点设置'; -$lang->stage->setTypeAB = '阶段类型'; +$lang->stage->setType = '阶段类型'; $lang->stage->TRpoint = 'TR评审点'; $lang->stage->DCPpoint = 'DCP评审点'; $lang->stage->TRname = 'TR评审点名称'; diff --git a/module/stage/ui/browse.html.php b/module/stage/ui/browse.html.php index 6d12f85f0a..bef5bd2f2f 100644 --- a/module/stage/ui/browse.html.php +++ b/module/stage/ui/browse.html.php @@ -32,7 +32,7 @@ if($this->config->edition == 'open') a ( set::href(createLink('stage', 'settype')), - $lang->stage->setTypeAB + $lang->stage->setType ) ); } diff --git a/module/stage/ui/settype.html.php b/module/stage/ui/settype.html.php index 989d654907..0145feda5a 100644 --- a/module/stage/ui/settype.html.php +++ b/module/stage/ui/settype.html.php @@ -125,7 +125,7 @@ $menuItems[] = li ( setClass('active'), set::href(createLink('stage', 'settype')), - $lang->stage->setTypeAB + $lang->stage->setType ) ); @@ -158,7 +158,7 @@ div set::headingClass('justify-start'), setClass('flex-auto ml-0.5'), set::actionsClass('w-1/2'), - set::title($lang->stage->setTypeAB), + set::title($lang->stage->setType), set::actions($formActions), $formItems )