样本适配,报告修改

tykong-cidian
duxiaoning 2023-12-08 11:57:57 +08:00
parent d19ce951aa
commit 9ba6acdfbb
8 changed files with 119 additions and 157 deletions

View File

@ -163,19 +163,13 @@ export function checkReality(data) {
}
// 导出pdf模板
export function exportWord(data, pdfName, localTiffPath, httpTiffPath, productType,polarizationMethod) {
export function exportWord(data, pdfName, productType) {
return fileRequest({
url:
"importPDF/importWordAndPDF?reportName=" +
pdfName +
"&localTiffPath=" +
localTiffPath +
"&httpTiffPath=" +
httpTiffPath +
"&productType=" +
productType +
"&polarizationMethod=" +
polarizationMethod,
productType,
method: "post",
// headers:{'Content-Type':'multipart/form-data'},
data

View File

@ -75,7 +75,7 @@
<div class="sscPre">
<div :class="checkRealityWait ? 'sceneShowContent onBorder' : 'sceneShowContent'" id="sceneShowContent">
<div v-show="checkRealityWait" class="topContent">
<span class="mapTitle">待检验产品图</span>
<span class="mapTitle">待检验正射校正产品图</span>
</div>
<div :id="checkRealityWait ? 'mapContent' : 'cesiumContent'">
<canvas v-show="checkRealityWait" id="grid"></canvas>

View File

@ -109,7 +109,7 @@
</div>
<div :class="checkRealityWait ? 'sceneShowContent onBorder' : 'sceneShowContent'" id="sceneShowContent">
<div v-show="checkRealityWait" class="topContent">
<span class="mapTitle">待检验产品</span>
<span class="mapTitle">待检验{{ productSubType | productTypeMap }}</span>
</div>
<div :id="checkRealityWait ? 'mapContent' : 'cesiumContent'">
<canvas v-show="checkRealityWait" id="grid"></canvas>
@ -201,6 +201,24 @@ export default {
getCoverName(paramStr) {
return JSON.parse(paramStr).covernm;
},
productTypeMap(pdtype) {
const pdtypeMap = {
45: "正射产品",
46: "高程产品",
51: "后向散射系数产品",
52: "大气延迟校正产品",
53: "干涉测量形变产品",
39: "地表覆盖类型产品",
38: "土壤水分产品",
49: "土壤盐碱度产品",
50: "地表粗糙度产品",
48: "植被高度产品",
43: "叶面积指数产品",
47: "植被物候产品"
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
}
},
data() {
return {

View File

@ -55,7 +55,7 @@
</div>
<div :class="checkRealityWait ? 'sceneShowContent onBorder' : 'sceneShowContent'" id="sceneShowContent">
<div v-show="checkRealityWait" class="topContent">
<span class="mapTitle">待检验产品</span>
<span class="mapTitle">待检验{{ productSubType | productTypeMap }}</span>
</div>
<div :id="checkRealityWait ? 'mapContent' : 'cesiumContent'">
<canvas v-show="checkRealityWait" id="grid"></canvas>
@ -89,7 +89,6 @@ import SampleSetting from "@/components/ration/sampleSetting/index.vue";
import WKT from "terraformer-wkt-parser";
import Formator from "@/mixins/formator";
import { drawScaleTwo, drawGrid, getNowFormatDate } from "@/lib/utils";
export default {
components: {
SampleSetting,
@ -136,6 +135,24 @@ export default {
getSampleVal(paramStr) {
return JSON.parse(paramStr).featureValue.featureValue;
},
productTypeMap(pdtype) {
const pdtypeMap = {
45: "正射产品",
46: "高程产品",
51: "后向散射系数产品",
52: "大气延迟校正产品",
53: "干涉测量形变产品",
39: "地表覆盖类型产品",
38: "土壤水分产品",
49: "土壤盐碱度产品",
50: "地表粗糙度产品",
48: "植被高度产品",
43: "叶面积指数产品",
47: "植被物候产品"
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
}
},
data() {
return {

View File

@ -2,80 +2,37 @@
<div class="report">
<div class="rpHeader">
<div class="rphLeft">
<QtReport
ref="reportQT"
:realRes="realRes"
:pdSubType="pdSubType"
v-if="pdSubType === 39 || pdSubType === 47"
>
<QtReport ref="reportQT" :realRes="realRes" :pdSubType="pdSubType" v-if="pdSubType === 39 || pdSubType === 47">
</QtReport>
<RtReport
ref="reportRT"
:realRes="realRes"
:pdSubType="pdSubType"
v-else
></RtReport>
<RtReport ref="reportRT" :realRes="realRes" :pdSubType="pdSubType" v-else></RtReport>
</div>
<div class="rphRight">
<div class="box1">
<span class="sp1"></span><span class="sp2">产品检验报告PDF</span>
</div>
<div
class="pdfContent"
v-loading="pdfLoading"
element-loading-text="PDF生成中..."
element-loading-spinner="el-icon-loading"
>
<iframe
class="pdfPage"
:src="pdfPath"
frameborder="0"
v-if="pdfLoading === false"
></iframe>
<div class="pdfContent" v-loading="pdfLoading" element-loading-text="PDF..."
element-loading-spinner="el-icon-loading">
<iframe class="pdfPage" :src="pdfPath" frameborder="0" v-if="pdfLoading === false"></iframe>
</div>
</div>
</div>
<div class="rpShow">
<el-tabs type="card">
<el-tab-pane label="查看待检验产品">
<div
class="earth"
id="cesiumView"
@click="pickValue"
style="overflow: hidden; position: relative"
></div>
<div class="earth" id="cesiumView" @click="pickValue" style="overflow: hidden; position: relative"></div>
<div class="cstop">
<el-form
:inline="true"
:model="rpDataMsg"
class="demo-form-inline"
:disabled="true"
>
<el-form :inline="true" :model="rpDataMsg" class="demo-form-inline" :disabled="true">
<el-form-item label="卫星" class="ysjMsg">
<el-input
class="ysjMsgMrg"
v-model="rpDataMsg.satellite"
placeholder="采样卫星"
></el-input>
<el-input class="ysjMsgMrg" v-model="rpDataMsg.satellite" placeholder="采样卫星"></el-input>
</el-form-item>
<el-form-item label="载荷名称" class="ysjMsg">
<el-input
v-model="rpDataMsg.load"
placeholder="载荷方式"
></el-input>
<el-input v-model="rpDataMsg.load" placeholder="载荷方式"></el-input>
</el-form-item>
<el-form-item label="空间分辨率" class="ysjMsg2">
<el-input
v-model="rpDataMsg.spatialRes"
placeholder="空间分辨率"
></el-input>
<el-input v-model="rpDataMsg.spatialRes" placeholder="空间分辨率"></el-input>
</el-form-item>
<el-form-item label="时间" class="ysjMsg">
<el-input
class="ysjMsgMrg"
v-model="formatDateStr"
placeholder="采样时间"
></el-input>
<el-input class="ysjMsgMrg" v-model="formatDateStr" placeholder="采样时间"></el-input>
</el-form-item>
<el-form-item label="级别" prop="resource" class="ysjMsg2">
<el-radio-group v-model="rpDataMsg.level">
@ -83,51 +40,28 @@
<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="rpDataMsg.coordinateSys"
placeholder="坐标系统"
></el-input>
<el-input v-model="rpDataMsg.coordinateSys" placeholder="坐标系统"></el-input>
</el-form-item>
<el-form-item label="最小纬度" class="ysjMsg">
<el-input
v-model="rpDataMsg.minLat"
placeholder="最小纬度"
></el-input>
<el-input v-model="rpDataMsg.minLat" placeholder="最小纬度"></el-input>
</el-form-item>
<el-form-item label="最大纬度" class="ysjMsg2">
<el-input
style="margin-left: 6px"
v-model="rpDataMsg.maxLat"
placeholder="最大纬度"
></el-input>
<el-input style="margin-left: 6px" v-model="rpDataMsg.maxLat" placeholder="最大纬度"></el-input>
</el-form-item>
<el-form-item label="最小经度" class="ysjMsg">
<el-input
v-model="rpDataMsg.minLon"
placeholder="最小经度"
></el-input>
<el-input v-model="rpDataMsg.minLon" placeholder="最小经度"></el-input>
</el-form-item>
<el-form-item label="最大经度" class="ysjMsg2">
<el-input
v-model="rpDataMsg.maxLon"
placeholder="最大经度"
></el-input>
<el-input v-model="rpDataMsg.maxLon" placeholder="最大经度"></el-input>
</el-form-item>
</el-form>
</div>
</el-tab-pane>
<el-tab-pane label="查看样本数据">
<el-table
:header-cell-style="headerRowClass"
:cell-style="tableRowClassName"
style="width: 98%; margin-left: 1%; margin-top: 15px"
:data="sampleData"
:stripe="true"
height="520"
>
<el-table :header-cell-style="headerRowClass" :cell-style="tableRowClassName"
style="width: 98%; margin-left: 1%; margin-top: 15px" :data="sampleData" :stripe="true" height="520">
<el-table-column type="index" label="序号" width="80">
</el-table-column>
<el-table-column prop="samplesId" label="样本编号" sortable>
@ -148,23 +82,13 @@
{{ scope.row.dataTime | formatDate }}
</template> -->
</el-table-column>
<el-table-column
prop="collectDate"
label="预处理时间"
sortable
align="center"
>
<el-table-column prop="collectDate" label="预处理时间" sortable align="center">
<template slot-scope="scope">
{{ scope.row.collectDate }}
<!-- {{ scope.row.addTime | formatDate }} -->
</template>
</el-table-column>
<el-table-column
prop="reliability"
label="可信度"
sortable
align="center"
></el-table-column>
<el-table-column prop="reliability" label="可信度" sortable align="center"></el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
@ -439,22 +363,16 @@ export default {
errorList: errorList,
realList: realList,
otgError: otgError,
sampleImgFd: rpm.imgRes.sampleImgFd,
sampleImg: rpm.imgRes.sampleImg,
productImg: rpm.imgRes.productImg,
microwaveDataJson: asmp.microwaveDataJson
};
const pdfName = productTypeMap(self.pdSubType) + "报告";
const localTiffPath = null;
let rt = rpm.tifPath.split("/");
//i访
// const httpTiffPath =
// "http://10.0.31.126:8085/microwaveData/tif/" + rt[rt.length - 1];
const httpTiffPath = rpm.tifPath;
const polarizationMethod = "HH";
exportWord(
pdfMsg,
pdfName,
localTiffPath,
httpTiffPath,
psId,
polarizationMethod
psId
).then((res) => {
if (res.msg === "success") {
const ru = res.pdfUrl;

View File

@ -374,7 +374,7 @@ export default {
}
//
const allSampleData = smpVal.allSampleData;
this.addCotSamples(this.sampleList, allSampleData, orderId);
// this.addCotSamples(this.sampleList, allSampleData, orderId);
//
this.updateTruthFun(orderId, tcf);
this.checkRealityWait = true;
@ -394,7 +394,7 @@ export default {
formData.append("pixelHandleType", this.pixelFun); //
formData.append("truthCheckFuns", JSON.stringify(tcf)); //
formData.append("featureMapping", JSON.stringify(featureMapData));
formData.append("polarizationMethod", 'HH');
formData.append("microwaveDataJson",this.productMsg.microwaveDataJson); //
checkReality(formData).then((res) => {
// console.log("", res);
if (res?.code === 200 && res.message === "success") {
@ -416,6 +416,7 @@ export default {
token: this.token,
orderMsg: this.orderMsg,
productMsg: this.productMsg,
imgRes: imgRes
};
localStorage.setItem(
this.configration.path.inspection,
@ -455,13 +456,15 @@ export default {
}
const sampleExtent = [Math.min(...allLon), Math.min(...allLat), Math.max(...allLon), Math.max(...allLat)]
this.setViewToRect(sampleExtent[0], sampleExtent[1], sampleExtent[2], sampleExtent[3]);
this.getCaptrue().then(res => {
setTimeout(() => {
this.getCaptrue('样本放大').then(res => {
this.setViewToRect(gp[0], gp[1], gp[2], gp[3]);
this.getCaptrue().then(res1 => {
setTimeout(() => {
this.getCaptrue('样本图').then(res1 => {
if (this.productSubType === productSubTypeVal.ACS_ORTHOPHOTO) window.selfDefine.farViewer.entities.removeAll();
else window.selfDefine.viewer.entities.removeAll();
setTimeout(() => {
this.getCaptrue().then(res2 => {
this.getCaptrue('产品图').then(res2 => {
resolve({
sampleImgFd: res,
sampleImg: res1,
@ -470,10 +473,12 @@ export default {
});
}, 1000)
})
}, 1000)
})
}, 1000)
})
},
getCaptrue() {
getCaptrue(picName) {
return new Promise((resolve, reject) => {
const sceneDom = document.getElementById('sceneShowContent');
if (sceneDom !== null) {
@ -489,7 +494,7 @@ export default {
// const href = window.URL.createObjectURL(new Blob([blob]))
// const link = document.createElement('a')
// link.href = href
// link.download = '.png'
// link.download = picName + '.png'
// document.body.appendChild(link)
// link.click()
// document.body.removeChild(link)
@ -500,16 +505,20 @@ export default {
})
},
setViewToRect(minLon, minLat, maxLon, maxLat) {
minLon = Number(minLon);
minLat = Number(minLat);
maxLon = Number(maxLon);
maxLat = Number(maxLat);
const ctLon = ((minLon + maxLon) / 2).toFixed(8);
const ctLat = ((minLat + maxLat) / 2).toFixed(8);
const west = minLon * 2 - ctLon;
const south = minLat * 2 - ctLat;
const east = maxLon * 2 - ctLon;
const north = maxLat * 2 - ctLat;
// minLon = Number(minLon);
// minLat = Number(minLat);
// maxLon = Number(maxLon);
// maxLat = Number(maxLat);
// const ctLon = ((minLon + maxLon) / 2).toFixed(8);
// const ctLat = ((minLat + maxLat) / 2).toFixed(8);
// const west = minLon * 2 - ctLon;
// const south = minLat * 2 - ctLat;
// const east = maxLon * 2 - ctLon;
// const north = maxLat * 2 - ctLat;
const west = minLon - 0.01;
const south = minLat - 0.01;
const east = maxLon + 0.01;
const north = maxLat + 0.01;
const rectangle = Cesium.Rectangle.fromDegrees(west, south, east, north);
if (this.productSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
window.selfDefine.farViewer.camera.setView({

View File

@ -159,8 +159,13 @@ export default {
}
},
changePage(orderMsg) {
// 152945 150208 PL_DF_DF_20220905175209_8648 153029 PL_DF_DF_20220905112508_4567 150533 PL_DF_DF_20230221173349_4569 152946
this.$router.push("/orderUnprocessed?orderId=153029&token=WEB*1701681396582@7282_ZZX-yg000087_44bb4c27458645c6b4d2a30717d73e9a");
// 152945 153029 152946
// 153064 153073 153049
// 153057
//
// 153079 :153086 153087
this.$router.push("/orderUnprocessed?orderId=153047&token=WEB*1701824857923@4QA4_ZZX-yg000087_92ce3354ff6b48808c7bd2d9f6949046");
},
},
};

View File

@ -35,7 +35,8 @@ module.exports = {
}
},
[process.env.VUE_APP_REALITY_API]: {
target: "http://124.16.188.131:28092/microwave",
// target: "http://124.16.188.131:28092/microwave",
target: "http://192.168.8.121:18092/microwave",
// target: "http://192.168.1.104:18092/microwave",
changeOrigin: true,
pathRewrite: {
@ -43,8 +44,8 @@ module.exports = {
}
},
[process.env.VUE_APP_FILE_API]: {
target: "http://124.16.188.131:28093/file",
// target: "http://192.168.1.104:18093/file",
// target: "http://124.16.188.131:28093/file",
target: "http://192.168.8.121:18093/file",
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_FILE_API]: ""