From 6a72e9e44dc7278e18d55ccd5637b81a1cb2f047 Mon Sep 17 00:00:00 2001 From: zhangyanpeng <bob.zhang@highdatas.com> Date: 星期一, 04 三月 2024 18:16:36 +0800 Subject: [PATCH] Merge branch 'dev' of http://highdatas.com:9000/r/foundation/designer.approve.2 into dev --- src/views/admin/layout/process/ProcessTree.vue | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 100 insertions(+), 12 deletions(-) diff --git a/src/views/admin/layout/process/ProcessTree.vue b/src/views/admin/layout/process/ProcessTree.vue index 2a05685..d3ee177 100644 --- a/src/views/admin/layout/process/ProcessTree.vue +++ b/src/views/admin/layout/process/ProcessTree.vue @@ -14,7 +14,6 @@ import Subprocess from '@/views/common/process/nodes/SubprocessNode.vue' import DefaultProps from "./DefaultNodeProps" - export default { name: "ProcessTree", components: {Node, Root, Approval, Task, Cc, Trigger, Concurrent, Condition, Inclusive, Delay, Empty, Subprocess}, @@ -40,6 +39,7 @@ ])) return h('div', {class:{'_root': true}, ref:'_root'}, processTrees) }, + methods: { getDomTree(h, node) { this.toMapping(node); @@ -88,6 +88,7 @@ //瑙g爜娓叉煋鐨勬椂鍊欐彃鍏om鍒板悓绾� decodeAppendDom(h, node, dom, props = {}){ props.config = node + console.log("decodeAppendDom",props) dom.unshift(h(node.type.toLowerCase(), { props: props, ref: node.id, @@ -106,7 +107,6 @@ //id鏄犲皠鍒癿ap锛岀敤鏉ュ悜涓婇亶鍘� toMapping(node){ if (node && node.id){ - //console.log("node=> " + node.id + " name:" + node.name + " type:" + node.type) this.nodeMap.set(node.id, node) } }, @@ -170,28 +170,30 @@ return node.type === 'CONCURRENTS' }, getRandomId(){ - console.log("tree鐢熸垚鑺傜偣id") - return ''; + return ' '; //return `HighDatas_${new Date().getTime().toString().substring(5)}${Math.round(Math.random()*9000+1000)}` }, //閫変腑涓�涓妭鐐� selectNode(node){ - this.$store.commit('selectedNode', node) + this.$store.commit('selectedNode', node); this.$emit('selectedNode', node) }, //澶勭悊鑺傜偣鎻掑叆閫昏緫 insertNode(type, parentNode){ + this.$refs['_root'].click() - //缂撳瓨涓�涓嬪悗闈㈢殑鑺傜偣 let afterNode = parentNode.children //鎻掑叆鏂拌妭鐐� parentNode.children = { + id: this.getRandomId(), parentId: parentNode.id, props: {}, - type: type, + type: type + } switch (type){ + case 'APPROVAL': this.insertApprovalNode(parentNode, afterNode); break; case 'SUBPROCESS' : this.insertApprovalNode(parentNode, afterNode); break; case 'TASK': this.insertTaskNode(parentNode); break; @@ -213,15 +215,17 @@ if (afterNode && afterNode.id){ afterNode.parentId = parentNode.children.id } - this.$set(parentNode.children, 'children', afterNode) + this.$set(parentNode.children, 'children', Object) + } this.$forceUpdate() }, insertApprovalNode(parentNode){ - console.log("tree 娣诲姞閫氳繃鑺傜偣",parentNode.children) this.$set(parentNode.children, "name", "瀹℃壒浜�") - console.log("tree-DefaultProps.APPROVAL_PROPS)",DefaultProps.APPROVAL_PROPS) + this.$set(parentNode.children, "props", this.$deepCopy(DefaultProps.APPROVAL_PROPS)) + + }, insertTaskNode(parentNode){ this.$set(parentNode.children, "name", "鍔炵悊浜�") @@ -255,6 +259,7 @@ name: "鏉′欢1", children:{} },{ + id: this.getRandomId(), parentId: parentNode.children.id, type: "CONDITION", @@ -336,7 +341,7 @@ }, //鍒犻櫎褰撳墠鑺傜偣 delNode(node){ - console.log("ProcessTree鍒犻櫎鑺傜偣", node) + //鑾峰彇璇ヨ妭鐐圭殑鐖惰妭鐐� let parentNode = this.nodeMap.get(node.parentId) if (parentNode){ @@ -435,6 +440,89 @@ } </script> -<style lang="scss" :src="$cssSrc" > +<style lang="less" scoped> +._root{ + margin: 0 auto; +} +.process-end{ + width: 60px; + margin: 0 auto; + margin-bottom: 20px; + border-radius: 15px; + padding: 5px 10px; + font-size: small; + color: #747474; + background-color: #f2f2f2; + box-shadow: 0 0 10px 0 #bcbcbc; +} +.primary-node{ + display: flex; + align-items: center; + flex-direction: column; +} +.branch-node{ + display: flex; + justify-content: center; + /*border-top: 2px solid #cccccc; + border-bottom: 2px solid #cccccc;*/ +} +.branch-node-item{ + position: relative; + display: flex; + background: #f5f6f6; + flex-direction: column; + align-items: center; + border-top: 2px solid #cccccc; + border-bottom: 2px solid #cccccc; + &:before{ + content: ""; + position: absolute; + top: 0; + left: calc(50% - 1px); + margin: auto; + width: 2px; + height: 100%; + background-color: #CACACA; + } + .line-top-left, .line-top-right, .line-bot-left, .line-bot-right{ + position: absolute; + width: 50%; + height: 4px; + background-color: #f5f6f6; + } + .line-top-left{ + top: -2px; + left: -1px; + } + .line-top-right{ + top: -2px; + right: -1px; + } + .line-bot-left{ + bottom: -2px; + left: -1px; + } + .line-bot-right{ + bottom: -2px; + right: -1px; + } +} +.add-branch-btn{ + position: absolute; + width: 80px; + .add-branch-btn-el{ + z-index: 999; + position: absolute; + top: -15px; + } +} + +.empty-node{ + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; +} </style> + -- Gitblit v1.8.0