diff --git a/src/views/xm/core/xmProduct/XmProductMng.vue b/src/views/xm/core/xmProduct/XmProductMng.vue index 180499e7..dab81124 100644 --- a/src/views/xm/core/xmProduct/XmProductMng.vue +++ b/src/views/xm/core/xmProduct/XmProductMng.vue @@ -1,197 +1,231 @@ - - - - - - - - - - - 查询 - 产品 - - 查询条件 + + + + + + - - - - 产品查询范围: - - - - - - - - - - - - - 创建时间: - - - - - 产品名称: - - - - - - - 产品经理: - - {{filters.pmUser.username}} - 选责任人 - 我的 - - - - - 项目 {{selProject?selProject.name:''}} - - - - - 迭代 {{xmIteration.iterationName}} - - - - 查询 - + + + + + + + + + + 查询 + 产品 + + 查询条件 + + + + + 产品查询范围: + + + + + + + + + + + + + 创建时间: + + + + + 产品名称: + + + + + + + 产品经理: + + {{filters.pmUser.username}} + 选责任人 + 我的 + + + + + 项目 {{selProject?selProject.name:''}} + + + + + 迭代 {{xmIteration.iterationName}} + + + + 查询 + + + + - - - - - - - - - {{p.productName}} - {{p.code}} - - - {{p.totalBugCnt==null?0:p.totalBugCnt}} - 缺陷 - - - {{p.totalFileCnt==null?0:p.totalFileCnt}} - 文档 - - - - {{p.totalCompleteTaskCnt==null?0:p.totalCompleteTaskCnt}} - / - {{p.totalTaskCnt==null?0:p.totalTaskCnt}} - - 任务完成 - - - - - - - - + + + + + + {{p.productName}} + {{p.code}} + + + {{p.totalBugCnt==null?0:p.totalBugCnt}} + 缺陷 + + + {{p.totalFileCnt==null?0:p.totalFileCnt}} + 文档 + + + + {{p.totalCompleteTaskCnt==null?0:p.totalCompleteTaskCnt}} + / + {{p.totalTaskCnt==null?0:p.totalTaskCnt}} + + 任务完成 + + + + + + + + + + + + + + + + {{scope.row.productName}} + + + + + {{scope.row.finishRate}}% + + + + + + + + + {{scope.row.pmUsername}} + + + + + + + + + + + 复制 + 报告 + 迭代 + 项目 + 任务 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 复制为新的模板 + 复制为新的产品 + + + 拷贝需求列表 + + + + 取 消 + 确 定 + + + - - - - - - {{scope.row.productName}} - - - - - {{scope.row.finishRate}}% - - - - - - - - - {{scope.row.pmUsername}} - - - - - - - - - - - 报告 - 迭代 - 项目 - 任务 - 删除 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -199,11 +233,12 @@ import util from '@/common/js/util';//全局公共库 //import Sticky from '@/components/Sticky' // 粘性header组件 //import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询 - import { listXmProduct,listXmProductWithState, delXmProduct, batchDelXmProduct } from '@/api/xm/core/xmProduct'; + import { listXmProduct,listXmProductWithState, delXmProduct, batchDelXmProduct,copyTo } from '@/api/xm/core/xmProduct'; import { addXmIterationProductLink,delXmIterationProductLink } from '@/api/xm/core/xmIterationProductLink'; import { loadTasksToXmProductState } from '@/api/xm/core/xmProductState'; import XmProductAdd from './XmProductAdd';//新增界面 import XmProductEdit from './XmProductEdit';//修改界面 + import XmProductTplMng from './XmProductTplMng';//修改界面 import { mapGetters } from 'vuex' import XmIterationMng from '../xmIteration/XmIterationSelect';//修改界面 import XmProductStateMng from '../xmProductState/XmProductStateMng';//修改界面 @@ -274,6 +309,10 @@ import XmProductSelect from './XmProductSelect.vue'; projectVisible:false, productSelectVisible:false, showType:false, + xmProductCopy:{ + id:'',productName:'',code:'',isTpl:'',copyMenu:'1' + }, + copyToVisible:false, /**begin 自定义属性请在下面加 请加备注**/ /**end 自定义属性请在上面加 请加备注**/ @@ -543,7 +582,31 @@ import XmProductSelect from './XmProductSelect.vue'; this.$message({showClose: true, message: tips.msg, type: tips.isOk?'success':'error'}); }) }) - } + }, + + onCopyToBtnClick(row){ + this.xmProductCopy.id=row.id; + this.xmProductCopy.productName=row.productName+"(复制)"; + this.xmProductCopy.isTpl=row.isTpl; + this.copyToVisible=true; + }, + onCopyToConfirm(){ + this.load.add=true; + copyTo(this.xmProductCopy).then(res=>{ + this.load.add=false; + var tips = res.data.tips; + if(tips.isOk){ + this.copyToVisible=false; + if(this.xmProductCopy.isTpl=='0'){ + this.searchXmProducts() + }else{ + this.$refs.xmProductTplMngRef.searchXmProducts() + } + } + this.$message({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' }); + + }) + }, /**end 自定义函数请在上面加**/ },//end methods @@ -556,6 +619,7 @@ import XmProductSelect from './XmProductSelect.vue'; XmProjectList, XmIterationSelect, XmProductSelect, + XmProductTplMng, //在下面添加其它组件 }, mounted() { diff --git a/src/views/xm/core/xmProduct/XmProductTplMng.vue b/src/views/xm/core/xmProduct/XmProductTplMng.vue new file mode 100644 index 00000000..add67885 --- /dev/null +++ b/src/views/xm/core/xmProduct/XmProductTplMng.vue @@ -0,0 +1,517 @@ + + + + + + + + {{scope.row.productName}} + + + + + 复制 + 删除 + + + + + + + + + + + + + + + + + + + + + 复制为新的模板 + 复制为新的产品 + + + 拷贝需求列表 + + + + 取 消 + 确 定 + + + + + + + + + + diff --git a/src/views/xm/core/xmProject/XmProjectSelect.vue b/src/views/xm/core/xmProject/XmProjectSelect.vue index 7957de1f..e587f8a0 100644 --- a/src/views/xm/core/xmProject/XmProjectSelect.vue +++ b/src/views/xm/core/xmProject/XmProjectSelect.vue @@ -128,7 +128,7 @@ params.iterationId=this.xmIteration.id } if(this.xmProduct&&this.xmProduct.id){ - params.prodcutId=this.xmProduct.id + params.productId=this.xmProduct.id } params.branchId = this.userInfo.branchId; listXmProject(params).then((res) => {