Commit b52c00b8 by zhaopanyu

zpy

parent a930ca57
......@@ -88,6 +88,18 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开次" prop="kc">
<el-input v-model="formData.kc" placeholder="请输入开次" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="井眼尺寸" prop="jycc">
<el-input v-model="formData.jycc" placeholder="请输入井眼尺寸" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="选择邻井" prop="jhs">
<div style="cursor: pointer;" @click="handleSelectAdjacentWell">
<el-input v-model="formData.jhs" placeholder="请点击选择邻井" readonly
......@@ -197,6 +209,8 @@ export default {
famc: '',
qk: '',
jhs: '',
kc: '',
jycc: '',
jl: '10000', // 距离默认值10000
wjsjks: null, // 完井时间开始默认五年前的今天
wjsjjs: null, // 完井时间结束默认今天
......@@ -310,6 +324,8 @@ export default {
famc: '',
qk: '',
jhs: '',
kc: '',
jycc: '',
jl: '10000', // 距离默认值10000
wjsjks: this.getFiveYearsAgoDate(), // 完井时间开始默认五年前的今天
wjsjjs: this.getCurrentDate(), // 完井时间结束默认今天
......@@ -445,6 +461,8 @@ export default {
famc: '',
qk: '',
jhs: '',
kc: '',
jycc: '',
jl: '10000', // 距离默认值10000
wjsjks: this.getFiveYearsAgoDate(), // 完井时间开始默认五年前的今天
wjsjjs: this.getCurrentDate(), // 完井时间结束默认今天
......
......@@ -442,7 +442,7 @@ export default {
svg2.append("rect")
.attr("width", this.width)
.attr("height", this.height)
.style("fill", "rgb(38,42,50)");
.style("fill", "transparent"); // 设置背景色为浅灰色
svg2.append("g")
.attr("transform", `translate(0,${this.marginTop})`)
......@@ -491,6 +491,20 @@ export default {
.y0(d => y(d.depth1))
.y1(d => y(d.depth2));
// 深色填充区域(例如井筒内部)
if (Array.isArray(res.svg2ConstructFillDark)) {
for (let k = 0; k < res.svg2ConstructFillDark.length; k++) {
const item = res.svg2ConstructFillDark[k];
if (!item || !item.fill) continue;
svg2.append("path")
.attr("transform", `translate(0,0)`)
.datum(item.fill)
.attr("class", "area-dark")
.attr("d", area)
.attr("fill", "rgb(60,60,60)");
}
}
if (Array.isArray(res.svg2ConstructFillGrey)) {
for (let k = 0; k < res.svg2ConstructFillGrey.length; k++) {
const item = res.svg2ConstructFillGrey[k];
......@@ -552,6 +566,127 @@ export default {
}
}
}
// 标注用的直线生成器(左右说明箭头)
const arrowLine = d3.line()
.x(d => x(d[0]))
.y(d => y(d[1]))
.curve(d3.curveLinear);
// 左侧标注点与文字
if (Array.isArray(res.svg2ConstructPointLeft)) {
for (let i = 0; i < res.svg2ConstructPointLeft.length; i++) {
const item = res.svg2ConstructPointLeft[i];
if (!item || !Array.isArray(item.point) || item.point.length < 2) continue;
// 箭头线
svg2.append("path")
.attr("d", arrowLine(item.point))
.attr("stroke", "#ffffff")
.attr("fill", "none")
.attr("stroke-width", 1)
.attr("stroke-linecap", "round");
// 起点实心圆
const circleX = x(item.point[0][0]);
const circleY = y(item.point[0][1]);
svg2.append("circle")
.attr("cx", circleX)
.attr("cy", circleY)
.attr("r", 3)
.attr("fill", "#ffffff")
.attr("stroke", "none");
// 文本位置在箭头起点右侧稍上
const textX = x(item.point[0][0] + 20);
const textY = y(item.point[0][1] - 3);
const group = svg2.append("g")
.attr("transform", "translate(0,0)");
const text = group.append("text")
.attr("x", textX + 10)
.attr("y", textY)
.attr("fill", "#ffffff")
.attr("font-size", "12px");
if (item.describe1) {
text.append("tspan")
.attr("x", textX + 10)
.attr("y", textY)
.attr("font-weight", "bold")
.text(item.describe1);
}
if (item.describe2) {
text.append("tspan")
.attr("x", textX + 10)
.attr("y", textY + 16)
.attr("font-weight", "bold")
.text(item.describe2);
}
if (item.describe3) {
text.append("tspan")
.attr("x", textX + 10)
.attr("y", textY + 32)
.attr("font-weight", "bold")
.text(item.describe3);
}
}
}
// 右侧标注点与文字
if (Array.isArray(res.svg2ConstructPointRight)) {
for (let i = 0; i < res.svg2ConstructPointRight.length; i++) {
const item = res.svg2ConstructPointRight[i];
if (!item || !Array.isArray(item.point) || item.point.length < 2) continue;
svg2.append("path")
.attr("d", arrowLine(item.point))
.attr("stroke", "#ffffff")
.attr("fill", "none")
.attr("stroke-width", 1)
.attr("stroke-linecap", "round");
const circleX = x(item.point[0][0]);
const circleY = y(item.point[0][1]);
svg2.append("circle")
.attr("cx", circleX)
.attr("cy", circleY)
.attr("r", 3)
.attr("fill", "#ffffff")
.attr("stroke", "none");
const textX = x(item.point[0][0] + 20);
const textY = y(item.point[0][1] - 3);
const group = svg2.append("g")
.attr("transform", "translate(0,0)");
const text = group.append("text")
.attr("x", textX + 10)
.attr("y", textY)
.attr("fill", "#ffffff")
.attr("font-size", "12px");
if (item.describe1) {
text.append("tspan")
.attr("x", textX + 10)
.attr("y", textY)
.attr("font-weight", "bold")
.text(item.describe1);
}
if (item.describe2) {
text.append("tspan")
.attr("x", textX + 10)
.attr("y", textY + 16)
.attr("font-weight", "bold")
.text(item.describe2);
}
if (item.describe3) {
text.append("tspan")
.attr("x", textX + 10)
.attr("y", textY + 32)
.attr("font-weight", "bold")
.text(item.describe3);
}
}
}
},
drawTriangle(triangle) {
return "M" + triangle.x1 + "," + triangle.y1 +
......@@ -678,6 +813,47 @@ export default {
margin: 5px;
}
.content-row {
height: 100%;
}
.jsjgt-wrapper {
height: calc(100vh - 260px);
border: 1px solid #e4e7ed;
border-radius: 4px;
display: flex;
flex-direction: column;
background-color: #262a32;
overflow: hidden;
}
.jsjgt-title {
padding: 6px 12px;
font-size: 14px;
font-weight: 600;
color: #ffffff;
border-bottom: 1px solid #3c3f45;
}
.jsjgt-body {
flex: 1;
display: flex;
align-items: stretch;
justify-content: center;
}
.jsjgt-body .svg2 {
flex: 1;
}
.jsjgt-empty {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: #c0c4cc;
}
::v-deep .el-table__cell>.cell {
font-weight: normal;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment