⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.html

📁 vml 资料,安例精彩,希望对大家有帮助
💻 HTML
字号:
<html xmlns:v="urn:schemas-microsoft-com:vml">
<HEAD>
<TITLE>CommitFlow -- 在线工作流设计系统(v1.01 build 497)</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="EditPlus">
<meta name="Author" content="Hi,Hi(support@tops.com.cn)">
<meta name="Keywords" content="CommitFlow,Tops,WebFlow,在线工作流,http://www.shcommit.com">
<meta name="Description" content="流程图设计器,完成程序图的主要设计工作">
<link href="css/style.css" type="text/css" rel="stylesheet">
<script language="jscript.encode" src="js/common.js"></script>
<script language="jscript.encode" src="js/dtree.js"></script>
<script language="jscript.encode" src="js/shape.js"></script>
<script language="jscript.encode" src="js/toppanel.js"></script>
<script language="jscript.encode" src="js/topflow.js"></script>
<script language="jscript.encode" src="js/topflowevent.js"></script>
<script language="jscript.encode" src="js/contextmenu.js"></script>

<SCRIPT LANGUAGE="JScript">
var _TREE;

//function
function DrawTree(){
  _TREE = new dTree('_TREE', 'image/');
  var num = 3, obj,i;
  var FocusColor = _FLOW.Config.ProcFocusedStrokeColor;
  _TREE.add(0,-1,' '+_FLOW.Text+'','javascript:','',_FLOW.ID);
  _TREE.add(1,0,'任务','javascript:','','Procs','','image/task.gif','image/task.gif');
  _TREE.add(2,0,'路径','javascript:','','Steps','','image/step.gif','image/step.gif');
  for (i = 0;i < _FLOW.Procs.length;i++){
    obj = _FLOW.Procs[i];
    _TREE.add(num++,1,obj.Text,'javascript:objFocusedOn("'+obj.ID+'");','',obj.ID,'','image/obj4.gif','image/obj4.gif');
  }

  for (i = 0;i < _FLOW.Steps.length;i++){
    obj = _FLOW.Steps[i];
    _TREE.add(num++,2,obj.Text,'javascript:objFocusedOn("'+obj.ID+'");','',obj.ID,'','image/obj4.gif','image/obj4.gif');
  }
  treeview.innerHTML = _TREE;
}

function DrawDataView(){
  var idTR, idTD, arr = _FLOW.DataView();
  for(var i = dataview.rows.length - 1; i > 0; i--)
    dataview.deleteRow(i);
  for(var i = 0, u = 1; i < arr.length; i++){
    idTR = dataview.insertRow();
  	idTR.onmouseover=new Function("this.className=\"focusLine\";");
	  idTR.onmouseout=new Function("this.className=\"normalLine\";");
    idTR.height = "22";
    idTD = idTR.insertCell();
	idTD.innerHTML = arr[i].ProcID + "(" + arr[i].ProcText + ")";
    idTD = idTR.insertCell();
    idTD.innerHTML = arr[i].Idx;
    idTD = idTR.insertCell();
	idTD.innerHTML = arr[i].PreProcID + "(" + arr[i].PreProcText + ")";
    idTD = idTR.insertCell();
    idTD.innerHTML = arr[i].Cond + "&nbsp;";
  }
  mergecell(dataview);
}

function DrawVML(){
  Canvas.innerHTML = _FLOW.ProcString();
  Canvas.innerHTML += _FLOW.StepString();
  _FLOW.getInnerObject();
  _FOCUSTEDOBJ = null;
  stuffProp();
}

function DrawAll(){
  //DrawTree();
  DrawVML();
  //DrawDataView();
}

function LoadFlow(AUrl){
  if(AUrl == "")
    _FLOW.createNew("");
  else
    _FLOW.loadFromXML(AUrl);
  DrawAll();
  emptyLog();
}

function ObjSelected(){
  if(_FOCUSTEDOBJ == null){
    alert("当前没有选中对象!--用鼠标单击流程图上的对象可以选中它");
    return false;  
  }
  return true;
}

//[流程图]菜单处理事件
function mnuNewFlow(){
  if(_FLOW.Modified)
    if(!confirm("当前流程图尚未保存,新建新文件将会放弃所有修改,继续新建吗?")) return;
  var flow = new TTopFlow("");
  flow.FileName = "untitled.xml";
  if(vmlOpenWin("flow.htm", flow, 350,200)){
    LoadFlow("");
    _FLOW.FileName = flow.FileName;
    _FLOW.Text = flow.Text;
    _FLOW.Password = flow.Password;
    DrawTree();
    delete flow;
  }
}

