Rmengdi 10 ヶ月 前
コミット
90906bb3d6

+ 179 - 96
meas_web/src/views/meas/components/dialogContent.vue

@@ -1,6 +1,7 @@
 <template>
   <div>
-    <el-form ref="headFormRef" :rules="headFormRules" :model="formData" size="mini"  :disabled="checkShow || !addBtn" label-width="80px">
+    <el-form ref="headFormRef" :rules="headFormRules" :model="formData" size="mini"  :disabled="checkShow || !addBtn"
+      label-width="80px">
       <el-row type="flex" justify="space-around">
         <el-form-item label="发动机型号" prop="engineModel" label-width="95px">
           <el-select v-model="formData.engineModel" placeholder="请选择发动机型号" @change="changeEngine">
@@ -25,24 +26,33 @@
           </div>
         </el-form-item>
       </el-row>
-      <el-form-item label="测量批次" prop="measurementBatchId" style="margin-left: 5%">
-        <el-select v-model="formData.measurementBatchId" placeholder="请选择测量批次">
-          <el-option v-for="item in batchOption" :key="item.id" :label="item.measurementBatch" :value="item.id">
-          </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-row type="flex" justify="space-around">
+        <el-form-item label="测量批次" prop="measurementBatchId">
+          <el-select v-model="formData.measurementBatchId" placeholder="请选择测量批次">
+            <el-option v-for="item in batchOption" :key="item.id" :label="item.measurementBatch" :value="item.id">
+            </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-item>
+          <div style="width: 200px;"></div>
+        </el-form-item>
+        <el-form-item>
+          <div style="width: 200px;"></div>
+        </el-form-item>
+      </el-row>
     </el-form>
     <!-- <el-form ref="formData" :disabled="checkShow" :model="formData" :rules="formRules" size="mini" label-width="80px">
       
     </el-form> -->
     <div class="box">
       <span class="title">环境参数</span>
-      <el-form :disabled="checkShow" :rules="formRules" ref="formRef" :model="formData" size="mini" label-width="80px" :validate-on-rule-change="false">
+      <el-form :disabled="checkShow" :rules="formRules" @submit-form="submitForm" :inline-message="true" :form="form" @cancel="cancel" ref="formRef" :model="formData"
+        size="mini" label-width="80px" :validate-on-rule-change="false">
         <el-row type="flex" justify="space-around">
-          <el-form-item label="发动机状态" label-width="100px" prop="engineStatus">
+          <el-form-item label="发动机状态" label-width="95px" prop="engineStatus">
             <el-select v-model="formData.engineStatus" placeholder="请选择发动机状态">
               <el-option v-for="item in engineStatusOptions" :key="item" :label="item" :value="item">
               </el-option>
@@ -69,7 +79,8 @@
         </el-row>
         <el-row type="flex" justify="space-around">
           <el-form-item label="测试距离" prop="testDistance">
-            <el-input v-model.number="formData.testDistance" placeholder="请输入测试距离" />
+            <el-input v-model="formData.testDistance" placeholder="请输入测试距离"><template
+                slot="append">m</template></el-input>
           </el-form-item>
           <el-form-item label="时间" prop="time">
             <el-date-picker clearable v-model="formData.time" type="datetime" value-format="yyyy-MM-dd HH:mm"
@@ -82,40 +93,48 @@
         </el-row>
         <el-row type="flex" justify="space-around">
           <el-form-item label="大气压" prop="atmosPress">
-            <el-input v-model="formData.atmosPress" placeholder="请输入大气压(单位:pa)" />
+            <el-input v-model="formData.atmosPress" placeholder="请输入大气压"><template
+                slot="append">pa</template></el-input>
           </el-form-item>
           <el-form-item label="温度" prop="temperature">
-            <el-input v-model="formData.temperature" placeholder="请输入温度(单位:K)" />
+            <el-input v-model="formData.temperature" placeholder="请输入温度"><template slot="append">K</template></el-input>
           </el-form-item>
           <el-form-item label="风速" prop="windSpeed">
