Browse Source

优化

master
陈裕财 3 years ago
parent
commit
7282118865
  1. 219
      src/router/routes_xm.js
  2. 564
      src/views/xm/core/xmProject/XmProjectMng.vue

219
src/router/routes_xm.js

@ -18,17 +18,17 @@ export default {
icon: 'project'
},
// leaf: true,//只有一个节点
children: [
{ path: 'xmProject/XmProjectAllMng', component: _import('xm/core/xmProject/XmProjectAllMng'), name: 'xmProjectAllMng', meta: { title: '项目总览',roles:["user"] }},
{ path: 'xmProject/XmProjectMng', component: _import('xm/core/xmProject/XmProjectMng'), name: 'xmProjectMng', meta: { title: '项目(我的)',roles:["user"] }},
{ path: 'xmProject/XmProjectRecycle', component: _import('xm/core/xmProject/XmProjectRecycle'), name: 'XmProjectRecycle', meta: { title: '项目回收站',roles:["user"] }},
{ path: 'xmRecord/XmRecord', component: _import('xm/core/xmRecord/XmRecord'), name: 'XmRecord', meta: { title: '项目动态',roles:["user"] }},
{ path: 'xmProject/XmProjectTplMng', component: _import('xm/core/xmProject/XmProjectTplMng'), name: 'XmProjectTplMng', meta: { title: '项目模板',roles:["user"] }},
{ path: 'xmEnvList/XmEnvListMng', component: _import('xm/core/xmEnvList/XmEnvListMng'), name: 'XmEnvListMng', meta: { title: '环境清单',roles:["user"] }},
{ path: 'xmTask/XmTaskCenter', component: _import('xm/core/xmTask/XmTaskCenter'), name: 'xmTaskCenter', meta: { title: '任务大厅',roles:["user"] }},
{ path: 'xmTask/XmMyTaskCenter', component: _import('xm/core/xmTask/XmMyTaskCenter'), name: 'xmMyTaskCenter', meta: { title: '任务(我的)',roles:["user"] }},
{ path: 'xmTask/XmTaskDetailRoute', component: _import('xm/core/xmTask/XmTaskDetailRoute'), name: 'XmTaskDetailRoute', meta: { title: '任务详情',roles:["user"] },hidden:true},
children: [
{ path: 'project/mng', component: _import('xm/core/xmProject/XmProjectAllMng'), name: 'xmProjectAllMng', meta: { title: '项目总览',roles:["user"] }},
{ path: 'project/mng/me', component: _import('xm/core/xmProject/XmProjectMng'), name: 'xmProjectMng', meta: { title: '项目(我的)',roles:["user"] }},
{ path: 'project/recycle', component: _import('xm/core/xmProject/XmProjectRecycle'), name: 'XmProjectRecycle', meta: { title: '项目回收站',roles:["user"] }},
{ path: 'record/mng', component: _import('xm/core/xmRecord/XmRecord'), name: 'XmRecord', meta: { title: '项目动态',roles:["user"] }},
{ path: 'project/tpl', component: _import('xm/core/xmProject/XmProjectTplMng'), name: 'XmProjectTplMng', meta: { title: '项目模板',roles:["user"] }},
{ path: 'evn/mng', component: _import('xm/core/xmEnvList/XmEnvListMng'), name: 'XmEnvListMng', meta: { title: '环境清单',roles:["user"] }},
{ path: 'task/center', component: _import('xm/core/xmTask/XmTaskCenter'), name: 'xmTaskCenter', meta: { title: '任务大厅',roles:["user"] }},
{ path: 'task/center/me', component: _import('xm/core/xmTask/XmMyTaskCenter'), name: 'xmMyTaskCenter', meta: { title: '任务(我的)',roles:["user"] }},
{ path: 'task/detail', component: _import('xm/core/xmTask/XmTaskDetailRoute'), name: 'XmTaskDetailRoute', meta: { title: '任务详情',roles:["user"] },hidden:true},
]
},{
@ -39,7 +39,7 @@ export default {
meta: {
title: '项目管理',
icon: 'project'
},
},
hidden:true,
// leaf: true,//只有一个节点
children: [
@ -51,7 +51,7 @@ export default {
meta: {
title: '项目-首页',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -62,7 +62,7 @@ export default {
meta: {
title: '项目-产品',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -73,7 +73,7 @@ export default {
meta: {
title: '项目-需求',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -84,7 +84,7 @@ export default {
meta: {
title: '项目-迭代',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -95,7 +95,7 @@ export default {
meta: {
title: '项目-计划',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -106,7 +106,7 @@ export default {
meta: {
title: '项目-任务',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -117,7 +117,7 @@ export default {
meta: {
title: '项目-环境清单',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -128,7 +128,7 @@ export default {
meta: {
title: '项目-缺陷',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -139,7 +139,7 @@ export default {
meta: {
title: '项目-团队',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -150,7 +150,7 @@ export default {
meta: {
title: '项目-合同',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -161,7 +161,7 @@ export default {
meta: {
title: '项目-日志',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -172,9 +172,9 @@ export default {
meta: {
title: '项目-预算',
icon: 'project',roles:["user"]
},
},
hidden:true
},
},
{
path: 'cost',
component: _import('xm/core/xmProject/XmProjectCost'),
@ -183,9 +183,9 @@ export default {
meta: {
title: '项目-费用',
icon: 'project',roles:["user"]
},
},
hidden:true
},
},
{
path: 'workloadDay',
component: _import('xm/core/xmWorkload/WorkloadSetDayList'),
@ -194,7 +194,7 @@ export default {
meta: {
title: '项目-工时日报',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -205,7 +205,7 @@ export default {
meta: {
title: '项目-工时月报',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -216,7 +216,7 @@ export default {
meta: {
title: '项目-文档',
icon: 'project',roles:["user"]
},
},
hidden:true
},
{
@ -227,10 +227,10 @@ export default {
meta: {
title: '项目-效能',
icon: 'project',roles:["user"]
},
},
hidden:true
},
]
},
{
@ -241,7 +241,7 @@ export default {
meta: {
title: '产品管理',
icon: 'product'
},
},
hidden:true,
// leaf: true,//只有一个节点
children: [
@ -253,7 +253,7 @@ export default {
meta: {
title: '产品-首页',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -264,7 +264,7 @@ export default {
meta: {
title: '产品-项目',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -275,7 +275,7 @@ export default {
meta: {
title: '产品-需求',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -286,7 +286,7 @@ export default {
meta: {
title: '产品-模块',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -297,7 +297,7 @@ export default {
meta: {
title: '产品-迭代',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -308,7 +308,7 @@ export default {
meta: {
title: '产品-计划',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -319,7 +319,7 @@ export default {
meta: {
title: '产品-任务',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -330,7 +330,7 @@ export default {
meta: {
title: '产品-环境清单',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -341,9 +341,9 @@ export default {
meta: {
title: '产品-测试管理',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
},
{
path: 'question',
component: _import('xm/core/xmQuestion/XmQuestionForProduct'),
@ -352,7 +352,7 @@ export default {
meta: {
title: '产品-缺陷',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -363,7 +363,7 @@ export default {
meta: {
title: '产品-团队',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -374,7 +374,7 @@ export default {
meta: {
title: '产品-合同',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -385,9 +385,9 @@ export default {
meta: {
title: '产品-日志',
icon: 'product',roles:["user"]
},
},
hidden:true
},
},
{
path: 'workloadDay',
component: _import('xm/core/xmWorkload/WorkloadSetDayList'),
@ -396,7 +396,7 @@ export default {
meta: {
title: '产品-工时日报',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -407,7 +407,7 @@ export default {
meta: {
title: '产品-工时月报',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -418,7 +418,7 @@ export default {
meta: {
title: '产品-文档',
icon: 'product',roles:["user"]
},
},
hidden:true
},
{
@ -429,10 +429,10 @@ export default {
meta: {
title: '产品-效能',
icon: 'product',roles:["user"]
},
},
hidden:true
},
]
},
@ -444,7 +444,7 @@ export default {
meta: {
title: '迭代管理',
icon: 'iteration'
},
},
hidden:true,
// leaf: true,//只有一个节点
children: [
@ -456,7 +456,7 @@ export default {
meta: {
title: '迭代-首页',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
{
@ -467,7 +467,7 @@ export default {
meta: {
title: '迭代-项目',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
{
@ -478,9 +478,9 @@ export default {
meta: {
title: '迭代-需求',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
},
{
path: 'func',
component: _import('xm/core/xmFunc/XmFuncForIteration'),
@ -489,9 +489,9 @@ export default {
meta: {
title: '迭代-模块',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
},
{
path: 'task',
component: _import('xm/core/xmTask/XmTaskListForIteration'),
@ -500,7 +500,7 @@ export default {
meta: {
title: '迭代-任务',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
{
@ -511,9 +511,9 @@ export default {
meta: {
title: '迭代-测试管理',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
},
{
path: 'question',
component: _import('xm/core/xmQuestion/XmQuestionForIteration'),
@ -522,9 +522,9 @@ export default {
meta: {
title: '迭代-缺陷',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
},
{ path: 'group', component: _import('xm/core/xmGroup/XmGroupForIteration'), name: 'iterationGroup', meta: { title: '团队',roles:["user"] },hidden:true},
{
@ -535,9 +535,9 @@ export default {
meta: {
title: '迭代-日志',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
},
{
path: 'workloadDay',
component: _import('xm/core/xmWorkload/WorkloadSetDayList'),
@ -546,7 +546,7 @@ export default {
meta: {
title: '迭代-工时日报',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
{
@ -557,7 +557,7 @@ export default {
meta: {
title: '迭代-工时月报',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
{
@ -568,10 +568,10 @@ export default {
meta: {
title: '迭代-效能',
icon: 'iteration',roles:["user"]
},
},
hidden:true
},
]
},
{
@ -585,13 +585,13 @@ export default {
},
// leaf: true,//只有一个节点
children: [
{ path: 'question/detail', component: _import('xm/core/xmQuestion/XmQuestionDetailRoute'), name: 'questionDetail', meta: { title: '缺陷明细',roles:["user"] },hidden:true},
{ path: 'question/mng', component: _import('xm/core/xmQuestion/XmQuestionMngRoute'), name: 'XmQuestionMng', meta: { title: '缺陷管理',roles:["user"] }},
{ path: 'question/mng/me', component: _import('xm/core/xmQuestion/XmQuestionMngMy'), name: 'XmQuestionMngMy', meta: { title: '我的缺陷' ,roles:["user"]}},
{ path: 'casedb/mng', component: _import('xm/core/xmTestCasedb/XmTestCasedbMng'), name: 'XmTestCasedbMng', meta: { title: '测试管理',roles:["user"] }},
{ path: 'xmQuestion/XmQuestionMng', component: _import('xm/core/xmQuestion/XmQuestionMngRoute'), name: 'XmQuestionMng', meta: { title: '缺陷管理',roles:["user"] }},
{ path: 'xmQuestion/XmQuestionMngMy', component: _import('xm/core/xmQuestion/XmQuestionMngMy'), name: 'XmQuestionMngMy', meta: { title: '我的缺陷' ,roles:["user"]}},
{ path: 'xmTestCasedb/XmTestCasedbMng', component: _import('xm/core/xmTestCasedb/XmTestCasedbMng'), name: 'XmTestCasedbMng', meta: { title: '测试管理',roles:["user"] }},
]
},
},
{
path: '/xm/core/test',
component: XmTestLayout,
@ -604,7 +604,6 @@ export default {
hidden:true,
// leaf: true,//只有一个节点
children: [
{ path: 'overview', component: _import('xm/core/xmTestCasedb/Overview'), name: 'testOverview', meta: { title: '测试管理',roles:["user"] },hidden:true},
{ path: 'case', component: _import('xm/core/xmTestCase/XmTestCaseList'), name: 'testCase', meta: { title: '用例管理',roles:["user"] },hidden:true},
{ path: 'flow', component: _import('xm/core/xmTestCase/XmTestCaseFlow'), name: 'testFlow', meta: { title: '用例评审',roles:["user"] },hidden:true},
@ -613,7 +612,7 @@ export default {
{ path: 'rpt', component: _import('xm/rpt/index/indexForTest'), name: 'testRpt', meta: { title: '统计分析',roles:["user"] },hidden:true},
]
},
},
{
path: '/xm/core',
component: Layout,
@ -624,30 +623,30 @@ export default {
icon: 'task'
},
// leaf: true,//只有一个节点
children: [
{ path: 'crowd/XmTaskCrowdMng', component: _import('xm/core/crowd/XmTaskCrowdMng'), name: 'XmTaskCrowdMng', meta: { title: '众包大厅',roles:["user"] }},
{ path: 'xmTaskExecuser/XmTaskExecuserMng', component: _import('xm/core/xmTaskExecuser/XmTaskExecuserMng'), name: 'XmTaskExecuserMng', meta: { title: '候选人管理',roles:["user"] }},
{ path: 'xmTaskExecuser/XmTaskExecuserForMy', component: _import('xm/core/xmTaskExecuser/XmTaskExecuserForMy'), name: 'XmTaskExecuserForMy', meta: { title: '候选人(我的)',roles:["user"] }},
children: [
{ path: 'crowd/mng', component: _import('xm/core/crowd/XmTaskCrowdMng'), name: 'XmTaskCrowdMng', meta: { title: '众包大厅',roles:["user"] }},
{ path: 'execuser/mng', component: _import('xm/core/xmTaskExecuser/XmTaskExecuserMng'), name: 'XmTaskExecuserMng', meta: { title: '候选人管理',roles:["user"] }},
{ path: 'execuser/me', component: _import('xm/core/xmTaskExecuser/XmTaskExecuserForMy'), name: 'XmTaskExecuserForMy', meta: { title: '候选人(我的)',roles:["user"] }},
]
},
{
path: '/xm/rpt',
name: 'xmRpt',
path: '/xm/rpt',
name: 'xmRpt',
component: Layout,
iconCls: 'fa el-icon-menu',
meta: {
title: '效能分析',
icon: 'chart'
},
children: [
{ path: 'his', component: _import('xm/rpt/index/indexForHis'), name: 'rptHis', meta: { title: '历史报告',roles:["user"] }},
{ path: 'his/detail', component: _import('xm/rpt/index/indexForHisDetail'), name: 'rptHisDetail', meta: { title: '报告明细',roles:["user"] },hidden:true},
{ path: 'index', component: _import('xm/rpt/index/index'), name: 'rptIndex', meta: { title: '指标分析',roles:["user"] }},
{ path: 'branch/branchDatavFullScreen', name: 'branchDatavFullScreen', meta: { title: '机构效能',openTab:true,outUrl:"${curlDomain}/"+process.env.CONTEXT+"/"+process.env.VERSION+"/#/datav/xm/branch/branchDatavFullScreen" }},
children: [
{ path: 'his', component: _import('xm/rpt/index/indexForHis'), name: 'rptHis', meta: { title: '历史报告',roles:["user"] }},
{ path: 'his/detail', component: _import('xm/rpt/index/indexForHisDetail'), name: 'rptHisDetail', meta: { title: '报告明细',roles:["user"] },hidden:true},
{ path: 'index', component: _import('xm/rpt/index/index'), name: 'rptIndex', meta: { title: '指标分析',roles:["user"] }},
{ path: 'branch/datav', name: 'branchDatavFullScreen', meta: { title: '机构效能',openTab:true,outUrl:"${curlDomain}/"+process.env.CONTEXT+"/"+process.env.VERSION+"/#/datav/xm/branch/branchDatavFullScreen" }},
]
},
{
@ -661,19 +660,17 @@ export default {
},
// leaf: true,//只有一个节点
children: [
{ path: 'xmProduct/XmProductAllMng', component: _import('xm/core/xmProduct/XmProductAllMng'), name: 'XmProductAllMng', meta: { title: '产品总览',roles:["user"] }},
{ path: 'product/mng', component: _import('xm/core/xmProduct/XmProductMng'), name: 'XmProductMng', meta: { title: '产品管理',roles:["user"] }},
{ path: 'product/recycle', component: _import('xm/core/xmProduct/XmProductRecycle'), name: 'XmProductRecycle', meta: { title: '产品回收站',roles:["user"] }},
{ path: 'xmProduct/XmProductMng', component: _import('xm/core/xmProduct/XmProductMng'), name: 'XmProductMng', meta: { title: '产品管理',roles:["user"] }},
{ path: 'xmProduct/XmProductRecycle', component: _import('xm/core/xmProduct/XmProductRecycle'), name: 'XmProductRecycle', meta: { title: '产品回收站',roles:["user"] }},
{ path: 'product/tpl', component: _import('xm/core/xmProduct/XmProductTplMng'), name: 'XmProductTplMng', meta: { title: '产品模板',roles:["user"] }},
{ path: 'menu/detail', component: _import('xm/core/xmMenu/XmMenuDetailRoute'), name: 'XmMenuDetailRoute', meta: { title: '需求明细',roles:["user"] },hidden:true},
{ path: 'xmProduct/XmProductTplMng', component: _import('xm/core/xmProduct/XmProductTplMng'), name: 'XmProductTplMng', meta: { title: '产品模板',roles:["user"] }},
{ path: 'xmMenu/XmMenuDetailRoute', component: _import('xm/core/xmMenu/XmMenuDetailRoute'), name: 'XmMenuDetailRoute', meta: { title: '需求明细',roles:["user"] },hidden:true},
{ path: 'menu/mng', component: _import('xm/core/xmMenu/XmMenuMngRoute'), name: 'XmMenuMng', meta: { title: '需求管理',roles:["user"] }},
{ path: 'iteration/mng', component: _import('xm/core/xmIteration/XmIterationMng'), name: 'XmIterationMng', meta: { title: '迭代管理',roles:["user"] }},
{ path: 'xmMenu/XmMenuMng', component: _import('xm/core/xmMenu/XmMenuMngRoute'), name: 'XmMenuMng', meta: { title: '需求管理',roles:["user"] }},
{ path: 'xmIteration/XmIterationMng', component: _import('xm/core/xmIteration/XmIterationMng'), name: 'XmIterationMng', meta: { title: '迭代管理',roles:["user"] }},
]
},
},
{
path: '/xm/core',
component: Layout,
@ -685,9 +682,9 @@ export default {
},
// leaf: true,//只有一个节点
children: [
{ path: 'xmGroup/XmGroupAllMng', component: _import('xm/core/xmGroup/XmGroupAllMng'), name: 'XmGroupAllMng', meta: { title: '团队管理',roles:["user"] }},
{ path: 'xmGroupUser/XmGroupUserMng', component: _import('xm/core/xmGroupUser/XmGroupUserMng'), name: 'XmGroupUserMng', meta: { title: '成员管理',roles:["user"] }},
{ path: 'xmGroup/XmGroupRoute', component: _import('xm/core/xmGroup/XmGroupRoute'), name: 'XmGroupRoute', meta: { title: '项目团队',roles:["user"] } ,hidden:true},
{ path: 'group/mng', component: _import('xm/core/xmGroup/XmGroupAllMng'), name: 'XmGroupAllMng', meta: { title: '团队管理',roles:["user"] }},
{ path: 'group/user', component: _import('xm/core/xmGroupUser/XmGroupUserMng'), name: 'XmGroupUserMng', meta: { title: '成员管理',roles:["user"] }},
{ path: 'group/detail', component: _import('xm/core/xmGroup/XmGroupRoute'), name: 'XmGroupRoute', meta: { title: '项目团队',roles:["user"] } ,hidden:true},
]
},
@ -703,13 +700,13 @@ export default {
},
//leaf: true,//只有一个节点
children: [
{ path: 'xmProduct/XmProjectCost', component: _import('xm/core/xmProject/XmProjectCost'), name: 'XmProjectCost', meta: { title: '应付款',roles:["user"]}},
{ path: 'project/cost', component: _import('xm/core/xmProject/XmProjectCost'), name: 'XmProjectCost', meta: { title: '应付款',roles:["user"]}},
{ path: 'xmTaskSbill/XmTaskSbillMng', component: _import('xm/core/xmTaskSbill/XmTaskSbillMng'), name: 'XmTaskSbilllMng', meta: { title: '任务结算单',roles:["user"]}},
{ path: 'xmWorkload/WorkloadSetDayListMy', component: _import('xm/core/xmWorkload/WorkloadSetDayListMy'), name: 'WorkloadSetDayListMy', meta: { title: '工时日报(我)',roles:["user"]}},
{ path: 'xmWorkload/WorkloadSetMonthListMy', component: _import('xm/core/xmWorkload/WorkloadSetMonthListMy'), name: 'WorkloadSetMonthListMy', meta: { title: '工时月报(我)',roles:["user"]}},
{ path: 'xmWorkload/WorkloadSetDayList', component: _import('xm/core/xmWorkload/WorkloadSetDayList'), name: 'WorkloadSetDayList', meta: { title: '工时日报',roles:["user"]}},
{ path: 'xmWorkload/WorkloadSetMonthList', component: _import('xm/core/xmWorkload/WorkloadSetMonthList'), name: 'WorkloadSetMonthList', meta: { title: '工时月报',roles:["user"]}},
{ path: 'task/sbill', component: _import('xm/core/xmTaskSbill/XmTaskSbillMng'), name: 'XmTaskSbilllMng', meta: { title: '任务结算单',roles:["user"]}},
{ path: 'workload/meday', component: _import('xm/core/xmWorkload/WorkloadSetDayListMy'), name: 'WorkloadSetDayListMy', meta: { title: '工时日报(我)',roles:["user"]}},
{ path: 'workload/memonth', component: _import('xm/core/xmWorkload/WorkloadSetMonthListMy'), name: 'WorkloadSetMonthListMy', meta: { title: '工时月报(我)',roles:["user"]}},
{ path: 'workload/day', component: _import('xm/core/xmWorkload/WorkloadSetDayList'), name: 'WorkloadSetDayList', meta: { title: '工时日报',roles:["user"]}},
{ path: 'workload/month', component: _import('xm/core/xmWorkload/WorkloadSetMonthList'), name: 'WorkloadSetMonthList', meta: { title: '工时月报',roles:["user"]}},
]
}
]

564
src/views/xm/core/xmProject/XmProjectMng.vue

@ -1,295 +1,291 @@
<template>
<section>
<el-row class="padding-left padding-right">
<el-row :span="24" class="padding-left">
<el-row >
<xm-product-select style="display:inline;" class="hidden-md-and-down" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
<el-select v-model="menukey" @change="handleSelect" clearable style="width:100px;">
<el-option value="all" label="全部"></el-option>
<el-option value="compete" label="我参与"></el-option>
<el-option value="leader" label="我管理"></el-option>
<el-option value="approver" label="我审核"></el-option>
<el-option value="create" label="我创建"></el-option>
<el-option value="myFocus" label="我关注"></el-option>
<el-option value="myExecuserStatus0" label="我排队"></el-option>
<el-option value="myExecuserStatus1" label="我执行"></el-option>
<el-option value="myExecuserStatus7" label="我放弃"></el-option>
</el-select>
<el-select v-model="filters.status" clearable placeholder="项目状态" style="width:100px;">
<el-option v-for="(item,index) in dicts['projectStatus']" :value="item.id" :label="item.name" :key="index"></el-option>
</el-select>
<el-input v-model="filters.key" style="width:15%;" placeholder="项目名称模糊查询" clearable >
</el-input>
<el-button style="margin-top: 10px;" type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
<el-popover
placement="top-start"
title="更多条件、操作"
width="500"
trigger="click" >
<el-row>
<el-row>
<font class="more-label-font">显示方式:</font>
<el-radio v-model="showType" :label="false">表格</el-radio>
<el-radio v-model="showType" :label="true">卡片</el-radio>
</el-row>
<el-row>
<el-button type="text" @click="templateVisible=!templateVisible">{{templateVisible?'隐藏模板':'显示模板'}}</el-button>
<el-button type="text" @click="guiderStart(true)" icon="el-icon-help">新手导航</el-button>
</el-row>
<el-divider></el-divider>
<el-row v-if="filters.productId">
<font class="more-label-font">项目:</font>
<xm-product-select style="display:inline;" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
</el-row>
<el-row>
<font class="more-label-font">项目编号:</font>
<el-input v-model="filters.id" clearable style="width:200px;"></el-input>
</el-row>
<el-row>
<font class="more-label-font">创建时间:</font>
<el-date-picker
v-model="dateRanger"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="完成日期"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
</el-row>
<el-row>
<el-button style="float:right;" type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
</el-row>
</el-row>
<el-button slot="reference" icon="el-icon-more" id="prj-more-btn"></el-button>
</el-popover>
<span style="float:right;">
<el-popover style="padding-left:10px;"
placement="top-start"
width="450"
trigger="click" >
<el-row>
<el-row>
<el-badge value="都适用">
<el-button @click="showAdd" icon="el-icon-plus">直接添加新项目</el-button>
</el-badge>
</el-row>
<el-row>
<el-badge value="进阶">
<el-button type="primary" icon="el-icon-plus">通过项目-复制一键创建新的项目</el-button>
</el-badge>
</el-row>
<el-row>
<el-badge value="新手">
<el-button type="warning" @click="templateVisible=!templateVisible" icon="el-icon-plus">通过模板-复制一键创建新的项目</el-button>
</el-badge>
</el-row>
</el-row>
<el-button id="prj-plus-btn" type="primary" style="margin-top: 10px;" slot="reference" icon="el-icon-plus" round>项目</el-button>
</el-popover>
</span>
</el-row>
<el-row ref="table1">
<!--列表 XmProject xm_project-->
<el-row v-show="showType" v-loading="load.list" :style="{overflowX:'hidden',height:maxTableHeight+'px'}" >
<section class="padding">
<el-row >
<xm-product-select class="hidden-md-and-down" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
<el-select v-model="menukey" @change="handleSelect" clearable style="width:100px;">
<el-option value="all" label="全部"></el-option>
<el-option value="compete" label="我参与"></el-option>
<el-option value="leader" label="我管理"></el-option>
<el-option value="approver" label="我审核"></el-option>
<el-option value="create" label="我创建"></el-option>
<el-option value="myFocus" label="我关注"></el-option>
<el-option value="myExecuserStatus0" label="我排队"></el-option>
<el-option value="myExecuserStatus1" label="我执行"></el-option>
<el-option value="myExecuserStatus7" label="我放弃"></el-option>
</el-select>
<el-select v-model="filters.status" clearable placeholder="项目状态" style="width:100px;">
<el-option v-for="(item,index) in dicts['projectStatus']" :value="item.id" :label="item.name" :key="index"></el-option>
</el-select>
<el-input v-model="filters.key" style="width:15%;" placeholder="项目名称模糊查询" clearable >
</el-input>
<el-button type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
<el-popover
placement="top-start"
title="更多条件、操作"
width="500"
trigger="click" >
<el-row>
<el-row>
<font class="more-label-font">显示方式:</font>
<el-radio v-model="showType" :label="false">表格</el-radio>
<el-radio v-model="showType" :label="true">卡片</el-radio>
</el-row>
<el-row>
<el-button type="text" @click="templateVisible=!templateVisible">{{templateVisible?'隐藏模板':'显示模板'}}</el-button>
<el-button type="text" @click="guiderStart(true)" icon="el-icon-help">新手导航</el-button>
</el-row>
<el-divider></el-divider>
<el-row v-if="filters.productId">
<font class="more-label-font">项目:</font>
<xm-product-select style="display:inline;" :auto-select="false" @row-click="onProductSelected" @clear="onProductClose"></xm-product-select>
</el-row>
<el-row>
<font class="more-label-font">项目编号:</font>
<el-input v-model="filters.id" clearable style="width:200px;"></el-input>
</el-row>
<el-row>
<el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="6" :lg="8" :md="8" :sm="12">
<el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always" id="prj-view-box">
<div class="project-name" title="这是项目名称">{{p.name}}</div>
<div class="project-id"><span title="项目代号">{{p.id}} </span>
<el-tag title="项目状态" v-for="(item,index) in formatDictsWithClass(dicts,'projectStatus',p.status)" :key="index" :type="item.className">{{item.name}}</el-tag>
<el-link id="prj-del-btn" type="danger" style="font-size:14px;float:right;margin-left:2px;" title="删除项目" @click.stop="handleDel(p)" v-loading="load.add">删除</el-link>
<el-link id="prj-copy-btn" type="primary" style="font-size:14px;float:right;margin-left:2px;" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(p)" v-loading="load.add">复制&nbsp;</el-link>
<!--<el-link id="prj-calc-btn" type="warning" style="font-size:14px;float:right;margin-left:2px;" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState(p)" v-loading="load.add">统计</el-link>-->
</div>
<div class="project-info">
<div class="info-task" title="已完成需求数 / 总需求数 ">
<span>
<span class="item-total finish-task">{{p.menuFinishCnt==null?0:p.menuFinishCnt}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.menuCnt==null?0:p.menuCnt}}</span>
</span>
<span class="item-type">需求</span>
</div>
<!--
<div class="info-task" title="已完成 / 预算工作量 ,单位人天 ">
<span>
<span class="item-total finish-task">{{p.actWorkload==null?0:parseInt(p.actWorkload/8)}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.budgetWorkload==null?0:parseInt(p.budgetWorkload/8)}}</span>
</span>
<span class="item-type">工作量</span>
</div>
-->
<div class="info-task" title="已完成 / 总任务数 ">
<span>
<span class="item-total finish-task">{{p.taskFinishCnt==null?0:p.taskFinishCnt}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.taskCnt==null?0:p.taskCnt}}</span>
</span>
<span class="item-type">任务</span>
</div>
<div class="info-task" title="已关闭 / 总缺陷数 ">
<span>
<span class="item-total finish-task">{{p.closedBugs==null?0:p.closedBugs}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.bugCnt==null?0:p.bugCnt}}</span>
</span>
<span class="item-type">缺陷</span>
</div>
</div>
<div class="project-rate">
<el-progress :percentage="(p.finishRate==null?0:p.finishRate)"></el-progress>
</div>
<div class="project-footer">
<div class="project-type" title="项目经理">
<mdp-select-user-xm v-if="p.pmUserid" :value="p" userid-key="pmUserid" username-key="pmUsername" :disabled="true"></mdp-select-user-xm>
<mdp-select-user-xm v-else-if="p.createUserid" :value="p" userid-key="createUserid" username-key="createUsername" :disabled="true"></mdp-select-user-xm>
</div>
<div class="project-period">{{p.startTime?p.startTime.substr(0,10):''}} ~{{p.endTime?p.endTime.substr(0,10):''}}</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row v-if="!load.list && xmProjects.length<=0">
<el-result icon="info" title="信息提示" subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
<template slot="extra">
<el-row>
<el-row>
您可以通过 &nbsp;<el-button @click="showAdd" icon="el-icon-plus" type="primary" plain>项目</el-button>&nbsp;
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">公共模板</el-button>&nbsp;体验项目的过程。<br/>
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">拷贝模板</el-button>&nbsp;快速创建新项目。<br/>
</el-row>
</el-row>
</template>
</el-result>
</el-row>
</el-row>
<el-table ref="table" :height="maxTableHeight" v-cloak v-show="!showType" fit stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-row slot="empty">
<el-result icon="info" title="信息提示" subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
<template slot="extra">
<el-row>
<el-row>
您可以通过 &nbsp;<el-button @click="showAdd" icon="el-icon-plus" type="primary" plain>项目</el-button>&nbsp;
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">公共模板</el-button>&nbsp;体验项目的过程。<br/>
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">拷贝模板</el-button>&nbsp;快速创建新项目。<br/>
</el-row>
</el-row>
</template>
</el-result>
<font class="more-label-font">创建时间:</font>
<el-date-picker
v-model="dateRanger"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="完成日期"
value-format="yyyy-MM-dd HH:mm:ss"
:default-time="['00:00:00','23:59:59']"
:picker-options="pickerOptions"
></el-date-picker>
</el-row>
<el-row>
<el-button style="float:right;" type="primary" icon="el-icon-search" @click="searchXmProjects">查询</el-button>
</el-row>
<el-table-column type="index" label="序号" width="60" fixed="left"></el-table-column>
<el-table-column prop="id" label="项目编码" min-width="150" sortable show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="name" label="标题" sortable min-width="250" fixed="left">
<template slot-scope="scope">
<el-link type="primary" @click.stop="intoInfo(scope.row)">{{scope.row.name}}</el-link>
</el-row>
<el-button slot="reference" icon="el-icon-more" id="prj-more-btn"></el-button>
</el-popover>
<span style="float:right;">
<el-popover style="padding-left:10px;"
placement="top-start"
width="450"
trigger="click" >
<el-row>
<el-row>
<el-badge value="都适用">
<el-button @click="showAdd" icon="el-icon-plus">直接添加新项目</el-button>
</el-badge>
</el-row>
<el-row>
<el-badge value="进阶">
<el-button type="primary" icon="el-icon-plus">通过项目-复制一键创建新的项目</el-button>
</el-badge>
</el-row>
<el-row>
<el-badge value="新手">
<el-button type="warning" @click="templateVisible=!templateVisible" icon="el-icon-plus">通过模板-复制一键创建新的项目</el-button>
</el-badge>
</el-row>
</el-row>
<el-button id="prj-plus-btn" type="primary" slot="reference" icon="el-icon-plus" round>项目</el-button>
</el-popover>
</span>
</el-row>
<el-row ref="table1">
<!--列表 XmProject xm_project-->
<el-row v-show="showType" v-loading="load.list" :style="{overflowX:'hidden',height:maxTableHeight+'px'}" >
<el-row>
<el-col v-cloak v-for="(p,i) in ScreenData" :key="i" :xl="6" :lg="8" :md="8" :sm="12">
<el-card @click.native="intoInfo(p,i)" class="project-card" shadow="always" id="prj-view-box">
<div class="project-name" title="这是项目名称">{{p.name}}</div>
<div class="project-id"><span title="项目代号">{{p.id}} </span>
<el-tag title="项目状态" v-for="(item,index) in formatDictsWithClass(dicts,'projectStatus',p.status)" :key="index" :type="item.className">{{item.name}}</el-tag>
<el-link id="prj-del-btn" type="danger" style="font-size:14px;float:right;margin-left:2px;" title="删除项目" @click.stop="handleDel(p)" v-loading="load.add">删除</el-link>
<el-link id="prj-copy-btn" type="primary" style="font-size:14px;float:right;margin-left:2px;" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(p)" v-loading="load.add">复制&nbsp;</el-link>
<!--<el-link id="prj-calc-btn" type="warning" style="font-size:14px;float:right;margin-left:2px;" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState(p)" v-loading="load.add">统计</el-link>-->
</div>
<div class="project-info">
<div class="info-task" title="已完成需求数 / 总需求数 ">
<span>
<span class="item-total finish-task">{{p.menuFinishCnt==null?0:p.menuFinishCnt}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.menuCnt==null?0:p.menuCnt}}</span>
</span>
<span class="item-type">需求</span>
</div>
<!--
<div class="info-task" title="已完成 / 预算工作量 ,单位人天 ">
<span>
<span class="item-total finish-task">{{p.actWorkload==null?0:parseInt(p.actWorkload/8)}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.budgetWorkload==null?0:parseInt(p.budgetWorkload/8)}}</span>
</span>
<span class="item-type">工作量</span>
</div>
-->
<div class="info-task" title="已完成 / 总任务数 ">
<span>
<span class="item-total finish-task">{{p.taskFinishCnt==null?0:p.taskFinishCnt}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.taskCnt==null?0:p.taskCnt}}</span>
</span>
<span class="item-type">任务</span>
</div>
<div class="info-task" title="已关闭 / 总缺陷数 ">
<span>
<span class="item-total finish-task">{{p.closedBugs==null?0:p.closedBugs}}</span>
<span style="margin: 0 .25rem !important;">/</span>
<span class="item-type total-task">{{p.bugCnt==null?0:p.bugCnt}}</span>
</span>
<span class="item-type">缺陷</span>
</div>
</div>
<div class="project-rate">
<el-progress :percentage="(p.finishRate==null?0:p.finishRate)"></el-progress>
</div>
<div class="project-footer">
<div class="project-type" title="项目经理">
<mdp-select-user-xm v-if="p.pmUserid" :value="p" userid-key="pmUserid" username-key="pmUsername" :disabled="true"></mdp-select-user-xm>
<mdp-select-user-xm v-else-if="p.createUserid" :value="p" userid-key="createUserid" username-key="createUsername" :disabled="true"></mdp-select-user-xm>
</div>
<div class="project-period">{{p.startTime?p.startTime.substr(0,10):''}} ~{{p.endTime?p.endTime.substr(0,10):''}}</div>
</div>
</el-card>
</el-col>
</el-row>
<el-row v-if="!load.list && xmProjects.length<=0">
<el-result icon="info" title="信息提示" subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
<template slot="extra">
<el-row>
<el-row>
您可以通过 &nbsp;<el-button @click="showAdd" icon="el-icon-plus" type="primary" plain>项目</el-button>&nbsp;
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">公共模板</el-button>&nbsp;体验项目的过程。<br/>
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">拷贝模板</el-button>&nbsp;快速创建新项目。<br/>
</el-row>
</el-row>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" width="100" sortable fixed="left">
<template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'projectStatus',scope.row.status)" :key="index" :type="item.className">{{item.name}}</el-tag>
</el-result>
</el-row>
</el-row>
<el-table ref="table" :height="maxTableHeight" v-cloak v-show="!showType" fit stripe :data="ScreenData" @sort-change="sortChange" highlight-current-row v-loading="load.list" @selection-change="selsChange" @row-click="rowClick" style="width: 100%;">
<el-row slot="empty">
<el-result icon="info" title="信息提示" subTitle="没有查到相关项目,有可能是您暂时还没有项目,有可能是您无权限查询项目。">
<template slot="extra">
<el-row>
<el-row>
您可以通过 &nbsp;<el-button @click="showAdd" icon="el-icon-plus" type="primary" plain>项目</el-button>&nbsp;
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">公共模板</el-button>&nbsp;体验项目的过程。<br/>
</el-row>
<el-row>
通过&nbsp;<el-button @click="templateVisible=true" type="primary" plain style="margin-bottom:5px;">拷贝模板</el-button>&nbsp;快速创建新项目。<br/>
</el-row>
</el-row>
</template>
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="100" sortable>
<template slot-scope="scope">
<font ><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag>
</el-result>
</el-row>
<el-table-column type="index" label="序号" width="60" fixed="left"></el-table-column>
<el-table-column prop="id" label="项目编码" min-width="150" sortable show-overflow-tooltip fixed="left"></el-table-column>
<el-table-column prop="name" label="标题" sortable min-width="250" fixed="left">
<template slot-scope="scope">
<el-link type="primary" @click.stop="intoInfo(scope.row)">{{scope.row.name}}</el-link>
</template>
</el-table-column>
<el-table-column prop="status" label="状态" width="100" sortable fixed="left">
<template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'projectStatus',scope.row.status)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column prop="finishRate" label="进度" width="100" sortable>
<template slot-scope="scope">
<font ><el-tag :type="scope.row.finishRate>=100?'success':'warning'">{{scope.row.finishRate}}%</el-tag>
<el-button id="guider-four" type="text" icon="el-icon-video-play" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState( scope.row)"></el-button>
<el-button id="guider-four" type="text" icon="el-icon-video-play" title="统计项目的工作量、进度、需求、bugs等数据" @click.stop="loadTasksToXmProjectState( scope.row)"></el-button>
</font>
</template>
</el-table-column>
<el-table-column prop="productCnt" label="项目数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="iterationCnt" label="迭代数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="menuCnt" label="需求数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的需求数 / 需求总数 ">{{scope.row.menuCnt>0?scope.row.menuFinishCnt+'&nbsp;/&nbsp;'+scope.row.menuCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="taskCnt" label="任务数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的任务数 / 任务总数 ">{{scope.row.taskCnt>0?scope.row.taskFinishCnt+'&nbsp;/&nbsp;'+scope.row.taskCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="bugCnt" label="缺陷" sortable min-width="120" >
<template slot-scope="scope">
<span title="关闭的缺陷数 / 缺陷总数 ">{{scope.row.bugCnt>0?scope.row.closedBugs+'&nbsp;/&nbsp;'+scope.row.bugCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="startTime" label="起止时间" sortable min-width="150" >
<template slot-scope="scope">
{{scope.row.startTime? scope.row.startTime.substr(0,10) : ""}}~{{scope.row.endTime? scope.row.endTime.substr(0,10) : ""}}
</template>
</el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" >
<template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'bizFlowState',scope.row.bizFlowState)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope">
<!-- <el-popover
placement="left"
trigger="hover"> -->
<el-button v-if="menukey=='myFocus'" type="text" @click.stop="focusOrUnfocus(scope.row)" >取消关注</el-button>
<el-button v-else type="text" @click.stop="focusOrUnfocus(scope.row)" >关注</el-button>
<el-button type="text" @click.stop="intoInfo(scope.row)" >视图</el-button>
<el-button type="text" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(scope.row)" v-loading="load.add">复制</el-button>
<el-button type="text" title="删除项目" @click.stop="handleDel(scope.row)" v-loading="load.del">删除</el-button>
<!--
<el-button type="primary" @click.stop="statusChange(scope,'1')" v-if="scope.row.status==0 || scope.row.status == 2">提交审核</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==1">批准</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'2')" v-if="scope.row.status==1">退回</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'4')" v-if="scope.row.status==3">结束</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==4">重新启动</el-button>
<el-button type="primary" @click.stop="handleDel(scope.row,scope.$index)" v-if="isLeader(scope.row.leader)">删除</el-button>
</font>
</template>
</el-table-column>
<el-table-column prop="productCnt" label="项目数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="iterationCnt" label="迭代数" sortable min-width="120" >
</el-table-column>
<el-table-column prop="menuCnt" label="需求数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的需求数 / 需求总数 ">{{scope.row.menuCnt>0?scope.row.menuFinishCnt+'&nbsp;/&nbsp;'+scope.row.menuCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="taskCnt" label="任务数" sortable min-width="120" >
<template slot-scope="scope">
<span title="完成的任务数 / 任务总数 ">{{scope.row.taskCnt>0?scope.row.taskFinishCnt+'&nbsp;/&nbsp;'+scope.row.taskCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="bugCnt" label="缺陷" sortable min-width="120" >
<template slot-scope="scope">
<span title="关闭的缺陷数 / 缺陷总数 ">{{scope.row.bugCnt>0?scope.row.closedBugs+'&nbsp;/&nbsp;'+scope.row.bugCnt:''}}</span>
</template>
</el-table-column>
<el-table-column prop="startTime" label="起止时间" sortable min-width="150" >
<template slot-scope="scope">
{{scope.row.startTime? scope.row.startTime.substr(0,10) : ""}}~{{scope.row.endTime? scope.row.endTime.substr(0,10) : ""}}
</template>
</el-table-column>
<el-table-column prop="bizFlowState" label="审批状态" min-width="120" >
<template slot-scope="scope">
<el-tag v-for="(item,index) in formatDictsWithClass(dicts,'bizFlowState',scope.row.bizFlowState)" :key="index" :type="item.className">{{item.name}}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template slot-scope="scope">
<!-- <el-popover
placement="left"
trigger="hover"> -->
<el-button v-if="menukey=='myFocus'" type="text" @click.stop="focusOrUnfocus(scope.row)" >取消关注</el-button>
<el-button v-else type="text" @click.stop="focusOrUnfocus(scope.row)" >关注</el-button>
<el-button type="text" @click.stop="intoInfo(scope.row)" >视图</el-button>
<el-button type="text" title="通过复制快速创建新项目" @click.stop="onCopyToBtnClick(scope.row)" v-loading="load.add">复制</el-button>
<el-button type="text" title="删除项目" @click.stop="handleDel(scope.row)" v-loading="load.del">删除</el-button>
<el-dropdown @command="handleCommand" :hide-on-click="false">
<span class="el-dropdown-link">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">立项发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_baseinfo_change_approva'}">基础信息变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_budget_change_approva'}">预算变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_over_approva'}">项目结项发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_suspension_approva'}">项目暂停发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_restart_approva'}">项目重新启动发审(审核通过后生效)</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
-->
<!-- <el-button style="width:100%;" slot="reference" class="see-more" type="text" icon="el-icon-more"></el-button>
</el-popover> -->
</template>
</el-table-column>
</el-table>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
</el-row>
</el-row>
</el-row>
<!--
<el-button type="primary" @click.stop="statusChange(scope,'1')" v-if="scope.row.status==0 || scope.row.status == 2">提交审核</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==1">批准</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'2')" v-if="scope.row.status==1">退回</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'4')" v-if="scope.row.status==3">结束</el-button>
<el-button type="primary" @click.stop="statusChange(scope,'3')" v-if="scope.row.status==4">重新启动</el-button>
<el-button type="primary" @click.stop="handleDel(scope.row,scope.$index)" v-if="isLeader(scope.row.leader)">删除</el-button>
<el-dropdown @command="handleCommand" :hide-on-click="false">
<span class="el-dropdown-link">
更多<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_start_approva'}">立项发审(审核通过后起效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_delete_approva'}">删除发审(审核通过后删除)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_baseinfo_change_approva'}">基础信息变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'showEdit',row:scope.row,bizKey:'xm_project_budget_change_approva'}">预算变更发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_over_approva'}">项目结项发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_suspension_approva'}">项目暂停发审(审核通过后生效)</el-dropdown-item>
<el-dropdown-item icon="el-icon-success" :command="{type:'sendToProcessApprova',row:scope.row,bizKey:'xm_project_restart_approva'}">项目重新启动发审(审核通过后生效)</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
-->
<!-- <el-button style="width:100%;" slot="reference" class="see-more" type="text" icon="el-icon-more"></el-button>
</el-popover> -->
</template>
</el-table-column>
</el-table>
</el-row>
<el-pagination layout="total, sizes, prev, pager, next" @current-change="handleCurrentChange" @size-change="handleSizeChange" :page-sizes="[10,20, 50, 100, 500]" :current-page="pageInfo.pageNum" :page-size="pageInfo.pageSize" :total="pageInfo.total" style="float:right;"></el-pagination>
<el-dialog title="项目新增" :visible.sync="addFormVisible" :with-header="false" width="80%" top="20px" :close-on-click-modal="false" append-to-body>
<xm-project-add :sel-project="addForm" op-type="add" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-project-add>
</el-dialog>

Loading…
Cancel
Save