function mnuEditFlow(){
  if(vmlOpenWin("flow.htm", _FLOW, 350,200)){
    DrawTree();
  }
}

function mnuValidateFlow(){
  var s = _FLOW.validate();
  if(s == "")
    alert("校验完成,这是一个合法的流程图!");
  else
    alert(s);
}

function mnuOpenFlow(){
  if(_FLOW.Modified)
    if(!confirm("当前流程图尚未保存,打开新文件将会放弃所有修改,继续打开吗?")) return;
  if(vmlOpenWin("filelist.jsp", _FLOW, 450,400))
    LoadFlow(_FLOW.FileName);
}

function mnuSaveFlow(){ 
  
  //如有asp环境,要保存流程图的xml文件,请注释下面两行
 // alert('在asp环境下才能保存!');//--
  //return false;                  //--

  if(!confirm("确定要保存当前流程图[" + _FLOW.FileName + "]吗?")) return;
  var s = _FLOW.validate();
  if(s != "")
	if(!confirm("当前有效性检查有误\n\n" + s + "\n\n是否要继续保存?")) return;
  try{
	var s = _FLOW.SaveToXML();
	if(s == "")
	  alert("保存成功!");
	else
	  alert("保存失败!"+s);
  }
  catch(e){
	alert(e);    
  }
}

function mnuReloadFlow(){
  if(_FLOW.Modified)
    if(!confirm("当前流程图尚未保存,重新载入将会放弃所有修改,继续重载吗?")) return;
  LoadFlow(_FLOW.FileName);
}

//[流程图对象]菜单处理事件
function mnuAddProc(){
  var Proc = new TProc(_FLOW);
  if(vmlOpenWin("proc.htm", Proc, 450,350)){
    _FLOW.addProc(Proc);
    pushLog("addproc", Proc);
    DrawAll();
  }
}

function mnuAddStep(){
  var Step = new TStep(_FLOW);
  if(vmlOpenWin("step.htm", Step, 500,350)){
    _FLOW.addStep(Step);
    pushLog("addstep", Step);
    DrawAll();
  }
}

function mnuCopyProc(){
  if(!ObjSelected()) return;
  if(_FOCUSTEDOBJ.typ != "Proc"){
    alert("只有任务可以复制!");
    return;
  }
  var curProc = _FLOW.getProcByID(_FOCUSTEDOBJ.id);
  if(!confirm("确定要复制任务[" + curProc.Text + "]吗?")) return;
  var Proc = new TProc(_FLOW);
  var iID = Proc.ID;
  Proc.clone(curProc);
  Proc.ID = iID;
  Proc.X = parseInt(curProc.X) + 10;
  Proc.Y = parseInt(curProc.Y) + 10;
  _FLOW.addProc(Proc);
  pushLog("addproc", Proc);
  DrawAll();
  objFocusedOn(iID);
  mnuSetZIndex("F");
}

function mnuEditObj(){
  if(!ObjSelected()) return;
  if(_FOCUSTEDOBJ.typ != "Proc" && _FOCUSTEDOBJ.typ != "Step") return;
  if(_FOCUSTEDOBJ.typ == "Proc")
    editProc(_FOCUSTEDOBJ.id);
  else
    editStep(_FOCUSTEDOBJ.id);
}

function mnuDelObj(){
  if(ObjSelected()) deleteObj(_FOCUSTEDOBJ.id);
}

function mnuSetZIndex(Act){
  if(!ObjSelected()) return;
  if(_FOCUSTEDOBJ.typ != "Proc" && _FOCUSTEDOBJ.typ != "Step") return;
  if(_FOCUSTEDOBJ.typ == "Proc")
    var obj = _FLOW.getProcByID(_FOCUSTEDOBJ.id);
  else
    var obj = _FLOW.getStepByID(_FOCUSTEDOBJ.id);
  var oldValue = obj.zIndex;
  if(Act == "F")
    _FLOW.brintToFront(obj);
  else
    _FLOW.sendToBack(obj);
  _FOCUSTEDOBJ.style.zIndex = obj.zIndex;
  pushLog("editprop",{"obj":obj,"prop":"zIndex","_old":oldValue,"_new":obj.zIndex});
}

