@Anonym wrote:
If there is no child node under the node, the folding button hides or cancels the display button
Code:
this.go_ini = function () { var goi = go.GraphObject.make; var model = goi(go.TreeModel); var myDiagram = goi(go.Diagram, "myDiagramDiv", { initialAutoScale: go.Diagram.UniformToFill, layout: goi(go.TreeLayout, { nodeSpacing: 5, layerSpacing: 30 }) }); myDiagram.nodeTemplate = goi(go.Node, "Horizontal", { selectionObjectName: "PANEL", isTreeExpanded: false, isTreeLeaf: false }, goi(go.Panel, "Auto", goi(go.Shape, { fill: "#091A22", stroke: null }), goi(go.TextBlock, { font: "bold 12px Helvetica, bold Arial, sans-serif", stroke: "white", margin: 3 }, new go.Binding("text", "name")) ), goi("TreeExpanderButton", { name: 'TREEBUTTON', width: 20, height: 20, alignment: go.Spot.TopRight, alignmentFocus: go.Spot.Center, click: function (e, obj) { var node = obj.part; if (node === null) return; e.handled = true; self.BOMexpandNode(node); } } ) ); myDiagram.linkTemplate = goi(go.Link, { selectable: false }, goi(go.Shape)); $.ajax({ url: openinfo.root + "workspace/getclassattr", type: "POST", data: { class_id: "0005", data_id: "007CB2B5-C1A3-4284-B998-F3F0B5D477C0" }, dataType: "json", beforeSend: function () { }, complete: function () { }, success: function (ret) { if (ret.code == "00000") { var itemCode = ret.data.ObjName.split('-')[0]; var BOMname="设计BOM"; myDiagram.model = new go.TreeModel([ { key: ret.data.ObjID, name: ret.data.ObjName,itemCode:itemCode, clsId: "0005", dataId: ret.data.ObjID ,BOMname:BOMname,everExpanded: false} ]); } else { var d = dialog({ title: '<i class="ace-icon fa fa-info-circle"></i> ' + '提示', content: ret.msg }); d.show(); self.options.onError(ret); } }, error: function () { } }); this.myDiagram = myDiagram; } this.BOMexpandNode = function (node) { var diagram = node.diagram; diagram.startTransaction("CollapseExpandTree"); // this behavior is specific to this incrementalTree sample: var data = node.data; if (!data.everExpanded) { diagram.model.setDataProperty(data, "everExpanded", true); self.ItemcreateSubTree(data, node); } // this behavior is generic for most expand/collapse tree buttons: if (node.isTreeExpanded) { diagram.commandHandler.collapseTree(node); } else { diagram.commandHandler.expandTree(node); } diagram.commitTransaction("CollapseExpandTree"); self.myDiagram.zoomToFit(); } this.ItemcreateSubTree = function (parentdata, nodes) { var model = self.myDiagram.model; var parent = self.myDiagram.findNodeForData(parentdata); $.ajax({ url: openinfo.root + "data/GetBomGetList", type: "POST", data: { Bomitemcode: nodes.data.itemCode, BomType: nodes.data.BOMname }, dataType: "json", success: function (ret) { if (ret.code == "00000") { console.log(ret.data) var retdata = ret.data; for (var i = 0; i < retdata.length; i++) { var childdata = { key: retdata[i].ItemCode, parent: parentdata.key, name: retdata[i].ItemCode+"-"+retdata[i].ItemName, itemCode: retdata[i].ItemCode, dataId: retdata[i].ID, BOMname: "设计BOM", }; // add to model.nodeDataArray and create a Node model.addNodeData(childdata); // position the new child node close to the parent var child = self.myDiagram.findNodeForData(childdata); child.location = parent.location; } } else { var d = dialog({ title: '<i class="ace-icon fa fa-info-circle"></i> ' + '提示', content: ret.msg }); d.show(); self.options.onError(ret); } }, error: function () { } }); }
Posts: 1
Participants: 1
