diff --git a/src/router/routes_xm.js b/src/router/routes_xm.js index 8fce1f8e..b7dff47d 100644 --- a/src/router/routes_xm.js +++ b/src/router/routes_xm.js @@ -14,9 +14,7 @@ export default { icon: 'project' }, // leaf: true,//只有一个节点 - children: [ - - { path: 'xmProject/XmProjectAdd', component: _import('xm/core/xmProject/XmProjectAdd'), name: 'xmProjectAdd',hidden:true, meta: { title: '项目立项' }}, + children: [ { path: 'xmProject/XmProjectAllMng', component: _import('xm/core/xmProject/XmProjectAllMng'), name: 'xmProjectAllMng', meta: { title: '项目总览' }}, { path: 'xmProject/XmProjectMng', component: _import('xm/core/xmProject/XmProjectMng'), name: 'xmProjectMng', meta: { title: '项目(我的)' }}, { path: 'xmProjectState/XmProjectStateMng', component: _import('xm/core/xmProjectState/XmProjectStateMng'), name: 'XmProjectStateMng', meta: { title: '项目统计' }}, diff --git a/src/views/xm/core/xmIteration/XmIterationInfo.vue b/src/views/xm/core/xmIteration/XmIterationInfo.vue index 734fe9f7..8b2be7a0 100644 --- a/src/views/xm/core/xmIteration/XmIterationInfo.vue +++ b/src/views/xm/core/xmIteration/XmIterationInfo.vue @@ -50,10 +50,7 @@ - - \ No newline at end of file diff --git a/src/views/xm/core/xmProject/XmProjectEdit.vue b/src/views/xm/core/xmProject/XmProjectEdit.vue index 68daa395..54bd77c2 100644 --- a/src/views/xm/core/xmProject/XmProjectEdit.vue +++ b/src/views/xm/core/xmProject/XmProjectEdit.vue @@ -14,22 +14,59 @@ - + + + + + 项目代号为合同上的项目代号,甲乙方共享;项目内部编号为  代号-四位随机码 + + + + + 项目代号为合同上的项目代号,甲乙方共享;项目内部编号为  代号-四位随机码 - - - - - - - - + + + + + + + + + + + + + + + + + + + + + scrum + 看板 + + + + + + + + + + + + - + @@ -67,7 +104,7 @@ - + 小时   参考工时{{autoParams.weekday*8}}小时,工作日{{autoParams.weekday}}天 - - + + + + + 人员类型 人数 @@ -134,32 +174,35 @@ 合计: {{this.toFixed(autoParams.planTotalCost/10000)}}万元 - - - - 预计收款总额: {{this.toFixed(autoParams.totalReceivables/10000)}}万元 - 合同总金额 : {{this.toFixed(autoParams.contractAmt/10000)}}万元 - - - 税率: - 考核标准毛利率: - 当前毛利率为:{{toFixed(parseFloat2(autoParams.currentBudgetMarginRate)*100,2)}}% - - + + + + + + 税率: % + 考核标准毛利率:% + 当前预估毛利率为:{{toFixed(parseFloat2(autoParams.currentBudgetMarginRate),2)}}% + + + 预计收\付款总额: {{this.toFixed(autoParams.totalReceivables/10000)}}万元 + 合同总金额 : {{this.toFixed(editForm.contractAmt/10000)}}万元 + + 提交 - 基本信息修改申请 - 延期申请 - 立项申请 - 结项申请 - 预算变更申请 - 项目暂停申请 - 项目重新启动申请 - + + 基本信息修改申请 + 延期申请 + 立项申请 + 结项申请 + 预算变更申请 + 项目暂停申请 + 项目重新启动申请 + @@ -175,7 +218,7 @@ import config from "@/common/config"; //全局公共库 import { initSimpleDicts } from '@/api/mdp/meta/item';//下拉框数据查询 - import { editXmProject,getDefOptions } from '@/api/xm/core/xmProject'; + import { addXmProject,editXmProject,getDefOptions,createProjectCode } from '@/api/xm/core/xmProject'; import { uploadBase64 } from '@/api/mdp/arc/image'; import { mapGetters } from 'vuex'; @@ -297,12 +340,11 @@ } }, }, - props:['selProject','visible'], + props:['selProject','visible','xmProject','opType'/**add、edit */], watch: { 'visible':function(visible) { if(visible==true){ - this.editForm=Object.assign({},this.selProject) - this.dateRanger=[this.editForm.startTime,this.editForm.endTime] + this.initData(); } }, 'planTotalAt':{ @@ -324,6 +366,9 @@ editForm:{ handler(newValue, oldValue) { + if(this.opType==='add'){ + return; + } this.$notify.closeAll(); this.changeTips=[]; if(this.selProject.planWorkingHours!=this.editForm.planWorkingHours){ @@ -377,17 +422,20 @@ load:{ list: false, add: false, del: false, edit: false },//查询中... editFormRules: { name: [{ - required: true, message: '项目名称不可为空' , trigger: 'blur' + required: true, message: '项目名称不可为空' , trigger: 'change' }], code: [{ - required: true, message: '项目代号不可为空', trigger: 'blur' + required: true, message: '项目代号不可为空', trigger: 'change' }], xmType: [{ - required: true, message: '项目类型不可为空', trigger: 'blur' + required: true, message: '项目类型不可为空', trigger: 'change' + }], + xmType: [{ + required: true, message: '项目类型不可为空', trigger: 'change' }], priority: [{ - required: true, message: '优先级不可为空', trigger: 'blur' + required: true, message: '优先级不可为空', trigger: 'change' }], admUserid: [{ required: true, message: '项目总控不能为空', trigger: 'change' @@ -435,15 +483,12 @@ this.$emit('cancel'); }, //编辑提交XmProject xm_project父组件监听@submit="afterEditSubmit" - editSubmit: function () { - if(!this.roles.some(i=>i.roleid=='projectAdmin')){ - this.$notify({showClose: true, message: "只有项目经理可以修改项目", type: 'error' }); - return; - } - if("0" != this.selProject.status){ + editSubmit: function () { + if(this.opType!=='add' && "0" != this.selProject.status){ this.$notify({showClose: true, message: "只有初始状态的项目可以修改,如确实需要修改,请进行项目变更审批", type: 'error' }); return; } + var msg=this.xmProduct&&this.xmProduct.id?'将自动关联产品【'+this.xmProduct.productName+'】':''; if ( this.dateRanger != null && this.dateRanger.length == 2 @@ -456,13 +501,17 @@ } this.$refs.editForm.validate((valid) => { if (valid) { - this.$confirm('确认提交吗?', '提示', {}).then(() => { + this.$confirm('确认提交吗?'+msg, '提示', {}).then(() => { this.load.edit=true + var func=editXmProject; + if(this.opType==='add'){ + func=addXmProject; + } let params = Object.assign({}, this.editForm); params.planIuserWorkload=this.autoParams.planIuserWorkload params.planOuserWorkload=this.autoParams.planOuserWorkload params.planWorkload=this.autoParams.planWorkload - editXmProject(params).then((res) => { + func(params).then((res) => { this.load.edit=false; var tips=res.data.tips; if(tips.isOk){ @@ -729,17 +778,50 @@ }, + createProjectCode(){ + createProjectCode({}).then(res=>{ + var tips=res.data.tips; + if(tips.isOk){ + this.editForm.code=res.data.data + } + this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' }); + }) + }, + initData(){ + this.editForm={...this.selProject} + if(this.opType==='add'){ + this.editForm.pmUserid=this.userInfo.userid + this.editForm.pmUsername=this.userInfo.username + this.editForm.admUserid=this.userInfo.userid + this.editForm.admUsername=this.userInfo.username + this.editForm.assUserid=this.userInfo.userid + this.editForm.assUsername=this.userInfo.username + this.editForm.status="0" + this.editForm.wtype=this.editForm.wtype||"2" + this.editForm.workType=this.editForm.workType||"1" + this.editForm.xmType=this.editForm.xmType||"2" + this.editForm.priority=this.editForm.priority||"2" + this.editForm.locked=this.editForm.locked||"0" + this.editForm.showOut=this.editForm.showOut||"2" + this.editForm.isTpl=this.editForm.isTpl||"0" + this.editForm.phaseActCtrl=this.editForm.phaseActCtrl||"1"; + this.editForm.budgetEarly=this.editForm.budgetEarly||"1"; + this.editForm.earlyAmt=this.editForm.earlyAmt||-10000; + this.editForm.budgetCtrl=this.editForm.budgetCtrl||"0"; + this.editForm.taxRate=this.editForm.taxRate||6 + this.editForm.budgetMarginRate=this.editForm.budgetMarginRate||13 + }else{ + this.dateRanger=[this.editForm.startTime,this.editForm.endTime] + } + } /**end 在上面加自定义方法**/ },//end method components: { html2canvas,UsersSelect, //在下面添加其它组件 'xm-project-add':XmProjectEdit }, mounted() { - this.maxTableHeight=util.calcTableMaxHeight(this.$refs.table.$el)-20; - this.editForm=Object.assign({},this.selProject); - this.dateRanger=[this.editForm.startTime,this.editForm.endTime] - - + this.maxTableHeight=util.calcTableMaxHeight(this.$refs.table.$el)-20; + this.initData(); initSimpleDicts('all',['projectType','priority','projectStatus']).then(res=>{ this.dicts=res.data.data; }) diff --git a/src/views/xm/core/xmProject/XmProjectForLinkComplex.vue b/src/views/xm/core/xmProject/XmProjectForLinkComplex.vue index 1e5a6721..89c6e837 100644 --- a/src/views/xm/core/xmProject/XmProjectForLinkComplex.vue +++ b/src/views/xm/core/xmProject/XmProjectForLinkComplex.vue @@ -17,7 +17,7 @@ v-model="projectAddVisible" trigger="manual"> - + 项目 @@ -75,7 +75,7 @@ import XmProductSelect from '@/views/xm/core/components/XmProductSelect.vue' import XmProductProjectForLink from '../xmProduct/XmProductProjectForLink.vue'; import XmProjectOverview from "./XmProjectOverview"; - import XmProjectAdd from './XmProjectAdd';//新增界面 + import XmProjectAdd from './XmProjectEdit';//新增界面 import XmProjectDetail from './XmProjectDetail';//新增界面 import XmProductProjectLinkMng from '../xmProductProjectLink/XmProductProjectLinkMng.vue'; diff --git a/src/views/xm/core/xmProject/XmProjectInfo.vue b/src/views/xm/core/xmProject/XmProjectInfo.vue index 49386094..043822c1 100644 --- a/src/views/xm/core/xmProject/XmProjectInfo.vue +++ b/src/views/xm/core/xmProject/XmProjectInfo.vue @@ -161,10 +161,7 @@