欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

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

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

概述:輕量級流程圖控件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@fc6vip.cn


為你推薦

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


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
精品国产sm捆绑最大网免费站 | 插我一区二 | 欧美日韩免费一区二区在线观看 | 日本中文在线观看欧美 | 国产高清国内精品 | а√天堂资源中文 | 91精品专区国产在线观看高清 | 国产中文字幕永久在线观看 | 日韩无砖专 | 欧美国产日韩在线观看 | 干天堂在| 日韩欧美国产一区二区三 | 最好看的高清电影在线观看 | 国产超污精| 美女人成大片免费视频看看 | 99热这| 局长含着| 2025天天躁夜夜燥 | 91午夜福利 | 亚洲精品综合在线发布 | 西西人体大胆扒开下部337卩 | 67pao国产成视频永久免费 | 欧美成成人免费 | 国产一进一出又大又粗爽视频 | 日韩精品午夜视频一区二区三区 | 啦啦啦免费高清在线观看 | 天天爱天天做天天做天天吃中 | 日本精品一卡高清 | 99re6久精品国产首页 | 国产制服精品一区二区视色 | 国产又粗又硬又长又爽 | 二区不卡| 免费电影天堂 | 欧洲精品亚洲一区 | 精品性影院一区二区三 | 精品国产免费人成电影在线观看 | 日韩精品极品视频在线观看免 | 国产在线视频 | 国产肥熟女视频一区二 | 综合三级中 | 日韩欧美精品一 | 午夜不卡视频 | 欧美日韩一本到手机视频观看一区 | 在线观看最新国产专区 | 曰本还a大片免费视频 | 自在现偷 | 国产一区二区三区影院 | 电视剧免费在线观看 | 香蕉免费啪 | 欧美xxxx黑人又粗又长精品 | 自拍亚洲欧美国产 | 国产日产| 在线视频一区二区三区 | 亚洲人成在线精品不卡网 | 91精品国产丝袜在线拍 | 国产r级福利在线观看 | 天堂网www天堂网最新版 | 爽黄的免费视频 | 欧美日韩一区二区三 | 91国内揄拍国内精品情侣对白 | 经典日韩中文字幕综合网 | 亚洲欧美色一区二区三区 | 成人免费播放 | 国产高清吹潮免费视频 | 囯产精品一区二区三区线 | 老司机导航在线观看 | 国产精品99精品一区二区浪潮 | 亚洲已满18点击进入在线观看 | 欧美精品制服 | 欧美日韩日本中国高清视频在线 | 在线视频欧美 | 午夜在线欧美曰韩精品影 | 国产福利在线永久 | 亚洲欧美日韩国产另例 | 激情自拍三级文学视频激情 | 精品福利一区二区在线 | 欧美精品一区在线观看 | 午夜亚洲理| 欧美精品国产制服一区 | 岳妇伦丰满69xx | 91国内精品在线入口 | 国产自在现偷国产精品国产日韩 | a在线观看免费网站大全 | 天美影视 | 国产精品国语对白一区二区 | 国产精品露脸国语对白 | 欧美不卡视频一区发布 | 国产精品hd在线播放 | 亚洲s色大片在线观看 | 欧美人与动交zoz0 | 国产盗摄偷窥在线观看 | 91香蕉亚洲精品人人影视 | 青青成人福 | 在线综合亚洲欧洲综合网站 | 日韩精品一区二区三区中 | 国产91精品系列在线观看 | 一区两区三区 | 短视频在线下载免费 | 天堂va视频一 | 亚洲精品揄拍自拍首页一 | 精品区在线观看 | 99re6热在 | 成人午夜视频在线视频 | 国产精品一二三区日韩免费 | 中文字幕免费在线观看 | 秒拍视频福利永久国产 | 国产精品国产自线在线观看 | 国产黄a三级 | 中文字幕第一页国产 | 中文日产| 女人精aaa | 最新热门电影电视剧免费在线观看 | 果冻文化传媒官网 | 黑人巨大精品欧美一区二区在线 | 国产喷水在线观看 | 99re这里只有精品国产精品 | 亚洲日韩动漫一区 | 在线看片免费人成视频手机观看 | 亚洲精品欧美 | 91手机国产在线网站 | 精品国产日韩亚洲一区在线 | 污污的软件 | 宅男色影视亚洲 | 高清欧美性猛 | 亚洲精品欧美中文字幕 | 日本中文字幕专区视频在线 | 国产欧美亚洲精品综合在线 | 欧洲亚洲一区二区三区 | 日韩精品一区 | 又大又粗 | 天堂mv在线mv免费mv香蕉 | 99久9久免费国产动漫 | 成·人午夜在线观看 | 亚洲一区二区三区高清视频 | 在线精品亚 | 69精品人人人人人人人人人 | 大地影院mv在线观看视频免费 | 日本一区二区三区精品视频 | 二区三区欧美精品在线观看 | 国产aⅴ一 | 男女羞羞视 | 亚洲美女激情视频 | 午夜视频一区二区三区 | 一二三区在线观看 | а√天堂地址在线网 | 国产精品99在线观看 | 乱子伦一区二区三区 | 国产免费看视频 | 岛国大片| 国产在线成本人视频摸腿 | 国产一区二区三区自产 | 国产一卡二卡三卡四卡在线看 | 亚洲欧美一区二区三区国产 | 国偷盗摄自产福利一区在线 | 国产亚洲aⅴ在线电影 | 日韩一区二区三区免费网站 | 日日狠狠太爽 | 国产欧美日韩精品福利98 | 国产亚洲一区激情小说 | 中文字幕手机在线看片不卡 | 欧美日韩国产伦理 | 又大又硬又爽免费视频 | 国产精品爱的在线线免费观看 | 欧美日韩人人天天综合小说 | 欧美色欧美亚洲高清在线视 | 国产在线精品国自产拍影院同性 | 国产区日韩精品一区二区三区 | 老女人牲| 国产亚洲精品日本亚洲网站 | 日韩不卡精品在线观看 | 蜜臀精品一区二区三区在线观看 | 99爱在线精品视频免费观看9 | 在线播放真实国产乱子伦 | 日韩电影大片手机在线观看 | 国产涩涩| 午夜影院| 日产乱码区别免费必看 | 国产美女一级做视须爱 | 國產精品va | 国产福利在线观看 | 一区二区视频传媒有限公 | 国产成视频在线观看 | 免费人成网视频 | 国产中文亚洲日韩欧美 | 骚女影院 | 色哟哟精品视 | 亚洲欧美中文字幕在线观看 | 亚洲最大的情人在线 | 青苹果乐园影院在线播放 | 日本一区二区三区免费乱视频 | 免费人成网站在线免费观看 | 中文字幕第一页国产 | 国产精品欧美 | 欧美性猛交xxxx免费看 | 日韩成人国产精品视频 | 欧美精品视频一区二区三区 | 欧美a级片一区二区在线播放 | 国产一区二区精品在线观看 | 中文字幕一区二区三区 | 国产玖玖在线观看 | 激情福利社 | 一区二区三区在线 | 伦人伦xxx国产对白 香蕉香蕉国产片一级一级毛 | 97电影网| 国产在线观看免费人成视频 | 日本亲子乱子伦xxxx | 国产人妖视频一区二区 | 亚洲精品沙发午睡系列 | 亚洲国产精品va在线观看无 | 国产手机在线国内精品软件的特点 | 国产女主播一区 | 国产欧美亚洲一级a在线观看 | 91国在线精品国内播放 | 日韩中文在线视频 | 猫眼影院 | 伊人影视网 | 日本一区二区不卡中文字幕 | 特黄特色| 日本免费一区二区在线观看 | 大地影院mv在线观看高清 | 午夜亚洲国产理论片中文飘 | 国产亚州视频在线八a | 亚洲一区二区三区高清 | 动漫精品一区二区三区四 | 全黄裸片一29分钟免费真人版 | 亚洲女女女同性video | a级高清免费 | 成人年鲁鲁在线观 | 国语免费 | 91自产拍在线观看精品 | 欧美日产欧美日产国产精品 | 69一区二三区好的精华液 | 国产三区免费在线观看 | 抖音奶片| 亚洲一本大道中文在线 | 国产中文字幕在线免费观看 | 国产丰满老熟 | 国产乱子伦精品免费 | 真实国产乱子伦精品 | 精品精品国产免费看不卡 | 蜜臀精品国产高清在线观看 | 亚洲欧美综合人成在线 | 中韩欧美视频一区 | 亚洲欧美日本另类 | 午夜一级特黄 | 在线观看国产三 | 亚洲视频高清不卡在线观看 | 99re热视频这里只有精 | 亚洲精品第1页 | 国产精品边做奶水狂喷 | 午夜日韩综合激 | 水蜜桃亚洲一二三四在线 | 中文字幕第一页在线观 | 国产精品亚洲自在线播放页码 | 中文字幕国产在线观看 | 99视频精品在线 | 中文字幕亚洲一区二区三区四 | 不卡影片 | 日韩电影免费观看2025 | 国产精品永久在线 | 国产人妖在线 | 秋霞电影在线观看 | 国产一区二区三区日韩精品 | а√天堂地址在线网 | 亚洲无卡免费 | 欧美图区| 国产第113页 | 国产一区二区影视 | 又大又长视频一二区 | 午夜免费看片 | 国产一区免费在线观看 | 欧美日韩国产综 | 欧美中文日韩在线观看 | 三级在线国产 | 免费国产gay片在线观看 | 日日狠狠太爽 | 免费观看性欧美一级 | 污星人国产 | 在线观看免费人成视频网 | 中文字幕亚洲欧美日韩在线不卡 | 高圆圆又紧又大又湿又爽 | 国产精品猎奇系列在线观看 | 91精品一区二区 | 国产日产成人免费视频在线观看 | 狂野少女电视剧免费播放 | 日日夜夜骑 | 精品国产一区二区三区不卡在 | 一区二区無碼在線觀看 | 国产+欧美+激情 | 日韩一本到亚洲男人的天堂 | 日韩欧美国产一区二区浪潮 | 精品午夜福利在线视在亚洲 | 亚洲欧美日韩一区中文字幕 | 美女视频免费观看网站黄 | 日本欧美三级r级国产在线 亚洲激情乱伦 | 热播影视剧在线观看 | 伊人成年网站综合网 | 两性色午夜视频免费老司机 | 亚洲欧美人成综合导航 | 热99r| 国产精品自拍视频首页 | 国产专区在线播放 | 亚洲精品天天影视综合网 | 99re6热在线精品视频观看 | 激情综合色五月丁香六月欧美 | 开心五月丁香花综合网 | 国产欧美日韩一区二区三区在线 | 国产男女爽爽爽爽爽免费视频 | 91啦91pornv| 欧美日韩午夜视频在 | 精品一区二区三区高清免费不 | 99ri日韩精品视频 | 又爽又大又光又色的午夜视频 | 韩日国产精品一区二区三区 | 国产在线拍偷 | 欧美一级高清视频在线播放 | 国产精品大白天新婚身材 | 国产高清视频一区免费观看 | 日本宅男午夜免费永久网站 | 国产日韩免费视 | 国产又黄又爽在线观看 | 九九精品成人免费国产片 | 制服丝袜亚洲中文综合 | 久9视频这里只有精品8 | 亚洲欧美日韩在线不卡 | 2025年最新高清电影 | 免费mv视频7 | 在线观看视频欧美 | 一区二区自拍 | 亚洲欧美日韩国产精品 | 欧美精品免费一区 | 日韩一区精品视频一区二区 | 亚洲午夜国产片在线观看 | 亚洲产国偷v | 国产精品理 | 国产老妇伦国产熟女中文视频 | 日美妇视频一区 | 国产传媒一区 | 亚洲中文字幕在线精品2025 | 日韩精品亚洲成本人专区电影 | 2025国产精品香蕉在线观看 | 欧美与黑人 | 亚洲中文欧美日韩在线不卡 | 国产欧美不卡 | 亚洲一日欧美日韩中文字幕 | 羞羞视频 | 国产精品日产三 | 日久精品不卡一区 | 卡一卡二卡三国产传媒 | 亚洲精品有码在线观看 | 日本一区二区三区四区公司 | www.91city.cn| 青青青国产精品一区二区 | 欧美日韩在线亚洲一区二区三区 | 日本在线高清不卡免费播放 | 日本性爱欧美精品 | 亚洲日产综合欧美一区二区 | 亚州精品一区中文字幕乱码 | 抱着cao才爽视频 | 日韩精品大片在线观看 | 无色码中文字幕亚洲精品 | 国语自产精品视频一区二区 | 日韩精品一区二区三区视频网 | 欧美日韩一区观看 | 黄瓜视频在线播放看片 | 欧美日韩精品系列一区二区三区 | 国内综合网 | 国产欧美日韩一区二区三区在线 | 国产99视频精品免费专区 | 日本三级韩国三 | 色综合久 | 国产极品精品免费 | 看片天堂| 在线观看亚洲一区二区三区 | 精品国产柚木在线 | 噼里啪啦的视频免费观看 | 国产又黄又爽又猛的免费视频播放 | 亚洲欧美日韩高清在线电影 | 国产l精品国产亚洲区在线观看 | 乱子伦视频在线看 | 青青青国产精品一区二区 | 亚洲国产一区二区三区综合片 | 一二三四视频 | 精品系列一区二区三区 | 免费网站看v片在线爱的影院 | 超刺激高跟鞋脚交视频在线 | 2025年最新电影电视剧 | 精品国产污污免费网站aⅴ 国产自在自线精品午夜视频 | 无玛专区| 国产su| 日本精品高清一区二区 | 国产经典在线观看一区 | 扒开腿挺进肉嫩小泬喷水网站 | 欧美日韩高清一区二区三区 | 国产在线精品91国 | 朋友的妈妈2在完整有限中字第 | 免费观看最新电影和热门影视剧 | 国产一级特黄大片特爽 | 在线精品一区二区三区 | 国产熟女一区二区三区浪潮 | 国产一级特黄高清在线大片 | 日本在线高清不卡免费播放 | 国产在线观看中文字幕 | 精品亚洲欧 | 国产精品吹潮在线观看中文 | 中文字幕在线免费专区 | 精品国产高清自在线 | 中日韩精品一区二区三区成人 | 欧美a级影院| 色吊丝中文字幕 | 91午夜福利 | 精品一卡2卡三卡4卡三卡 | 日韩一区二区三区高清中文字幕 | 久热国产精品视频一区二区三区 | 伦理、限制级电影手机在线观看 | 日韩免费精品视频一区二区三区 | 国产又色又爽又黄刺激的影视 | 91热成人精品国产免费 | 国产一区二区三区美女 | 激情深爱五月开心婷婷综合 | 午夜福利不卡片在线播放免费 | 三年片在线观看免费大全电影 | 精品三级国产在线看 | 国产精品美 | 亚洲天堂一区二区在线观看 | 国产91免费视频 | 亚洲国产精品成人va在线观看 | 国产suv精品一 | 国产99视频精品免费视 | 7160美女图片| 国产男女爽爽爽免费视频 | 观看一级 | 欧美日韩三区 | 欧美精品在线观看 | 二区高清 | 国产视频在线一二区精品分类 | 91看片淫黄大片在看 | 国产又粗又黄又爽的大片 | 99夜夜夜精品一区二区 | 午夜福利在线观看亚洲一区二区 | 欧美日韩一区二区不卡在线播放 | 一级毛卡 | 午夜视频在线免费观看 | 热门好看的电影大全 | 日本乱偷 | 在线观看午夜福利院视频 | 国产亚洲成aⅴ人片在线奶水 | 日本欧美大码a在线观看 | 国产激情在线视频 | 91精品国产免费青青碰 | 亚洲色大成网站www在线观看 | 亚洲综合一区国产精品 | 国产免费午夜福利在线播放92 | 国国产乱理伦片在线观看夜 | 嗨嗨影院伦理电影 | 福利电影网| 亚洲中文娱乐网在线观看 | 亚洲欧美精品日韩片 | 欧美一区二区三区激情 | 91极品视频在线观看 | 尤物tv| 亚洲+欧美+国产 | 国产粗语刺激对白ⅹxx | 精品国产一区二区三区免费 | 涩涩www在线观看免费高清 | 得得啪在线视频观看 | 一级特黄性色生活片一区二区 | 乱码一二三入区口 | 欧美日韩亚洲中文字幕三 | 国产在线拍偷 | 国产福利专区 | 国精产品48x国精产品 | 国产v在线在线观看视频免费 | 99热国| 国产精品大片在线看 | 精品人成在线电影 | 亚洲一级a大片一级 | 日韩欧美视频一区二区三区 | 亚洲高清在线观看一区 | 国产精品国内免费一区二区三区 | 2025国产丝袜在线观看 | 日本日本乱码伦视频在线观看 | 欧美一级a做片性视频 | 视频一区二 | 精品成人福利在线播放 | 国产12| 页协和中文字幕 | 国产女女| 亚洲精品在线网址 | 亚洲午夜一区二区三区在线观看 | 成人国产精品免费视频不卡 | 大地影院高清mv在线观看 | 成人午夜无人区一区二区 | 免费h在线观看视频网站 | 免费国产va在线观看中文 | 国产一区二区精品久电影 | 免费电影天堂 | 99国产在线观看 | 成人免费观看网欧美片 | 欧美日韩国产在线人成 | 91大神大战丝袜美女在线观看 | 大陆国语自产精品视频在 | 亚洲精品在线看 | 国产男生夜间福利免费网站 | 亚洲人精品午夜射精日韩 | 日本又黄又粗暴的视频 | 久产久精九国品在线 | 日日日涩涩 | 国产口爆| 亚洲日韩欧美国产高清αv 亚洲欧美 | 银杏影院 | 免费观看又黄又硬又爽的视频 | 国自产偷 | 亚洲日韩在线中文字幕第一页 | 另类国产精品一区二区 | 国产免码va在线观看免费 | 欧美亚洲视| 日韩最新免费视频一区二区 | 国产精品人成在线播放 | 欧美在线激情视频 | 国产精品岛国 | 亚洲人成aⅴ在线播放 | 高清一级做a爱过程不卡视频 | 多人性战交疯狂派对 | 国产亚洲一区二区手机在线观看 | 欧美综合自拍亚洲综合网 | 日韩中文字幕高清一区 | 国产精品人一成在线观看 | 中日韩在线视频 | 伊伊人成亚洲综合人网香 | 91国在线啪精品一区 | 中文字幕人成乱码熟女69 | 三上亚悠在线精品二区 | 91视频精品久| 国产精品区网红主播在线观看 | 亚洲haose在线观看 | 国产精品综合影院在线观看 | 99久re热视频这里只 | 亚洲国产欧美国产综合一区 | 春宵福利app导航中心 | 97国产在线一区不卡 | 在线精品日韩 | 欧美va免费高清在线观看 | 在线在线播放 | 大地资源在线观看免费中文版 | 国产精品亚洲欧美动漫卡通 | 99视频精品全部国产盗摄视频 | 国产日韩精品在线播放 | 欧美三级不卡在线播放 | 97在线视频观看在线观看视频 | 97青青| 日本a级c片免费看三区 | 欧美三级韩国三 | 欧美人牲 | 亚洲一区中 | 又大又粗又硬又黄的免费视频 | 日本亚洲精品午夜 | 国产欧美精品一区二区三区四区 | 一本大道香蕉久97在线播放 | 日韩a级片 | 亚欧人成精品免费观看 | 日本一区二区在线不卡 | 美丽姑娘在 | 91美剧网 | 日韩电影 | 精品国产福利在线观看91啪 | 亚洲区一二三四区 | 亚洲精品成人一区二区aⅴ 精品国产成a人在线观看 | 亚洲高清一区二区三区不卡 | 日本中文字幕一区二区视频 | 在线一区二区三区 | 微拍福利88| 日韩精品一区二区三区 | 2025国产每日福利更新 | 香蕉国产亚洲精品va在线观 | a级成人 | 亚洲欧美香蕉在线日韩精选 | 激情精品一区二区在线观看 | 午夜男女羞羞爽爽爽视 | 成人精品综合免费视频 | 亚洲免费图区在线视频 | 欧美天堂 | 在线欧美日韩国产 | 午夜理论片yy8860y影院 | 亚洲精品动漫一区二区三区在线 | 国产精品一区二区国产馆蜜桃 | 日本三级香港三级人妇99 | 精品一区 | 免费vip电影电视剧 激情自拍三级文学视频激情 | 激情视频一区二区三 | 欧美在钱一 | 国产精品自在自线亚洲 | 亚洲日韩精品免费视频91蜜桃 | 日韩精品国 | 亚洲网站视频在线观看 | aa中文字幕在线观看 | 最新69成人国产精品视频免费 | 国产精品理 | 最新热播电影完整版 | 迷奷系列在线播放456 | 日本有码中文字幕第一页在线播放 | 性情中人中文网 | 国内精品视频九九九九 | 国内外精品激情刺激在线 | 把你的香肠放入我的扇贝里 | 最新亚洲一区二区在 | 又粗又大又黄又爽的免费视频 | 高清欧美日韩一区二区三区在线 | 91成人国产网站在线观看 | 成人v中 | 国产精品爽爽ⅴa在线观看 欧美精品一区二区三区免费 | 国产精品毛多多水多 | 欧美日韩产精品自在自线 | 微拍秒拍福利一 | 天天综合网天天综合 | 精品国产一区二区在线观看 | 国产在线一区二区三区四区居文沛 | 奇奇影院| 午夜亚洲理| 免费人成视在线观看不卡 | 国产妇乱子伦视 | 高清欧美性xxxx成熟 | 成人午夜免费观看 | 精品国产福利在线观看 | 国产精品一区二区在线观看免费 | 国产一区二区三区美女 | 小姨子在旁边差点被看到 | 国产精品一区二区三区免 | 97影院午夜午夜伦不卡 | 亚洲精品自拍愉拍第二 | 破了亲妺妺的处免费视频国产 | 欧美级韩国三级日本三级 | 好吊色永久免费视频在线观看 | 日本一区二区在线播放 | 国产精品亲子乱 | 中日韩高清无专码区2 | 亚洲人成网线在线播放va | 影音先锋2025色资源网 | 亚洲欧美日韩国产综合点此进入 | 肉色超薄丝袜脚交一区二区 | 免费国外性视频网站 | 亚洲高清激情精品一区国产 | 日韩在线一区二区视频中文字幕 | 草草在线观| 日韩欧美国产免费看清风阁 | 最新日本一道免费一 | 四川w搡bbb搡wbbb搡按摩 | 久热亚洲 | 欧美精品亚洲精品日韩专区va | 国产偷国产偷亚洲清高app | 最新一卡二卡 | 免费片在线观看 | 精品国产午夜福利精品推荐 | 欧美黑粗特黄午夜大片 | 国产99视频精品免费观看9 | 深夜日本 | 欧美大片va欧美在线播放 | 永久亚洲成a人片777777 | 国产在线视频在线观看 | 亚洲欧美一区二区三区在线 | 亚洲第一网站a√在线观看 国产精品情侣 | 日本高清乱理伦片中文字幕 | 国产精品理 | 国产精品欧美亚洲 | 亚洲国产精品第一区 | 手机免费看电影 | 91精品导航在线观看 | 国产高清免费在线 | 日韩欧美精品国产亚洲综合 | 日韩精品免费在线观看 | 国内美女91福利在线观看 | 91精品啪国产在线观看免费牛牛 | 91人成在线观看网站 | 国产精华| 精品国产一区二区三区不卡在 | 玩弄牲欲强老熟女 | 午夜级理论片在线播放202 | 日本一卡2卡三卡4卡网站 | 欧美亚洲视频一区 | 91福利在线观看 | 国产欧美日韩va另类在线 | 欧美日韩国产精品视频 | 深夜a级 | 亚洲精品国产字幕 | 有码+日韩+在线观看 | 高清一区二区三区 | 免费电影推荐 | 日韩精品一区二区三区免费在线 | 亚洲已满1 | 三级综合在线观看精品 | 国产精品自在线拍国产电影 | 蜜桃网址 | 亚洲一区二区三区香蕉下载 | 亚洲国产大片在线观看 | 亚洲中字幕日产aⅴ | 尤物精品视频一区二区三区 | 成年人午夜影院 | 婷婷丁香六 | 欧美一区色 | 国产精品一区二区亚瑟不卡 | 蜜桃豆www久| 日韩成全视频观看免费观看高清 | 99国产视频有精彩视频 | 银杏影视| 在线鲁鲁视频免费观看 | 香蕉免费一区二区三区 | 成人国产精品高清 | 白丝袜美 | 欧美大棒插白人 | 亚洲精品第五页 | 久热国产精品视频一区二区三区 | 男子操性感黑丝美女视频 | 中文字幕v人 | 国产欧洲野花a级 | 免费人成年激情视频在线观看 | 精品国产91乱码一区二区三区 | 欧美色欧美亚洲高清在线观看 | 亚洲欧美不卡视频 | 美女国产毛| 中文字字幕在线中文乱码电影 | 伊伊人成 | 户外露出在线 | 亚洲ⅴa在线观看 | 97se亚洲国产综合自在线观看 | 菠萝蜜视频 | 日本高清中文字幕免费一区二区 | 亚洲大片精品永久免费看网站 | 日本免费高清一本视频 | 日本视频二 | 精品黑人 | 午夜日韩欧美电影在线 | 亚洲日本国产一区二区精品成人 | 成人黄性视频 | 乱子伦精品视频 | 午夜性爱故事在线观看 | 香蕉精品亚洲二区在线观看 | 2025欧美精| 亚洲欧美精品变态另类 | 国产一区二区三区免费大片天美 | 精品一区二区三区视频免 | 日本欧美一区二区三区在线播放 | 国产精品黄在线观看免费 | 亚洲丰满 | 亚洲精成9 | 亚洲97i蜜桃网 | 香蕉精品亚洲二区在线观看 | 香蕉免费一区二区三区 | 日韩成人 | 正在播放一区二区 | 日本va在线视频国产 | b站永久免费看片大全 | 亚洲欧美日韩在线综合网 | 守寡的岳引 | 日产精品一卡2卡三卡4卡乱码 | 日本特级一区二区三区大片 | 欧美精品一区二区三区中文 | 国产日韩精品一区二区三区在线观 | 一本到国产在线精 | 国产亚洲视频在线观看 | 国产欧美亚 | 欧美日韩一区二区三区视频 | 欧洲美熟女乱又伦免费视频 | 国产伦精品一区二区三区免 | 国产一级一片免费播放视频 | 又污又爽又黄的网站 | 亚洲国产一区二区在线观看 | 成年人24小时在线免费观看视频 | 99视频在线精品免费观看6 | 秋霞理伦韩国在线电影 | 国内最真实的xxxx人伦 | 综合网在线| 亚洲不卡网 | 欧美在线观看精品国产 | 亚洲日本aⅴ片在线观看香蕉 | 性运交xxxx大孕妇pivs | 激情综合在线观看 | 午夜免费福利片观看 | 日本h无羞动漫在线观看网站 | 国产美女 | 三区在线观看不卡 | 三级高清在线 | 日韩欧美一区二区不卡看片 | 亚洲国产精品日韩在线 | 亚洲一区二区三区在线 | 色男人在线电影视频网站 | 国产精品午夜自在在线精品 | 亚洲欧美日韩另类 | 国产福利精品视频 | 啦啦啦免费高清在线观看 | 国产夜趣福利免费 | 亚洲经典一区二区三区 | 在线精品日韩 | 欧美性猛交xxxx黑人猛交 | 亚洲欧洲精品国产区 | 视频一区二区三区在线 | 午夜国产精品理论 | 精品国产午夜福利在线观看蜜月 | 香蕉亚洲精品网站国产一二三四 | 亚洲韩国日本 |