Browse Source

优化

master
陈裕财 5 years ago
parent
commit
2c5a75524c
  1. 4
      src/views/xm/core/xmIterationProductLink/XmIterationProductLinkMng.vue
  2. 4
      src/views/xm/core/xmProduct/XmProductEdit.vue
  3. 6
      src/views/xm/core/xmProduct/XmProductInfo.vue
  4. 4
      src/views/xm/core/xmProductProjectLink/XmProductProjectLinkMng.vue
  5. 20
      src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue
  6. 3
      src/views/xm/core/xmProjectGroupFormwork/XmProjectGroupFormwork.vue
  7. 23
      src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue

4
src/views/xm/core/xmIterationProductLink/XmIterationProductLinkMng.vue

@ -1,8 +1,8 @@
<template> <template>
<section class="app-container"> <section class="app-container">
<el-row> <el-row>
<el-button v-if="xmIteration" @click="productVisible=true" icon="el-icon-plus" > 选择更多产品加入迭代 </el-button>
<el-button v-if="xmProduct" @click="iterationVisible=true" icon="el-icon-plus" > 选择更多迭代加入产品 </el-button>
<el-button type="primary" v-if="xmIteration" @click="productVisible=true" icon="el-icon-plus" > 选择更多产品加入迭代 </el-button>
<el-button type="primary" v-if="xmProduct" @click="iterationVisible=true" icon="el-icon-plus" > 选择更多迭代加入产品 </el-button>
</el-row> </el-row>
<el-row style="padding-top:10px;"> <el-row style="padding-top:10px;">
<!--列表 XmIterationProductLink 迭代表与产品表的关联关系一般由迭代管理员将迭代挂接到产品表--> <!--列表 XmIterationProductLink 迭代表与产品表的关联关系一般由迭代管理员将迭代挂接到产品表-->

4
src/views/xm/core/xmProduct/XmProductEdit.vue

@ -1,6 +1,6 @@
<template> <template>
<section class="page-container page-full-height padding border">
<el-row class="page-main page-height-80">
<section class="page-container padding border">
<el-row class="page-main">
<!--新增界面 XmProduct 产品表--> <!--新增界面 XmProduct 产品表-->
<el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm"> <el-form :model="editForm" label-width="120px" :rules="editFormRules" ref="editForm">
<el-form-item label="产品编号" prop="id"> <el-form-item label="产品编号" prop="id">

6
src/views/xm/core/xmProduct/XmProductInfo.vue

@ -21,18 +21,12 @@
</el-menu-item> </el-menu-item>
<el-menu-item label="故事" index="用户故事"> <el-menu-item label="故事" index="用户故事">
<span slot="title"><i class="el-icon-document"></i>故事</span> <span slot="title"><i class="el-icon-document"></i>故事</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="任务"> <el-menu-item index="任务">
<span slot="title"><i class="el-icon-s-operation"></i>任务</span> <span slot="title"><i class="el-icon-s-operation"></i>任务</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="缺陷"> <el-menu-item index="缺陷">
<span slot="title"><i class="el-icon-question"></i>缺陷</span> <span slot="title"><i class="el-icon-question"></i>缺陷</span>
</el-menu-item> </el-menu-item>
<el-menu-item index="团队"> <el-menu-item index="团队">
<span slot="title"><i class="el-icon-user-solid"></i>团队</span> <span slot="title"><i class="el-icon-user-solid"></i>团队</span>

4
src/views/xm/core/xmProductProjectLink/XmProductProjectLinkMng.vue

@ -1,8 +1,8 @@
<template> <template>
<section class="app-container"> <section class="app-container">
<el-row> <el-row>
<el-button v-if="selProject" @click="productVisible=true" icon="el-icon-plus" > 选择更多产品加入项目 </el-button>
<el-button v-if="xmProduct" @click="projectVisible=true" icon="el-icon-plus" > 选择更多项目加入产品 </el-button>
<el-button type="primary" v-if="selProject" @click="productVisible=true" icon="el-icon-plus" > 选择更多产品加入项目 </el-button>
<el-button type="primary" v-if="xmProduct" @click="projectVisible=true" icon="el-icon-plus" > 选择更多项目加入产品 </el-button>
</el-row> </el-row>
<el-row style="padding-top:10px;"> <el-row style="padding-top:10px;">
<!--列表 XmProductProjectLink 产品与项目的关联关系表一般由产品经理挂接项目到产品上--> <!--列表 XmProductProjectLink 产品与项目的关联关系表一般由产品经理挂接项目到产品上-->

20
src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue

