Browse Source

产品统计

master
陈裕财 4 years ago
parent
commit
fda0f74d0b
  1. 11
      src/views/xm/core/components/XmIterationSelect.vue
  2. 12
      src/views/xm/core/components/XmProductSelect.vue
  3. 11
      src/views/xm/core/components/XmProjectSelect.vue
  4. 3
      src/views/xm/core/xmIteration/XmIterationForLinkComplex.vue
  5. 44
      src/views/xm/core/xmProduct/XmProductForLinkComplex.vue

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

@ -299,7 +299,16 @@
this.hadInit=true; this.hadInit=true;
} }
this.iterationVisible=!this.iterationVisible; this.iterationVisible=!this.iterationVisible;
}
},
reloadOne(){
listXmIterationWithState({id:this.editForm.id}).then((res) => {
var tips = res.data.tips;
if(tips.isOk && rea.data.data && res.data.data.length>0){
Object.assign(this.editForm,res.data.data[0])
this.rowClick(this.editForm)
}
})
},
},//end methods },//end methods
components: { components: {
// //

12
src/views/xm/core/components/XmProductSelect.vue

@ -330,7 +330,17 @@
this.hadInit=true; this.hadInit=true;
} }
this.productVisible=!this.productVisible; this.productVisible=!this.productVisible;
}
},
reloadOne(){
listXmProductWithState({id:this.editForm.id}).then((res) => {
var tips = res.data.tips;
if(tips.isOk && rea.data.data && res.data.data.length>0){
Object.assign(this.editForm,res.data.data[0])
this.rowClick(this.editForm)
}
})
},
},//end methods },//end methods
components: { components: {
UsersSelect, UsersSelect,

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

@ -334,7 +334,16 @@
this.hadInit=true; this.hadInit=true;
} }
this.projectVisible=!this.projectVisible; this.projectVisible=!this.projectVisible;
}
},
reloadOne(){
listXmProject({id:this.editForm.id}).then((res) => {
var tips = res.data.tips;
if(tips.isOk && rea.data.data && res.data.data.length>0){
Object.assign(this.editForm,res.data.data[0])
this.rowClick(this.editForm)
}
})
},
},//end methods },//end methods
components: { components: {
UsersSelect, UsersSelect,

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

@ -117,6 +117,9 @@
loadTasksToXmIterationState({id:this.xmIteration.id}).then(res=>{ loadTasksToXmIterationState({id:this.xmIteration.id}).then(res=>{
this.load.calcIteration=false; this.load.calcIteration=false;
var tips =res.data.tips; var tips =res.data.tips;
if(this.$refs['xmIterationSelect']){
this.$refs['xmIterationSelect'].reloadOne();
}
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'}); this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error'});
}); });
}, },

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

@ -23,6 +23,21 @@
<el-tab-pane label="产品概览" name="productOverview" v-if="xmProduct && xmProduct.id"> <el-tab-pane label="产品概览" name="productOverview" v-if="xmProduct && xmProduct.id">
<xm-product-overview v-if="xmProduct && showPanel=='productOverview'" :xm-product="xmProduct" :sel-project="selProject"></xm-product-overview> <xm-product-overview v-if="xmProduct && showPanel=='productOverview'" :xm-product="xmProduct" :sel-project="selProject"></xm-product-overview>
</el-tab-pane>
<el-tab-pane label="执行统计" name="productCalc" v-if="xmProduct && xmProduct.id">
<div v-if="showPanel=='productCalc'" class="padding-left padding-right">
<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>
@ -75,6 +90,8 @@ import XmProductOverview from "./XmProductOverview";
import XmIterationLinkForProduct from '../xmIterationLink/XmIterationLinkForProduct.vue'; import XmIterationLinkForProduct from '../xmIterationLink/XmIterationLinkForProduct.vue';
import XmProductProjectLinkMng from '../xmProductProjectLink/XmProductProjectLinkMng.vue'; import XmProductProjectLinkMng from '../xmProductProjectLink/XmProductProjectLinkMng.vue';
import { loadTasksToXmProductState } from '@/api/xm/core/xmProductState';
import { loadTasksToXmMenuState} from '@/api/xm/core/xmMenuState';
import XmProductEdit from './XmProductEdit.vue'; import XmProductEdit from './XmProductEdit.vue';
import XmProductAdd from './XmProductAdd';// import XmProductAdd from './XmProductAdd';//
@ -93,6 +110,9 @@ import XmProductEdit from './XmProductEdit.vue';
}, },
data() { data() {
return{ return{
load:{
calcProduct:false,
},
xmProduct:null, xmProduct:null,
showPanel:'productOverview',//menus,tasks,bugs,iterationStateShow showPanel:'productOverview',//menus,tasks,bugs,iterationStateShow
productVisible:true, productVisible:true,
@ -101,6 +121,30 @@ import XmProductEdit from './XmProductEdit.vue';
} }
},//end data },//end data
methods: { methods: {
loadTasksToXmProductState: function () {
this.load.calcProduct=true;
let params = { productId: this.xmProduct.id };
loadTasksToXmProductState(params).then((res) => {
this.load.calcProduct=false;
var tips=res.data.tips;
if(this.$refs['xmProductSelect']){
this.$refs['xmProductSelect'].reloadOne()
}
this.$notify({position:'bottom-left',showClose:true,message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err => this.load.calcProduct=false );
},
loadTasksToXmMenuState: function () {
this.load.calcMenu=true;
let params = { productId: this.xmProduct.id };
loadTasksToXmMenuState(params).then((res) => {
this.load.calcMenu=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.calcMenu=false );
},
/**end 自定义函数请在上面加**/ /**end 自定义函数请在上面加**/
onProductRowClick(xmProduct){ onProductRowClick(xmProduct){

Loading…
Cancel
Save