소스 검색

表单封装、七个基本页面的调整

Rmengdi 11 달 전
부모
커밋
8eceb1f70d

+ 7 - 0
meas_web/src/api/meas/dataResults.js

@@ -17,6 +17,13 @@ export function getDataResults(id) {
   })
 }
 
+export function getResultByEnvData(envDataId) {
+  return request({
+    url: '/meas/dataResults/getInfoByEnvDataId/' + envDataId,
+    method: 'get'
+  })
+}
+
 // 新增数据结果
 export function addDataResults(data) {
   return request({

+ 1 - 1
meas_web/src/api/meas/radiation.js

@@ -19,7 +19,7 @@ export function getRadiation(id) {
 
 export function getRadiationByEnvData(envDataId) {
   return request({
-    url: '/meas/dataResults/getInfoByEnvDataId/' + envDataId,
+    url: '/meas/radiation/getInfoByEnvDataId/' + envDataId,
     method: 'get'
   })
 }

+ 464 - 0
meas_web/src/views/meas/components/dialogContent.vue

@@ -0,0 +1,464 @@
+<template>
+  <div>
+    <el-form ref="form" :disabled="checkShow" :model="form" :rules="rules" size="mini"
+      label-width="80px">
+      <el-row type="flex" justify="space-around">
+        <el-form-item label="发动机型号" prop="model" label-width="90px">
+          <el-select v-model="form.model" placeholder="请选择发动机型号">
+            <el-option v-for="item in engineModelList" :key="item.id" :label="item.model" :value="item.id">
+            </el-option>
+            <el-option :value="undefined" disabled style="cursor: pointer">
+              <el-button type="text" @click="onClickBtn('engine')"><i class="el-icon-plus"></i> 增加发动机型号</el-button>
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="几何模型" prop="geometryFiles">
+          <file-upload :fileSize="0" :limit="1" :fileType="['x_t', 'str']" v-model="form.geometryFiles" />
+        </el-form-item>
+        <el-form-item label="几何图片" prop="geometryImage">
+          <image-upload :fileSize="0" :limit="1" :fileType="['jpg']" v-model="form.geometryImage"/>
+        </el-form-item>
+      </el-row>
+    </el-form>
+    <el-form ref="form" :disabled="checkShow" :model="form" :rules="rules" size="mini" label-width="80px">
+      <el-form-item label="测量批次" prop="measurementBatch" style="margin-left: 5%">
+        <el-select v-model="form.measurementBatchId" placeholder="请选择测量批次">
+          <el-option v-for="item in measureBatchOptions" :key="item.id" :label="item.measurementBatch" :value="item.id">
+            <span style="float: left">{{ item.id }}</span>
+            <span style="float: right; color: #8492a6; font-size: 13px">{{
+      item.measurementBatch
+    }}</span>
+          </el-option>
+          <el-option :value="undefined" disabled style="cursor: pointer">
+            <el-button type="text" @click="onClickBtn('measBatch')"><i class="el-icon-plus"></i> 增加测量批次</el-button>
+          </el-option>
+        </el-select>
+      </el-form-item>
+    </el-form>
+    <div class="box">
+      <span class="title">环境参数</span>
+      <el-form :disabled="checkShow" ref="form" :model="form" size="mini" :rules="rules" label-width="80px">
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="发动机状态" label-width="100px" prop="engineStatus">
+            <el-select v-model="form.engineStatus" placeholder="请选择发动机状态">
+              <el-option v-for="item in engineStatusOptions" :key="item" :label="item" :value="item">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="角度" prop="angle">
+            <el-select v-model="form.angle" placeholder="请输入角度">
+              <el-option v-for="item in angleOptions" :key="item" :label="item" :value="item">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="涡轮后温度" prop="turbinePostTemp" label-width="90px">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.turbinePostTemp" />
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="测试距离" prop="testDistance">
+            <el-input v-model="form.testDistance" placeholder="请输入测试距离" />
+          </el-form-item>
+          <el-form-item label="时间" prop="time">
+            <el-date-picker clearable v-model="form.time" type="datetime" value-format="yyyy-MM-dd HH:mm"
+              format="yyyy-MM-dd HH:mm" placeholder="请选择时间">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="地点" prop="location">
+            <el-input v-model="form.location" placeholder="请输入地点" />
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="大气压" prop="atmosPress">
+            <el-input v-model="form.atmosPress" placeholder="请输入大气压(单位:pa)" />
+          </el-form-item>
+          <el-form-item label="温度" prop="temperature">
+            <el-input v-model="form.temperature" placeholder="请输入温度(单位:K)" />
+          </el-form-item>
+          <el-form-item label="风速" prop="windSpeed">
+            <el-input v-model="form.windSpeed" placeholder="请输入风速(单位:m/s)" />
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="湿度" prop="humidity">
+            <el-input v-model="form.humidity" placeholder="请输入湿度(单位:%)" />
+          </el-form-item>
+          <el-form-item label="CO₂浓度" prop="concentration">
+            <el-input v-model="form.concentration" placeholder="请输入浓度(单位:mol)" />
+          </el-form-item>
+          <el-col :span="7">
+            <el-button v-if="envSaveBtn" type="primary" size="mini" @click="envDataSave">保 存</el-button>
+          </el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="box" v-if="radiationForm && Object.keys(radiationForm).length > 0">
+      <span class="title">光谱辐射计测量数据</span>
+      <el-form ref="radiationForm" size="mini" :model="radiationForm" :rules="rules" label-width="80px">
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="型号" prop="model">
+            <el-input v-model="radiationForm.model" placeholder="请输入型号" />
+          </el-form-item>
+          <el-form-item label="镜头视场角" prop="lensFView" label-width="90px">
+            <el-input v-model="radiationForm.lensFView" placeholder="请输入镜头视场角(单位:mrad)" />
+          </el-form-item>
+          <el-form-item label="增益" prop="gain">
+            <el-input v-model.number="radiationForm.gain" placeholder="请输入增益(单位:x)" />
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="背景数据" prop="backgroundData">
+            <file-upload :fileSize="0" :limit="1" :fileType="['lgm']" v-model="radiationForm.backgroundData" />
+          </el-form-item>
+          <el-form-item label="标定温度" prop="calTemp">
+            <el-input v-model="radiationForm.calTemp" placeholder="请输入标定温度" />
+          </el-form-item>
+          <el-form-item label="标定曲线" prop="calCurve">
+            <file-upload :fileSize="0" :limit="5" :fileType="['txt']" :isShowViev="true"
+              v-model="radiationForm.calCurve" v-on:fileView="fileView" />
+          </el-form-item>
+        </el-row>
+      </el-form>
+      <div class="box" style="margin-bottom: 15px">
+        <span class="title">目标数据</span>
+        <el-form ref="radiationForm" size="mini" :model="radiationForm" :rules="rules" label-width="80px">
+          <el-row type="flex" justify="space-around">
+            <el-form-item label="原始数据" prop="rawData">
+              <file-upload :fileSize="0" :limit="5" :fileType="['txt']" v-model="radiationForm.rawData" />
+            </el-form-item>
+            <el-form-item label="辐射亮度3~5μm" label-width="130px" prop="radiance1">
+              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="radiationForm.radiance1"
+                :isShowViev="true" v-on:fileView="fileView" />
+            </el-form-item>
+            <el-form-item label="辐射亮度8~14μm" label-width="130px" prop="radiance2">
+              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="radiationForm.radiance2" />
+            </el-form-item>
+          </el-row>
+        </el-form>
+      </div>
+    </div>
+    <div class="box" v-if="TIForm && Object.keys(TIForm).length > 0">
+      <span class="title">热像仪测量数据</span>
+      <el-form ref="TIForm" :model="TIForm" size="mini" :rules="rules" label-width="80px">
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="型号" prop="model">
+            <el-input v-model="TIForm.model" placeholder="请输入型号" />
+          </el-form-item>
+          <el-form-item label="镜头视场角" label-width="90px" prop="lensFView">
+            <el-select v-model="TIForm.lensFView" placeholder="请选择镜头视场角">
+              <el-option v-for="item in lensFViewOptions" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="滤镜编号" prop="filterNo">
+            <el-select v-model="TIForm.filterNo" placeholder="请选择滤镜编号">
+              <el-option v-for="item in filterNoOptions" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="帧率" prop="fps">
+            <el-select v-model="TIForm.fps" placeholder="请选择帧率">
+              <el-option v-for="item in fpsOptions" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select> </el-form-item><el-form-item label="波段" prop="spectralBand">
+            <el-select v-model="TIForm.spectralBand" placeholder="请选择波段">
+              <el-option v-for="item in spectralBandOptions" :key="item.value" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="积分时间" prop="integrationTime">
+            <el-input v-model.number="TIForm.integrationTime" placeholder="请输入积分时间(单位:s)" />
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="温度标定" prop="tempCal">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.tempCal" />
+          </el-form-item>
+          <el-form-item label="辐射亮度" prop="radiance">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.radiance" :isShowViev="true"
+              v-on:fileView="fileView2" />
+          </el-form-item>
+          <el-form-item label="辐射照度" prop="radIllumination">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.radIllumination"
+              :isShowViev="true" v-on:fileView="fileView" />
+          </el-form-item>
+        </el-row>
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="辐射温度" prop="radTemp">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.radTemp" :isShowViev="true"
+              v-on:fileView="fileView" />
+          </el-form-item>
+          <el-col :span="7"></el-col>
+          <el-col :span="7"></el-col>
+        </el-row>
+      </el-form>
+    </div>
+    <div class="box" v-if="TransmittanceForm">
+      <span class="title">透过率数据</span>
+      <el-form ref="TransmittanceForm" :model="TransmittanceForm" :rules="rules" label-width="80px">
+        <el-row type="flex" justify="space-around">
+          <el-form-item label="原始数据" prop="rawData">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TransmittanceForm.rawData" />
+          </el-form-item>
+          <el-form-item label="透过率曲线3~5μm" label-width="130px" prop="curve1">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" :isShowViev="true" v-on:fileView="fileView"
+              v-model="TransmittanceForm.curve1" />
+          </el-form-item>
+          <el-form-item label="透过率曲线8~14μm" label-width="135px" prop="curve2">
+            <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TransmittanceForm.curve2"
+              :isShowViev="true" v-on:fileView="fileView" />
+          </el-form-item>
+        </el-row>
+      </el-form>
+    </div>
+  </div>
+</template>
+
+<script>
+import { listEngineModel } from "@/api/meas/engineModel";
+import { angleOption } from "@/api/meas/angle";
+import { statusOption } from "@/api/meas/status";
+import { listMeasBatch } from "@/api/meas/measBatch";
+export default {
+  name: "dialogContent",
+  props: {
+    form: {
+      type: Object,
+      default: null,
+    },
+    radiationForm: {
+      type: Object,
+      default: null,
+    },
+    TIForm: {
+      type: Object,
+      default: null,
+    },
+    TransmittanceForm: {
+      type: Object,
+      default: null,
+    },
+    envSaveBtn: {
+      type: Boolean,
+      default: false,
+    },
+    isCheck:{
+      type: Boolean,
+      default: false,
+    }
+  },
+  data() {
+    return {
+      addDialogVisible: false,
+      addMeasVisible: false,
+      engineModelList: [],
+      measureBatchOptions: [],
+      angleOptions: [],
+      engineStatusOptions: [],
+      // 热像仪测试
+      lensFViewOptions: [],
+      filterNoOptions: [],
+      fpsOptions: [],
+      spectralBandOptions: [],
+      // 表单校验和验证
+      rules: {
+        measurementBatchId: [
+          { required: true, message: "测量批次id不能为空", trigger: "blur" },
+        ],
+        engineStatus: [
+          { required: true, message: "发动机状态不能为空", trigger: "change" },
+        ],
+        angle: [{ required: true, message: "角度不能为空", trigger: "change" }],
+        testDistance: [
+          {
+            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
+            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
+        ],
+        time: [{ required: true, message: "时间不能为空", trigger: "change" }],
+        location: [
+          { required: true, message: "地点不能为空", trigger: "blur" },
+          {
+            min: 0,
+            max: 50,
+            message: "长度在 0 到 50 个字符",
+            trigger: "blur",
+          },
+        ],
+        atmosPress: [
+          {
+            pattern:
+              /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1[0-4]\d{2}(\.\d{1,2})?|1500(\.00?)?)$/,
+            message: "请输入0.00-1500.00pa之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
+        ],
+        temperature: [
+          {
+            pattern: /^(230|2[3-9]\d|30\d|31\d|320)(\.\d{2})?$/,
+            message: "请输入230.00-320.00K之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
+        ],
+        windSpeed: [
+          {
+            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
+            message: "请输入0.00-1000.00m/s之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
+        ],
+        humidity: [
+          {
+            pattern: /(^(\d|[1-9]\d)(\.\d{1,2})?$)|(^100$)/,
+            message: "请输入0.00-100.00%之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
+        ],
+        concentration: [
+          {
+            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
+            message: "请输入0.00-1000.00mol之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
+        ],
+      },
+      formData:this.form,
+      radiationData:this.radiationForm,
+      TIData:this.TIForm,
+      TransmittanceData:this.TransmittanceForm,
+      checkShow:this.isCheck
+    };
+  },
+  created() {
+    this.getListEngineModel();
+    this.getAngleOption();
+    this.getStatusOption();
+  },
+  watch:{
+    radiationForm:{
+      handler(newVal) {
+        this.radiationData=newVal;
+      },
+      immediate: true
+    },
+    form:{
+      handler(newVal) {
+        this.formData=newVal;
+      },
+      immediate: true
+    },
+    TIForm:{
+      handler(newVal) {
+        this.TIData=newVal;
+      },
+      immediate: true
+    },
+    TransmittanceForm:{
+      handler(newVal) {
+        this.TransmittanceData=newVal;
+      },
+      immediate: true
+    },
+    isCheck:{
+      handler(newVal) {
+        this.checkShow=newVal;
+      },
+    }
+  },
+  methods: {
+    // 获取发电机List
+    getListEngineModel() {
+      this.loading = true;
+      const data = {};
+      listEngineModel(data).then((response) => {
+        this.engineModelList = response.rows;
+        this.loading = false;
+      });
+    },
+    // 获取测量批次List
+    getListMeasBatch() {
+      const data = {};
+      this.loading = true;
+      listMeasBatch(data).then((response) => {
+        this.measureBatchOptions = response.rows;
+        this.loading = false;
+      });
+    },
+    // 获取角度Option
+    getAngleOption() {
+      this.loading = true;
+      angleOption().then((response) => {
+        this.angleOptions = response.data;
+        this.loading = false;
+      });
+    },
+    // 获取状态Option
+    getStatusOption() {
+      this.loading = true;
+      statusOption().then((response) => {
+        this.engineStatusOptions = response.data;
+        this.loading = false;
+      });
+    },
+    getFileName(name) {
+      if (name.lastIndexOf("/") > -1) {
+        const newName = name.slice(name.lastIndexOf("/") + 1)
+        const names = newName.split(".")
+        if ((names.size = 2) && (names[0].length > 19)) {
+          return newName.substring(0, names[0].length - 19) + '.' + names[1]
+        } else {
+          return newName
+        }
+      } else {
+        return "";
+      }
+    },
+    // 点击增加按钮
+    onClickBtn(type) {
+      if (type === "engine") this.addDialogVisible = true;
+      else if (type === "measBatch") this.addMeasVisible = true;
+    },
+    // 环境参数保存
+    envDataSave() {
+      console.log("this.$refs",this.$refs["form"]);
+      this.$emit('env-data-save',this.$refs["form"])
+    },
+    fileView() {
+      this.$emit('fileView')
+    },
+    fileView2() {
+      this.$emit('fileView2')
+    }
+  },
+};
+</script>
+<style scoped lang="scss">
+.box {
+  border: 1px solid #dcdfe6;
+  border-radius: 10px;
+  padding: 20px 15px 0px 15px;
+  margin-top: 20px;
+  position: relative;
+
+  .title {
+    padding: 10px;
+    background-color: white;
+    position: absolute;
+    top: -20px;
+    font-weight: 700;
+    font-size: 1rem;
+  }
+}
+::v-deep .el-upload--picture-card{
+  width:80px;
+  height:80px;
+  line-height:86px
+}
+::v-deep .el-upload-list--picture-card .el-upload-list__item{
+  width:80px;
+  height:80px;
+}
+</style>

+ 140 - 126
meas_web/src/views/meas/dataResults/index.vue

@@ -1,17 +1,16 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
-      <el-form-item label="测量批次" prop="measurementBatch" >
+      <el-form-item label="测量批次" prop="measurementBatch">
         <el-input v-model="queryParams.measurementBatch" placeholder="请输入测量批次" clearable
           @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="发动机型号" prop="model" >
-        <el-input v-model="queryParams.model" placeholder="请输入发动机型号" clearable
-          @keyup.enter.native="handleQuery" />
+      <el-form-item label="发动机型号" prop="model">
+        <el-input v-model="queryParams.model" placeholder="请输入发动机型号" clearable @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="发动机状态" prop="engineStatus" >
+      <el-form-item label="发动机状态" prop="engineStatus">
         <el-select v-model="queryParams.engineStatus" placeholder="请选择发动机状态" clearable>
-          <el-option v-for="(item,index) in engineStatusOptions" :key="index" :label="item" :value="item" />
+          <el-option v-for="(item, index) in engineStatusOptions" :key="index" :label="item" :value="item" />
         </el-select>
       </el-form-item>
       <el-form-item label="角度" prop="angle">
@@ -27,56 +26,24 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['meas:dataResults:edit']"
-        >修改</el-button>
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          v-hasPermi="['meas:dataResults:edit']">修改</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['meas:dataResults:remove']"
-        >删除</el-button>
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          v-hasPermi="['meas:dataResults:remove']">删除</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['meas:dataResults:export']"
-        >导出</el-button>
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
+          v-hasPermi="['meas:dataResults:export']">导出</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-view"
-          size="mini"
-          :disabled="single"
-          v-hasPermi="['meas:dataResults:edit']"
-        >光谱可视化</el-button>
+        <el-button type="primary" plain icon="el-icon-view" size="mini" :disabled="single"
+          v-hasPermi="['meas:dataResults:edit']">光谱可视化</el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-view"
-          size="mini"
-          :disabled="single"
-          v-hasPermi="['meas:dataResults:edit']"
-        >波段可视化</el-button>
+        <el-button type="danger" plain icon="el-icon-view" size="mini" :disabled="single"
+          v-hasPermi="['meas:dataResults:edit']">波段可视化</el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
@@ -85,59 +52,52 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="测量批次" align="center" prop="measurementBatch" />
       <el-table-column label="发动机型号" align="center" prop="model" />
-      <el-table-column label="发动机状态" align="center" prop="engineStatus" >
+      <el-table-column label="发动机状态" align="center" prop="engineStatus">
       </el-table-column>
-      <el-table-column label="发动机角度" align="center" prop="angle" >
+      <el-table-column label="发动机角度" align="center" prop="angle">
       </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-view" 
-            v-hasPermi="['meas:envData:edit']">查看</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['meas:dataResults:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['meas:dataResults:remove']"
-          >删除</el-button>
+          <el-button size="mini" type="text" icon="el-icon-view" v-hasPermi="['meas:envData:edit']"
+            @click="handleUpdate(scope.row)">查看</el-button>
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            v-hasPermi="['meas:dataResults:edit']">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-document">计算</el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
 
     <!-- 添加或修改数据结果对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="150px">
-        <el-form-item label="测量环境id" label-width="90px" prop="measurementBatchId">
-          <el-input v-model="form.measurementBatchId" placeholder="请输入测量环境id" />
-        </el-form-item>
-        <el-form-item label="光谱辐射强度3~5μm" prop="specIrr1">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.specIrr1"/>
-        </el-form-item>
-        <el-form-item label="光谱辐射强度8~14μm" prop="specIrr2">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.specIrr2"/>
-        </el-form-item>
-        <el-form-item label="波段辐射强度3~5μm" prop="specBandIrr1">
-          <el-input v-model="form.specBandIrr1" placeholder="请输入波段辐射强度3~5μm" />
-        </el-form-item>
-        <el-form-item label="波段辐射强度8~14μm" prop="specBandIrr2">
-          <el-input v-model="form.specBandIrr2" placeholder="请输入波段辐射强度8~14μm" />
-        </el-form-item>
-      </el-form>
+    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body>
+      <dialogContent :form="form" />
+      <el-row type="flex" justify="space-around">
+        <el-button size="mini" type="success" style="margin-top: 20px">计算数据</el-button>
+      </el-row>
+      
+      <div class="box">
+        <span class="title">计算结果</span>
+        <el-form ref="resultForm" :model="resultForm" size="mini" :rules="rules" label-width="150px">
+          <el-row type="flex" justify="space-around">
+            <el-form-item label="光谱辐射强度3~5μm" prop="specIrr1">
+              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="resultForm.specIrr1" />
+            </el-form-item>
+            <el-form-item label="光谱辐射强度8~14μm" prop="specIrr2">
+              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="resultForm.specIrr2" />
+            </el-form-item>
+          </el-row>
+          <el-row type="flex" justify="space-around">
+            <el-form-item label="波段辐射强度3~5μm" prop="specBandIrr1">
+              <el-input v-model="resultForm.specBandIrr1" placeholder="请输入波段辐射强度3~5μm" />
+            </el-form-item>
+            <el-form-item label="波段辐射强度8~14μm" prop="specBandIrr2">
+              <el-input v-model="resultForm.specBandIrr2" placeholder="请输入波段辐射强度8~14μm" />
+            </el-form-item>
+          </el-row>
+        </el-form>
+      </div>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -147,18 +107,27 @@
 </template>
 
 <script>
-import { listDataResults, getDataResults, delDataResults, updateDataResults } from "@/api/meas/dataResults";
+import {
+  listDataResults,
+  getDataResults,
+  delDataResults,
+  updateDataResults,
+  getResultByEnvData
+} from "@/api/meas/dataResults";
 import { angleOption } from "@/api/meas/angle";
 import { statusOption } from "@/api/meas/status";
+import dialogContent from "@/views/meas/components/dialogContent";
+import { getEnvData } from "@/api/meas/envData";
 
 export default {
   name: "DataResults",
+  components: { dialogContent },
   data() {
     return {
       // 遮罩层
       loading: true,
       // 选中数组
-      ids: [],
+      measurementBatchIds: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -185,17 +154,26 @@ export default {
       },
       // 表单参数
       form: {},
+      resultForm:{},
       // 表单校验
       rules: {
-        measurementBatchId:[
-          { required: true, message: "测量环境id不能为空"},
-          {type: 'number', message: '测量环境id必须为数字',trigger: 'blur'}
+        measurementBatchId: [
+          { required: true, message: "测量环境id不能为空" },
+          { type: "number", message: "测量环境id必须为数字", trigger: "blur" },
         ],
         specBandIrr1: [
-          { pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/, message: '请输入0.00-1000.00之间的数字,最多可保留两位小数',trigger: 'blur'}
+          {
+            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
+            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
         ],
         specBandIrr2: [
-          { pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/, message: '请输入0.00-1000.00之间的数字,最多可保留两位小数',trigger: 'blur'}
+          {
+            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
+            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
+            trigger: "blur",
+          },
         ],
       },
       // 发动机状态
@@ -213,7 +191,7 @@ export default {
     /** 查询数据结果列表 */
     getList() {
       this.loading = true;
-      listDataResults(this.queryParams).then(response => {
+      listDataResults(this.queryParams).then((response) => {
         this.dataResultsList = response.rows;
         this.total = response.total;
         this.loading = false;
@@ -242,19 +220,26 @@ export default {
     },
     // 表单重置
     reset() {
-      this.form = {
+      this.resultForm = {
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null,
+        remark: null,
         id: null,
         measurementBatchId: null,
+        model: null,
+        geometryFiles: null,
+        geometryImage: null,
+        measurementBatch: null,
+        engineStatus: null,
+        angle: null,
         specIrr1: null,
         specIrr2: null,
         specBandIrr1: null,
-        specBandIrr2: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null
+        specBandIrr2: null
       };
-      this.resetForm("form");
+      this.resetForm("resultForm");
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -268,26 +253,29 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
+      this.measurementBatchIds = selection.map((item) => item.measurementBatchId);
+      this.single = selection.length !== 1;
+      this.multiple = !selection.length;
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getDataResults(id).then(response => {
+      const id = row.measurementBatchId || this.measurementBatchIds;
+      getEnvData(id).then((response) => {
         this.form = response.data;
+      });
+      getResultByEnvData(id).then((response) => {
+        this.resultForm = response.data;
         this.open = true;
         this.title = "修改数据结果";
       });
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["resultForm"].validate((valid) => {
         if (valid) {
-          if (this.form.id != null) {
-            updateDataResults(this.form).then(response => {
+          if (this.resultForm.measurementBatchId != null) {
+            updateDataResults(this.resultForm).then((response) => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
@@ -298,20 +286,46 @@ export default {
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除数据结果编号为"' + ids + '"的数据项?').then(function() {
-        return delDataResults(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
+      const ids = row.measurementBatchId || this.measurementBatchIds;
+      this.$modal
+        .confirm('是否确认删除数据结果编号为"' + ids + '"的数据项?')
+        .then(function () {
+          return delDataResults(ids);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => { });
     },
     /** 导出按钮操作 */
     handleExport() {
-      this.download('meas/dataResults/export', {
-        ...this.queryParams
-      }, `dataResults_${new Date().getTime()}.xlsx`)
-    }
-  }
+      this.download(
+        "meas/dataResults/export",
+        {
+          ...this.queryParams,
+        },
+        `dataResults_${new Date().getTime()}.xlsx`
+      );
+    },
+  },
 };
 </script>
+<style scoped lang="scss">
+.box {
+  border: 1px solid #dcdfe6;
+  border-radius: 10px;
+  padding: 20px 15px 0px 15px;
+  margin-top: 20px;
+  position: relative;
+
+  .title {
+    padding: 10px;
+    background-color: white;
+    position: absolute;
+    top: -20px;
+    font-weight: 700;
+    font-size: 1rem;
+  }
+}
+</style>

+ 18 - 13
meas_web/src/views/meas/engineModel/index.vue

@@ -63,22 +63,21 @@
 
     <el-table v-loading="loading" :data="engineModelList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="编号" align="center" prop="id" />
       <el-table-column label="发动机型号" align="center" prop="model" />
-      <el-table-column label="几何模型文件" align="center" prop="geometryFiles" />
-      <el-table-column label="几何模型图片" align="center" prop="geometryImage">
+      <!-- <el-table-column label="几何模型图片" align="center" prop="geometryImage">
         <template slot-scope="scope">
           <image-preview :src="scope.row.geometryImage" :width="50" :height="50"/>
         </template>
-      </el-table-column>
-      <!-- <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
-        </template>
       </el-table-column> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="checkView(scope.row)"
+            v-hasPermi="['meas:engineModel:edit']"
+          >查看</el-button>
           <el-button
             size="mini"
             type="text"
@@ -106,8 +105,8 @@
     />
 
     <!-- 添加或修改发动机型号对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+    <el-dialog :title="title" :visible.sync="open"  width="500px" append-to-body>
+      <el-form ref="form" :model="form" :disabled="isCheck" :rules="rules" label-width="100px">
         <el-form-item label="发动机型号" prop="model">
           <el-input v-model="form.model" placeholder="请输入发动机型号" />
         </el-form-item>
@@ -118,7 +117,7 @@
           <image-upload  :fileSize="0" :limit="1" :fileType="['jpg']" v-model="form.geometryImage"/>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div v-if="!isCheck" slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -161,6 +160,7 @@ export default {
       },
       // 表单参数
       form: {},
+      isCheck:false,
       // 表单校验
       rules: {
         model: [
@@ -224,6 +224,11 @@ export default {
       this.open = true;
       this.title = "添加发动机型号";
     },
+    // 查看
+    checkView(row){
+      this.isCheck=true
+      this.handleUpdate(row)
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
@@ -231,7 +236,7 @@ export default {
       getEngineModel(id).then(response => {
         this.form = response.data;
         this.open = true;
-        this.title = "修改发动机型号";
+        this.title = this.isCheck?'查看发动机型号':"修改发动机型号";
       });
     },
     /** 提交按钮 */

+ 24 - 306
meas_web/src/views/meas/envData/index.vue

@@ -49,17 +49,11 @@
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="测量批次" align="center" prop="measurementBatch" />
       <el-table-column label="发动机型号" align="center" prop="model" />
-      <el-table-column label="发动机状态" align="center" prop="engineStatus" >
-        <template slot-scope="scope">
-          <el-tag>{{ scope.row.engineStatus }}</el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="发动机角度" align="center" prop="angle" >
-      </el-table-column>
+      <el-table-column label="发动机状态" align="center" prop="engineStatus" />
+      <el-table-column label="发动机角度" align="center" prop="angle" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-view" 
-            v-hasPermi="['meas:envData:edit']">查看</el-button>
+          <el-button size="mini" type="text" icon="el-icon-view" @click="checkView(scope.row)" v-hasPermi="['meas:envData:edit']">查看</el-button>
           <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
             v-hasPermi="['meas:envData:edit']">修改</el-button>
           <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@@ -72,223 +66,9 @@
       @pagination="getList" />
 
     <!-- 添加或修改测量环境数据对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body>
-      <el-form ref="form" :model="engineForm" :rules="rules" size="mini" label-width="80px">
-        <el-row type="flex" justify="space-around">
-          <el-form-item label="发动机型号" prop="model" label-width="90px">
-            <el-select v-model="engineForm.model" placeholder="请选择发动机型号">
-              <el-option v-for="item in engineModelList" :key="item.id" :label="item.model" :value="item.id">
-              </el-option>
-              <el-option :value="undefined" disabled style="cursor: pointer">
-                <el-button type="text" @click="onClickBtn('engine')"><i class="el-icon-plus"></i> 增加发动机型号</el-button>
-              </el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="几何模型" prop="geometryFiles">
-            <file-upload :fileSize="0" :limit="1" :fileType="['x_t', 'str']" v-model="engineForm.geometryFiles" />
-          </el-form-item>
-          <el-form-item label="" prop="geometryImage">
-            <image-upload :fileSize="0" :limit="1" :fileType="['jpg']" v-model="engineForm.geometryImage"
-              :isPicCard="false" />
-          </el-form-item>
-        </el-row>
-      </el-form>
-      <el-form ref="form" :model="form" :rules="rules" size="mini" label-width="80px">
-        <el-form-item label="测量批次" prop="measurementBatch" style="margin-left: 5%">
-          <el-select v-model="form.measurementBatchId" placeholder="请选择测量批次">
-            <el-option v-for="item in measureBatchOptions" :key="item.id" :label="item.measurementBatch"
-              :value="item.id">
-              <span style="float: left">{{ item.id }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{
-      item.measurementBatch
-    }}</span>
-            </el-option>
-            <el-option :value="undefined" disabled style="cursor: pointer">
-              <el-button type="text" @click="onClickBtn('measBatch')"><i class="el-icon-plus"></i> 增加测量批次</el-button>
-            </el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div class="box">
-        <span class="title">环境参数</span>
-        <el-form ref="form" :model="form" size="mini" :rules="rules" label-width="80px">
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="发动机状态" label-width="100px" prop="engineStatus">
-              <el-select v-model="form.engineStatus" placeholder="请选择发动机状态">
-                <el-option v-for="item in engineStatusOptions" :key="item.value" :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="角度" prop="angle">
-              <el-select v-model="form.angle" placeholder="请输入角度">
-                <el-option v-for="item in angleOptions" :key="item.value" :label="item.label" :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="涡轮后温度" prop="turbinePostTemp" label-width="90px">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.turbinePostTemp" />
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="测试距离" prop="testDistance">
-              <el-input v-model="form.testDistance" placeholder="请输入测试距离" />
-            </el-form-item>
-            <el-form-item label="时间" prop="time">
-              <el-date-picker clearable v-model="form.time" type="datetime" value-format="yyyy-MM-dd HH:mm"
-                format="yyyy-MM-dd HH:mm" placeholder="请选择时间">
-              </el-date-picker>
-            </el-form-item>
-            <el-form-item label="地点" prop="location">
-              <el-input v-model="form.location" placeholder="请输入地点" />
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="大气压" prop="atmosPress">
-              <el-input v-model="form.atmosPress" placeholder="请输入大气压(单位:pa)" />
-            </el-form-item>
-            <el-form-item label="温度" prop="temperature">
-              <el-input v-model="form.temperature" placeholder="请输入温度(单位:K)" />
-            </el-form-item>
-            <el-form-item label="风速" prop="windSpeed">
-              <el-input v-model="form.windSpeed" placeholder="请输入风速(单位:m/s)" />
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="湿度" prop="humidity">
-              <el-input v-model="form.humidity" placeholder="请输入湿度(单位:%)" />
-            </el-form-item>
-            <el-form-item label="CO₂浓度" prop="concentration">
-              <el-input v-model="form.concentration" placeholder="请输入浓度(单位:mol)" />
-            </el-form-item>
-            <el-col :span="7">
-              <el-button type="primary" size="mini" @click="envDataSave">保 存</el-button>
-            </el-col>
-          </el-row>
-        </el-form>
-      </div>
-      <div class="box">
-        <span class="title">光谱辐射计测量数据</span>
-        <el-form ref="radiationForm" size="mini" :model="radiationForm" :rules="rules" :disabled="disabled"
-          label-width="80px">
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="型号" prop="model">
-              <el-input v-model="radiationForm.model" placeholder="请输入型号" />
-            </el-form-item>
-            <el-form-item label="镜头视场角" prop="lensFView" label-width="90px">
-              <el-input v-model="radiationForm.lensFView" placeholder="请输入镜头视场角(单位:mrad)" />
-            </el-form-item>
-            <el-form-item label="增益" prop="gain">
-              <el-input v-model.number="radiationForm.gain" placeholder="请输入增益(单位:x)" />
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="背景数据" prop="backgroundData">
-              <file-upload :fileSize="0" :limit="1" :fileType="['lgm']" v-model="radiationForm.backgroundData" />
-            </el-form-item>
-            <el-form-item label="标定温度" prop="calTemp">
-              <el-input v-model="radiationForm.calTemp" placeholder="请输入标定温度" />
-            </el-form-item>
-            <el-form-item label="标定曲线" prop="calCurve">
-              <file-upload :fileSize="0" :limit="5" :fileType="['txt']" :isShowViev="true"
-                v-model="radiationForm.calCurve" v-on:fileView="fileView" />
-            </el-form-item>
-          </el-row>
-        </el-form>
-        <div class="box" style="margin-bottom: 15px">
-          <span class="title">目标数据</span>
-          <el-form ref="radiationForm" size="mini" :model="radiationForm" :disabled="disabled" :rules="rules"
-            label-width="80px">
-            <el-row type="flex" justify="space-around">
-              <el-form-item label="原始数据" prop="rawData">
-                <file-upload :fileSize="0" :limit="5" :fileType="['txt']" v-model="radiationForm.rawData" />
-              </el-form-item>
-              <el-form-item label="辐射亮度3~5μm" label-width="130px" prop="radiance1">
-                <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="radiationForm.radiance1" :isShowViev="true" v-on:fileView="fileView" />
-              </el-form-item>
-              <el-form-item label="辐射亮度8~14μm" label-width="130px" prop="radiance2">
-                <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="radiationForm.radiance2" />
-              </el-form-item>
-            </el-row>
-          </el-form>
-        </div>
-      </div>
-      <div class="box">
-        <span class="title">热像仪测量数据</span>
-        <el-form ref="TIForm" :model="TIForm" size="mini" :rules="rules" :disabled="disabled" label-width="80px">
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="型号" prop="model">
-              <el-input v-model="TIForm.model" placeholder="请输入型号" />
-            </el-form-item>
-            <el-form-item label="镜头视场角" label-width="90px" prop="lensFView">
-              <el-select v-model="TIForm.lensFView" placeholder="请选择镜头视场角">
-                <el-option v-for="item in lensFViewOptions" :key="item.value" :label="item.label" :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="滤镜编号" prop="filterNo">
-              <el-select v-model="TIForm.filterNo" placeholder="请选择滤镜编号">
-                <el-option v-for="item in filterNoOptions" :key="item.value" :label="item.label" :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="帧率" prop="fps">
-              <el-select v-model="TIForm.fps" placeholder="请选择帧率">
-                <el-option v-for="item in fpsOptions" :key="item.value" :label="item.label" :value="item.value">
-                </el-option>
-              </el-select> </el-form-item><el-form-item label="波段" prop="spectralBand">
-              <el-select v-model="TIForm.spectralBand" placeholder="请选择波段">
-                <el-option v-for="item in spectralBandOptions" :key="item.value" :label="item.label"
-                  :value="item.value">
-                </el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item label="积分时间" prop="integrationTime">
-              <el-input v-model.number="TIForm.integrationTime" placeholder="请输入积分时间(单位:s)" />
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="温度标定" prop="tempCal">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.tempCal" />
-            </el-form-item>
-            <el-form-item label="辐射亮度" prop="radiance">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.radiance" :isShowViev="true"
-                v-on:fileView="fileView2" />
-            </el-form-item>
-            <el-form-item label="辐射照度" prop="radIllumination">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.radIllumination" :isShowViev="true" v-on:fileView="fileView"/>
-            </el-form-item>
-          </el-row>
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="辐射温度" prop="radTemp">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIForm.radTemp" :isShowViev="true" v-on:fileView="fileView"/>
-            </el-form-item>
-            <el-col :span="7"></el-col>
-            <el-col :span="7"></el-col>
-          </el-row>
-        </el-form>
-      </div>
-      <div class="box">
-        <span class="title">透过率数据</span>
-        <el-form ref="TransmittanceForm" :model="TransmittanceForm" :rules="rules" :disabled="disabled"
-          label-width="80px">
-          <el-row type="flex" justify="space-around">
-            <el-form-item label="原始数据" prop="rawData">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TransmittanceForm.rawData" />
-            </el-form-item>
-            <el-form-item label="透过率曲线3~5μm" label-width="130px" prop="curve1">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" :isShowViev="true" v-on:fileView="fileView" v-model="TransmittanceForm.curve1" />
-            </el-form-item>
-            <el-form-item label="透过率曲线8~14μm" label-width="135px" prop="curve2">
-              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TransmittanceForm.curve2" :isShowViev="true" v-on:fileView="fileView"/>
-            </el-form-item>
-          </el-row>
-        </el-form>
-      </div>
-
-      <div slot="footer" class="dialog-footer">
+    <el-dialog  :title="title" :visible.sync="open" width="70%" append-to-body>
+      <dialogContent ref="dialogContent" :form="form" :TIForm="TIForm" :TransmittanceForm="TransmittanceForm" :envSaveBtn="true" :radiationForm="radiationForm" :isCheck="isCheck" @env-data-save="envDataSave"/>
+      <div v-if="!isCheck" slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
@@ -367,10 +147,11 @@ import {
 import { angleOption } from "@/api/meas/angle";
 import { statusOption,getStatus } from "@/api/meas/status";
 import ECharts from "./ECharts.vue";
+import dialogContent from "@/views/meas/components/dialogContent";
 
 export default {
   name: "EnvData",
-  components: { ECharts},
+  components: { ECharts,dialogContent},
   data() {
     return {
       // 遮罩层
@@ -411,75 +192,13 @@ export default {
         humidity: null,
         concentration: null,
       },
+      rules:{},
+      isCheck:false,
       // 表单参数
       form: {},
       radiationForm: {},
       TIForm: {},
       TransmittanceForm: {},
-      engineForm: {},
-      // 表单校验和验证
-      rules: {
-        measurementBatchId: [
-          { required: true, message: "测量批次id不能为空", trigger: "blur" },
-        ],
-        engineStatus: [
-          { required: true, message: "发动机状态不能为空", trigger: "change" },
-        ],
-        angle: [{ required: true, message: "角度不能为空", trigger: "change" }],
-        testDistance: [
-          {
-            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-        time: [{ required: true, message: "时间不能为空", trigger: "change" }],
-        location: [
-          { required: true, message: "地点不能为空", trigger: "blur" },
-          {
-            min: 0,
-            max: 50,
-            message: "长度在 0 到 50 个字符",
-            trigger: "blur",
-          },
-        ],
-        atmosPress: [
-          {
-            pattern:
-              /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1[0-4]\d{2}(\.\d{1,2})?|1500(\.00?)?)$/,
-            message: "请输入0.00-1500.00pa之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-        temperature: [
-          {
-            pattern: /^(230|2[3-9]\d|30\d|31\d|320)(\.\d{2})?$/,
-            message: "请输入230.00-320.00K之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-        windSpeed: [
-          {
-            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00m/s之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-        humidity: [
-          {
-            pattern: /(^(\d|[1-9]\d)(\.\d{1,2})?$)|(^100$)/,
-            message: "请输入0.00-100.00%之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-        concentration: [
-          {
-            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00mol之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-      },
       // 发动机状态
       engineStatusOptions: [],
       // 发动机角度
@@ -559,9 +278,9 @@ export default {
       this.reset();
     },
     // 保存环境参数
-    envDataSave() {
+    envDataSave(val) {
       // 保存环境参数,返回一个环境数据ID
-      this.$refs["form"].validate((valid) => {
+      val.validate((valid) => {
         console.log("11", valid, this.form);
         if (valid) {
           if (this.form.id != null) {
@@ -629,11 +348,6 @@ export default {
         updateBy: null,
         updateTime: null,
       };
-      this.engineForm = {
-        model: null,
-        geometryFiles: null,
-        geometryImage: null,
-      };
       this.radiationForm = {
         model: null,
         lensFView: null,
@@ -663,7 +377,6 @@ export default {
         curve2: null,
       };
       this.resetForm("form");
-      this.resetForm("engineForm");
       this.resetForm("radiationForm");
       this.resetForm("TIForm");
       this.resetForm("TransmittanceForm");
@@ -690,22 +403,27 @@ export default {
       this.open = true;
       this.title = "添加测量环境数据";
     },
+    checkView(row){
+      this.handleUpdate(row)
+      this.isCheck=true
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids;
-      // getEngineModelByEnvData(id).then((response) => {
-      //   this.engineForm = response.data
-      // });
+      this.isCheck=false
+      const id = row.measurementBatchId;
       getRadiationByEnvData(id).then((response) => {
         this.radiationForm = response.data;
+        console.log("this.radiationForm",this.radiationForm);
       });
       getTIDataByEnvData(id).then((response) => {
         this.TIForm = response.data;
+        console.log("this.TIForm",this.TIForm);
+      });
+      getTRateByEnvData(id).then((response) => {
+        this.TransmittanceForm = response.data;
+        console.log("this.TransmittanceForm",this.TransmittanceForm);
       });
-      // getTRateByEnvData(id).then((response) => {
-      //   this.TransmittanceForm = response.data;
-      // });
       getEnvData(id).then((response) => {
         this.form = response.data;
         this.open = true;

+ 35 - 9
meas_web/src/views/meas/measBatch/index.vue

@@ -1,18 +1,19 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="发动机型号ID" label-width="100px" prop="engineId">
+      
+      <el-form-item label="测量批次" prop="measurementBatch">
         <el-input
-          v-model="queryParams.engineId"
-          placeholder="请输入发动机型号ID"
+          v-model="queryParams.measurementBatch"
+          placeholder="请输入测量批次"
           clearable
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="测量批次" prop="measurementBatch">
+      <el-form-item label="发动机型号" label-width="100px" prop="engineModel">
         <el-input
-          v-model="queryParams.measurementBatch"
-          placeholder="请输入测量批次"
+          v-model="queryParams.engineModel"
+          placeholder="请输入发动机型号"
           clearable
           @keyup.enter.native="handleQuery"
         />
@@ -71,12 +72,19 @@
 
     <el-table v-loading="loading" :data="measBatchList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="发动机型号ID" align="center" prop="engineId" />
+      
       <el-table-column label="测量批次" align="center" prop="measurementBatch" />
+      <el-table-column label="发动机型号" align="center" prop="engineModel" />
       <!-- <el-table-column label="创建人" align="center" prop="createBy" /> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['meas:measBatch:edit']"
+          >查看</el-button>
           <el-button
             size="mini"
             type="text"
@@ -108,7 +116,7 @@
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="发动机型号ID" label-width="110px" prop="engineId">
           <!-- <el-input v-model.number="form.engineId" placeholder="请输入发动机型号ID" /> -->
-          <el-select v-model="form.engineId" placeholder="请选择发动机型号ID">
+          <el-select v-model="form.engineId" placeholder="请选择发动机型号ID" @change="engineChange">
             <el-option v-for="item in engineOptions" :key="item.id" :label="item.model"
               :value="item.id">
               <span style="float: left">{{ item.id }}</span>
@@ -192,6 +200,24 @@ export default {
         this.loading = false;
       });
     },
+    engineChange(val){
+      let obj = {};
+      obj = this.engineOptions.find((item)=>{
+          return item.id === val;
+      });
+      this.form.measurementBatch=this.getTime()+'-'+obj.model
+    },
+    getTime() {
+      const now = new Date();
+      const year = now.getFullYear();
+      const month = ('0' + (now.getMonth() + 1)).slice(-2);
+      const day = ('0' + now.getDate()).slice(-2);
+      const hour = ('0' + now.getHours()).slice(-2);
+      const minute = ('0' + now.getMinutes()).slice(-2);
+      const second = ('0' + now.getSeconds()).slice(-2);
+      const time = year + month + day + hour + minute + second;
+      return time;
+    },
     // 取消按钮
     cancel() {
       this.open = false;

+ 61 - 98
meas_web/src/views/meas/radiation/index.vue

@@ -1,21 +1,22 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="测量环境id" label-width="90px" prop="measurementBatchId">
-        <el-input v-model="queryParams.measurementBatchId" placeholder="请输入测量环境id" clearable
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
+      <el-form-item label="测量批次" prop="measurementBatch">
+        <el-input v-model="queryParams.measurementBatch" placeholder="请输入测量批次" clearable
           @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="型号" prop="model">
-        <el-input v-model="queryParams.model" placeholder="请输入型号" clearable @keyup.enter.native="handleQuery" />
+      <el-form-item label="发动机型号" prop="model">
+        <el-input v-model="queryParams.model" placeholder="请输入发动机型号" clearable @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label-width="90px" label="镜头视场角" prop="lensFView">
-        <el-input v-model="queryParams.lensFView" placeholder="请输入镜头视场角" clearable @keyup.enter.native="handleQuery" />
+      <el-form-item label="发动机状态" prop="engineStatus">
+        <el-select v-model="queryParams.engineStatus" placeholder="请选择发动机状态" clearable>
+          <el-option v-for="(item, index) in engineStatusOptions" :key="index" :label="item" :value="item" />
+        </el-select>
       </el-form-item>
-      <el-form-item label="增益" prop="gain">
-        <el-input v-model="queryParams.gain" placeholder="请输入增益" clearable @keyup.enter.native="handleQuery" />
-      </el-form-item>
-      <el-form-item label="标定温度" prop="calTemp">
-        <el-input v-model="queryParams.calTemp" placeholder="请输入标定温度" clearable @keyup.enter.native="handleQuery" />
+      <el-form-item label="角度" prop="angle">
+        <el-select v-model="queryParams.angle" placeholder="请选择角度" clearable>
+          <el-option v-for="item in angleOptions" :key="item" :label="item" :value="item" />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -24,10 +25,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
-          v-hasPermi="['meas:radiation:add']">新增</el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
           v-hasPermi="['meas:radiation:edit']">修改</el-button>
@@ -45,25 +42,17 @@
 
     <el-table v-loading="loading" :data="radiationList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="测量环境id" align="center" prop="measurementBatchId" />
+      <el-table-column label="测量批次" align="center" prop="measurementBatch" />
+      <el-table-column label="发动机型号" align="center" prop="engineModel" />
+      <el-table-column label="发动机状态" align="center" prop="engineStatus"/>
+      <el-table-column label="发动机角度" align="center" prop="angle"/>
       <el-table-column label="型号" align="center" prop="model" />
       <el-table-column label="镜头视场角" align="center" prop="lensFView" />
       <el-table-column label="增益" align="center" prop="gain" />
-      <el-table-column label="背景数据" align="center" prop="backgroundData" />
-      <el-table-column label="标定温度" align="center" prop="calTemp" />
-      <el-table-column label="标定曲线" align="center" prop="calCurve" />
-      <el-table-column label="原始数据" align="center" prop="rawData" />
-      <el-table-column label="辐射亮度(3~5μm)" align="center" prop="radiance1" />
-      <el-table-column label="辐射亮度(8~14μm)" align="center" prop="radiance2" />
-      <!-- <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
-        </template>
-</el-table-column> -->
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-view" v-hasPermi="['meas:envData:edit']"
+            @click="handleUpdate(scope.row)">查看</el-button>
           <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
             v-hasPermi="['meas:radiation:edit']">修改</el-button>
           <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
@@ -76,45 +65,8 @@
       @pagination="getList" />
 
     <!-- 添加或修改光谱辐射对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="测量环境id" label-width="100px" prop="measurementBatchId">
-          <el-select v-model="form.measurementBatchId" placeholder="请选择测量环境id">
-            <el-option v-for="item in measureBatchOptions" :key="item.id" :label="item.measurementBatch"
-              :value="item.id">
-              <span style="float: left">{{ item.id }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ item.measurementBatch }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="型号" prop="model">
-          <el-input v-model="form.model" placeholder="请输入型号" />
-        </el-form-item>
-        <el-form-item label="镜头视场角" prop="lensFView" label-width="100px">
-          <el-input v-model="form.lensFView" placeholder="请输入镜头视场角(单位:mrad)" />
-        </el-form-item>
-        <el-form-item label="增益" prop="gain">
-          <el-input v-model.number="form.gain" placeholder="请输入增益(单位:x)" />
-        </el-form-item>
-        <el-form-item label="背景数据" prop="backgroundData">
-          <file-upload :fileSize="0" :limit="1" :fileType="['lgm']" v-model="form.backgroundData" />
-        </el-form-item>
-        <el-form-item label="标定温度" prop="calTemp">
-          <el-input v-model="form.calTemp" placeholder="请输入标定温度" />
-        </el-form-item>
-        <el-form-item label="标定曲线" prop="calCurve">
-          <file-upload :fileSize="0" :limit="5" :fileType="['txt']" v-model="form.calCurve" />
-        </el-form-item>
-        <el-form-item label="原始数据" prop="rawData">
-          <file-upload :fileSize="0" :limit="5" :fileType="['txt']" v-model="form.rawData" />
-        </el-form-item>
-        <el-form-item label="辐射亮度" prop="radiance1">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.radiance1" />
-        </el-form-item>
-        <el-form-item label="辐射亮度" prop="radiance2">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.radiance2" />
-        </el-form-item>
-      </el-form>
+    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body>
+      <dialogContent :radiationForm="radiationForm" :form="form" />
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -124,17 +76,21 @@
 </template>
 
 <script>
-import { listRadiation, getRadiation, delRadiation, addRadiation, updateRadiation } from "@/api/meas/radiation";
-import { listMeasBatch } from "@/api/meas/measBatch";
+import { listRadiation, getRadiation, delRadiation,updateRadiation,getRadiationByEnvData } from "@/api/meas/radiation";
+import { angleOption } from "@/api/meas/angle";
+import { statusOption } from "@/api/meas/status";
+import dialogContent from "@/views/meas/components/dialogContent";
+import { getEnvData } from "@/api/meas/envData";
 
 export default {
   name: "Radiation",
+  components: { dialogContent },
   data() {
     return {
       // 遮罩层
       loading: true,
       // 选中数组
-      ids: [],
+      measurementBatchIds: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -165,7 +121,8 @@ export default {
         radiance2: null,
       },
       // 表单参数
-      form: {},
+      form:{},
+      radiationForm: {},
       // 表单校验
       rules: {
         measurementBatchId: [
@@ -185,11 +142,16 @@ export default {
           { type: 'number', min: 1, max: 10, message: '请输入1-10x之间的数字', trigger: 'blur' }
         ],
       },
-      measureBatchOptions: []
+      // 发动机状态
+      engineStatusOptions: [],
+      // 发动机角度
+      angleOptions: [],
     };
   },
   created() {
     this.getList();
+    this.getAngleOption();
+    this.getStatusOption();
   },
   methods: {
     /** 查询光谱辐射列表 */
@@ -200,9 +162,19 @@ export default {
         this.total = response.total;
         this.loading = false;
       });
-      const data = {}
-      listMeasBatch(data).then(response => {
-        this.measureBatchOptions = response.rows;
+    },
+    getAngleOption() {
+      this.loading = true;
+      angleOption().then((response) => {
+        this.angleOptions = response.data;
+        this.loading = false;
+      });
+    },
+    getStatusOption() {
+      this.loading = true;
+      statusOption().then((response) => {
+        this.engineStatusOptions = response.data;
+        this.loading = false;
       });
     },
     // 取消按钮
@@ -212,7 +184,7 @@ export default {
     },
     // 表单重置
     reset() {
-      this.form = {
+      this.radiationForm = {
         id: null,
         measurementBatchId: null,
         model: null,
@@ -229,7 +201,7 @@ export default {
         updateBy: null,
         updateTime: null
       };
-      this.resetForm("form");
+      this.resetForm("radiationForm");
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -243,49 +215,40 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
+      this.measurementBatchIds = selection.map(item => item.measurementBatchId)
       this.single = selection.length !== 1
       this.multiple = !selection.length
     },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加光谱辐射";
-    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getRadiation(id).then(response => {
+      const id = row.measurementBatchId || this.measurementBatchIds
+      getEnvData(id).then((response) => {
         this.form = response.data;
+      });
+      getRadiationByEnvData(id).then(response => {
+        this.radiationForm = response.data;
         this.open = true;
         this.title = "修改光谱辐射";
       });
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["radiationForm"].validate(valid => {
         if (valid) {
-          if (this.form.id != null) {
-            updateRadiation(this.form).then(response => {
+          if (this.radiationForm.measurementBatchId != null) {
+            updateRadiation(this.radiationForm).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
-          } else {
-            addRadiation(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
           }
         }
       });
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
+      const ids = row.measurementBatchId || this.measurementBatchIds;
       this.$modal.confirm('是否确认删除光谱辐射编号为"' + ids + '"的数据项?').then(function () {
         return delRadiation(ids);
       }).then(() => {

+ 64 - 99
meas_web/src/views/meas/thermalImagerTesDdata/index.vue

@@ -1,29 +1,22 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="测量环境id" label-width="90px" prop="measurementBatchId">
-        <el-input
-          v-model="queryParams.measurementBatchId"
-          placeholder="请输入测量环境id"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
+      <el-form-item label="测量批次" prop="measurementBatch">
+        <el-input v-model="queryParams.measurementBatch" placeholder="请输入测量批次" clearable
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="型号" prop="model">
-        <el-input
-          v-model="queryParams.model"
-          placeholder="请输入型号"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="发动机型号" prop="model">
+        <el-input v-model="queryParams.model" placeholder="请输入发动机型号" clearable @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="积分时间" prop="integrationTime">
-        <el-input
-          v-model="queryParams.integrationTime"
-          placeholder="请输入积分时间"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="发动机状态" prop="engineStatus">
+        <el-select v-model="queryParams.engineStatus" placeholder="请选择发动机状态" clearable>
+          <el-option v-for="(item, index) in engineStatusOptions" :key="index" :label="item" :value="item" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="角度" prop="angle">
+        <el-select v-model="queryParams.angle" placeholder="请选择角度" clearable>
+          <el-option v-for="item in angleOptions" :key="item" :label="item" :value="item" />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -32,16 +25,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['meas:thermalImagerTesDdata:add']"
-        >新增</el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button
           type="success"
@@ -79,26 +62,19 @@
 
     <el-table v-loading="loading" :data="thermalImagerTesDdataList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="测量环境id" align="center" prop="measurementBatchId" />
+      <el-table-column label="测量批次" align="center" prop="measurementBatch" />
+      <el-table-column label="发动机型号" align="center" prop="engineModel" />
+      <el-table-column label="发动机状态" align="center" prop="engineStatus"/>
+      <el-table-column label="发动机角度" align="center" prop="angle"/>
       <el-table-column label="型号" align="center" prop="model" />
       <el-table-column label="镜头视场角" align="center" prop="lensFView" />
       <el-table-column label="滤镜编号" align="center" prop="filterNo" />
       <el-table-column label="帧率" align="center" prop="fps" />
       <el-table-column label="波段" align="center" prop="spectralBand" />
-      <el-table-column label="积分时间" align="center" prop="integrationTime" />
-      <el-table-column label="温度标定" align="center" prop="tempCal" />
-      <el-table-column label="辐射亮度" align="center" prop="radiance" />
-      <el-table-column label="辐射照度" align="center" prop="radIllumination" />
-      <el-table-column label="辐射温度" align="center" prop="radTemp" />
-      <!-- <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column> -->
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width" >
         <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-view" v-hasPermi="['meas:envData:edit']"
+            @click="handleUpdate(scope.row)">查看</el-button>
           <el-button
             size="mini"
             type="text"
@@ -126,36 +102,8 @@
     />
 
     <!-- 添加或修改热像仪测试数据对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="测量环境id" prop="measurementBatchId">
-          <el-select v-model="form.measurementBatchId" placeholder="请选择测量环境id">
-            <el-option v-for="item in measureBatchOptions" :key="item.id" :label="item.measurementBatch"
-              :value="item.id">
-              <span style="float: left">{{ item.id }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ item.measurementBatch }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="型号" prop="model">
-          <el-input v-model="form.model" placeholder="请输入型号" />
-        </el-form-item>
-        <el-form-item label="积分时间" prop="integrationTime">
-          <el-input v-model.number="form.integrationTime" placeholder="请输入积分时间(单位:s)" />
-        </el-form-item>
-        <el-form-item label="温度标定" prop="tempCal">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.tempCal"/>
-        </el-form-item>
-        <el-form-item label="辐射亮度" prop="radiance">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.radiance"/>
-        </el-form-item>
-        <el-form-item label="辐射照度" prop="radIllumination">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.radIllumination"/>
-        </el-form-item>
-        <el-form-item label="辐射温度" prop="radTemp">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.radTemp"/>
-        </el-form-item>
-      </el-form>
+    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body>
+      <dialogContent :TIForm="TIForm" :form="form" />
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -165,17 +113,21 @@
 </template>
 
 <script>
-import { listThermalImagerTesDdata, getThermalImagerTesDdata, delThermalImagerTesDdata, addThermalImagerTesDdata, updateThermalImagerTesDdata } from "@/api/meas/thermalImagerTesDdata";
-import { listMeasBatch } from "@/api/meas/measBatch";
+import { listThermalImagerTesDdata, getThermalImagerTesDdata, delThermalImagerTesDdata, updateThermalImagerTesDdata,getTIDataByEnvData } from "@/api/meas/thermalImagerTesDdata";
+import { angleOption } from "@/api/meas/angle";
+import { statusOption } from "@/api/meas/status";
+import dialogContent from "@/views/meas/components/dialogContent";
+import { getEnvData } from "@/api/meas/envData";
 
 export default {
   name: "ThermalImagerTesDdata",
+  components: { dialogContent },
   data() {
     return {
       // 遮罩层
       loading: true,
       // 选中数组
-      ids: [],
+      measurementBatchIds: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -208,6 +160,7 @@ export default {
       },
       // 表单参数
       form: {},
+      TIForm: {},
       // 表单校验
       rules: {
         measurementBatchId:[
@@ -225,26 +178,41 @@ export default {
           { type: 'number',min:1,max:100, message: '请输入1-100s之间的数字',trigger: 'blur'}
         ]
       },
-      measureBatchOptions: []
+      // 发动机状态
+      engineStatusOptions: [],
+      // 发动机角度
+      angleOptions: [],
     };
   },
   created() {
     this.getList();
+    this.getAngleOption();
+    this.getStatusOption();
   },
   methods: {
     /** 查询热像仪测试数据列表 */
     getList() {
       this.loading = true;
-      const data = {}
-      listMeasBatch(data).then(response => {
-        this.measureBatchOptions = response.rows;
-      });
       listThermalImagerTesDdata(this.queryParams).then(response => {
         this.thermalImagerTesDdataList = response.rows;
         this.total = response.total;
         this.loading = false;
       });
     },
+    getAngleOption() {
+      this.loading = true;
+      angleOption().then((response) => {
+        this.angleOptions = response.data;
+        this.loading = false;
+      });
+    },
+    getStatusOption() {
+      this.loading = true;
+      statusOption().then((response) => {
+        this.engineStatusOptions = response.data;
+        this.loading = false;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -252,7 +220,7 @@ export default {
     },
     // 表单重置
     reset() {
-      this.form = {
+      this.TIForm = {
         id: null,
         measurementBatchId: null,
         model: null,
@@ -270,7 +238,7 @@ export default {
         updateBy: null,
         updateTime: null
       };
-      this.resetForm("form");
+      this.resetForm("TIForm");
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -284,7 +252,7 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
+      this.measurementBatchIds = selection.map(item => item.measurementBatchId)
       this.single = selection.length!==1
       this.multiple = !selection.length
     },
@@ -297,36 +265,33 @@ export default {
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getThermalImagerTesDdata(id).then(response => {
+      const id = row.measurementBatchId || this.measurementBatchIds
+      getEnvData(id).then((response) => {
         this.form = response.data;
+      });
+      getTIDataByEnvData(id).then(response => {
+        this.TIForm = response.data;
         this.open = true;
         this.title = "修改热像仪测试数据";
       });
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["TIForm"].validate(valid => {
         if (valid) {
-          if (this.form.id != null) {
-            updateThermalImagerTesDdata(this.form).then(response => {
+          if (this.TIForm.id != null) {
+            updateThermalImagerTesDdata(this.TIForm).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
-          } else {
-            addThermalImagerTesDdata(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
           }
         }
       });
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
+      const ids = row.measurementBatchId || this.measurementBatchIds;
       this.$modal.confirm('是否确认删除热像仪测试数据编号为"' + ids + '"的数据项?').then(function() {
         return delThermalImagerTesDdata(ids);
       }).then(() => {

+ 69 - 98
meas_web/src/views/meas/transmissionRate/index.vue

@@ -1,13 +1,22 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="测量环境id" label-width="90px" prop="measurementBatchId">
-        <el-input
-          v-model="queryParams.measurementBatchId"
-          placeholder="请输入测量环境id"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="90px">
+      <el-form-item label="测量批次" prop="measurementBatch">
+        <el-input v-model="queryParams.measurementBatch" placeholder="请输入测量批次" clearable
+          @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="发动机型号" prop="model">
+        <el-input v-model="queryParams.model" placeholder="请输入发动机型号" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="发动机状态" prop="engineStatus">
+        <el-select v-model="queryParams.engineStatus" placeholder="请选择发动机状态" clearable>
+          <el-option v-for="(item, index) in engineStatusOptions" :key="index" :label="item" :value="item" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="角度" prop="angle">
+        <el-select v-model="queryParams.angle" placeholder="请选择角度" clearable>
+          <el-option v-for="item in angleOptions" :key="item" :label="item" :value="item" />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -16,16 +25,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['meas:transmissionRate:add']"
-        >新增</el-button>
-      </el-col>
       <el-col :span="1.5">
         <el-button
           type="success"
@@ -35,7 +34,7 @@
           :disabled="single"
           @click="handleUpdate"
           v-hasPermi="['meas:transmissionRate:edit']"
-        >修改</el-button>
+        >维护</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -48,41 +47,27 @@
           v-hasPermi="['meas:transmissionRate:remove']"
         >删除</el-button>
       </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['meas:transmissionRate:export']"
-        >导出</el-button>
-      </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
     <el-table v-loading="loading" :data="transmissionRateList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="测量环境id" align="center" prop="measurementBatchId" />
-      <el-table-column label="原始数据" align="center" prop="rawData" />
-      <el-table-column label="透过率曲线3~5μm" align="center" prop="curve1" />
-      <el-table-column label="透过率曲线8~14μm" align="center" prop="curve2" />
-      <!-- <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column> -->
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="测量批次" align="center" prop="measurementBatch" />
+      <el-table-column label="发动机型号" align="center" prop="engineModel" />
+      <el-table-column label="发动机状态" align="center" prop="engineStatus"/>
+      <el-table-column label="发动机角度" align="center" prop="angle"/>
+      <el-table-column label="记录条数" align="center" prop="remark" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
         <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-view" v-hasPermi="['meas:envData:edit']"
+            @click="handleUpdate(scope.row)">查看</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['meas:transmissionRate:edit']"
-          >修改</el-button>
+          >维护</el-button>
           <el-button
             size="mini"
             type="text"
@@ -103,27 +88,8 @@
     />
 
     <!-- 添加或修改透过率对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="90px">
-        <el-form-item label="测量环境id" prop="measurementBatchId">
-          <el-select v-model="form.measurementBatchId" placeholder="请选择测量环境id">
-            <el-option v-for="item in measureBatchOptions" :key="item.id" :label="item.measurementBatch"
-              :value="item.id">
-              <span style="float: left">{{ item.id }}</span>
-              <span style="float: right; color: #8492a6; font-size: 13px">{{ item.measurementBatch }}</span>
-            </el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="原始数据" prop="rawData">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="form.rawData"/>
-        </el-form-item>
-        <el-form-item label="透过率曲线3~5μm" label-width="130px" prop="curve1">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']"  v-model="form.curve1"/>
-        </el-form-item>
-        <el-form-item label="透过率曲线8~14μm" label-width="135px" prop="curve2">
-          <file-upload :fileSize="0" :limit="1" :fileType="['txt']"  v-model="form.curve2"/>
-        </el-form-item>
-      </el-form>
+    <el-dialog :title="title" :visible.sync="open" width="70%" append-to-body>
+      <dialogContent :TransmittanceForm="TransmittanceForm" :form="form" />
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -133,17 +99,21 @@
 </template>
 
 <script>
-import { listTransmissionRate, getTransmissionRate, delTransmissionRate, addTransmissionRate, updateTransmissionRate } from "@/api/meas/transmissionRate";
-import { listMeasBatch } from "@/api/meas/measBatch";
+import { listTransmissionRate, getTransmissionRate, delTransmissionRate, addTransmissionRate, getTRateByEnvData,updateTransmissionRate } from "@/api/meas/transmissionRate";
+import { angleOption } from "@/api/meas/angle";
+import { statusOption } from "@/api/meas/status";
+import dialogContent from "@/views/meas/components/dialogContent";
+import { getEnvData } from "@/api/meas/envData";
 
 export default {
   name: "TransmissionRate",
+  components: { dialogContent },
   data() {
     return {
       // 遮罩层
       loading: true,
       // 选中数组
-      ids: [],
+      measurementBatchIds: [],
       // 非单个禁用
       single: true,
       // 非多个禁用
@@ -169,6 +139,7 @@ export default {
       },
       // 表单参数
       form: {},
+      TransmittanceForm: {},
       // 表单校验
       rules: {
         measurementBatchId:[
@@ -176,26 +147,41 @@ export default {
           {type: 'number', message: '测量环境id必须为数字',trigger: 'blur'}
         ],
       },
-      measureBatchOptions: []
+      // 发动机状态
+      engineStatusOptions: [],
+      // 发动机角度
+      angleOptions: [],
     };
   },
   created() {
     this.getList();
+    this.getAngleOption();
+    this.getStatusOption();
   },
   methods: {
     /** 查询透过率列表 */
     getList() {
       this.loading = true;
-      const data = {}
-      listMeasBatch(data).then(response => {
-        this.measureBatchOptions = response.rows;
-      });
       listTransmissionRate(this.queryParams).then(response => {
         this.transmissionRateList = response.rows;
         this.total = response.total;
         this.loading = false;
       });
     },
+    getAngleOption() {
+      this.loading = true;
+      angleOption().then((response) => {
+        this.angleOptions = response.data;
+        this.loading = false;
+      });
+    },
+    getStatusOption() {
+      this.loading = true;
+      statusOption().then((response) => {
+        this.engineStatusOptions = response.data;
+        this.loading = false;
+      });
+    },
     // 取消按钮
     cancel() {
       this.open = false;
@@ -203,7 +189,7 @@ export default {
     },
     // 表单重置
     reset() {
-      this.form = {
+      this.TransmittanceForm = {
         id: null,
         measurementBatchId: null,
         rawData: null,
@@ -214,7 +200,7 @@ export default {
         updateBy: null,
         updateTime: null
       };
-      this.resetForm("form");
+      this.resetForm("TransmittanceForm");
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -228,49 +214,40 @@ export default {
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
+      this.measurementBatchIds = selection.map(item => item.measurementBatchId)
       this.single = selection.length!==1
       this.multiple = !selection.length
     },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加透过率";
-    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
-      const id = row.id || this.ids
-      getTransmissionRate(id).then(response => {
+      const id = row.measurementBatchId || this.measurementBatchIds
+      getEnvData(id).then((response) => {
         this.form = response.data;
+      });
+      getTRateByEnvData(id).then(response => {
+        this.TransmittanceForm = response.data;
         this.open = true;
         this.title = "修改透过率";
       });
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["form"].validate(valid => {
+      this.$refs["TransmittanceForm"].validate(valid => {
         if (valid) {
-          if (this.form.id != null) {
-            updateTransmissionRate(this.form).then(response => {
+          if (this.TransmittanceForm.measurementBatchId != null) {
+            updateTransmissionRate(this.TransmittanceForm).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
-          } else {
-            addTransmissionRate(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
           }
         }
       });
     },
     /** 删除按钮操作 */
     handleDelete(row) {
-      const ids = row.id || this.ids;
+      const ids = row.measurementBatchId || this.measurementBatchIds;
       this.$modal.confirm('是否确认删除透过率编号为"' + ids + '"的数据项?').then(function() {
         return delTransmissionRate(ids);
       }).then(() => {
@@ -278,12 +255,6 @@ export default {
         this.$modal.msgSuccess("删除成功");
       }).catch(() => {});
     },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('meas/transmissionRate/export', {
-        ...this.queryParams
-      }, `transmissionRate_${new Date().getTime()}.xlsx`)
-    }
   }
 };
 </script>