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. 20
      src/views/xm/core/xmIteration/XmIterationForLinkComplex.vue
  4. 74
      src/views/xm/core/xmIteration/XmIterationOverviewComplex.vue
  5. 8
      src/views/xm/core/xmProduct/XmProductForLinkComplex.vue
  6. 94
      src/views/xm/core/xmProduct/XmProductOverviewComplex.vue
  7. 17
      src/views/xm/core/xmProject/XmProjectForLinkComplex.vue
  8. 91
      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>
<div slot="reference" @click="referenceClick">
<slot name="reference">
<slot name="reference" v-bind:iteration="editForm">
<span class="title">
<slot name="title">
<slot name="title" v-bind:iteration="editForm">
<el-link title="点击选中迭代" type="primary" icon="el-icon-connection">
<div class="lg-text hidden-md-and-down">
{{

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

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

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

@ -1,14 +1,17 @@
<template>
<section>
<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-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>
<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="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-row ref="pageBody" class="padding" :style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }">
<el-steps v-if="xmIteration&&xmIteration.id"
:active="calcIterationStatusStep"
finish-status="success"
@ -275,8 +278,9 @@
</el-step>
</el-steps>
</el-row>
</div>
</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-tab-pane label="迭代概览" lazy name="iterationOverview" v-if="xmIteration && xmIteration.id">
@ -479,7 +483,7 @@
this.$nextTick(() => {
initDicts(this)
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageMainRef.$el);
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageBody.$el);
});
}

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

@ -1,12 +1,18 @@
<template>
<section class="padding-left padding-right">
<el-row ref="pageMainRef">
<section>
<el-row>
<el-col
:span="4"
class="padding border"
class="padding"
: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
:active="calcIterationStatusStep"
finish-status="success"
@ -261,37 +267,32 @@
</el-row>
</el-step>
</el-steps>
</el-row>
</div>
</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>
<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>
<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>
</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>
@ -303,6 +304,8 @@
</font>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</el-col>
</el-row>
</section>
@ -346,7 +349,8 @@ export default {
return {
dicts:{iterationStatus:[]},
load:{calcIteration:false,},
showPanelName:'overview'
showPanelName:'overview',
maxTableHeight:300,
};
},
@ -400,12 +404,16 @@ export default {
}
}).catch((e)=>Object.assign(this.editForm,this.editFormBak))
},
tabClick(tab){
this.showPanelName=tab.name
},
},
mounted() {
initDicts(this)
this.$nextTick(() => {
this.maxTableHeight = util.calcTableMaxHeight(this.$refs.pageBody.$el);
});
initDicts(this)
},
};

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

@ -1,7 +1,7 @@
<template>
<section>
<el-row>
<el-col :span="4" class="padding-left">
<el-col :xl="4" :lg="4" :md="5" :sm="5" :xs="5" class="padding">
<div class="border">
<el-row>
<xm-product-select
@ -13,8 +13,8 @@
@clear="onProductClearSelect"
>
<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>
</xm-product-select>
@ -152,7 +152,7 @@
</el-row>
</div>
</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-tab-pane
label="产品概览"

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

@ -1,10 +1,14 @@
<template>
<section class="page-container padding-left padding-right">
<section>
<el-row ref="pageBody">
<el-col
: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>
<el-steps
:active="calcProductPstatusStep"
@ -182,41 +186,38 @@
</el-row>
</el-step>
</el-steps>
</el-row>
</div>
</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-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>
<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-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>
<xm-iteration-link-for-product v-if="showPanelName=='iterationProductLink'" :xm-product="xmProduct"></xm-iteration-link-for-product>
</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>
@ -229,8 +230,22 @@
<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>
</section>
@ -367,7 +382,18 @@ export default {
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){
var func=(params)=>{

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

@ -1,7 +1,8 @@
<template>
<section>
<el-row>
<el-col :span="4" class="padding-left">
<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"
@ -10,15 +11,19 @@
:link-product-id="xmProduct ? xmProduct.id : null"
@row-click="onProjectRowClick"
@clear="onProjectClearSelect"
></xm-project-select>
>
<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"
:class="{border:selProject&&selProject.id}"
:style="{ maxHeight: maxTableHeight + 'px', overflowY: 'auto' }"
>
<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']"
@ -109,8 +114,10 @@
</el-step>
</el-steps>
</el-row>
</div>
</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-tab-pane
label="项目概览"

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

@ -1,8 +1,14 @@
<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-step
v-for="(i, index) in dicts['projectStatus']"
@ -113,35 +119,40 @@
</el-row>
</el-step>
</el-steps>
</el-row>
</div>
</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-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>
<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-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-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>
<xm-iteration-link-for-project v-if="showPanelName=='iterationProjectLink'" :sel-project="projectInfo"></xm-iteration-link-for-project>
</el-tab-pane>
<el-tab-pane
label="执行项目数据统计计划"
name="projectCalc"
v-if="projectInfo && projectInfo.id"
>
<div v-if="showPanelName=='projectCalc'" class="padding">
<el-row>
<el-button type="primary" @click="loadTasksToXmProjectState" v-loading="load.calcProject">计算项目预算数据</el-button>
@ -154,9 +165,28 @@
<font color="blue" style="font-size:10px;">将从项目任务汇总结算数据项目统计表</font>
</el-row>
</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>
</el-col>
</el-row>
</section>
@ -325,6 +355,9 @@ export default {
params[fieldName]=$event
func(params)
},
tabClick(tab) {
this.showPanelName = tab.name;
},
},
mounted() {

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

@ -10,7 +10,7 @@
</div>
</el-col>
<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="归属产品" >
<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>

Loading…
Cancel
Save