|
@@ -9,82 +9,191 @@
|
|
|
label-width="100px"
|
|
|
>
|
|
|
<el-form-item label="数据类型" prop="dataType">
|
|
|
- <el-radio
|
|
|
- v-for="dict in dict.type.biz_data_type"
|
|
|
- :key="dict.value"
|
|
|
- v-model="queryParams.dataType"
|
|
|
- :label="dict.value"
|
|
|
- @change="changeDataType"
|
|
|
- >{{ dict.label }}</el-radio
|
|
|
- >
|
|
|
+ <el-radio-group v-model="queryParams.dataType" @change="changeDataType">
|
|
|
+ <el-radio
|
|
|
+ v-for="item in dict.type.biz_data_type"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.value"
|
|
|
+ >
|
|
|
+ {{ item.label }}
|
|
|
+ </el-radio>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="类型" prop="sampleType">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.sampleType"
|
|
|
placeholder="请输入类型"
|
|
|
clearable
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.sampleType"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.sampleTypeOption"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="型号" prop="sampleModel">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.sampleModel"
|
|
|
placeholder="请输入型号"
|
|
|
clearable
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.sampleModel"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.sampleModelOption"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="表面温度" prop="temperatureK">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.temperatureK"
|
|
|
placeholder="请输入表面温度"
|
|
|
clearable
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.temperatureK"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.temperatureKOption"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="光谱波段" prop="wavelengthUm">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.wavelengthUm"
|
|
|
placeholder="请输入光谱波段"
|
|
|
clearable
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.wavelengthUm"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in dict.type.biz_wavelength_um"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="入射天顶角θi" prop="thetaIncident">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.thetaIncident"
|
|
|
placeholder="请输入射天顶角θi"
|
|
|
clearable
|
|
|
:disabled="queryParams.dataType == 1"
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.thetaIncident"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="queryParams.dataType == 1"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.allAngleOption.thetaIncidentOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="入射方位角φi" prop="phiIncident">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.phiIncident"
|
|
|
placeholder="请输入入射方位角φi"
|
|
|
clearable
|
|
|
:disabled="queryParams.dataType == 1"
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.phiIncident"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="queryParams.dataType == 1"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.allAngleOption.phiIncidentOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="反射天顶角θr" prop="thetaReflected">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.thetaReflected"
|
|
|
placeholder="请输入反射天顶角θr"
|
|
|
clearable
|
|
|
:disabled="queryParams.dataType == 1"
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.thetaReflected"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="queryParams.dataType == 1"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.allAngleOption.thetaReflectedOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="反射方位角φr" prop="phiReflected">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
v-model="queryParams.phiReflected"
|
|
|
placeholder="请输入反射方位角φr"
|
|
|
clearable
|
|
|
:disabled="queryParams.dataType == 1"
|
|
|
@keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ /> -->
|
|
|
+ <el-select
|
|
|
+ v-model="queryParams.phiReflected"
|
|
|
+ placeholder="请选择"
|
|
|
+ clearable
|
|
|
+ :disabled="queryParams.dataType == 1"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in options.allAngleOption.phiReflectedOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button
|
|
@@ -118,11 +227,7 @@
|
|
|
fit="contain"
|
|
|
:preview-src-list="[sampleImage]"
|
|
|
style="width: 100%; height: 100%"
|
|
|
- >
|
|
|
- <!-- <div slot="placeholder" class="image-slot">
|
|
|
- <i class="el-icon-picture-outline"></i>
|
|
|
- </div> -->
|
|
|
- </el-image>
|
|
|
+ />
|
|
|
</div>
|
|
|
</el-card>
|
|
|
|
|
@@ -131,7 +236,7 @@
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span>EMI修正折线图</span>
|
|
|
</div>
|
|
|
- <div ref="chart"></div>
|
|
|
+ <div ref="chart" />
|
|
|
</el-card>
|
|
|
</div>
|
|
|
|
|
@@ -142,8 +247,13 @@
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span>测量数据表</span>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <el-table :data="emiMeasurementList" style="width: 100%">
|
|
|
+ <div class="table-container">
|
|
|
+ <el-table
|
|
|
+ :data="emiMeasurementList"
|
|
|
+ style="width: 100%"
|
|
|
+ height="100%"
|
|
|
+ lazy
|
|
|
+ >
|
|
|
<el-table-column prop="sampleModel" label="样片型号" />
|
|
|
<el-table-column prop="temperatureK" label="温度(K)" />
|
|
|
<el-table-column prop="wavelengthUm" label="波段(μm)" />
|
|
@@ -162,8 +272,13 @@
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span>积分数据表</span>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <el-table :data="integratedDataList" style="width: 100%">
|
|
|
+ <div class="table-container">
|
|
|
+ <el-table
|
|
|
+ :data="integratedDataList"
|
|
|
+ style="width: 100%"
|
|
|
+ height="100%"
|
|
|
+ lazy
|
|
|
+ >
|
|
|
<el-table-column prop="sampleModel" label="样片型号" />
|
|
|
<el-table-column prop="temperatureK" label="温度(K)" />
|
|
|
<el-table-column prop="wavelengthUm" label="波段(μm)" />
|
|
@@ -194,11 +309,7 @@
|
|
|
fit="contain"
|
|
|
:preview-src-list="[sampleImage]"
|
|
|
style="width: 100%; height: 100%"
|
|
|
- >
|
|
|
- <!-- <div slot="placeholder" class="image-slot">
|
|
|
- <i class="el-icon-picture-outline"></i>
|
|
|
- </div> -->
|
|
|
- </el-image>
|
|
|
+ />
|
|
|
</div>
|
|
|
</el-card>
|
|
|
</div>
|
|
@@ -209,8 +320,13 @@
|
|
|
<div slot="header" class="clearfix">
|
|
|
<span>测量数据表</span>
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <el-table :data="brdfDataList" style="width: 100%">
|
|
|
+ <div class="table-container">
|
|
|
+ <el-table
|
|
|
+ :data="brdfDataList"
|
|
|
+ style="width: 100%"
|
|
|
+ height="100%"
|
|
|
+ lazy
|
|
|
+ >
|
|
|
<el-table-column prop="sampleModel" label="样片型号" />
|
|
|
<el-table-column prop="temperatureK" label="温度(K)" />
|
|
|
<el-table-column prop="wavelengthUm" label="光谱(μm)" />
|
|
@@ -236,10 +352,10 @@
|
|
|
|
|
|
<script>
|
|
|
import * as echarts from "echarts";
|
|
|
-import { getIndexInfo } from "@/api/manage/index";
|
|
|
+import { getIndexInfo, getOthersOptions } from "@/api/manage/index";
|
|
|
export default {
|
|
|
name: "Index",
|
|
|
- dicts: ["biz_data_type"],
|
|
|
+ dicts: ["biz_data_type", "biz_wavelength_um"],
|
|
|
data() {
|
|
|
return {
|
|
|
// 遮罩层
|
|
@@ -249,8 +365,6 @@ export default {
|
|
|
// 版本号
|
|
|
queryParams: {
|
|
|
dataType: "1",
|
|
|
- pageNum: 1,
|
|
|
- pageSize: 10,
|
|
|
sampleType: null,
|
|
|
sampleModel: null,
|
|
|
temperatureK: null,
|
|
@@ -260,6 +374,17 @@ export default {
|
|
|
thetaReflected: null,
|
|
|
phiReflected: null,
|
|
|
},
|
|
|
+ options: {
|
|
|
+ sampleTypeOption: [],
|
|
|
+ sampleModelOption: [],
|
|
|
+ temperatureKOption: [],
|
|
|
+ allAngleOption: {
|
|
|
+ thetaIncidentOptions: [],
|
|
|
+ phiIncidentOptions: [],
|
|
|
+ thetaReflectedOptions: [],
|
|
|
+ phiReflectedList: [],
|
|
|
+ },
|
|
|
+ },
|
|
|
showResult: false,
|
|
|
sampleImage: null,
|
|
|
chart: null,
|
|
@@ -269,31 +394,51 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
created() {},
|
|
|
- mounted() {},
|
|
|
+ mounted() {
|
|
|
+ this.changeDataType("1");
|
|
|
+ },
|
|
|
|
|
|
methods: {
|
|
|
// 查询按钮
|
|
|
handleQuery() {
|
|
|
- this.queryParams.pageNum = 1;
|
|
|
- this.loading = true;
|
|
|
- this.getList();
|
|
|
+ if (!this.queryParams.sampleType || !this.queryParams.sampleModel) {
|
|
|
+ this.$message({
|
|
|
+ message: "请选择类型和型号",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.loading = true;
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
},
|
|
|
/** 重置按钮操作 */
|
|
|
resetQuery() {
|
|
|
- this.resetForm("queryForm");
|
|
|
+ const dataType = this.queryParams.dataType;
|
|
|
+ // this.resetForm("queryForm");
|
|
|
this.showResult = false;
|
|
|
+ this.changeDataType(dataType);
|
|
|
},
|
|
|
getList() {
|
|
|
console.info(
|
|
|
"process.env.VUE_APP_BASE_API:" + process.env.VUE_APP_BASE_API
|
|
|
);
|
|
|
getIndexInfo(this.queryParams).then((response) => {
|
|
|
- this.sample = response.sample;
|
|
|
- this.sampleImage =
|
|
|
- process.env.VUE_APP_BASE_API + response.sample.sampleImage;
|
|
|
- this.brdfDataList = response.brdfDataList;
|
|
|
- this.emiMeasurementList = response.emiMeasurementList;
|
|
|
- this.integratedDataList = response.integratedDataList;
|
|
|
+ const data = response.data;
|
|
|
+ this.sample = data.sample;
|
|
|
+ if (data.sample == null) {
|
|
|
+ this.$message({
|
|
|
+ message: "没有查到相关数据",
|
|
|
+ type: "warning",
|
|
|
+ });
|
|
|
+ this.sampleImage = require("@/assets/404_images/404.png");
|
|
|
+ } else {
|
|
|
+ this.sampleImage =
|
|
|
+ process.env.VUE_APP_BASE_API + data.sample.sampleImage;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.brdfDataList = data.brdfDataList;
|
|
|
+ this.emiMeasurementList = data.emiMeasurementList;
|
|
|
+ this.integratedDataList = data.integratedDataList;
|
|
|
this.showResult = true;
|
|
|
this.$nextTick(() => {
|
|
|
this.initChart();
|
|
@@ -301,12 +446,28 @@ export default {
|
|
|
this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
- changeDataType() {
|
|
|
+ changeDataType(val) {
|
|
|
this.showResult = false;
|
|
|
- this.queryParams.thetaIncident = null;
|
|
|
- this.queryParams.phiIncident = null;
|
|
|
- this.queryParams.thetaReflected = null;
|
|
|
- this.queryParams.phiReflected = null;
|
|
|
+ this.queryParams = {
|
|
|
+ dataType: val,
|
|
|
+ sampleType: null,
|
|
|
+ sampleModel: null,
|
|
|
+ temperatureK: null,
|
|
|
+ wavelengthUm: null,
|
|
|
+ thetaIncident: null,
|
|
|
+ phiIncident: null,
|
|
|
+ thetaReflected: null,
|
|
|
+ phiReflected: null,
|
|
|
+ };
|
|
|
+ const params = {
|
|
|
+ dataType: this.queryParams.dataType,
|
|
|
+ };
|
|
|
+ getOthersOptions(params).then((resp) => {
|
|
|
+ this.options.sampleTypeOption = resp.data.sampleTypeOptions;
|
|
|
+ this.options.sampleModelOption = resp.data.sampleModelOptions;
|
|
|
+ this.options.temperatureKOption = resp.data.temperatureKOptions;
|
|
|
+ this.options.allAngleOption = resp.data.allAngleOptions;
|
|
|
+ });
|
|
|
},
|
|
|
// 修改 initChart 方法
|
|
|
initChart() {
|
|
@@ -331,18 +492,18 @@ export default {
|
|
|
// 准备系列数据
|
|
|
const series = [];
|
|
|
const emiFields = [
|
|
|
- "emiCorrection1",
|
|
|
- "emiCorrection2",
|
|
|
- "emiCorrection3",
|
|
|
- "emiCorrection4",
|
|
|
- "emiCorrection5",
|
|
|
+ { field: "emiCorrection1", name: "EMI-修正1" },
|
|
|
+ { field: "emiCorrection2", name: "EMI-修正2" },
|
|
|
+ { field: "emiCorrection3", name: "EMI-修正3" },
|
|
|
+ { field: "emiCorrection4", name: "EMI-修正4" },
|
|
|
+ { field: "emiCorrection5", name: "EMI-修正5" },
|
|
|
];
|
|
|
|
|
|
- emiFields.forEach((field) => {
|
|
|
+ emiFields.forEach((item) => {
|
|
|
series.push({
|
|
|
- name: field,
|
|
|
+ name: item.name, // 使用中文名称
|
|
|
type: "line",
|
|
|
- data: this.emiMeasurementList.map((item) => item[field]),
|
|
|
+ data: this.emiMeasurementList.map((row) => row[item.field]),
|
|
|
smooth: true,
|
|
|
symbol: "circle",
|
|
|
symbolSize: 8,
|
|
@@ -352,6 +513,9 @@ export default {
|
|
|
});
|
|
|
});
|
|
|
|
|
|
+ // 准备图例数据(使用中文名称)
|
|
|
+ const legendData = emiFields.map((item) => item.name);
|
|
|
+
|
|
|
const option = {
|
|
|
title: {
|
|
|
text: "Emi Correction 折线图",
|
|
@@ -364,7 +528,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
legend: {
|
|
|
- data: emiFields,
|
|
|
+ data: legendData, // 使用中文名称的图例
|
|
|
bottom: 10,
|
|
|
},
|
|
|
grid: {
|
|
@@ -487,12 +651,30 @@ export default {
|
|
|
overflow: hidden;
|
|
|
|
|
|
::v-deep .el-card__body {
|
|
|
- height: calc(100% - 57px);
|
|
|
- padding: 0;
|
|
|
+ // height: calc(100% - 57px);
|
|
|
+ // padding: 0;
|
|
|
|
|
|
> div {
|
|
|
height: 100%;
|
|
|
}
|
|
|
+ height: calc(100% - 57px);
|
|
|
+ padding: 0;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+
|
|
|
+ > .table-container {
|
|
|
+ flex: 1;
|
|
|
+ min-height: 0;
|
|
|
+ overflow: hidden;
|
|
|
+
|
|
|
+ .el-table {
|
|
|
+ height: 100%;
|
|
|
+
|
|
|
+ ::v-deep .el-table__body-wrapper {
|
|
|
+ overflow-y: auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
&.block-1 {
|