超碰91资源站-超碰97豆花-超碰97人妻-超碰97人人干-超碰97人人香蕉-超碰97天天操-超碰97在线资源站-超碰97资源站共享-超碰97资源站总站-超碰aa在线91-超碰av操-超碰爱爱

半岛外围网上直营

輕量級流程圖控件GoJS示例連載(二):流程圖

翻譯|使用教程|編輯:黃竹雯|2018-11-16 14:36:28.000|閱讀 1623 次

概述:輕量級流程圖控件GoJS流程圖示例

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

相關鏈接:

GoJS是一款功能強大,快速且輕量級的流程圖控件,可幫助你在JavaScript 和 HTML5 Canvas程序中創建流程圖,且極大地簡化你的JavaScript / Canvas 程序。

點擊查看產品詳情 | 最新試用版下載

FlowChart示例演示了GoJS的幾個關鍵功能,即, ,拖放行為, 以及圖表中的使用 。

鼠標懸停在節點上以查看其端口。從這些端口拖動以創建新的鏈接。選擇“鏈接”可以重新整形和重新鏈接它們。選擇節點然后單擊其TextBlock將允許您編輯文本(開始和結束節點除外)。

在頁面中查看此示例頁面的源代碼

function  init () { 
    if(window.goSamples)goSamples();  //這些樣本的init  - 你不需要調用這個
    var $ = go.GraphObject.make;  //為了簡潔定義模板

    myDiagram =
      $(go.Diagram,“myDiagramDiv”,   //必須命名或引用DIV HTML元素
        {
          initialContentAlignment:go.Spot.Center,
          allowDrop:true,   //必須為true才能接受來自Palette 
          “LinkDrawn”的 drop:showLinkLabel,   //這個DiagramEvent監聽器定義在
          “LinkRelinked” 下面:showLinkLabel,
          scrollsPageOnFocus:false,
           “undoManager.isEnabled”:true   //啟用undo&redo
        });

    //修改文檔時,在標題中添加“*”并啟用“保存”按鈕 
    myDiagram.addDiagramListener(“Modified”,function (e) { 
      var button = document.getElementById(“SaveButton”);
       if( button)button.disabled =!myDiagram.isModified;
       var idx = document.title.indexOf(“*”);
       if(myDiagram.isModified){
         if(idx < 0)document.title + = “*” ;
      } else {
         if(idx> = 0)document.title = document.title.substr(0,idx);
      }
    });

    //節點模板的幫助程序定義

    function  nodeStyle () { 
      return [
         // Node.location來自節點數據的“loc”屬性,
        //由Point.parse靜態方法轉換。
        //如果更改了Node.location,它將更新節點數據的“loc”屬性,
        //使用Point.stringify靜態方法轉換回來。
        new go.Binding( “location”, “loc”,go.Point.parse).makeTwoWay(go.Point.stringify),
        {
          // Node.location位于每個節點的中心
          locationSpot:go.Spot.Center
        }
      ]。
    }

    //定義用于創建通常透明的“端口”的函數。
    //“name”用作GraphObject.portId,
    //“align”用于確定端口相對于節點主體的位置,
    //“spot”用于控制鏈接的連接方式使用端口以及端口
    // 
    是否沿節點一側延伸,//布爾“輸出”和“輸入”參數控制用戶是否可以從端口繪制鏈接或從端口繪制鏈接。
    function  makePort (name,align,spot,output,input) { 
      var horizo??ntal = align.equals(go.Spot.Top)|| align.equals(go.Spot.Bottom);
      
      //當鼠標經過它時變成彩色
      返回 $(go.Shape,
        {
          fill:“transparent”,   //更改為mouseEnter事件處理程序中的顏色 
          strokeWidth:0,   //沒有筆畫 
          寬度:水平?NaN:8,   //如果不是水平拉伸,只有8個寬度 
          :水平?NaN:8,   //如果不垂直拉伸,只需8個高 
          對齊:對齊,   //對齊主形狀上的端口
          stretch :(水平?go.GraphObject.Horizo??ntal:go.GraphObject.Vertical),
          portId:name,   //聲明此對象是 
          來自Spot 的“端口”:spot,   //聲明鏈接可以在此端口連接的 
          地址fromLinkable:output,   //聲明用戶是否可以從此處繪制鏈接到 
          Spot:spot,   //聲明鏈接可以在此端口連接到鏈接的 
          位置:input,   //聲明用戶是否可以在此處繪制鏈接 
          :“指針”,   //顯示不同的光標以指示潛在的鏈接點 
          mouseEnter:function (e,port) {   / / PORT參數將是這個Shape 
            if(!e.diagram.isReadOnly)port.fill = “rgba(255,0,255,0.5)” ;
          },
          mouseLeave:function (e,port) { 
            port.fill = “transparent” ;
          }
        });
    }

    function  textStyle () { 
      return {
        字體:“bold 11pt Helvetica,Arial,sans-serif”,
        中風:“whitesmoke”
      }
    }

    //定義常規節點的節點模板

    myDiagram.nodeTemplateMap.add(“”,   //默認類別 
      $(go.Node,“Table”,nodeStyle(),
         //主要對象是一個圍繞TextBlock的面板,其形狀 
        為矩形 $(go.Panel,“自動”,
          $(go.Shape,“矩形”,
            {fill:“#00A9C9”,strokeWidth:0 },
             new go.Binding(“figure”,“figure”)),
          $(go.TextBlock,textStyle(),
            {
              保證金:8,
              maxSize:new go.Size(160,NaN),
              換行:go.TextBlock.WrapFit,
              可編輯:是的
            },
            new go.Binding(“text”)。makeTwoWay())
        )
        //四個命名端口,每邊一個: 
        makePort(“T”,go.Spot.Top,go.Spot.TopSide,false,true),
        makePort(“L”,go.Spot.Left,go.Spot.LeftSide,true,true),
        makePort(“R”,go.Spot.Right,go.Spot.RightSide,true,true),
        makePort(“B”,go.Spot.Bottom,go.Spot.BottomSide,true,false)
      ));

    myDiagram.nodeTemplateMap.add(“有條件的”,
      $(go.Node,“Table”,nodeStyle(),
         //主要對象是一個圍繞TextBlock的面板,其矩形形狀 
        為$(go.Panel,“Auto”,
          $(go.Shape,“鉆石”,
            {fill:“#00A9C9”,strokeWidth:0 },
             new go.Binding(“figure”,“figure”)),
          $(go.TextBlock,textStyle(),
            {
              保證金:8,
              maxSize:new go.Size(160,NaN),
              換行:go.TextBlock.WrapFit,
              可編輯:是的
            },
            new go.Binding(“text”)。makeTwoWay())
        )
        //四個命名端口,每邊一個: 
        makePort(“T”,go.Spot.Top,go.Spot.Top,false,true),
        makePort(“L”,go.Spot.Left,go.Spot.Left,true,true),
        makePort(“R”,go.Spot.Right,go.Spot.Right,true,true),
        makePort(“B”,go.Spot.Bottom,go.Spot.Bottom,true,false)
      ));

    myDiagram.nodeTemplateMap.add(“開始”,
      $(go.Node,“Table”,nodeStyle(),
        $(go.Panel,“自動”,
          $(go.Shape,“Circle”,
            {minSize屬性:新 go.Size(40,40),填充:“#79C900”,strokeWidth:0 }),
          $(go.TextBlock,“Start”,textStyle(),
             new go.Binding(“text”))
        )
        //三個命名端口,除了頂部之外每邊一個,只輸出: 
        makePort(“L”,go.Spot.Left,go.Spot.Left,true,false),
        makePort(“R”,go.Spot.Right,go.Spot.Right,true,false),
        makePort(“B”,go.Spot.Bottom,go.Spot.Bottom,true,false)
      ));

    myDiagram.nodeTemplateMap.add(“結束”,
      $(go.Node,“Table”,nodeStyle(),
        $(go.Panel,“自動”,
          $(go.Shape,“Circle”,
            {minSize屬性:新 go.Size(40,40),填充:“#DC3C00”,strokeWidth:0 }),
          $(go.TextBlock,“End”,textStyle(),
             new go.Binding(“text”))
        )
        //三個命名端口,每邊一個除了底部,只有輸入: 
        makePort(“T”,go.Spot.Top,go.Spot.Top,false,true),
        makePort(“L”,go.Spot.Left,go.Spot.Left,false,true),
        makePort(“R”,go.Spot.Right,go.Spot.Right,false,true)
      ));

    myDiagram.nodeTemplateMap.add(“評論”,
      $(go.Node,“Auto”,nodeStyle(),
        $(go.Shape,“檔案”,
          {fill:“#EFFAB4”,strokeWidth:0 }),
        $(go.TextBlock,textStyle(),
          {
            保證金:5,
            maxSize:new go.Size(200,NaN),
            換行:go.TextBlock.WrapFit,
            textAlign:“center”,
            可編輯:是的,
            字體:“bold 12pt Helvetica,Arial,sans-serif”,
            中風:'#454545'
          },
          new go.Binding(“text”)。makeTwoWay())
         //沒有端口,因為沒有鏈接允許連接評論
      ));


    //替換linkTemplateMap中的默認鏈接模板
    myDiagram.linkTemplate =
      $(go.Link,   //整個鏈接面板
        {
          路由:go.Link.AvoidsNodes,
          曲線:go.Link.JumpOver,
          角落:5,toShortLength:4,
          relinkable來自:true,
          relinkableTo:是的,
          reshapable:是的,
          resegmentable:true,
           //鼠標懸停巧妙地突出顯示鏈接: 
          mouseEnter:function (e,link) { link.findObject(“HIGHLIGHT”)。stroke = “rgba(30,144,255,0.2)” ; },
          mouseLeave:function (e,link) { link.findObject(“HIGHLIGHT”)。stroke = “transparent” ; },
          selectionAdorned:false
        },
        new go.Binding(“points”)。makeTwoWay(),
        $(go.Shape,   //高亮形狀,通常透明 
          {isPanelMain:true,strokeWidth:8,筆畫:“透明”,名稱:“HIGHLIGHT” }),
        $(go.Shape,   //鏈接路徑形狀 
          {isPanelMain:true,stroke:“gray”,strokeWidth:2 },
           new go.Binding(“stroke”,“isSelected”,function (sel) {  return sel?“ dodgerblue“:”grey“ ;})。ofObject()),
        $(go.Shape,   //箭頭 
          {toArrow:“標準”,strokeWidth:0,填充:“灰色” }),
        $(go.Panel,“Auto”,   //鏈接標簽,通常不可見 
          {visible:false,name:“LABEL”,segmentIndex:2,segmentFraction:0.5 },
           new go.Binding(“visible”,“visible” “)。makeTwoWay(),
          $(go.Shape,“ RoundedRectangle ”,   //標簽形狀 
            {fill:“#F8F8F8”,strokeWidth:0 }),
          $(go.TextBlock,“是”,   //標簽
            {
              textAlign:“center”,
              字體:“10pt helvetica,arial,sans-serif”,
              中風:“#333333”,
              可編輯:是的
            },
            new go.Binding(“text”)。makeTwoWay())
        )
      );

    //如果出現“條件”節點,則可以看到鏈接標簽。
    //此偵聽器由“LinkDrawn”和“LinkRelinked”DiagramEvents調用。
    function  showLinkLabel (e) { 
      var label = e.subject.findObject(“LABEL”);
      if(label!== null)label.visible =(e.subject.fromNode.data.category === “Conditional”);
    }

    // LinkingTool和RelinkingTool使用的臨時鏈接也是正交的:
    myDiagram.toolManager.linkingTool.temporaryLink.routing = go.Link.Orthogonal;
    myDiagram.toolManager.relinkingTool.temporaryLink.routing = go.Link.Orthogonal;

    加載();  //從一些JSON文本加載初始圖表

    //初始化頁面左側的Palette
    myPalette =
      $(go.Palette,“myPaletteDiv”,   //必須命名或引用DIV HTML元素
        {
          scrollsPageOnFocus:false,
          nodeTemplateMap:myDiagram.nodeTemplateMap,   //共享myDiagram 
          模型使用的模板:new go.GraphLinksModel([   //指定Palette的內容 
            {category:“Start”,text:“Start” },
            {text:“Step” },
            {category:“Conditional”,text:“???” },
            {category:“End”,text:“End” },
            {category:“Comment”,text:“Comment” }
          ])
        });
  } //結束init


  //以JSON格式顯示圖表模型,用戶可以編輯
  函數 save () { 
    document.getElementById(“mySavedModel”)。value = myDiagram.model.toJson();
    myDiagram.isModified = false ;
  }
  function  load () { 
    myDiagram.model = go.Model.fromJson(document.getElementById( “mySavedModel”)。 value);
  }

  //通過打開一個新窗口來打印圖表,該窗口包含每個頁面
  函數 printDiagram ()
    的圖表內容的SVG圖像{ var svgWindow = window.open();
    if(!svgWindow)返回 ;  //未能打開一個新的窗口
    變種 printSize = 新 go.Size(700,960);
    var bnds = myDiagram.documentBounds;
    var x = bnds.x;
    var y = bnds.y;
    while(y <bnds.bottom){
       while(x <bnds.right){
         var svg = myDiagram.makeSVG({scale:1.0,position:new go.Point(x,y),size:printSize});
        svgWindow.document.body.appendChild(SVG);
        x + = printSize.width;
      }
      x = bnds.x;
      y + = printSize.height;
    }
    setTimeout(function () { svgWindow.print();},1);
  }

< div  id = “sample” > 
  < div  style = “width:100%; display:flex; justify-content:space-between” > 
    < div  id = “myPaletteDiv”  style = “width:100px; margin-right:2px ; background-color:whitesmoke; border:solid 1px black“ > </ div > 
    < div  id = ”myDiagramDiv“  style = ”flex-grow:1; height:750px; border:solid 1px black“ > </ div > 
  < / div >
  < p >
  FlowChart示例演示了GoJS的幾個關鍵功能,
  即< 一個 HREF = “../intro/palette.html” >調色板</ 一 > S,
   < 一 HREF = “../intro/links.html” >可鏈接節點</ 一 >,拖/放行為,
   < 一個 HREF = “../intro/textBlocks.html” >文本編輯</ 一 >,以及使用
   < 一個 HREF = “../intro/templateMaps.html” >節點模板地圖</ 一 >在圖表中。
  </ p > 
  < p >
  鼠標懸停在節點上以查看其端口。
  從這些端口拖動以創建新的鏈接。
  選擇“鏈接”可以重新整形和重新鏈接它們。
  選擇一個節點,然后單擊其TextBlock將允許
  您要編輯文本(開始和結束節點除外)。
  </ p > 
  < button  id = “SaveButton”  onclick = “save()” > Save </ button > 
  < button  onclick = “load()” > Load </ button >
  圖模型以JSON格式保存:
  < textarea  id = “mySavedModel”  style = “width:100%; height:300px” > {“class”:“go.GraphLinksModel”,
  “linkFromPortIdProperty”:“fromPort”,
  “linkToPortIdProperty”:“toPort”,
  “nodeDataArray”:[
{“category”:“Comment”,“loc”:“360 -10”,“text”:“Kookie Brittle”,“key”: -  13},
{“key”: -  1,“category”:“Start”,“loc”:“175 0”,“text”:“Start”},
{“key”:0,“loc”:“ -  5 75”,“text”:“將烤箱預熱到375 F”},
{“key”:1,“loc”:“175 100”,“text”:“在一個碗里,混合:1杯人造黃油,1.5茶匙香草,1茶匙鹽”},
{“key”:2,“loc”:“175 200”,“text”:“逐漸打入1杯糖和2杯篩面粉”},
{“key”:3,“loc”:“175 290”,“text”:“混合6盎司(1杯)雀巢的半甜巧克力醬”},
{“key”:4,“loc”:“175 380”,“text”:“均勻按壓到15x10x1 pan”},
{“key”:5,“loc”:“355 85”,“text”:“精選1/2杯你選擇的堅果”},
{“key”:6,“loc”:“175 450”,“text”:“頂上撒上堅果”},
{“key”:7,“loc”:“175 515”,“text”:“烘烤25分鐘,讓涼爽”},
{“key”:8,“loc”:“175 585”,“text”:“切成矩形網格”},
{“key”: -  2,“category”:“End”,“loc”:“175 660”,“text”:“Enjoy!”}
 ]
  “linkDataArray”:[
{“from”:1,“to”:2,“fromPort”:“B”,“toPort”:“T”},
{“from”:2,“to”:3,“fromPort”:“B”,“toPort”:“T”},
{“from”:3,“to”:4,“fromPort”:“B”,“toPort”:“T”},
{“from”:4,“to”:6,“fromPort”:“B”,“toPort”:“T”},
{“from”:6,“to”:7,“fromPort”:“B”,“toPort”:“T”},
{“from”:7,“to”:8,“fromPort”:“B”,“toPort”:“T”},
{“from”:8,“to”: -  2,“fromPort”:“B”,“toPort”:“T”},
{“from”: -  1,“to”:0,“fromPort”:“B”,“toPort”:“T”},
{“from”: -  1,“to”:1,“fromPort”:“B”,“toPort”:“T”},
{“from”: -  1,“to”:5,“fromPort”:“B”,“toPort”:“T”},
{“from”:5,“to”:4,“fromPort”:“B”,“toPort”:“T”},
{“from”:0,“to”:4,“fromPort”:“B”,“toPort”:“T”}
 ]}
  </ textarea > 
  < button  onclick = “printDiagram()” >使用SVG打印圖</ button > 
</ div >

在GitHub上查看此示例頁面的源代碼

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Flowchart</title>
<meta name="description" content="Interactive flowchart diagram implemented by GoJS in JavaScript for HTML." />
<!-- Copyright 1998-2018 by Northwoods Software Corporation. -->
<meta charset="UTF-8">
<script src="../release/go.js"></script>
<script src="../assets/js/goSamples.js"></script>  <!-- this is only for the GoJS Samples framework -->
<script id="code">
  function init() {
    if (window.goSamples) goSamples();  // init for these samples -- you don't need to call this
    var $ = go.GraphObject.make;  // for conciseness in defining templates
    myDiagram =
      $(go.Diagram, "myDiagramDiv",  // must name or refer to the DIV HTML element
        {
          initialContentAlignment: go.Spot.Center,
          allowDrop: true,  // must be true to accept drops from the Palette
          "LinkDrawn": showLinkLabel,  // this DiagramEvent listener is defined below
          "LinkRelinked": showLinkLabel,
          scrollsPageOnFocus: false,
          "undoManager.isEnabled": true  // enable undo & redo
        });
    // when the document is modified, add a "*" to the title and enable the "Save" button
    myDiagram.addDiagramListener("Modified", function(e) {
      var button = document.getElementById("SaveButton");
      if (button) button.disabled = !myDiagram.isModified;
      var idx = document.title.indexOf("*");
      if (myDiagram.isModified) {
        if (idx < 0) document.title += "*";
      } else {
        if (idx >= 0) document.title = document.title.substr(0, idx);
      }
    });
    // helper definitions for node templates
    function nodeStyle() {
      return [
        // The Node.location comes from the "loc" property of the node data,
        // converted by the Point.parse static method.
        // If the Node.location is changed, it updates the "loc" property of the node data,
        // converting back using the Point.stringify static method.
        new go.Binding("location", "loc", go.Point.parse).makeTwoWay(go.Point.stringify),
        {
          // the Node.location is at the center of each node
          locationSpot: go.Spot.Center
        }
      ];
    }
    // Define a function for creating a "port" that is normally transparent.
    // The "name" is used as the GraphObject.portId,
    // the "align" is used to determine where to position the port relative to the body of the node,
    // the "spot" is used to control how links connect with the port and whether the port
    // stretches along the side of the node,
    // and the boolean "output" and "input" arguments control whether the user can draw links from or to the port.
    function makePort(name, align, spot, output, input) {
      var horizontal = align.equals(go.Spot.Top) || align.equals(go.Spot.Bottom);
      // the port is basically just a transparent rectangle that stretches along the side of the node,
      // and becomes colored when the mouse passes over it
      return $(go.Shape,
        {
          fill: "transparent",  // changed to a color in the mouseEnter event handler
          strokeWidth: 0,  // no stroke
          width: horizontal ? NaN : 8,  // if not stretching horizontally, just 8 wide
          height: !horizontal ? NaN : 8,  // if not stretching vertically, just 8 tall
          alignment: align,  // align the port on the main Shape
          stretch: (horizontal ? go.GraphObject.Horizontal : go.GraphObject.Vertical),
          portId: name,  // declare this object to be a "port"
          fromSpot: spot,  // declare where links may connect at this port
          fromLinkable: output,  // declare whether the user may draw links from here
          toSpot: spot,  // declare where links may connect at this port
          toLinkable: input,  // declare whether the user may draw links to here
          cursor: "pointer",  // show a different cursor to indicate potential link point
          mouseEnter: function(e, port) {  // the PORT argument will be this Shape
            if (!e.diagram.isReadOnly) port.fill = "rgba(255,0,255,0.5)";
          },
          mouseLeave: function(e, port) {
            port.fill = "transparent";
          }
        });
    }
    function textStyle() {
      return {
        font: "bold 11pt Helvetica, Arial, sans-serif",
        stroke: "whitesmoke"
      }
    }
    // define the Node templates for regular nodes
    myDiagram.nodeTemplateMap.add("",  // the default category
      $(go.Node, "Table", nodeStyle(),
        // the main object is a Panel that surrounds a TextBlock with a rectangular Shape
        $(go.Panel, "Auto",
          $(go.Shape, "Rectangle",
            { fill: "#00A9C9", strokeWidth: 0 },
            new go.Binding("figure", "figure")),
          $(go.TextBlock, textStyle(),
            {
              margin: 8,
              maxSize: new go.Size(160, NaN),
              wrap: go.TextBlock.WrapFit,
              editable: true
            },
            new go.Binding("text").makeTwoWay())
        ),
        // four named ports, one on each side:
        makePort("T", go.Spot.Top, go.Spot.TopSide, false, true),
        makePort("L", go.Spot.Left, go.Spot.LeftSide, true, true),
        makePort("R", go.Spot.Right, go.Spot.RightSide, true, true),
        makePort("B", go.Spot.Bottom, go.Spot.BottomSide, true, false)
      ));
    myDiagram.nodeTemplateMap.add("Conditional",
      $(go.Node, "Table", nodeStyle(),
        // the main object is a Panel that surrounds a TextBlock with a rectangular Shape
        $(go.Panel, "Auto",
          $(go.Shape, "Diamond",
            { fill: "#00A9C9", strokeWidth: 0 },
            new go.Binding("figure", "figure")),
          $(go.TextBlock, textStyle(),
            {
              margin: 8,
              maxSize: new go.Size(160, NaN),
              wrap: go.TextBlock.WrapFit,
              editable: true
            },
            new go.Binding("text").makeTwoWay())
        ),
        // four named ports, one on each side:
        makePort("T", go.Spot.Top, go.Spot.Top, false, true),
        makePort("L", go.Spot.Left, go.Spot.Left, true, true),
        makePort("R", go.Spot.Right, go.Spot.Right, true, true),
        makePort("B", go.Spot.Bottom, go.Spot.Bottom, true, false)
      ));
    myDiagram.nodeTemplateMap.add("Start",
      $(go.Node, "Table", nodeStyle(),
        $(go.Panel, "Auto",
          $(go.Shape, "Circle",
            { minSize: new go.Size(40, 40), fill: "#79C900", strokeWidth: 0 }),
          $(go.TextBlock, "Start", textStyle(),
            new go.Binding("text"))
        ),
        // three named ports, one on each side except the top, all output only:
        makePort("L", go.Spot.Left, go.Spot.Left, true, false),
        makePort("R", go.Spot.Right, go.Spot.Right, true, false),
        makePort("B", go.Spot.Bottom, go.Spot.Bottom, true, false)
      ));
    myDiagram.nodeTemplateMap.add("End",
      $(go.Node, "Table", nodeStyle(),
        $(go.Panel, "Auto",
          $(go.Shape, "Circle",
            { minSize: new go.Size(40, 40), fill: "#DC3C00", strokeWidth: 0 }),
          $(go.TextBlock, "End", textStyle(),
            new go.Binding("text"))
        ),
        // three named ports, one on each side except the bottom, all input only:
        makePort("T", go.Spot.Top, go.Spot.Top, false, true),
        makePort("L", go.Spot.Left, go.Spot.Left, false, true),
        makePort("R", go.Spot.Right, go.Spot.Right, false, true)
      ));
    myDiagram.nodeTemplateMap.add("Comment",
      $(go.Node, "Auto", nodeStyle(),
        $(go.Shape, "File",
          { fill: "#EFFAB4", strokeWidth: 0 }),
        $(go.TextBlock, textStyle(),
          {
            margin: 5,
            maxSize: new go.Size(200, NaN),
            wrap: go.TextBlock.WrapFit,
            textAlign: "center",
            editable: true,
            font: "bold 12pt Helvetica, Arial, sans-serif",
            stroke: '#454545'
          },
          new go.Binding("text").makeTwoWay())
        // no ports, because no links are allowed to connect with a comment
      ));
    // replace the default Link template in the linkTemplateMap
    myDiagram.linkTemplate =
      $(go.Link,  // the whole link panel
        {
          routing: go.Link.AvoidsNodes,
          curve: go.Link.JumpOver,
          corner: 5, toShortLength: 4,
          relinkableFrom: true,
          relinkableTo: true,
          reshapable: true,
          resegmentable: true,
          // mouse-overs subtly highlight links:
          mouseEnter: function(e, link) { link.findObject("HIGHLIGHT").stroke = "rgba(30,144,255,0.2)"; },
          mouseLeave: function(e, link) { link.findObject("HIGHLIGHT").stroke = "transparent"; },
          selectionAdorned: false
        },
        new go.Binding("points") DIV HTML element
        {
          scrollsPageOnFocus: false,
          nodeTemplateMap: myDiagram.nodeTemplateMap,  // share the templates used by myDiagram
          model: new go.GraphLinksModel([  // specify the contents of the Palette
            { category: "Start", text: "Start" },
            { text: "Step" },
            { category: "Conditional", text: "???" },
            { category: "End", text: "End" },
            { category: "Comment", text: "Comment" }
          ])
        });
  } // end init
  // Show the diagram's model in JSON format that the user may edit
  function save() {
    document.getElementById("mySavedModel").value = myDiagram.model.toJson();
    myDiagram.isModified = false;
  }
  function load() {
    myDiagram.model = go.Model.fromJson(document.getElementById("mySavedModel").value);
  }
  // print the diagram by opening a new window holding SVG images of the diagram contents for each page
  function printDiagram() {
    var svgWindow = window.open();
    if (!svgWindow) return;  // failure to open a new Window
    var printSize = new go.Size(700, 960);
    var bnds = myDiagram.documentBounds;
    var x = bnds.x;
    var y = bnds.y;
    while (y < bnds.bottom) {
      while (x < bnds.right) {
        var svg = myDiagram.makeSVG({ scale: 1.0, position: new go.Point(x, y), size: printSize });
        svgWindow.document.body.appendChild(svg);
        x += printSize.width;
      }
      x = bnds.x;
      y += printSize.height;
    }
    setTimeout(function() { svgWindow.print(); }, 1);
  }
</script>
</head>
<body onload="init()">
<div id="sample">
  <div style="width: 100%; display: flex; justify-content: space-between">
    <div id="myPaletteDiv" style="width: 100px; margin-right: 2px; background-color: whitesmoke; border: solid 1px black"></div>
    <div id="myDiagramDiv" style="flex-grow: 1; height: 750px; border: solid 1px black"></div>
  </div>
  <p>
  The FlowChart sample demonstrates several key features of GoJS,
  namely <a href="../intro/palette.html">Palette</a>s,
  <a href="../intro/links.html">Linkable nodes</a>, Drag/Drop behavior,
  <a href="../intro/textBlocks.html">Text Editing</a>, and the use of
  <a href="../intro/templateMaps.html">Node Template Maps</a> in Diagrams.
  </p>
  <p>
  Mouse-over a Node to view its ports.
  Drag from these ports to create new Links.
  Selecting Links allows you to re-shape and re-link them.
  Selecting a Node and then clicking its TextBlock will allow
  you to edit text (except on the Start and End Nodes).
  </p>
  <button id="SaveButton" onclick="save()">Save</button>
  <button onclick="load()">Load</button>
  Diagram Model saved in JSON format:
  <textarea id="mySavedModel" style="width:100%;height:300px">
{ "class": "go.GraphLinksModel",
  "linkFromPortIdProperty": "fromPort",
  "linkToPortIdProperty": "toPort",
  "nodeDataArray": [
{"category":"Comment", "loc":"360 -10", "text":"Kookie Brittle", "key":-13},
{"key":-1, "category":"Start", "loc":"175 0", "text":"Start"},
{"key":0, "loc":"-5 75", "text":"Preheat oven to 375 F"},
{"key":1, "loc":"175 100", "text":"In a bowl, blend: 1 cup margarine, 1.5 teaspoon vanilla, 1 teaspoon salt"},
{"key":2, "loc":"175 200", "text":"Gradually beat in 1 cup sugar and 2 cups sifted flour"},
{"key":3, "loc":"175 290", "text":"Mix in 6 oz (1 cup) Nestle's Semi-Sweet Chocolate Morsels"},
{"key":4, "loc":"175 380", "text":"Press evenly into ungreased 15x10x1 pan"},
{"key":5, "loc":"355 85", "text":"Finely chop 1/2 cup of your choice of nuts"},
{"key":6, "loc":"175 450", "text":"Sprinkle nuts on top"},
{"key":7, "loc":"175 515", "text":"Bake for 25 minutes and let cool"},
{"key":8, "loc":"175 585", "text":"Cut into rectangular grid"},
{"key":-2, "category":"End", "loc":"175 660", "text":"Enjoy!"}
 ],
  "linkDataArray": [
{"from":1, "to":2, "fromPort":"B", "toPort":"T"},
{"from":2, "to":3, "fromPort":"B", "toPort":"T"},
{"from":3, "to":4, "fromPort":"B", "toPort":"T"},
{"from":4, "to":6, "fromPort":"B", "toPort":"T"},
{"from":6, "to":7, "fromPort":"B", "toPort":"T"},
{"from":7, "to":8, "fromPort":"B", "toPort":"T"},
{"from":8, "to":-2, "fromPort":"B", "toPort":"T"},
{"from":-1, "to":0, "fromPort":"B", "toPort":"T"},
{"from":-1, "to":1, "fromPort":"B", "toPort":"T"},
{"from":-1, "to":5, "fromPort":"B", "toPort":"T"},
{"from":5, "to":4, "fromPort":"B", "toPort":"T"},
{"from":0, "to":4, "fromPort":"B", "toPort":"T"}
 ]}
  </textarea>
  <button onclick="printDiagram()">Print Diagram Using SVG</button>
</div>
</body>
</html>

想要查看在線操作示例,可以點擊此處


標簽:流程圖

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn


為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
利記足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 真人boyu·博魚滾球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 最大網上PM娛樂城盤口(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規雷火競技官方買球(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 雷火競技權威十大網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) boyu·博魚信譽足球官網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 權威188BET足球網(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 正規188BET足球大全(官方)網站/網頁版登錄入口/手機版登錄入口-最新版(已更新) 东京热一区二区三区 | 国产1精品国产亚洲区久久 国产1卡2卡三卡四卡久久网站 | 国产二级一片内射视频插放 | 国产成人涩涩涩视频在线观看 | 国产无套护士丝袜在线观看 | 国产片婬乱一级毛片a | 成人午夜视频在线观看 | 国产一区二区精品久久 | 成人欧美一区在线视频在线观看 | 国产粉嫩一区二区三区不卡a | 91精品欧美一区二区三区 | 91精品啪在线观看国产电影 | 国产福利在线观看不卡视频 | 国产a国产 | 精品久久99久久久久胖女人 | 国产精品v毛片免费看观看 国产精品v欧美 | 2025年最新偷拍视频一区 | 国产精品午夜未成人免费观看 | 2025国产精品国产精华 | 国产高清av在线播放 | av一区二区三区在线播放 | 91国产丝袜在线播放动漫 | 久久精品无码一区二区毛片 | 国产精品欧美三区 | 国产美女无套粉嫩白浆在线 | av忘忧草18| 国产一级片内射免费视频播放 | 国产精品成人免费视频99 | av无码网站一区二区 | 国产福利小视频在 | 国产精品多人p | 精品久久久无码人妻中文字幕麻豆 | 国产自产免费精品一区 | 国产成人无码久久久天美传媒 | 成人爽a毛片在线视频 | 国产国拍亚洲精品无码 | 国产在线无码播放不卡视频 | 国产精品午夜未成人免费观看 | 精品国产91久久久久久动漫 | 国产精品亚洲片在线观看不 | 国产午夜亚洲精品不卡在线观看 | 91久久精品无码一区二区免费 | 国产在线视精品在亚洲 | 91大片淫黄大片在线天堂 | 国产午夜精品一区二区三区 | 国产综合成人色产 | 国产成人高清精品免费软件 | 国产尤物一区二区在线播放 | 国产精品成人免费福利 | 国产精品v欧美精品v日本精品动漫 | 国产精品不卡一区二区三区四区 | 国内精品久久无码影视 | 18禁成人无遮羞网站免费 | 国产爆乳无码精品视频 | 国产超a级动作大片中文字幕 | a级毛片免费看久久久 | 国产精品日韩无码中文字幕 | 朝桐光亚洲专区在线中文字幕 | 韩国福利影视一区二区三区 | 丰满又大的胸 | 91进入蜜桃臀在线播 | 国产一区二区成人电影 | 国产+人+综合+亚洲 国产+人人+视频 | 精品国产乱码91久久久久 | 国产激情视频在线观看免费播放 | 国产美女露脸一级毛片 | 国产无套粉嫩白浆在线精品 | 国产草莓视频无码a在线观看 | 成人免费无码大片a毛片抽搐 | 国产一区二区三区亚洲精选 | 国产精品初高中精品久久 | 国产美女久久精品香蕉欧美 | 国产午夜无码福利在线看网站 | 18成禁人视频免费 | 国产无码理论视频网 | 精品少妇人妻av免费久久洗澡 | 2025精品久久久久久中文字 | 国产a一级毛片精品高清乱码 | 精品视频二区久久久夜 | 国产欧美精品在线一区二区三 | 国产精品一区看片 | av亚欧洲日产国码无 | 国产一区二区三区成人欧美日韩在 | 国产激情一区二区三区四区 | 国产成人亚洲精品青草 | 成人播放日韩在线播放视频视频 | 国产精品一区二区三区视频 | 国产美女精品自在线拍免费 | 国产精品不卡无码av在线播 | 国产午夜精品av一区二区麻豆 | 国产精品麻豆免费版 | 国产三级农村妇女野外 | 激情欧美日韩国产在线专区 | 国产午夜人成在线视频 | 极品嫩模一区二区三区 | 精品人妻中文字幕有码在线 | 国产成人精品久久一区二区三区 | 国产产免费av片 | 国产成人亚洲精品无码车a 国产成人亚洲精品无码青app | 精品国产91麻豆自产在线观看 | 国产精品午夜一区二区欲梦 | 国产精品对白刺激久久久 | 精品人妻大屁股白浆无码下载 | 91欧洲在线视精品在亚洲 | 国产精品嫩草影 | 国精产品一区二区三区四区糖心 | 国产女同玩sm调教在线观看 | 国内亚洲欧美一区二区三区 | 国产精品成人一区二区 | 东京热无码一 | 97人妻久久公开视频 | 国产在线视频欧美一区 | 国产黄网站视频在线观看 | 丰满老熟妇好大bbbbb | 东京一本到一区二区三区 | 精品精品国产自在97香蕉蜜芽 | 99久久精品国产国产毛片小说 | 99国产成人综合久久精品77 | 91成人网站在线观看 | 国产精品色婷婷99久久精品 | 国产精品每日更新在线观看 | 精品久久无码视频一区 | 国产人妻久久精品一区 | 国产黄色视频在线观看免费 | 91成人啪国产啪永久地址 | 国产亚洲综合色就色 | 国产精品无码亚洲精品蜜桃传媒 | 国产精品果冻麻豆精东天美 | 国产区亚洲区欧美区 | 国产一级一国产一级毛片 | 国内外成人免费在线视频 | 成人精品国产一区二区三区 | 国产精品蜜臀在线观看 | 国产精品边做奶水狂喷无码 | 成人黄色国产在线播放 | a亚洲欧美中文日 | 91精品国产网曝事件门 | 国产成人在线免费视频 | 二区在线 | 国产精品爆乳亚洲专区无码牛牛 | 国产激情无码视频在线播放性色 | 国产av精国产传媒 | 动漫精品中文无码卡通动漫 | 国产午夜精品一区二区三区老 | 国产内射爽爽大片视频社区在线 | 国产成人精品三级在线 | 国产成人精品国内自产色 | 国产专区在线观看无码 | 国产a丝袜尤物老师流白浆 国产a网欧美午夜性 | 精品国产一区二区三区不 | 国产毛片片精品天天看视频 | 精品久久久无码人妻中文字幕麻豆 | 18国产精品白浆在线观看免费 | 国产精品va在线观看浪 | 国产一区白丝 | 国产在线高跟丝袜足交 | 国产精品成人亚洲一区二区 | 国产午夜福利片国产一级a片 | 精品国产一区二区三区日日嗨 | 国产a级理论片免费播放 | av在线中文字幕不卡电 | 国产97人人超碰cao蜜芽国产 | 国产精品爽爽va吃奶在线观看 | 国产不卡精品一区二区三区 | 国产麻豆婷婷 | 韩国无码中文字幕在线视频 | av无码中文字幕不卡一区二区三区 | 国产一区二区不卡 | 18禁男女无遮挡啪啪网站 | 国产色视频自在线观看 | 丰满大胸年轻继坶hd | 国产av一区二区精品久 | 国产一区二区三区欧美精品 | 经典国产三级 | 国产精品丝袜高跟鞋 | 国产无你高清 | 国产免费午夜福利蜜芽无码 | 国产精品一线二线三线精华液 | 国产无码免费在线观看网站 | 国自产成人免费视频在线播放 | 成人免费一区二区三区视频软件 | 国偷自产一区二区三区蜜臀 | 精品国产成人一区二区不卡在线 | 国产精品香蕉在线观看 | 国产免费午夜福利在在线 | 精品人妻无码中字系列 | 国产三级电影在线观看 | 91在线最新精品国产 | 精品无码人妻一区二区三 | 国产成人精品电影在线观看18 | 成人在线观看av网站 | 国产成人在线免费观看 | 国产a国产国产片 | 成人3dh动漫在线播 成人3d动漫一区二 成人3d动漫在线观看 | 国产精品免费无遮挡无 | 国产无套内射又大又猛又粗又爽 | 国产精品无码视频全 | 国产素人在线观看人成视频 | 国产欧美日韩va另类 | 精品无码午夜福利 | 国产午夜无码喷水福利 | 国产高清精品福 | 国产一区二区在线午夜福利 | 国产在线a不卡免费视频 | 国产不卡一区二区免费视频 | 精品国产女主播在线直播观看 | 国产午夜一区二区久久 | 国产精品福利在线观看无码卡一 | 国产精品高潮露脸在线观看 | 国产成人午夜福在线观看 | 国产精品黄在线观 | 暴力调教一区二区三区 | 国产69精品久久久久无码小说 | 国产精品免费av一区二区 | 精品国产在线 | 国产精品午夜小视频观看 | 国产喷水在线视频观看网站 | 国产av无码专区亚洲av蜜芽 | 国产精品爽黄69天堂a片 | 国产成人精品高清国产三级 | 国产精品无码免费播放 | 精品国产乱码一区二区三区麻豆 | 国产成人精品一区二区三区 | 国产成人午夜福利电影在线播放 | 国产三级高清视频在线观看 | av国片精品有毛 | 91精品免费不卡在线观看 | 成人国产一区二区三区 | 国产天堂在线视频 | 国产毛片女人高潮叫声 | 精品人妻av无码一区二区三 | 国产精品高潮呻吟久久 | 国产高清av在线播放无弹窗 | 国产精品九九免费视频 | 国产福利一区在 | 国产综合亚洲欧美日韩一区二区 | 国产原创精品国产专区 | 成人国内精品久久久久一区 | 91精品在线视频观看 | 成人无码区免费视频网站 | 国产精品自产拍在线涩爱 | 国产成人拍精品免费视频 | 91亚洲精品福利在线播放 | 国产二区视频 | 国产午夜福利在线视频 | 国产成人亚洲精品91专区手机 | 国产精品无码专区 | 东京热高清无码系列 | 国产在线观看无遮挡无码aⅴ多 | 国产欧美日韩专区发布 | 99精品欧美一区二区三区白人 | 成人午夜做受视欧美频 | 高清少妇综合亚洲 | 精品久久久久久无码专区不卡 | 国产精品大屁股白浆一区二区 | 国产91对白在线播放 | 国产一人人看在线视频 | 国产精品浓毛一区二区三区 | 国产精品午夜国产小视频 | av片网址在线观看 | 91精品国产尤物在线 | 国产偷窥熟女精品视频大全 | 国产午夜亚洲精品一级 | 国产精品亚洲五月天 | 国产欧美日本一区二区三区免费 | av天堂午夜精品一区二区三 | 国产主播粉嫩的白浆在线观看 | a级一级黄色片 | 国产成人久久精品二三区麻豆 | av无码精品一区二区久久 | 国产一区二区三区丝袜精品 | 国产午夜福利片在线观看尤物 | 2025国产在视频线自在拍 | 国产在线观看国偷精品产拍 | 激情欧美经典日韩 | 91国内精品久久久久免费影院 | 国产免费人成在线视频 | 1024手机在线国产你懂的 | 国产综合人人澡精品 | 国产高潮好爽好大好紧受不了了 | 超薄丝袜足j好爽在线 | 国产成人精品无人区一区 | 69久久精品无码一区二区 | 苍井空一区二区三区av高清 | 国产精品三p一区 | 白浆一区二区在线观看 | 国产午夜不卡 | 18禁日本黄无遮挡禁免费网站 | 国内精品一区二区三区视频 | 国产成人精品视频免费网站 | 韩国高清一区二区午夜无码 | 精品久久精品色综合 | 国产麻豆91在线 | 国产尤物在线视精品在亚洲 | 国产精品毛片v一区二区三区 | 国产人与动人 | 国产精品视频一区 | 成年女人a毛片免费视频 | 国产精品十八禁一区二区三区 | 国产精品自拍第一页 | 2025最新无码国 | 丰满少妇又爽又紧又丰满在线 | 国产成人影院一区二区三区在线 | 国产成人久久综合视频 | 国产无码久久久久久 | 国产爆乳一区不卡在线 | 成人免费av | 国产精品每日在线观看 | 国产a级毛片久久久毛片精片 | 国产你懂的的在线网站 | 18禁成年宅男午夜网 | 91麻豆国产高清产精品第一页 | 国产在线观看国偷精品产拍 | 精品久久福利一区二区 | 国产精品va在线观看老妇女 | 国产成人久久精品 | 国产91精品高跟丝袜在线 | 91福利在线观看视频 | 91麻豆精品国产综合久 | 国产成人综合洲欧美在线 | 精品国产精品国自产观看 | 国产一区二区四区 | 91精品国产福利在线观看雪梨 | 国产成人乱码一区二区三区在 | 国产www尤物精品在线观看 | www国产亚洲精品 | 精品国产一级精品毛片基地 | 国产av一区不卡麻豆 | 91麻豆精品激情在线 | 极品国模无码 | 国产午夜无码精品免费看浪潮 | 国产精品无码aⅴ精品影院 国产精品无码aⅴ一区二区三区 | 国产v一区二区三区 | 动漫成人无码精品一区二区三区 | 国产欧美日韩综合一区在线播放 | av无码一区二区三区 | 国产精品视频一区无码 | 国产福利免费看黄片 | 国产交换精品一区二区三区 | av免费手机看不卡 | 91精品国产亚洲爽啪在线观看 | 3d动漫精品啪啪一区二区免费 | 国产美女久久久久久久久久久 | 国产精品免费看欧美久久久久 | 国产亚洲人成在线影院 | 精品日韩人伦一区二区三区蜜桃 | 97人人超碰国产精品最新 | 国产成人丝袜 | 国产在线视频欧美一区二区三区 | 成人午夜精品网站在线观看 | 囯产剧情亚洲精品无码一页 | 91在线超高颜值国产 | 成人h视频在线观看 | 97无码成人永久免费视频软件 | 国产成人精品亚洲精品日日 | 国产后入又长又硬 | 91精品国产自产在线观看 | 高清女厕偷拍一区二区三区 | 国产在线精品福利一区二区三区 | 国产成人无码精品久久久小说 | 69成品人视频免费看手机最新 | 国产福利一区二区三区高清 | 国产自产在线最新 | 动漫洲国产精品无码专区2d | 国产日韩精品福利视频综合一区二区 | 国产午夜福利久久网 | 国产精品成人麻豆专区 | 福利国产微拍广场一区视频在 | 加勒比在线视频男人的天堂 | 精品国产免费av无码久久久 | 精品视频免费日产一区 | av网站在线免费观看 | 国产一级a爱做片免费☆观看 | 国产激情久久久久影院蜜桃av | 精品日韩产品在线 | 91精品人妻一区二区三区蜜 | 国产一区二区三区在线看 | 国产区人妖另类精 | 国产精品成v人在线视午夜片 | 国产麻豆日韩欧美久 | 成人a级毛片免费观看av一区 | 东京热无码中文字幕av专区 | 精品国产v无码大片在线看 精品国产v无码免费看扒衣 | 精品国产高清免费第一区二区三区 | 国产精品成人无码av无码免费 | 成人国内精品久久久久影院 | 国产成人一区二区三区在线观看 | 国产自在自线午夜精品视频 | 国产白丝jk被疯狂输出免费 | 国产福利不卡在线观看 | 精品久久aⅴ人妻中文字幕 精品久久a人妻 | 成人毛片视频在线观看 | 2025国产拍视频最好的手机 | 国产aⅴ一区二区 | www国产精品内射老熟 | 国在线产香蕉精品青青 | 动漫高清资源免费 | 国产一区二区网曝门日韩 | 91嫩草国产 | 国产va免费视频一区二区三区 | 国产精品人妻无码一区二区三区 | 国产av午夜精品一区二区入口 | 国产精品日日摸夜夜添夜夜添1 | 国产成人综合亚洲网站 | 成人精品一区二区三区电影 | 国产91在线精品国自产在线 | 国产成人久久综合二区 | a级毛片视频国产精品视频 a级毛片视频免费播放 | 国产欧美va欧美v | 国产福利不卡一区二区三区 | 国产女主播喷水视频在线观看 | 18禁超污无遮挡免费av | 加勒比精品久久一区二区三区 | 国产三级一区二区 | 国产成人精品免费视频大全麻 | 91一区免费高清在线 | 国产偷自一区 | 91口爆吞精国产 | 国产成人综合亚洲精品 | 国产一区二区精品久久 | 国产成人69午夜视频观看 | 91精品综合久久久久久五月天 | www.中文字幕日本 | 2025国产精品香蕉在线观看 | 动漫精品无码1 | 国产午夜福利在线永久视频 | 精品无码中文字幕在线 | 国产亚洲欧美日韩一区图片 | 91精品国产一区二区无码思瑞 | 2025久久精品国产99国产精品 | 国产精品无码制服丝袜网站 | 精品无码欧美日本 | 成人国产综合av片 | 精品无码欧美黑人又粗又 | 2025国产成人精品无码 | 成人精品天堂一区二区三区 | 国产免费一区二区三区最新 | 国产真实露脸精彩对白91 | 国产福利精品久久蜜桃 | 国产精品日韩综合图片 | 国产午夜福利一区在线观看 | 国产一二三四精品久久 | 国产亚洲精品久久无亚洲 | a级毛片内射免费视频 | 成人无码电影在线 | 成在人线av无码免费高潮喷水 | 国产成在线观看免费 | 国产精品福利网址在线观看 | 2025最新精品国自产拍视频 | 国产尤物精彩视频在线 | 91精品国产丝袜 | 国产麻豆91 | 国产精品高潮久久久久 | 国产精品福利自产拍 | 精品日韩在线视频一区二区三 | 国产午夜无码片在线观看影 | 国产成人高清精品免费53密 | 国久久久久久久久 | 国产欧美日韩综合精品一区二区 | 成人亚洲欧美在线观看 | 国产在线无码一区二区三区 | 国产高清无码视频 | 国产日韩免费视频 | 国产精品无码无卡免费观 | 国产成人无码综合亚洲日韩 | 国产一区二区中文字幕 | 国产女主播一二三区丝袜美腿 | 国产欧洲一区二区在线观看 | 国产亚洲欧美日韩在线观看一区二区 | 精品视频日韩一区二区三区 | 东京热亚洲精品无码 | 国产一区二区三区av在线无码观看 | 国产一区三区二区中文在线 | 国产精品青草 | 成人片黄网站a毛片免费 | 成年女人粗暴毛片免费观看 | 国产精品一区伦免视频播放 | 国产精品一区一区三区在线 | 国产www污涩视频网站 | 91亚洲超碰无码中文字幕 | 国产精品国产三级毛片在线专区 | 国产成人一区二区三区欧美 | av成人免费在线播放 | 国产成人精品久久亚洲高清不卡 | 国产精品伦 | 91天天操 | 69国产精品成人无码免费视 | 91久久精品国产亚洲 | 国产欧美精品专区一区二区 | 国产精品理论片 | 国产成人精品影视 | 成人无码免费看 | 国产va免费精品高清在线 | 精品久久久无码中文 | 成人精品视频在线观看不卡 | 国产成人精品a视频免费福利 | 国产欧美另类久久精品蜜芽 | 国产一区二区三区乱码 | 国产内射在线激情一区 | 1000部无遮挡拍拍拍免费视频 | 国产精品一区二区三区视频 | av片中文字幕 | 国产午夜人成视频在线观看 | 精品三级久久久久电影下载 | 国产成人无码a区在线观看视频 | 国产福利电影一区二区三区 | 国产一区二区三区美女 | 精品一区二区免费视频 | av人妻一区二区三区 | 国产成人无码综合亚洲日韩色欲 | 韩国三级大胸女高清视频 | 白丝乳交内射 | 国产成人精品一区二区三区视 | 精品精品国产自在97香蕉蜜芽 | 国产一区二区三区四区在线无码 | 国产成人手机在线好好热 | 国产成人最新三级 | 国产片在线一区二区三区 | 91在线无码精品毛片 | 国产高清一区二区三区视频 | 国产精品男男视频一区二区三区 | a亚洲欧美中文日韩 | 国自产精品手机在线观看视 | 91麻豆国产综合精品久久不卡 | 国产91精品秘入口内裤包裹 | 国产午夜大秀一区二区三区 | 国产日韩欧美一区二区三区在线 | 国产免费无码午夜福利电影 | 精品亚洲aⅴ无码一区 | 国产91无码精品 | 国产精品特级露脸 | 国产午夜福利一区二区久久 | 国产精品情侣久久婷婷文字 | 精品午夜福利无人区乱码一区 | 国产无码专区在线看 | 国产精品初高中精品免费观看 | 国产福利萌白酱精品tv一区 | 国产激情视频在线浏览 | 国产午夜电影在线观看 | 国产亚洲3p无码一区 | 91偷拍一区二区三区精品 | 99国产在线看片 | 国内女人喷潮完整视频 | 成人无码电影在线 | 精品国产呦系列在线观看 | 91人妻精品一区二区三区蜜桃 | 国产免费无码一区二区视频 | 91麻精品国产9 | 18禁纯肉高黄无码动漫在线 | 国产天堂网一区二区三区 | 国产三级高清午夜羞羞视频 | 国产欧美日韩免费观看一区二区 | 91看片淫黄大片一级在线观看 | 国产高清久久久久 | 国产91在线播放 | 国产精品国产自线 | 精品久久无码久97影院 | 国产成人精品亚洲v无人区一区 | 国产三香港三韩国三 | 东京日韩人妻无码专区一本亚州最新 | 国产精品成人久久久久 | 国产不卡一区二区免费视频 | 国产真实露脸多p视频播放 国产真实露脸精彩对白91 | av无码精品| 国产欧美久久一区二区 | 国产成人8x视频一区二区 | 91看片在线观看 | 大尺度做爰无遮挡动漫 | 国产精品夜色一区二区三区 | av无码久久久久不卡网站下载 | 国产精品蜜臀无码福利久久 | 国产一卡2卡3卡4卡网站免费 | 99久久国产亚洲综合精品 | 精品少妇熟女一区二区 | 国产精品入口麻豆高清在线 | 国语自产偷拍精品 | 精品动漫一区二区无码视频 | 成人欧美精品视频在线观看 | 精品国产一区二区国产精品国产 | 国产精品一区二区三久久不卡 | 99久久精品午夜一区二区 | av人人澡人人爽人人夜夜 | 91看片网站免费看 | 国产精品内射婷婷一级二 | 国产一区二区三区亚洲综合 | 91av手机在线观看 | 国产福利a级午夜大片 | 国产午夜无码喷水福利 | av和黑人在线播放 | av无码精品一区二区三区四 | av无码精品久久久久精品免费 | 精品国产95亚洲一区二区 | 爆乳无码一区二区在线观看ai | 国产真人无码作爱视频免费95 | 国产精品成人va在线观看午夜 | 国产在线高清仑片a | 国产精品午夜理论片在线播放 | 国产精品无码久久综合 | 国产丰满老熟女60岁重口对白 | 国产不卡高清在线观看视频 | 国产gvgay片g片gay | 精品视频在线免费观看 | 国产重口老太和小伙乱 | 国产精品一级无码免费播放 | 精品少妇爆乳无码专区久久 | 精品国产一区二区三区竹菊 | 国产午夜精品理论片a级在线观看 | 岛国一区二区三区在线观看免费 | 国产成人精品免费青青草原 | 国产成人av电影在线观看第页 | 国产成人香蕉久久久久 | 国产一区二区精品久久麻豆 | 国产av人人夜夜 | 成人精品午夜无码免费视小黄人 | 国产成人免费高清在线观看 | 国产黑色丝袜在线视频 | 精品日韩国产一区二区三区 | 国产精品免费区二区三区观看 | 成人精品动漫一区二区 | av片在线观看网站免费的 | 国产免费无遮挡吸乳视频下载 | 国产av天堂无码一区二区三区 | 国产91精品黄网在线观看 | 99久久精品久久久 | 国产无码精品第8页 | 国产精品美女久久久久久久久 | 国产成人免费精品在线观看 | 大尺度无遮挡激烈床震网站 | 国产午夜精品一区二区三区不卡 | 91在线无码精品秘?入口91 | 99国产精品一区二区 | 精品亚洲aⅴ无码午夜在线观看 | 91人妻精品一区二区三区蜜桃 | 国产精品女同一区二区在线 | 成人午夜大片免费看爽爽爽 | 成人精品午夜 | 国产伊人免费 | 国产av电影区二区三区曰曰骚网 | 国产日韩精品欧美一区喷水 | 国产三级主播在线观看 | 国产a一级毛片精品精品乱码 | 国产在线尤物不卡ab网站 | 国产成a人亚洲精ⅴ品无码性色 | av三级网站免费观看 | 国产午夜精品一区二区三区嫩草 | 国产人与动人 | 国产美女精品久久久久中文 | 国产亚洲欧洲乱码在线 | 国产精品tv在线观看 | 国产自揄拍3亚洲欧美日韩精品 | 国产黄页网站视频在线观看 | 国产熟女高潮视频 | 国产美女视频网在久久69 | 国产在线视频国产永久2025 | 国内欧美一区一区三区视频 | 国产白丝jk捆绑束缚调教视频 | 国产精品午夜福利免费 | 国产精品一区二区三区免 | 精品国产三级国产普通话 | 国产无码一区二区三区在线观看 | 国产精品视频一区三区 | 91人妻精品无码一区二区三区 | 精品无码欧美一区二区三区不卡 | 国产盗摄精品一区二区 | 精品无码av不卡久久久久 | 国产日韩久久精品影视 | 成人毛片在线观看观看 | 精品一区二区三区高清免费观看 | 国产狂喷潮在线观看国产片 | 国产成人亚洲精品乱码在线观看 | 国产美女一区三区在线观看 | 国产一区二区三区免费观看在线 | a级毛片免费全部播放经典 a级毛片免费全部播放无码 | 精品无人区乱码在线观看 | 岛国一区二区在线观看蜜 | 99久久无码精品一区二区 | 按摩中出的人妻中文字幕 | 国产在线观看超清无码视频一区二区 | 国产麻豆精品免费密入 | 国产精品一区二区在线俏佳人 | 国产精品大陆高清 | 国产亚洲欧洲日韩 | 国产av天堂亚洲国产av麻豆 | 18禁裸乳无遮挡 | 精品无人区一码卡二卡三 | 国产精品va在线观看无码不卡 | 91亚洲午夜三级 | 国产精品v欧美精品v日本精品动漫 | 国产偷窥熟女精品视频 | 国产三级农村妇女野外 | 国产成人精品亚洲v无人区一区 | 国产精品毛片 | 国产精品乳摇在线播放 | 国产女王重度 | 成人涩涩屋福利视频 | a级毛片视频免费观看不卡 a级毛片视频无码不卡 | 国产成人欧美在线视频 | 国产高清在线播放 | 国产高清无码免费在线观看 | 97无码免费人妻超级碰碰夜夜 | 91麻豆国产 | 国产精品免费一区二区在线观看 | 成人精品视频在线观看不卡 | av片在线播放网址 | 国产精品一区欧洲 | 99久久精品国产一区二区麻豆 | 国产极品粉嫩在线观看的软件 | 国产成人无码a区在线播放 国产成人无码a区在线观9 | 精品无码av一区二区 | 国产福利在线观看精品 | 国产成a人片在线观看视频99 | 精品国产黑色丝袜高跟鞋 | 国产成人久久精品亚洲小说 | 国产精品日韩无码大秀视频 | 国产麻豆精品传媒av | 国产黄色网站在线观看 | 国产一区二区成人久久免费影院 | 国产精品无码一区视频 | 国产成人av国语在线观看18 | 国产精品女人呻吟白浆在线观看 | 精品国产福利片在线观看 | 国产91久久综合 | 国产1024香蕉在线观看 | 国产精品高潮露脸在线观看 | 国产av一区不卡麻豆 | 精品国产乱码一区二区三区麻豆 | 国产一级av无码系列专区 | 3d动漫精品啪啪一区二区免 | 成人拍拍拍免费视频网站 | 成人毛片久久免费播放 | 国产精品一区在线观 | 99精品国产一区二区三区不卡 | 国产精品任我爽爆在线播放 | 东京一本到熟无码免费视频 | 国产高潮流白浆喷水免费a片激情 | 精品国产一区二区三区免费91 | 国产一区二区无码专区 | 精品人妻无码 | 91高清国产经典在线观看 | 国产成人精品免费视频大全可播 | 911国产精品 | 国产精品成人啪精久久 | 国产黄a级三级三级看三级 国产黄a三级三级三级 | 2025国产精品香蕉在线观看 | 2025国产精品91 | 国产成人免费在线观看 | 成人午夜动漫在线观看 | 国产精品一区二区免费看 | 国产精品成人免费综合 | 国产成人一区二区 | 国偷自产av一区二区三区接 | 国产精品一区二区99久久精品 | 国产a视频 | 成人无码视频在线观看 | 国产成人精品.一二 | 高清国产亚洲精品自在久久 | 国产成人精品一区二三区视频 | 国产成人v一区二区毛片 | 91狠狠狠狠狠狠狠狠 | 91在线无码 | 国产福利视频在线 | 精品无人区一码卡二卡三 | 国色精品va在线观看免费视频 | 国产白丝jk捆绑束缚调教视频 | 91亚洲最新精品 | 国产午夜无码片在线观看影视 | 国产91白浆在线观看 | 国产成人毛片视频x8 | 国产一区视频在线播放 | 国产高潮抽搐翻白眼在线播放 | 国产爆乳无码av一区二区 | 国产成品精品午夜视频 | 99久久精品费精品国 | 2025无码专区 | 国产美女mm131爽爽爽 | 国产精品一区二区无久久久 | 成人自拍电影 | 国产亚洲一区二区三区在线观看 | 国产亚洲一区在线 | 动漫精品中文字幕制服一区 | av天堂亚洲mm | 国产成人无码视频一区二区三 | 99精品偷拍视频一区二区三区 | 国产精品免费一级在线观看 | 国产99久久久国产精品~~牛 | 国产精品国产精品专区不卡 | 国产成人精品免高潮在线观看 | 国产三级成人免费 | 高清不卡av一区二区 | 国产三级高清视频在线观看 | 国产高清中文无码在线视频 | 国产午夜精品久久久久婷看片 | 精品麻豆剧传媒av国产 | 国产亚洲欧美日韩一区午夜电影 | 成人无码潮喷视频 | 国产日韩精品视频一区二区三区 | 成人免费无码婬片在线观看免费 | 精品人妻系列无码人妻不卡 | 国产白丝精品久久av网站 |