国产精品青草久-国产精品情侣愉拍-国产精品区网红主-国产精品区一区二-国产精品热久久-国产精品热热热-国产精品人aⅴ-国产精品人成在线-国产精品人妻人伦-国产精品人人

金喜正规买球

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

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

概述:輕量級(jí)流程圖控件GoJS流程圖示例

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

相關(guān)鏈接:

GoJS是一款功能強(qiáng)大,快速且輕量級(jí)的流程圖控件,可幫助你在JavaScript 和 HTML5 Canvas程序中創(chuàng)建流程圖,且極大地簡(jiǎn)化你的JavaScript / Canvas 程序。

點(diǎn)擊查看產(chǎn)品詳情 | 最新試用版下載

FlowChart示例演示了GoJS的幾個(gè)關(guān)鍵功能,即, ,拖放行為, 以及圖表中的使用 。

鼠標(biāo)懸停在節(jié)點(diǎn)上以查看其端口。從這些端口拖動(dòng)以創(chuàng)建新的鏈接。選擇“鏈接”可以重新整形和重新鏈接它們。選擇節(jié)點(diǎn)然后單擊其TextBlock將允許您編輯文本(開(kāi)始和結(jié)束節(jié)點(diǎn)除外)。

在頁(yè)面中查看此示例頁(yè)面的源代碼

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

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

    //修改文檔時(shí),在標(biāo)題中添加“*”并啟用“保存”按鈕 
    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);
      }
    });

    //節(jié)點(diǎn)模板的幫助程序定義

    function  nodeStyle () { 
      return [
         // Node.location來(lái)自節(jié)點(diǎn)數(shù)據(jù)的“loc”屬性,
        //由Point.parse靜態(tài)方法轉(zhuǎn)換。
        //如果更改了Node.location,它將更新節(jié)點(diǎn)數(shù)據(jù)的“loc”屬性,
        //使用Point.stringify靜態(tài)方法轉(zhuǎn)換回來(lái)。
        new go.Binding( “location”, “loc”,go.Point.parse).makeTwoWay(go.Point.stringify),
        {
          // Node.location位于每個(gè)節(jié)點(diǎn)的中心
          locationSpot:go.Spot.Center
        }
      ]。
    }

    //定義用于創(chuàng)建通常透明的“端口”的函數(shù)。
    //“name”用作GraphObject.portId,
    //“align”用于確定端口相對(duì)于節(jié)點(diǎn)主體的位置,
    //“spot”用于控制鏈接的連接方式使用端口以及端口
    // 
    是否沿節(jié)點(diǎn)一側(cè)延伸,//布爾“輸出”和“輸入”參數(shù)控制用戶是否可以從端口繪制鏈接或從端口繪制鏈接。
    function  makePort (name,align,spot,output,input) { 
      var horizo??ntal = align.equals(go.Spot.Top)|| align.equals(go.Spot.Bottom);
      
      //當(dāng)鼠標(biāo)經(jīng)過(guò)它時(shí)變成彩色
      返回 $(go.Shape,
        {
          fill:“transparent”,   //更改為mouseEnter事件處理程序中的顏色 
          strokeWidth:0,   //沒(méi)有筆畫 
          寬度:水平?NaN:8,   //如果不是水平拉伸,只有8個(gè)寬度 
          :水平?NaN:8,   //如果不垂直拉伸,只需8個(gè)高 
          對(duì)齊:對(duì)齊,   //對(duì)齊主形狀上的端口
          stretch :(水平?go.GraphObject.Horizo??ntal:go.GraphObject.Vertical),
          portId:name,   //聲明此對(duì)象是 
          來(lái)自Spot 的“端口”:spot,   //聲明鏈接可以在此端口連接的 
          地址fromLinkable:output,   //聲明用戶是否可以從此處繪制鏈接到 
          Spot:spot,   //聲明鏈接可以在此端口連接到鏈接的 
          位置:input,   //聲明用戶是否可以在此處繪制鏈接 
          :“指針”,   //顯示不同的光標(biāo)以指示潛在的鏈接點(diǎn) 
          mouseEnter:function (e,port) {   / / PORT參數(shù)將是這個(gè)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”,
        中風(fēng):“whitesmoke”
      }
    }

    //定義常規(guī)節(jié)點(diǎn)的節(jié)點(diǎn)模板

    myDiagram.nodeTemplateMap.add(“”,   //默認(rèn)類別 
      $(go.Node,“Table”,nodeStyle(),
         //主要對(duì)象是一個(gè)圍繞TextBlock的面板,其形狀 
        為矩形 $(go.Panel,“自動(dòng)”,
          $(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())
        )
        //四個(gè)命名端口,每邊一個(gè): 
        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(),
         //主要對(duì)象是一個(gè)圍繞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())
        )
        //四個(gè)命名端口,每邊一個(gè): 
        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(“開(kāi)始”,
      $(go.Node,“Table”,nodeStyle(),
        $(go.Panel,“自動(dòng)”,
          $(go.Shape,“Circle”,
            {minSize屬性:新 go.Size(40,40),填充:“#79C900”,strokeWidth:0 }),
          $(go.TextBlock,“Start”,textStyle(),
             new go.Binding(“text”))
        )
        //三個(gè)命名端口,除了頂部之外每邊一個(gè),只輸出: 
        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(“結(jié)束”,
      $(go.Node,“Table”,nodeStyle(),
        $(go.Panel,“自動(dòng)”,
          $(go.Shape,“Circle”,
            {minSize屬性:新 go.Size(40,40),填充:“#DC3C00”,strokeWidth:0 }),
          $(go.TextBlock,“End”,textStyle(),
             new go.Binding(“text”))
        )
        //三個(gè)命名端口,每邊一個(gè)除了底部,只有輸入: 
        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(“評(píng)論”,
      $(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”,
            中風(fēng):'#454545'
          },
          new go.Binding(“text”)。makeTwoWay())
         //沒(méi)有端口,因?yàn)闆](méi)有鏈接允許連接評(píng)論
      ));


    //替換linkTemplateMap中的默認(rèn)鏈接模板
    myDiagram.linkTemplate =
      $(go.Link,   //整個(gè)鏈接面板
        {
          路由:go.Link.AvoidsNodes,
          曲線:go.Link.JumpOver,
          角落:5,toShortLength:4,
          relinkable來(lái)自:true,
          relinkableTo:是的,
          reshapable:是的,
          resegmentable:true,
           //鼠標(biāo)懸停巧妙地突出顯示鏈接: 
          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:“標(biāo)準(zhǔn)”,strokeWidth:0,填充:“灰色” }),
        $(go.Panel,“Auto”,   //鏈接標(biāo)簽,通常不可見(jiàn) 
          {visible:false,name:“LABEL”,segmentIndex:2,segmentFraction:0.5 },
           new go.Binding(“visible”,“visible” “)。makeTwoWay(),
          $(go.Shape,“ RoundedRectangle ”,   //標(biāo)簽形狀 
            {fill:“#F8F8F8”,strokeWidth:0 }),
          $(go.TextBlock,“是”,   //標(biāo)簽
            {
              textAlign:“center”,
              字體:“10pt helvetica,arial,sans-serif”,
              中風(fēng):“#333333”,
              可編輯:是的
            },
            new go.Binding(“text”)。makeTwoWay())
        )
      );

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

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

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

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


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

  //通過(guò)打開(kāi)一個(gè)新窗口來(lái)打印圖表,該窗口包含每個(gè)頁(yè)面
  函數(shù) printDiagram ()
    的圖表內(nèi)容的SVG圖像{ var svgWindow = window.open();
    if(!svgWindow)返回 ;  //未能打開(kāi)一個(gè)新的窗口
    變種 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的幾個(gè)關(guān)鍵功能,
  即< 一個(gè) HREF = “../intro/palette.html” >調(diào)色板</ 一 > S,
   < 一 HREF = “../intro/links.html” >可鏈接節(jié)點(diǎn)</ 一 >,拖/放行為,
   < 一個(gè) HREF = “../intro/textBlocks.html” >文本編輯</ 一 >,以及使用
   < 一個(gè) HREF = “../intro/templateMaps.html” >節(jié)點(diǎn)模板地圖</ 一 >在圖表中。
  </ p > 
  < p >
  鼠標(biāo)懸停在節(jié)點(diǎn)上以查看其端口。
  從這些端口拖動(dòng)以創(chuàng)建新的鏈接。
  選擇“鏈接”可以重新整形和重新鏈接它們。
  選擇一個(gè)節(jié)點(diǎn),然后單擊其TextBlock將允許
  您要編輯文本(開(kāi)始和結(jié)束節(jié)點(diǎn)除外)。
  </ 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”:“將烤箱預(yù)熱到375 F”},
{“key”:1,“loc”:“175 100”,“text”:“在一個(gè)碗里,混合: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杯你選擇的堅(jiān)果”},
{“key”:6,“loc”:“175 450”,“text”:“頂上撒上堅(jiān)果”},
{“key”:7,“loc”:“175 515”,“text”:“烘烤25分鐘,讓涼爽”},
{“key”:8,“loc”:“175 585”,“text”:“切成矩形網(wǎng)格”},
{“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上查看此示例頁(yè)面的源代碼

<!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>

想要查看在線操作示例,可以點(diǎn)擊此處


標(biāo)簽:流程圖

本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn


為你推薦

掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产精品无码无片在线观看3d | 97影院午夜午夜伦不卡 | 国产老熟女八av | 国产强伦姧 | 一级做a爰片毛片 | 日日摸夜夜添夜夜添国产三级 | 久久91这里精品国产2025 | 在线看不卡 | 色欲久久久天天天综合影院 | 91情侣在线精品国产 | 国产在线观看不卡免费高清 | 99精品国产在热久久无码 | 亚洲精品无码久久久影院相关影片 | 91久久精品| 在线日韩日本国产亚洲 | 亚洲乱码卡一卡二卡 | 99re在线视频精品新地址 | 国产精品玖玖 | 欧美午夜精品一区二区三区 | 在线日韩日本国产亚洲 | 国产精品一区二区视色 | 欧美一区二区三区激情 | 黄色视频免费亚洲 | 人与狗精品aa毛片 | 亚洲精品欧美人妻 | 欧美性色欧美a在线在线播放 | www.91麻豆| 高清一区二区三区尤物 | 精品久久久久久亚洲中文字幕 | 色人阁久久 | 亚洲精品成人网 | 日韩欧美国产一区二区三区免费 | 99久久免费只有精品国产 | av片在线观看永久免费 | 国产精品一区二区av片福利 | 亚洲电影在线 | 99久久国产精品免费热6 | 人澡人澡人澡人澡91 | 亚洲精品无码高潮喷水a片软 | 91伊人国产 | 婷婷综合在线观 | 日韩在线欧美精品一区二区 | 精品国产一区二区三区av麻 | 国产欧美一区二区樱花在线观看 | 精品无码国产一区二区三区麻豆 | 成人动漫1区2区3区 成人动漫h在线观看 | 亚洲av乱码一区二区三区 | 东京热之中文字幕 | 爆乳邻居肉欲中文字幕樱花动漫 | 任你躁国语自产一区在 | 无码免费午夜福利看片 | 日本亚洲欧洲免费无线码 | 东京热免费视频 | 亚洲精品国产第一 | av午夜午夜快憣免费观看 | 国产精品亚洲二区在线看 | 欧洲熟妇色xxxx欧美老妇免费 | 国内精品久久久久久影院 | 毛片成人| 多人乱p杂交公车伦理片手机在线看 | 亚洲最大av免费专区 | 国产sm调教视频在线观看 | 国产精品欧美视频另类专区 | 天天干夜夜操 | 黑人好猛厉害爽受不 | 91在线码无精品秘入口是什么 | 亚洲av无码专区亚洲av桃花岛 | 亚洲无码影音先锋 | 国产在线无码尤物视频 | 91福利第一导航 | 操逼无码 | 亚洲av蜜臀在线观看 | 91午夜福利国产在线观看 | 国产成人亚洲精品青草天美 | 日本hs在线播放观看 | 国产交换配 | 极品美女国产精品免费一区 | 成人在线观看午夜 | 人妻少妇精品无码专区二区 | 国产成人高清精品亚洲网站 | 神马午夜影院 | 91嫩草国产在线无码观看 | 精品久久综合一区二区 | 91制片 | 日本精品啪啪一区二区三区 | 国产一级二级三级在线观看 | 国产精品vā在线观看无码 国产精品va在线观看无码不卡 | 99在线精品国自产拍中文字幕 | 日韩精品一区二区三区69 | 国产精品无码a精品影院 | 中文字幕在线资源站 | 精品综合久久久 | 91在线国产在线观看高清 | 在线视频观看免费视频18 | 亚洲日韩一区 | 日韩av无码一区二区三区不卡毛 | 亚洲av永久无码精品秋霞电影 | 99热最新地址永久 | 成人午夜久久青苹果影院 | av无码久久久久不卡免费网站 | 国产精品成人一区二区三区 | 九九精品99久久久香蕉 | 国产呦系列视频网 | 亚洲av超清无码不卡在线网络 | 国产精品国产三级国产专播 | 色综合久久中文字幕无码 | 99久久国产精品免费热麻豆 | 91久久国产精品视频 | 国产麻豆不卡 | 免费一级a毛片在线播放 | 色窝窝无码一区二区三区成人网站 | 蜜臀成人av一区二区三区四区 | a级国产乱理论片在线观看 a级国产乱理论片在线观看丶 | 人人爽人妻精品a片二区 | av毛片| 丰满少妇女人a毛片视频 | 日韩一级久久无码免费 | 国产不卡福利片在线观看浪潮 | 高清无码污 | 国产av一区二区三区最新精品 | 白丝被绑双腿憋尿sm调教 | 亚洲欧美国产综合久久 | 人人人97人妻交换视 | 丰满少妇又爽又紧又丰满在线观看 | 无套内谢少妇毛片a片打工皇帝 | 精品欧美国产一区 | 中文无码精品a∨在线观看不卡 | 91人妻人人澡人人爽人人玩 | 高清无码一区波多野结衣x99av | 亚洲成av人影院在线观看网 | 亚洲不卡2卡3卡4卡5卡入口 | 无码精品视频一区 | 风流老熟女一区二区三区l 风流老太婆大bbw | 国产成人一区二区三区在线观看 | 亚洲国产精人品久久久久久 | 午夜理论片 | 国产人妖网站视频 | 国产精品中文久久久久久久 | 日韩毛片无码永久免费看 | 国产精品无码久久久久久 | 成人国产一区二区三区精品 | 91三级视频在线观看 | 欧美性xxxxx极品少妇直播 | 精品欧美一区二区三区四区 | 亚洲国产精品成人精品无码区 | 精品国产va久久久久久久冰 | 97伦理影院 | 一区二区三区精品视频日韩 | 亚洲精品视频久久 | 亚洲男人片片在线 | 国产呦精品一区二区三区 | 欧美多人顶级午夜寂寞影院 | 日本免费精品一区二区三区 | 精品国产av无码久久久黄 | 99久久国产精品免费人妻 | 国产伦精品一区二区三区妓女 | 天天天天影视 | 久久99精品久久久久久妇女 | 亚洲国产美女主播在线观看 | 久久电影 | 国产一区二区三区免费观看在线 | 国产av一区二区三区天堂综合网 | 国内少妇人妻丰满av | 国产精品91电影在线观看 | 午夜视频网址 | 国产精品高清一区二区三区不卡 | 99热国产这里只有精品 | 国产在线观看色 | 国产成人精品免费播放视频 | 毛片电影网 | 91精品伊人久久久大香线蕉91 | 久草超碰一区二区在线 | 国产精品露脸国 | 亚洲欧美另类小说 | 国产高清无码在线播放 | 91短视频在线观看 | 91久久偷偷做嫩草影院 | 国产一区二区女内射 | 国产成人精品午夜在线播放 | av在线中文观看 | 亚洲精品一区二区三区麻豆 | 亚洲va无码专区国产乱码 | 国产成人8x人网站在线视频 | 亚洲一区二区三区无 | 成人国产精品日本在线观看 | 国产va成无码人在线观看 | 日韩精品一区二区三区中文 | 性色av性色生活片 | 午夜在线亚洲 | 精品综合在线 | 91精品啪在线观看 | 国语精品91自产拍在线 | 国产一区二区三区不卡观 | 国产精品亚洲 | 国产午夜福利精品久久2025 | 国产一级a在线观看 | 国产无码精品久久久久久久 | 国产男女性潮高清 | 国产freesexvide | 极品私人尤物在线精品视频 | 精品中文字幕制服中文 | 精品国产午夜福利精品推荐 | 九九九精品视频中文无码 | 国产av无码专区亚洲awww | 精品国产在天天在线 | 国精品午夜福利视频不卡麻豆 | 日韩欧国产精品一区综合无码 | 99久久精品国产免费看 | 亚洲av无码一区二区三区在线观看 | 一级片中文字幕在线观看 | 日韩国产变态另类欧美 | 白浆免费视频国产精品视频 | 日本特黄特大视 | 国产午夜无码精品免费看粉 | 国内揄拍国内精品少妇 | 国产熟女高潮视频 | 亚洲欧美一区二区三区 | 午夜看片网址97久久精品视频 | 综合色区亚洲熟妇10p | 91导航手机版下载安装 | 亚洲精品天堂自在久久77 | 丰满少妇人妻无码专区 | 91精品国产综合久久麻豆 | 国产最变态调教视频 | a级性爱视频在线观看 | 无码中文三级在线观看 | 国产91福利精品免费观看 | 成人久久18免费网 | 国产乱码一区二区三区爽爽爽女仆 | 成人黄色一级在 | 国产综合久久久久 | 国产免费人成网站x | 3d动漫精品啪啪一区二区下载 | 91精品国产自产在线观看永久 | 97久久久久人妻精品区一 | 中文字幕免费大全日本一片 | 99国内揄拍国内精 | 成年片色大黄全免费网站久久 | 久久99精品久久久久久久不卡 | 国产精品嫩草影院8vv8 | 丰满的瑜伽老师bd三级免费全集 | 亚洲成a人在 | 欧美精品白浆一区二区三区 | 日韩中文字幕一区二区不卡 | 欧美精品久| av之家免费黄片 | 精品一区二区三区四区在线观 | 国产日韩欧美一区二区视频在线观看 | 在线观看国产丝袜控网站 | 色婷婷在 | 免费一看一级欧美 | 亚洲国产精品色一区二区三区色 | 风流老熟女一区二区三区l 风流老太婆大bbw | 福利视频网站导航 | 日韩精品中文字幕一区二区三区 | 国产一级按摩精油电影 | 日韩夜夜高潮夜夜爽无码 | 91在线播放视频 | 亚洲a无码综合a国产av中文 | 精品综合久久久 | 91精品国产色综合久 | 久久99热只有频精品 | 人妻无码熟妇乱又伦精品视频 | 午夜专区三级无码 | 午夜天堂精品久久久久 | 91香蕉视频app下载最新版下载 | 久久超碰97人人做人人爱 | 国产成人精选在线不卡网站 | 国产女人久久香蕉精品视 | 国产成人av无码网站久久 | 国产免费无码av片在线观看不 | 精品一区二区久久久久久 | 91亚洲精品乱码久久久久久蜜桃 | 羞羞网站高清无码在线观看 | 亚洲毛片无码不卡v在线播放 | 午夜亚洲最污忧物福利视频 | 天天影视人人综合日韩欧美mv | 日韩人妻无码精品久久 | 国产性生大片免费观看性 | а√最新版亚洲毛多色婷婷 | 99精品国产成人一区二区 | 日韩一区二区三区久久久 | 国产亚洲精品资在线 | 97超频在线视频免费观看 | 97久久国产亚洲精品超碰热 | 成人嘿嘿视频网站在线 | 欧美日韩一区二区三区高清在线 | 97视频人人看人人做首页一97碰 | 亚洲熟女乱综合一区二区 | 中文字幕亚洲综合久久菠萝蜜 | 成人无码av一区二区 | 中文字幕无码视频专区在线播放 | 91短视频纯净版下载v6.14.0 | 精品久久中文字幕久久av | 最新欧美国产91麻 | 国产白丝 | 成人午夜精品视频在线观看 | 丰满少妇熟乱xxxxx视频 | 中文字幕韩日精品 | 精品国产群3p交换 | 欧美一区二区在线观看 | 国产天天视频天天看片 | www深夜成| 人澡人澡人澡人澡91 | 日本激情在线视频www | 国产va成无码人在线观看 | 欧美精品久久久久精品 | 国产大量精品视频网站 | 国产精品午夜无码av体验区 | 成人免费午夜无码视频 | 国产成人无码 | 亚洲成在人线aⅴ中文字幕 亚洲成在人线av壁咚影院 | 欧美一区二区三区播放 | 亚洲国产综合精品一区 | 国产av亚洲精品ai换脸电影 | 欧美高难度牲交视频 | www.麻豆| 人人干操 | 日本欧美一区二区三区不卡视频 | 国产aⅴ无码专区亚洲av麻豆 | 无在线观看 | 九色视频app免费下载 | 丝瓜视频涩涩屋色多多色版成人 | 国产成人亚洲日本精品 | 欧美中文综合在线观看 | 91影视安卓最新版下载 | 日日噜噜夜夜狠狠视频无 | www日韩av中文字幕.com | 成年女人永久免费看片 | 欧美精品中文字幕亚洲专区 | 国产精品永久久久久久久久久 | 国产网站永久无码最新的 | 91精品人妻一区二区蜜桃 | 国产高清免费av片在线观看不卡 | 九九热视频免费在线观看 | 欧洲精品视频一二三区视频 | 果冻破解版无限app旧版下载 | 99久久国语露脸精品对白 | 99视频精品国产在线视频 | 97人妻人人做人碰人人爽 | 亚洲日本人成中文字幕 | 国产热无码手机 | 成年人免费在线视频观看 | 国产91熟女高潮一区二区 | 99精品无人区乱码在线观看 | 天天日天天射伊人色综合久久 | 亚洲午夜av无码专区在线播放 | 国精品产区wnw2544 | 国产一区日韩精品欧美在线 | 精品国产91久久久久久久a | 欧美综合自拍亚洲综合图区 | 99久久亚洲精品无码毛片 | 亚洲精品无码mv在线观看 | 91九色porny国产 | 欧美在线观看免费人成 | 成人乱人乱一区二区三区 | 成人动漫1区2区3区 成人动漫h在线观看 | 国产香蕉97碰碰久久人人 | 白丝老师教室呻吟视频 | 国产一级特 | 精品大全中文字幕 | 国产精品嫩草影院免费 | 韩国三级香港三级日本三级 | 国内精品久久久久影院老司 | 无码国产精品视频一区二区三区 | 亚洲欧美国产综合三区ai换脸 | 99东京热这里有精品 | 精品无码国产一区二区三区麻豆 | 国产成人h视频在线播放不卡 | 国产精品无 | 日韩一区二区三区高清电影 | 人人揉人人捏人人爽五月天 | 国产精品一区二区三区四区 | 国产无圣光一区福利二区 | 欧美日韩加勒比精品一区 | 中文字幕亚洲综合久久菠萝蜜 | 91青青草视频在线观看 | 在线观看黄色小 | 久久97久久 | 精品福利视频导航 | 91麻豆精品激情 | 日本强好片久久久久 | 91香蕉视频成人 | 色综合av男人的天堂伊人 | 欧美日韩午夜一区二区 | 欧美日韩国产制服在线 | 国产成年女人免费视频播放a | 熟妇女人妻丰满少妇中文字幕 | 国产av成人无码精品网站 | 成人性视频欧美一区二区三区 | 国产精品激情综合久久 | 久久9国产影视大全99久 | 无码a√毛片一区二区三区 无码aⅴ精 | 精品国精品国产自在久国产 | 精品一区二区三区无码免费直 | 亚洲精品影院在线观看 | 日本乱偷人妻中文字 | 欧美午夜激情影院 | 日韩一区二区在线视频 | 亚洲成a人片在线观看国产 亚洲成a人片在线观看老师 | 人人玩人人添人人澡免费 | 国产素人搭讪在线观看 | 精品欧美一区二区在线观看欧美熟 | 午夜一区欧美二区高清三区 | 精品999日本久久久影院 | 97无码人妻福利免费公开在线视频 | av无码高潮 | 国产精品高清一区二区 | 中文字幕巨大的乳专区不卡顿 | 日韩在线色欲一 | 日韩人妻无码一区二区三区久久 | 国产一区二区在线影院 | 国产福利91精品一区 | 波多野结衣人妻无码潮喷av | 精品久久久久精品亚洲aⅴ 精品久久久久精品亚洲av | 91大神大战丝袜美女在线观看 | 成人女人爽到高潮的a片羞羞动漫 | 国产成人自拍精品视频 | 国产精选在线观看播放 | 国产精华液:从成分到功效 国产精华液一线二线三线 国产精华最好的产 | 亚洲aⅴ天堂av在线电影猫咪 | 日本www一道久久久免费 | 色偷偷超碰av男人天堂 | 国产丝袜在线精品丝袜动漫板 | 日韩精品午 | 精品亚洲a∨一区二区三区 精品亚洲aⅴ无码午夜在线观看 | 国产精品永久久久久久久久久 | 国产精品剧情原创麻豆国产 | 日韩在线观看第一页 | 欧美精品18videos性欧美 | 国产福利精 | 日韩av无码一区二区三区不卡毛 | 国内精品久久久久影院蜜芽 | 爆乳护士一区二区三区在线播放 | 国产午夜精品一区二 | 国产精品ⅴ?在线播放 | 91精产品自偷自偷综合下 | 国产精品嫩草影院av蜜臀 | 亚洲国产精品嫩草影院永久 | 97精品国产91久久久久久久 | 最新国产剧推荐 | av不卡国产在线观看 | 亚洲精品无码久久久久av老牛 | 狠狠色成人一区二区三区 | 99久久麻豆a | 亚洲av成人影片在线观看 | 亚洲免费v一区二区三区 | 国产高清免费av片在线观看不卡 | 精品久久免费 | 国产精品毛片免费在线看片 | 国产91在线精品福利 | 99精品一区二区三区 | 亚洲午夜一区二区三区久久久久 | 在线视频91| 国产一精品一av一免费爽 | 91视频91自拍国产自拍高清 | 日本高清一本一区二区三区 | 丰满少妇粗大猛烈进高清播放 | 亚洲日韩av无码一区二区三区人 | 精品人妻无码一区二区蜜桃 | 香蕉亚洲国产福利91 | 国产一区2区 | 亚洲va中文字幕无码毛片 | 操美女免费视频 | 亚洲午夜精品久久久久久成年 | 欧美一区二区精品系列在线观看 | swag精品电视剧在线观看 | 国产在线98福| 亚洲成a∨人片在无码 | 日韩av免费观看中文字幕 | 欧美日韩一区二区高清不 | 欧美成人一区二区三区在线观看 | 国产激情精 | 人妻aⅴ无码一区二区三区 人妻av区波多野结衣 | 久久不见久久见免费影院 | 国产一区丝袜高跟在线i91传媒 | 国产美女流出白浆在线观看 | 欧美在线观看一区 | 国产精品高潮呻吟久久av无码 | 99久久国语露脸精品国产 | 麻豆视频观看网站 | 凹凸国产熟女精品视频app | 午夜视频在线观看免费观看在线观看 | 国产老妇女牲交视频 | 亚洲精品国产拍精品 | 91麻豆精品国 | 日韩精品无码免费专区午夜 | 精品久久久无码中文字幕天天 | 亚洲av无码乱码国产精品 | 国产麻豆小电影 | 天天操天天操 | 国产精品精品一区二区三区 | av三级片在线观看的 | 国产精品露脸国语对白 | 99这里都是精品 | 欧美精品日韩 | 日韩精品一区二区三区中文在 | 神马午夜福利我不卡手机电影 | 国产在线精品一区二区三区精品 | 无码任你躁久久久久久老妇双奶 | 一区二区美女啪啪啪 | 国产91精品高跟丝袜在线 | 欧美成人国产 | 在线极品美女a毛片费观看 在线精品91青草国产 | 国自产精品手机在线视拍 | 国产精品制服在 | 国产日韩av在线播放 | 熟妇人妻系列aⅴ无码专区友 | 国产麻豆一区二区三区精品视频 | 国产在线一区二区在线视频 | 日韩亚av无码一区二区三区 | 国产福利免费 | 日本爱爱v | 91男女无遮挡猛进猛出免费午夜久久 | 蝌蚪国产窝视频在线播放 | 亚洲第一色片曰本毛片 | 国内精品国语自产拍在线观看91 | a免费不卡观看 | 亚洲伦无码中文字幕 | 亚洲国产成人久久综合区 | 日夜夜操天天爽在欧美亚 | 无码人妻一 | 欧美在线视频精品一区 | 波多野结衣一区二区三区av免费 | 香蕉视频直播免费直播app正式版 | a高清无码免费在线视频 | 91精品自拍视频在线观看 | 亚洲精品字幕在线观看 | 欧美日韩国产一区二区三区精 | 免费无遮挡又黄又爽网站 | 97精品人妻一区二区三区香蕉 | 欧美成人午夜精品一区二区 | 97精品伊人久久久大香线蕉 | 福利导航 | 内射一区二区精品视频在线观 | 成人免费无码不卡毛片 | 99久久精品国产一区二区免费 | 精品精品国产高清a毛片牛牛 | 国产福利91精品一区二区三区 | 国产视频一区二区在线观看 | 少妇高潮毛片免费观看a片 少妇高潮毛片色欲ava片 | 99精品国产在热久久无毒 | 国产性色亚洲特级黄片 | 制服丝袜第一页在线视频网站 | 欧美日韩精品久久久久 | 99re国产精品视频首页 | 在线亚洲欧美日韩中文字幕一区 | 国产91无码网站在线观看 | 国产精品久久久久一区二区三区 | 亚洲中文字幕久久精品无码app | 人妻中文字幕二区 | 麻豆国产av巨作国产剧情 | 亚洲日韩av无码中文 | 91国内精品久久久久免费影院 | 欧美午夜激情免费看 | 亚洲首页国产精品丝袜 | 99精品人妻少妇一区二区 | 91三级视频在线观看 | 亚洲国产精品无码一区二区 | 日日摸夜夜添夜夜添国产三级 | 亚洲av成人一区二区三区观看 | 九九九色视频 | 国产免费一区二区三区 | 九九精品亚洲一 | 色情无码一区二区三区 | 99久久99久久精品国产片 | 超碰97人人做人人爱少妇 | 国产在线精品一区二区三区精品 | 99久久精品免费看国产 | 国产无码高清视频不卡 | 国产综合色在线视频区 | 国自产精品手机在线观看视 | 亚洲av无码乱码国产精000 | 国产黄色毛片 | 日韩丰满少妇无码内射 | 国产精品色婷婷亚洲综合看片 | 天天av翘人人添亚洲综合网 | 欧美日本在线视频 | 国产精品成aⅴ人片在线观看 | 人人爽人妻精品a片二区 | 久久99精品国产99久久 | 国产精品无码一区二区三区不 | 国产精品日韩欧美一区二区三区 | 国产ts人妖在线视频网站 | 国产精品自在在线午夜免费 | 欧美熟妇另类久久久久久久 | 国产免费福利视频 | 成都私人家庭影院 | 国产亚洲色婷婷久久99精品 | 精品亚洲成a人在线看片 | 97久久精品人人槡人妻人人玩 | 中文字幕久精品免费 | 毛片成人久久久国产一级a毛 | 亚洲精品午夜久久aaa级久久久 | 亚洲精品无码久久久 | 91精品视频观看 | 69视频app下载 | 无码激情精品专区在线观看 | 精品日韩欧美国产一区 | 亚洲精品一区二区中文 | 国产精品99久久久久久一二区 | 国产亚洲精品yxsp | 国产精品第2025在线 | av天堂电影网 | 国产免费网站看v片在线软件 | 国产xxx在线 | 国产大片在线免费网站 | 国产高清超清在线播放 | 国产樱花草青青草 | 日韩乱码人妻无码中文字幕久久 | 精品国产综合 | 亚洲成aⅴ人片在线观看无码 | 亚洲av无码一区二区ai换脸 | 精品无码国产自产拍在线观看蜜桃 | 免费午夜福利视频在线观看 | 欧美交性又色又爽又黄麻豆 | 国产亚洲av无码av男人的天堂 | 亚洲一区在线视频 | 91久久国产热精品免费 | 丰满少妇被猛烈进入高清app | 国产精产国品一二三产区伦理电影 | 国产精品嫩草影院在线 | 成人av鲁丝片 | 亚洲毛片不卡av在线播放一区 | 亚洲变态另类av首页 | 精品国产亚洲一区二区三区在线 | 亚洲一级黄 | 成人国产经典 | 国产精品宾馆在线精品酒店 | 欧美亚洲性色影视在线 | 国产热re99| 少妇无码一区二区三区免费 | 嫩草91短视频ap | 黄色a级国产免费大片 | 究竟是人性的扭曲还是道德的沦丧 | 久久99久久无码毛片一区二区 | 黄色网站高清视频一级毛片 | 精品国产在天天在线 | 风流老太婆大bbwbbwhd视频 | 欧美性大 | 91久久国产综合 | 91久久99久91天天拍拍 | 99精品全国免费观看视频 | 天天干天天射天天操 | 99国产综合亚洲精品 | 日韩亚洲人成 | 国产综合精品91 | 99久免费精品视频在线观78 | 亚洲午夜精品一区二区 | 亚洲韩国欧美一区二区三区 | 性做久久久久久久久 | 日韩亚洲国产欧美一区二区 | 亚洲午夜国产精品日本亚洲欧美在线 | 丝瓜视频涩涩屋色多多色版成人 | ww国产 | 国产高潮流白浆免费观看 | 欧美午夜不卡在线观看 | 91在线免费视频 | 91久久视频平台是否值得尝试 | 天堂一区二区在线观看视频 | 狠狠色丁香婷婷综合小时婷婷 | 国产午夜激无码av片在线观看 | 国产美女短视频一区 | 国产精品日韩精品国产a | 国产午夜福利视频在线观看 | 日韩欧美一区二区三区在线视 | 黑料不打烊吃瓜 | 无码视频一区二区三区 | 国产精品伦理久久久久 | 日韩av免费观看中文字幕 | 成人久久午夜影院 | 亚洲av成人中文无码专区 | 免费无码又爽又黄又刺激网站 | 午夜三级福利 | 色婷婷六月亚洲综合香蕉 | 99久久国语露脸精品对白 | av在线播放不卡 | 不卡的神马电影网 | 亚洲国产成人精品久久久 | 国产av无码专区亚洲精品 | 日本无吗不卡在线观看 | 精品一区二区三区视频在线观看免 | 欧美一级夜爽爽爽在线播放 | 精品无人区一区二区三区在线 | 超级碰97直线国产免费公开 | 加勒比在线东京热在线中文字幕 | 国产动漫频道 | 91成人网址 | 国产av一区二区三区传媒 | 亚洲日韩av无码一区二区三区 | 一区二区三区国产无码 | 国产天美剧情av一区二区 | 四虎影视国产永久免费 | 欧美日韩人妻精品一区二区三区 | 变态另类天堂无码专区 | 亚洲乱码无人区卡1卡2卡3 | 中文字幕在线资源站 | 亚洲ⅴa久久久噜噜噜久久天堂 | 国产一区二区不卡 | 丰满少妇人妻无码专区 | 亚洲国产亚洲片在线观看播放 | 亚洲av无码av专区在线观看 | 午夜性色福利在线视频福利 | 国产精品99 | 国产精品一区二区久久精品 | 少妇人妻久久 | 97影院午夜在线影国产 | 国产精品va在线观看 | 国产亚洲欧美日韩国产片 | 国产成人拍精品免费视频 | 东京热加 | 国产女同无遮挡互慰高潮视频 | 日韩激情无码免费毛片 | 不卡的av在线系列 | 精品久久久久久无码人妻热 | 99re在线视频精品看看 | 看全色黄大色黄女片18 | 在线成av人电影观看 | 成年人高级 | 亚洲一卡一卡二新区乱码无人区二 | 91香蕉成人app最新版官网 | 亚洲成a人片在线观看无码专区 | 欧美伦理一区二区 | 国产精品无码专区av在线播放 | 亚洲视频免费在线观看 | 无码熟妇人妻av在线影片最多 | 国产在线98福利播放视频 | 99热久久这里只有精品免费 | 中文字幕无码久久久久久 | 91在线免费观看 | 人人双人av | 中文字幕无码视频专区在线播放 | 国产日韩精品一区二区在线播放 | 亚洲日本一区二区一本一道 | 日本永久精品视频在线观看 | 国产成人无码a区在线观看视频不卡 | 国产无码少妇影视 | 国产在线拍揄自揄视精品一区 | 牛牛本精品99久久精品 | 亚洲精品无码a√中文字幕网站 | 无套内内射视频网站 | 国产又粗又大硬免费视频 | 亚洲欧美日韩综合一区在线观看 | 国产精品乱码久久久久久小说 | 日韩大片 | 亚洲av无码乱观看明星换脸va | 无码专区视频 | 日本老司机午夜福利在线免费观看 | 91a∨精品影库一二三区 | 卡通动漫日韩无码一区二区三区 | 日韩人妻无码一区二区三区久久 | 欧洲熟妇色xxxx欧美老妇免费 | 国产高清综合乱色视频 | 国产成年女人免费视频播放a | 国产一区二区三区视频精品 | 精品亚洲a∨一区二区三区 精品亚洲aⅴ无码午夜在线观看 | 日本福利在线观看 | 亚洲变态另类av首页 | 国产亚洲精品aaaa片在线播放 | 精品国产乱码久久久久久一区 | 国产精品手机网站 | 91精品久久久久久久99蜜桃 | 国产av一区二区三区最新精品 | 亚洲午夜理论片在线观看 | 国产一区二区三区免费视频 | 国产黄片软件在线观看 | 国内精品久久久电影影院 | 人人妻人人爽 | 91精品国产免费久久国语蜜臀 | 亚洲aⅴ无码乱码在线播放 亚洲aⅴ无码码潮喷在线观看 | 国产av无码福利精品成人久久 | 麻豆国产精品免费在线观看 | 日韩中文字幕 | 四虎成人网址 | a在线v欧美 | 亚洲av无码一区二区三区在线观看 | 91丝袜精品久久久久久无码人妻 | 国产白丝喷水娇喘视 | 国产精品亚洲一区二区无码色欲 | 国产免费高潮白浆二区三区 | 日韩av在线中文字幕高清 | 国产成人免费高清激情视频 | 精品伦精品一区二区三区视频 | 国产在线观看三级高清 | 无人一码二码三码4码免费 无人影院手机版在线观看免费 | av天堂影院首页 | 国产成人精品亚洲 | 亚洲精品国产va在 | 99尹人香蕉国产免费天天 | 国产精品爽黄69天堂a | 91视频app污版ios| 国产精品亚洲二区在线观看 | 国产精品日韩免费观看 | 亚洲av无码1区2区久久 | 日本一区午夜艳熟免费 | 国产成人久久精品一区二区三区欧美 | 亚洲国产激情电影综合在线观看 | 国产噜噜噜噜久久久久久久久 | 99精品欧美一区二区三区 |