瀏覽代碼

菜单资料维护,完成

luoyifan 3 年之前
父節點
當前提交
89fb6714a9
共有 1 個文件被更改,包括 79 次插入0 次删除
  1. 79 0
      src/controls/yvtree.js

+ 79 - 0
src/controls/yvtree.js

@@ -4,6 +4,7 @@ import {baseConfig} from "./base";
 import {lookupFn, lookupScope} from "../lib/lib";
 import {serverInvokeUrlTransform} from "../lib/config";
 import {calcObject, calcObjectFlat, invokeServer} from "../lib/systemLib";
+import {msg} from "../message";
 
 export default function () {
     Ext.define('Yvan.Tree', {
@@ -20,6 +21,84 @@ export default function () {
             this.superclass.constructor.call(this, newConfig)
         },
 
+        /**
+         * 在根节点上增加一个节点,会触发 addNode 事件
+         * @param props
+         */
+        addRoot(props) {
+            const me = this
+            const tableNode = me.getRootNode()
+            const fieldNode = tableNode.createNode(new Ext.data.NodeInterface({}))
+            if (_.isFunction(props)) {
+                props = props.call(this, parent)
+            }
+            _.forOwn(props, (value, key) => {
+                fieldNode.set(key, value)
+            })
+            const node = tableNode.appendChild(fieldNode)
+
+            me.ensureVisible(node)
+            me.setSelection(node)
+
+            me.fireEvent('addNode', me, {
+                parent: tableNode,
+                node: node,
+            });
+        },
+
+        addLast(props) {
+            const me = this
+            const sel = me.selModel.getSelection()
+            if (!sel || sel.length <= 0) {
+                msg('请选择一个要添加的同级节点路径')
+                return
+            }
+            const parent = sel[0].parentNode ? sel[0].parentNode : me.getRootNode()
+            const fieldNode = parent.createNode(new Ext.data.NodeInterface({}))
+            if (_.isFunction(props)) {
+                props = props.call(this, parent)
+            }
+            _.forOwn(props, (value, key) => {
+                fieldNode.set(key, value)
+            })
+            const node = parent.appendChild(fieldNode)
+            me.ensureVisible(node)
+            me.setSelection(node)
+
+            me.fireEvent('addNode', me, {
+                parent: parent,
+                node: node,
+            });
+        },
+
+        addChildren(props) {
+            const me = this
+            const sel = me.selModel.getSelection()
+            if (!sel || sel.length <= 0) {
+                msg('请选择一个要添加子节点的路径')
+                return
+            }
+
+            const parent = sel[0]
+            if (_.isFunction(props)) {
+                props = props.call(this, parent)
+            }
+            const fieldNode = parent.createNode(new Ext.data.NodeInterface({}))
+            _.forOwn(props, (value, key) => {
+                fieldNode.set(key, value)
+            })
+            const node = parent.appendChild(fieldNode)
+            parent.expand()
+
+            me.ensureVisible(node)
+            me.setSelection(node)
+
+            me.fireEvent('addNode', me, {
+                parent: parent,
+                node: node,
+            });
+        },
+
         initComponent() {
             const me = this
             const {config} = me