From 7e585594c16d3122a65066cb3c5e86fdbcd5c861 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sun, 18 Jul 2021 00:21:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=A7=E5=93=81=E8=AF=95?= =?UTF-8?q?=E5=9B=BE=E3=80=81=E8=BF=AD=E4=BB=A3=E8=AF=95=E5=9B=BE=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE=E8=AF=95=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/routes_xm.js | 7 +- .../core/xmIteration/XmIterationComplex.vue | 32 ++-- src/views/xm/core/xmMenu/XmMenuMng.vue | 25 ++- .../xm/core/xmProduct/XmProductComplex.vue | 173 ++++++++++++++++++ src/views/xm/core/xmProduct/XmProductMng.vue | 29 ++- .../xm/core/xmProduct/XmProductSelect.vue | 13 +- src/views/xm/core/xmProject/XmProjectInfo.vue | 10 +- .../core/xmProjectPhase/XmProjectPhaseMng.vue | 11 +- .../xmProjectPhase/XmProjectPhaseSelect.vue | 12 +- .../xm/core/xmQuestion/XmQuestionMng.vue | 40 +++- src/views/xm/core/xmTask/XmTaskMng.vue | 11 +- 11 files changed, 312 insertions(+), 51 deletions(-) create mode 100644 src/views/xm/core/xmProduct/XmProductComplex.vue diff --git a/src/router/routes_xm.js b/src/router/routes_xm.js index 1c1105e2..bd1037ec 100644 --- a/src/router/routes_xm.js +++ b/src/router/routes_xm.js @@ -80,16 +80,18 @@ export default { { path: '/xm/core', component: Layout, - name: '用户故事', + name: '产品管理', iconCls: 'fa el-icon-menu', meta: { - title: '用户故事', + title: '产品管理', icon: 'project' }, // leaf: true,//只有一个节点 children: [ + { path: 'xmProduct/XmProductComplex', component: _import('xm/core/xmProduct/XmProductComplex'), name: 'XmProductComplex', meta: { title: '产品总览' }}, { path: 'xmProduct/XmProductMng', component: _import('xm/core/xmProduct/XmProductMng'), name: 'XmProductMng', meta: { title: '产品管理' }}, + { path: 'xmMenu/XmMenuMng', component: _import('xm/core/xmMenu/XmMenuMng'), name: 'XmMenuMng', meta: { title: '故事管理' }}, { path: 'xmMenuExchange/XmMenuExchangeMng', component: _import('xm/core/xmMenuExchange/XmMenuExchangeMng'), name: 'XmMenuExchangeMng', meta: { title: '互动评论' }}, { path: 'xmMenuTemplate/XmMenuTemplateMng', component: _import('xm/core/xmMenuTemplate/XmMenuTemplateMng'), name: 'XmMenuTemplateMng', meta: { title: '故事模板' }}, @@ -106,6 +108,7 @@ export default { }, // leaf: true,//只有一个节点 children: [ + { path: 'xmIteration/XmIterationComplex', component: _import('xm/core/xmIteration/XmIterationComplex'), name: 'XmIterationComplex', meta: { title: '迭代总览' }}, { path: 'xmIteration/XmIterationMng', component: _import('xm/core/xmIteration/XmIterationMng'), name: 'XmIterationMng', meta: { title: '迭代管理' }}, { path: 'xmIterationMenu/XmIterationMenuMng', component: _import('xm/core/xmIterationMenu/XmIterationMenuMng'), name: 'XmIterationMenuMng', meta: { title: '故事迭代' }}, ] diff --git a/src/views/xm/core/xmIteration/XmIterationComplex.vue b/src/views/xm/core/xmIteration/XmIterationComplex.vue index e381173c..1702bb63 100644 --- a/src/views/xm/core/xmIteration/XmIterationComplex.vue +++ b/src/views/xm/core/xmIteration/XmIterationComplex.vue @@ -1,27 +1,27 @@ @@ -188,6 +203,7 @@ import XmProductStateMng from '../xmProductState/XmProductStateMng';//修改界面 import UsersSelect from "@/views/mdp/sys/user/UsersSelect"; +import XmProjectList from '../xmProject/XmProjectList.vue'; export default { props:['selProject','xmIteration'], @@ -196,6 +212,12 @@ 'userInfo','roles' ]) }, + watch:{ + + xmIteration:function(){ + this.getXmProducts(); + } + }, data() { const beginDate = new Date(); const endDate = new Date(); @@ -240,6 +262,7 @@ util.formatDate.format(endDate, "yyyy-MM-dd") ], pickerOptions: util.pickerOptions('datarange'), + projectVisible:false, /**begin 自定义属性请在下面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/ @@ -465,6 +488,9 @@ this.filters.pmUser=this.userInfo; this.searchXmProducts(); }, + onProjectSelected(projects){ + + } /**end 自定义函数请在上面加**/ },//end methods @@ -474,6 +500,7 @@ XmIterationMng, XmProductStateMng, UsersSelect, + XmProjectList, //在下面添加其它组件 }, mounted() { diff --git a/src/views/xm/core/xmProduct/XmProductSelect.vue b/src/views/xm/core/xmProduct/XmProductSelect.vue index 7a780233..e369c2f5 100644 --- a/src/views/xm/core/xmProduct/XmProductSelect.vue +++ b/src/views/xm/core/xmProduct/XmProductSelect.vue @@ -102,12 +102,17 @@ export default { - props:['isSelectProduct','selProject'], + props:['isSelectProduct','selProject','xmIteration'], computed: { ...mapGetters([ 'userInfo','roles' ]) }, + watch:{ + xmIteration(){ + this.getXmProducts(); + } + }, data() { const beginDate = new Date(); const endDate = new Date(); @@ -208,6 +213,10 @@ if(this.selProject){ params.projectId=this.selProject.id } + + if(this.xmIteration){ + params.iterationId=this.xmIteration.id + } params.queryScope=this.filters.queryScope if(this.filters.queryScope=='productId'){ if(!this.filters.id){ @@ -221,7 +230,7 @@ params.branchId=this.userInfo.branchId params.projectId=null; } - if(!this.selProject && this.filters.queryScope!='productId'){ + if(!this.selProject && !this.xmIteration && this.filters.queryScope!='productId'){ if(!this.dateRanger || this.dateRanger.length==0){ this.$message({showClose: true, message: "创建日期范围不能为空", type: 'error' }); return; diff --git a/src/views/xm/core/xmProject/XmProjectInfo.vue b/src/views/xm/core/xmProject/XmProjectInfo.vue index 5abc4bf1..fb6f63ce 100644 --- a/src/views/xm/core/xmProject/XmProjectInfo.vue +++ b/src/views/xm/core/xmProject/XmProjectInfo.vue @@ -143,7 +143,7 @@ - + @@ -193,10 +193,10 @@ import xmMenuMng from '../xmMenu/XmMenuMng'; import xmMenuWithPlan from '../xmMenu/XmMenuWithPlan'; import xmProjectStateMng from '../xmProjectState/XmProjectStateMng'; - import xmTestCaseExecMng from '../xmTestCaseExec/XmTestCaseExecMng'; - import xmProductMng from '../xmProduct/XmProductMng'; + import xmTestCaseExecMng from '../xmTestCaseExec/XmTestCaseExecMng'; import XmIterationComplex from '../xmIteration/XmIterationComplex.vue'; import XmProjectOveriewComplex from './XmProjectOveriewComplex.vue'; +import XmProductComplex from '../xmProduct/XmProductComplex.vue'; export default { @@ -416,9 +416,9 @@ xmProjectStateMng, xmTestCaseExecMng, xmProjectGroupSelect, - XmIterationComplex, - xmProductMng, + XmIterationComplex, XmProjectOveriewComplex, + XmProductComplex, //在下面添加其它组件 }, mounted() { diff --git a/src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue b/src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue index 5c2eeade..f4013df0 100644 --- a/src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue +++ b/src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue @@ -294,10 +294,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; } }, - props:['selProject'], + props:['selProject','xmIteration'], watch:{ - selProject:function(selProject,old){ - console.log('this.selProject==', selProject); + selProject:function(selProject,old){ if(!selProject){ this.xmProjectPhases=[] @@ -307,6 +306,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; this.searchXmProjectPhases(); } } + }, + xmIteration(){ + this.searchXmProjectPhases() } }, data() { @@ -419,6 +421,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; params.projectId=this.selProject.id } + if(this.xmIteration){ + params.iterationId=this.xmIteration.id + } this.load.list = true; listXmProjectPhase(params).then((res) => { var tips=res.data.tips; diff --git a/src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue b/src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue index a305a106..ccdc3ef6 100644 --- a/src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue +++ b/src/views/xm/core/xmProjectPhase/XmProjectPhaseSelect.vue @@ -49,10 +49,9 @@ }, }, - props:['selProject'], + props:['selProject','xmIteration'], watch:{ - selProject:function(selProject,old){ - console.log('this.selProject==', selProject); + selProject:function(selProject,old){ if(!selProject){ this.xmProjectPhases=[] @@ -62,6 +61,9 @@ this.searchXmProjectPhases(); } } + }, + xmIteration(){ + this.searchXmProjectPhases(); } }, data() { @@ -172,6 +174,10 @@ if(this.selProject!=null && this.selProject!=undefined){ params.projectId=this.selProject.id + } + if(this.xmIteration!=null && this.xmIteration!=undefined){ + params.iterationId=this.xmIteration.id + } this.load.list = true; listXmProjectPhase(params).then((res) => { diff --git a/src/views/xm/core/xmQuestion/XmQuestionMng.vue b/src/views/xm/core/xmQuestion/XmQuestionMng.vue index 531bc631..d9355283 100644 --- a/src/views/xm/core/xmQuestion/XmQuestionMng.vue +++ b/src/views/xm/core/xmQuestion/XmQuestionMng.vue @@ -153,8 +153,8 @@ {{qtype=='risk'?'升级':'升级'}} - - {{scope.row.name}} + + {{scope.row.name}} @@ -213,18 +213,20 @@ 'userInfo','roles' ]), }, - props: ["selProject",'qtype','xmTestCaseExec','xmTestCase','visible'], + props: ["selProject",'qtype','xmTestCaseExec','xmTestCase','xmIteration','xmProduct'], watch:{ selProject:function(selProject){ this.filters.selProject=this.selProject //this.getXmQuestions(); + }, + qtype:function(){ + this.getXmQuestions() }, - visible(visible){ - if(visible==true){ - this.getXmQuestions(); - } - }, - qtype(){ + xmIteration:function(){ + this.getXmQuestions() + }, + xmProduct:function(){ + this.filters.product=this.xmProduct this.getXmQuestions() } }, @@ -449,6 +451,9 @@ if(this.xmTestCase){ params.caseId=this.xmTestCase.id } + if(this.xmIteration){ + params.iterationId=this.xmIteration.id + } if(this.filters.key){ params.key='%'+this.filters.key+'%' @@ -874,7 +879,15 @@ } if(row.handlerUsername){ if(row.lremark){ - msg='已指派给'+row.handlerUsername+','+row.lremark + var lremark=row.lremark; + lremark=lremark.replace(/<\w?>/g,""); + lremark=lremark.replace(/<\/\w?>/g,""); + if(lremark.length<=10){ + msg='已指派给'+row.handlerUsername+','+lremark + }else{ + msg='已指派给'+row.handlerUsername+','+lremark.substr(0,10)+"..." + } + }else{ msg='已指派给'+row.handlerUsername; } @@ -895,6 +908,9 @@ if(this.selProject){ this.filters.selProject=this.selProject } + if(this.xmProduct){ + this.filters.product=this.xmProduct + } this.filters.handlerUserid=this.userInfo.userid; this.filters.handlerUsername=this.userInfo.username; this.$nextTick(() => { @@ -932,4 +948,8 @@ margin-top: 7px; padding-bottom: 10px; } +.badge-item { + margin-top: 10px; + margin-right: 40px; +} diff --git a/src/views/xm/core/xmTask/XmTaskMng.vue b/src/views/xm/core/xmTask/XmTaskMng.vue index 7b6c3b51..c1e9fc06 100644 --- a/src/views/xm/core/xmTask/XmTaskMng.vue +++ b/src/views/xm/core/xmTask/XmTaskMng.vue @@ -2,7 +2,7 @@
- + @@ -518,7 +518,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; } }, - props: ["selProject","isTaskCenter","isMy",'menuId','menuName','xmProduct'], + props: ["selProject","isTaskCenter","isMy",'menuId','menuName','xmProduct',"xmIteration"], watch: { "selProject": function(oval,val) { this.filters.selProject=this.selProject; @@ -534,6 +534,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; }, 'xmProduct':function(){ this.filters.product=this.xmProduct; + }, + xmIteration(){ + this.getXmTasks(); } }, data() { @@ -765,7 +768,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue'; if(this.filters.product){ params.productId=this.filters.product.id } - + if(this.xmIteration){ + params.iterationId=this.xmIteration.id + } params.createTimeStart=this.dateRanger[0]+" 00:00:00" params.createTimeEnd=this.dateRanger[1]+" 23:59:59" getTask(params).then((res) => {