Browse Source

优化

master
陈裕财 3 years ago
parent
commit
1744b28d36
  1. 4
      src/views/xm/core/components/XmIterationSelect.vue
  2. 4
      src/views/xm/core/components/XmProjectSelect.vue
  3. 26
      src/views/xm/core/xmIteration/XmIterationForLinkComplex.vue
  4. 104
      src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue
  5. 10
      src/views/xm/core/xmProduct/XmProductForLinkComplex.vue
  6. 128
      src/views/xm/core/xmProduct/XmProductOverviewComplex.vue
  7. 223
      src/views/xm/core/xmProject/XmProjectForLinkComplex.vue
  8. 99
      src/views/xm/core/xmProject/XmProjectOverviewComplex.vue
  9. 2
      src/views/xm/rpt/iteration/burnout.vue

4
src/views/xm/core/components/XmIterationSelect.vue

@ -119,9 +119,9 @@
</el-row> </el-row>
<div slot="reference" @click="referenceClick"> <div slot="reference" @click="referenceClick">
<slot name="reference">
<slot name="reference" v-bind:iteration="editForm">
<span class="title"> <span class="title">
<slot name="title">
<slot name="title" v-bind:iteration="editForm">
<el-link title="点击选中迭代" type="primary" icon="el-icon-connection"> <el-link title="点击选中迭代" type="primary" icon="el-icon-connection">
<div class="lg-text hidden-md-and-down"> <div class="lg-text hidden-md-and-down">
{{ {{

4
src/views/xm/core/components/XmProjectSelect.vue

@ -185,10 +185,10 @@
></el-pagination> ></el-pagination>
</el-row> </el-row>
<span slot="reference" @click="referenceClick"> <span slot="reference" @click="referenceClick">
<slot name="reference"
<slot name="reference" v-bind:project="editForm"
> >
<span class="title"> <span class="title">
<slot name="title">
<slot name="title" v-bind:project="editForm">
<el-link <el-link
title="项目,点击选择、清除选择" title="项目,点击选择、清除选择"
type="warning" type="warning"

26
src/views/xm/core/xmIteration/XmIterationForLinkComplex.vue

@ -1,15 +1,18 @@
<template> <template>
<section> <section>
<el-row> <el-row>
<el-col :span="4" class="padding">
<el-col :xl="4" :lg="4" :md="5" :sm="5" :xs="5" class="padding">
<div class="border">
<el-row> <el-row>
<el-col :span="24">
<xm-iteration-select ref="xmIterationSelect" :auto-select="true" :link-project-id="projectInfo?projectInfo.id:null" :product-id="xmProduct?xmProduct.id:null" @row-click="onIterationRowClick" @clear="onIterationClearSelect"></xm-iteration-select>
</el-col>
</el-row>
<el-row ref="pageMainRef" class="padding" :class="{border:xmIteration&&xmIteration.id}" :style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }">
<h4 class="padding-bottom" v-if="xmIteration&&xmIteration.id">常用功能导航</h4>
<el-steps v-if="xmIteration&&xmIteration.id"
<xm-iteration-select ref="xmIterationSelect" :auto-select="true" :link-project-id="projectInfo?projectInfo.id:null" :product-id="xmProduct?xmProduct.id:null" @row-click="onIterationRowClick" @clear="onIterationClearSelect">
<template v-slot:title="{iteration}">
<h4 href="#"><div class="lg-text hidden-md-and-down"><i style="font-size:16px;" class="el-icon-sort"></i> {{iteration?iteration.iterationName:'请选择一个迭代'}}</div></h4>
<h4 href="#"><div class="sm-text hidden-lg-and-up"><i style="font-size:16px;" class="el-icon-sort"></i> {{iteration?iteration.iterationName:'请选择一个迭代'}}</div></h4>
</template>
</xm-iteration-select>
</el-row>
<el-row ref="pageBody" class="padding" :style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }">
<el-steps v-if="xmIteration&&xmIteration.id"
:active="calcIterationStatusStep" :active="calcIterationStatusStep"
finish-status="success" finish-status="success"
direction="vertical" direction="vertical"
@ -274,9 +277,10 @@
</el-row> </el-row>
</el-step> </el-step>
</el-steps> </el-steps>
</el-row>
</el-row>
</div>
</el-col> </el-col>
<el-col :span="20" class="padding-left padding-right">
<el-col :xl="20" :lg="20" :md="19" :sm="19" :xs="19" class="padding-left padding-right">
<el-tabs :value="showPanel" @tab-click="tabClick"> <el-tabs :value="showPanel" @tab-click="tabClick">
<el-tab-pane label="迭代概览" lazy name="iterationOverview" v-if="xmIteration && xmIteration.id"> <el-tab-pane label="迭代概览" lazy name="iterationOverview" v-if="xmIteration && xmIteration.id">
@ -479,7 +483,7 @@
this.$nextTick(() => { this.$nextTick(() => {
initDicts(this) initDicts(this)
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageMainRef.$el);
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageBody.$el);
}); });
} }

