# 业务关系图JS连线组件
https://gitee.com/flyer555/startwe_line/tree/master
#### 项目介绍
纯div+css3实现模拟画线条功能,用于前端业务关系图绘制的连线组件
#### 软件架构
软件架构说明
使用前端模板引擎 artTemplate,
jquery,
数学计算方程库algebra
div+css3实现
轻量级的纯div连线组件
#### 安装教程
###
1、引入 css: third/shape/shape.css
2. 引入jquery: third/jquery/jquery-2.1.4.min.js
3、引入artTemplate: third/template/template_debug_3_0_0.js
4、引入 algebra 数学公式计算库:third/algebra/algebra-0.2.5.min.js
5、引入画线图形组件库:third/shape_min/shape.min.js
#### 使用说明
1. 承载线条和div层的容器样式代码参考
###
.paper-area {
background-color: #ffffff;
z-index: 1;
position: relative;
margin: 30px auto;
overflow: hidden;
display: block;
box-shadow: rgba(0, 0, 0, 0.31) 0 0 13px;
}
.paper-area .paper-area{
background-color: transparent;
margin: 0 auto;
z-index: 0;
}
###
2. div层代码参考
.control-abs-component{
background-color: rgba(255,255,255,.7);
width: 140px;
height: 42px;
padding: 5px;
font-size: 0;
display: block;
border: 1px solid transparent;
position: absolute;
left: 0;
top: 0;
z-index: 1;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
###
3、线条自定义样式参考
.ours-line-text .text-color{
color: #ffffff;
}
###
4、body内html代码 参考
####
5、Js调用部分
####
var CurrEvents = {
click:function(cfg){
var fromShapeId = $(cfg.el).attr('from-shape-id');
var toShapeId = $(cfg.el).attr('to-shape-id');
alert('click--> fromId:'+fromShapeId+',toShapeId:'+toShapeId);
console.log('click--> fromId:'+fromShapeId+',toShapeId:'+toShapeId);
},
click4text:function(cfg){
var fromShapeId = $(cfg.el).attr('from-shape-id');
var toShapeId = $(cfg.el).attr('to-shape-id');
alert('clickText--> fromId:'+fromShapeId+',toShapeId:'+toShapeId);
console.log('clickText--> fromId:'+fromShapeId+',toShapeId:'+toShapeId);
},
mouseenter4text:function(cfg){
var fromShapeId = $(cfg.el).attr('from-shape-id');
var toShapeId = $(cfg.el).attr('to-shape-id');
console.log('mouseenter4text--> fromId:'+fromShapeId+',toShapeId:'+toShapeId);
},
mouseleave4text:function(cfg){
var fromShapeId = $(cfg.el).attr('from-shape-id');
var toShapeId = $(cfg.el).attr('to-shape-id');
console.log('mouseleave4text--> fromId:'+fromShapeId+',toShapeId:'+toShapeId);
}
};
/**
* 绑定元素属性说明
*
* targets-json="[{"hasArrow":false,"hasFromArrow":true,"lineText":"连线1"}]"
* to-ids="ctrl_806025145230846776"
*
* targets-json为json数组[{
* hasArrow, 是否在目标元素位置有箭头
* hasFromArrow,//是否在出发元素位置有箭头
* lineText //连线的文本内容
* }]
* to-ids为目标连线id列表
* ****/
ours.buildShapeLines('.control-abs',{
container:'.page-abs', //指定 渲染容器
cls:'',
textCls:'text-color',//文本自定义样式
color:'pink', //线条颜色
lineHeight:2,//线条粗细,
zIndex:1,
click:'CurrEvents.click',//点击事件绑定函数
click4text:'CurrEvents.click4text', //线条文本点击事件
mouseenter4text:'CurrEvents.mouseenter4text',//线条文本鼠标移入事件
mouseleave4text:'CurrEvents.mouseleave4text'//线条文本鼠标移除事件
});
//参考代码 lib/third/shape_min/test-shape.html
#### 参与贡献
1、请加入QQ群644212342交流
2、联系作者 QQ:944811924