@ -21,10 +21,16 @@
'userInfo','roles' 'userInfo','roles'
]) ])
}, },
props: ["selProject" ,"isSelectSingleUser","isSelectMultiUser"],
props: ["selProject" ,"isSelectSingleUser","isSelectMultiUser",'xmProduct','xmIteration'],
watch:{ watch:{
selProject(){ selProject(){
this.getXmProjectGroup(); this.getXmProjectGroup();
},
xmProduct(){
this.getXmProjectGroup();
},
xmIteration(){
this.getXmProjectGroup();
} }
}, },
data() { data() {
@ -46,7 +52,7 @@
"id":i.id, "id":i.id,
"groupName": i.groupName, "groupName": i.groupName,
"groupUsers": i.groupUsers, "groupUsers": i.groupUsers,
"projectId": this.selProject.id,
"projectId": i.projectId,
"pgTypeName": i.pgTypeName, "pgTypeName": i.pgTypeName,
"pgTypeId": i.pgTypeId "pgTypeId": i.pgTypeId
}; };
@ -74,8 +80,16 @@
getXmProjectGroup() { getXmProjectGroup() {
this.load.list = true; this.load.list = true;
let params = { let params = {
projectId: this.selProject.id,
}; };
if(this.selProject){
params.projectId=this.selProject.id
}
if(this.xmIteration){
params.iterationId=this.xmIteration.id
}
if(this.xmProduct){
params.productId=this.xmProduct.id
}
getProjectGroup(params).then((res) => { getProjectGroup(params).then((res) => {
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){

3
src/views/xm/core/xmProjectGroupFormwork/XmProjectGroupFormwork.vue

@ -18,7 +18,7 @@
<el-row class="page-main page-height-80 padding" v-loading="load.list" v-if="!isSelectSingleUser && !isSelectMultiUser"> <el-row class="page-main page-height-80 padding" v-loading="load.list" v-if="!isSelectSingleUser && !isSelectMultiUser">
<el-row v-for="(item,index) in xmProjectGroupFormworkSels" :key="index"> <el-row v-for="(item,index) in xmProjectGroupFormworkSels" :key="index">
<h3> <h3>
<div>{{item.groupName + ":"}}<el-tag v-if="imGroupVisible==true && imGroups.some(g=>item.id==g.id) " type="success">已绑定</el-tag><el-tag type="danger" v-else-if="imGroupVisible==true " @click="doCreateImGroup(item)">未绑我去绑定</el-tag>
<div><el-tooltip :content="'归属项目组【'+item.projectId+'】'"><font>{{item.groupName + ":"}}</font></el-tooltip><el-tag v-if="imGroupVisible==true && imGroups.some(g=>item.id==g.id) " type="success"></el-tag><el-tag type="danger" v-else-if="imGroupVisible==true " @click="doCreateImGroup(item)"></el-tag>
<i class="el-icon-close closeStyle" @click.stop="delGroup(item,index)"></i> <i class="el-icon-close closeStyle" @click.stop="delGroup(item,index)"></i>
</div> </div>
</h3> </h3>
@ -216,7 +216,6 @@
} }
}, },
}, },
data() { data() {

23
src/views/xm/core/xmProjectPhase/XmProjectPhaseMng.vue

@ -5,6 +5,7 @@
<el-button @click="batchEditVisible=true" v-loading="load.edit" icon="el-icon-edit">批量修改</el-button> <el-button @click="batchEditVisible=true" v-loading="load.edit" icon="el-icon-edit">批量修改</el-button>
<span v-if="batchEditVisible!=true" > <span v-if="batchEditVisible!=true" >
<el-checkbox v-model="gstcVisible" >甘特图</el-checkbox> <el-checkbox v-model="gstcVisible" >甘特图</el-checkbox>
<el-checkbox v-model="filters.milestone" true-label="1" false-label="" >里程碑</el-checkbox>
<el-input v-model="filters.key" style="width:200px;" placeholder="模糊查询"> <el-input v-model="filters.key" style="width:200px;" placeholder="模糊查询">
<template slot="append"> <template slot="append">
<el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhases" icon="el-icon-search"></el-button> <el-button type="primary" v-loading="load.list" :disabled="load.list==true" v-on:click="searchXmProjectPhases" icon="el-icon-search"></el-button>
@ -58,7 +59,7 @@
</el-popover> </el-popover>
</el-row> </el-row>
<el-row class="padding-top hidden-md-and-down" v-show="batchEditVisible==false">
<el-row class="padding-top hidden-md-and-down" v-if="batchEditVisible==false && !xmIteration && !xmProduct">
<span style="margin-left:10px;font-size:14px;">项目总预算</span><el-tag type='success'> {{toFixed(selProject.planTotalCost/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanCostAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">项目总预算</span><el-tag type='success'> {{toFixed(selProject.planTotalCost/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanCostAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanNouserAt>0?'warning':'danger'">{{toFixed(selProject.planNouserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanNouserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanNouserAt>0?'warning':'danger'">{{toFixed(selProject.planNouserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanNouserAt/10000,2)}}</el-tag>
<span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanInnerUserAt>0?'warning':'danger'">{{toFixed(selProject.planInnerUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanInnerUserAt/10000,2)}}</el-tag> <span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag :type="phaseBudgetData.surplusPlanInnerUserAt>0?'warning':'danger'">{{toFixed(selProject.planInnerUserAt/10000,2)}}{{toFixed(phaseBudgetData.surplusPlanInnerUserAt/10000,2)}}</el-tag>
@ -176,7 +177,7 @@
<xm-project-phase-template-mng :is-select="true" :visible="phaseTemplateVisible" @cancel="phaseTemplateVisible=false" @selected-confirm="afterPhaseTemplateSelected" ></xm-project-phase-template-mng> <xm-project-phase-template-mng :is-select="true" :visible="phaseTemplateVisible" @cancel="phaseTemplateVisible=false" @selected-confirm="afterPhaseTemplateSelected" ></xm-project-phase-template-mng>
</el-drawer> </el-drawer>
<el-drawer :title="editForm==null?'操作日志':editForm.phaseName+'操作日志'" center :visible.sync="xmRecordVisible" size="50%" :close-on-click-modal="false" append-to-body> <el-drawer :title="editForm==null?'操作日志':editForm.phaseName+'操作日志'" center :visible.sync="xmRecordVisible" size="50%" :close-on-click-modal="false" append-to-body>
<xm-record :obj-type="'phase'" :visible="xmRecordVisible" :project-id="selProject.id" :obj-id="editForm.id" :simple="1"></xm-record>
<xm-record :obj-type="'phase'" :visible="xmRecordVisible" :project-id="selProject?selProject.id:null" :obj-id="editForm.id" :simple="1"></xm-record>
</el-drawer> </el-drawer>
<el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="80%" :close-on-click-modal="false"> <el-drawer append-to-body title="选择负责人" :visible.sync="groupUserSelectVisible" size="80%" :close-on-click-modal="false">
<xm-project-group-select :visible="groupUserSelectVisible" :sel-project="selProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select> <xm-project-group-select :visible="groupUserSelectVisible" :sel-project="selProject" :isSelectSingleUser="1" @user-confirm="groupUserSelectConfirm"></xm-project-group-select>
@ -231,6 +232,9 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
return projectPhaseTreeData; return projectPhaseTreeData;
}, },
phaseBudgetData(){ phaseBudgetData(){
if( this.xmIteration || this.xmProduct){
return {}
}
var rows=this.xmProjectPhases var rows=this.xmProjectPhases
var surplusPlanCostAt = this.getFloatValue(this.selProject.planInnerUserAt)+ this.getFloatValue(this.selProject.planOutUserAt)+ this.getFloatValue(this.selProject.planNouserAt) var surplusPlanCostAt = this.getFloatValue(this.selProject.planInnerUserAt)+ this.getFloatValue(this.selProject.planOutUserAt)+ this.getFloatValue(this.selProject.planNouserAt)
var surplusPlanInnerUserAt=this.getFloatValue(this.selProject.planInnerUserAt) var surplusPlanInnerUserAt=this.getFloatValue(this.selProject.planInnerUserAt)
@ -294,7 +298,7 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
} }
}, },
props:['selProject','xmIteration'],
props:['selProject','xmIteration','xmProduct'],
watch:{ watch:{
selProject:function(selProject,old){ selProject:function(selProject,old){
@ -309,13 +313,17 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
}, },
xmIteration(){ xmIteration(){
this.searchXmProjectPhases() this.searchXmProjectPhases()
},
xmProduct(){
this.searchXmProjectPhases()
} }
}, },
data() { data() {
return { return {
filters: { filters: {
key: ''
key: '',
milestone:''
}, },
xmProjectPhases: [],// xmProjectPhases: [],//
pageInfo:{// pageInfo:{//
@ -424,6 +432,13 @@ import XmProjectGroupSelect from '../xmProjectGroup/XmProjectGroupSelect.vue';
if(this.xmIteration){ if(this.xmIteration){
params.iterationId=this.xmIteration.id params.iterationId=this.xmIteration.id
} }
if(this.xmProduct){
params.productId=this.xmProduct.id
}
if(this.filters.milestone){
params.milestone=this.filters.milestone
}
this.load.list = true; this.load.list = true;
listXmProjectPhase(params).then((res) => { listXmProjectPhase(params).then((res) => {
var tips=res.data.tips; var tips=res.data.tips;

Loading…
Cancel
Save