|
@@ -1,25 +1,32 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <el-form ref="formData" :model="formData" :disabled="checkShow" size="mini" label-width="80px">
|
|
|
+ <el-form ref="formData" :rules="formRules" :model="formData" size="mini" :disabled="checkShow" label-width="80px">
|
|
|
<el-row type="flex" justify="space-around">
|
|
|
- <el-form-item label="发动机型号" prop="model" label-width="90px">
|
|
|
+ <el-form-item label="发动机型号" prop="model" label-width="95px">
|
|
|
<el-select v-model="formData.model" placeholder="请选择发动机型号" @change="changeEngine">
|
|
|
<el-option v-for="item in engineModelOption" :key="item.id" :label="item.model" :value="item.id">
|
|
|
</el-option>
|
|
|
- <el-option :value="undefined" disabled style="cursor: pointer">
|
|
|
+ <el-option :value="undefined" 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="formData.geometryFiles" />
|
|
|
+ <div style="width: 200px;">
|
|
|
+ <el-link :disabled="formData.geometryFiles ? false : true"
|
|
|
+ :type="formData.geometryFiles ? 'primary' : 'warning'" :href="`${baseUrl}${formData.geometryFiles}`"
|
|
|
+ target="_blank">{{
|
|
|
+ formData.geometryFiles ? getFileName(formData.geometryFiles) : '暂无几何模型文件' }}</el-link>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="几何图片" prop="geometryImage">
|
|
|
- <image-upload :fileSize="0" :limit="1" :fileType="['jpg']" v-model="formData.geometryImage" />
|
|
|
+ <div style="width: 200px;">
|
|
|
+ <ImagePreview :src="formData.geometryImage" :width="80" :height="80" />
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <el-form ref="form" :disabled="checkShow" :model="form" size="mini" label-width="80px">
|
|
|
+ <el-form ref="formData" :disabled="checkShow" :model="formData" :rules="formRules" size="mini" label-width="80px">
|
|
|
<el-form-item label="测量批次" prop="measurementBatch" 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">
|
|
@@ -34,7 +41,7 @@
|
|
|
</el-form>
|
|
|
<div class="box">
|
|
|
<span class="title">环境参数</span>
|
|
|
- <el-form :disabled="checkShow" ref="form" :model="form" size="mini" label-width="80px">
|
|
|
+ <el-form :disabled="checkShow" :rules="formRules" ref="formData" :model="formData" size="mini" label-width="80px">
|
|
|
<el-row type="flex" justify="space-around">
|
|
|
<el-form-item label="发动机状态" label-width="100px" prop="engineStatus">
|
|
|
<el-select v-model="formData.engineStatus" placeholder="请选择发动机状态">
|
|
@@ -57,13 +64,13 @@
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="涡轮后温度" prop="turbinePostTemp" label-width="90px">
|
|
|
- <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="formData.turbinePostTemp" />
|
|
|
- <!-- <el-link v-if="checkShow" type="primary" :href="`${baseUrl}${form.turbinePostTemp}`" target="_blank">{{ getFileName(form.turbinePostTemp) }}</el-link> -->
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']"
|
|
|
+ v-model="formData.turbinePostTemp" />
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
<el-row type="flex" justify="space-around">
|
|
|
<el-form-item label="测试距离" prop="testDistance">
|
|
|
- <el-input v-model="formData.testDistance" placeholder="请输入测试距离" />
|
|
|
+ <el-input v-model.number="formData.testDistance" placeholder="请输入测试距离" />
|
|
|
</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"
|
|
@@ -100,13 +107,13 @@
|
|
|
</div>
|
|
|
<div class="box" v-if="radiationData && Object.keys(radiationData).length > 0">
|
|
|
<span class="title">光谱辐射测量数据</span>
|
|
|
- <el-form :disabled="checkShow || addBtn" ref="radiationData" size="mini" :model="radiationData"
|
|
|
- label-width="80px">
|
|
|
+ <el-form :rules="radiationRules" :key="radiationData.createTime" :disabled="checkShow || addBtn"
|
|
|
+ ref="radiationData" 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="90px">
|
|
|
+ <el-form-item label="镜头视场角" prop="lensFView" label-width="95px">
|
|
|
<el-input v-model="radiationData.lensFView" placeholder="请输入镜头视场角(单位:mrad)" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="增益" prop="gain">
|
|
@@ -115,10 +122,11 @@
|
|
|
</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="radiationData.backgroundData" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['lgm']"
|
|
|
+ v-model="radiationData.backgroundData" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="标定曲线" prop="calCurve">
|
|
|
- <file-upload :fileSize="0" :limit="5" :fileType="['txt']" :isShowViev="true"
|
|
|
+ <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>
|
|
@@ -138,24 +146,27 @@
|
|
|
</el-table>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="" label-width="10px">
|
|
|
- <i style="font-size: 1.5rem;margin-top: 10px;" class="el-icon-circle-plus-outline" @click="addCalTemp" v-if="!(checkShow|| addBtn)" ></i>
|
|
|
+ <i style="font-size: 1.5rem;margin-top: 10px;" class="el-icon-circle-plus-outline" @click="addCalTemp"
|
|
|
+ v-if="!(checkShow || addBtn)"></i>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
<div class="box" style="margin-bottom: 15px">
|
|
|
<span class="title">目标数据</span>
|
|
|
- <el-form ref="radiationData" :disabled="checkShow || addBtn" size="mini" :model="radiationData"
|
|
|
- label-width="80px">
|
|
|
+ <el-form ref="radiationData" :disabled="checkShow || addBtn" size="mini" :rules="radiationRules"
|
|
|
+ :model="radiationData" 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="radiationData.rawData" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="5" :fileType="['txt']"
|
|
|
+ v-model="radiationData.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="radiationData.radiance1"
|
|
|
- :isShowViev="true" v-on:fileView="fileView" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']"
|
|
|
+ v-model="radiationData.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="radiationData.radiance2" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']"
|
|
|
+ v-model="radiationData.radiance2" />
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
@@ -163,13 +174,13 @@
|
|
|
</div>
|
|
|
<div class="box" v-if="TIData && Object.keys(TIData).length > 0">
|
|
|
<span class="title">热像仪测量数据</span>
|
|
|
- <el-form ref="TIData" :disabled="checkShow || addBtn" :model="TIData" size="mini"
|
|
|
- label-width="80px">
|
|
|
+ <el-form ref="TIData" :disabled="checkShow || addBtn" :rules="TIRules" :key="TIData.createTime" :model="TIData"
|
|
|
+ size="mini" label-width="80px">
|
|
|
<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="90px" prop="lensFView">
|
|
|
+ <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>
|
|
@@ -199,21 +210,21 @@
|
|
|
</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="TIData.tempCal" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIData.tempCal" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="辐射亮度" prop="radiance">
|
|
|
- <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIData.radiance" :isShowViev="true"
|
|
|
- v-on:fileView="fileView2" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']" v-model="TIData.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="TIData.radIllumination"
|
|
|
- :isShowViev="true" v-on:fileView="fileView" />
|
|
|
+ <file-upload :isCheck="isCheck" :fileSize="0" :limit="1" :fileType="['txt']"
|
|
|
+ v-model="TIData.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="TIData.radTemp" :isShowViev="true"
|
|
|
- v-on:fileView="fileView" />
|
|
|
+ <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>
|
|
@@ -222,34 +233,36 @@
|
|
|
</div>
|
|
|
<div class="box" v-if="TransmittanceData">
|
|
|
<span class="title">透过率数据</span>
|
|
|
- <el-form :disabled="checkShow || addBtn" ref="TransmittanceData" :model="TransmittanceData"
|
|
|
- label-width="80px">
|
|
|
+ <el-form :disabled="checkShow || addBtn" ref="TransmittanceData" :model="TransmittanceData" 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="TransmittanceData.rawData" />
|
|
|
+ <file-upload :fileSize="0" :limit="1" :isCheck="isCheck" :fileType="['txt']"
|
|
|
+ v-model="TransmittanceData.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="TransmittanceData.curve1" />
|
|
|
+ <file-upload :fileSize="0" :limit="1" :isCheck="isCheck" :fileType="['txt']" :isShowViev="true"
|
|
|
+ v-on:fileView="fileView" v-model="TransmittanceData.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="TransmittanceData.curve2"
|
|
|
- :isShowViev="true" v-on:fileView="fileView" />
|
|
|
+ <file-upload :fileSize="0" :isCheck="isCheck" :limit="1" :fileType="['txt']"
|
|
|
+ v-model="TransmittanceData.curve2" :isShowViev="true" v-on:fileView="fileView" />
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
- <div v-if="!isCheck" slot="footer" class="dialog-footer">
|
|
|
+ <div v-if="!isCheck" slot="footer" class="footerBtn">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
<el-button @click="cancel" style="margin-left: 40px;">取 消</el-button>
|
|
|
</div>
|
|
|
- <el-dialog :close-on-click-modal="false" title="增加标定温度" :visible.sync="addCalTempVisible" width="500px" append-to-body>
|
|
|
- <el-form ref="calTempForm" :model="calTempForm" label-width="60px">
|
|
|
+ <el-dialog :close-on-click-modal="false" title="增加标定温度" :visible.sync="addCalTempVisible" width="500px"
|
|
|
+ append-to-body>
|
|
|
+ <el-form ref="calTempForm" :model="calTempForm" label-width="60px">
|
|
|
<el-form-item label="温度" prop="temp">
|
|
|
<el-input v-model="calTempForm.temp" placeholder="请输入温度" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="文件" prop="calTempFile">
|
|
|
- <file-upload :fileSize="0" :limit="1" :fileType="['txt']" v-model="calTempForm.calTempFile" />
|
|
|
+ <file-upload :fileSize="0" :limit="1" :isCheck="isCheck" :fileType="['txt']"
|
|
|
+ v-model="calTempForm.calTempFile" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -258,7 +271,7 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<el-dialog :close-on-click-modal="false" title="数据可视化" :visible.sync="fileVisible" width="70%" append-to-body>
|
|
|
- <ECharts class="chartShow" :chartData="chartData" :width="chartType === 'heatmap'?'400px':'100%'" />
|
|
|
+ <ECharts class="chartShow" :chartData="chartData" :width="chartType === 'heatmap' ? '400px' :'100%'" />
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -333,7 +346,10 @@ export default {
|
|
|
fpsOptions: [],
|
|
|
spectralBandOptions: [],
|
|
|
// 表单校验和验证
|
|
|
- rules: {
|
|
|
+ formRules: {
|
|
|
+ model: [
|
|
|
+ { required: true, message: "发动机型号不能为空", trigger: "change" },
|
|
|
+ ],
|
|
|
measurementBatchId: [
|
|
|
{ required: true, message: "测量批次id不能为空", trigger: "blur" },
|
|
|
],
|
|
@@ -343,7 +359,7 @@ export default {
|
|
|
angle: [{ required: true, message: "角度不能为空", trigger: "change" }],
|
|
|
testDistance: [
|
|
|
{
|
|
|
- pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
|
|
|
+ pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{0,2})?|1000(\.00?)?)$/,
|
|
|
message: "请输入0.00-1000.00之间的数字,最多可保留两位小数",
|
|
|
trigger: "blur",
|
|
|
},
|
|
@@ -361,44 +377,75 @@ export default {
|
|
|
atmosPress: [
|
|
|
{
|
|
|
pattern:
|
|
|
- /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1[0-4]\d{2}(\.\d{1,2})?|1500(\.00?)?)$/,
|
|
|
+ /^(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之间的数字,最多可保留两位小数",
|
|
|
trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
temperature: [
|
|
|
{
|
|
|
- pattern: /^(230|2[3-9]\d|30\d|31\d|320)(\.\d{2})?$/,
|
|
|
+ pattern: /^(230|2[3-9]\d|30\d|31\d|320)(\.\d{0,2})?$/,
|
|
|
message: "请输入230.00-320.00K之间的数字,最多可保留两位小数",
|
|
|
trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
windSpeed: [
|
|
|
{
|
|
|
- pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{1,2})?|1000(\.00?)?)$/,
|
|
|
+ pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{0,2})?|1000(\.00?)?)$/,
|
|
|
message: "请输入0.00-1000.00m/s之间的数字,最多可保留两位小数",
|
|
|
trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
humidity: [
|
|
|
{
|
|
|
- pattern: /(^(\d|[1-9]\d)(\.\d{1,2})?$)|(^100$)/,
|
|
|
+ pattern: /(^(\d|[1-9]\d)(\.\d{0,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?)?)$/,
|
|
|
+ pattern: /^(0(\.\d{1,2})?|[1-9]\d{0,2}(\.\d{0,2})?|1000(\.00?)?)$/,
|
|
|
message: "请输入0.00-1000.00mol之间的数字,最多可保留两位小数",
|
|
|
trigger: "blur",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ radiationRules: {
|
|
|
+ model: [
|
|
|
+ { required: true, message: "型号不能为空", trigger: "blur" },
|
|
|
+ { min: 0, max: 50, message: '长度在 0 到 50 个字符', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ lensFView: [
|
|
|
+ { required: true, message: "镜头视场角不能为空" },
|
|
|
+ { required: true, pattern: /^(0|[1-8]?[0-9]|90)(\.\d{0,2})?$/, message: '请输入0.00-90.00mard之间的数字,最多可保留两位小数', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ gain: [
|
|
|
+ { required: true, message: '增益不能为空' },
|
|
|
+ { type: 'number', min: 1, max: 10, message: '请输入1-10x之间的数字', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+
|
|
|
+ },
|
|
|
+ TIRules: {
|
|
|
+ model: [
|
|
|
+ { required: true, message: "型号不能为空", trigger: "blur" },
|
|
|
+ { min: 0, max: 50, message: '长度在 0 到 50 个字符', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ // lensFView:[
|
|
|
+ // { required: true, message: "镜头视场角不能为空", trigger: "change" },
|
|
|
+ // ],
|
|
|
+ integrationTime: [
|
|
|
+ { type: 'number', min: 1, max: 100, message: '请输入1-100s之间的数字', 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)),
|
|
|
checkShow: this.isCheck,
|
|
|
addBtn: this.addFlag,
|
|
|
// 过滤后的measureBatchOption
|
|
@@ -409,7 +456,7 @@ export default {
|
|
|
temp: null,
|
|
|
calTempFile: null,
|
|
|
},
|
|
|
- changeFlag:[],
|
|
|
+ changeFlag: [],
|
|
|
chartType: "",
|
|
|
fileVisible: false,
|
|
|
chartData: {},
|
|
@@ -421,28 +468,24 @@ export default {
|
|
|
form: {
|
|
|
handler(newVal) {
|
|
|
this.formData = newVal;
|
|
|
- this.changeFlag.push(1)
|
|
|
},
|
|
|
immediate: true
|
|
|
},
|
|
|
radiationForm: {
|
|
|
handler(newVal) {
|
|
|
this.radiationData = newVal;
|
|
|
- this.changeFlag.push(2)
|
|
|
},
|
|
|
immediate: true
|
|
|
},
|
|
|
TIForm: {
|
|
|
handler(newVal) {
|
|
|
this.TIData = newVal;
|
|
|
- this.changeFlag.push(3)
|
|
|
},
|
|
|
immediate: true
|
|
|
},
|
|
|
TransmittanceForm: {
|
|
|
handler(newVal) {
|
|
|
this.TransmittanceData = newVal;
|
|
|
- this.changeFlag.push(4)
|
|
|
},
|
|
|
immediate: true
|
|
|
},
|
|
@@ -496,17 +539,12 @@ export default {
|
|
|
return "";
|
|
|
}
|
|
|
},
|
|
|
- validate(formName,callback){
|
|
|
- this.$refs[formName].validate((valid) => {
|
|
|
- callback(valid)
|
|
|
- })
|
|
|
- },
|
|
|
// 清除验证表单
|
|
|
- clearcheck(formName){
|
|
|
- if(this.$refs[formName]){
|
|
|
- this.$refs[formName].clearValidate()
|
|
|
- }
|
|
|
- },
|
|
|
+ // clearcheck(formName){
|
|
|
+ // if(this.$refs[formName]){
|
|
|
+ // this.$refs[formName].clearValidate()
|
|
|
+ // }
|
|
|
+ // },
|
|
|
// 点击增加按钮
|
|
|
onClickBtn(type) {
|
|
|
this.$emit('on-click-btn', type)
|
|
@@ -529,27 +567,78 @@ export default {
|
|
|
this.addCalTempVisible = false
|
|
|
this.resetCalTempForm()
|
|
|
},
|
|
|
- cancelCalTemp(){
|
|
|
+ cancelCalTemp() {
|
|
|
this.addCalTempVisible = false
|
|
|
this.resetCalTempForm()
|
|
|
},
|
|
|
- resetCalTempForm(){
|
|
|
+ resetCalTempForm() {
|
|
|
this.calTempForm = {
|
|
|
temp: null,
|
|
|
calTempFile: null,
|
|
|
}
|
|
|
},
|
|
|
- delCalTemp(row){
|
|
|
- this.calTempData = this.calTempData.filter(item=> {
|
|
|
+ delCalTemp(row) {
|
|
|
+ this.calTempData = this.calTempData.filter(item => {
|
|
|
return item !== row
|
|
|
});
|
|
|
},
|
|
|
// 环境参数保存
|
|
|
envDataSave() {
|
|
|
- this.$emit('env-data-save', this.$refs["form"])
|
|
|
+ if (this.$refs.formData.validate()) {
|
|
|
+ this.$emit('env-data-save', this.$refs["form"])
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ validateAll() {
|
|
|
+ return Promise.all([
|
|
|
+ this.$refs.formData.validate(),
|
|
|
+ this.$refs.radiationData.validate(),
|
|
|
+ this.$refs.TIData.validate(),
|
|
|
+ this.$refs.TransmittanceData.validate()
|
|
|
+ ]);
|
|
|
},
|
|
|
submitForm() {
|
|
|
- this.$emit('submit-form', this.$refs,this.changeFlag)
|
|
|
+ this.validateAll()
|
|
|
+ .then(() => {
|
|
|
+ // console.log("11", this.TransmittanceForm, this.TransmittanceFlag);
|
|
|
+ if (!this.isObjectEqual(this.formFlag, this.form)) {
|
|
|
+ this.changeFlag.push(1)
|
|
|
+ }
|
|
|
+ if (!this.isObjectEqual(this.radiationFlag, this.radiationForm)) {
|
|
|
+ this.changeFlag.push(2)
|
|
|
+ }
|
|
|
+ if (!this.isObjectEqual(this.TIFlag, this.TIForm)) {
|
|
|
+ this.changeFlag.push(3)
|
|
|
+ }
|
|
|
+ if (!this.isObjectEqual(this.TransmittanceFlag, this.TransmittanceForm)) {
|
|
|
+ this.changeFlag.push(4)
|
|
|
+ }
|
|
|
+ this.$emit('submit-form', this.$refs, this.changeFlag);
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ console.log('出现错误', err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ isObjectEqual(obj1, obj2) {
|
|
|
+ if (obj1 === obj2) return true;
|
|
|
+ if (typeof obj1 !== 'object' || obj1 === null || typeof obj2 !== 'object' || obj2 === null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ const keys1 = Object.keys(obj1);
|
|
|
+ for (let key of keys1) {
|
|
|
+ if (obj1[key] && typeof obj1[key] === 'object') {
|
|
|
+ // 如果 obj1 的属性是对象,则递归比较
|
|
|
+ if (!partialEqual(obj1[key], obj2[key])) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 否则,直接比较属性值
|
|
|
+ if (obj1[key] !== obj2[key]) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
},
|
|
|
cancel() {
|
|
|
this.$emit('cancel')
|
|
@@ -597,38 +686,38 @@ export default {
|
|
|
handleLineChart(data) {
|
|
|
this.chartType = "line";
|
|
|
const data1 = data[0].replace(/\s+/g, " ").split(" ");
|
|
|
- const customName= data1.map(label => ({ [label + 'Data']: [] }))
|
|
|
- let yAxis=[],series=[]
|
|
|
+ const customName = data1.map(label => ({ [label + 'Data']: [] }))
|
|
|
+ let yAxis = [], series = []
|
|
|
for (let i = 1; i < data.length; i++) {
|
|
|
let row = data[i].split("\t");
|
|
|
- customName.forEach((item,index)=>{
|
|
|
- for (let key in item){
|
|
|
+ customName.forEach((item, index) => {
|
|
|
+ for (let key in item) {
|
|
|
item[key].push(parseFloat(row[index]))
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
- console.log("customName",customName);
|
|
|
+ console.log("customName", customName);
|
|
|
// delete data1[Object.keys(data1)[0]]
|
|
|
- customName.forEach((item,index)=>{
|
|
|
- if(index===0) return
|
|
|
- else{
|
|
|
+ customName.forEach((item, index) => {
|
|
|
+ if (index === 0) return
|
|
|
+ else {
|
|
|
yAxis.push({
|
|
|
type: "value",
|
|
|
name: data1[index],
|
|
|
- position: index===1?'left':'right',
|
|
|
+ position: index === 1 ? 'left' : 'right',
|
|
|
alignTicks: true,
|
|
|
axisLine: {
|
|
|
show: true,
|
|
|
},
|
|
|
})
|
|
|
series.push({
|
|
|
- name: data1[index],
|
|
|
- type: "line",
|
|
|
- data: item[Object.keys(item)[0]],
|
|
|
- },)
|
|
|
- }
|
|
|
+ name: data1[index],
|
|
|
+ type: "line",
|
|
|
+ data: item[Object.keys(item)[0]],
|
|
|
+ },)
|
|
|
+ }
|
|
|
})
|
|
|
- console.log("11",Object.values(customName[0]));
|
|
|
+ console.log("11", Object.values(customName[0]));
|
|
|
const chartData = {
|
|
|
tooltip: {
|
|
|
trigger: "axis",
|
|
@@ -639,21 +728,21 @@ export default {
|
|
|
xAxis: [
|
|
|
{
|
|
|
type: "category",
|
|
|
- name:data1[0],
|
|
|
+ name: data1[0],
|
|
|
axisTick: {
|
|
|
alignWithLabel: true,
|
|
|
},
|
|
|
axisLine: {
|
|
|
show: true,
|
|
|
},
|
|
|
-
|
|
|
- data: Object.values(customName[0])[0] ,
|
|
|
+
|
|
|
+ data: Object.values(customName[0])[0],
|
|
|
},
|
|
|
],
|
|
|
yAxis: yAxis,
|
|
|
series: series,
|
|
|
};
|
|
|
- this.chartData=JSON.parse(JSON.stringify(chartData))
|
|
|
+ this.chartData = JSON.parse(JSON.stringify(chartData))
|
|
|
},
|
|
|
handleHeatmapChart(data) {
|
|
|
this.chartType = "heatmap";
|
|
@@ -716,7 +805,7 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
};
|
|
|
- this.chartData=JSON.parse(JSON.stringify(chartData))
|
|
|
+ this.chartData = JSON.parse(JSON.stringify(chartData))
|
|
|
},
|
|
|
},
|
|
|
};
|
|
@@ -738,6 +827,7 @@ export default {
|
|
|
font-size: 1rem;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
::v-deep .el-upload--picture-card {
|
|
|
width: 80px;
|
|
|
height: 80px;
|
|
@@ -748,11 +838,13 @@ export default {
|
|
|
width: 80px;
|
|
|
height: 80px;
|
|
|
}
|
|
|
-.chartShow{
|
|
|
+
|
|
|
+.chartShow {
|
|
|
margin: 0 auto;
|
|
|
}
|
|
|
-.dialog-footer{
|
|
|
- transform:translateX(40%);
|
|
|
+
|
|
|
+.footerBtn {
|
|
|
+ transform: translateX(40%);
|
|
|
margin-top: 20px;
|
|
|
}
|
|
|
</style>
|