|
@@ -0,0 +1,143 @@
|
|
|
+<template>
|
|
|
+ <el-dialog
|
|
|
+ :visible.sync="allocatedialogVisible"
|
|
|
+ title="关联WBS"
|
|
|
+ width="500"
|
|
|
+ append-to-body
|
|
|
+ >
|
|
|
+ <div class="flex1 ov-hidden" style="height: 500px;">
|
|
|
+ <el-scrollbar class="h-100p">
|
|
|
+ <div v-loading="treeLoad">
|
|
|
+ <el-tree
|
|
|
+ class="filter-tree"
|
|
|
+ lazy
|
|
|
+ :load="loadNode"
|
|
|
+ :props="defaultProps"
|
|
|
+ :expand-on-click-node="false"
|
|
|
+ highlight-current
|
|
|
+ node-key="id"
|
|
|
+ ref="tree"
|
|
|
+ :render-content="renderContent"
|
|
|
+
|
|
|
+
|
|
|
+ >
|
|
|
+
|
|
|
+ </el-tree>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ </el-scrollbar>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="allocatedialogVisible = false">取消</el-button>
|
|
|
+ <el-button type="primary" @click="allocatedialogVisible = false">
|
|
|
+ 确认
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ import { getLazytree,} from "@/api/manager/wbsprivate";
|
|
|
+ import { mapGetters } from "vuex";
|
|
|
+
|
|
|
+ export default {
|
|
|
+ props:{
|
|
|
+ projectId:'',
|
|
|
+ wbsId:'',
|
|
|
+ wbsType:''
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ allocatedialogVisible:false,
|
|
|
+ treeLoad:false,
|
|
|
+ defaultProps: {
|
|
|
+ children: "children",
|
|
|
+ label: "title",
|
|
|
+ isLeaf: function (data) {
|
|
|
+ //console.log(data, !data.hasChildren, data.isExistForm);
|
|
|
+ let tag = false;
|
|
|
+ if (!data.hasChildren) {
|
|
|
+ tag = true;
|
|
|
+ }
|
|
|
+ if (data.isExistForm == 1) {
|
|
|
+ tag = true;
|
|
|
+ }
|
|
|
+ if (data.nodeType >= 6 && data.nodeType <= 13) {
|
|
|
+ tag = true;
|
|
|
+ }
|
|
|
+ //中间交工。开工报告、质量评定)
|
|
|
+ if (
|
|
|
+ data.majorDataType == 1 ||
|
|
|
+ data.majorDataType == 2 ||
|
|
|
+ data.majorDataType == 3
|
|
|
+ ) {
|
|
|
+ tag = true;
|
|
|
+ }
|
|
|
+ return tag;
|
|
|
+ // return !data.hasChildren || (data.isExistForm == 1);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapGetters(["userInfo"]),
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ created () {
|
|
|
+
|
|
|
+ },
|
|
|
+ mounted () {
|
|
|
+
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ show(){
|
|
|
+ this.allocatedialogVisible=true
|
|
|
+ },
|
|
|
+ renderContent(h, { node, data, store }) {
|
|
|
+ // 只有当节点没有子节点时才显示复选框
|
|
|
+ if (!data.hasChildren ) {
|
|
|
+ return (
|
|
|
+ <span>
|
|
|
+ <el-checkbox v-model={data.checked}></el-checkbox>
|
|
|
+ <span>{node.label}</span>
|
|
|
+ </span>
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ return (
|
|
|
+ <span>{node.label}</span>
|
|
|
+ );
|
|
|
+ }
|
|
|
+ },
|
|
|
+ loadNode(node, resolve) {
|
|
|
+ let pid = 0;
|
|
|
+ if (node.level != 0) {
|
|
|
+ pid = node.data.id;
|
|
|
+ }
|
|
|
+ getLazytree(this.wbsId, pid, this.userInfo.tenant_id, this.projectId, {
|
|
|
+ wbsType: this.wbsType,
|
|
|
+ }).then((res) => {
|
|
|
+ let arr = [];
|
|
|
+ if (Array.isArray(res.data.data)) {
|
|
|
+ arr = res.data.data;
|
|
|
+ }
|
|
|
+
|
|
|
+ return resolve(arr);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleCheckChange(checkedNodes) {
|
|
|
+
|
|
|
+ console.log('当前选中的节点:',checkedNodes);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ };
|
|
|
+ </script>
|
|
|
+
|
|
|
+ <style scoped lang="scss">
|
|
|
+ </style>
|
|
|
+
|