-            <el-input v-model="formData.windSpeed" placeholder="请输入风速(单位:m/s)" />
+            <el-input v-model="formData.windSpeed" placeholder="请输入风速"><template slot="append">m/s</template></el-input>
           </el-form-item>
         </el-row>
         <el-row type="flex" justify="space-around">
           <el-form-item label="湿度" prop="humidity">
-            <el-input v-model="formData.humidity" placeholder="请输入湿度(单位:%)" />
+            <el-input v-model="formData.humidity" placeholder="请输入湿度"><template slot="append">%</template></el-input>
           </el-form-item>
           <el-form-item label="CO₂浓度" prop="concentration">
-            <el-input v-model="formData.concentration" placeholder="请输入浓度(单位:mol)" />
+            <el-input v-model="formData.concentration" placeholder="请输入浓度"><template
+                slot="append">mol</template></el-input>
+          </el-form-item>
+          <el-form-item>
+            <div style="width: 200px;">
+              <el-button v-if="addBtn" type="primary" size="mini" @click="envDataSave">保 存</el-button>
+            </div>
           </el-form-item>
-          <el-col :span="7">
-            <el-button v-if="addBtn" type="primary" size="mini" @click="envDataSave">保 存</el-button>
-          </el-col>
         </el-row>
       </el-form>
     </div>
     <div class="box" v-if="radiationData && Object.keys(radiationData).length > 0">
       <span class="title">光谱辐射测量数据</span>
-      <el-form :rules="radiationRules" :key="radiationData.createTime" :disabled="checkShow || addBtn" :validate-on-rule-change="false" ref="radiationRef" size="mini" :model="radiationData" label-width="80px">
+      <el-form :rules="radiationRules" :inline-message="true" :key="radiationData.createTime"
+        :disabled="checkShow || addBtn" :validate-on-rule-change="false" ref="radiationRef" size="mini"
+        :model="radiationData" label-width="80px">
         <el-row type="flex" justify="space-around">
           <el-form-item label="型号" prop="model">
             <el-input v-model="radiationData.model" placeholder="请输入型号" />
           </el-form-item>
           <el-form-item label="镜头视场角" prop="lensFView" label-width="95px">
-            <el-input v-model="radiationData.lensFView" placeholder="请输入镜头视场角(单位:mrad)" />
+            <el-input v-model="radiationData.lensFView" placeholder="请输入镜头视场角"><template
+                slot="append">mrad</template></el-input>
           </el-form-item>
           <el-form-item label="增益" prop="gain">
-            <el-input v-model.number="radiationData.gain" placeholder="请输入增益(单位:x)" />
+            <el-input v-model.number="radiationData.gain" placeholder="请输入增益"><template
+                slot="append">x</template></el-input>
           </el-form-item>
         </el-row>
         <el-row type="flex" justify="space-around">
@@ -127,9 +146,11 @@
             <file-upload :isCheck="isCheck" :fileSize="0" :limit="5" :fileType="['txt']" :isShowViev="true"
               v-model="radiationData.calCurve" v-on:fileView="fileView" />
           </el-form-item>
-          <el-col :span="7"></el-col>
+          <el-form-item>
+          <div style="width: 200px;"></div>
+        </el-form-item>
         </el-row>
-        <el-row style="margin-left: 2%;" type="flex">
+        <el-row style="margin-left: 2%;" class="calTempTabel" type="flex">
           <el-form-item label="标定温度" prop="calTemp">
             <el-table :data="calTempData" size="mini" border style="width: 600px">
               <el-table-column prop="temp" label="温度" width="100px" align="center">
@@ -151,7 +172,8 @@
       </el-form>
       <div class="box" style="margin-bottom: 15px">
         <span class="title">目标数据</span>
-        <el-form ref="radiationRef" :disabled="checkShow || addBtn" size="mini" :rules="radiationRules" :validate-on-rule-change="false" :model="radiationData" label-width="80px">
+        <el-form ref="radiationRef" :disabled="checkShow || addBtn" size="mini" :rules="radiationRules"
+          :validate-on-rule-change="false" :model="radiationData" label-width="80px">
           <el-row type="flex" justify="space-around">
             <el-form-item label="原始数据" prop="rawData">
               <file-upload :isCheck="isCheck" :fileSize="0" :limit="5" :fileType="['txt']"