104
src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue

@ -1,12 +1,18 @@
<template> <template>
<section class="padding-left padding-right">
<el-row ref="pageMainRef">
<section>
<el-row>
<el-col <el-col
:span="4" :span="4"
class="padding border"
class="padding"
:style="{ overflowY: 'auto' }" :style="{ overflowY: 'auto' }"
> >
<h4 class="padding-bottom">常用功能导航</h4>
<div class="border">
<el-row class="padding">
<h4>常用功能导航</h4>
</el-row>
<el-row
ref="pageBody" class="padding" :style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }"
>
<el-steps <el-steps
:active="calcIterationStatusStep" :active="calcIterationStatusStep"
finish-status="success" finish-status="success"
@ -261,48 +267,45 @@
</el-row> </el-row>
</el-step> </el-step>
</el-steps> </el-steps>
</el-col>
<el-col :span="20">
<el-menu mode="horizontal" :default-active="showPanelName" @select="onMenuToolBarSelect">
<el-menu-item index="overview">
<span slot="title">迭代概览</span>
</el-menu-item>
<el-menu-item index="iterationCalc">
<span slot="title">执行统计</span>
</el-menu-item>
<el-menu-item index="detail">
<span slot="title">迭代详情</span>
</el-menu-item>
<!--
<el-menu-item index="iterationProductLink">
<span slot="title">配置可见产品</span>
</el-menu-item>
-->
<el-menu-item index="iterationMenuMng">
<span slot="title">配置需求范围</span>
</el-menu-item>
<!--
<el-menu-item index="iterationProjectLink">
<span slot="title">配置可见项目</span>
</el-menu-item>
-->
</el-menu>
<xm-iteration-overview class="padding-top" v-if="showPanelName=='overview'" :xm-iteration="xmIteration"></xm-iteration-overview>
<xm-iteration-edit v-if="showPanelName=='detail'" :xm-iteration="xmIteration" @edit-fields="onEditFields"></xm-iteration-edit>
<xm-iteration-link-for-product v-if="showPanelName=='iterationProductLink'" :xm-iteration="xmIteration"></xm-iteration-link-for-product>
<xm-iteration-link-for-project v-if="showPanelName=='iterationProjectLink'" :xm-iteration="xmIteration"></xm-iteration-link-for-project>
<xm-iteration-menu-mng v-if="showPanelName=='iterationMenuMng'" :xm-iteration="xmIteration" ref="iterationMenuMng" class="padding-top"></xm-iteration-menu-mng>
<div v-if="showPanelName=='iterationCalc'" class="padding">
<el-row>
<el-button type="primary" @click="loadTasksToXmIterationState" v-loading="load.calcIteration">计算迭代统计数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务中汇总进度预算工作量实际工作量预算金额实际金额缺陷数需求数等数据到迭代统计表;
<br/>
<strong>注意</strong>该统计实时统计迭代涉及到的各方面数据执行量较大一般更改了任务进度数据重新调整了需求范围需要迭代的实时数据的情况下再手动执行
</font>
</el-row>
</el-row>
</div> </div>
</el-col>
<el-col :xl="20" :lg="20" :md="19" :sm="19" :xs="19" class="padding-left padding-right">
<el-tabs :value="showPanel" @tab-click="tabClick">
<el-tab-pane label="迭代概览" lazy name="overview" v-if="xmIteration && xmIteration.id">
<xm-iteration-overview class="padding-top" v-if="showPanelName=='overview'" :xm-iteration="xmIteration"></xm-iteration-overview>
</el-tab-pane>
<el-tab-pane label="执行统计" lazy name="iterationCalc" v-if="xmIteration && xmIteration.id">
</el-tab-pane>
<el-tab-pane label="迭代详情" lazy name="detail" v-if="xmIteration && xmIteration.id">
<xm-iteration-edit v-if="showPanelName=='detail'" :xm-iteration="xmIteration" @edit-fields="onEditFields"></xm-iteration-edit>
</el-tab-pane>
<el-tab-pane label="配置需求范围" lazy name="iterationMenuMng" v-if="xmIteration && xmIteration.id">
<xm-iteration-menu-mng v-if="showPanelName=='iterationMenuMng'" :xm-iteration="xmIteration" ref="iterationMenuMng" class="padding-top"></xm-iteration-menu-mng>
</el-tab-pane>
<el-tab-pane label="执行统计" lazy name="iterationCalc" v-if="xmIteration && xmIteration.id">
<div v-if="showPanelName=='iterationCalc'" class="padding">
<el-row>
<el-button type="primary" @click="loadTasksToXmIterationState" v-loading="load.calcIteration">计算迭代统计数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务中汇总进度预算工作量实际工作量预算金额实际金额缺陷数需求数等数据到迭代统计表;
<br/>
<strong>注意</strong>该统计实时统计迭代涉及到的各方面数据执行量较大一般更改了任务进度数据重新调整了需求范围需要迭代的实时数据的情况下再手动执行
</font>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</el-col> </el-col>
</el-row> </el-row>
</section> </section>
@ -346,7 +349,8 @@ export default {
return { return {
dicts:{iterationStatus:[]}, dicts:{iterationStatus:[]},
load:{calcIteration:false,}, load:{calcIteration:false,},
showPanelName:'overview'
showPanelName:'overview',
maxTableHeight:300,
}; };
}, },
@ -400,12 +404,16 @@ export default {
} }
}).catch((e)=>Object.assign(this.editForm,this.editFormBak)) }).catch((e)=>Object.assign(this.editForm,this.editFormBak))
}, },
tabClick(tab){
this.showPanelName=tab.name
},
}, },
mounted() { mounted() {
initDicts(this)
this.$nextTick(() => {
this.$nextTick(() => {
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageBody.$el);
}); });
initDicts(this)
}, },
}; };