//[系统菜单]处理事件
function mnuOption(){
  if(vmlOpenWin("option.htm", _FLOW.Config, 510,510)){
    DrawAll();
  }
}

function mnuDemo(){
  var tmpwin = window.open("demo.htm");
  tmpwin.focus();
}

function mnuFileMgr(){
  vmlOpenWin("filemgr.jsp","",450,400);
}

function mnuAbout(){
  vmlOpenWin("about.htm", "", 480,400);
}

function mnuExit(){
  if(confirm("确定要退出本系统吗?")){
    window.opener = null;
    window.close();
  }
}

function mnuSetZoom(Act){
  var rate = Act == "in"?0.2:-0.2;
  var newzoom = _ZOOM + rate;
  if(newzoom > 2) return;
  if(newzoom < 0.2) return;
  changeZoom(newzoom);
  document.all("zoomshow").value = _ZOOM;
}

function changeZoom(v){
  _ZOOM = parseFloat(parseFloat(v).toFixed(2));
  Canvas.style.zoom = _ZOOM;
}

function mnuTurnToolbox(){
  tbxToolbox.VisibleEx = !tbxToolbox.VisibleEx;
  tbxToolbox.InnerObject.style.display = tbxToolbox.VisibleEx?"block":"none";
  document.all.mnu_win_toolbox.innerHTML = (tbxToolbox.VisibleEx?"隐藏":"显示") + "工具箱";
}

function mnuTurnPropbox(){
  tbxPropbox.VisibleEx = !tbxPropbox.VisibleEx;
  tbxPropbox.InnerObject.style.display = tbxPropbox.VisibleEx?"block":"none";
  document.all.mnu_win_propbox.innerHTML = (tbxPropbox.VisibleEx?"隐藏":"显示") + "属性框";
}

function mnuTurnObjView(){
  tbxObjView.VisibleEx = !tbxObjView.VisibleEx;
  tbxObjView.InnerObject.style.display = tbxObjView.VisibleEx?"block":"none";
  document.all.mnu_win_objview.innerHTML = (tbxObjView.VisibleEx?"隐藏":"显示") + "对象视图";
}

function mnuTurnDataView(){
  tbxDataView.VisibleEx = !tbxDataView.VisibleEx;
  tbxDataView.InnerObject.style.display = tbxDataView.VisibleEx?"block":"none";
  document.all.mnu_win_dataview.innerHTML = (tbxDataView.VisibleEx?"隐藏":"显示") + "数据视图";
}

//-->
</SCRIPT>
</HEAD>
<BODY leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style='background-image: url(image/canvasbg.gif);'>

<div style='left:0px;top:0px;width:100%;height:100%;position:absolute;z-index:-1000' id="Canvas"></div>
<v:rect class="toolui" style="display:none" id="_rectui">
<v:Stroke dashstyle="dashdot"/>
</v:rect>
<v:rect class="toolui" style="display:none" fillcolor="#CCCCCC" id="_fillrectui">
<v:Stroke dashstyle="dashdot"/>
</v:rect>
<v:roundrect class="toolui" style="display:none;left:0px;top:0px;width:60px;height:50px;" id="_roundrectui">
<v:Stroke dashstyle="dashdot"/>
</v:roundrect>
<v:shape type="#diamond" class="toolui" style="display:none;left:0px;top:0px;width:60px;height:50px;" strokeweight="1px" id="_diamondui">
<v:Stroke dashstyle="dashdot"/>
</v:shape>
<v:oval class="toolui" style="display:none;left:0px;top:0px;width:60px;height:50px;" id="_ovalui">
<v:Stroke dashstyle="dashdot"/>
</v:oval>
<v:line class="toolui" style="display:none" from="0,0" to="100,0" id="_lineui">
<v:Stroke dashstyle="dashdot" StartArrow="" EndArrow="Classic"/>
</v:line>
<SCRIPT LANGUAGE="JavaScript">
<!--
function NavBrush_onClick(obj){
  //清除所有的ButtonClass
  var objs = document.all("tbxToolbox_btn");
  for(var i = 0; i < objs.length; i++)
    objs[i].className="bon2";
  obj.className = "bon1";
  _TOOLTYPE = obj.cType;
}

S = '<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">' +
      '<tr>' +
        '<td bgcolor="#C4D6FC" valign="top" align="center">'+
          '<div id="tableContainer2" class="tableContainer">'+ 
          '<table id="propview" border="0" cellpadding="0" cellspacing="0" width="100%" class="gridstyle"> '+
          '<thead> '+
            '<tr height="25" class="hdr">'+
              '<td width="80">属性</td><td>值</td>'+
            '</tr>'+
          '</thead> '+
          '<tbody > '+
          '</tbody> '+
          '</table> '+
          '</div> '+
        '</td>'+
      '</tr>'+
    '</table>';
