|
|
@ -26,6 +26,21 @@ |
|
|
<el-tab-pane label="项目概览" name="projectOverview" v-if="selProject&&selProject.id"> |
|
|
<el-tab-pane label="项目概览" name="projectOverview" v-if="selProject&&selProject.id"> |
|
|
<xm-project-overview v-if="selProject && showPanel=='projectOverview'" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject"></xm-project-overview> |
|
|
<xm-project-overview v-if="selProject && showPanel=='projectOverview'" :xm-product="xmProduct" :xm-iteration="xmIteration" :sel-project="selProject"></xm-project-overview> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
|
|
|
<el-tab-pane label="执行统计" name="projectCalc" v-if="selProject&&selProject.id"> |
|
|
|
|
|
|
|
|
|
|
|
<div v-if="showPanel=='projectCalc'"> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-button type="primary" @click="loadTasksToXmProjectState" v-loading="load.calcProject">计算项目预算数据</el-button> |
|
|
|
|
|
<br> |
|
|
|
|
|
<font color="blue" style="font-size:10px;">将从项目任务中汇总进度、预算工作量、实际工作量、预算金额、实际金额、缺陷数、需求数等数据到项目统计表</font> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
<el-row> |
|
|
|
|
|
<el-button type="primary" @click="loadTasksSettleToXmProjectState" v-loading="load.calcSettle">计算项目结算数据</el-button> |
|
|
|
|
|
<br> |
|
|
|
|
|
<font color="blue" style="font-size:10px;">将从项目任务汇总结算数据项目统计表</font> |
|
|
|
|
|
</el-row> |
|
|
|
|
|
</div> |
|
|
|
|
|
</el-tab-pane> |
|
|
<el-tab-pane label="项目详情" name="detail" v-if="selProject&&selProject.id"> |
|
|
<el-tab-pane label="项目详情" name="detail" v-if="selProject&&selProject.id"> |
|
|
<xm-project-detail v-if="showPanel=='detail'" :sel-project="selProject" @submit="afterEditSubmit"></xm-project-detail> |
|
|
<xm-project-detail v-if="showPanel=='detail'" :sel-project="selProject" @submit="afterEditSubmit"></xm-project-detail> |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
@ -85,6 +100,8 @@ import XmProjectOverview from "./XmProjectOverview"; |
|
|
import XmProductProjectLinkMng from '../xmProductProjectLink/XmProductProjectLinkMng.vue'; |
|
|
import XmProductProjectLinkMng from '../xmProductProjectLink/XmProductProjectLinkMng.vue'; |
|
|
import XmIterationLinkForProject from '../xmIterationLink/XmIterationLinkForProject.vue'; |
|
|
import XmIterationLinkForProject from '../xmIterationLink/XmIterationLinkForProject.vue'; |
|
|
import XmPlan from '../xmTask/XmPlan.vue'; |
|
|
import XmPlan from '../xmTask/XmPlan.vue'; |
|
|
|
|
|
|
|
|
|
|
|
import { loadTasksToXmProjectState , loadTasksSettleToXmProjectState} from '@/api/xm/core/xmProjectState'; |
|
|
export default { |
|
|
export default { |
|
|
computed: { |
|
|
computed: { |
|
|
...mapGetters([ |
|
|
...mapGetters([ |
|
|
@ -100,6 +117,9 @@ import XmPlan from '../xmTask/XmPlan.vue'; |
|
|
}, |
|
|
}, |
|
|
data() { |
|
|
data() { |
|
|
return{ |
|
|
return{ |
|
|
|
|
|
load:{ |
|
|
|
|
|
calcProject:false, |
|
|
|
|
|
}, |
|
|
selProject:null, |
|
|
selProject:null, |
|
|
showPanel:'projectOverview',//menus,tasks,bugs,iterationStateShow |
|
|
showPanel:'projectOverview',//menus,tasks,bugs,iterationStateShow |
|
|
projectAddVisible:false, |
|
|
projectAddVisible:false, |
|
|
@ -126,7 +146,29 @@ import XmPlan from '../xmTask/XmPlan.vue'; |
|
|
this.$refs.xmProjectSelect.xmProjects.push(project) |
|
|
this.$refs.xmProjectSelect.xmProjects.push(project) |
|
|
this.$refs.xmProjectSelect.rowClick(project); |
|
|
this.$refs.xmProjectSelect.rowClick(project); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
loadTasksToXmProjectState(){ |
|
|
|
|
|
var row=this.selProject; |
|
|
|
|
|
var params={projectId:row.id} |
|
|
|
|
|
loadTasksToXmProjectState(params).then((res) => { |
|
|
|
|
|
this.load.calcProject=false; |
|
|
|
|
|
var tips=res.data.tips; |
|
|
|
|
|
if(this.$refs['xmProjectSelect']){ |
|
|
|
|
|
this.$refs['xmProjectSelect'].reloadOne(); |
|
|
|
|
|
} |
|
|
|
|
|
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'}); |
|
|
|
|
|
}).catch( err => this.load.calcProject=false ); |
|
|
|
|
|
}, |
|
|
|
|
|
loadTasksSettleToXmProjectState(){ |
|
|
|
|
|
var row=this.selProject; |
|
|
|
|
|
var params={projectId:row.id} |
|
|
|
|
|
loadTasksSettleToXmProjectState(params).then((res) => { |
|
|
|
|
|
this.load.calcProject=false; |
|
|
|
|
|
var tips=res.data.tips; |
|
|
|
|
|
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'}); |
|
|
|
|
|
}).catch( err => this.load.calcProject=false ); |
|
|
|
|
|
}, |
|
|
},//end methods |
|
|
},//end methods |
|
|
components: { |
|
|
components: { |
|
|
//在下面添加其它组件 |
|
|
//在下面添加其它组件 |
|
|
|