Browse Source

优化

master
陈裕财 3 years ago
parent
commit
975fbb243d
  1. 5
      src/router/routes_xm.js
  2. 41
      src/views/xm/core/xmContract/XmContractForProject.vue
  3. 11
      src/views/xm/core/xmEnvList/XmEnvListMng.vue
  4. 61
      src/views/xm/core/xmProject/XmProjectBudgetCost.vue
  5. 19
      src/views/xm/core/xmProject/XmProjectCost.vue

5
src/router/routes_xm.js

@ -36,7 +36,8 @@ export default {
meta: { meta: {
title: '项目管理', title: '项目管理',
icon: 'project' icon: 'project'
},
},
hidden:true,
// leaf: true,//只有一个节点 // leaf: true,//只有一个节点
children: [ children: [
{ {
@ -140,7 +141,7 @@ export default {
}, },
{ {
path: 'contract', path: 'contract',
component: _import('xm/core/xmContract/XmContractMng'),
component: _import('xm/core/xmContract/XmContractForProject'),
name: 'projectContract', name: 'projectContract',
iconCls: 'fa el-icon-menu', iconCls: 'fa el-icon-menu',
meta: { meta: {

41
src/views/xm/core/xmContract/XmContractForProject.vue

@ -0,0 +1,41 @@
<template>
<section>
<xm-contract-mng :sel-project="projectInfo"></xm-contract-mng>
</section>
</template>
<script>
import { mapGetters } from 'vuex';
import XmContractMng from './XmContractMng.vue'
export default {
computed: {
...mapGetters([
'userInfo','roles','projectInfo'
]),
},
watch:{
},
data() {
return {
}
},//end data
methods: {
},//end methods
components: {
XmContractMng,
//
},
activated(){
},
mounted() {
}
}
</script>
<style scoped>
</style>

11
src/views/xm/core/xmEnvList/XmEnvListMng.vue

@ -43,7 +43,7 @@
<!--新增 XmEnvList xm_env_list界面--> <!--新增 XmEnvList xm_env_list界面-->
<el-dialog title="新增环境清单" :visible.sync="addFormVisible" width="80%" top="20px" append-to-body :close-on-click-modal="false"> <el-dialog title="新增环境清单" :visible.sync="addFormVisible" width="80%" top="20px" append-to-body :close-on-click-modal="false">
<xm-env-list-add :xm-project="selProject" :xm-product="xmProduct" :xm-env-list="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-env-list-add>
<xm-env-list-add :xm-project="projectInfo" :xm-product="xmProduct" :xm-env-list="addForm" :visible="addFormVisible" @cancel="addFormVisible=false" @submit="afterAddSubmit"></xm-env-list-add>
</el-dialog> </el-dialog>
</el-row> </el-row>
</section> </section>
@ -61,10 +61,9 @@
export default { export default {
computed: { computed: {
...mapGetters([ ...mapGetters([
'userInfo','roles'
'userInfo','roles','projectInfo','xmProduct'
]) ])
},
props:['selProject','xmProduct'],
},
data() { data() {
return { return {
filters: { filters: {
@ -160,8 +159,8 @@
params.fuzzy = '%'+this.filters.key+'%'; params.fuzzy = '%'+this.filters.key+'%';
//params.xxx=this.filters.key //params.xxx=this.filters.key
} }
if(this.selProject && this.selProject.id){
params.projectId=this.selProject.id
if(this.projectInfo && this.projectInfo.id){
params.projectId=this.projectInfo.id
} }
if(this.xmProduct && this.xmProduct.id){ if(this.xmProduct && this.xmProduct.id){

61
src/views/xm/core/xmProject/XmProjectBudgetCost.vue

@ -6,10 +6,10 @@
<el-radio-button label="预算清单"></el-radio-button> <el-radio-button label="预算清单"></el-radio-button>
<el-radio-button label="预算统计"></el-radio-button> <el-radio-button label="预算统计"></el-radio-button>
</el-radio-group> </el-radio-group>
<span style="margin-left:10px;font-size:14px;">项目总预算</span> <el-tag type="success">{{selProjectBudget.planTotalCost}}</el-tag>
<span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag>{{selProjectBudget.planNouserAt}}</el-tag>
<span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag>{{selProjectBudget.planIuserAt}}</el-tag>
<span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag>{{selProjectBudget.planOuserAt}}</el-tag>
<span style="margin-left:10px;font-size:14px;">项目总预算</span> <el-tag type="success">{{projectInfoBudget.planTotalCost}}</el-tag>
<span style="margin-left:10px;font-size:14px;">非人力总预算</span><el-tag>{{projectInfoBudget.planNouserAt}}</el-tag>
<span style="margin-left:10px;font-size:14px;">内部人力总预算</span><el-tag>{{projectInfoBudget.planIuserAt}}</el-tag>
<span style="margin-left:10px;font-size:14px;">外购人力总预算</span><el-tag>{{projectInfoBudget.planOuserAt}}</el-tag>
</div> </div>
<div class="title-bar"> <div class="title-bar">
<el-radio-group v-model="showType" size="medium"> <el-radio-group v-model="showType" size="medium">
@ -88,14 +88,14 @@
</div> </div>
<div v-else> <div v-else>
<xm-budget-labor v-if="showType == '人力'" :sel-project="selProject"></xm-budget-labor>
<xm-budget-nlabor v-else :sel-project="selProject"></xm-budget-nlabor>
<xm-budget-labor v-if="showType == '人力'" :sel-project="projectInfo"></xm-budget-labor>
<xm-budget-nlabor v-else :sel-project="projectInfo"></xm-budget-nlabor>
</div> </div>
<el-drawer title="查看人力预算明细" :visible.sync="xmBudgetLaborVisible" fullscreen append-to-body :close-on-click-modal="false"> <el-drawer title="查看人力预算明细" :visible.sync="xmBudgetLaborVisible" fullscreen append-to-body :close-on-click-modal="false">
<xm-budget-labor :xm-budget-labor="xmBudgetLabor" :visible="xmBudgetLaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-budget-labor>
<xm-budget-labor :xm-budget-labor="xmBudgetLabor" :visible="xmBudgetLaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="projectInfo"></xm-budget-labor>
</el-drawer> </el-drawer>
<el-drawer title="查看非人力预算明细" :visible.sync="xmBudgetNlaborVisible" fullscreen append-to-body :close-on-click-modal="false"> <el-drawer title="查看非人力预算明细" :visible.sync="xmBudgetNlaborVisible" fullscreen append-to-body :close-on-click-modal="false">
<xm-budget-nlabor :xm-budget-nlabor="xmBudgetNlabor" :visible="xmBudgetNlaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-budget-nlabor>
<xm-budget-nlabor :xm-budget-nlabor="xmBudgetNlabor" :visible="xmBudgetNlaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="projectInfo"></xm-budget-nlabor>
</el-drawer> </el-drawer>
</el-row> </el-row>
</section> </section>
@ -112,11 +112,10 @@
import xmBudgetLabor from '../xmBudgetLabor/XmBudgetLaborMng'; import xmBudgetLabor from '../xmBudgetLabor/XmBudgetLaborMng';
import xmBudgetNlabor from '../xmBudgetNlabor/XmBudgetNlaborMng'; import xmBudgetNlabor from '../xmBudgetNlabor/XmBudgetNlaborMng';
export default {
props: ["selProject"],
export default {
computed: { computed: {
...mapGetters([ ...mapGetters([
'userInfo','roles'
'userInfo','roles','projectInfo'
]), ]),
selYearMonths:function(){ selYearMonths:function(){
var selYear=this.selYear; var selYear=this.selYear;
@ -187,8 +186,8 @@
this.listSumXmBudgetNlabor(); this.listSumXmBudgetNlabor();
} }
}, },
'selProject': function(selProject){
this.selProjectBudget=Object.assign({},this.selProject);
'projectInfo': function(projectInfo){
this.projectInfoBudget=Object.assign({},this.projectInfo);
} }
}, },
data() { data() {
@ -206,7 +205,7 @@
showType: "", showType: "",
xmBudgetLabors: [], xmBudgetLabors: [],
xmBudgetNlabors: [], xmBudgetNlabors: [],
selProjectBudget:{},
projectInfoBudget:{},
sumXmBudgetLabors:[], sumXmBudgetLabors:[],
xmBudgetLabor:null, xmBudgetLabor:null,
fieldName:'', fieldName:'',
@ -227,7 +226,7 @@
listSumXmBudgetLabor:function(){ listSumXmBudgetLabor:function(){
var parmas={ var parmas={
projectId:this.selProject.id,
projectId:this.projectInfo.id,
} }
listSumXmBudgetLabor(parmas).then(res=>{ listSumXmBudgetLabor(parmas).then(res=>{
this.sumXmBudgetLabors=res.data.data; this.sumXmBudgetLabors=res.data.data;
@ -236,7 +235,7 @@
listSumXmBudgetNlabor:function(){ listSumXmBudgetNlabor:function(){
var parmas={ var parmas={
projectId:this.selProject.id,
projectId:this.projectInfo.id,
} }
listSumXmBudgetNlabor(parmas).then(res=>{ listSumXmBudgetNlabor(parmas).then(res=>{
this.sumXmBudgetNlabors=res.data.data; this.sumXmBudgetNlabors=res.data.data;
@ -256,38 +255,38 @@
}, },
/**begin 自定义函数请在下面加**/ /**begin 自定义函数请在下面加**/
// inputChange() { // inputChange() {
// this.selProject.planTotalCost = this.selProject.planTotalCost.replace(/[^\d.]/g,"").replace(/^\./g,"").replace(/\.{1,}/g,".");
// this.projectInfo.planTotalCost = this.projectInfo.planTotalCost.replace(/[^\d.]/g,"").replace(/^\./g,"").replace(/\.{1,}/g,".");
// }, // },
updateBudget() { updateBudget() {
if(this.selProject.planTotalCost==undefined){
if(this.projectInfo.planTotalCost==undefined){
this.$notify({position:'bottom-left',showClose:true,message:"不允许修改", type: 'success'}); this.$notify({position:'bottom-left',showClose:true,message:"不允许修改", type: 'success'});
return; return;
} }
var planTotalCost=this.getFloatValue(this.selProjectBudget.planTotalCost)
var planIuserAt=this.getFloatValue(this.selProjectBudget.planIuserAt)
var planOuserAt=this.getFloatValue(this.selProjectBudget.planOuserAt)
var planNouserAt=this.getFloatValue(this.selProjectBudget.planNouserAt)
this.selProjectBudget.planTotalCost=planIuserAt+planOuserAt+planNouserAt
var planTotalCost=this.getFloatValue(this.projectInfoBudget.planTotalCost)
var planIuserAt=this.getFloatValue(this.projectInfoBudget.planIuserAt)
var planOuserAt=this.getFloatValue(this.projectInfoBudget.planOuserAt)
var planNouserAt=this.getFloatValue(this.projectInfoBudget.planNouserAt)
this.projectInfoBudget.planTotalCost=planIuserAt+planOuserAt+planNouserAt
this.$confirm('确定修改项目总预算吗?', '提示', { this.$confirm('确定修改项目总预算吗?', '提示', {
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
this.load.edit = true; this.load.edit = true;
let params = this.selProjectBudget
let params = this.projectInfoBudget
editBudget(params).then((res) => { editBudget(params).then((res) => {
var tips=res.data.tips; var tips=res.data.tips;
if(tips.isOk){ if(tips.isOk){
this.selProject.planTotalCost=this.selProjectBudget.planTotalCost
this.selProject.planIuserAt=this.selProjectBudget.planIuserAt
this.selProject.planOuserAt=this.selProjectBudget.planOuserAt
this.selProject.planNouserAt=this.selProjectBudget.planNouserAt
this.projectInfo.planTotalCost=this.projectInfoBudget.planTotalCost
this.projectInfo.planIuserAt=this.projectInfoBudget.planIuserAt
this.projectInfo.planOuserAt=this.projectInfoBudget.planOuserAt
this.projectInfo.planNouserAt=this.projectInfoBudget.planNouserAt
}else{ }else{
this.selProjectBudget=Object.assign({},this.selProject)
this.projectInfoBudget=Object.assign({},this.projectInfo)
} }
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' });
this.load.edit = false; this.load.edit = false;
}).catch( err => this.load.edut = false ); }).catch( err => this.load.edut = false );
}).catch(() => { }).catch(() => {
this.selProjectBudget=Object.assign({},this.selProject)
this.projectInfoBudget=Object.assign({},this.projectInfo)
}); });
}, },
@ -309,7 +308,7 @@
this.$nextTick(() => { this.$nextTick(() => {
this.tableHeight = util.calcTableMaxHeight(this.$refs.table.$el); this.tableHeight = util.calcTableMaxHeight(this.$refs.table.$el);
}); });
this.selProjectBudget=Object.assign({},this.selProject);
this.projectInfoBudget=Object.assign({},this.projectInfo);
} }
} }

19
src/views/xm/core/xmProject/XmProjectCost.vue

@ -87,14 +87,14 @@
</div> </div>
<div v-else> <div v-else>
<xm-cost-labor v-if="showType == '人力'" :sel-project="selProject"></xm-cost-labor>
<xm-cost-nlabor v-else :sel-project="selProject"></xm-cost-nlabor>
<xm-cost-labor v-if="showType == '人力'" :sel-project="projectInfo"></xm-cost-labor>
<xm-cost-nlabor v-else :sel-project="projectInfo"></xm-cost-nlabor>
</div> </div>
<el-drawer title="查看人力支出明细" :visible.sync="xmCostLaborVisible" size="60%" append-to-body :close-on-click-modal="false"> <el-drawer title="查看人力支出明细" :visible.sync="xmCostLaborVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-cost-labor v-if="xmCostLabor" :biz-month="queryType==='queryByBizMonth'?fieldName:null" :visible="xmCostLaborVisible" :userid="xmCostLabor.userid" :branch-id=" xmCostLabor.branchId " :project-id=" xmCostLabor.projectId "></xm-cost-labor> <xm-cost-labor v-if="xmCostLabor" :biz-month="queryType==='queryByBizMonth'?fieldName:null" :visible="xmCostLaborVisible" :userid="xmCostLabor.userid" :branch-id=" xmCostLabor.branchId " :project-id=" xmCostLabor.projectId "></xm-cost-labor>
</el-drawer> </el-drawer>
<el-drawer title="查看非人力支出明细" :visible.sync="xmCostNlaborVisible" size="60%" append-to-body :close-on-click-modal="false"> <el-drawer title="查看非人力支出明细" :visible.sync="xmCostNlaborVisible" size="60%" append-to-body :close-on-click-modal="false">
<xm-cost-nlabor :xm-cost-nlabor="xmCostNlabor" :visible="xmCostNlaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="selProject"></xm-cost-nlabor>
<xm-cost-nlabor :xm-cost-nlabor="xmCostNlabor" :visible="xmCostNlaborVisible" :field-name="fieldName" :query-type="queryType" :sel-project="projectInfo"></xm-cost-nlabor>
</el-drawer> </el-drawer>
</el-row> </el-row>
</section> </section>
@ -110,11 +110,10 @@
import xmCostLabor from '../xmTaskSbillDetail/XmTaskSbillDetailMng'; import xmCostLabor from '../xmTaskSbillDetail/XmTaskSbillDetailMng';
import xmCostNlabor from '../xmCostNlabor/XmCostNlaborMng'; import xmCostNlabor from '../xmCostNlabor/XmCostNlaborMng';
export default {
props: ["selProject"],
export default {
computed: { computed: {
...mapGetters([ ...mapGetters([
'laborInfo','roles'
'laborInfo','roles','projectInfo'
]), ]),
selYearMonths:function(){ selYearMonths:function(){
var selYear=this.selYear; var selYear=this.selYear;
@ -185,7 +184,7 @@
this.listSumXmCostNlabor(); this.listSumXmCostNlabor();
} }
}, },
'selProject': function(selProject){
'projectInfo': function(projectInfo){
}, },
'selYear':function(){ 'selYear':function(){
@ -233,8 +232,8 @@
var params={ var params={
bizYear:this.selYear, bizYear:this.selYear,
} }
if(this.selProject){
params.projectId=this.selProject.id
if(this.projectInfo){
params.projectId=this.projectInfo.id
} }
var func=listSumSamtGroupByUseridBizMonth var func=listSumSamtGroupByUseridBizMonth
if(this.rptType==='1'){ if(this.rptType==='1'){
@ -254,7 +253,7 @@
listSumXmCostNlabor:function(){ listSumXmCostNlabor:function(){
var parmas={ var parmas={
projectId:this.selProject.id,
projectId:this.projectInfo.id,
} }
listSumXmCostNlabor(parmas).then(res=>{ listSumXmCostNlabor(parmas).then(res=>{
if(res.data.tips.isOk){ if(res.data.tips.isOk){

Loading…
Cancel
Save