修改样本列表

tykong-cidian
duxiaoning 2024-09-01 22:17:02 +08:00
parent d7cc554e67
commit 926ec64c3d
4 changed files with 2642 additions and 856 deletions

3166
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -8,104 +8,43 @@
<div> <div>
<el-form :inline="true" :model="simpleForm" class="demo-form-inline"> <el-form :inline="true" :model="simpleForm" class="demo-form-inline">
<el-form-item> <el-form-item>
<el-cascader <el-cascader v-model="simpleForm.sampleFun" :disabled="sampleFun !== ''" :options="funcOpt" size="mini"
v-model="simpleForm.sampleFun" placeholder="请选择抽样方法" popper-class="cascader-popper" @change="changeSampleFun" clearable
:disabled="sampleFun !== ''" :show-all-levels="false"></el-cascader>
:options="funcOpt" <el-button v-if="isDeepSpace" class="edit-btn" plain size="mini" type="primary"
size="mini" icon="el-icon-edit-outline" @click="editDeepSpace"></el-button>
placeholder="请选择抽样方法"
popper-class="cascader-popper"
@change="changeSampleFun"
clearable
:show-all-levels="false"
></el-cascader>
<el-button
v-if="isDeepSpace"
class="edit-btn"
plain
size="mini"
type="primary"
icon="el-icon-edit-outline"
@click="editDeepSpace"
></el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input <el-input v-model="simpleForm.sampleNum" size="mini" placeholder="请输入样本个数"></el-input>
v-model="simpleForm.sampleNum"
size="mini"
placeholder="请输入样本个数"
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="samplesCk"></el-button> <el-button type="primary" @click="samplesCk"></el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table ref="multipleTable" v-loading="loading" element-loading-text=""
ref="multipleTable" element-loading-spinner="el-icon-loading" element-loading-background="rgba(0, 0, 0, 0.8)" :data="simpleData"
v-loading="loading" tooltip-effect="dark" :header-cell-style="headerRowClass" style="width: 98%; margin-left: 1%"
element-loading-text="拼命加载中" @selection-change="handleSelectionChange" :stripe="true" :cell-style="tableRowClassName" height="460">
element-loading-spinner="el-icon-loading"
element-loading-background="rgba(0, 0, 0, 0.8)"
:data="simpleData"
tooltip-effect="dark"
:header-cell-style="headerRowClass"
style="width: 98%; margin-left: 1%"
@selection-change="handleSelectionChange"
:stripe="true"
:cell-style="tableRowClassName"
height="460"
>
<el-table-column type="selection" width="55"> </el-table-column> <el-table-column type="selection" width="55"> </el-table-column>
<el-table-column label="序号" type="index" width="70"> <el-table-column label="序号" type="index" width="70">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="samplesId" label="样本编号" show-overflow-tooltip min-width="100px;">
prop="samplesId"
label="样本编号"
show-overflow-tooltip
min-width="100px;"
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="lat" label="纬度" sortable show-overflow-tooltip>
prop="lat"
label="纬度"
sortable
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="lng" label="经度" sortable show-overflow-tooltip>
prop="lng"
label="经度"
sortable
show-overflow-tooltip
>
</el-table-column> </el-table-column>
<!-- <el-table-column :label="smLabel" show-overflow-tooltip> <el-table-column :label="smLabel" show-overflow-tooltip>
<template slot-scope="scope">{{ <template slot-scope="scope">{{ getSampleVal(scope.row.paramStr) }}</template>
scope.row.paramStr | getSampleVal
}}</template>
</el-table-column> -->
<el-table-column
prop="collectDate"
label="采样时间"
sortable
show-overflow-tooltip
min-width="120px;"
>
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center"> <el-table-column prop="collectDate" label="采样时间" sortable show-overflow-tooltip min-width="80px;">
</el-table-column>
<el-table-column label="操作" align="center" min-width="100px;">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="primary" size="small" icon="el-icon-edit"
type="primary" @click="editSelected(scope.$index, simpleData)"></el-button>
size="small" <el-button type="danger" size="small" icon="el-icon-delete"
icon="el-icon-edit" @click="deleteSelected(scope.$index, simpleData)"></el-button>
@click="editSelected(scope.$index, simpleData)"
></el-button>
<el-button
type="danger"
size="small"
icon="el-icon-delete"
@click="deleteSelected(scope.$index, simpleData)"
></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -114,15 +53,10 @@
</div> </div>
<div class="smBodyRight"> <div class="smBodyRight">
<div class="box1"> <div class="box1">
<span class="sp1"></span <span class="sp1"></span><span class="sp2">待检验产品及样本分布结果</span>
><span class="sp2">待检验产品及样本分布结果</span>
</div> </div>
<div <div :class="checkRealityWait ? 'sceneShowContent onBorder' : 'sceneShowContent'
:class=" " id="sceneShowContent">
checkRealityWait ? 'sceneShowContent onBorder' : 'sceneShowContent'
"
id="sceneShowContent"
>
<!-- <div v-show="checkRealityWait" class="topContent"> <!-- <div v-show="checkRealityWait" class="topContent">
<span class="mapTitle">待检验{{ productSubType | productTypeMap }}</span> <span class="mapTitle">待检验{{ productSubType | productTypeMap }}</span>
</div> --> </div> -->
@ -130,15 +64,12 @@
<canvas v-show="checkRealityWait" id="grid"></canvas> <canvas v-show="checkRealityWait" id="grid"></canvas>
<div id="cesiumView" @click="pickValue"> <div id="cesiumView" @click="pickValue">
<div v-show="checkRealityWait" class="compass"> <div v-show="checkRealityWait" class="compass">
<img <img src="../../../assets/images/compass_one.svg" alt="" style="width: 100%; height: 100%" />
src="../../../assets/images/compass_one.svg"
alt=""
style="width: 100%; height: 100%"
/>
</div> </div>
<canvas v-show="checkRealityWait" id="scaleBar"></canvas> <canvas v-show="checkRealityWait" id="scaleBar"></canvas>
<div class="update-btns" v-show="updatePointVisible"> <div class="update-btns" v-show="updatePointVisible">
<div><el-button type="primary" @click.stop="selectPoint" :disabled="isSelectPointDisabled">选取点</el-button></div> <div><el-button type="primary" @click.stop="selectPoint" :disabled="isSelectPointDisabled">选取点</el-button>
</div>
<div><el-button type="primary" @click.stop="savePoint">保存点</el-button></div> <div><el-button type="primary" @click.stop="savePoint">保存点</el-button></div>
</div> </div>
</div> </div>
@ -147,16 +78,11 @@
<span>制图单位中国科学院空天信息创新研究院</span><br /> <span>制图单位中国科学院空天信息创新研究院</span><br />
<span>制图日期{{ createImgTime }}</span> <span>制图日期{{ createImgTime }}</span>
</div> </div>
</div> </div>
</div> </div>
<SampleSetting <SampleSetting :stepSampling="stepSampling" @handleStepSampling="handleStepSampling"
:stepSampling="stepSampling" @handleDepthList="handleDepthList" :sampleCldFun="sampleCldFun" ref="sampleSettingPanel"></SampleSetting>
@handleStepSampling="handleStepSampling"
@handleDepthList="handleDepthList"
:sampleCldFun="sampleCldFun"
ref="sampleSettingPanel"
></SampleSetting>
</div> </div>
</template> </template>
@ -213,11 +139,11 @@ export default {
checkRealityWait: { checkRealityWait: {
require: true, require: true,
}, },
microwaveDataJson: {
require: true,
}
}, },
filters: { filters: {
getSampleVal(paramStr) {
return JSON.parse(paramStr).featureValue.featureValue;
},
productTypeMap(pdtype) { productTypeMap(pdtype) {
const pdtypeMap = { const pdtypeMap = {
45: "正射产品", 45: "正射产品",
@ -247,7 +173,7 @@ export default {
loading: true, loading: true,
allSampleData: [], allSampleData: [],
simpleDataTotal: 0, simpleDataTotal: 0,
smLabel: "土壤水分", smLabel: "样本值",
pixelFormData: { pixelFormData: {
pixelDealFun: "", pixelDealFun: "",
}, },
@ -258,11 +184,11 @@ export default {
isDeepSpace: false, isDeepSpace: false,
depthList: [], depthList: [],
createImgTime: null, createImgTime: null,
updatePointVisible:false, updatePointVisible: false,
currentSelectPoint: null, // currentSelectPoint: null, //
updatedPoint:null, // updatedPoint: null, //
isClickEventOpen:true, // isClickEventOpen: true, //
isSelectPointDisabled:false, isSelectPointDisabled: false,
}; };
}, },
mounted() { mounted() {
@ -438,12 +364,12 @@ export default {
}, },
pickValue() { pickValue() {
cu.destoryHandleClick() cu.destoryHandleClick()
if(this.isClickEventOpen){ if (this.isClickEventOpen) {
cu.handleClick(); cu.handleClick();
} }
}, },
changeSampleFun(sfVal) { changeSampleFun(sfVal) {
this.$store.commit("setSampleFunArr",sfVal); this.$store.commit("setSampleFunArr", sfVal);
// //
if (Array.isArray(sfVal)) { if (Array.isArray(sfVal)) {
const ssf = Number(sfVal[0]); const ssf = Number(sfVal[0]);
@ -595,7 +521,7 @@ export default {
this.$store.commit("setAltRange", min + "," + (max + 1)); this.$store.commit("setAltRange", min + "," + (max + 1));
} }
this.simpleDataTotal = this.simpleForm.total = rd.length; this.simpleDataTotal = this.simpleForm.total = rd.length;
this.smLabel = this.simpleData[0].productSubTypeName; // this.smLabel = this.productTypeCol(this.simpleData[0].productSubId);
} }
} }
}); });
@ -618,37 +544,37 @@ export default {
// //
if (simpleData.length !== 0) { if (simpleData.length !== 0) {
for (let i in simpleData) { for (let i in simpleData) {
if( i == index ){ if (i == index) {
cu.addPoint(simpleData[index].lng, simpleData[index].lat, 10,true); cu.addPoint(simpleData[index].lng, simpleData[index].lat, 10, true);
} }
// else{ // else{
// cu.addPoint(simpleData[i].lng, simpleData[i].lat, 10); // cu.addPoint(simpleData[i].lng, simpleData[i].lat, 10);
// } // }
} }
} }
// //
this.currentSelectPoint = simpleData[index]; this.currentSelectPoint = simpleData[index];
}, },
// //
selectPoint(){ selectPoint() {
this.isClickEventOpen = false;// this.isClickEventOpen = false;//
// //
cu.clickToAddPoint(point=>{ cu.clickToAddPoint(point => {
this.updatedPoint = { this.updatedPoint = {
...this.currentSelectPoint, ...this.currentSelectPoint,
lng: point[0], lng: point[0],
lat: point[1], lat: point[1],
} }
}) })
this.isSelectPointDisabled = true; this.isSelectPointDisabled = true;
}, },
// //
savePoint(){ savePoint() {
// //
cu.removePoint(); cu.removePoint();
let index = this.simpleData.indexOf(this.currentSelectPoint) let index = this.simpleData.indexOf(this.currentSelectPoint)
//table //table
this.simpleData.splice(index,1,this.updatedPoint) this.simpleData.splice(index, 1, this.updatedPoint)
// //
if (this.simpleData.length !== 0) { if (this.simpleData.length !== 0) {
for (let i in this.simpleData) { for (let i in this.simpleData) {
@ -664,7 +590,90 @@ export default {
this.isSelectPointDisabled = false; this.isSelectPointDisabled = false;
this.isClickEventOpen = true; this.isClickEventOpen = true;
cu.handleClick() cu.handleClick()
} },
getSampleVal(paramStr) {
let dtVal = null;
const jps = JSON.parse(paramStr);
const tmd = JSON.parse(this.microwaveDataJson)
switch (this.productSubType) {
//
case 46:
dtVal = jps.featureValue.featureValue
break;
//
case 51:
switch (tmd.polarizationMode) {
case "HH":
dtVal = jps.topLeft;
break;
case "VH":
dtVal = jps.bottomLeft;
break;
case "HV":
dtVal = jps.topRight;
break;
case "VV":
dtVal = jps.bottomRight;
break;
}
break;
//
case 52:
switch (tmd.atmosphericDelayValueType) {
case "干延迟":
dtVal = jps.dry;
break;
case "湿延迟":
dtVal = jps.wet;
break;
case "总延迟":
dtVal = jps.total;
break;
}
break;
//
case 53:
dtVal = jps.alt
break;
//
case 38:
dtVal = jps.soilmoisture
break;
//
case 49:
dtVal = jps.salinity
break;
//
case 50:
if (tmd.pixelUnit === "均方根高度") dtVal = jps.height;
else dtVal = jps.length;
break;
//
case 48:
dtVal = jps.vegetationHigh
break;
//
case 43:
dtVal = jps.lai
break;
}
return dtVal;
},
productTypeCol(pdtype) {
const pdtypeMap = {
46: "高程值",
51: "后向散射系数",
52: "延迟值",
53: "高程值",
38: "土壤水分值",
49: "土壤盐碱度",
50: "地表粗糙度",
48: "植被高度",
43: "叶面积指数",
};
if (pdtype == null) return null;
else return pdtypeMap[pdtype];
},
}, },
computed: { computed: {
globalSampleFun: function () { globalSampleFun: function () {
@ -709,7 +718,7 @@ export default {
margin-bottom: 10px; margin-bottom: 10px;
} }
/deep/.smps .el-table th > .cell { /deep/.smps .el-table th>.cell {
font-size: 15px; font-size: 15px;
} }
@ -812,7 +821,8 @@ export default {
margin-left: 100%; margin-left: 100%;
white-space: nowrap; white-space: nowrap;
} }
.update-btns{
.update-btns {
width: 100px; width: 100px;
height: 70px; height: 70px;
background-color: #ffffff; background-color: #ffffff;

View File

@ -76,17 +76,19 @@
<OtgCorrection :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum" <OtgCorrection :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum"
:geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId" :geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId"
:productSubType="productSubType" :projection="projection" :checkRealityWait="checkRealityWait" :productSubType="productSubType" :projection="projection" :checkRealityWait="checkRealityWait"
ref="otgCorrectionPanel" v-if="productSubType === 45"> :microwaveDataJson="microwaveDataJson" ref="otgCorrectionPanel" v-if="productSubType === 45">
</OtgCorrection> </OtgCorrection>
<!-- 地表覆盖 --> <!-- 地表覆盖 -->
<Qualitative :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum" <Qualitative :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum"
:geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId" :geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId"
:productSubType="productSubType" :featureMapData="featureMapData" :checkRealityWait="checkRealityWait" :productSubType="productSubType" :featureMapData="featureMapData" :checkRealityWait="checkRealityWait"
ref="qualitativePanel" v-else-if="productSubType === 39 || productSubType === 47"></Qualitative> :microwaveDataJson="microwaveDataJson" ref="qualitativePanel"
v-else-if="productSubType === 39 || productSubType === 47"></Qualitative>
<!-- 土壤水份等 --> <!-- 土壤水份等 -->
<SoilMositure :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum" <SoilMositure :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum"
:geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId" :geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId"
:productSubType="productSubType" :checkRealityWait="checkRealityWait" ref="soilMositurePanel" v-else> :productSubType="productSubType" :checkRealityWait="checkRealityWait" :microwaveDataJson="microwaveDataJson"
ref="soilMositurePanel" v-else>
</SoilMositure> </SoilMositure>
<!-- 真实性检验方法 --> <!-- 真实性检验方法 -->
<div class="cardfive" v-if="!hasPixelFun"> <div class="cardfive" v-if="!hasPixelFun">
@ -122,19 +124,19 @@
<el-option label="均值法" value="1" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') || <el-option label="均值法" value="1" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null || globalSampleFun === null ||
globalSampleFun === '' globalSampleFun === ''
"></el-option> "></el-option>
<el-option label="最邻近法" value="6" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') || <el-option label="最邻近法" value="6" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null || globalSampleFun === null ||
globalSampleFun === '' globalSampleFun === ''
"></el-option> "></el-option>
<el-option label="克里格法" value="7" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') || <el-option label="克里格法" value="7" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null || globalSampleFun === null ||
globalSampleFun === '' globalSampleFun === ''
"></el-option> "></el-option>
<el-option label="块克里格法" value="9" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') || <el-option label="块克里格法" value="9" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null || globalSampleFun === null ||
globalSampleFun === '' globalSampleFun === ''
"></el-option> "></el-option>
<el-option label="MSN法" value="10"></el-option> <el-option label="MSN法" value="10"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -247,6 +249,7 @@ export default {
orderData: [], orderData: [],
sampleList: [], sampleList: [],
pdShow: true, pdShow: true,
microwaveDataJson: null,
}; };
}, },
methods: { methods: {
@ -285,7 +288,7 @@ export default {
let rt = pm.ftpPath.split('/'); let rt = pm.ftpPath.split('/');
self.tifPath = 'http://10.0.31.125:18030/inspection/files/' + rt[rt.length - 1]; self.tifPath = 'http://10.0.31.125:18030/inspection/files/' + rt[rt.length - 1];
self.projection = pm.projection; self.projection = pm.projection;
self.microwaveDataJson = self.productMsg.microwaveDataJson
// //
// getAnalyseMethod(self.orderId).then((res) => { // getAnalyseMethod(self.orderId).then((res) => {
// // console.log('',res); // // console.log('',res);
@ -397,7 +400,7 @@ export default {
formData.append("pixelHandleType", this.pixelFun); // formData.append("pixelHandleType", this.pixelFun); //
formData.append("truthCheckFuns", JSON.stringify(tcf)); // formData.append("truthCheckFuns", JSON.stringify(tcf)); //
formData.append("featureMapping", JSON.stringify(featureMapData)); formData.append("featureMapping", JSON.stringify(featureMapData));
formData.append("microwaveDataJson", this.productMsg.microwaveDataJson); // formData.append("microwaveDataJson", this.microwaveDataJson); //
checkReality(formData).then((res) => { checkReality(formData).then((res) => {
// console.log("", res); // console.log("", res);
if (res?.code === 200 && res.message === "success") { if (res?.code === 200 && res.message === "success") {
@ -405,8 +408,8 @@ export default {
this.screenCapture(this.sampleList, this.geoLayerPos).then(imgRes => { this.screenCapture(this.sampleList, this.geoLayerPos).then(imgRes => {
const rm = res.data; const rm = res.data;
let pixelHandleMsg = null; let pixelHandleMsg = null;
if (this.pixelFun !== ""){ if (this.pixelFun !== "") {
switch(this.pixelFun){ switch (this.pixelFun) {
case "1": case "1":
pixelHandleMsg = "均值法" pixelHandleMsg = "均值法"
break; break;
@ -441,9 +444,9 @@ export default {
orderMsg: this.orderMsg, orderMsg: this.orderMsg,
productMsg: this.productMsg, productMsg: this.productMsg,
imgRes: imgRes, imgRes: imgRes,
pixelHandleMsg:pixelHandleMsg, pixelHandleMsg: pixelHandleMsg,
projStr:res.projStr, projStr: res.projStr,
sampleFun:theSampleFun sampleFun: theSampleFun
}; };
localStorage.setItem( localStorage.setItem(
this.configration.path.inspection, this.configration.path.inspection,
@ -659,9 +662,9 @@ export default {
this.$store.commit("setPixelFun", null); this.$store.commit("setPixelFun", null);
this.$store.commit("setAltRange", null); this.$store.commit("setAltRange", null);
}, },
watch:{ watch: {
"$store.state.sampleFunArr":{ "$store.state.sampleFunArr": {
handler:function(newVal,oldVal){ handler: function (newVal, oldVal) {
this.pixelFun = ""; this.pixelFun = "";
} }
} }

View File

@ -17,6 +17,7 @@ module.exports = {
lintOnSave: false, // 在保存代码的时候开启eslint代码检查机制 lintOnSave: false, // 在保存代码的时候开启eslint代码检查机制
devServer: { devServer: {
// 实时保存,编译的配置段 // 实时保存,编译的配置段
host:'0.0.0.0',
port: 8085, // http服务的端口号码设定 port: 8085, // http服务的端口号码设定
open: false, open: false,
proxy: { proxy: {
@ -35,8 +36,8 @@ module.exports = {
} }
}, },
[process.env.VUE_APP_REALITY_API]: { [process.env.VUE_APP_REALITY_API]: {
target: "http://192.168.88.3:18092/microwave", // target: "http://192.168.88.3:18092/microwave",
// target: "https://124.16.188.131:28092/microwave", target: "https://124.16.188.131:28092/microwave",
// target: "http://192.168.1.227:18092/microwave", // target: "http://192.168.1.227:18092/microwave",
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
@ -44,8 +45,8 @@ module.exports = {
} }
}, },
[process.env.VUE_APP_FILE_API]: { [process.env.VUE_APP_FILE_API]: {
target: "http://192.168.88.3:18093/file", // target: "http://192.168.88.3:18093/file",
// target: "https://124.16.188.131:28093/file", target: "https://124.16.188.131:28093/file",
// target: "http://192.168.1.227:18093/file", // target: "http://192.168.1.227:18093/file",
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {