modified: src/AddObjectForm.svelte
modified: src/CustomShapeRendererModule.ts modified: src/Diagram.svelte
This commit is contained in:
parent
392aebe0df
commit
bba700c4d5
3 changed files with 71 additions and 36 deletions
|
|
@ -38,7 +38,7 @@ const функцииПоТипу = {
|
||||||
'ZДополнительный']};
|
'ZДополнительный']};
|
||||||
|
|
||||||
function addFunction() {
|
function addFunction() {
|
||||||
функции = [...функции, { тип: 'ВыполняемаяФункция', значение: 'Регистрация' }];
|
функции = [...функции, { тип: 'ВыполняемаяФункция', значение: 'Регистрация' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeFunction(index: number) {
|
function removeFunction(index: number) {
|
||||||
|
|
@ -47,7 +47,7 @@ function removeFunction(index: number) {
|
||||||
|
|
||||||
let являетсяПаз = false;
|
let являетсяПаз = false;
|
||||||
let ручной = false;
|
let ручной = false;
|
||||||
let направление: 'Открывается' | 'Закрывается' | 'ОстаётсяНаМесте' | null = null;
|
let направление: 'Открывается' | 'Закрывается' | 'ОстаётсяНаМесте' | null = null
|
||||||
|
|
||||||
function handleSubmit() {
|
function handleSubmit() {
|
||||||
const data =
|
const data =
|
||||||
|
|
@ -74,10 +74,10 @@ function handleSubmit() {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(величина);
|
console.log(to_svg(0,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
function to_svg(x, y) {
|
export function to_svg(x, y):SVGElement {
|
||||||
const r = svgCreate('g');
|
const r = svgCreate('g');
|
||||||
if (типОбъекта === 'ИсполнительныйМеханизм') {
|
if (типОбъекта === 'ИсполнительныйМеханизм') {
|
||||||
var circle = svgCreate('circle',
|
var circle = svgCreate('circle',
|
||||||
|
|
@ -89,18 +89,34 @@ function to_svg(x, y) {
|
||||||
stroke: "CanvasText",
|
stroke: "CanvasText",
|
||||||
});
|
});
|
||||||
|
|
||||||
var line = svgCreate('line',
|
var lineAttrs: {
|
||||||
{
|
x1: any;
|
||||||
|
x2: any;
|
||||||
|
y1: any;
|
||||||
|
y2: number;
|
||||||
|
stroke: string;
|
||||||
|
"marker-start"?: string;
|
||||||
|
"marker-end"?: string;
|
||||||
|
} = {
|
||||||
x1: x,
|
x1: x,
|
||||||
x2: x,
|
x2: x,
|
||||||
y1: y,
|
y1: y,
|
||||||
y2: y - 42,
|
y2: y - 42,
|
||||||
stroke: "CanvasText",
|
stroke: "CanvasText",
|
||||||
})
|
}
|
||||||
|
|
||||||
svgAppend(r, circle);
|
if (направление == "Открывается" || направление == "ОстаётсяНаМесте") {
|
||||||
svgAppend(r, line); // здесь НЕОБХОДИМО добавить стрелки в разных направлениях TODO
|
lineAttrs["marker-start"] = "url(#arrow)"
|
||||||
return r;
|
}
|
||||||
|
|
||||||
|
if (направление == "Закрывается" || направление == "ОстаётсяНаМесте") {
|
||||||
|
lineAttrs["marker-end"] = "url(#arrow)"
|
||||||
|
}
|
||||||
|
|
||||||
|
const line = svgCreate("line", lineAttrs);
|
||||||
|
svgAppend(r, circle)
|
||||||
|
svgAppend(r, line)
|
||||||
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
if (являетсяПаз) {
|
if (являетсяПаз) {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import {
|
||||||
attr as svgAttr,
|
attr as svgAttr,
|
||||||
create as svgCreate
|
create as svgCreate
|
||||||
} from 'tiny-svg';
|
} from 'tiny-svg';
|
||||||
|
import to_svg from "./AddObjectForm.svelte"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -29,35 +29,38 @@ class CustomShapeRenderer extends BaseRenderer {
|
||||||
|
|
||||||
|
|
||||||
drawShape(visuals, element, attrs): SVGElement {
|
drawShape(visuals, element, attrs): SVGElement {
|
||||||
var circle = svgCreate('circle');
|
// var circle = svgCreate('circle');
|
||||||
|
|
||||||
svgAttr(circle, {
|
// svgAttr(circle, {
|
||||||
cx: `${element.width / 2}`,
|
// cx: `${element.width / 2}`,
|
||||||
cy: `${element.height / 2 - 52}`,
|
// cy: `${element.height / 2 - 52}`,
|
||||||
r: '2.5mm',
|
// r: '2.5mm',
|
||||||
fill: "none",
|
// fill: "none",
|
||||||
stroke: "CanvasText",
|
// stroke: "CanvasText",
|
||||||
});
|
// });
|
||||||
|
|
||||||
var line = svgCreate('line');
|
// var line = svgCreate('line');
|
||||||
svgAttr(line, {
|
// svgAttr(line, {
|
||||||
x1: element.width / 2,
|
// x1: element.width / 2,
|
||||||
x2: element.width / 2,
|
// x2: element.width / 2,
|
||||||
y1: element.height/2,
|
// y1: element.height/2,
|
||||||
y2: element.height/2 - 40 - 2,
|
// y2: element.height/2 - 40 - 2,
|
||||||
stroke: "CanvasText",
|
// stroke: "CanvasText",
|
||||||
|
|
||||||
})
|
// })
|
||||||
|
|
||||||
var g = svgCreate('g');
|
// var g = svgCreate('g');
|
||||||
svgAppend(g, circle);
|
// svgAppend(g, circle);
|
||||||
svgAppend(g, line);
|
// svgAppend(g, line);
|
||||||
|
|
||||||
svgAttr(g, assign({}, this.SHAPE_STYLE, attrs || {}));
|
// svgAttr(g, assign({}, this.SHAPE_STYLE, attrs || {}));
|
||||||
svgAppend(visuals, g);
|
// svgAppend(visuals, g);
|
||||||
console.log(visuals);
|
|
||||||
|
|
||||||
return g;
|
return to_svg(element.x, element.y);
|
||||||
|
|
||||||
|
//console.log(visuals);
|
||||||
|
|
||||||
|
// return g;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,22 @@
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<svg>
|
||||||
|
<defs>
|
||||||
|
<marker
|
||||||
|
id="arrow"
|
||||||
|
refX="9"
|
||||||
|
refY="5"
|
||||||
|
fill="CanvasText"
|
||||||
|
markerHeight="6"
|
||||||
|
markerWidth="6"
|
||||||
|
orient="auto-start-reverse"
|
||||||
|
viewBox="0 0 297 210">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"></path>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.container {
|
.container {
|
||||||
width: 297mm;
|
width: 297mm;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue