VML模拟Rose画流程图代码

作者:小贩 来源:51js 时间:2008-09-02 10:58:00 

图形由json格式加载,可以灵活配置。

下一步是完善用户的操作,做这个感觉还是蛮有意思的。呵呵。

截图:

部分源码:


<script type="text/javascript">
gSoft.$("tt").value = "";
var selectCategory = 0;
gSoft.$("firstNode").onclick
= gSoft.$("endNode").onclick
= gSoft.$("status").onclick
= gSoft.$("route").onclick
= gSoft.$("control").onclick
//= gSoft.$("polyLine").onclick
= function(){
 selectCategory = parseInt(this.category);
}
gSoft.$("sharpArea").onmousedown = function(){
 event.cancelBubble = true;
 if(selectCategory<=0) return;
 //this.setCapture();
 var getSharp = function(){
  var sharp = null;
  switch(selectCategory){
   case 1:
    //sharp= demo[3];
    //sharp.index = 3;
    break;
   case 2:
    
    break;
   case 3:
    sharp= new gSoft.flow.roundRect({left:event.x,top:event.y,name:""});
    break;
   case 4:
    //sharp= demo[0];
    //sharp.index = 0;
    sharp= new gSoft.flow.line({from:{x:event.x,y:event.y},to:{x:event.x+100,y:event.y+100}});
    //sharp.move([{x:event.x,y:event.y},{x:event.x,y:event.y}])
    break;
   case 5:
    break;
   case 6:
    //sharp= demo[1];
    //sharp.index = 1;
    break;
   default:
    break;
  }
  return sharp;
 }
 var sharp = getSharp();
 if(sharp){
  //gSoft.$("tt").value = sharp;
  sharp.draw();
 }
 /*if(sharp){
  if(sharp.index==0||sharp.index==1){
   sharp.move([{x:event.x,y:event.y},{x:event.x,y:event.y}])
  } else if(sharp.index==2||sharp.index==3){
   sharp.move({left:event.x,top:event.y});
  }
  gSoft.$("tt").innerHTML = [event.x,event.y].join(",");
 }
 //移动
 this.onmousemove = function(){
  var sharp = sharp || getSharp();
  if(sharp.index==0){
   sharp.setTo({x:event.x,y:event.y});
  } else if(sharp.index==1){
   sharp.move([{x:sharp.points[0].x,y:sharp.points[0].y},{x:event.x,y:event.y}])
  } else if(sharp.index==2||sharp.index==3){
  //gSoft.$("tt").value =event.x+":"+event.y+","+sharp.left+":"+sharp.top;
   var width = Math.abs(event.x - sharp.left);
   var height = Math.abs(event.y - sharp.top);
   sharp.setSize({width:width,height:height});//alert(sharp.outerHTML)
  }
 };
  //松开
 this.onmouseup =  function(){
  this.releaseCapture();
  this.onmousemove = null;
  if(sharp){
   var cloneSharp = sharp.clone();
   //gSoft.$("tt").value =cloneSharp;
   sharp.hidden();
  }
 };*/
 
}

var data =[
 {
  id:1,
  type:1,
  name:"节点1",
  left:20,
  top:20
 },
 {
  id:2,
  type:1, 
  name:"节点2",
  left:50,
  top:180
 },
 {
  id:3,
  type:1, 
  name:"节点3",
  left:100,
  top:300
 },
 {
  id:4,
  type:2,
  name:"路由1",
  from:1,
  to:2
 },
 {
  id:5,
  type:2,
  name:"路由2",
  from:2,
  to:3
 },
 {
  id:6,
  type:3,
  name:"控制1",
  route:4
 },
 {
  id:7,
  type:3,
  name:"控制2",
  route:5
 },
 {
  id:8,
  type:1,
  name:"节点4",
  left:50,
  top:420
 },
 {
  id:9,
  type:2,
  name:"路由3",
  from:3,
  to:8
 }/*,
 {
  id:11,
  type:1,
  name:"节点5",
  left:200,
  top:20
 },
 {
  id:10,
  type:2,
  name:"路由4",
  from:1,
  to:11
 }*/
];
var flow = new gSoft.flow(data);
flow.draw();
</script>

完整VML流程图源码下载地址:VML-Rose流程图.rar (6.20 KB)

 

标签:vml,流程图,代码
0
投稿

猜你喜欢

  • ip地址和身份证的js验证代码

    2007-12-29 21:49:00
  • 如何用vue实现网页截图你知道吗

    2024-04-27 15:51:31
  • javascript 45种缓动效果(一)

    2009-09-19 18:30:00
  • Python除法之传统除法、Floor除法及真除法实例详解

    2023-03-11 18:03:46
  • Python Matplotlib绘制箱线图的全过程

    2023-12-03 21:37:39
  • python 协程中的迭代器,生成器原理及应用实例详解

    2022-09-01 07:19:56
  • Python简单基础小程序的实例代码

    2021-03-29 21:17:59
  • python版DDOS攻击脚本

    2022-08-29 04:16:25
  • Python万物皆对象理解及源码学习

    2023-05-14 13:34:02
  • numpy中的ndarray方法和属性详解

    2021-04-17 10:19:04
  • Python3.5局部变量与全局变量作用域实例分析

    2023-05-20 23:18:28
  • 简单总结Python中序列与字典的相同和不同之处

    2022-02-08 06:31:52
  • mysql 8.0.27 安装配置方法图文教程(Windows64位)

    2024-01-19 07:37:59
  • Linux CentOS Python开发环境搭建教程

    2021-05-17 22:57:18
  • PHP的Yii框架的常用日志操作总结

    2023-10-30 23:17:03
  • MATLAB中text函数使用的语法与示例代码

    2022-09-29 00:21:38
  • Oracle中PL/SQL的块与表达式

    2024-01-28 21:30:34
  • Symfony2实现从数据库获取数据的方法小结

    2023-11-14 13:56:35
  • python字典序问题实例

    2023-07-31 05:46:58
  • JavaScript库jQuery入门简介

    2007-10-17 11:43:00
  • asp之家 网络编程 m.aspxhome.com