You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

460 lines
14 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div class="fitstStep">
<el-form
:model="ruleForm"
:rules="rules"
ref="ruleForm"
label-position="top"
>
<el-row :gutter="40">
<el-col :span="12">
<el-form-item label="测定标准" prop="determination_standard">
<el-select
v-model="ruleForm.determination_standard"
placeholder="请选择测定标准"
style="width: 100%"
>
<el-option v-for='item in standards' :key='item.value' :label='item.label' :value='item.value'/>
<!-- <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="预期闪点" prop="expected_flash_point">
<el-input v-model="ruleForm.expected_flash_point" @input="handInput" class="flash rightBorder">
<template slot="append">℃</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<div class="set" @click="handSet">设为未知</div>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="温度选择" prop="temperature_selection">
<el-select
v-model="ruleForm.temperature_selection"
@change="handChange"
:disabled="isDisabled"
placeholder="请选择温度"
style="width: 100%"
>
<el-option v-for='item in temps' :key='item.value' :label='item.label' :value='item.value'/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="初始温度" prop="initial_temperature_set">
<el-input
class="rightBorder"
v-model="ruleForm.initial_temperature_set"
:disabled="isDisabled"
placeholder="≤预期闪点-18℃"
>
<template slot="append">℃</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="样品名称" prop="material_name">
<el-input v-model="ruleForm.material_name" placeholder="请输入样品名称">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="最终温度" prop="final_temperature_set">
<el-input
class="rightBorder"
v-model="ruleForm.final_temperature_set"
:disabled="isDisabled"
placeholder="≥预期闪点+10℃"
>
<template slot="append">℃</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="样品编号" prop="material_code">
<el-input v-model="ruleForm.material_code" placeholder="请输入样品编号">
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<div class="goBack" @click="handBack">返回</div>
</el-col>
<el-col :span="6">
<div class="sampling" @click="handTake('ruleForm')"></div>
</el-col>
</el-row>
</el-form>
<div class="model" v-show="isShow">
<span class="icon">!</span>
<div class="dec">请确定您已连接好制冷装置</div>
<div class="tip">请确定连接好制冷装置再继续</div>
<div class="bottom">
<div class="cancel button" @click="handCancel"></div>
<div class="continue button" @click="handContinue"></div>
</div>
</div>
</div>
</template>
<script>
import { addExperiment } from "@/api/step";
import { getInitParams } from "@/api/setSystem";
export default {
data() {
return {
isDisabled:false,
initialMinNum:100,
initialMaxNum:420,
isShow:false,
standards:[
// {
// value:'ASTM D6450(1ml)',
// label:'ASTM D6450(1ml)'
// },
// {
// value:'ASTM D7094(2ml)',
// label:'ASTM D7094(2ml)'
// },
// {
// value:'SH/T 0768(1ml)',
// label:'SH/T 0768(1ml)'
// },
],
temps:[
{
value:'高温测定(100~420℃)',
label:'高温测定(100~420℃)'
},
{
value:'低温测试(-25~100℃)',
label:'低温测试(-25~100℃)'
},
],
ruleForm: {
determination_standard: "",
temperature_selection:'高温测定(100~420℃)',
expected_flash_point:'',
initial_temperature_set:'',
material_name:'',
final_temperature_set:'',
material_code:'',
user_id:JSON.parse(sessionStorage.LoginUser).user_id
},
rules: {
determination_standard:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
temperature_selection:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
material_name:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
material_code:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
expected_flash_point:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
initial_temperature_set:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
final_temperature_set:[
{ required: true, message: '该项不能为空', trigger: 'blur' },
],
},
};
},
// watch:{
// ruleForm:{
// handler(newVal) {
// if (newVal) {
// console.log(this.ruleForm,'温度改变2')
// if(this.ruleForm.temperature_selection=='低温测试(-25~100℃)'){
// this.isShow=true;
// }else{
// this.isShow=false;
// }
// }
// },
// deep:true,
// immediate: true,
// },
// },
mounted(){
this.getInit()
},
methods: {
handChange(val){
if(val=='低温测试(-25~100℃)'){
this.isShow=true
}else{
this.isShow=false
}
},
handInput(val){
console.log(val,'闪电值')
if(val!='未知'){
this.isDisabled=false;
}
},
getInit(){
getInitParams().then(res=>{
if(res.data.data.length>0){
res.data.data.map(item=>{
this.standards.push({
value:item.determination_standard,
label:item.determination_standard,
})
})
}else{
this.$message.warning('请初始化测定标准参数')
}
})
},
handSet() {
this.ruleForm.expected_flash_point='未知';
this.ruleForm.temperature_selection='低温测试(-25~100℃)';
this.ruleForm.initial_temperature_set='10';
this.ruleForm.final_temperature_set='100';
this.isDisabled=true
},
handCancel(){
this.ruleForm.temperature_selection='高温测定(100~420℃)'
this.isShow=false
},
handContinue(){
this.isShow=false
this.ruleForm.temperature_selection='低温测试(-25~100℃)'
},
handBack(){
this.$router.push({path:'/home'})
},
handTake(formName){
var that=this
this.$refs[formName].validate((valid) => {
if (valid) {
if(that.ruleForm.expected_flash_point!='未知'&&isNaN(that.ruleForm.expected_flash_point)){
return that.$message.warning('预期闪点只能设置为数值或未知!')
}
if(!isNaN(that.ruleForm.expected_flash_point)){
console.log(Number(that.ruleForm.expected_flash_point)-Number(that.ruleForm.initial_temperature_set),'测试')
if(Number(that.ruleForm.expected_flash_point)-Number(that.ruleForm.initial_temperature_set)<18){
return that.$message.warning('<=18')
}
if(Number(that.ruleForm.final_temperature_set)-Number(that.ruleForm.expected_flash_point)<10){
return that.$message.warning('>=预期闪点10')
}
}
if(Number(that.ruleForm.final_temperature_set)<Number(that.ruleForm.initial_temperature_set)){
return that.$message.warning('最终温度不能小于初始温度')
}
if(that.ruleForm.temperature_selection=='高温测定(100~420)'){
if(that.ruleForm.initial_temperature_set<100||that.ruleForm.initial_temperature_set>420){
return that.$message.warning('高温模式下初始温度范围为100-420')
}
if(that.ruleForm.final_temperature_set<100||that.ruleForm.final_temperature_set>420){
return that.$message.warning('高温模式下最终温度范围为100-420')
}
}else if(that.ruleForm.temperature_selection=='低温测试(-25~100)'){
if(that.ruleForm.initial_temperature_set<-25||that.ruleForm.initial_temperature_set>100){
return that.$message.warning('低温模式下初始温度范围为-25~100')
}
if(that.ruleForm.final_temperature_set<-25||that.ruleForm.final_temperature_set>100){
return that.$message.warning('低温模式下最终温度范围为-25~100')
}
}
addExperiment(this.ruleForm).then(res=>{
if(res.data.status==0){
localStorage.setItem('experiment_info',JSON.stringify(res.data.data))
this.$emit('next')
}else{
this.$message.error(res.data.message)
}
})
}
})
}
},
};
</script>
<style lang="less" >
.el-select-dropdown__item{
height: 68px;
background: #F6F6F6;
border-radius: 0px 0px 0px 0px;
opacity: 1;
font-size: 28px;
border:2px solid #E4E4E4;
line-height: 68px;
}
.fitstStep {
.el-form {
margin-top: 28px;
padding: 0 40px;
//label标题
.el-form-item__label {
padding: 0;
font-size: 24px;
color: #666666;
margin-bottom: 12px;
}
// 表格
.el-form-item__content {
// width: 440px;
.el-input__inner {
height: 68px;
background: #ffffff;
border-radius: 4px 0 0 4px;
opacity: 1;
border: 1px solid #dcdcdc;
font-size: 28px;
color: #3a3a3a;
}
.rightBorder .el-input__inner {
border-right: 0;
}
.flash {
width: 220px;
}
.el-input-group__append,
.el-input-group__prepend {
background: #ffffff;
border: 1px solid #dcdcdc;
border-left: 0;
color: #c3c3c3;
font-size: 28px;
}
}
.set {
width: 220px;
height: 68px;
background: linear-gradient(180deg, #ffffff 0%, #ececec 100%);
box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
border-radius: 8px 8px 8px 8px;
margin-top: 44px;
font-size: 28px;
color: #51a8ff;
text-align: center;
line-height: 68px;
}
.goBack {
width: 208px;
height: 84px;
background: linear-gradient(180deg, #ffffff 0%, #ececec 100%);
box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
border-radius: 8px 8px 8px 8px;
font-size: 36px;
line-height: 84px;
color: #3a3a3a;
text-align: center;
margin-top: 36px;
}
.sampling {
width: 208px;
height: 84px;
background: linear-gradient(180deg, #ff7b83 0%, #850006 100%);
box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.4);
border-radius: 8px 8px 8px 8px;
font-size: 36px;
line-height: 84px;
color: #fff;
text-align: center;
margin-top: 36px;
}
}
.footer{
width: 1024px;
height: 40px;
background: #3A3A3A;
border-radius: 0px 0px 0px 0px;
opacity: 0.18;
text-align: center;
span{
z-index:99;
font-size: 24px;
color: red;
line-height: 40px;
}
}
.model{
position: fixed;
top:116px;
left:286px;
width:440px;
height:534px;
box-shadow: 0px 3px 6px 1px rgba(0,0,0,0.16);
border-radius: 8px 8px 8px 8px;
background:#fff;
.icon{
display:block ;
border-radius: 50%;
margin:80px auto 0;
width: 94px;
height: 94px;
background: linear-gradient(180deg, #FFB300 0%, #FF7D00 100%);
font-size: 80px;
color:#fff;
text-align: center;
}
.dec{
margin:70px auto 0;
font-size: 28px;
font-weight: bold;
color: #3A3A3A;
text-align: center;
}
.tip{
margin:32px auto 0;
font-size: 24px;
font-weight: 400;
color: #C3C3C3;
text-align: center;
}
.bottom{
margin-top:64px;
display: flex;
justify-content: center;
text-align: center;
width:100%;
height:70px;
.button{
width: 136px;
height: 68px;
box-shadow: 0px 3px 6px 1px rgba(0,0,0,0.16);
border-radius: 8px 8px 8px 8px;
font-size: 28px;
}
.cancel{
background: linear-gradient(180deg, #FFFFFF 0%, #ECECEC 100%);
color: #3A3A3A;
margin-right:12px;
line-height:68px;
}
.continue{
background: linear-gradient(180deg, #FF7B83 0%, #850006 100%);
color: #fff;
line-height:68px;
}
}
}
}
</style>