88 lines
2.3 KiB
JavaScript
88 lines
2.3 KiB
JavaScript
import SvgNode from "./SvgNode.js";
|
||
import SvgNodes from "./SvgNodes.js";
|
||
|
||
export default {
|
||
wellhead: {
|
||
name(text, ppu, styles) {
|
||
return SvgNodes.text(text)
|
||
.move(styles["wellhead-name"].dx * ppu, styles["wellhead-name"].dy * ppu)
|
||
.add_style(styles["wellhead-name"]);
|
||
},
|
||
|
||
wlp(wlf, ppu, styles) {
|
||
return SvgNodes.text(`${Math.round(wlf * 1000) / 10 || ""}%`)
|
||
.move(styles.wlf.dx * ppu, styles.wlf.dy * ppu)
|
||
.add_style(styles.wlf);
|
||
},
|
||
|
||
/**
|
||
* Добывающая скважина
|
||
* @param {*} ppu
|
||
* @param {*} styles
|
||
* @returns
|
||
*/
|
||
prod(ppu, styles) {
|
||
return SvgNodes.circle(1.5 * ppu).add_style(styles["wellhead-black"]);
|
||
},
|
||
|
||
/**
|
||
* Нагнетательная
|
||
* @param {*} ppu
|
||
* @param {*} styles
|
||
* @returns
|
||
*/
|
||
inj(ppu, styles) {
|
||
const style_spike = {
|
||
"stroke-width": "0",
|
||
fill: '#00f'
|
||
}
|
||
|
||
const style_blue = {
|
||
"stroke-width": Math.round(styles._units["1pt"]),
|
||
stroke: '#00f',
|
||
}
|
||
|
||
return SvgNodes.group([
|
||
SvgNodes.group([
|
||
SvgNodes.spike1(1.8 * ppu, 1.7 * ppu, 0).move(2 * ppu, 0),
|
||
SvgNodes.spike1(1.8 * ppu, 1.7 * ppu, 90).move(0, -2 * ppu),
|
||
SvgNodes.spike1(1.8 * ppu, 1.7 * ppu, 180).move(-2 * ppu, 0),
|
||
SvgNodes.spike1(1.8 * ppu, 1.7 * ppu, 270).move(0, 2 * ppu),
|
||
]).add_style(style_spike),
|
||
new SvgNode("line", { x1: -2 * ppu, x2: 2 * ppu, y1: 0, y2: 0 }),
|
||
new SvgNode("line", { y1: -2 * ppu, y2: 2 * ppu, x1: 0, x2: 0 }),
|
||
SvgNodes.circle(1.5 * ppu)
|
||
.add_style(style_blue)
|
||
.add_style(styles["white-body"]),
|
||
]).add_style(style_blue);
|
||
},
|
||
|
||
/**
|
||
* Серая с треугольником с малым дебитом/нагнетанием
|
||
* @param {*} ppu
|
||
* @param {*} styles
|
||
* @returns
|
||
*/
|
||
gray(ppu, styles) {
|
||
return SvgNodes.group([
|
||
SvgNodes.circle(1.5 * ppu).add_style(styles["wellhead-gray"]),
|
||
SvgNodes.ngon(1.5 * ppu, 3, 0).add_style(styles["wellhead-black"]),
|
||
]);
|
||
},
|
||
},
|
||
|
||
ring: {
|
||
pt(wopt, wwpt, rmm, ppu, styles) {
|
||
return SvgNodes.ring_sectors(1.5 * ppu, rmm * ppu, [
|
||
{ v: wopt, style: styles.opt },
|
||
{ v: wwpt, style: styles.wpt },
|
||
]);
|
||
},
|
||
|
||
it(rmm, ppu, styles) {
|
||
return SvgNodes.circle(rmm * ppu)
|
||
.add_style(styles.wit)
|
||
}
|
||
},
|
||
};
|