10
src/views/xm/core/xmProduct/XmProductForLinkComplex.vue

@ -1,8 +1,8 @@
<template> <template>
<section> <section>
<el-row> <el-row>
<el-col :span="4" class="padding-left">
<div class="border">
<el-col :xl="4" :lg="4" :md="5" :sm="5" :xs="5" class="padding">
<div class="border">
<el-row> <el-row>
<xm-product-select <xm-product-select
ref="xmProductSelect" ref="xmProductSelect"
@ -13,8 +13,8 @@
@clear="onProductClearSelect" @clear="onProductClearSelect"
> >
<template v-slot:title="{product}"> <template v-slot:title="{product}">
<h4 href="#" class="product-title"><div class="lg-text hidden-md-and-down"><i style="font-size:16px;" class="el-icon-sort"></i> {{product?product.productName:'请选择一个产品'}}</div></h4>
<h4 href="#" class="product-title"><div class="sm-text hidden-lg-and-up"><i style="font-size:16px;" class="el-icon-sort"></i> {{product?product.productName:'请选择一个产品'}}</div></h4>
<h4 href="#"><div class="lg-text hidden-md-and-down"><i style="font-size:16px;" class="el-icon-sort"></i> {{product?product.productName:'请选择一个产品'}}</div></h4>
<h4 href="#"><div class="sm-text hidden-lg-and-up"><i style="font-size:16px;" class="el-icon-sort"></i> {{product?product.productName:'请选择一个产品'}}</div></h4>
</template> </template>
</xm-product-select> </xm-product-select>
@ -152,7 +152,7 @@
</el-row> </el-row>
</div> </div>
</el-col> </el-col>
<el-col :span="20" class="padding-left padding-right">
<el-col :xl="20" :lg="20" :md="19" :sm="19" :xs="19" class="padding-left padding-right">
<el-tabs :value="showPanel" @tab-click="tabClick"> <el-tabs :value="showPanel" @tab-click="tabClick">
<el-tab-pane <el-tab-pane
label="产品概览" label="产品概览"

