* [task#153197] Add the priv of set TR point and set DCP point.

This commit is contained in:
xieqiyu
2025-12-09 06:12:51 +00:00
parent 1266ef54b8
commit 99d340f5dc
14 changed files with 69 additions and 33 deletions
-1
View File
@@ -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. */
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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';
+1
View File
@@ -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 = '评审流程检查单分类';
+13 -6
View File
@@ -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';
+7 -3
View File
@@ -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);
+38 -12
View File
@@ -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');
}
/**
+1 -2
View File
@@ -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';
+1 -2
View File
@@ -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';
+1 -2
View File
@@ -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';
+1 -2
View File
@@ -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评审点名称';
+1 -1
View File
@@ -32,7 +32,7 @@ if($this->config->edition == 'open')
a
(
set::href(createLink('stage', 'settype')),
$lang->stage->setTypeAB
$lang->stage->setType
)
);
}
+2 -2
View File
@@ -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
)