@@ -163,7 +185,7 @@
             </el-form-item>
             <el-form-item label="辐射亮度8~14μm" label-width="130px" prop="radiance2">
               <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']"
-                v-model="radiationData.radiance2" :isShowViev="true" v-on:fileView="fileView"/>
+                v-model="radiationData.radiance2" :isShowViev="true" v-on:fileView="fileView" />
             </el-form-item>
           </el-row>
         </el-form>
@@ -171,38 +193,30 @@
     </div>
     <div class="box" v-if="TIData && Object.keys(TIData).length > 0">
       <span class="title">热像仪测量数据</span>
-      <el-form ref="TIRef" :disabled="checkShow || addBtn" :rules="TIRules" :key="TIData.createTime" :model="TIData"
-        size="mini" label-width="80px" :validate-on-rule-change="false">
+      <el-form ref="TIRef" :disabled="checkShow || addBtn" :inline-message="true" :rules="TIRules"
+        :key="TIData.createTime" :model="TIData" size="mini" label-width="80px" :validate-on-rule-change="false">
         <el-row type="flex" justify="space-around">
           <el-form-item label="型号" prop="model">
             <el-input v-model="TIData.model" placeholder="请输入型号" />
           </el-form-item>
           <el-form-item label="镜头视场角" label-width="95px" prop="lensFView">
-            <el-select v-model="TIData.lensFView" placeholder="请选择镜头视场角">
-              <el-option v-for="item in lensFViewOptions" :key="item.value" :label="item.label" :value="item.value">
-              </el-option>
-            </el-select>
+            <el-input v-model="TIData.lensFView" placeholder="请输入镜头视场角"><template
+                slot="append">mrad</template></el-input>
           </el-form-item>
           <el-form-item label="滤镜编号" prop="filterNo">
-            <el-select v-model="TIData.filterNo" placeholder="请选择滤镜编号">
-              <el-option v-for="item in filterNoOptions" :key="item.value" :label="item.label" :value="item.value">
-              </el-option>
-            </el-select>
+            <el-input v-model="TIData.filterNo" placeholder="请选择滤镜编号" />
           </el-form-item>
         </el-row>
         <el-row type="flex" justify="space-around">
           <el-form-item label="帧率" prop="fps">
-            <el-select v-model="TIData.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="TIData.spectralBand" placeholder="请选择波段">
-              <el-option v-for="item in spectralBandOptions" :key="item.value" :label="item.label" :value="item.value">
-              </el-option>
-            </el-select>
+            <el-input v-model="TIData.fps" placeholder="请选择帧率" />
+          </el-form-item>
+          <el-form-item label="波段" prop="spectralBand">
+            <el-input v-model="TIData.spectralBand" placeholder="请选择波段" />
           </el-form-item>
           <el-form-item label="积分时间" prop="integrationTime">
-            <el-input v-model.number="TIData.integrationTime" placeholder="请输入积分时间(单位:s)" />
+            <el-input v-model.number="TIData.integrationTime" placeholder="请输入积分时间"><template
+                slot="append">s</template></el-input>
           </el-form-item>
         </el-row>
         <el-row type="flex" justify="space-around">
@@ -223,14 +237,19 @@
             <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIData.radTemp"
               :isShowViev="true" v-on:fileView="fileView" />
           </el-form-item>
-          <el-col :span="7"></el-col>
-          <el-col :span="7"></el-col>
+          <el-form-item>
+          <div style="width: 200px;"></div>
+        </el-form-item>
+          <el-form-item>
+          <div style="width: 200px;"></div>
+        </el-form-item>
         </el-row>
       </el-form>
     </div>
     <div class="box" v-if="TransmittanceData">
       <span class="title">透过率数据</span>
-      <el-form :disabled="checkShow || addBtn" ref="TransmittanceRef" :model="TransmittanceData" label-width="80px" :validate-on-rule-change="false">
+      <el-form :disabled="checkShow || addBtn" ref="TransmittanceRef" :model="TransmittanceData" label-width="80px"
+        :validate-on-rule-change="false">
         <el-row type="flex" justify="space-around">
           <el-form-item label="原始数据" prop="rawData">
             <file-upload :fileSize="0" :limit="1" :isCheck="isCheck" :fileType="['txt']"
