857 lines
37 KiB
Smarty
857 lines
37 KiB
Smarty
|
|
Schema.addCategory({name:"process_flowchart", text:"流程图", dataAttributes:[
|
|||
|
|
{name:"No.", type:"number", value:"", category:"default"},
|
|||
|
|
{name:"Name", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Owner", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Link", type:"link", value:"", category:"default"},
|
|||
|
|
{name:"Memo", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Cost", type:"number", value:"", category:"default"},
|
|||
|
|
{name:"Time", type:"number", value:"", category:"default"},
|
|||
|
|
{name:"Manner", type:"list", value:"", category:"default"},
|
|||
|
|
{name:"Department", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Input", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Output", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Risk", type:"string", value:"", category:"default"},
|
|||
|
|
{name:"Remarks", type:"string", value:"", category:"default"}
|
|||
|
|
]});
|
|||
|
|
/***矩形*/Schema.addShape({name:"process", title:"流程", text:"流程", category:"process_flowchart", props:{w:110, h:50},fillStyle:{type: "gradient",gradientType: "linear",beginColor: "245,250,255",endColor: "232,242,255",angle: Math.PI*0.5}, path:[
|
|||
|
|
{lineStyle:{lineWidth:1,lineColor:"137,188,255"},actions:{ref:"rectangle"}}
|
|||
|
|
]});
|
|||
|
|
/***菱形:Decision*/Schema.addShape({name:"decision", title:"判定", text:"判定", category:"process_flowchart", props:{w:90, h:50},fillStyle:{color:"175,210,255"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"h/2"},
|
|||
|
|
{action:"line", x:"w/2", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h/2"},
|
|||
|
|
{action:"line", x:"w/2", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h/2"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***胶囊型:Terminator*/Schema.addShape({name:"terminator", title:"开始/结束", text:"开始/结束", category:"process_flowchart", props:{w:100, h:50},lineStyle:{lineColor:"137,188,255"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"Math.min(w,h)/3", y:"0"},
|
|||
|
|
{action:"line", x:"w-Math.min(w,h)/3", y:"0"},
|
|||
|
|
{action:"curve", x1:"w+Math.min(w,h)/3/3", y1:"0", x2:"w+Math.min(w,h)/3/3", y2:"h", x:"w-Math.min(w,h)/3", y:"h"},
|
|||
|
|
{action:"line", x:"Math.min(w,h)/3", y:"h"},
|
|||
|
|
{action:"curve", x1:"-Math.min(w,h)/3/3", y1:"h", x2:"-Math.min(w,h)/3/3", y2:"0", x:"Math.min(w,h)/3", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***下边波浪矩形:Document*/Schema.addShape({name:"document", title:"文档", text:"文档", category:"process_flowchart", props:{w:110, h:50}, anchors:[
|
|||
|
|
{x:"w*0.5", y:"0"},
|
|||
|
|
{x:"w", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"h-Math.min(h/8,w/12)"},
|
|||
|
|
{x:"0", y:"h*0.5"}
|
|||
|
|
],fillStyle:{type: "gradient",gradientType: "linear",beginColor: "255,255,255",endColor: "237,237,237",angle: Math.PI*0.5}, textBlock:{x:"0", y:"0", w:"w", h:"h*0.9"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{lineStyle:{lineWidth:1,lineColor:"197,197,197"},actions:[
|
|||
|
|
{action:"move", x:"0", y:"h-Math.min(h/8,w/12)"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h-Math.min(h/8,w/12)"},
|
|||
|
|
{action:"quadraticCurve", x1:"w*0.75", y1:"h-3*Math.min(h/8,w/12)", x:"w*0.5", y:"h-Math.min(h/8,w/12)"},
|
|||
|
|
{action:"quadraticCurve", x1:"w*0.25", y1:"h+Math.min(h/8,w/12)", x:"0", y:"h-Math.min(h/8,w/12)"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***平行四边形:Data*/Schema.addShape({name:"data", title:"数据", text:"数据", category:"process_flowchart", props:{w:100, h:70}, anchors:[
|
|||
|
|
{x:"w*0.5", y:"0"},
|
|||
|
|
{x:"w-Math.min(h/3,w/3)/2", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"h"},
|
|||
|
|
{x:"Math.min(h/3,w/3)/2", y:"h*0.5"}
|
|||
|
|
], textBlock:{x:"w*0.15", y:"0", w:"w*0.7", h:"h"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"Math.min(h/3,w/3)", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w-Math.min(h/3,w/3)", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"Math.min(h/3,w/3)", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***三分矩形:Predefinedprocess*/Schema.addShape({name:"predefinedProcess", title:"子流程", text:"子流程", category:"process_flowchart", props:{w:110, h:50},fillStyle:{type: "gradient",gradientType: "linear",beginColor: "245,250,255",endColor: "232,242,255",angle: Math.PI*0.5}, textBlock:{x:"Math.min(w/6,20)", y:"0", w:"w-Math.min(w/6,20)*2", h:"h"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{lineStyle:{lineWidth:1,lineColor:"137,188,255"},actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"close"},
|
|||
|
|
{action:"move", x:"Math.min(w/6,20)", y:"0"},
|
|||
|
|
{action:"line", x:"Math.min(w/6,20)", y:"h"},
|
|||
|
|
{action:"move", x:"w- Math.min(w/6,20)", y:"0"},
|
|||
|
|
{action:"line", x:"w- Math.min(w/6,20)", y:"h"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***横圆柱矩形:Storeddata*/Schema.addShape({name:"storedData", title:"外部数据", text:"外部数据", category:"process_flowchart", props:{w:100, h:70}, anchors:[
|
|||
|
|
{x:"w*0.5", y:"0"},
|
|||
|
|
{x:"w-Math.min(w/8,h/8)", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"h"},
|
|||
|
|
{x:"0", y:"h*0.5"}
|
|||
|
|
], textBlock:{x:"w*0.1", y:"0", w:"w*0.75", h:"h"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"w/6", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"curve", x1:"w-w/6", y1:"0", x2:"w-w/6", y2:"h", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"w/6", y:"h"},
|
|||
|
|
{action:"curve", x1:"-w/17", y1:"h", x2:"-w/17", y2:"0", x:"w/7", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***四分矩形:Internalstorage*/Schema.addShape({name:"internalStorage", title:"内部存储", text:"内部存储", category:"process_flowchart", props:{w:100, h:70}, textBlock:{x:"Math.min(w/6,20)", y:"Math.min(h/5,20)", w:"w - Math.min(w/6,20)", h:"h- Math.min(h/5,20)"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"close"},
|
|||
|
|
{action:"move", x:"Math.min(w/6,20)", y:"0"},
|
|||
|
|
{action:"line", x:"Math.min(w/6,20)", y:"h"},
|
|||
|
|
{action:"move", x:"0", y:"Math.min(h/5,20)"},
|
|||
|
|
{action:"line", x:"w", y:"Math.min(h/5,20)"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***圆Q:Sequentialdata*/Schema.addShape({name:"sequentialData", title:"队列数据", text:"队列数据", category:"process_flowchart", props:{w:70, h:70}, textBlock:{x:"w*0.1", y:"h*0.2", w:"w*0.8", h:"h*0.6"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"w/2", y:"h"},
|
|||
|
|
{action:"curve", x1:"w/2-w*2/3", y1:"h", x2:"w/2-w*2/3", y2:"0", x:"w/2", y:"0"},
|
|||
|
|
{action:"curve", x1:"w/2+w*2/3", y1:"0", x2:"w/2+w*2/3", y2:"h", x:"w/2", y:"h"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***横立体圆柱:Directdata*/Schema.addShape({name:"directData", title:"数据库", text:"数据库", category:"process_flowchart", props:{w:100, h:70}, textBlock:{x:"0", y:"0", w:"w*0.8", h:"h"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"w*0.15", y:"0"},
|
|||
|
|
{action:"line", x:"w-h/6", y:"0"},
|
|||
|
|
{action:"curve", x1:"w+h/22", y1:"0", x2:"w+h/22", y2:"h", x:"w-h/6", y:"h"},
|
|||
|
|
{action:"line", x:"w*0.15", y:"h"},
|
|||
|
|
{action:"curve", x1:"-w*0.05", y1:"h", x2:"-w*0.05", y2:"0", x:"w*0.15", y:"0"},
|
|||
|
|
{action:"close"},
|
|||
|
|
{action:"move", x:"w-h/6", y:"0"},
|
|||
|
|
{action:"curve", x1:"w-h/8*3", y1:"0", x2:"w-h/8*3", y2:"h", x:"w-h/6", y:"h"},
|
|||
|
|
{action:"curve", x1:"w-h/8*3", y1:"h", x2:"w-h/8*3", y2:"0", x:"w-h/6", y:"0"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***横梯形:Manualinput*/Schema.addShape({name:"manualInput", title:"人工输入", text:"人工输入", category:"process_flowchart", props:{w:100, h:70}, anchors:[
|
|||
|
|
{x:"0", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"Math.min(h/2,w/6)/2"},
|
|||
|
|
{x:"w", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"h"}
|
|||
|
|
], textBlock:{x:"0", y:"h*0.1", w:"w", h:"h*0.9"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"Math.min(h/2,w/6)"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"Math.min(h/2,w/6)"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***纸牌:Card*/Schema.addShape({name:"card", title:"卡片", text:"卡片", category:"process_flowchart", props:{w:100, h:70}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"Math.min(h/2,w/4)"},
|
|||
|
|
{action:"line", x:"Math.min(h/2,w/4)", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"Math.min(h/2,w/4)"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***旗:Papertape*/Schema.addShape({name:"paperTape", title:"条带", text:"条带", category:"process_flowchart", props:{w:100, h:70}, textBlock:{x:"0", y:"h*0.1", w:"w", h:"h*0.8"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, anchors:[
|
|||
|
|
{x:"w*0.5", y:"Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{x:"w", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"h-Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{x:"0", y:"h*0.5"}
|
|||
|
|
], path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"quadraticCurve", x1:"w*0.25", y1:"3*Math.min(Math.min(w,h)/8,w/12)", x:"w*0.5", y:"Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"quadraticCurve", x1:"w*0.75", y1:"-Math.min(Math.min(w,h)/8,w/12)", x:"w", y:"Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"line", x:"w", y:"h-Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"quadraticCurve", x1:"w*0.75", y1:"h-3*Math.min(Math.min(w,h)/8,w/12)", x:"w*0.5", y:"h-Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"quadraticCurve", x1:"w*0.25", y1:"h+Math.min(Math.min(w,h)/8,w/12)", x:"0", y:"h-Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"line", x:"0", y:"Math.min(Math.min(w,h)/8,w/12)"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***左角按钮:Display*/Schema.addShape({name:"display", title:"展示", text:"展示", category:"process_flowchart", props:{w:100, h:70}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"w-w/6", y:"0"},
|
|||
|
|
{action:"line", x:"w/6", y:"0"},
|
|||
|
|
{action:"line", x:"0", y:"h/2"},
|
|||
|
|
{action:"line", x:"w/6", y:"h"},
|
|||
|
|
{action:"line", x:"w-w/6", y:"h"},
|
|||
|
|
{action:"quadraticCurve", x1:"w", y1:"h", x:"w", y:"h*0.5"},
|
|||
|
|
{action:"quadraticCurve", x1:"w", y1:"0", x:"w-w/6", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***倒梯形:Manualoperation*/Schema.addShape({name:"manualOperation", title:"人工操作", text:"人工操作", category:"process_flowchart", props:{w:100, h:70}, textBlock:{x:"w*0.1", y:"0", w:"w*0.8", h:"h"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, anchors:[
|
|||
|
|
{x:"w*0.5", y:"0"},
|
|||
|
|
{x:"w-Math.min(h/2,w/6)/2", y:"h*0.5"},
|
|||
|
|
{x:"w*0.5", y:"h"},
|
|||
|
|
{x:"Math.min(h/2,w/6)/2", y:"h*0.5"}
|
|||
|
|
], path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w-Math.min(h/2,w/6)", y:"h"},
|
|||
|
|
{action:"line", x:"Math.min(h/2,w/6)", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***水晶棱形:Preparation*/Schema.addShape({name:"preparation", title:"预备", text:"预备", category:"process_flowchart", props:{w:100, h:70}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"h*0.5"},
|
|||
|
|
{action:"line", x:"Math.min(h/2,w/6)", y:"0"},
|
|||
|
|
{action:"line", x:"w-Math.min(h/2,w/6)", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h/2"},
|
|||
|
|
{action:"line", x:"w-Math.min(h/2,w/6)", y:"h"},
|
|||
|
|
{action:"line", x:"Math.min(h/2,w/6)", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h/2"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***两条水平线:Parallelmode*/Schema.addShape({name:"parallelMode", title:"并行模式", text:"并行模式", category:"process_flowchart", props:{w:100, h:70}, anchors:[
|
|||
|
|
{x:"w*0.5", y:"0"},
|
|||
|
|
{x:"w*0.5", y:"0"},
|
|||
|
|
{x:"w*0.5", y:"h"},
|
|||
|
|
{x:"w*0.5", y:"h"}
|
|||
|
|
], path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"move", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineWidth:0}, actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***棺型:Looplimit*/Schema.addShape({name:"loopLimit", title:"循环限值", text:"循环限值", category:"process_flowchart", props:{w:100, h:70}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"Math.min(h/2,w/6)"},
|
|||
|
|
{action:"line", x:"Math.min(h/2,w/6)", y:"0"},
|
|||
|
|
{action:"line", x:"w-Math.min(h/2,w/6)", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"Math.min(h/2,w/6)"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"Math.min(h/2,w/6)"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***圆形:On-pagereference*/Schema.addShape({name:"onPageReference", title:"页面内引用", text:"页面内引用", category:"process_flowchart", props:{w:70, h:70}, fontStyle:{size:8}, path:[
|
|||
|
|
{actions:{ref:"round"}}
|
|||
|
|
]});
|
|||
|
|
/***下三角锥型:Off-pagereference*/Schema.addShape({name:"offPageReference", title:"跨页引用", text:"跨页引用", category:"process_flowchart", props:{w:70, h:60}, textBlock:{x:"0", y:"0", w:"w", h:"h-Math.min(h,w)/3"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h-Math.min(h,w)/3"},
|
|||
|
|
{action:"line", x:"w*0.5", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h-Math.min(h,w)/3"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***特殊线矩形:Annotation*/Schema.addShape({name:"annotation", title:"注释", text:"注释", category:"process_flowchart", props:{w:100, h:70}, anchors:[
|
|||
|
|
{x:"0", y:"h*0.5"},
|
|||
|
|
{x:"0", y:"h*0.5"},
|
|||
|
|
{x:"0", y:"h*0.5"},
|
|||
|
|
{x:"0", y:"h*0.5"}
|
|||
|
|
], path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineWidth:0}, actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{fillStyle:{type:"none"}, actions:[
|
|||
|
|
{action:"move", x:"w/6", y:"0"},
|
|||
|
|
{action:"line", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"line", x:"w/6", y:"h"}
|
|||
|
|
]},
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineWidth:0}, actions:[
|
|||
|
|
{action:"move", x:"0", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"0"},
|
|||
|
|
{action:"line", x:"w", y:"h"},
|
|||
|
|
{action:"line", x:"0", y:"h"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]});
|
|||
|
|
/***组:Group*/Schema.addShape({name:"group", title:"组", text:"组", category:"process_flowchart", attribute:{container:true,editable:true}, props:{w:200, h:140}, textBlock:{x:"10", y:"0", w:"w-20", h:"h"},textBlockFinal:{x:5, y:0, w:"w-10", h:"h"}, fontStyle:{textAlign:"top", vAlign:"left"}, path:[
|
|||
|
|
{lineStyle:{lineWidth:2, lineStyle:"dashed"}, fillStyle:{type:"none"}, actions:{ref:"roundRectangle"}}
|
|||
|
|
]});
|
|||
|
|
|
|||
|
|
|
|||
|
|
/*泳池/泳道分组*/
|
|||
|
|
Schema.addCategory({name:"lane", text:"泳池/泳道"});
|
|||
|
|
function getPool(a, d) {
|
|||
|
|
for (var b = Model.orderList.length - 1; b >= 0; b--) {
|
|||
|
|
var e = Model.orderList[b].id;
|
|||
|
|
var c = Model.getShapeById(e);
|
|||
|
|
if (c.name == d) {
|
|||
|
|
if (Utils.rectCross(c.props, a.props)) {
|
|||
|
|
return c
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return null
|
|||
|
|
}
|
|||
|
|
function getVerticalPoolWidth(c) {
|
|||
|
|
var a = 0;
|
|||
|
|
for (var b = 0; b < c.children.length; b++) {
|
|||
|
|
var d = c.children[b];
|
|||
|
|
var e = Model.getShapeById(d);
|
|||
|
|
if (e.name != "horizontalSeparator") {
|
|||
|
|
a += e.props.w
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return a
|
|||
|
|
}
|
|||
|
|
function getHorizontalPoolHeight(c) {
|
|||
|
|
var a = 0;
|
|||
|
|
for (var b = 0; b < c.children.length; b++) {
|
|||
|
|
var d = c.children[b];
|
|||
|
|
var e = Model.getShapeById(d);
|
|||
|
|
if (e.name != "horizontalSeparator") {
|
|||
|
|
a += e.props.w
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return a
|
|||
|
|
}
|
|||
|
|
function getChild(c, a) {
|
|||
|
|
for (var b = 0; b < c.children.length; b++) {
|
|||
|
|
var d = c.children[b];
|
|||
|
|
var e = Model.getShapeById(d);
|
|||
|
|
if (e.name == a) {
|
|||
|
|
return e
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return null
|
|||
|
|
}
|
|||
|
|
Schema.addShape({name:"verticalPool", title:"泳池(垂直)",text:"泳池(垂直)", category:"lane", attribute:{rotatable:false, linkable:false, container:true}, children:[], props:{w:250, h:540}, fontStyle:{size:16}, textBlock:{x:10, y:0, w:"w-20", h:40},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, anchors:[], resizeDir:["l", "b", "r"],
|
|||
|
|
path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:{ref:"rectangle"}},
|
|||
|
|
{fillStyle:{color:"232,242,255"},lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:"w", y:0},
|
|||
|
|
{action:"line", x:"w", y:40},
|
|||
|
|
{action:"line", x:0, y:40},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
], drawIcon:function (b, c) {
|
|||
|
|
b += 8;
|
|||
|
|
var a = -4;
|
|||
|
|
return[
|
|||
|
|
{fillStyle:{type:"none"}, actions:[
|
|||
|
|
{action:"move", x:a, y:0},
|
|||
|
|
{action:"line", x:b, y:0},
|
|||
|
|
{action:"line", x:b, y:c},
|
|||
|
|
{action:"line", x:a, y:c},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:a, y:0},
|
|||
|
|
{action:"line", x:b, y:0},
|
|||
|
|
{action:"line", x:b, y:4},
|
|||
|
|
{action:"line", x:a, y:4},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:(a + b) / 2, y:4},
|
|||
|
|
{action:"line", x:(a + b) / 2, y:c}
|
|||
|
|
]}
|
|||
|
|
]
|
|||
|
|
}});
|
|||
|
|
Schema.addShape({name:"verticalLane", title:"泳道(垂直)", text:"泳道(垂直)", category:"lane", attribute:{container:true, rotatable:false, linkable:false}, props:{w:250, h:500}, textBlock:{x:10, y:0, w:"w-20", h:30},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"},
|
|||
|
|
anchors:[], resizeDir:["l", "b", "r"], path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:{ref:"rectangle"}},
|
|||
|
|
{lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:"w", y:0},
|
|||
|
|
{action:"line", x:"w", y:30},
|
|||
|
|
{action:"line", x:0, y:30},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
], drawIcon:function (a, b) {
|
|||
|
|
return[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:a, y:0},
|
|||
|
|
{action:"line", x:a, y:b},
|
|||
|
|
{action:"line", x:0, y:b},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:a, y:0},
|
|||
|
|
{action:"line", x:a, y:4},
|
|||
|
|
{action:"line", x:0, y:4},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]
|
|||
|
|
}, onCreated:function () {
|
|||
|
|
Utils.unselect();
|
|||
|
|
var d = getPool(this, "verticalPool");
|
|||
|
|
if (d == null) {
|
|||
|
|
d = Model.create("verticalPool", this.props.x, this.props.y - 40);
|
|||
|
|
d.children = [this.id];
|
|||
|
|
Model.add(d)
|
|||
|
|
} else {
|
|||
|
|
if (!d.children) {
|
|||
|
|
d.children = []
|
|||
|
|
}
|
|||
|
|
var f = [d];
|
|||
|
|
var a = d.props.x;
|
|||
|
|
var tmpW = this.props.w;
|
|||
|
|
var c = 0;
|
|||
|
|
var b = 0;
|
|||
|
|
var tmp = -1;
|
|||
|
|
//根据props.y来排序
|
|||
|
|
function compare(prop) {
|
|||
|
|
return function(a, b) {
|
|||
|
|
var aa = Model.getShapeById(a);
|
|||
|
|
var bb = Model.getShapeById(b);
|
|||
|
|
var value1 = aa.props[prop];
|
|||
|
|
var value2 = bb.props[prop];
|
|||
|
|
return value1 - value2;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
d.children.sort(compare('x'));
|
|||
|
|
for (var c = 0; c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
if (g.name == "verticalLane") {
|
|||
|
|
if (Utils.rectCross(g.props, this.props)) {
|
|||
|
|
tmp = c + 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (var m = 0; tmp > 0 && m < tmp; m++) {
|
|||
|
|
var e = d.children[m];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
if (g.name == "verticalLane") {
|
|||
|
|
a += g.props.w;
|
|||
|
|
c++
|
|||
|
|
} else {
|
|||
|
|
if (g.name == "verticalSeparatorBar") {
|
|||
|
|
a += g.props.w;
|
|||
|
|
b++
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/*for (var d = 0; d < e.children.length; d++) {
|
|||
|
|
var f = e.children[d];
|
|||
|
|
var h = Model.getShapeById(f);
|
|||
|
|
if (h.name == "verticalLane") {
|
|||
|
|
a += h.props.w;
|
|||
|
|
c++
|
|||
|
|
} else {
|
|||
|
|
if (h.name == "verticalSeparatorBar") {
|
|||
|
|
a += h.props.w;
|
|||
|
|
b++
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
this.props.x = a;
|
|||
|
|
this.props.y = d.props.y + 40;
|
|||
|
|
this.props.h = d.props.h - 40;
|
|||
|
|
if (c == 0) {
|
|||
|
|
if (b == 0) {
|
|||
|
|
this.props.w = d.props.w
|
|||
|
|
} else {
|
|||
|
|
this.props.w = d.props.w - 20
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
Designer.painter.renderShape(this);
|
|||
|
|
f.push(this);
|
|||
|
|
var rightLanes = [];
|
|||
|
|
for (var c = tmp; tmp > 0 && c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
rightLanes.push(g);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var containedShapes = Utils.getContainedShapes(rightLanes);
|
|||
|
|
var containedLinkers = Utils.getOutlinkers(containedShapes);
|
|||
|
|
containedShapes = containedShapes.concat(containedLinkers);
|
|||
|
|
for (var i = 0; i < containedShapes.length; i++) {
|
|||
|
|
var shape = Model.getShapeById(containedShapes[i].id);
|
|||
|
|
Designer.painter.renderShape(shape);
|
|||
|
|
f.push(shape);
|
|||
|
|
}
|
|||
|
|
Designer.op.moveShape(containedShapes, {
|
|||
|
|
x : tmpW * Designer.config.scale,
|
|||
|
|
y : 0
|
|||
|
|
});
|
|||
|
|
Designer.op.hideTip();
|
|||
|
|
|
|||
|
|
for (var c = tmp; tmp > 0 && c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
g.props.x = g.props.x + tmpW;
|
|||
|
|
Designer.painter.renderShape(g);
|
|||
|
|
f.push(g);
|
|||
|
|
}
|
|||
|
|
if (d.children.length > 0) {
|
|||
|
|
d.props.w = d.props.w + tmpW;
|
|||
|
|
}
|
|||
|
|
//e.props.w = this.props.x + this.props.w - e.props.x;
|
|||
|
|
for (var c = 0; c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var h = Model.getShapeById(e);
|
|||
|
|
if (h.name == "horizontalSeparator") {
|
|||
|
|
h.props.w = d.props.w;
|
|||
|
|
Designer.painter.renderShape(h);
|
|||
|
|
f.push(h)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
d.children.push(this.id);
|
|||
|
|
Model.updateMulti(f);
|
|||
|
|
}
|
|||
|
|
Designer.painter.renderShape(d);
|
|||
|
|
this.parent = d.id
|
|||
|
|
}});
|
|||
|
|
Schema.addShape({name:"horizontalPool", title:"泳池(水平)",text:"泳池(水平)", category:"lane", attribute:{rotatable:false, linkable:false, container:true}, children:[], props:{w:640, h:200}, fontStyle:{size:16, orientation:"horizontal"}, textBlock:{x:0, y:10, w:40, h:"h-20"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"},
|
|||
|
|
anchors:[], resizeDir:["t", "r", "b"], path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:{ref:"rectangle"}},
|
|||
|
|
{fillStyle:{color:"232,242,255"},lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:40, y:0},
|
|||
|
|
{action:"line", x:40, y:"h"},
|
|||
|
|
{action:"line", x:0, y:"h"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
], drawIcon:function (a, b) {
|
|||
|
|
b += 8;
|
|||
|
|
var c = -4;
|
|||
|
|
return[
|
|||
|
|
{fillStyle:{type:"none"}, actions:[
|
|||
|
|
{action:"move", x:0, y:c},
|
|||
|
|
{action:"line", x:a, y:c},
|
|||
|
|
{action:"line", x:a, y:b},
|
|||
|
|
{action:"line", x:0, y:b},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:0, y:c},
|
|||
|
|
{action:"line", x:4, y:c},
|
|||
|
|
{action:"line", x:4, y:b},
|
|||
|
|
{action:"line", x:0, y:b},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:4, y:(c + b) / 2},
|
|||
|
|
{action:"line", x:a, y:(c + b) / 2}
|
|||
|
|
]}
|
|||
|
|
]
|
|||
|
|
}});
|
|||
|
|
Schema.addShape({name:"horizontalLane", title:"泳道(水平)",text:"泳道(水平)", category:"lane", attribute:{container:true, rotatable:false, linkable:false}, props:{w:600, h:200}, fontStyle:{orientation:"horizontal"}, textBlock:{x:0, y:10, w:30, h:"h-20"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"},
|
|||
|
|
anchors:[], resizeDir:["t", "b", "r"], path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:{ref:"rectangle"}},
|
|||
|
|
{lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:30, y:0},
|
|||
|
|
{action:"line", x:30, y:"h"},
|
|||
|
|
{action:"line", x:0, y:"h"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
], drawIcon:function (a, b) {
|
|||
|
|
b += 3;
|
|||
|
|
return[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:-1},
|
|||
|
|
{action:"line", x:a, y:-1},
|
|||
|
|
{action:"line", x:a, y:b},
|
|||
|
|
{action:"line", x:0, y:b},
|
|||
|
|
{action:"close"}
|
|||
|
|
]},
|
|||
|
|
{lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:-1},
|
|||
|
|
{action:"line", x:4, y:-1},
|
|||
|
|
{action:"line", x:4, y:b},
|
|||
|
|
{action:"line", x:0, y:b},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
]
|
|||
|
|
}, onCreated:function () {
|
|||
|
|
Utils.unselect();
|
|||
|
|
var d = getPool(this, "horizontalPool");
|
|||
|
|
if (d == null) {
|
|||
|
|
d = Model.create("horizontalPool", this.props.x - 40, this.props.y);
|
|||
|
|
d.children = [this.id];
|
|||
|
|
Model.add(d)
|
|||
|
|
} else {
|
|||
|
|
if (!d.children) {
|
|||
|
|
d.children = []
|
|||
|
|
}
|
|||
|
|
var f = [d];
|
|||
|
|
var h = d.props.y;
|
|||
|
|
var tmpH = this.props.h;
|
|||
|
|
var b = 0;
|
|||
|
|
var a = 0;
|
|||
|
|
var tmp = -1;
|
|||
|
|
//根据props.y来排序
|
|||
|
|
function compare(prop) {
|
|||
|
|
return function(a, b) {
|
|||
|
|
var aa = Model.getShapeById(a);
|
|||
|
|
var bb = Model.getShapeById(b);
|
|||
|
|
var value1 = aa.props[prop];
|
|||
|
|
var value2 = bb.props[prop];
|
|||
|
|
return value1 - value2;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
d.children.sort(compare('y'));
|
|||
|
|
for (var c = 0; c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
if (g.name == "horizontalLane") {
|
|||
|
|
if (Utils.rectCross(g.props, this.props)) {
|
|||
|
|
tmp = c + 1;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (var c = 0; tmp > 0 && c < tmp; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
if (g.name == "horizontalLane") {
|
|||
|
|
h += g.props.h;
|
|||
|
|
b++
|
|||
|
|
} else {
|
|||
|
|
if (g.name == "horizontalSeparatorBar") {
|
|||
|
|
h += g.props.h;
|
|||
|
|
a++
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.props.y = h;
|
|||
|
|
this.props.x = d.props.x + 40;
|
|||
|
|
this.props.w = d.props.w - 40;
|
|||
|
|
if (b == 0) {
|
|||
|
|
if (a == 0) {
|
|||
|
|
this.props.h = d.props.h
|
|||
|
|
} else {
|
|||
|
|
this.props.h = d.props.h - 20
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
Designer.painter.renderShape(this);
|
|||
|
|
f.push(this);
|
|||
|
|
var bottomLanes = [];
|
|||
|
|
for (var c = tmp; tmp > 0 && c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
bottomLanes.push(g);
|
|||
|
|
}
|
|||
|
|
var containedShapes = Utils.getContainedShapes(bottomLanes);
|
|||
|
|
var containedLinkers = Utils.getOutlinkers(containedShapes);
|
|||
|
|
containedShapes = containedShapes.concat(containedLinkers);
|
|||
|
|
for (var i = 0; i < containedShapes.length; i++) {
|
|||
|
|
var shape = Model.getShapeById(containedShapes[i].id);
|
|||
|
|
Designer.painter.renderShape(shape);
|
|||
|
|
f.push(shape);
|
|||
|
|
}
|
|||
|
|
Designer.op.moveShape(containedShapes, {
|
|||
|
|
x : 0,
|
|||
|
|
y : tmpH * Designer.config.scale
|
|||
|
|
});
|
|||
|
|
Designer.op.hideTip();
|
|||
|
|
|
|||
|
|
for (var c = tmp; tmp > 0 && c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
g.props.y = g.props.y + tmpH;
|
|||
|
|
Designer.painter.renderShape(g);
|
|||
|
|
f.push(g);
|
|||
|
|
}
|
|||
|
|
if (d.children.length > 0) {
|
|||
|
|
d.props.h = d.props.h + tmpH;
|
|||
|
|
}
|
|||
|
|
//d.props.h = this.props.y + this.props.h - d.props.y;
|
|||
|
|
for (var c = 0; c < d.children.length; c++) {
|
|||
|
|
var e = d.children[c];
|
|||
|
|
var g = Model.getShapeById(e);
|
|||
|
|
if (g.name == "verticalSeparator") {
|
|||
|
|
g.props.h = d.props.h;
|
|||
|
|
Designer.painter.renderShape(g);
|
|||
|
|
f.push(g)
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
d.children.push(this.id);
|
|||
|
|
Model.updateMulti(f);
|
|||
|
|
}
|
|||
|
|
Designer.painter.renderShape(d);
|
|||
|
|
this.parent = d.id
|
|||
|
|
}});
|
|||
|
|
|
|||
|
|
Schema.addShape({name:"verticalSeparatorBar", title:"水平分隔条", category:"lane", attribute:{rotatable:false, linkable:false, visible:false}, props:{w:20, h:500}, anchors:[], resizeDir:[], textBlock:{}, textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"},path:[
|
|||
|
|
{lineStyle:{lineStyle:"solid"}, actions:{ref:"rectangle"}}
|
|||
|
|
]});
|
|||
|
|
Schema.addShape({name:"horizontalSeparator", title:"分隔符(水平)", category:"lane", attribute:{rotatable:false, linkable:false}, props:{w:300, h:0}, fontStyle:{orientation:"horizontal", textAlign:"left"}, textBlock:{x:0, y:5, w:20, h:"h-10"},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, text:"阶段",
|
|||
|
|
anchors:[], resizeDir:["b"], path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:"h"},
|
|||
|
|
{action:"line", x:"w", y:"h"}
|
|||
|
|
]},
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:20, y:0},
|
|||
|
|
{action:"line", x:20, y:"h"},
|
|||
|
|
{action:"line", x:0, y:"h"},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
], drawIcon:function (a, b) {
|
|||
|
|
return[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:a, y:0}
|
|||
|
|
]}
|
|||
|
|
]
|
|||
|
|
}, onCreated:function () {
|
|||
|
|
var g = getPool(this, "verticalPool");
|
|||
|
|
if (g == null) {
|
|||
|
|
return false
|
|||
|
|
}
|
|||
|
|
var j = getChild(g, "verticalSeparatorBar");
|
|||
|
|
if (j == null) {
|
|||
|
|
j = Model.create("verticalSeparatorBar", g.props.x - 20, g.props.y + 40);
|
|||
|
|
j.props.h = g.props.h - 40;
|
|||
|
|
j.parent = g.id;
|
|||
|
|
Model.add(j);
|
|||
|
|
Designer.painter.renderShape(j);
|
|||
|
|
g.props.x -= j.props.w;
|
|||
|
|
g.props.w += j.props.w;
|
|||
|
|
g.children.push(j.id);
|
|||
|
|
Designer.painter.renderShape(g)
|
|||
|
|
}
|
|||
|
|
var a = this.props.y + this.props.h;
|
|||
|
|
var h = g.props.y + 40;
|
|||
|
|
var f = null;
|
|||
|
|
for (var e = 0; e < g.children.length; e++) {
|
|||
|
|
var d = g.children[e];
|
|||
|
|
var b = Model.getShapeById(d);
|
|||
|
|
if (b.name != "horizontalSeparator") {
|
|||
|
|
continue
|
|||
|
|
}
|
|||
|
|
var c = b.props.y + b.props.h;
|
|||
|
|
if (c <= a) {
|
|||
|
|
h += b.props.h
|
|||
|
|
} else {
|
|||
|
|
if (f == null || b.props.y < f.props.y) {
|
|||
|
|
f = b
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.props.x = g.props.x;
|
|||
|
|
this.props.w = g.props.w;
|
|||
|
|
this.props.h = a - h;
|
|||
|
|
this.props.y = h;
|
|||
|
|
g.children.push(this.id);
|
|||
|
|
this.parent = g.id;
|
|||
|
|
if (a > g.props.y + g.props.h) {
|
|||
|
|
this.props.h = g.props.y + g.props.h - h
|
|||
|
|
}
|
|||
|
|
Designer.painter.renderShape(this);
|
|||
|
|
if (f != null) {
|
|||
|
|
f.props.y += this.props.h;
|
|||
|
|
f.props.h -= this.props.h;
|
|||
|
|
Designer.painter.renderShape(f);
|
|||
|
|
Model.updateMulti([g, f])
|
|||
|
|
} else {
|
|||
|
|
Model.update(g)
|
|||
|
|
}
|
|||
|
|
this.props.zindex = Model.maxZIndex + 1
|
|||
|
|
}});
|
|||
|
|
Schema.addShape({name:"horizontalSeparatorBar", title:"垂直分隔条", category:"lane", attribute:{rotatable:false, linkable:false, visible:false}, props:{w:600, h:20}, anchors:[], resizeDir:[], textBlock:{},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, path:[
|
|||
|
|
{lineStyle:{lineStyle:"solid"}, actions:{ref:"rectangle"}}
|
|||
|
|
]});
|
|||
|
|
Schema.addShape({name:"verticalSeparator", title:"分隔符(垂直)", category:"lane", attribute:{rotatable:false, linkable:false}, props:{w:0, h:300}, fontStyle:{textAlign:"right"}, textBlock:{x:5, y:0, w:"w-10", h:20},textBlockFinal:{x:"w/2-60", y:"h", w:"120", h:"30"}, text:"阶段", anchors:[], resizeDir:["r"], path:[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:"w", y:0},
|
|||
|
|
{action:"line", x:"w", y:"h"}
|
|||
|
|
]},
|
|||
|
|
{actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:"w", y:0},
|
|||
|
|
{action:"line", x:"w", y:20},
|
|||
|
|
{action:"line", x:0, y:20},
|
|||
|
|
{action:"close"}
|
|||
|
|
]}
|
|||
|
|
], drawIcon:function (a, b) {
|
|||
|
|
return[
|
|||
|
|
{fillStyle:{type:"none"}, lineStyle:{lineStyle:"solid"}, actions:[
|
|||
|
|
{action:"move", x:0, y:0},
|
|||
|
|
{action:"line", x:0, y:b}
|
|||
|
|
]}
|
|||
|
|
]
|
|||
|
|
}, onCreated:function () {
|
|||
|
|
var e = getPool(this, "horizontalPool");
|
|||
|
|
if (e == null) {
|
|||
|
|
return false
|
|||
|
|
}
|
|||
|
|
var g = getChild(e, "horizontalSeparatorBar");
|
|||
|
|
if (g == null) {
|
|||
|
|
g = Model.create("horizontalSeparatorBar", e.props.x + 40, e.props.y - 20);
|
|||
|
|
e.props.y -= g.props.h;
|
|||
|
|
e.props.h += g.props.h;
|
|||
|
|
e.children.push(g.id);
|
|||
|
|
Designer.painter.renderShape(e);
|
|||
|
|
g.props.w = e.props.w - 40;
|
|||
|
|
g.parent = e.id;
|
|||
|
|
Model.add(g);
|
|||
|
|
Designer.painter.renderShape(g)
|
|||
|
|
}
|
|||
|
|
var j = this.props.x + this.props.w;
|
|||
|
|
var h = e.props.x + 40;
|
|||
|
|
var d = null;
|
|||
|
|
for (var c = 0; c < e.children.length; c++) {
|
|||
|
|
var b = e.children[c];
|
|||
|
|
var a = Model.getShapeById(b);
|
|||
|
|
if (a.name != "verticalSeparator") {
|
|||
|
|
continue
|
|||
|
|
}
|
|||
|
|
var f = a.props.x + a.props.w;
|
|||
|
|
if (f <= j) {
|
|||
|
|
h += a.props.w
|
|||
|
|
} else {
|
|||
|
|
if (d == null || a.props.x < d.props.x) {
|
|||
|
|
d = a
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
this.props.x = h;
|
|||
|
|
this.props.w = j - h;
|
|||
|
|
this.props.y = e.props.y;
|
|||
|
|
this.props.h = e.props.h;
|
|||
|
|
if (j > e.props.x + e.props.w) {
|
|||
|
|
this.props.w = e.props.x + e.props.w - h
|
|||
|
|
}
|
|||
|
|
Designer.painter.renderShape(this);
|
|||
|
|
e.children.push(this.id);
|
|||
|
|
this.parent = e.id;
|
|||
|
|
if (d != null) {
|
|||
|
|
d.props.x += this.props.w;
|
|||
|
|
d.props.w -= this.props.w;
|
|||
|
|
Designer.painter.renderShape(d);
|
|||
|
|
Model.updateMulti([e, d])
|
|||
|
|
} else {
|
|||
|
|
Model.update(e)
|
|||
|
|
}
|
|||
|
|
this.props.zindex = Model.maxZIndex + 1
|
|||
|
|
}});
|