|
@@ -213,14 +213,14 @@
|
|
|
<div class="text-align-c mg-t-20">
|
|
|
<span class="mg-r-20">选择WBS</span>
|
|
|
<el-select
|
|
|
- v-model="wbsId"
|
|
|
- @change="wbsChange"
|
|
|
+ v-model="logWbsId"
|
|
|
+ @change="logWbsChange"
|
|
|
:disabled="selected"
|
|
|
placeholder="请选择WBS"
|
|
|
style="width:500px;"
|
|
|
>
|
|
|
<el-option-group
|
|
|
- v-for="group in treeList"
|
|
|
+ v-for="group in logTreeList"
|
|
|
:key="group.label"
|
|
|
:label="group.label"
|
|
|
>
|
|
@@ -235,7 +235,7 @@
|
|
|
</el-select>
|
|
|
</div>
|
|
|
<tree-tree
|
|
|
- :left-tree-data="leftTreeData"
|
|
|
+ :left-tree-data="logLeftTreeData"
|
|
|
ref="treetotree2"
|
|
|
:show-all-check="true"
|
|
|
@onAddTree="treeChang3"
|
|
@@ -409,7 +409,7 @@
|
|
|
<script>
|
|
|
import {
|
|
|
submitProject, getProjectDeatil, findWbsTreeList, findProjectTree,
|
|
|
- submitWbsTreeInProject, getProjectDeatilWbsId
|
|
|
+ submitWbsTreeInProject, getProjectDeatilWbsId, findLogWbsTreeList, submitLogWbsTreeInProject
|
|
|
} from "@/api/manager/projectinfo";
|
|
|
import {
|
|
|
findContractByProjectId, saveUserInfoByProject, findUserListByCondition,
|
|
@@ -531,9 +531,12 @@ export default {
|
|
|
|
|
|
templateType: 1,
|
|
|
treeList: [],
|
|
|
+ logTreeList: [],
|
|
|
wbsId: '',
|
|
|
+ logWbsId: '',
|
|
|
selected: false,
|
|
|
leftTreeData: [],
|
|
|
+ logLeftTreeData: [],
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -547,7 +550,6 @@ export default {
|
|
|
deep: true
|
|
|
},
|
|
|
activeType: function (newValue) {
|
|
|
- //console.log('ss');
|
|
|
if (newValue == '4') {
|
|
|
this.getContractList();
|
|
|
this.getRoleList();
|
|
@@ -555,6 +557,8 @@ export default {
|
|
|
this.getUserByName();
|
|
|
} else if (newValue == '2') {
|
|
|
this.treeInit();
|
|
|
+ } else if (newValue == '3') {
|
|
|
+ this.treeLogInit();
|
|
|
}
|
|
|
}
|
|
|
},
|
|
@@ -597,6 +601,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
beforeLeave (activeName, oldActiveName) {
|
|
|
+
|
|
|
return new Promise((resolve, reject) => {
|
|
|
if (oldActiveName == '1' && !this.projectForm.id) {
|
|
|
this.$message({
|
|
@@ -672,6 +677,8 @@ export default {
|
|
|
await this.saveProject();
|
|
|
} else if (this.activeType == '2') {
|
|
|
await this.saveWbsTree();
|
|
|
+ } else if (this.activeType == '3'){
|
|
|
+ await this.saveLogWbsTree();
|
|
|
}
|
|
|
} catch (error) {
|
|
|
this.btnLoad = false;
|
|
@@ -732,7 +739,16 @@ export default {
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+ saveLogWbsTree() {
|
|
|
+ let ids = this.$refs.treetotree2.getTreeAllId('rightTree');
|
|
|
+ let obj = {
|
|
|
+ wbsId: this.logWbsId,
|
|
|
+ projectId: this.projectForm.id,
|
|
|
+ wbsType: "4",
|
|
|
+ wbsTreeIds: ids
|
|
|
+ };
|
|
|
+ return submitLogWbsTreeInProject(obj);
|
|
|
+ },
|
|
|
saveWbsTree () {
|
|
|
let obj = {};
|
|
|
let ids = this.$refs.treetotree.getTreeAllId('rightTree');
|
|
@@ -869,7 +885,16 @@ export default {
|
|
|
this.roleList = res.data.data
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+ logWbsChange(value){
|
|
|
+ //公有库
|
|
|
+ getAlltree(this.userInfo.tenant_id, '1', value).then((res) => {
|
|
|
+ if (Array.isArray(res.data.data)) {
|
|
|
+ this.logLeftTreeData = res.data.data;
|
|
|
+ } else {
|
|
|
+ this.logLeftTreeData = [];
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
wbsChange (value) {
|
|
|
//console.log(value)
|
|
|
if (value.toString().indexOf(',') >= 0) {
|
|
@@ -894,6 +919,31 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ getLogTreeList(){
|
|
|
+ return new Promise((resolve) => {
|
|
|
+ if (this.logTreeList.length) {
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ findLogWbsTreeList().then((res) => {
|
|
|
+ let arr = [{
|
|
|
+ label: '公有库',
|
|
|
+ options: [],
|
|
|
+ }];
|
|
|
+ let data = res.data.data;
|
|
|
+ if (data && data.length) {
|
|
|
+ data.forEach((element) => {
|
|
|
+ element.label = element.wbsName;
|
|
|
+ element.value = element.id;
|
|
|
+ })
|
|
|
+ arr[0].options = data;
|
|
|
+ }
|
|
|
+ this.logTreeList = arr;
|
|
|
+ }).finally(() => {
|
|
|
+ resolve();
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
getTreeList () {
|
|
|
return new Promise((resolve) => {
|
|
|
if (this.treeList.length) {
|
|
@@ -969,7 +1019,27 @@ export default {
|
|
|
this.wbsId = '';
|
|
|
this.leftTreeData = [];
|
|
|
},
|
|
|
+ async treeLogInit(){
|
|
|
+ let refId = this.projectForm.referenceLogWbsTemplateId;
|
|
|
+ if(refId && refId > 0 && Number(this.projectForm.wbsType) > 0){
|
|
|
+ await this.getLogTreeList();
|
|
|
+ this.logWbsId = refId;
|
|
|
+
|
|
|
+ let leftData = await getAlltree(this.userInfo.tenant_id, '1', refId);
|
|
|
+ if (Array.isArray(leftData.data.data)) {
|
|
|
+ this.logLeftTreeData = leftData.data.data;
|
|
|
+ } else {
|
|
|
+ this.logLeftTreeData = [];
|
|
|
+ }
|
|
|
+
|
|
|
+ let projectTree = await findProjectTree(this.projectForm.id, refId);
|
|
|
+ this.$refs.treetotree2.setRightTree(projectTree.data.data);
|
|
|
+ } else {
|
|
|
+ await this.getLogTreeList();
|
|
|
+ }
|
|
|
+ },
|
|
|
async treeInit () {
|
|
|
+
|
|
|
let refId = this.projectForm.referenceWbsTemplateId;
|
|
|
//引用被删会出现 wbsType -1
|
|
|
if (refId && refId > 0 && Number(this.projectForm.wbsType) > 0) {
|