@@ -247,6 +266,30 @@
         </el-row>
       </el-form>
     </div>
+    <el-row type="flex" justify="space-around"  v-if="resultData && Object.keys(resultData).length > 0">
+        <el-button size="mini" type="success" style="margin-top: 20px">计算数据</el-button>
+      </el-row>
+    <div class="box" v-if="resultData && Object.keys(resultData).length > 0">
+        <span class="title">计算结果</span>
+        <el-form ref="resultRef"  :disabled="checkShow" :model="resultData" :inline-message="true" size="mini" label-width="150px" :rules="resultRules">
+          <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="resultData.specIrr1" :isCheck="isCheck" :isShowViev="true" v-on:fileView="fileView"/>
+            </el-form-item>
+            <el-form-item label="光谱辐射强度8~14μm" prop="specIrr2">
+              <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="resultData.specIrr2" :isCheck="isCheck" :isShowViev="true" v-on:fileView="fileView"/>
+            </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="resultData.specBandIrr1" placeholder="请输入波段辐射强度3~5μm" />
+            </el-form-item>
+            <el-form-item label="波段辐射强度8~14μm" prop="specBandIrr2">
+              <el-input v-model="resultData.specBandIrr2" placeholder="请输入波段辐射强度8~14μm" />
+            </el-form-item>
+          </el-row>
+        </el-form>
+      </div>
     <div v-if="footShow" slot="footer" class="footerBtn">
       <el-button type="primary" @click="submitForm">确 定</el-button>
       <el-button @click="cancel" style="margin-left: 40px;">取 消</el-button>
@@ -338,10 +381,10 @@
 </template>
 
 <script>
