正射修改

main
duxiaoning 2023-01-12 12:52:34 +08:00
parent 94d144039a
commit c5bab00dd0
3 changed files with 243 additions and 108 deletions

View File

@ -54,31 +54,31 @@
size="medium"
>
<el-table-column
prop="3_0"
prop="8_0"
label="平均相对误差相对X轴误差"
align="center"
v-if="meanError[0]['3_0'] != null"
v-if="meanError[0]['8_0'] != null"
>
</el-table-column>
<el-table-column
prop="3_1"
prop="8_1"
label="平均相对误差相对Y轴误差"
align="center"
v-if="meanError[0]['3_1'] != null"
v-if="meanError[0]['8_1'] != null"
>
</el-table-column>
<el-table-column
prop="4_0"
prop="24_0"
label="平均绝对相对误差相对X轴误差"
align="center"
v-if="meanError[0]['4_0'] != null"
v-if="meanError[0]['24_0'] != null"
>
</el-table-column>
<el-table-column
prop="4_1"
prop="24_1"
label="平均绝对相对误差相对Y轴误差"
align="center"
v-if="meanError[0]['4_1'] != null"
v-if="meanError[0]['24_1'] != null"
>
</el-table-column>
</el-table>
@ -141,17 +141,17 @@ export default {
filters: {
truthFunFilter(truthFun) {
const truthFunMap = {
0: "平均误差",
1: "平均绝对误差",
2: "相对误差",
3: "平均相对误差",
4: "平均绝对相对误差",
5: "均方根误差",
6: "平面中误差",
4: "平均误差",
9: "平均绝对误差",
5: "相对误差",
8: "平均相对误差",
24: "平均绝对相对误差",
6: "均方根误差",
23: "平面中误差",
7: "相关系数",
8: "误差矩阵",
9: "总体分类精度",
10: "Kappa系数",
12: "误差矩阵",
14: "总体分类精度",
13: "Kappa系数",
};
return truthFunMap[truthFun];
},
@ -173,7 +173,7 @@ export default {
},
mounted() {
this.myCharts = this.$echarts.init(this.$refs.chart);
if (this.pdSubType === 1) {
if (this.pdSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
this.drawOtgEchart(this.realRes.otgVal);
let da = {};
let dae = {};
@ -234,31 +234,31 @@ export default {
getProductDes() {
let prodDes = null;
switch (this.pdSubType) {
case 46:
case productSubTypeVal.ACS_DEM:
prodDes = "高程值,单位:米";
break;
case 51:
case productSubTypeVal.ACS_BACKSCATTERINGCOEFFICIENT:
prodDes = "后向散射系数,单位dB";
break;
case 52:
case productSubTypeVal.ACS_ATMOSPHERICDELAYCORRECTION:
prodDes = "延迟相位值";
break;
case 53:
case productSubTypeVal.ACS_DEFORMATION:
prodDes = "形变量,单位:米";
break;
case 38:
case productSubTypeVal.ACS_SOILMOISTURE:
prodDes = "土壤含水量";
break;
case 49:
case productSubTypeVal.ACS_SOILSALINITYINVERSION:
prodDes = "土壤盐碱度";
break;
case 50:
case productSubTypeVal.ACS_SURFACEROUGHNESS:
prodDes = "地表粗糙度";
break;
case 48:
case productSubTypeVal.ACS_GROUNDVEGETATIONHEIGHT:
prodDes = "植被高度值,单位:米";
break;
case 43:
case productSubTypeVal.ACS_GROUNDLEAFAREAINDEX:
prodDes = "叶面积指数";
break;
}

View File

@ -6,7 +6,7 @@
ref="reportQT"
:realRes="realRes"
:pdSubType="pdSubType"
v-if="pdSubType === 6 || pdSubType === 12"
v-if="pdSubType === 39 || pdSubType === 47"
></QtReport>
<RtReport
ref="reportRT"
@ -25,7 +25,6 @@
element-loading-text="PDF生成中..."
element-loading-spinner="el-icon-loading"
>
<!-- <PdfLoad :pdfPath="pdfPath" v-if="pdfLoading === false"></PdfLoad> -->
<iframe
class="pdfPage"
:src="pdfPath"
@ -132,10 +131,18 @@
</el-table-column>
<el-table-column prop="samplesId" label="样本编号" sortable>
</el-table-column>
<el-table-column prop="lng" label="经度"></el-table-column>
<el-table-column prop="lat" label="纬度"></el-table-column>
<el-table-column prop="lng" label="经度">
<template slot-scope="scope">
{{ pdSubType == 45 ? scope.row.measureLong : scope.row.lng }}
</template>
</el-table-column>
<el-table-column prop="lat" label="纬度">
<template slot-scope="scope">
{{ pdSubType == 45 ? scope.row.measureLat : scope.row.lng }}
</template>
</el-table-column>
<!-- <el-table-column prop="alt" label="高度"></el-table-column> -->
<el-table-column prop="createTime" label="采样日期" sortable>
<el-table-column prop="collectDate" label="采样日期" sortable>
<!-- <template slot-scope="scope">
{{ scope.row.dataTime | formatDate }}
</template> -->
@ -147,7 +154,7 @@
align="center"
>
<template slot-scope="scope">
{{ scope.row.createTime }}
{{ scope.row.collectDate }}
<!-- {{ scope.row.addTime | formatDate }} -->
</template>
</el-table-column>
@ -252,11 +259,22 @@ export default {
cu.flyToLayerRect(gp[0], gp[1], gp[2], gp[3]);
const sd = this.sampleData;
for (let i in sd) {
cu.addPoint(sd[i].lng, sd[i].lat, 10);
if (this.pdSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
for (let i in sd) {
cu.addPoint(sd[i].measureLong, sd[i].measureLat, 10);
}
} else {
for (let i in sd) {
const alt = JSON.parse(sd[i].paramStr).alt;
cu.addPoint(sd[i].lng, sd[i].lat, alt !== "null" ? alt : 10);
}
}
if (this.pdSubType === 39 || this.pdSubType === 47) {
if (
this.pdSubType === productSubTypeVal.ACS_TYPESOFLANDCOVER ||
this.pdSubType === productSubTypeVal.ACS_VEGETATIONPHENOLOGY
) {
this.base64Data = this.$refs.reportQT.myCharts.getDataURL();
} else {
this.base64Data = this.$refs.reportRT.myCharts.getDataURL();
@ -291,7 +309,6 @@ export default {
init() {
const self = this;
const rpm = (self.reportMsg = this.queryParams);
console.log("sendMsg", rpm);
self.realRes = rpm.reportResult;
self.pdSubType = rpm.pdSubType;
const rsl = (self.sampleData = rpm.sampleList);
@ -299,12 +316,16 @@ export default {
if (rpm.pdSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
let otgVal = [];
for (let i in rsl) {
if (rsl[i].sameLon !== null) {
otgVal.push({ name: "mPoint", x: rsl[i].lon, y: rsl[i].lat });
if (rsl[i].sameNameLong !== null) {
otgVal.push({
name: "mPoint",
x: rsl[i].measureLong,
y: rsl[i].measureLat,
});
otgVal.push({
name: "sPoint",
x: rsl[i].sameLon,
y: rsl[i].sameLat,
x: rsl[i].sameNameLong,
y: rsl[i].sameNameLat,
});
}
}
@ -392,12 +413,12 @@ export default {
categoryType: productTypeSplMap(self.pdSubType),
product: productTypeMap(self.pdSubType),
orderID: asmo.orderCode,
reportMaker: 'DXN',
reportMaker: "DXN",
orderCreateTime: asmo.createDate,
orderStartTime: crTime.startTime,
orderEndTime: crTime.endTime,
reportCreateTime: asmo.createDate,
inspectorName: 'DXN',
inspectorName: "DXN",
productFileName: asmp.fileName,
resolution: asmm.resRatio + "",
productCreateTime: asmp.collectDate,

View File

@ -10,19 +10,44 @@
<div class="box1">
<span class="sp1"></span><span class="sp2">订单信息</span>
</div>
<el-table :data="orderData" :header-cell-style="{ background: '#E4E9F1' }" :cell-style="tableRowClassName"
style="width: 98%; margin-left: 1%; margin-top: 15px" :default-sort="{ prop: 'date', order: 'descending' }">
<el-table-column prop="orderCode" label="订单编号" width="180" align="center">
<el-table
:data="orderData"
:header-cell-style="{ background: '#E4E9F1' }"
:cell-style="tableRowClassName"
style="width: 98%; margin-left: 1%; margin-top: 15px"
:default-sort="{ prop: 'date', order: 'descending' }"
>
<el-table-column
prop="orderCode"
label="订单编号"
width="180"
align="center"
>
</el-table-column>
<el-table-column prop="orderSource" label="订单来源" width="180" align="center">
<el-table-column
prop="orderSource"
label="订单来源"
width="180"
align="center"
>
</el-table-column>
<el-table-column prop="uploadDate" label="提交时间" align="center">
</el-table-column>
<el-table-column prop="fileName" label="文件名" align="center">
</el-table-column>
<el-table-column prop="fileSize" label="文件大小" sortable align="center">
<el-table-column
prop="fileSize"
label="文件大小"
sortable
align="center"
>
</el-table-column>
<el-table-column prop="fileFormat" label="文件格式" sortable align="center">
<el-table-column
prop="fileFormat"
label="文件格式"
sortable
align="center"
>
</el-table-column>
<el-table-column label="元数据" align="center">
<el-button type="primary" @click="changePage"></el-button>
@ -34,18 +59,37 @@
<span class="sp1"></span><span class="sp2">元数据查看</span>
</div>
<div class="cstop">
<el-form :inline="true" :model="formInline" class="demo-form-inline" :disabled="true">
<el-form
:inline="true"
:model="formInline"
class="demo-form-inline"
:disabled="true"
>
<el-form-item label="卫星" class="ysjMsg">
<el-input class="ysjMsgMrg" v-model="formInline.satellite" placeholder="卫星名称"></el-input>
<el-input
class="ysjMsgMrg"
v-model="formInline.satellite"
placeholder="卫星名称"
></el-input>
</el-form-item>
<el-form-item label="载荷名称" class="ysjMsg">
<el-input v-model="formInline.load" placeholder="载荷方式"></el-input>
<el-input
v-model="formInline.load"
placeholder="载荷方式"
></el-input>
</el-form-item>
<el-form-item label="空间分辨率" class="ysjMsg2">
<el-input v-model="formInline.resRatio" placeholder="空间分辨率"></el-input>
<el-input
v-model="formInline.resRatio"
placeholder="空间分辨率"
></el-input>
</el-form-item>
<el-form-item label="时间" class="ysjMsg" prop="producedDate">
<el-input class="ysjMsgMrg" v-model="formInline.producedDate" placeholder="生产时间"></el-input>
<el-input
class="ysjMsgMrg"
v-model="formInline.producedDate"
placeholder="生产时间"
></el-input>
</el-form-item>
<el-form-item label="级别" prop="resource" class="ysjMsg2">
<el-radio-group v-model="formInline.proLevel">
@ -53,57 +97,100 @@
<el-radio label="4"></el-radio>
<el-radio label="5"></el-radio>
<!-- <el-radio label="其他"></el-radio> -->
</el-radio-group> </el-form-item><br />
</el-radio-group> </el-form-item
><br />
<el-form-item label="坐标系统" class="ysjMsg">
<el-input v-model="formInline.coordinateSys" placeholder="坐标系统"></el-input>
<el-input
v-model="formInline.coordinateSys"
placeholder="坐标系统"
></el-input>
</el-form-item>
<el-form-item label="最小纬度" class="ysjMsg">
<el-input v-model="formInline.minLat" placeholder="最小纬度"></el-input>
<el-input
v-model="formInline.minLat"
placeholder="最小纬度"
></el-input>
</el-form-item>
<el-form-item label="最大纬度" class="ysjMsg2">
<el-input style="margin-left: 6px" v-model="formInline.maxLat" placeholder="最大纬度"></el-input>
<el-input
style="margin-left: 6px"
v-model="formInline.maxLat"
placeholder="最大纬度"
></el-input>
</el-form-item>
<el-form-item label="最小经度" class="ysjMsg">
<el-input v-model="formInline.minLon" placeholder="最小经度"></el-input>
<el-input
v-model="formInline.minLon"
placeholder="最小经度"
></el-input>
</el-form-item>
<el-form-item label="最大经度" class="ysjMsg2">
<el-input v-model="formInline.maxLon" placeholder="最大经度"></el-input>
<el-input
v-model="formInline.maxLon"
placeholder="最大经度"
></el-input>
</el-form-item>
</el-form>
</div>
</div>
<div class="daichuli1">
<div class="box1">
<span class="sp1"></span><span class="sp2">待检验产品预览</span><el-button type="primary" size="small"
@click="downLoadPro">下载</el-button>
<span class="sp1"></span><span class="sp2">待检验产品预览</span
><el-button type="primary" size="small" @click="downLoadPro"
>下载</el-button
>
</div>
<product-info @removeLayer="removeLayer" @addLayer="addLayer" @removeSample="removeSplData"
@addSample="getSqlData"></product-info>
<product-info
@removeLayer="removeLayer"
@addLayer="addLayer"
@removeSample="removeSplData"
@addSample="getSqlData"
></product-info>
<div class="preview">
<div id="PendPreview" @click="pickValue" style="overflow: hidden; position: relative"></div>
<div
id="PendPreview"
@click="pickValue"
style="overflow: hidden; position: relative"
></div>
</div>
</div>
<div class="daichuli1" v-if="groudClassShow">
<div class="box1">
<span class="sp1"></span><span class="sp2">{{
<span class="sp1"></span
><span class="sp2">{{
orderMsg.productSubClassId == 39
? "地表覆盖类型表"
: "植被物候类型表"
}}</span>
</div>
<el-table :data="groudClassData" :header-cell-style="{ background: '#E4E9F1' }" :cell-style="tableRowClassName"
style="width: 98%; margin-left: 1%; margin-top: 15px" height="200">
<el-table
:data="groudClassData"
:header-cell-style="{ background: '#E4E9F1' }"
:cell-style="tableRowClassName"
style="width: 98%; margin-left: 1%; margin-top: 15px"
height="200"
>
<el-table-column label="序号" align="center" type="index" width="100">
</el-table-column>
<el-table-column prop="typeName" label="地物类型名称" align="center"></el-table-column>
<el-table-column prop="typeId" label="像素实际值" align="center"></el-table-column>
<el-table-column
prop="typeName"
label="地物类型名称"
align="center"
></el-table-column>
<el-table-column
prop="typeId"
label="像素实际值"
align="center"
></el-table-column>
</el-table>
</div>
<div class="dealGrp">
<el-button type="primary" @click="inspection"></el-button>
<el-button type="primary" @click="dialogFormVisible = true">无法处理</el-button>
<el-button type="primary" @click="dialogFormVisible = true"
>无法处理</el-button
>
<el-button type="primary" @click="todaichuli"></el-button>
</div>
<!-- 无法处理弹窗 -->
@ -112,35 +199,65 @@
<div class="box1">
<span class="sp1"></span><span class="sp2">反馈信息</span>
</div>
<el-form :inline="true" :model="unDeal" class="demo-form-inline" ref="feedbackForm" label-width="100px">
<el-form
:inline="true"
:model="unDeal"
class="demo-form-inline"
ref="feedbackForm"
label-width="100px"
>
<el-form-item label="反馈结果">
<el-radio-group v-model="unDeal.udMsg">
<el-radio label="无法处理"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="原因" prop="udReason" :rules="[{ message: ' ', required: true }]">
<el-form-item
label="原因"
prop="udReason"
:rules="[{ message: ' ', required: true }]"
>
<el-select v-model="unDeal.udReason" placeholder="选择原因">
<el-option v-for="item in udrOptions" :key="item.value" :label="item.label" :value="item.value">
<el-option
v-for="item in udrOptions"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="图片上传">
<div class="tupian">
<el-upload class="upload-demo" action="/" accept=".jpg,.jpeg,.png" :before-upload="beforeUpload"
:http-request="uploadImgFile" :on-remove="removeUploadFile" list-type="picture">
<el-button size="small" type="white"><i class="el-icon-upload"></i>上传图片</el-button>
<el-upload
class="upload-demo"
action="/"
accept=".jpg,.jpeg,.png"
:before-upload="beforeUpload"
:http-request="uploadImgFile"
:on-remove="removeUploadFile"
list-type="picture"
>
<el-button size="small" type="white"
><i class="el-icon-upload"></i>上传图片</el-button
>
</el-upload>
</div>
</el-form-item>
<div class="beizhu">
<el-form-item label="备注">
<el-input type="textarea" v-model="unDeal.remark" style="margin-left: -40px"></el-input>
<el-input
type="textarea"
v-model="unDeal.remark"
style="margin-left: -40px"
></el-input>
</el-form-item>
</div>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="subFeedback"></el-button>
<el-button type="primary" @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="dialogFormVisible = false"
> </el-button
>
</div>
</el-dialog>
</div>
@ -155,7 +272,7 @@ import {
orderFeedback,
updateOrderStage,
getSamplesList,
getUserInfo
getUserInfo,
} from "@/api/lang/pendingOrder";
import { productSubTypeVal } from "@/lib/contract.js";
@ -268,20 +385,20 @@ export default {
};
},
methods: {
async initOrderMsg() {
const token = this.$route.query.token;
const userMsg = await getUserInfo(token)
initOrderMsg() {
const self = this;
// userid: "ZZX-yg000087"
// username: "yhhuser@163.com"
const token = this.$route.query.token;
// const userMsg = await getUserInfo(token);
// // userid: "ZZX-yg000087"
// // username: "yhhuser@163.com"
const orderId = (self.orderId = this.$route.query.orderId);
if (res.code === 200) {
self.userId = userMsg.data.userid;
}
// if (res.code === 200) {
// self.userId = userMsg.data.userid;
// }
self.userId = this.$route.query.userId;
getOrderMsg(orderId).then((res) => {
if (res.code === 200) {
self.orderMsg = res.data;
console.log("11111111", res.data);
// const psId = res.data.productSubClassId;
this.getSqlData();
@ -313,7 +430,7 @@ export default {
pm.productSpaceResolution > 0.01
? pm.productSpaceResolution + "米"
: (pm.productSpaceResolution * 111194.926).toFixed(2) +
"米",
"米",
coordinateSys: pm.coordinateSystem,
minLat: minLat,
maxLat: maxLat,
@ -393,7 +510,7 @@ export default {
this.$refs["feedbackForm"].validate((valid) => {
if (valid) {
const fb = new FormData();
fb.append("orderId", this.orderMsg.id);
fb.append("orderId", this.orderId);
fb.append("userId", this.userId);
fb.append("feedbackResult", this.unDeal.udMsg);
fb.append("feedbackReason", this.unDeal.udReason);
@ -407,20 +524,16 @@ export default {
});
this.imgLocalUrl = null;
this.dialogFormVisible = false;
updateOrderMsg({
id: this.orderMsg.id,
auditId: this.userId,
auditName: localStorage.userName,
});
disOrderStatus(this.orderMsg.id);
const up = new FormData();
up.append("orderId", this.orderMsg.id);
up.append("orderStatus", 3);
up.append("userId", this.orderMsg.user_id);
updateOrderStage(up).then((res) => {
if (res.code === 200)
this.$router.push({ name: "待处理的检验订单" });
});
updateOrderStage(
qs.stringify(
{
orderId: this.orderId,
orderStatus: 3,
userId: this.userId,
},
{ indices: false }
)
);
}
});
} else {
@ -450,7 +563,8 @@ export default {
}
} else {
for (let i in sp) {
cu.addPoint(sp[i].lng, sp[i].lat, JSON.parse(sp[i].paramStr).alt);
const alt = JSON.parse(sp[i].paramStr).alt;
cu.addPoint(sp[i].lng, sp[i].lat, alt !== "null" ? alt : 10);
}
}
}
@ -660,7 +774,7 @@ export default {
background-color: #354595;
}
/deep/.cstop .el-radio__input.is-checked+.el-radio__label {
/deep/.cstop .el-radio__input.is-checked + .el-radio__label {
color: #606266;
}