128
src/views/xm/core/xmProduct/XmProductOverviewComplex.vue

@ -1,10 +1,14 @@
<template> <template>
<section class="page-container padding-left padding-right">
<section>
<el-row ref="pageBody"> <el-row ref="pageBody">
<el-col <el-col
:span="4" :span="4"
class="padding border" :style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }"
class="padding"
> >
<div class="border">
<el-row
ref="pageBody"
class="padding" :style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }">
<h4 class="padding-bottom">常用功能导航</h4> <h4 class="padding-bottom">常用功能导航</h4>
<el-steps <el-steps
:active="calcProductPstatusStep" :active="calcProductPstatusStep"
@ -182,56 +186,67 @@
</el-row> </el-row>
</el-step> </el-step>
</el-steps> </el-steps>
</el-row>
</div>
</el-col> </el-col>
<el-col :span="20">
<el-menu mode="horizontal" :default-active="showPanelName" @select="onMenuToolBarSelect">
<el-menu-item index="overview">
<span slot="title">产品概览</span>
</el-menu-item>
<el-menu-item index="detail">
<span slot="title">产品详情</span>
</el-menu-item>
<!--
<el-menu-item index="iterationProductLink">
<span slot="title">配置关联迭代</span>
</el-menu-item>
-->
<el-menu-item index="productProjectLink">
<span slot="title">配置关联项目</span>
</el-menu-item>
<el-menu-item index="productCalc">
<span slot="title">执行数据汇总计划</span>
</el-menu-item>
<el-col :span="20" class="padding-left padding-right">
<el-tabs :value="showPanelName" @tab-click="tabClick">
<el-tab-pane
label="产品概览"
name="overview"
v-if="xmProduct && xmProduct.id"
>
<xm-product-overview v-if="showPanelName=='overview' && xmProduct && xmProduct.id" :xm-product="xmProduct"></xm-product-overview>
<el-menu-item index="currFlow">
<span slot="title">当前审批流</span>
</el-menu-item>
<el-menu-item index="hisFlow">
<span slot="title">历史审批流</span>
</el-menu-item>
</el-menu>
<xm-product-overview v-if="showPanelName=='overview' && xmProduct && xmProduct.id" :xm-product="xmProduct"></xm-product-overview>
<xm-product-edit v-if="showPanelName=='detail'" :xm-product="xmProduct"></xm-product-edit>
<xm-iteration-link-for-product v-if="showPanelName=='iterationProductLink'" :xm-product="xmProduct"></xm-iteration-link-for-product>
<xm-product-project-link-mng v-if="showPanelName=='productProjectLink'" :xm-product="xmProduct"></xm-product-project-link-mng>
<div v-if="showPanelName=='productCalc'" class="padding">
<el-row>
<el-button type="primary" @click="loadTasksToXmProductState" v-loading="load.calcProduct">计算产品汇总数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务及产品任务中汇总进度预算工作量实际工作量预算金额实际金额缺陷数需求数等数据到产品统计表</font>
</el-row>
<el-row>
<el-button type="primary" @click="loadTasksToXmMenuState" v-loading="load.calcMenu">计算所有需求数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务汇总进度预算工作量实际工作量预算金额实际金额等数据到需求统计表</font>
</el-row>
</div>
<task-mng v-if="showPanelName === 'currFlow' " ref="currFlow" :biz-parent-pkid="xmProduct.id" > </task-mng>
<procinst-mng v-if="showPanelName === 'hisFlow' " ref="hisFlow" isAll="true" :biz-parent-pkid="xmProduct.id"></procinst-mng>
</el-col>
</el-tab-pane>
<el-tab-pane
label="产品详情"
name="detail"
v-if="xmProduct && xmProduct.id"
>
<xm-product-edit v-if="showPanelName=='detail'" :xm-product="xmProduct"></xm-product-edit>
</el-tab-pane>
<el-tab-pane
label="配置关联项目"
name="productProjectLink"
v-if="xmProduct && xmProduct.id"
>
<xm-product-project-link-mng v-if="showPanelName=='productProjectLink'" :xm-product="xmProduct"></xm-product-project-link-mng>
</el-tab-pane>
<el-tab-pane
label="执行数据汇总计划"
name="productCalc"
v-if="xmProduct && xmProduct.id"
>
<div v-if="showPanelName=='productCalc'" class="padding">
<el-row>
<el-button type="primary" @click="loadTasksToXmProductState" v-loading="load.calcProduct">计算产品汇总数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务及产品任务中汇总进度预算工作量实际工作量预算金额实际金额缺陷数需求数等数据到产品统计表</font>
</el-row>
<el-row>
<el-button type="primary" @click="loadTasksToXmMenuState" v-loading="load.calcMenu">计算所有需求数据</el-button>
<br>
<font color="blue" style="font-size:10px;">将从项目任务汇总进度预算工作量实际工作量预算金额实际金额等数据到需求统计表</font>
</el-row>
</div>
</el-tab-pane>
<el-tab-pane
label="当前审批流"
name="currFlow"
v-if="xmProduct && xmProduct.id"
>
<task-mng v-if="showPanelName === 'currFlow' " ref="currFlow" :biz-parent-pkid="xmProduct.id" > </task-mng>
</el-tab-pane>
<el-tab-pane
label="历史审批流"
name="hisFlow"
v-if="xmProduct && xmProduct.id"
>
<procinst-mng v-if="showPanelName === 'hisFlow' " ref="hisFlow" isAll="true" :biz-parent-pkid="xmProduct.id"></procinst-mng>
</el-tab-pane>
</el-tabs>
</el-col>
</el-row> </el-row>
</section> </section>
</template> </template>
@ -367,7 +382,18 @@ export default {
this.addProductVisible = true; this.addProductVisible = true;
}); });
}, },
tabClick(tab) {
if (this.xmProduct == null || !this.xmProduct.id) {
this.productVisible = true;
this.$notify({
position: "bottom-left",
showClose: true,
message: "请先选中左边产品",
type: "warning",
});
}
this.showPanelName = tab.name;
},
editXmProductSomeFields(row,fieldName,$event){ editXmProductSomeFields(row,fieldName,$event){
var func=(params)=>{ var func=(params)=>{

223
src/views/xm/core/xmProject/XmProjectForLinkComplex.vue

@ -1,116 +1,123 @@
<template> <template>
<section> <section>
<el-row> <el-row>
<el-col :span="4" class="padding-left">
<el-row v-if=" (xmProduct&&xmProduct.id) || (xmIteration && xmIteration.id)">
<xm-project-select
ref="xmProjectSelect"
:auto-select="true"
:link-iteration-id="xmIteration ? xmIteration.id : null"
:link-product-id="xmProduct ? xmProduct.id : null"
@row-click="onProjectRowClick"
@clear="onProjectClearSelect"
></xm-project-select>
</el-row>
<el-row
ref="pageBody"
class="padding"
:class="{border:selProject&&selProject.id}"
:style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }"
<el-col :xl="4" :lg="4" :md="5" :sm="5" :xs="5" class="padding">
<div class="border">
<el-row v-if=" (xmProduct&&xmProduct.id) || (xmIteration && xmIteration.id)">
<xm-project-select
ref="xmProjectSelect"
:auto-select="true"
:link-iteration-id="xmIteration ? xmIteration.id : null"
:link-product-id="xmProduct ? xmProduct.id : null"
@row-click="onProjectRowClick"
@clear="onProjectClearSelect"
>
<template v-slot:title="{project}">
<h4 href="#"><div class="lg-text hidden-md-and-down"><i style="font-size:16px;" class="el-icon-sort"></i> {{project?project.name:'请选择一个项目'}}</div></h4>
<h4 href="#"><div class="sm-text hidden-lg-and-up"><i style="font-size:16px;" class="el-icon-sort"></i> {{project?project.name:'请选择一个项目'}}</div></h4>
</template>
</xm-project-select>
</el-row>
<el-row
ref="pageBody"
class="padding"
:style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }"
>
<el-steps :active="calcProjectStatusStep" finish-status="success" direction="vertical" v-if="selProject">
<el-step
v-for="(i, index) in dicts['projectStatus']"
:title="i.name"
:key="index"
> >
<h4 class="padding-bottom" v-if="selProject">常用功能快捷导航</h4>
<el-steps :active="calcProjectStatusStep" finish-status="success" direction="vertical" v-if="selProject">
<el-step
v-for="(i, index) in dicts['projectStatus']"
:title="i.name"
:key="index"
>
<el-row slot="description">
<el-row v-if="i.id=='0'"><!--初始-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="editXmProjectSomeFields(selProject,'status','1')">进入售前</el-button>
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='1'"><!--售前-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="showMenusPage">需求管理</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','2')">设为立项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" plain @click="showMenusPage">需求管理</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='2'"><!--立项中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='group'">创建团队</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='plan'">创建计划</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectGaiSuan()">项目估算</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectShouYi()">项目收益</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','3')">设为立项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='group'">团队管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='plan'">计划管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectGaiSuan()">项目估算</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectShouYi()">项目收益</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='3'"><!--实施中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='tasks'">任务管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='bugs'">缺陷管理</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','4')">暂停项目</el-button>
<el-button class="step-btn" type="warning" plain @click="projectChangeRequire()">变更申请</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','5')">设为结项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='tasks'">任务管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='bugs'">缺陷管理</el-button>
<el-button v-if="selProject.status<i.id" class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','5')">结项申请</el-button>
<el-button class="step-btn" type="warning" plain @click="projectChangeRequire()">变更申请</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='4'"><!--暂停中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','3')">重新激活</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='5'"><!--结项中-->
<span v-if="selProject.status==i.id">
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='6'"><!--已结项-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','7')">转入售后</el-button>
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='7'"><!--售后-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','8')">设为已完成</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='8'"><!--已完成-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','9')">关闭项目</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='9'"><!--已关闭-->
</el-row>
</el-row>
</el-step>
</el-steps>
</el-row>
<el-row slot="description">
<el-row v-if="i.id=='0'"><!--初始-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="editXmProjectSomeFields(selProject,'status','1')">进入售前</el-button>
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='1'"><!--售前-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="showMenusPage">需求管理</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','2')">设为立项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" plain @click="showMenusPage">需求管理</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='2'"><!--立项中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='group'">创建团队</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='plan'">创建计划</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectGaiSuan()">项目估算</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectShouYi()">项目收益</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','3')">设为立项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='group'">团队管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='plan'">计划管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectGaiSuan()">项目估算</el-button>
<el-button class="step-btn" type="warning" plain @click="showProjectShouYi()">项目收益</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='3'"><!--实施中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='tasks'">任务管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='bugs'">缺陷管理</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','4')">暂停项目</el-button>
<el-button class="step-btn" type="warning" plain @click="projectChangeRequire()">变更申请</el-button>
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','5')">设为结项中</el-button>
</span>
<span v-if="selProject.status!=i.id">
<el-button class="step-btn" type="warning" plain @click="showPanel='tasks'">任务管理</el-button>
<el-button class="step-btn" type="warning" plain @click="showPanel='bugs'">缺陷管理</el-button>
<el-button v-if="selProject.status<i.id" class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','5')">结项申请</el-button>
<el-button class="step-btn" type="warning" plain @click="projectChangeRequire()">变更申请</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='4'"><!--暂停中-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','3')">重新激活</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='5'"><!--结项中-->
<span v-if="selProject.status==i.id">
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='6'"><!--已结项-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','7')">转入售后</el-button>
</span>
<span v-if="selProject.status!=i.id">
</span>
</el-row>
<el-row v-else-if="i.id=='7'"><!--售后-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','8')">设为已完成</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='8'"><!--已完成-->
<span v-if="selProject.status==i.id">
<el-button class="step-btn" type="danger" icon="el-icon-d-caret" plain @click="editXmProjectSomeFields(selProject,'status','9')">关闭项目</el-button>
</span>
</el-row>
<el-row v-else-if="i.id=='9'"><!--已关闭-->
</el-row>
</el-row>
</el-step>
</el-steps>
</el-row>
</div>
</el-col> </el-col>
<el-col :span="20" class="padding-left padding-right">
<el-col :xl="20" :lg="20" :md="19" :sm="19" :xs="19" class="padding-left padding-right">
<el-tabs :value="showPanel" @tab-click="tabClick"> <el-tabs :value="showPanel" @tab-click="tabClick">
<el-tab-pane <el-tab-pane
label="项目概览" label="项目概览"

99
src/views/xm/core/xmProject/XmProjectOverviewComplex.vue

@ -1,8 +1,14 @@
<template> <template>
<section class="page-container padding-left padding-right">
<el-row ref="pageBody">
<el-col :span="4" class="padding border" :style="{height:maxTableHeight+'px',overflowY:'auto'}">
<h4 class="padding-bottom">常用功能快捷导航</h4>
<section>
<el-row>
<el-col :span="4" class="padding" >
<div class="border">
<el-row class="padding">
<h4 >常用功能快捷导航</h4>
</el-row>
<el-row
ref="pageBody"
class="padding" :style="{height:maxTableHeight+'px',overflowY:'auto'}">
<el-steps :active="calcProjectStatusStep" finish-status="success" direction="vertical"> <el-steps :active="calcProjectStatusStep" finish-status="success" direction="vertical">
<el-step <el-step
v-for="(i, index) in dicts['projectStatus']" v-for="(i, index) in dicts['projectStatus']"
@ -113,36 +119,41 @@
</el-row> </el-row>
</el-step> </el-step>
</el-steps> </el-steps>
</el-row>
</div>
</el-col> </el-col>
<el-col :span="20">
<el-menu mode="horizontal" :default-active="showPanelName" @select="onMenuToolBarSelect">
<el-menu-item index="overview">
<span slot="title">项目概览</span>
</el-menu-item>
<el-menu-item index="detail">
<span slot="title">项目详情</span>
</el-menu-item>
<el-menu-item index="productProjectLink">
<span slot="title">关联产品</span>
</el-menu-item>
<el-menu-item index="projectCalc">
<span slot="title">执行项目数据统计计划</span>
</el-menu-item>
<el-col :span="20" class="padding-left padding-right">
<el-tabs :value="showPanelName" @tab-click="tabClick">
<el-tab-pane
label="项目概览"
name="overview"
v-if="projectInfo && projectInfo.id"
>
<xm-project-overview v-if="showPanelName=='overview'" :sel-project="projectInfo"></xm-project-overview>
<el-menu-item index="currFlow">
<span slot="title">当前审批流</span>
</el-menu-item>
</el-tab-pane>
<el-tab-pane
label="项目详情"
name="detail"
v-if="projectInfo && projectInfo.id"
>
<xm-project-detail v-if="showPanelName=='detail'" :sel-project="projectInfo" @submit="afterEditSubmit" @edit-fields="onEditFields" ref="detail"></xm-project-detail>
<el-menu-item index="hisFlow">
<span slot="title">历史审批流</span>
</el-menu-item>
</el-menu>
<xm-project-overview v-if="showPanelName=='overview'" :sel-project="projectInfo"></xm-project-overview>
<xm-project-detail v-if="showPanelName=='detail'" :sel-project="projectInfo" @submit="afterEditSubmit" @edit-fields="onEditFields" ref="detail"></xm-project-detail>
<xm-product-project-link-mng v-if="showPanelName=='productProjectLink'" :sel-project="projectInfo"></xm-product-project-link-mng>
<xm-iteration-link-for-project v-if="showPanelName=='iterationProjectLink'" :sel-project="projectInfo"></xm-iteration-link-for-project>
<div v-if="showPanelName=='projectCalc'" class="padding">
</el-tab-pane>
<el-tab-pane
label="关联产品"
name="productProjectLink"
v-if="projectInfo && projectInfo.id"
>
<xm-product-project-link-mng v-if="showPanelName=='productProjectLink'" :sel-project="projectInfo"></xm-product-project-link-mng>
</el-tab-pane>
<el-tab-pane
label="执行项目数据统计计划"
name="projectCalc"
v-if="projectInfo && projectInfo.id"
>
<div v-if="showPanelName=='projectCalc'" class="padding">
<el-row> <el-row>
<el-button type="primary" @click="loadTasksToXmProjectState" v-loading="load.calcProject">计算项目预算数据</el-button> <el-button type="primary" @click="loadTasksToXmProjectState" v-loading="load.calcProject">计算项目预算数据</el-button>
<br> <br>
@ -154,9 +165,28 @@
<font color="blue" style="font-size:10px;">将从项目任务汇总结算数据项目统计表</font> <font color="blue" style="font-size:10px;">将从项目任务汇总结算数据项目统计表</font>
</el-row> </el-row>
</div> </div>
</el-tab-pane>
<el-tab-pane
label="当前审批流"
name="currFlow"
v-if="projectInfo && projectInfo.id"
>
<task-mng v-if="showPanelName === 'currFlow' " ref="currFlow" :biz-parent-pkid="projectInfo.id" @submit="afterFlowSubmit"> </task-mng>
</el-tab-pane>
<el-tab-pane
label="历史审批流"
name="hisFlow"
v-if="projectInfo && projectInfo.id"
>
<procinst-mng v-if="showPanelName === 'hisFlow' " ref="hisFlow" isAll="true" :biz-parent-pkid="projectInfo.id"></procinst-mng>
</el-tab-pane>
</el-tabs>
<xm-iteration-link-for-project v-if="showPanelName=='iterationProjectLink'" :sel-project="projectInfo"></xm-iteration-link-for-project>
<task-mng v-if="showPanelName === 'currFlow' " ref="currFlow" :biz-parent-pkid="projectInfo.id" @submit="afterFlowSubmit"> </task-mng>
<procinst-mng v-if="showPanelName === 'hisFlow' " ref="hisFlow" isAll="true" :biz-parent-pkid="projectInfo.id"></procinst-mng>
</el-col> </el-col>
</el-row> </el-row>
</section> </section>
@ -325,6 +355,9 @@ export default {
params[fieldName]=$event params[fieldName]=$event
func(params) func(params)
}, },
tabClick(tab) {
this.showPanelName = tab.name;
},
}, },
mounted() { mounted() {

2
src/views/xm/rpt/iteration/burnout.vue

@ -10,7 +10,7 @@
</div> </div>
</el-col> </el-col>
<el-col :span="6" class="border"> <el-col :span="6" class="border">
<el-form :model="filters" label-position="top" class="padding">
<el-form :model="filters" class="padding" :style="{width:'100%',maxHeight:maxTableHeight+'px',overflow: 'auto'}" ref="filtersRef">
<el-form-item label="归属产品" > <el-form-item label="归属产品" >
<xm-product-select v-if="!xmProductCpd || !xmProductCpd.id" ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select> <xm-product-select v-if="!xmProductCpd || !xmProductCpd.id" ref="xmProductSelect" style="display:inline;" :auto-select="false" :link-project-id="xmProject?xmProject.id:null" @row-click="onProductSelected" :iterationId="xmIteration?xmIteration.id:null" @clear="onProductClear"></xm-product-select>
<span v-else>{{xmProductCpd.id}} <span v-if="xmProductCpd.productName"><br/>{{ xmProductCpd.productName }} </span> </span> <span v-else>{{xmProductCpd.id}} <span v-if="xmProductCpd.productName"><br/>{{ xmProductCpd.productName }} </span> </span>

Loading…
Cancel
Save