|
@@ -37,7 +37,7 @@
|
|
<el-form-item label="项目概况" prop="projectGist">
|
|
<el-form-item label="项目概况" prop="projectGist">
|
|
<el-input v-model="projectForm.projectGist" type="textarea" :rows="7"></el-input>
|
|
<el-input v-model="projectForm.projectGist" type="textarea" :rows="7"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="内置里程">
|
|
|
|
|
|
+ <el-form-item label="内置里程" prop="projectAllMileage">
|
|
<el-radio-group v-model="radioType">
|
|
<el-radio-group v-model="radioType">
|
|
<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>
|
|
@@ -146,7 +146,8 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
- import {submitProject,getProjectDeatil,findWbsTreeList,findProjectTree,submitWbsTreeInProject} from "@/api/manager/projectinfo";
|
|
|
|
|
|
+ import {submitProject,getProjectDeatil,findWbsTreeList,findProjectTree,
|
|
|
|
+ submitWbsTreeInProject,getProjectDeatilWbsId} from "@/api/manager/projectinfo";
|
|
import {findContractByProjectId,saveUserInfoByProject,findUserListByCondition,
|
|
import {findContractByProjectId,saveUserInfoByProject,findUserListByCondition,
|
|
findUserByName,removeUsersByIds} from "@/api/manager/contractinfo";
|
|
findUserByName,removeUsersByIds} from "@/api/manager/contractinfo";
|
|
import {getRoleTree} from "@/api/system/role";
|
|
import {getRoleTree} from "@/api/system/role";
|
|
@@ -176,6 +177,31 @@
|
|
}
|
|
}
|
|
callback();
|
|
callback();
|
|
};
|
|
};
|
|
|
|
+ var checkIsNumber = (rule, value, callback) => {
|
|
|
|
+ if (value != Number(value)) {
|
|
|
|
+ callback(new Error('金额必须是数字'));
|
|
|
|
+ }
|
|
|
|
+ callback();
|
|
|
|
+ };
|
|
|
|
+ var checkMileage = (rule, value, callback) => {
|
|
|
|
+ if (this.projectForm.projectPavement || this.projectForm.projectSubgrade) {
|
|
|
|
+ if(this.projectForm.projectPavement){
|
|
|
|
+ if(this.projectForm.projectPavement > value){
|
|
|
|
+ callback(new Error('总里程必须是最大的'));
|
|
|
|
+ }
|
|
|
|
+ }else if(this.projectForm.projectSubgrade){
|
|
|
|
+ if(this.projectForm.projectSubgrade > value){
|
|
|
|
+ callback(new Error('总里程必须是最大的'));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(this.projectForm.projectPavement && this.projectForm.projectSubgrade){
|
|
|
|
+ if((this.projectForm.projectPavement + this.projectForm.projectSubgrade) > value){
|
|
|
|
+ callback(new Error('总里程必须大于两项总和'));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ callback();
|
|
|
|
+ };
|
|
|
|
|
|
return {
|
|
return {
|
|
activeType:'1',
|
|
activeType:'1',
|
|
@@ -205,6 +231,12 @@
|
|
],
|
|
],
|
|
actualEndTime:[
|
|
actualEndTime:[
|
|
{validator: checkDate2,trigger: 'blur'}
|
|
{validator: checkDate2,trigger: 'blur'}
|
|
|
|
+ ],
|
|
|
|
+ estimatedAmount:[
|
|
|
|
+ {validator: checkIsNumber,trigger: 'blur'}
|
|
|
|
+ ],
|
|
|
|
+ projectAllMileage:[
|
|
|
|
+ {validator: checkMileage,trigger: 'blur'}
|
|
]
|
|
]
|
|
},
|
|
},
|
|
|
|
|
|
@@ -238,32 +270,14 @@
|
|
},
|
|
},
|
|
deep: true
|
|
deep: true
|
|
},
|
|
},
|
|
- activeType: async function (newValue) {
|
|
|
|
|
|
+ activeType: function (newValue) {
|
|
if(newValue == '3'){
|
|
if(newValue == '3'){
|
|
this.getContractList();
|
|
this.getContractList();
|
|
this.getRoleList();
|
|
this.getRoleList();
|
|
this.getUserByCondition();
|
|
this.getUserByCondition();
|
|
this.getUserByName();
|
|
this.getUserByName();
|
|
}else if(newValue == '2'){
|
|
}else if(newValue == '2'){
|
|
- let refId = this.projectForm.referenceWbsTemplateId;
|
|
|
|
- if(refId && refId>0){
|
|
|
|
- //有引用id,回显
|
|
|
|
- this.wbsId = refId;
|
|
|
|
- this.selected = true;
|
|
|
|
- let projectTree = await findProjectTree(this.projectForm.id,refId)
|
|
|
|
- if(Array.isArray(projectTree.data.data)){
|
|
|
|
- this.templateType = projectTree.data.data[0].wbsType;
|
|
|
|
- let leftData = await getAlltree(this.userInfo.tenant_id,'1',refId)
|
|
|
|
- if(Array.isArray(leftData.data.data)){
|
|
|
|
- this.leftTreeData = leftData.data.data;
|
|
|
|
- }else{
|
|
|
|
- this.leftTreeData = [];
|
|
|
|
- }
|
|
|
|
- this.$refs.treetotree.setRightTree(projectTree.data.data);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- this.getTreeList();
|
|
|
|
|
|
+ this.treeInit();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -337,9 +351,19 @@
|
|
getProjectDeatil(){
|
|
getProjectDeatil(){
|
|
getProjectDeatil(this.id).then((res)=>{
|
|
getProjectDeatil(this.id).then((res)=>{
|
|
this.projectForm = res.data.data;
|
|
this.projectForm = res.data.data;
|
|
|
|
+ if(Number(this.projectForm.estimatedAmount) < 0){
|
|
|
|
+ this.projectForm.estimatedAmount = 0
|
|
|
|
+ }
|
|
this.$nextTick(()=>{
|
|
this.$nextTick(()=>{
|
|
this.typeChang['1'] = false;
|
|
this.typeChang['1'] = false;
|
|
})
|
|
})
|
|
|
|
+ let templateType = 'public';
|
|
|
|
+ if(this.projectForm.referenceWbsTemplateType){
|
|
|
|
+ templateType = this.projectForm.referenceWbsTemplateType;
|
|
|
|
+ }
|
|
|
|
+ getProjectDeatilWbsId(this.id,this.projectForm.referenceWbsTemplateId,templateType).then((res)=>{
|
|
|
|
+ this.projectForm.wbsType = res.data.data.wbsType;
|
|
|
|
+ })
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
|
|
@@ -399,6 +423,7 @@
|
|
obj = {
|
|
obj = {
|
|
wbsId:this.wbsId,
|
|
wbsId:this.wbsId,
|
|
projectId:this.projectForm.id,
|
|
projectId:this.projectForm.id,
|
|
|
|
+ wbsType:this.templateType,
|
|
wbsTreeIds:ids
|
|
wbsTreeIds:ids
|
|
}
|
|
}
|
|
if(this.wbsId.toString().indexOf(',') >= 0){
|
|
if(this.wbsId.toString().indexOf(',') >= 0){
|
|
@@ -407,7 +432,7 @@
|
|
let ids = this.wbsId.toString().split(',');
|
|
let ids = this.wbsId.toString().split(',');
|
|
obj.wbsId = ids[0];
|
|
obj.wbsId = ids[0];
|
|
obj.referencePrivateWbsProjectId = ids[1];
|
|
obj.referencePrivateWbsProjectId = ids[1];
|
|
- // obj.primaryKeyId = this.leftTreeData[0].primaryKeyId;
|
|
|
|
|
|
+ obj.primaryKeyId = this.leftTreeData[0].primaryKeyId;
|
|
}else{
|
|
}else{
|
|
//公有库
|
|
//公有库
|
|
obj.referenceType = "public";
|
|
obj.referenceType = "public";
|
|
@@ -620,6 +645,56 @@
|
|
|
|
|
|
this.wbsId = '';
|
|
this.wbsId = '';
|
|
this.leftTreeData = [];
|
|
this.leftTreeData = [];
|
|
|
|
+ },
|
|
|
|
+ async treeInit(){
|
|
|
|
+ let refId = this.projectForm.referenceWbsTemplateId;
|
|
|
|
+ if(refId && refId>0){
|
|
|
|
+ //有引用id,回显
|
|
|
|
+ this.selected = true;
|
|
|
|
+ this.templateType = this.projectForm.wbsType;
|
|
|
|
+ await this.getTreeList();
|
|
|
|
+ let priv={};
|
|
|
|
+ if(this.projectForm.referenceWbsTemplateType=='private'){
|
|
|
|
+ //私有
|
|
|
|
+ let list = this.treeList[1].options;
|
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
|
+ if(list[i].pkeyId == refId){
|
|
|
|
+ this.wbsId = list[i].wbsId +','+ list[i].projectId;
|
|
|
|
+ priv.wbsId = list[i].wbsId;
|
|
|
|
+ priv.projectId = list[i].projectId;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ //公有
|
|
|
|
+ this.wbsId = refId;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ let projectTree = await findProjectTree(this.projectForm.id,refId)
|
|
|
|
+ if(Array.isArray(projectTree.data.data)){
|
|
|
|
+ if(this.projectForm.referenceWbsTemplateType=='private'){
|
|
|
|
+ //私有
|
|
|
|
+ let leftData = await findProjectTree(priv.projectId,priv.wbsId)
|
|
|
|
+ if(Array.isArray(leftData.data.data)){
|
|
|
|
+ this.leftTreeData = leftData.data.data;
|
|
|
|
+ }else{
|
|
|
|
+ this.leftTreeData = [];
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ //公有
|
|
|
|
+ let leftData = await getAlltree(this.userInfo.tenant_id,'1',refId)
|
|
|
|
+ if(Array.isArray(leftData.data.data)){
|
|
|
|
+ this.leftTreeData = leftData.data.data;
|
|
|
|
+ }else{
|
|
|
|
+ this.leftTreeData = [];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ this.$refs.treetotree.setRightTree(projectTree.data.data);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ this.getTreeList();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|