diff --git a/module/design/config/form.php b/module/design/config/form.php index 74fee3654d..e641587c42 100644 --- a/module/design/config/form.php +++ b/module/design/config/form.php @@ -14,3 +14,13 @@ $config->design->form->create['desc'] = array('type' => 'string', 'requ $config->design->form->create['version'] = array('type' => 'int', 'required' => false, 'default' => 1); $config->design->form->create['createdBy'] = array('type' => 'string', 'required' => false, 'default' => $app->user->account); $config->design->form->create['createdDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now); + +$config->design->form->batchcreate['name'] = array('type' => 'string', 'required' => false, 'default' => '', 'filter' => 'trim', 'base' => true); +$config->design->form->batchcreate['type'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->design->form->batchcreate['product'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->design->form->batchcreate['project'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->design->form->batchcreate['story'] = array('type' => 'int', 'required' => false, 'default' => 0); +$config->design->form->batchcreate['desc'] = array('type' => 'string', 'required' => false, 'default' => ''); +$config->design->form->batchcreate['version'] = array('type' => 'int', 'required' => false, 'default' => 1); +$config->design->form->batchcreate['createdBy'] = array('type' => 'string', 'required' => false, 'default' => $app->user->account); +$config->design->form->batchcreate['createdDate'] = array('type' => 'datetime', 'required' => false, 'default' => $now); diff --git a/module/design/control.php b/module/design/control.php index d1aa8ae1c7..d41230ad21 100755 --- a/module/design/control.php +++ b/module/design/control.php @@ -158,11 +158,12 @@ class design extends control } /** + * 批量创建设计。 * Batch create designs. * * @param int $projectID * @param int $productID - * @param string $type + * @param string $type all|bySearch|HLDS|DDS|DBDS|ADS * @access public * @return void */ @@ -172,20 +173,11 @@ class design extends control if($_POST) { - $this->design->batchCreate($projectID, $productID); + $designs = form::batchData()->get(); + $this->design->batchCreate($projectID, $productID, $designs); - if(dao::isError()) - { - $response['result'] = 'fail'; - $response['message'] = dao::getError(); - return $this->send($response); - } - - $response['result'] = 'success'; - $response['message'] = $this->lang->saveSuccess; - $response['load'] = inlink('browse', "projectID=$projectID&productID=$productID"); - - return $this->send($response); + if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); + return $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'load' => inlink('browse', "projectID={$projectID}&productID={$productID}"))); } $products = $this->product->getProductPairsByProject($projectID); @@ -193,8 +185,7 @@ class design extends control $project = $this->loadModel('project')->getByID($projectID); - $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->batchCreate; - + $this->view->title = $this->lang->design->common . $this->lang->colon . $this->lang->design->batchCreate; $this->view->stories = $this->loadModel('story')->getProductStoryPairs($productIdList); $this->view->users = $this->loadModel('user')->getPairs('noclosed'); $this->view->type = $type; diff --git a/module/design/model.php b/module/design/model.php index b9540d0688..0c4879e513 100755 --- a/module/design/model.php +++ b/module/design/model.php @@ -51,37 +51,27 @@ class designModel extends model } /** + * 批量创建设计。 * Batch create designs. * * @param int $projectID * @param int $productID + * @param array $designs * @access public * @return bool */ - public function batchCreate($projectID = 0, $productID = 0) + public function batchCreate(int $projectID = 0, int $productID = 0, array $designs = array()): bool { - $data = fixer::input('post')->get(); - $this->loadModel('action'); - foreach($data->name as $i => $name) + foreach($designs as $rowID => $design) { - if(!trim($name)) continue; - - $design = new stdclass(); - $design->story = isset($data->story[$i]) ? $data->story[$i] : ''; - $design->type = $data->type[$i]; - $design->name = $name; - $design->product = $productID; - $design->project = $projectID; - $design->desc = nl2br($data->desc[$i]); - $design->createdBy = $this->app->user->account; - $design->createdDate = helper::now(); - + $design->product = $productID; + $design->project = $projectID; $this->dao->insert(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck($this->config->design->batchcreate->requiredFields, 'notempty')->exec(); if(dao::isError()) { - foreach(dao::getError() as $field => $error) dao::$errors["{$field}[{$i}]"] = $error; + foreach(dao::getError() as $field => $error) dao::$errors["{$field}[{$rowID}]"] = $error; return false; }