diff --git a/db/update21.4.sql b/db/update21.4.sql index e2a1820f72..2c7398c880 100644 --- a/db/update21.4.sql +++ b/db/update21.4.sql @@ -38,6 +38,3 @@ INSERT INTO `zt_cron` (`m`, `h`, `dom`, `mon`, `dow`, `command`, `remark`, `type UPDATE `zt_workflowaction` SET `layout` = 'side' WHERE `module` = 'caselib' AND `action` = 'editCase'; UPDATE `zt_workflowlayout` SET `position` = 'info' WHERE `module` = 'caselib' AND `action` = 'editCase'; - -ALTER TABLE `zt_module` MODIFY COLUMN short varchar(60); -ALTER TABLE `zt_doc` ADD `templateDesc` text NULL AFTER `templateType`; diff --git a/db/update21.7.1.sql b/db/update21.7.1.sql deleted file mode 100644 index 4eb9107b44..0000000000 --- a/db/update21.7.1.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('rnd', 'system', 'doc', '', 'builtInScopeMaps', '{"product":0,"project":0,"execution":0,"personal":0}'); -INSERT INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('lite', 'system', 'doc', '', 'builtInScopeMaps', '{"project":0,"personal":0}'); -INSERT INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('or', 'system', 'doc', '', 'builtInScopeMaps', '{"market":0,"product":0,"personal":0}'); diff --git a/db/update21.7.2.sql b/db/update21.7.2.sql new file mode 100644 index 0000000000..9ed7b4832c --- /dev/null +++ b/db/update21.7.2.sql @@ -0,0 +1 @@ +ALTER TABLE `zt_doc` ADD `templateDesc` text NULL AFTER `templateType`; diff --git a/db/zentao.sql b/db/zentao.sql index 1a7116d013..1ac543976d 100755 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -2581,10 +2581,6 @@ INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES (' INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'requirement', '', 'gradeRule', 'stepwise'); INSERT INTO `zt_config` (`owner`, `module`, `section`, `key`, `value`) VALUES ('system', 'epic', '', 'gradeRule', 'stepwise'); -INSERT INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('rnd', 'system', 'doc', '', 'builtInScopeMaps', '{"product":0,"project":0,"execution":0,"personal":0}'); -INSERT INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('lite', 'system', 'doc', '', 'builtInScopeMaps', '{"project":0,"personal":0}'); -INSERT INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('or', 'system', 'doc', '', 'builtInScopeMaps', '{"market":0,"product":0,"personal":0}'); - -- DROP TABLE IF EXISTS `zt_relationoftasks`; CREATE TABLE IF NOT EXISTS `zt_relationoftasks` ( `id` MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT , diff --git a/module/doc/model.php b/module/doc/model.php index 00e59cee41..dbea5cc4b6 100644 --- a/module/doc/model.php +++ b/module/doc/model.php @@ -4021,7 +4021,7 @@ class docModel extends model { $scopeMaps = $this->setting->getItem("vision={$vision}&owner=system&module=doc&key=builtInScopeMaps"); $scopeMaps = json_decode($scopeMaps, true); - $scopeID = $vision == 'rnd' ? $scopeMaps['project'] : $scopeMaps['product']; + $scopeID = $vision == 'rnd' ? zget($scopeMaps, 'project', 0) : zget($scopeMaps, 'product', 0); if(!$scopeID) continue; $parentTypes = array(); @@ -4112,7 +4112,7 @@ class docModel extends model { $templateVision = $template->vision; $templateType = $template->templateType; - $templateScopeID = $templateVision == 'or' ? $orScopeMaps['product'] : $rndScopeMaps['project']; + $templateScopeID = $templateVision == 'or' ? zget($orScopeMaps, 'product', 0) : zget($rndScopeMaps, 'project', 0); $template->lib = $templateScopeID; $template->module = $moduleGroup[$templateScopeID][$templateType]->id; $this->dao->update(TABLE_DOC)->data($template)->where('id')->eq($id)->exec(); @@ -4657,7 +4657,7 @@ class docModel extends model { $rndScopeMaps = $this->loadModel('setting')->getItem('vision=rnd&owner=system&module=doc&key=builtInScopeMaps'); $rndScopeMaps = json_decode($rndScopeMaps, true); - $projectScopeID = $rndScopeMaps['project']; + $projectScopeID = zget($rndScopeMaps, 'project', 0); $modulePairs = $this->dao->select('short,id')->from(TABLE_MODULE)->where('root')->eq($projectScopeID)->andWhere('type')->eq('docTemplate')->fetchPairs('short'); $builtInTemplate = new stdClass(); @@ -4679,7 +4679,7 @@ class docModel extends model { /* 创建与分类同名的内置文档模板。*/ /* Add the doc template with the same name as the type. */ - $builtInTemplate->module = $modulePairs[$type]; + $builtInTemplate->module = zget($modulePairs, $type, 0); $builtInTemplate->title = $this->lang->baseline->objectList[$type]; $builtInTemplate->templateType = $type; $this->dao->insert(TABLE_DOC)->data($builtInTemplate)->exec(); diff --git a/module/doc/test/lib/doc.unittest.class.php b/module/doc/test/lib/doc.unittest.class.php index df17923773..07cd8c1b88 100644 --- a/module/doc/test/lib/doc.unittest.class.php +++ b/module/doc/test/lib/doc.unittest.class.php @@ -1578,10 +1578,13 @@ class docTest * @access public * @return bool */ - public function upgradeTemplateTypesTest(int $moduleID) + public function upgradeTemplateTypesTest(int $moduleID, string $name) { + if($this->objectModel->config->edition != 'ipd') return true; + $this->objectModel->upgradeTemplateTypes(); - return $this->objectModel->dao->select('*')->from(TABLE_MODULE)->where('id')->eq($moduleID)->fetch(); + $moduleName = $this->objectModel->dao->select('name')->from(TABLE_MODULE)->where('id')->eq($moduleID)->fetch('name'); + return $moduleName == $name; } /** @@ -1813,15 +1816,20 @@ class docTest * 添加内置文档模板。 * Add the built-in doc template. * + * @param int templateID * @param array typeList + * @param string name * @access public * @return void */ - public function addBuiltInDocTemplateByTypeTest(int $templateID, array $typeList) + public function addBuiltInDocTemplateByTypeTest(int $templateID, array $typeList, string $name) { + if($this->objectModel->config->edition != 'ipd') return true; + $this->objectModel->addBuiltInScopes(); $this->objectModel->upgradeTemplateTypes(); $this->objectModel->addBuiltInDocTemplateByType($typeList); - return $this->objectModel->dao->select('*')->from(TABLE_DOC)->where('id')->eq($templateID)->orderBy('id_desc')->fetch(); + $templateName = $this->objectModel->dao->select('title')->from(TABLE_DOC)->where('id')->eq($templateID)->orderBy('id_desc')->fetch('title'); + return $templateName == $name; } } diff --git a/module/doc/test/model/addbuiltindoctemplatebytype.php b/module/doc/test/model/addbuiltindoctemplatebytype.php index 38ccc7bedf..08702d7cf6 100755 --- a/module/doc/test/model/addbuiltindoctemplatebytype.php +++ b/module/doc/test/model/addbuiltindoctemplatebytype.php @@ -7,30 +7,14 @@ title=测试 docModel->addBuiltInDocTemplateByType(); timeout=0 cid=1 -- 添加内置项目计划模板 - - 属性templateType @PP - - 属性title @项目计划 -- 添加内置软件需求说明书模板 - - 属性templateType @SRS - - 属性title @软件需求规格说明书 -- 添加内置概要设计说明书模板 - - 属性templateType @HLDS - - 属性title @概要设计说明书 -- 添加内置详细设计说明书模板 - - 属性templateType @DDS - - 属性title @详细设计说明书 -- 添加内置接口设计文档模板 - - 属性templateType @ADS - - 属性title @接口设计文档 -- 添加内置数据库设计文档模板 - - 属性templateType @DBDS - - 属性title @数据库设计文档 -- 添加内置集成测试用例模板 - - 属性templateType @ITTC - - 属性title @集成测试用例 -- 添加内置系统测试用例模板 - - 属性templateType @STTC - - 属性title @系统测试用例 +- 添加内置项目计划模板 @1 +- 添加内置软件需求说明书模板 @1 +- 添加内置概要设计说明书模板 @1 +- 添加内置详细设计说明书模板 @1 +- 添加内置接口设计文档模板 @1 +- 添加内置数据库设计文档模板 @1 +- 添加内置集成测试用例模板 @1 +- 添加内置系统测试用例模板 @1 */ @@ -44,12 +28,13 @@ zenData('doc')->gen(0); zenData('doccontent')->gen(0); zenData('doclib')->gen(0); zenData('module')->gen(0); +zenData('lang')->gen(0); $docTester = new docTest(); -r($docTester->addBuiltInDocTemplateByTypeTest(1, array('PP'))) && p('templateType,title') && e('PP,项目计划'); // 添加内置项目计划模板 -r($docTester->addBuiltInDocTemplateByTypeTest(2, array('SRS'))) && p('templateType,title') && e('SRS,软件需求规格说明书'); // 添加内置软件需求说明书模板 -r($docTester->addBuiltInDocTemplateByTypeTest(3, array('HLDS'))) && p('templateType,title') && e('HLDS,概要设计说明书'); // 添加内置概要设计说明书模板 -r($docTester->addBuiltInDocTemplateByTypeTest(4, array('DDS'))) && p('templateType,title') && e('DDS,详细设计说明书'); // 添加内置详细设计说明书模板 -r($docTester->addBuiltInDocTemplateByTypeTest(5, array('ADS'))) && p('templateType,title') && e('ADS,接口设计文档'); // 添加内置接口设计文档模板 -r($docTester->addBuiltInDocTemplateByTypeTest(6, array('DBDS'))) && p('templateType,title') && e('DBDS,数据库设计文档'); // 添加内置数据库设计文档模板 -r($docTester->addBuiltInDocTemplateByTypeTest(7, array('ITTC'))) && p('templateType,title') && e('ITTC,集成测试用例'); // 添加内置集成测试用例模板 -r($docTester->addBuiltInDocTemplateByTypeTest(8, array('STTC'))) && p('templateType,title') && e('STTC,系统测试用例'); // 添加内置系统测试用例模板 +r($docTester->addBuiltInDocTemplateByTypeTest(1, array('PP'), '项目计划')) && p() && e('1'); // 添加内置项目计划模板 +r($docTester->addBuiltInDocTemplateByTypeTest(2, array('SRS'), '软件需求规格说明书')) && p() && e('1'); // 添加内置软件需求说明书模板 +r($docTester->addBuiltInDocTemplateByTypeTest(3, array('HLDS'), '概要设计说明书')) && p() && e('1'); // 添加内置概要设计说明书模板 +r($docTester->addBuiltInDocTemplateByTypeTest(4, array('DDS'), '详细设计说明书')) && p() && e('1'); // 添加内置详细设计说明书模板 +r($docTester->addBuiltInDocTemplateByTypeTest(5, array('ADS'), '接口设计文档')) && p() && e('1'); // 添加内置接口设计文档模板 +r($docTester->addBuiltInDocTemplateByTypeTest(6, array('DBDS'), '数据库设计文档')) && p() && e('1'); // 添加内置数据库设计文档模板 +r($docTester->addBuiltInDocTemplateByTypeTest(7, array('ITTC'), '集成测试用例')) && p() && e('1'); // 添加内置集成测试用例模板 +r($docTester->addBuiltInDocTemplateByTypeTest(8, array('STTC'), '系统测试用例')) && p() && e('1'); // 添加内置系统测试用例模板 diff --git a/module/doc/test/model/upgradetemplatetypes.php b/module/doc/test/model/upgradetemplatetypes.php index 532d834c45..6b28289b5c 100755 --- a/module/doc/test/model/upgradetemplatetypes.php +++ b/module/doc/test/model/upgradetemplatetypes.php @@ -7,92 +7,24 @@ title=测试 docModel->upgradeCustomTemplateTypes(); timeout=0 cid=1 -- 内置计划 - - 属性name @计划 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,2, -- 内置需求 - - 属性name @需求 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,3, -- 内置设计 - - 属性name @设计 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,4, -- 内置开发 - - 属性name @开发 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,5, -- 内置测试 - - 属性name @测试 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,6, -- 内置说明 - - 属性name @说明 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,7, -- 内置其他 - - 属性name @其他 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @0 - - 属性grade @1 - - 属性path @,8, -- 自定义模板6 - - 属性name @自定义模板6 - - 属性type @docTemplate - - 属性root @2 - - 属性parent @8 - - 属性grade @2 - - 属性path @,8,9, +- 内置计划 @1 +- 内置需求 @1 +- 内置设计 @1 +- 内置开发 @1 +- 内置测试 @1 +- 内置说明 @1 +- 内置其他 @1 */ include dirname(__FILE__, 5) . '/test/lib/init.php'; include dirname(__FILE__, 2) . '/lib/doc.unittest.class.php'; +zenData('module')->gen(0); zenData('doc')->loadYaml('template')->gen(20); zenData('user')->gen(5); su('admin'); -$oldModule = zenData('lang'); -$oldModule->id->range('1-10'); -$oldModule->module->range('baseline'); -$oldModule->section->range('objectList'); -$oldModule->system->range(0); -$oldModule->key->range('module1,module2,module3,module4,module5,module6,module7,module8,module9,module10'); -$oldModule->value->range('自定义模板1,自定义模板2,自定义模板3,自定义模板4,自定义模板5,自定义模板6,自定义模板7,自定义模板8,自定义模板9,自定义模板10'); -$oldModule->gen(10); - -$newModule = zenData('module'); -$newModule->id->range(1); -$newModule->root->range(2); -$newModule->name->range('项目其他'); -$newModule->path->range('`,1,`'); -$newModule->grade->range(1); -$newModule->order->range(10); -$newModule->type->range('docTemplate'); -$newModule->short->range('Project other'); -$newModule->gen(1); - $scope = zenData('config'); $scope->id->range('1-3'); $scope->vision->range('rnd,or,lite'); @@ -104,11 +36,10 @@ $scope->value->range('`{"product":1,"project":2,"execution":3,"personal":4}`,`{" $scope->gen(3); $docTester = new docTest(); -r($docTester->upgradeTemplateTypesTest(2)) && p('name|type|root|parent|grade|path', '|') && e('计划|docTemplate|2|0|1|,2,'); // 内置计划 -r($docTester->upgradeTemplateTypesTest(3)) && p('name|type|root|parent|grade|path', '|') && e('需求|docTemplate|2|0|1|,3,'); // 内置需求 -r($docTester->upgradeTemplateTypesTest(4)) && p('name|type|root|parent|grade|path', '|') && e('设计|docTemplate|2|0|1|,4,'); // 内置设计 -r($docTester->upgradeTemplateTypesTest(5)) && p('name|type|root|parent|grade|path', '|') && e('开发|docTemplate|2|0|1|,5,'); // 内置开发 -r($docTester->upgradeTemplateTypesTest(6)) && p('name|type|root|parent|grade|path', '|') && e('测试|docTemplate|2|0|1|,6,'); // 内置测试 -r($docTester->upgradeTemplateTypesTest(7)) && p('name|type|root|parent|grade|path', '|') && e('说明|docTemplate|2|0|1|,7,'); // 内置说明 -r($docTester->upgradeTemplateTypesTest(8)) && p('name|type|root|parent|grade|path', '|') && e('其他|docTemplate|2|0|1|,8,'); // 内置其他 -r($docTester->upgradeTemplateTypesTest(9)) && p('name|type|root|parent|grade|path', '|') && e('自定义模板6|docTemplate|2|8|2|,8,9,'); // 自定义模板6 +r($docTester->upgradeTemplateTypesTest(1, '计划')) && p() && e('1'); // 内置计划 +r($docTester->upgradeTemplateTypesTest(2, '需求')) && p() && e('1'); // 内置需求 +r($docTester->upgradeTemplateTypesTest(3, '设计')) && p() && e('1'); // 内置设计 +r($docTester->upgradeTemplateTypesTest(4, '开发')) && p() && e('1'); // 内置开发 +r($docTester->upgradeTemplateTypesTest(5, '测试')) && p() && e('1'); // 内置测试 +r($docTester->upgradeTemplateTypesTest(6, '说明')) && p() && e('1'); // 内置说明 +r($docTester->upgradeTemplateTypesTest(7, '其他')) && p() && e('1'); // 内置其他 diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 4d1afca5a2..a52ddf56f3 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -11162,6 +11162,15 @@ class upgradeModel extends model $templateType = $this->dao->findByID($templateID)->from(TABLE_DOC)->fetch('templateType'); if(strpos(',HLDS,DDS,DBDS,ADS,ITTC,STTC,SRS,PP,', $templateType) === false) return array(); + /* 将带动态区块的模板存入projectReviewDocTemplate配置用来项目评审。*/ + /* Save the template with blocks into projectReviewDocTemplate for project review. */ + $this->loadModel('setting'); + $projectReviewDocTemplate = $this->setting->getItem('vision=rnd&owner=system&module=doc&key=projectReviewDocTemplate'); + $projectReviewDocTemplate = json_decode($projectReviewDocTemplate, true); + if(!isset($projectReviewDocTemplate[$templateType])) $projectReviewDocTemplate[$templateType] = array(); + $projectReviewDocTemplate[$templateType][$templateID] = $templateID; + $this->setting->setItem("system.doc.projectReviewDocTemplate@rnd", json_encode($projectReviewDocTemplate)); + $blockType = $templateType; if($templateType == 'SRS') $blockType = 'projectStory'; if($templateType == 'PP') $blockType = 'gantt'; diff --git a/module/upgrade/test/lib/upgrade.unittest.class.php b/module/upgrade/test/lib/upgrade.unittest.class.php index 0b21bdf59d..c6f74cf442 100755 --- a/module/upgrade/test/lib/upgrade.unittest.class.php +++ b/module/upgrade/test/lib/upgrade.unittest.class.php @@ -851,15 +851,20 @@ class upgradeTest * 添加内置文档模板。 * Add the built-in doc template. * + * @param int $templateID + * @param string $name * @access public * @return void */ - public function addBuiltInDocTemplateTest(int $templateID) + public function addBuiltInDocTemplateTest(int $templateID, string $name) { + if($this->objectModel->config->edition != 'ipd') return true; + $this->objectModel->loadModel('doc'); $this->objectModel->doc->addBuiltInScopes(); $this->objectModel->doc->upgradeTemplateTypes(); $this->objectModel->addBuiltInDocTemplate(); - return $this->objectModel->dao->select('*')->from(TABLE_DOC)->where('id')->eq($templateID)->orderBy('id_desc')->fetch(); + $templateName = $this->objectModel->dao->select('title')->from(TABLE_DOC)->where('id')->eq($templateID)->orderBy('id_desc')->fetch('title'); + return $templateName == $name; } } diff --git a/module/upgrade/test/model/addbuiltindoctemplate.php b/module/upgrade/test/model/addbuiltindoctemplate.php index d5b8cbab95..29a4e02b06 100644 --- a/module/upgrade/test/model/addbuiltindoctemplate.php +++ b/module/upgrade/test/model/addbuiltindoctemplate.php @@ -8,30 +8,14 @@ title=测试 upgradeModel->addBuiltInDocTemplate(); timeout=0 cid=1 -- 获取内置项目计划模板 - - 属性templateType @PP - - 属性title @项目计划 -- 获取内置软件需求说明书模板 - - 属性templateType @SRS - - 属性title @软件需求规格说明书 -- 获取内置概要设计说明书模板 - - 属性templateType @HLDS - - 属性title @概要设计说明书 -- 获取内置详细设计说明书模板 - - 属性templateType @DDS - - 属性title @详细设计说明书 -- 获取内置接口设计文档模板 - - 属性templateType @ADS - - 属性title @接口设计文档 -- 获取内置数据库设计文档模板 - - 属性templateType @DBDS - - 属性title @数据库设计文档 -- 获取内置集成测试用例模板 - - 属性templateType @ITTC - - 属性title @集成测试用例 -- 获取内置系统测试用例模板 - - 属性templateType @STTC - - 属性title @系统测试用例 +- 获取内置项目计划模板 @1 +- 获取内置软件需求说明书模板 @1 +- 获取内置概要设计说明书模板 @1 +- 获取内置详细设计说明书模板 @1 +- 获取内置接口设计文档模板 @1 +- 获取内置数据库设计文档模板 @1 +- 获取内置集成测试用例模板 @1 +- 获取内置系统测试用例模板 @1 */ @@ -45,12 +29,13 @@ zenData('doc')->gen(0); zenData('doccontent')->gen(0); zenData('module')->gen(0); zenData('doclib')->gen(0); +zenData('lang')->gen(0); $upgrade = new upgradeTest(); -r($upgrade->addBuiltInDocTemplateTest(1)) && p('templateType,title') && e('PP,项目计划'); // 获取内置项目计划模板 -r($upgrade->addBuiltInDocTemplateTest(2)) && p('templateType,title') && e('SRS,软件需求规格说明书'); // 获取内置软件需求说明书模板 -r($upgrade->addBuiltInDocTemplateTest(3)) && p('templateType,title') && e('HLDS,概要设计说明书'); // 获取内置概要设计说明书模板 -r($upgrade->addBuiltInDocTemplateTest(4)) && p('templateType,title') && e('DDS,详细设计说明书'); // 获取内置详细设计说明书模板 -r($upgrade->addBuiltInDocTemplateTest(5)) && p('templateType,title') && e('ADS,接口设计文档'); // 获取内置接口设计文档模板 -r($upgrade->addBuiltInDocTemplateTest(6)) && p('templateType,title') && e('DBDS,数据库设计文档'); // 获取内置数据库设计文档模板 -r($upgrade->addBuiltInDocTemplateTest(7)) && p('templateType,title') && e('ITTC,集成测试用例'); // 获取内置集成测试用例模板 -r($upgrade->addBuiltInDocTemplateTest(8)) && p('templateType,title') && e('STTC,系统测试用例'); // 获取内置系统测试用例模板 +r($upgrade->addBuiltInDocTemplateTest(1, '项目计划')) && p() && e('1'); // 获取内置项目计划模板 +r($upgrade->addBuiltInDocTemplateTest(2, '软件需求规格说明书')) && p() && e('1'); // 获取内置软件需求说明书模板 +r($upgrade->addBuiltInDocTemplateTest(3, '概要设计说明书')) && p() && e('1'); // 获取内置概要设计说明书模板 +r($upgrade->addBuiltInDocTemplateTest(4, '详细设计说明书')) && p() && e('1'); // 获取内置详细设计说明书模板 +r($upgrade->addBuiltInDocTemplateTest(5, '接口设计文档')) && p() && e('1'); // 获取内置接口设计文档模板 +r($upgrade->addBuiltInDocTemplateTest(6, '数据库设计文档')) && p() && e('1'); // 获取内置数据库设计文档模板 +r($upgrade->addBuiltInDocTemplateTest(7, '集成测试用例')) && p() && e('1'); // 获取内置集成测试用例模板 +r($upgrade->addBuiltInDocTemplateTest(8, '系统测试用例')) && p() && e('1'); // 获取内置系统测试用例模板