-import { listEngineModel,addEngineModel } from "@/api/meas/engineModel";
-import { angleOption,addAngle } from "@/api/meas/angle";
-import { statusOption,addStatus } from "@/api/meas/status";
-import { listMeasBatch,addMeasBatch } from "@/api/meas/measBatch";
+import { listEngineModel, addEngineModel } from "@/api/meas/engineModel";
+import { angleOption, addAngle } from "@/api/meas/angle";
+import { statusOption, addStatus } from "@/api/meas/status";
+import { listMeasBatch, addMeasBatch } from "@/api/meas/measBatch";
 import ECharts from "@/views/meas/envData/ECharts.vue";
 export default {
   name: "dialogContent",
@@ -363,6 +406,10 @@ export default {
       type: Object,
       default: null,
     },
+    resultForm: {
+      type: Object,
+      default: null,
+    },
     envSaveBtn: {
       type: Boolean,
       default: false,
@@ -375,7 +422,7 @@ export default {
       type: Boolean,
       default: false,
     },
-    footShow:{
+    footShow: {
       type: Boolean,
       default: true,
     }
@@ -390,7 +437,7 @@ export default {
       spectralBandOptions: [],
       rules: {},
       // 表单校验和验证
-      headFormRules:{
+      headFormRules: {
         engineModel: [
           { required: true, message: "发动机型号不能为空", trigger: "change" },
         ],
@@ -406,7 +453,7 @@ export default {
         testDistance: [
           {
             pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{0,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
+            message: "请输入0.00-1000.00之间的数字,可保留两位小数",
             trigger: "blur",
           },
         ],
@@ -424,35 +471,35 @@ export default {
           {
             pattern:
               /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1[0-4]\d{2}(\.\d{0,2})?|1500(\.00?)?)$/,
-            message: "请输入0.00-1500.00pa之间的数字,最多可保留两位小数",
+            message: "请输入0.00-1500.00之间的数字,最多可保留两位小数",
             trigger: "blur",
           },
         ],
         temperature: [
           {
             pattern: /^(230|2[3-9]\d|30\d|31\d|320)(\.\d{0,2})?$/,
-            message: "请输入230.00-320.00K之间的数字,最多可保留两位小数",
+            message: "请输入230.00-320.00之间的数字,最多可保留两位小数",
             trigger: "blur",
           },
         ],
         windSpeed: [
           {
             pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{0,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00m/s之间的数字,最多可保留两位小数",
+            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
             trigger: "blur",
           },
         ],
         humidity: [
           {
             pattern: /(^(\d|[1-9]\d)(\.\d{0,2})?$)|(^100$)/,
-            message: "请输入0.00-100.00%之间的数字,最多可保留两位小数",
+            message: "请输入0.00-100.00之间的数字,最多可保留两位小数",
             trigger: "blur",
           },
         ],
         concentration: [
           {
             pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{0,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00mol之间的数字,最多可保留两位小数",
+            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
             trigger: "blur",
           },
         ],
@@ -464,11 +511,11 @@ export default {
         ],
         lensFView: [
           { required: true, message: "镜头视场角不能为空" },
-          { required: true, pattern: /^(0|[1-8]?[0-9]|90)(\.\d{0,2})?$/, message: '请输入0.00-90.00mard之间的数字,最多可保留两位小数', trigger: 'blur' }
+          { required: true, pattern: /^(0|[1-8]?[0-9]|90)(\.\d{0,2})?$/, message: '请输入0.00-90.00之间的数字,最多可保留两位小数', trigger: 'blur' }
         ],
         gain: [
           { required: true, message: '增益不能为空' },
-          { type: 'number', min: 1, max: 10, message: '请输入1-10x之间的数字', trigger: 'blur' }
+          { type: 'number', min: 1, max: 10, message: '请输入1-10之间的数字', trigger: 'blur' }
         ],
 
       },
@@ -481,17 +528,30 @@ export default {
         //   { required: true, message: "镜头视场角不能为空", trigger: "change" },
         // ],
         integrationTime: [
-          { type: 'number', min: 1, max: 100, message: '请输入1-100s之间的数字', trigger: 'blur' }
+          { type: 'number', min: 1, max: 100, message: '请输入1-100之间的数字', trigger: 'blur' }
         ]
       },
+      resultRules:{
+        specBandIrr1: [
+          {
+            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",
+          },
+        ],
+      },
       formData: this.form,
       radiationData: this.radiationForm,
       TIData: this.TIForm,
       TransmittanceData: this.TransmittanceForm,
-      formFlag: JSON.parse(JSON.stringify(this.form)),
-      radiationFlag: JSON.parse(JSON.stringify(this.radiationForm)),
-      TIFlag: JSON.parse(JSON.stringify(this.TIForm)),
-      TransmittanceFlag: JSON.parse(JSON.stringify(this.TransmittanceForm)),
+      resultData: this.resultForm,
       checkShow: this.isCheck,
       addBtn: this.addFlag,
       // 过滤后的measureBatchOption
@@ -523,14 +583,14 @@ export default {
         angle: null
       },
       engineOptions: [],
-      measureBatchOptions:[],
-      engineStatusOptions:[],
-      angleOptions:[],
+      measureBatchOptions: [],
+      engineStatusOptions: [],
+      angleOptions: [],
       addDialogVisible: false,
       addMeasVisible: false,
       addStatusVisible: false,
       addAngleVisible: false,
-      
+
     };
   },
   created() {
@@ -541,9 +601,9 @@ export default {
   },
   watch: {
     form: {
-      handler(newVal,oldVal) {
+      handler(newVal, oldVal) {
         this.formData = newVal;
-        if(newVal && oldVal && newVal.engineModel!==oldVal.engineModel){
+        if (newVal && oldVal && newVal.engineModel !== oldVal.engineModel) {
           this.batchOption = this.measureBatchOptions.filter(item => { return item.engineModel === newVal.engineModel })
         }
       },
@@ -553,10 +613,10 @@ export default {
     radiationForm: {
       handler(newVal) {
         this.radiationData = newVal;
-        if(newVal && newVal.calTemp){
-          this.calTempData=JSON.parse(newVal.calTemp)
-        }else{
-          this.calTempData=[]
+        if (newVal && newVal.calTemp) {
+          this.calTempData = JSON.parse(newVal.calTemp)
+        } else {
+          this.calTempData = []
         }
       },
       immediate: true,
@@ -576,6 +636,13 @@ export default {
       immediate: true,
       deep: true
     },
+    resultForm: {
+      handler(newVal) {
+        this.resultData = newVal;
+      },
+      immediate: true,
+      deep: true
+    },
     isCheck: {
       handler(newVal) {
         this.checkShow = newVal;
@@ -660,7 +727,7 @@ export default {
     // 获取发电机List
     getListEngineModel() {
       this.loading = true;
-      const data = {pageNum:1,pageSize:10000};
+      const data = { pageNum: 1, pageSize: 10000 };
       listEngineModel(data).then((response) => {
         this.engineOptions = response.rows;
         this.loading = false;
@@ -668,12 +735,12 @@ export default {
     },
     // 获取测量批次List
     getListMeasBatch() {
-      const data = {pageNum:1,pageSize:10000};
+      const data = { pageNum: 1, pageSize: 10000 };
       this.loading = true;
       listMeasBatch(data).then((response) => {
         this.measureBatchOptions = response.rows;
-        if(this.form.engineModel){
-          this.batchOption = this.measureBatchOptions.filter(item => { return item.engineModel === this.form.engineModel });
+        if (this.form.engineModel) {
+          this.batchOption = this.measureBatchOptions.filter(item => { return item.engineId === this.form.engineModel });
         }
         this.loading = false;
       });
@@ -696,8 +763,7 @@ export default {
     },
     onClickBtn(type) {
       if (type === "engine") this.addDialogVisible = true;
-      else if (type === "measBatch")
-      {
+      else if (type === "measBatch") {
         if (this.form.engineModel) {
           let obj = {};
           obj = this.engineOptions.find((item) => {
@@ -744,7 +810,7 @@ export default {
       this.addCalTempVisible = true
     },
     submitCalTemp() {
-      console.log("this.calTempData",this.calTempData);
+      console.log("this.calTempData", this.calTempData);
       this.calTempData.push(this.calTempForm)
       this.addCalTempVisible = false
       this.resetCalTempForm()
@@ -767,12 +833,12 @@ export default {
     // 环境参数保存
     envDataSave() {
       this.validateAll()
-        .then(()=>{
+        .then(() => {
           this.$emit('env-data-save')
         })
         .catch((err) => {
-          console.log("err",err);
-          this.$message.error(`错误信息`,err);
+          console.log("err", err);
+          this.$message.error(`错误信息`, err);
         });
 
     },
@@ -782,22 +848,23 @@ export default {
         this.$refs.formRef?.validate(),
         this.$refs.radiationRef?.validate(),
         this.$refs.TIRef?.validate(),
-        this.$refs.TransmittanceRef?.validate()
+        this.$refs.TransmittanceRef?.validate(),
+        this.$refs.resultRef?.validate(),
       ]);
     },
     submitForm() {
       this.validateAll()
         .then(() => {
           if (this.radiationForm) {
-            console.log("this.calTempData.length",this.calTempData.length);
-            this.radiationForm.calTemp = this.calTempData.length>0?JSON.stringify(this.calTempData):null;
-            this.calTempData=[]
-          } 
+            console.log("this.calTempData.length", this.calTempData.length);
+            this.radiationForm.calTemp = this.calTempData.length > 0 ? JSON.stringify(this.calTempData) : null;
+            this.calTempData = []
+          }
           this.$emit('submit-form');
         })
         .catch((err) => {
-          console.log("err",err);
-          this.$message.error(`错误信息`,err);
+          console.log("err", err);
+          this.$message.error(`错误信息`, err);
         });
     },
     isObjectEqual(obj1, obj2) {
@@ -1016,6 +1083,22 @@ export default {
   height: 80px;
 }
 
+::v-deep .el-form-item__content {
+  max-width: 200px;
+}
+
+::v-deep .el-form-item__error {
+  width: 190px;
+}
+
+::v-deep .calTempTabel .el-form-item__content {
+  max-width: 600px;
+}
+
+::v-deep .el-input-group__append {
+  padding: 0 10px;
+}
+
 .chartShow {
   margin: 0 auto;
 }

+ 58 - 66
meas_web/src/views/meas/dataResults/index.vue

@@ -75,36 +75,7 @@
 
     <!-- 添加或修改数据结果对话框 -->
     <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="70%" append-to-body>
-      <dialogContent :form="form" :isCheck="isCheck" :footShow="footShow"/>
-      <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>
-      </div>
+      <dialogContent ref="resultContent" :form="form" :resultForm="resultForm" @submit-form="submitForm" @cancel="cancel" :isCheck="isCheck"/>
     </el-dialog>
   </div>
 </template>
@@ -113,6 +84,7 @@
 import {
   listDataResults,
   getDataResults,
+  addDataResults,
   delDataResults,
   updateDataResults,
   getResultByEnvData
@@ -120,7 +92,7 @@ import {
 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";
+import { getEnvData, updateEnvData, addEnvData } from "@/api/meas/envData";
 
 export default {
   name: "DataResults",
@@ -157,33 +129,11 @@ export default {
       // 表单参数
       form: {},
       resultForm: {},
-      // 表单校验
-      rules: {
-        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",
-          },
-        ],
-        specBandIrr2: [
-          {
-            pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
-            message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
-            trigger: "blur",
-          },
-        ],
-      },
       // 发动机状态
       engineStatusOptions: [],
       // 发动机角度
       angleOptions: [],
-      isCheck: true,
-      footShow:true
+      isCheck: true
     };
   },
   created() {
@@ -264,36 +214,78 @@ export default {
     checkView(row) {
       this.handleUpdate(row)
       this.isCheck = true
-      this.footShow = false
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();
       this.isCheck = false
-      this.footShow = false
       const id = row.measurementBatchId || this.measurementBatchIds;
       getEnvData(id).then((response) => {
         this.form = response.data;
       });
       getResultByEnvData(id).then((response) => {
         this.resultForm = response.data;
+        console.log("this.resultForm",this.resultForm);
         this.open = true;
         this.title = this.isCheck?'查看数据结果':"修改数据结果";
       });
     },
     /** 提交按钮 */
     submitForm() {
-      this.$refs["resultForm"].validate((valid) => {
-        if (valid) {
-          if (this.resultForm.measurementBatchId != null) {
-            updateDataResults(this.resultForm).then((response) => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
+      const promises = [];
+      let successMessages = [];
+      let failureMessages = [];
+      promises.push(
+        (this.form.id ? updateEnvData(this.form) : addEnvData(this.form))
+          .then(() => {
+            successMessages.push(`测量环境数据`);
+          })
+          .catch(() => {
+            failureMessages.push(`测量环境数据`);
+          }),
+        (this.resultForm.id ? updateDataResults(this.resultForm) : addDataResults(this.resultForm))
+          .then(() => {
+            successMessages.push(`计算结果数据`);
+          })
+          .catch(() => {
+            failureMessages.push(`计算结果数据`);
+          })
+      );
+      Promise.all(promises)
+        .then(() => {
+          let message = ''
+          if (successMessages.length > 0) {
+            message += `${successMessages.join('、')}操作成功; `
+            this.$modal.msgSuccess(message);
           }
-        }
-      });
+          if (failureMessages.length > 0) {
+            message += `${failureMessages.join('、')}操作失败`
+            this.$modal.msgWarning(message);
+          }
+          this.open = false;
+          this.getList();
+        })
+        .catch(() => {
+          this.$modal.msgError("操作过程中发生了错误");
+          this.open = false;
+        });
+      // this.$refs["resultForm"].validate((valid) => {
+      //   if (valid) {
+      //     if (this.resultForm.id != null) {
+      //       updateDataResults(this.resultForm).then((response) => {
+      //         this.$modal.msgSuccess("结果数据修改成功");
+      //         this.open = false;
+      //         this.getList();
+      //       });
+      //     }else{
+      //       addDataResults(this.resultForm).then((response) => {
+      //         this.$modal.msgSuccess("结果数据新增成功");
+      //         this.open = false;
+      //         this.getList();
+      //       });
+      //     }
+      //   }
+      // });
     },
     /** 删除按钮操作 */
     handleDelete(row) {