diff --git a/src/views/xm/core/xmProject/XmProjectAdd.vue b/src/views/xm/core/xmProject/XmProjectAdd.vue
index d3932c3a..a90b78f5 100644
--- a/src/views/xm/core/xmProject/XmProjectAdd.vue
+++ b/src/views/xm/core/xmProject/XmProjectAdd.vue
@@ -1,6 +1,6 @@
-
+
@@ -40,6 +40,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -136,14 +156,10 @@
取消
提交
-
-
-
-
+
+
+
+
@@ -153,9 +169,9 @@
import { listOption } from '@/api/mdp/meta/itemOption';//下拉框数据查询
import { addXmProject,createProjectCode } from '@/api/xm/core/xmProject';
- import { mapGetters } from 'vuex';
-
- import { getGroups } from '@/api/xm/core/xmProjectGroup';
+ import { mapGetters } from 'vuex';
+
+ import UsersSelect from "@/views/mdp/sys/user/UsersSelect";
export default {
computed: {
@@ -297,25 +313,31 @@
load:{ list: false, add: false, del: false, edit: false },//查询中...
addFormRules: {
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'
}],
urgent: [{
- required: true, message: '紧急程度不可为空', trigger: 'blur'
+ required: true, message: '紧急程度不可为空', trigger: 'change'
}],
priority: [{
- required: true, message: '优先程度不可为空', trigger: 'blur'
+ required: true, message: '优先程度不可为空', trigger: 'change'
+ }],
+ admUserid: [{
+ required: true, message: '项目总控不能为空', trigger: 'change'
+ }],
+ pmUserid: [{
+ required: true, message: '项目经理不能为空', trigger: 'change'
}],
},
//编辑界面数据 XmProject xm_project
addForm: {
- id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:0,bizProcInstId:'',bizFlowState:'',taxRate:0.06,planNouserAt:0,planInnerUserAt:0,planOutUserAt:0,locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:0,totalReceivables:0,budgetMarginRate:0.13,contractAmt:0,planInnerUserPrice:85,planOutUserPrice:100,planOutUserCnt:1,planInnerUserCnt:1,planWorkingHours:0,planInnerUserWorkload:0,planOutUserWorkload:0,budgetCtrl:'0',
+ id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:0,bizProcInstId:'',bizFlowState:'',taxRate:0.06,planNouserAt:0,planInnerUserAt:0,planOutUserAt:0,locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:0,totalReceivables:0,budgetMarginRate:0.13,contractAmt:0,planInnerUserPrice:85,planOutUserPrice:100,planOutUserCnt:1,planInnerUserCnt:1,planWorkingHours:0,planInnerUserWorkload:0,planOutUserWorkload:0,budgetCtrl:'0',admUserid:'',admUsername:'',pmUserid:'',pmUsername:'',assUserid:'',assUsername:''
},
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
xmProjectGroups:[],
@@ -325,6 +347,10 @@
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
dateRanger: [ ],
pickerOptions: util.pickerOptions('datarange'),
+
+ currUserType:'',
+ userSelectVisible:false,
+ maxTableHeight:300,
/**end 在上面加自定义属性**/
}//end return
},//end data
@@ -380,6 +406,8 @@
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err =>this.load.add=false);
});
+ }else{
+ this.$notify({showClose: true, message: "表单检查不通过,请修改后提交", type:'error'});
}
});
},
@@ -446,14 +474,40 @@
}
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
})
- }
+ },
+ showUserVisible(userType){
+ this.currUserType=userType
+ this.userSelectVisible=true;
+ },
+ //选择人员
+ onUserSelected: function(users) {
+ this.userSelectVisible = false;
+ var user={userid:'',username:''};
+ if(users && users.length>0){
+ user=users[0]
+ }
+
+ if(this.currUserType=='admUserid'){
+ this.addForm.admUserid=user.userid
+ this.addForm.admUsername=user.username
+ }else if(this.currUserType=='assUserid'){
+ this.addForm.assUserid=user.userid
+ this.addForm.assUsername=user.username
+ }else if(this.currUserType=='pmUserid'){
+ this.addForm.pmUserid=user.userid
+ this.addForm.pmUsername=user.username
+ }
+ this.currUserType="";
+
+ },
/**end 在上面加自定义方法**/
},//end method
components: {
- //在下面添加其它组件 'xm-project-add':XmProjectEdit
+ UsersSelect,
},
- mounted() {
- this.addForm.id=sn();
+ mounted() {
+
+ this.maxTableHeight=util.calcTableMaxHeight(this.$refs.table.$el);
listOption([{categoryId:'all',itemCode:'projectType'},{categoryId:'all',itemCode:'urgencyLevel'},{categoryId:'all',itemCode:'priority'},{categoryId:'all',itemCode:'projectStatus'}] ).then(res=>{
if(res.data.tips.isOk){
this.options['projectType']=res.data.data.projectType
diff --git a/src/views/xm/core/xmProject/XmProjectEdit.vue b/src/views/xm/core/xmProject/XmProjectEdit.vue
index 3e8210f6..5a4f3a4e 100644
--- a/src/views/xm/core/xmProject/XmProjectEdit.vue
+++ b/src/views/xm/core/xmProject/XmProjectEdit.vue
@@ -39,7 +39,27 @@
每条计划实际金额不能大于预算金额;每条计划的预算金额必须大于其关联的任务的实际金额合计。
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
项目重新启动申请
+
+
+
+
+
@@ -150,6 +175,8 @@
import { getGroups } from '@/api/xm/core/xmProjectGroup';
import html2canvas from 'html2canvas'
+ import UsersSelect from "@/views/mdp/sys/user/UsersSelect";
+
export default {
computed: {
...mapGetters([
@@ -296,27 +323,27 @@
if(this.selProject.planWorkingHours!=this.editForm.planWorkingHours){
var distance=this.selProject.planWorkingHours-this.editForm.planWorkingHours
var operType=distance>0?"-":"+";
- this.changeTips.push("预计总工期: "+ this.selProject.planWorkingHours+" > " +this.editForm.planWorkingHours+" "+operType+Math.abs(distance)+"小时");
+ this.changeTips.push("预计总工期: "+ this.selProject.planWorkingHours+" > " +this.editForm.planWorkingHours+" "+operType+Math.abs(distance).toFixed(2)+"小时");
}
if(this.selProject.planTotalCost!=this.editForm.planTotalCost){
var distance=this.selProject.planTotalCost-this.editForm.planTotalCost
var operType=distance>0?"-":"+";
- this.changeTips.push("预计总成本: "+ this.selProject.planTotalCost+" > " +this.editForm.planTotalCost+" "+operType+Math.abs(distance)+"元");
+ this.changeTips.push("预计总成本: "+ this.selProject.planTotalCost+" > " +this.editForm.planTotalCost+" "+operType+Math.abs(distance).toFixed(2)+"元");
}
if(this.selProject.budgetMarginRate!=this.editForm.budgetMarginRate){
var distance=this.selProject.budgetMarginRate-this.editForm.budgetMarginRate
var operType=distance>0?"-":"+";
- this.changeTips.push("毛利率: "+ this.selProject.budgetMarginRate+" > " +this.editForm.budgetMarginRate+" "+operType+Math.abs(distance)+"%");
+ this.changeTips.push("毛利率: "+ this.selProject.budgetMarginRate+" > " +this.editForm.budgetMarginRate+" "+operType+Math.abs(distance).toFixed(2)+"%");
}
if(this.selProject.totalReceivables!=this.editForm.totalReceivables){
var distance=this.selProject.totalReceivables-this.editForm.totalReceivables
var operType=distance>0?"-":"+";
- this.changeTips.push("预计总收款: "+ this.selProject.totalReceivables+" > " +this.editForm.totalReceivables+" "+operType+Math.abs(distance)+"元");
+ this.changeTips.push("预计总收款: "+ this.selProject.totalReceivables+" > " +this.editForm.totalReceivables+" "+operType+Math.abs(distance).toFixed(2)+"元");
}
if(this.selProject.contractAmt!=this.editForm.contractAmt){
var distance=this.selProject.contractAmt-this.editForm.contractAmt
var operType=distance>0?"-":"+";
- this.changeTips.push("合同金额: "+ this.selProject.contractAmt+" > " +this.editForm.contractAmt+" "+operType+Math.abs(distance)+"元");
+ this.changeTips.push("合同金额: "+ this.selProject.contractAmt+" > " +this.editForm.contractAmt+" "+operType+Math.abs(distance).toFixed(2)+"元");
}
if(this.changeTips.length==0){
@@ -353,7 +380,7 @@
}],
code: [{
- required: true, message: '项目编号不可为空', trigger: 'blur'
+ required: true, message: '项目代号不可为空', trigger: 'blur'
}],
xmType: [{
required: true, message: '项目类型不可为空', trigger: 'blur'
@@ -363,11 +390,17 @@
}],
priority: [{
required: true, message: '优先程度不可为空', trigger: 'blur'
+ }],
+ admUserid: [{
+ required: true, message: '项目总控不能为空', trigger: 'change'
+ }],
+ pmUserid: [{
+ required: true, message: '项目经理不能为空', trigger: 'change'
}],
},
//编辑界面数据 XmProject xm_project
editForm: {
- id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:0,bizProcInstId:'',bizFlowState:'',taxRate:0.06,planNouserAt:0,planInnerUserAt:0,planOutUserAt:0,locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:0,totalReceivables:0,budgetMarginRate:0.13,contractAmt:0,planInnerUserPrice:85,planOutUserPrice:100,planOutUserCnt:1,planInnerUserCnt:1,planWorkingHours:0,planInnerUserWorkload:0,planOutUserWorkload:0,budgetCtrl:'0',
+ id:'',code:'',name:'',xmType:'',startTime:'',endTime:'',urgent:'',priority:'',description:'',createUserid:'',createUsername:'',createTime:'',assess:'',assessRemarks:'',status:'',branchId:'',planTotalCost:0,bizProcInstId:'',bizFlowState:'',taxRate:0.06,planNouserAt:0,planInnerUserAt:0,planOutUserAt:0,locked:'',baseTime:'',baseRemark:'',baselineId:'',planWorkload:0,totalReceivables:0,budgetMarginRate:0.13,contractAmt:0,planInnerUserPrice:85,planOutUserPrice:100,planOutUserCnt:1,planInnerUserCnt:1,planWorkingHours:0,planInnerUserWorkload:0,planOutUserWorkload:0,budgetCtrl:'0',admUserid:'',admUsername:'',pmUserid:'',pmUsername:'',assUserid:'',assUsername:''
},
/**begin 在下面加自定义属性,记得补上面的一个逗号**/
xmProjectGroups:[],
@@ -381,6 +414,7 @@
activateName:'planWorkload',
changeTips:[],//变化日志列表
maxTableHeight:300,
+ currUserType:'',
/**end 在上面加自定义属性**/
}//end return
},//end data
@@ -440,6 +474,8 @@
this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
}).catch( err =>this.load.edit=false);
});
+ }else{
+ this.$notify({showClose: true, message: "表单检查不通过,请修改后提交", type:'error'});
}
});
},
@@ -672,11 +708,36 @@
btns[i].style.display=''
}
}
- }
+ },
+ showUserVisible(userType){
+ this.currUserType=userType
+ this.userSelectVisible=true;
+ },
+ //选择人员
+ onUserSelected: function(users) {
+ this.userSelectVisible = false;
+ var user={userid:'',username:''};
+ if(users && users.length>0){
+ user=users[0]
+ }
+
+ if(this.currUserType=='admUserid'){
+ this.editForm.admUserid=user.userid
+ this.editForm.admUsername=user.username
+ }else if(this.currUserType=='assUserid'){
+ this.editForm.assUserid=user.userid
+ this.editForm.assUsername=user.username
+ }else if(this.currUserType=='pmUserid'){
+ this.editForm.pmUserid=user.userid
+ this.editForm.pmUsername=user.username
+ }
+ this.currUserType="";
+
+ },
/**end 在上面加自定义方法**/
},//end method
- components: { html2canvas
+ components: { html2canvas,UsersSelect,
//在下面添加其它组件 'xm-project-add':XmProjectEdit
},
mounted() {
diff --git a/src/views/xm/core/xmProject/XmProjectMng.vue b/src/views/xm/core/xmProject/XmProjectMng.vue
index ad022a44..5f830ac8 100644
--- a/src/views/xm/core/xmProject/XmProjectMng.vue
+++ b/src/views/xm/core/xmProject/XmProjectMng.vue
@@ -193,10 +193,10 @@
-
+
-
+
@@ -485,22 +485,31 @@
this.sels = sels;
},
//删除xmProject
- handleDel: function (row,index) {
- this.$confirm('确认删除该记录吗?', '提示', {
- type: 'warning'
- }).then(() => {
- this.load.del=true;
- let params = { id: row.id };
- delXmProject(params).then((res) => {
- this.load.del=false;
- var tips=res.data.tips;
- if(tips.isOk){
- this.pageInfo.count=true;
- this.getXmProjects();
- }
- this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
- }).catch( err => this.load.del=false );
+ handleDel: function (row,index) {
+ this.$prompt('将同步删除计划、组织、任务等,慎重起见,请输入项目代号:'+row.code, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ }).then(({ value }) => {
+ if(value==row.code){
+ this.load.del=true;
+ let params = { id: row.id };
+ delXmProject(params).then((res) => {
+ this.load.del=false;
+ var tips=res.data.tips;
+ if(tips.isOk){
+ this.pageInfo.count=true;
+ this.getXmProjects();
+ }
+ this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
+ }).catch( err => this.load.del=false );
+ }else{
+ this.$notify({showClose: true, message: "项目代号不正确", type: 'error' });
+ }
+ }).catch(() => {
+ return;
});
+
+
},
//批量删除xmProject
batchDel: function () {
diff --git a/src/views/xm/core/xmProject/XmProjectTplMng.vue b/src/views/xm/core/xmProject/XmProjectTplMng.vue
index 583f7295..58be5f01 100644
--- a/src/views/xm/core/xmProject/XmProjectTplMng.vue
+++ b/src/views/xm/core/xmProject/XmProjectTplMng.vue
@@ -301,24 +301,32 @@
//选择行xmProject
selsChange: function (sels) {
this.sels = sels;
- },
- //删除xmProject
- handleDel: function (row,index) {
- this.$confirm('确认删除该记录吗?', '提示', {
- type: 'warning'
- }).then(() => {
- this.load.del=true;
- let params = { id: row.id };
- delXmProject(params).then((res) => {
- this.load.del=false;
- var tips=res.data.tips;
- if(tips.isOk){
- this.pageInfo.count=true;
- this.getXmProjects();
- }
- this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
- }).catch( err => this.load.del=false );
+ },
+ handleDel: function (row,index) {
+ this.$prompt('将同步删除计划、组织、任务等,慎重起见,请输入项目代号:'+row.code, '提示', {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ }).then(({ value }) => {
+ if(value==row.code){
+ this.load.del=true;
+ let params = { id: row.id };
+ delXmProject(params).then((res) => {
+ this.load.del=false;
+ var tips=res.data.tips;
+ if(tips.isOk){
+ this.pageInfo.count=true;
+ this.getXmProjects();
+ }
+ this.$notify({showClose: true, message: tips.msg, type: tips.isOk?'success':'error' });
+ }).catch( err => this.load.del=false );
+ }else{
+ this.$notify({showClose: true, message: "项目代号不正确", type: 'error' });
+ }
+ }).catch(() => {
+ return;
});
+
+
},
//批量删除xmProject
batchDel: function () {