microwave-project-unite/src/views/Daichuli/Feedback/Inspection/index.vue

1015 lines
30 KiB
Vue

<template>
<div>
<transition name="Fade" mode="out-in">
<router-view></router-view>
</transition>
<!-- 订单展示 -->
<div class="page" v-show="pageshow" v-loading="checkRealityWait" element-loading-text="正在检验..."
element-loading-spinner="el-icon-loading">
<div class="cardfrist">
<div class="box1">
<span class="sp1"></span><span class="sp2">订单信息</span>
</div>
<el-table :header-cell-style="{ background: '#E4E9F1' }" :cell-style="tableRowClassName" :data="orderData"
style="width: 98%; margin-left: 1%; margin-top: 15px">
<el-table-column prop="orderCode" label="订单编号" sortable width="180" align="center">
</el-table-column>
<el-table-column prop="orderSource" label="订单来源" sortable align="center">
</el-table-column>
<el-table-column prop="uploadDate" label="提交时间" sortable align="center">
</el-table-column>
<el-table-column prop="fileName" label="文件名" sortable align="center">
</el-table-column>
<el-table-column prop="fileSize" label="产品大小" sortable align="center">
</el-table-column>
<el-table-column prop="fileFormat" label="文件格式" sortable align="center">
</el-table-column>
<el-table-column label="元数据" align="center">
<el-button type="primary" @click="changeshow">查看</el-button>
</el-table-column>
</el-table>
</div>
<!-- 元数据展示 -->
<div class="cardsecond" v-show="isShow">
<div class="box1">
<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-item label="卫星" class="ysjMsg">
<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-form-item>
<el-form-item label="空间分辨率" class="ysjMsg2">
<el-input v-model="formInline.resRatio" placeholder="空间分辨率"></el-input>
</el-form-item>
<el-form-item label="时间" class="ysjMsg">
<el-input class="ysjMsgMrg" v-model="formInline.producedDate" placeholder="生产时间"></el-input>
</el-form-item>
<el-form-item label="级别" prop="resource" style="width: 20%" class="ysjMsg2">
<el-radio-group v-model="formInline.proLevel">
<el-radio label="3"></el-radio>
<el-radio label="4"></el-radio>
<el-radio label="5"></el-radio>
</el-radio-group> </el-form-item><br />
<el-form-item label="坐标系统" class="ysjMsg">
<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-form-item>
<el-form-item label="最大纬度" class="ysjMsg2">
<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-form-item>
<el-form-item label="最大经度" class="ysjMsg2">
<el-input v-model="formInline.maxLon" placeholder="最大经度"></el-input>
</el-form-item>
</el-form>
</div>
</div>
<!-- 正射校正 -->
<OtgCorrection :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum"
:geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId"
:productSubType="productSubType" :projection="projection" :checkRealityWait="checkRealityWait"
ref="otgCorrectionPanel" v-if="productSubType === 45">
</OtgCorrection>
<!-- 地表覆盖 -->
<Qualitative :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum"
:geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId"
:productSubType="productSubType" :featureMapData="featureMapData" :checkRealityWait="checkRealityWait"
ref="qualitativePanel" v-else-if="productSubType === 39 || productSubType === 47"></Qualitative>
<!-- 土壤水份等 -->
<SoilMositure :sampleFun="sampleFun" :sampleCldFun="sampleCldFun" :pixelFun="pixelFun" :pixelNum="pixelNum"
:geoWorkSpace="geoWorkSpace" :geoLayerName="geoLayerName" :geoLayerPos="geoLayerPos" :orderId="orderId"
:productSubType="productSubType" :checkRealityWait="checkRealityWait" ref="soilMositurePanel" v-else>
</SoilMositure>
<!-- 真实性检验方法 -->
<div class="cardfive" v-if="!hasPixelFun">
<div class="box1">
<span class="sp1"></span><span class="sp2">真实性检验方法</span>
</div>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="检验方法">
<el-select v-model="formInline.truthCheckFun" multiple :disabled="truthFun" placeholder="请选择">
<el-option v-for="item in truthCheckFunOpt" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div class="btngroup">
<el-button class="shbtn" type="primary" @click="todaichuli">取消</el-button>
<el-button class="shbtn" type="primary" @click="changepage">确定</el-button>
</div>
</div>
<div class="card2" v-if="hasPixelFun">
<div class="leftCard">
<div class="pixelDeal">
<div class="box1">
<span class="sp1"></span>
<span class="sp22">像元级处理模型设置</span>
</div>
<div>
<span class="cardsp">目标分辨率:{{ pixelNum }}</span>
<el-form :inline="true" class="demo-form-inline">
<el-form-item label="像元级处理模型:">
<el-select v-model="pixelFun" placeholder="选择像元级处理方法" @change="pixelFunChanged" ref="pixelSel">
<el-option label="" value=""></el-option>
<el-option label="均值法" value="1" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null ||
globalSampleFun === ''
"></el-option>
<el-option label="最邻近法" value="6" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null ||
globalSampleFun === ''
"></el-option>
<el-option label="克里格法" value="7" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null ||
globalSampleFun === ''
"></el-option>
<el-option label="块克里格法" value="9" v-if="(globalSampleFun !== 1 && globalSampleFun !== '1') ||
globalSampleFun === null ||
globalSampleFun === ''
"></el-option>
<el-option label="MSN法" value="10"></el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</div>
</div>
<div class="rightCard">
<div class="box1">
<span class="sp11"></span>
<span class="sp22">真实性检验方法</span>
</div>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="检验方法:">
<el-select v-model="formInline.truthCheckFun" multiple :disabled="truthFun" placeholder="请选择">
<el-option v-for="item in truthCheckFunOpt" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
<div class="cardfive">
<div class="btngroup">
<el-button class="shbtn" type="primary" @click="todaichuli">取消</el-button>
<el-button class="shbtn" type="primary" @click="changepage">确定</el-button>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import SoilMositure from "@/components/ration/soilMoisture/index.vue";
import OtgCorrection from "@/components/ration/otgCorrection/index.vue";
import Qualitative from "@/components/ration/qualitative/index.vue";
import {
getAnalyseMethod,
delSampleData,
upDateAnalyseMethod,
checkReality,
resetCheck
} from "@/api/lang/pendingOrder";
import qs from "qs";
import html2canvas from "@/lib/html2canvas.js"
import { productSubTypeVal, truthFunVal } from "@/lib/contract.js";
export default {
name: "Inspection",
components: {
SoilMositure,
OtgCorrection,
Qualitative,
},
created() {
if (
Object.keys(this.$route.params).length > 0 &&
sessionStorage.getItem("prePage") ===
this.configration.path.orderUnprocessed
) {
this.queryParams = this.$route.params;
} else {
this.queryParams = JSON.parse(
localStorage.getItem(this.configration.path.orderUnprocessed)
);
}
document.body.scrollTop = 0;
this.initOrderPMsg();
this.setTruthFunOpt();
},
data() {
return {
queryParams: null,
orderMsg: "",
productMsg: null,
allMsg: null,
pageshow: true,
checkRealityWait: false,
isShow: false,
truthFun: false,
productSubType: undefined,
featureMapData: [],
orderId: undefined,
userId: null,
userName: null,
token: null,
formInline: {
truthCheckFun: [],
satellite: "", //卫星
load: "", //载荷
resRatio: "0.000307", //空间分辨率
producedDate: "",
proLevel: "4", //产品级别
coordinateSys: "WGS84", //坐标系
minLat: "116.13622332", //最小经度
maxLat: "118.342222", //最大经度
minLon: "34.211234", //最小纬度
maxLon: "35.3455666", //最大纬度
},
truthCheckFunOpt: [],
sampleFun: "",
sampleCldFun: null,
pixelFun: "",
pixelNum: "",
geoWorkSpace: "",
geoLayerName: "",
geoLayerPos: [],
tifPath: "",
projection: null,
orderData: [],
sampleList: [],
pdShow: true,
};
},
methods: {
initOrderPMsg() {
let self = this;
const am = (self.allMsg = this.queryParams);
self.userId = localStorage.userId;
self.userName = localStorage.userName;
self.token = localStorage.token;
const om = (self.orderMsg = self.allMsg.orderMsg);
self.orderId = om.orderId;
const pdType = om.productSubClassId;
self.productSubType = pdType;
// self.featureMapData = om.landCoverTypeVOList;
self.featureMapData = am.groudClassData;
// self.featureMapData = pdType === 39 ? om.landCoverTypeVOList : JSON.parse(am.productMsg.microwaveDataJson).vegetationPhenology;
self.formInline = am.metaMsg;
self.orderData = am.orderData;
self.pixelNum = am.metaMsg.resRatio;
self.geoLayerPos = [
am.metaMsg.minLon,
am.metaMsg.minLat,
am.metaMsg.maxLon,
am.metaMsg.maxLat,
];
const pm = (self.productMsg = am.productMsg);
self.geoWorkSpace = pm.geoWorkspace;
self.geoLayerName = pm.geoLayerName;
// self.tifPath = pm.ftpPath;
//由于空天院内网服务无法拉取外网资源,先改成内网资源访问
let rt = pm.ftpPath.split('/');
self.tifPath = 'http://10.0.31.125:18030/inspection/files/' + rt[rt.length - 1];
self.projection = pm.projection;
// 赋值真实性检验方法
// getAnalyseMethod(self.orderId).then((res) => {
// // console.log('真实性检验',res);
// if (res.code === 200) {
// let truthFun = res.data.default;
// if (res.data.selected.length !== 0) truthFun = res.data.selected;
// if (truthFun.length !== 0) {
// const tfArr = [];
// for (let i in truthFun) {
// tfArr.push(truthFun[i].id);
// }
// self.formInline.truthCheckFun = tfArr;
// self.truthFun = true;
// }
// }
// });
// 赋值像元级处理方法
if (om.processMethods !== null) {
const pm = om.processMethods;
const pmVal = Object.keys(pm)[0];
self.pixelFun = pmVal.toString();
}
if (self.pixelFun !== "") {
self.pdShow = true;
self.$store.commit("setPixelFun", self.pixelFun);
}
// 赋值样本抽样方法
if (om.samplingMethodId !== null)
self.sampleFun = om.samplingMethodId + "";
if (self.sampleFun !== "") {
self.$store.commit("setSampleFun", self.sampleFun);
}
if (om.samplingMethodCldId !== null) {
self.sampleCldFun = om.samplingMethodCldId + "";
}
},
tableRowClassName({ rowIndex }) {
if ((rowIndex + 1) % 2 !== 0) {
return "background:#F5F7FA";
} else {
return "background:#FFFFFF";
}
},
todaichuli() {
resetCheck({ orderId: this.orderId }).then(res => {
if (res.code === 200) {
window.location.href = `${DAICHULI_URL}?orderid=${this.orderId}&token=${this.token}`;
}
})
},
changepage() {
if (this.hasPixelFun && this.pixelFun === "") {
this.$message.error("请选择像元级处理模型设置");
return false;
}
var smpVal = undefined;
var featureMapData = [];
const pdType = this.productSubType;
if (pdType === productSubTypeVal.ACS_ORTHOPHOTO) {
smpVal = this.$refs.otgCorrectionPanel;
} else if (
pdType === productSubTypeVal.ACS_TYPESOFLANDCOVER ||
pdType === productSubTypeVal.ACS_VEGETATIONPHENOLOGY
) {
smpVal = this.$refs.qualitativePanel;
featureMapData = smpVal.featureMapData;
} else {
smpVal = this.$refs.soilMositurePanel;
}
this.sampleList = smpVal.multipleSelection;
// if (featureMapData !== [] || featureMapData.length !== 0)
// this.updateCoverType(featureMapData);
const orderId = this.orderId;
const tcf = this.formInline.truthCheckFun;
if (this.sampleList.length === 0) {
this.$message.error("请选择样本数据");
return false;
}
if (tcf.length === 0) {
this.$message.error("真实性检验方法");
return false;
}
// 关联的样本数据入库
const allSampleData = smpVal.allSampleData;
this.addCotSamples(this.sampleList, allSampleData, orderId);
//更新真实性检验方法
this.updateTruthFun(orderId, tcf);
this.checkRealityWait = true;
// setTimeout(() => {
// this.screenCapture(this.sampleList, this.geoLayerPos).then(imgRes => {
// this.checkRealityWait = false;
// })
// }, 2000)
// 真实性校验方法
var formData = new FormData();
formData.append("orderId", orderId); //订单ID
formData.append("productType", this.productSubType); //产品类型
formData.append("isHttpUrl", true); //产品路径
formData.append("dataPath", this.tifPath); //产品路径
formData.append("samples", JSON.stringify(this.sampleList)); //样本数据
if (this.pixelFun !== "")
formData.append("pixelHandleType", this.pixelFun); //像元级处理方法(正射校正产品不需要)
formData.append("truthCheckFuns", JSON.stringify(tcf)); //真实性校验
formData.append("featureMapping", JSON.stringify(featureMapData));
formData.append("microwaveDataJson", this.productMsg.microwaveDataJson); //特殊参数设置
checkReality(formData).then((res) => {
// console.log("真实性校验:", res);
if (res?.code === 200 && res.message === "success") {
this.$nextTick(function () {
this.screenCapture(this.sampleList, this.geoLayerPos).then(imgRes => {
const rm = res.data;
const reportMsg = {
pdSubType: this.productSubType,
reportResult: rm,
geoWS: this.geoWorkSpace,
geoLN: this.geoLayerName,
geoLayerPos: this.geoLayerPos,
tifPath: this.tifPath,
metaData: this.formInline,
sampleList: this.sampleList,
orderId: this.orderId,
userId: this.userId,
userName: this.userName,
token: this.token,
orderMsg: this.orderMsg,
productMsg: this.productMsg,
imgRes: imgRes
};
localStorage.setItem(
this.configration.path.inspection,
JSON.stringify(reportMsg)
);
this.$message({
message: "真实性检验完成",
type: "success",
});
this.checkRealityWait = false;
// console.log(reportMsg, imgRes);
this.$router.push({ name: "报告生成", params: reportMsg });
});
})
} else {
this.$message({
message: res.message,
type: "error",
});
this.checkRealityWait = false;
}
});
},
screenCapture(allSampel, gp) {
return new Promise((resolve) => {
const allLon = [], allLat = [];
if (this.productSubType === productSubTypeVal.ACS_ORTHOPHOTO) {
for (let i in allSampel) {
allLon.push(allSampel[i].measureLong);
allLat.push(allSampel[i].measureLat);
}
} else {
for (let i in allSampel) {
allLon.push(allSampel[i].lng);
allLat.push(allSampel[i].lat);
}
}
const sampleExtent = [Math.min(...allLon), Math.min(...allLat), Math.max(...allLon), Math.max(...allLat)]
this.setViewToRect(sampleExtent[0], sampleExtent[1], sampleExtent[2], sampleExtent[3]);
setTimeout(() => {
this.getCaptrue('样本放大').then(res => {
this.setViewToRect(gp[0], gp[1], gp[2], gp[3]);
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 => {
resolve({
sampleImgFd: res,
sampleImg: res1,
productImg: res2
})
});
}, 1000)
})
}, 1000)
})
}, 1000)
})
},
getCaptrue(picName) {
return new Promise((resolve, reject) => {
const sceneDom = document.getElementById('sceneShowContent');
if (sceneDom !== null) {
html2canvas(sceneDom, {
useCORS: true,
height: sceneDom.offsetHeight,
width: sceneDom.offsetWidth,
scrollY: 0,
scrollX: 0
}).then(async (cbCanvas) => {
resolve(cbCanvas.toDataURL())
// cbCanvas.toBlob(blob => {
// const href = window.URL.createObjectURL(new Blob([blob]))
// const link = document.createElement('a')
// link.href = href
// link.download = picName + '.png'
// document.body.appendChild(link)
// link.click()
// document.body.removeChild(link)
// resolve(href)
// }, 'image/png')
});
}
})
},
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;
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({
destination: rectangle
});
} else {
window.selfDefine.viewer.camera.setView({
destination: rectangle
});
}
},
addCotSamples(samplesList, allSampleData, orderId) {
for (let i in samplesList) {
allSampleData = allSampleData.filter(function (o) {
return o.id !== samplesList[i].id;
});
}
const isDel = [];
for (let i in allSampleData) {
isDel.push(allSampleData[i].id);
}
const dsForm = new FormData();
dsForm.append("orderId", orderId);
dsForm.append("idList", isDel);
delSampleData(dsForm);
},
// 更新真实性检验方法
updateTruthFun(orderId, tcf) {
upDateAnalyseMethod(
qs.stringify({ list: tcf, orderId: orderId }, { indices: false })
);
},
updateCoverType(featureMapData) {
for (let i in featureMapData) {
const fi = featureMapData[i];
if (fi.typeIdKg !== null) {
const fParams = new FormData();
fParams.append("coverId", fi.id);
fParams.append("kgTypeId", Number(fi.typeIdKg));
fParams.append("kgTypeName", fi.typeNameKg);
updateFeature(fParams);
}
}
},
changeshow() {
this.isShow = !this.isShow;
},
// 获取产品子分类
setTruthFunOpt() {
const opt = this.productSubType;
const pst = productSubTypeVal;
const tf = truthFunVal;
if (opt === pst.ACS_ORTHOPHOTO) {
this.truthCheckFunOpt = [
{ value: tf.ACM_MEANERROR, label: "平均误差" },
{ value: tf.ACM_MEANABSOLUTEERROR, label: "平均绝对误差" },
{ value: tf.ACM_RELATIVEERROR, label: "相对误差" },
{ value: tf.ACM_MEANRELATIVEERROR, label: "平均相对误差" },
{
value: tf.ACM_MEANABSOLUTERELATIVEERROR,
label: "平均绝对相对误差",
},
{ value: tf.ACM_ROOTMANSQUAREERROR, label: "均方根误差" },
{ value: tf.ACM_PLANENESSERROR, label: "平面中误差" },
];
} else if (
opt === pst.ACS_TYPESOFLANDCOVER ||
opt === pst.ACS_VEGETATIONPHENOLOGY
) {
this.truthCheckFunOpt = [
{ value: tf.ACM_ERRORMATRIX, label: "误差矩阵" },
{ value: tf.ACM_OVERALLACCURACY, label: "总体分类精度" },
{ value: tf.ACM_KAPPA, label: "Kappa系数" },
];
} else {
this.truthCheckFunOpt = [
{ value: tf.ACM_MEANERROR, label: "平均误差" },
{ value: tf.ACM_MEANABSOLUTEERROR, label: "平均绝对误差" },
{ value: tf.ACM_RELATIVEERROR, label: "相对误差" },
{ value: tf.ACM_MEANRELATIVEERROR, label: "平均相对误差" },
{
value: tf.ACM_MEANABSOLUTERELATIVEERROR,
label: "平均绝对相对误差",
},
{ value: tf.ACM_ROOTMANSQUAREERROR, label: "均方根误差" },
{ value: tf.ACM_CORRELATIONCOEFFICIENT, label: "相关系数" },
];
}
},
pixelFunChanged() {
//更新状态
this.$store.commit("setPixelFun", this.pixelFun);
},
},
beforeDestroy() {
//恢复初始状态
this.$store.commit("setSampleFun", null);
this.$store.commit("setPixelFun", null);
this.$store.commit("setAltRange", null);
},
computed: {
hasPixelFun: function () {
return (
this.productSubType !== 45 &&
this.productSubType !== 39 &&
this.productSubType !== 47
);
},
globalSampleFun: function () {
if (this.allMsg.orderMsg.processMethods == null) {
this.pixelFun = "";
}
return this.$store.state.sampleFun;
},
globalPixelFun: function () {
return this.$store.state.pixelFun;
},
},
};
</script>
<style scoped lang="less">
.Fade-enter,
.Fade-leave-to {
opacity: 0;
}
.Fade-enter-to,
.Fade-leave {
opacity: 1;
}
.Fade-enter-active,
.Fade-leave-active {
transition: all 0.4s;
}
/deep/.cardsecond .el-input.is-disabled .el-input__inner {
width: 140px;
height: 33px;
}
/deep/.el-form--inline .el-form-item__label {
text-align: justify;
// text-align-last: justify;
font-size: 15px;
}
.shbtn:hover,
.shbtn:active,
.shbtn:focus {
background-color: rgba(97, 115, 206, 0.5);
}
.shbtn {
width: 150px;
height: 35px;
background-color: #354595;
border: 0;
}
.btngroup {
margin-bottom: 20px;
// margin-left: 40%;
text-align: center;
}
/deep/.el-textarea__inner {
margin-left: 20px;
width: 98%;
}
/deep/.el-textarea__inner:focus {
border-color: #354595;
}
/deep/.el-radio {
margin-right: 10px;
}
/deep/.el-radio__inner::after {
background-color: #354595;
}
/deep/.el-radio__input.is-checked .el-radio__inner {
border-color: #354595;
background: white;
}
/deep/.el-radio__input.is-disabled .el-radio__inner {
border-color: #354595;
}
/deep/.el-radio__input.is-disabled.is-checked .el-radio__inner::after {
background-color: #354595;
}
/deep/.el-radio__input.is-checked+.el-radio__label {
color: #606266;
}
/deep/.el-radio__inner {
border: 2px solid #354595;
}
/deep/.el-icon-close:before {
content: none;
}
/deep/.el-tag .el-icon-close {
width: 0;
height: 0;
}
/deep/.cardfive .el-form-item {
margin-top: 15px;
width: 100%;
}
/deep/.cardfive .el-form--inline .el-form-item__content {
width: 90%;
height: 60px;
}
/deep/.cardfive .el-select {
width: 100%;
height: 60px;
line-height: 60px;
}
/deep/.cardfive .el-input--suffix .el-input__inner {
width: 100%;
height: 60px;
line-height: 60px;
}
/deep/.cardfive .el-form--inline .el-form-item__label {
height: 60px;
line-height: 60px;
margin-left: 20px;
}
/deep/.cardfive .el-button--primary:hover {
background-color: #354595;
}
/deep/.cardfive .el-button--primary:focus {
background-color: #6979cc;
border-color: #6979cc;
}
.box2 {
margin-top: 10px;
margin-bottom: 10px;
height: 30px;
width: 300px;
display: inline-block;
}
.bxtitle {
margin-top: 2.5px;
display: inline-block;
vertical-align: top;
font-size: 18px;
width: 80px;
text-align: justify;
text-align-last: justify;
}
.bxinput {
display: inline-block;
vertical-align: top;
width: 200px;
}
/deep/.cardfive .el-input__inner {
height: 60px;
}
.cstop {
margin-top: 20px;
margin-bottom: 0;
position: relative;
text-align: center;
}
.ysjMsg {
width: 18%;
}
.ysjMsgMrg {
margin-left: 14px;
}
.ysjMsg2 {
width: 20%;
}
.cardsecond {
width: 100%;
background-color: white;
font-size: 20px;
margin-top: 20px;
}
.cardfrist {
width: 100%;
background-color: white;
font-size: 20px;
padding-bottom: 15px;
// margin-top: 20px;
}
.cardfive {
margin-top: 20px;
background-color: white;
padding: 0 0 10px 0;
clear: both;
}
.box1 {
height: 40px;
line-height: 40px;
border-bottom: 1px solid rgb(205, 205, 205, 0.5);
}
.sp1 {
display: inline-block;
width: 7px;
height: 26px;
background-color: #354595;
vertical-align: top;
// position: absolute;
margin-left: 20px;
margin-top: 8px;
}
.sp11 {
display: inline-block;
width: 7px;
height: 26px;
background-color: #354595;
vertical-align: top;
// position: absolute;
margin-left: 24px;
margin-top: 8px;
}
.sp2 {
margin-left: 10px;
font-size: 20px;
font-weight: 700;
color: #354595;
vertical-align: top;
}
.sp22 {
margin-left: 10px;
font-size: 20px;
font-weight: 700;
color: #354595;
vertical-align: top;
}
.page {
/* height: 1000px; */
width: 100%;
/* background-color: goldenrod; */
}
/deep/.el-button {
line-height: 0;
}
.leftCard {
width: 54%;
height: 230px;
background-color: white;
float: left;
}
.rightCard {
width: 46%;
height: 230px;
background-color: white;
float: left;
}
.pixelDeal {
height: 165px;
background-color: white;
}
/deep/.leftCard .el-form-item {
margin-top: 15px;
width: 100%;
}
/deep/.leftCard .el-input__inner {
height: 38px;
}
/deep/.leftCard .el-select {
width: 100%;
height: 38px;
line-height: 38px;
}
/deep/.leftCard .el-form--inline .el-form-item__content {
width: 50%;
height: 38px;
}
/deep/.leftCard .el-form--inline .el-form-item__label {
height: 38px;
line-height: 38px;
margin-left: 20px;
}
/deep/.rightCard .demo-form-inline .el-form-item {
margin-top: 15px;
width: 100%;
}
/deep/.rightCard .demo-form-inline .el-form-item__content {
width: 80%;
}
/deep/.rightCard .demo-form-inline .el-select {
width: 100%;
}
// /deep/.rightCard .el-form-item {
// margin-top: 15px;
// width: 100%;
// }
// /deep/.rightCard .el-input__inner {
// height: 30px;
// }
// /deep/.rightCard .el-select {
// width: 100%;
// height: 30px;
// line-height: 30px;
// }
// /deep/.rightCard .el-form--inline .el-form-item__content {
// width: 70%;
// height: 30px;
// }
// /deep/.rightCard .el-form--inline .el-form-item__label {
// height: 30px;
// margin-left: 24px;
// }
.cardsp {
display: block;
margin: 5px 0 0 20px;
font-size: 15px;
color: #606266;
line-height: 40px;
}
.selectBox {
height: 65px;
width: 100%;
border-radius: 4px;
border: 1px solid #dcdfe6;
line-height: 22px;
}
.selTxt {
background-color: #f4f4f5;
border-color: #e9e9eb;
color: #909399;
box-sizing: border-box;
margin: 2px 0 2px 6px;
height: 24px;
padding: 0 8px;
line-height: 22px;
font-size: 12px;
border-width: 1px;
border-style: solid;
border-radius: 4px;
white-space: nowrap;
position: relative;
z-index: 1;
align-items: center;
flex-wrap: wrap;
}
</style>