mirror of
https://gitee.com/hoslay/ddei-editor.git
synced 2025-12-07 01:28:28 +08:00
166 lines
4.6 KiB
TypeScript
166 lines
4.6 KiB
TypeScript
import { ov_link_v_split_point, ov_link_h_split_point } from "ddei-framework";
|
||
|
||
export default {
|
||
'id': '305003',
|
||
'name': '包',
|
||
'code': 'pkg',
|
||
'desc': '包',
|
||
'from': '100500',
|
||
|
||
'define': {
|
||
width: 200,
|
||
height: 160,
|
||
//2为极坐标,以cpv为圆心,半径r采样获得点,在以width/100、height/100的的原始比例进行缩放
|
||
poly: 2,
|
||
//采样信息
|
||
sample: {
|
||
eqrat: false,
|
||
//只采样一次
|
||
loop: 1,
|
||
//初始次采样的开始角度
|
||
angle: 0,
|
||
//半径距离
|
||
r: 50,
|
||
//采样的规则,多组采样返回多组规则
|
||
rules: [
|
||
//选中区域
|
||
`(i, sample, pvs, model,ovs){
|
||
pvs.push({begin:1,x:50,y:50,stroke:1,fill:1,clip:1,oppoint:2,select:1});
|
||
pvs.push({x:-50,y:50,stroke:1,fill:1,clip:1,oppoint:2,select:1});
|
||
pvs.push({x:-50,y:(ovs[0].y-model.cpv.y),stroke:1,fill:1,clip:1,oppoint:2,select:1});
|
||
pvs.push({x:-50,y:-50,stroke:1,fill:1,clip:1,oppoint:2,select:1});
|
||
pvs.push({x:(ovs[1].x-ovs[1].ovi.x-50),y:-50,stroke:1,fill:1,clip:1,oppoint:2,select:1});
|
||
pvs.push({x:(ovs[1].x-ovs[1].ovi.x-50),y:(ovs[0].y-model.cpv.y),stroke:1,fill:1,clip:1,oppoint:2,select:1});
|
||
pvs.push({x:50,y:(ovs[0].y-model.cpv.y),stroke:1,fill:1,clip:1,oppoint:2,op2close:1,select:1,end:1});
|
||
}`,
|
||
`(i, sample, pvs, model,ovs){
|
||
pvs.push({x:-50,y:(ovs[0].y-model.cpv.y),stroke:1,type:1});
|
||
pvs.push({x:50,y:(ovs[0].y-model.cpv.y),stroke:1,type:1});
|
||
|
||
}`,
|
||
],
|
||
|
||
|
||
},
|
||
// 组合控件
|
||
composes: [
|
||
{
|
||
width: 80,
|
||
height: 20,
|
||
id: '100002',
|
||
cIndex: 2,
|
||
text: "Package",
|
||
fill: { type: 0 },
|
||
border: { type: 0 },
|
||
textStyle: {
|
||
feed: 1,
|
||
scale: 1,
|
||
},
|
||
initCPV: {
|
||
x: -60, y: -70
|
||
},
|
||
attrLinks: [
|
||
{ code: "font", mapping: ["*"] },
|
||
{ code: "textStyle", mapping: ["*"] },
|
||
]
|
||
},
|
||
{
|
||
width: 200,
|
||
height: 140,
|
||
id: '100002',
|
||
cIndex: 2,
|
||
fill: { type: 0 },
|
||
border: { type: 0 },
|
||
text: "Attribute",
|
||
textStyle: {
|
||
feed: 1,
|
||
scale: 1,
|
||
},
|
||
initCPV: {
|
||
x: 0, y: 10
|
||
},
|
||
attrLinks: [
|
||
{ code: "font", mapping: ["*"] },
|
||
{ code: "textStyle", mapping: ["*"] },
|
||
]
|
||
},
|
||
],
|
||
//操作点定义
|
||
ovs: [
|
||
//定义垂直控制点
|
||
{
|
||
x: -30, y: -37.5, ix: -30, iy: -50,
|
||
type: 1, //纵向分割点
|
||
constraint: {
|
||
type: 2,
|
||
x0: -30,
|
||
x1: -30,
|
||
y0: -50,
|
||
y1: -20
|
||
},
|
||
//联动,控制composes的大小
|
||
//这里计算较为复杂,需要用脚本来进行控制
|
||
links: [
|
||
{
|
||
type: 99,//执行脚本
|
||
script: ov_link_v_split_point,
|
||
//参数可以自定义,脚本中可以取到
|
||
models: ["composes[0]"],
|
||
nextModels: ["composes[1]"]
|
||
}
|
||
]
|
||
},
|
||
//上方标题的区域宽度控制点
|
||
{
|
||
x: -10, y: -43.75, ix: -50, iy: -43.75,
|
||
type: 2, //横向分割点
|
||
constraint: {
|
||
type: 2,
|
||
x0: -50,
|
||
x1: 50,
|
||
y0: -43.75,
|
||
y1: -43.75
|
||
},
|
||
//联动,控制第一个和第二个composes的大小
|
||
//这里计算较为复杂,需要用脚本来进行控制
|
||
links: [
|
||
{
|
||
type: 99,//执行脚本
|
||
script: ov_link_h_split_point,
|
||
//参数可以自定义,脚本中可以取到
|
||
models: ["composes[0]"],
|
||
nextModels: []
|
||
}
|
||
]
|
||
}
|
||
],
|
||
ext: {
|
||
groups: [
|
||
{
|
||
name: "ddei.style",
|
||
icon: 'icon-fill',
|
||
subGroups: [
|
||
{
|
||
name: "ddei.fill",
|
||
attrs: ["fill.type", "fill.color", "fill.image", "fill.opacity"]
|
||
},
|
||
{
|
||
name: "ddei.line",
|
||
attrs: ["border.type", "border.color", "borderOpacity", "borderWidth", "borderDash", "borderRound"]
|
||
},
|
||
{
|
||
name: "文本",
|
||
attrs: ["font.family", "font.size", "font.color", "fontAlign", "textStyle.feed"
|
||
, "textStyle.scale", "textStyle.hollow", "textStyle.bold", "textStyle.italic"
|
||
, "textStyle.underline", "textStyle.deleteline", "textStyle.topline", "textStyle.hspace", "textStyle.vspace"]
|
||
},
|
||
]
|
||
},
|
||
|
||
]
|
||
}
|
||
}
|
||
|
||
}
|
||
|