tbxPropbox = new TToolBox("tbxPropbox", "属性", screen.availWidth-330, 1, 270, 500, S, "down", true);

var S = '<table cellspacing="0" cellpadding="0" border="0">' +
    '<tr height="25"><td width="2"></td>' +

      '<td width="20" align="center" title="校验流程图"><BUTTON class="normalBtn" onmouseover="this.className=\'focusBtn\'" onmouseout=\"this.className=\'normalBtn\'" HIDEFOCUS="true" onclick="mnuValidateFlow();"><img src="image/validate.gif" border="0"></BUTTON></td>' +
     '<td width="20" align="center" title="保存流程图 Ctrl+S"><BUTTON class="normalBtn" onmouseover="this.className=\'focusBtn\'" onmouseout=\"this.className=\'normalBtn\'" HIDEFOCUS="true" onclick="mnuSaveFlow();"><img src="image/save.gif" border="0"></BUTTON></td>' +
     
      '<td width="23" align="center" title="删除选中对象 Del"><BUTTON class="normalBtn" onmouseover="this.className=\'focusBtn\'" onmouseout=\"this.className=\'normalBtn\'" HIDEFOCUS="true" onclick="mnuDelObj();"><img src="image/del_obj.gif" border="0"></BUTTON></td>' +
      
      '<td width="4" background="image/split.gif"></td>'+

	  //工具箱
	  '<td align="center" title="选择对象\n\n1.单击本按钮\n2.在工作区(画布)上单击[任务]或[路径]的图形"><BUTTON cType="point" class="bon1" name="tbxToolbox_btn" HIDEFOCUS="true" onclick="NavBrush_onClick(this);"><v:PolyLine filled="false" Points="0,0 0,12 4,9 7,18 13,14 7,7 11,5 0,0" style="position:relative;" strokeweight="1"/></BUTTON></td>' +
      '<td align="center"></td>' +
	  '<td align="center" title="新增[任务](方形)\n\n1.单击本按钮\n2.在工作区(画布)上空白位置按住左键\n3.拉动鼠标\n4.松开鼠标左键"><BUTTON cType="rect" class="bon2" name="tbxToolbox_btn"  HIDEFOCUS="true" onclick="NavBrush_onClick(this);"><v:rect filled="F" style="position:relative;left:1px;top:1px;width:15px;height:15px;" strokeweight="1px"/></BUTTON></td>' +
   
      '<td align="center" title="新增[汇聚](方形)\n\n1.单击本按钮\n2.在工作区(画布)上空白位置按住左键\n3.拉动鼠标\n4.松开鼠标左键"><BUTTON cType="fillrect" class="bon2" name="tbxToolbox_btn"  HIDEFOCUS="true" onclick="NavBrush_onClick(this);"><v:rect filled="T" style="position:relative;left:1px;top:1px;width:15px;height:15px;" strokeweight="1px" fillcolor="#CCCCCC"/></BUTTON></td>' +
	  '<td align="center" title="新增[路径](折角线)\n\n1.单击本按钮\n2.在[任务]图形(起点)上按住鼠标左键\n3.拉动鼠标至某[任务]图形(终点)中间位置\n4.松开鼠标左键"><BUTTON cType="polyline" class="bon2" name="tbxToolbox_btn"  HIDEFOCUS="true" onclick="NavBrush_onClick(this);"><v:PolyLine filled="false" Points="0,18 9,5 18,18" style="position:relative;" strokeweight="1"><v:stroke EndArrow="Classic"/></v:PolyLine></BUTTON></td>' +

	  '<td width="4" background="image/split.gif"></td>'+
      '<td width="23" align="center" title="关于"><BUTTON class="normalBtn" onmouseover="this.className=\'focusBtn\'" onmouseout=\"this.className=\'normalBtn\'" HIDEFOCUS="true" onclick="mnuAbout();"><img src="image/qa.gif" border="0"></BUTTON></td>' +
    '<td width="2"></td></tr>' + 
    '</table>';
tbxToolbar = new TToolPanel("tbxToolbar", 1, 1, 600, 25, S);
LoadFlow("D0000000040.xml");
//-->
</SCRIPT>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -