Commit 7583a04c authored by 裴文涛's avatar 裴文涛

修改Bug,统一调整表单校验规则样式

parent 44482294
...@@ -12,15 +12,15 @@ const addWindowOpen = ref(false) ...@@ -12,15 +12,15 @@ const addWindowOpen = ref(false)
const reviseForm = ref({}) // 修改表单 const reviseForm = ref({}) // 修改表单
const addForm = ref({}) // 新增表单 const addForm = ref({}) // 新增表单
const addSaveBtnLoading = ref(false) const addSaveBtnLoading = ref(false)
const labelPosition = ref('top')
const formRef = ref() const formRef = ref()
//校验规则 //校验规则
const rules = reactive({ const rules = reactive({
phenomenonTemp: [ phenomenonTemp: [
{required: true, message: '请输入正确的对应温度', trigger: 'blur'}, {required: true, message: '请输入正确的对应温度', trigger: 'blur'},
{pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的对应温度", trigger: "change"} {pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的对应温度", trigger: "blur"}
] ]
}); });
const tableHeaderClass = data => { // 表头样式 const tableHeaderClass = data => { // 表头样式
...@@ -90,11 +90,12 @@ function handleClose() { ...@@ -90,11 +90,12 @@ function handleClose() {
function onReviseSubmit() { function onReviseSubmit() {
formRef.value.validate((valid) => { formRef.value.validate((valid) => {
if (valid) { if (valid) {
if(Math.abs(Number(reviseForm.value.phenomenonTemp)) > 30){ if(Number(reviseForm.value.phenomenonTemp) > 45 || Number(reviseForm.value.phenomenonTemp) < -30){
ElMessage({ ElMessage({
message: '对应温度不能大于30度或小于-30度', message: '对应温度不能大于45度或小于-30度',
type: 'error', type: 'error',
}) })
reviseSaveBtnLoading.value = false
return return
} }
if (reviseForm.value.phenomenonName === '晴天') { if (reviseForm.value.phenomenonName === '晴天') {
...@@ -132,9 +133,9 @@ function onReviseSubmit() { ...@@ -132,9 +133,9 @@ function onReviseSubmit() {
function onAddSubmit() { function onAddSubmit() {
addSaveBtnLoading.value = true addSaveBtnLoading.value = true
formRef.value.validate(valid => { formRef.value.validate(valid => {
if(Math.abs(Number(addForm.value.phenomenonTemp)) > 30){ if(Number(addForm.value.phenomenonTemp) > 45 || Number(addForm.value.phenomenonTemp) < -30){
ElMessage({ ElMessage({
message: '对应温度不能大于30度或小于-30度', message: '对应温度不能大于45度或小于-30度',
type: 'error', type: 'error',
}) })
addSaveBtnLoading.value = false addSaveBtnLoading.value = false
...@@ -238,11 +239,11 @@ function customSort(a, b) { ...@@ -238,11 +239,11 @@ function customSort(a, b) {
<div class="dialog-window"> <div class="dialog-window">
<el-dialog title="天气工况设置修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose"> <el-dialog title="天气工况设置修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose">
<template #default> <template #default>
<el-form ref="formRef" :rules="rules" :model="reviseForm" label-width="auto"> <el-form ref="formRef" :rules="rules" :model="reviseForm" :inline-message="true" label-width="auto">
<el-row first> <el-row first>
<el-col :span="8" col-label class="energy-type-class">名称:</el-col> <el-col :span="8" col-label class="energy-type-class">名称:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.phenomenonName" style="width: 370px"> <el-select placeholder="" size="small" v-model="reviseForm.phenomenonName" style="width: 290px">
<el-option value="晴天" label="晴天"/> <el-option value="晴天" label="晴天"/>
<el-option value="多云" label="多云"/> <el-option value="多云" label="多云"/>
<el-option value="阴天" label="阴天"/> <el-option value="阴天" label="阴天"/>
...@@ -253,14 +254,14 @@ function customSort(a, b) { ...@@ -253,14 +254,14 @@ function customSort(a, b) {
<el-col :span="8" col-label>对应温度:</el-col> <el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-form-item prop="phenomenonTemp" style="padding: 0;margin: 0;"> <el-form-item prop="phenomenonTemp" style="padding: 0;margin: 0;">
<el-input maxlength="11" v-model="reviseForm.phenomenonTemp" placeholder="" style="width: 370px"/> <el-input maxlength="10" v-model="reviseForm.phenomenonTemp" placeholder="" style="width: 290px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" col-label>描述:</el-col> <el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-input maxlength="11" v-model="reviseForm.phenomenonDesc" placeholder="" style="width: 370px"/> <el-input maxlength="10" v-model="reviseForm.phenomenonDesc" placeholder="" style="width: 290px"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
...@@ -275,11 +276,11 @@ function customSort(a, b) { ...@@ -275,11 +276,11 @@ function customSort(a, b) {
</el-dialog> <!-- 修改弹窗 --> </el-dialog> <!-- 修改弹窗 -->
<el-dialog title="天气工况设置新增" v-model="addWindowOpen" width="700px" :before-close="handleClose"> <el-dialog title="天气工况设置新增" v-model="addWindowOpen" width="700px" :before-close="handleClose">
<template #default> <template #default>
<el-form ref="formRef" :model="addForm" :rules="rules" label-width="auto"> <el-form ref="formRef" :model="addForm" :rules="rules" :inline-message="true" label-width="auto">
<el-row first> <el-row first>
<el-col :span="8" col-label class="energy-type-class">名称:</el-col> <el-col :span="8" col-label class="energy-type-class">名称:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.phenomenonName" style="width: 370px"> <el-select placeholder="" size="small" v-model="addForm.phenomenonName" style="width: 290px">
<el-option value="晴天" label="晴天"/> <el-option value="晴天" label="晴天"/>
<el-option value="多云" label="多云"/> <el-option value="多云" label="多云"/>
<el-option value="阴天" label="阴天"/> <el-option value="阴天" label="阴天"/>
...@@ -289,15 +290,15 @@ function customSort(a, b) { ...@@ -289,15 +290,15 @@ function customSort(a, b) {
<el-row> <el-row>
<el-col :span="8" col-label>对应温度:</el-col> <el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-form-item prop="phenomenonTemp" style="padding: 0;margin: 0;"> <el-form-item prop="phenomenonTemp" style="padding: 0;margin: 0;">
<el-input maxlength="11" v-model="addForm.phenomenonTemp" placeholder="" style="width: 370px"/> <el-input maxlength="10" v-model="addForm.phenomenonTemp" placeholder="" style="width: 290px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" col-label>描述:</el-col> <el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-input maxlength="11" v-model="addForm.phenomenonDesc" placeholder="" style="width: 370px"/> <el-input maxlength="10" v-model="addForm.phenomenonDesc" placeholder="" style="width: 290px"/>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
......
...@@ -56,6 +56,7 @@ const revise = (row) => { // 修改按钮单击事件 ...@@ -56,6 +56,7 @@ const revise = (row) => { // 修改按钮单击事件
} }
const bind = (row) => { // 绑定按钮单击事件 const bind = (row) => { // 绑定按钮单击事件
dependentSub.value = row dependentSub.value = row
console.log('绑定换热站数据',row)
bindWindowOpen.value = true bindWindowOpen.value = true
} }
const cancelRevise = ()=>{ const cancelRevise = ()=>{
......
...@@ -46,7 +46,7 @@ const rules = reactive({ ...@@ -46,7 +46,7 @@ const rules = reactive({
{ {
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的对应温度", message: "请输入正确的对应温度",
trigger: "change" trigger: "blur"
} }
] ]
}); });
...@@ -113,9 +113,9 @@ function onReviseSubmit() { ...@@ -113,9 +113,9 @@ function onReviseSubmit() {
reviseSaveBtnLoading.value = true reviseSaveBtnLoading.value = true
formRef.value.validate(valid=>{ formRef.value.validate(valid=>{
if(valid){ if(valid){
if(Math.abs(Number(reviseForm.value.windTemp)) > 30){ if(Number(reviseForm.value.windTemp) > 45 || Number(reviseForm.value.windTemp) < -30){
ElMessage({ ElMessage({
message: '对应温度不能大于30度或小于-30度', message: '对应温度不能大于45度或小于-30度',
type: 'error', type: 'error',
}) })
reviseSaveBtnLoading.value = false reviseSaveBtnLoading.value = false
...@@ -153,9 +153,9 @@ function onAddSubmit() { ...@@ -153,9 +153,9 @@ function onAddSubmit() {
addSaveBtnLoading.value = true; addSaveBtnLoading.value = true;
formRef.value.validate(valid=>{ formRef.value.validate(valid=>{
if(valid){ if(valid){
if(Math.abs(Number(addForm.value.windTemp)) > 30){ if(Number(addForm.value.windTemp) > 45 || Number(addForm.value.windTemp) < -30){
ElMessage({ ElMessage({
message: '对应温度不能大于30度或小于-30度', message: '对应温度不能大于45度或小于-30度',
type: 'error', type: 'error',
}) })
addSaveBtnLoading.value = false addSaveBtnLoading.value = false
...@@ -254,11 +254,11 @@ function customSort(a, b) { ...@@ -254,11 +254,11 @@ function customSort(a, b) {
<div class="dialog-window"> <div class="dialog-window">
<el-dialog title="风力配置修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose"> <el-dialog title="风力配置修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose">
<template #default> <template #default>
<el-form :rules="rules" ref="formRef" :model="reviseForm" label-width="auto"> <el-form :rules="rules" ref="formRef" :inline-message="true" :model="reviseForm" label-width="auto">
<el-row first> <el-row first>
<el-col :span="8" col-label class="energy-type-class">级数:</el-col> <el-col :span="8" col-label class="energy-type-class">级数:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.windLevel" style="width: 370px"> <el-select placeholder="" size="small" v-model="reviseForm.windLevel" style="width: 290px">
<el-option v-for="(item, index) in 14" :key="index" :value="item" :label="item + '级风'" /> <el-option v-for="(item, index) in 14" :key="index" :value="item" :label="item + '级风'" />
</el-select> </el-select>
</el-col> </el-col>
...@@ -267,14 +267,14 @@ function customSort(a, b) { ...@@ -267,14 +267,14 @@ function customSort(a, b) {
<el-col :span="8" col-label>对应温度:</el-col> <el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-form-item prop="windTemp" style="padding: 0; margin: 0;"> <el-form-item prop="windTemp" style="padding: 0; margin: 0;">
<el-input maxlength="11" v-model="reviseForm.windTemp" placeholder="" style="width: 370px" /> <el-input maxlength="10" v-model="reviseForm.windTemp" placeholder="" style="width: 290px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" col-label>描述:</el-col> <el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-input maxlength="11" v-model="reviseForm.windDesc" placeholder="" style="width: 370px" /> <el-input maxlength="10" v-model="reviseForm.windDesc" placeholder="" style="width: 290px" />
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
...@@ -290,11 +290,11 @@ function customSort(a, b) { ...@@ -290,11 +290,11 @@ function customSort(a, b) {
<!-- 修改弹窗 --> <!-- 修改弹窗 -->
<el-dialog title="风力配置新增" v-model="addWindowOpen" width="700px" :before-close="handleClose"> <el-dialog title="风力配置新增" v-model="addWindowOpen" width="700px" :before-close="handleClose">
<template #default> <template #default>
<el-form ref="formRef" :rules="rules" :model="addForm" label-width="auto"> <el-form ref="formRef" :rules="rules" :model="addForm" :inline-message="true" label-width="auto">
<el-row first> <el-row first>
<el-col :span="8" col-label class="energy-type-class">级数:</el-col> <el-col :span="8" col-label class="energy-type-class">级数:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.windLevel" style="width: 370px"> <el-select placeholder="" size="small" v-model="addForm.windLevel" style="width: 290px">
<el-option v-for="(item, index) in 14" :key="index" :value="item" :label="item + '级风'" /> <el-option v-for="(item, index) in 14" :key="index" :value="item" :label="item + '级风'" />
</el-select> </el-select>
</el-col> </el-col>
...@@ -303,14 +303,14 @@ function customSort(a, b) { ...@@ -303,14 +303,14 @@ function customSort(a, b) {
<el-col :span="8" col-label>对应温度:</el-col> <el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-form-item prop="windTemp" style="padding: 0; margin: 0;"> <el-form-item prop="windTemp" style="padding: 0; margin: 0;">
<el-input maxlength="11" v-model="addForm.windTemp" placeholder="" style="width: 370px" /> <el-input maxlength="10" v-model="addForm.windTemp" placeholder="" style="width: 290px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" col-label>描述:</el-col> <el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value> <el-col :span="16" col-value>
<el-input maxlength="11" v-model="addForm.windDesc" placeholder="" style="width: 370px" /> <el-input maxlength="10" v-model="addForm.windDesc" placeholder="" style="width: 290px" />
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
......
<script setup> <script setup>
import { ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect, reactive } from "vue"; import { ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect, reactive } from "vue";
import { vFloatNumber } from "@/utils/directives.js"; import { vFloatNumber } from "@/utils/directives.js";
import {ElMessage} from "element-plus";
const props = defineProps({ const props = defineProps({
open: { open: {
...@@ -39,6 +40,54 @@ function handleConfirm() { ...@@ -39,6 +40,54 @@ function handleConfirm() {
addSaveBtnLoading.value = true addSaveBtnLoading.value = true
formRef.value.validate(valid=>{ formRef.value.validate(valid=>{
if(valid){ if(valid){
if(Number(addData.value.temperature) > 45 || Number(addData.value.temperature) < -30){
ElMessage({
message: '温度不能大于45度或小于-30度',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addData.value.wind) > 17 || Number(addData.value.wind) <= 0){
ElMessage({
message: '风速不能大于17或小于等于0',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addData.value.illumination) > 5000 || Number(addData.value.illumination) <= 0){
ElMessage({
message: '光照不能大于5000或小于等于0',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addData.value.diffPercentage) > 100 || Number(addData.value.diffPercentage) <= 0){
ElMessage({
message: '自动偏差百分比不能大于100或小于等于0',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addData.value.sort) < 0){
ElMessage({
message: '排序不能小于0',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addData.value.timeoutMin) < 0){
ElMessage({
message: '自动验证循环时间不能小于0',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
addData.value.operateTime = getCurrentDateTime() addData.value.operateTime = getCurrentDateTime()
emit('onConfirm', addData.value) emit('onConfirm', addData.value)
resetInput() resetInput()
...@@ -87,26 +136,38 @@ const formRef = ref() ...@@ -87,26 +136,38 @@ const formRef = ref()
//校验规则 //校验规则
const rules = reactive({ const rules = reactive({
diffPercentage: [ customizeName: [ // 自定义名称
{ pattern: /^([0-9]\d{0,1}|100$)(\.\d{1,4})?$/, "message": "请输入正确的百分比格式", trigger: "blur" } {required: true, message: '请输入自定义名称'}
], ],
wind: [ diffPercentage: [ // 自动偏差百分比
{ pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "风速必须是1-11位实数", trigger: "blur" } {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
wind: [ // 风速
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
illumination: [ illumination: [
{ pattern: /^(\d{1,2})?$/, "message": "光照必须是1-2位实数", trigger: "blur" } {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
sort: [ sort: [
{ pattern: /^(\d{1,11})$/, "message": "排序必须是1-11位正整数", trigger: "blur" } {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
timeoutMin: [ timeoutMin: [ // 验证时间
{ pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "判断时间必须是1-11位实数", trigger: "blur" } {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
temperature: [ temperature: [
{required: true, message: '请输入正确的温度'}, {required: true, message: '请输入正确的温度'},
{ pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的温度", trigger: "blur" } { pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的温度", trigger: "blur" }
],
tempRegulation: [
{required: true, message: '请输入正确数值'},
{ pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确数值", trigger: "blur" }
] ]
}); })
</script> </script>
<template> <template>
...@@ -114,12 +175,14 @@ const rules = reactive({ ...@@ -114,12 +175,14 @@ const rules = reactive({
<template #default> <template #default>
<div class="dialog-content"> <div class="dialog-content">
<el-form :rules="rules" ref="formRef" :model="addData" label-width="auto"> <el-form :rules="rules" ref="formRef" :model="addData" :inline-message="true" label-width="auto">
<el-row style="border-top: #a6c3e9 1px solid"> <el-row style="border-top: #a6c3e9 1px solid">
<el-col :span="8" class="content-col-label">自定义名称:</el-col> <el-col :span="8" class="content-col-label">自定义名称:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input maxlength="11" :input-style="inputStyle" v-model="addData.customizeName" style="width: 510px" /> <el-form-item prop="customizeName" style="padding: 0;margin: 0;">
<el-input maxlength="10" :input-style="inputStyle" v-model="addData.customizeName" style="width: 510px" />
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -138,7 +201,7 @@ const rules = reactive({ ...@@ -138,7 +201,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">温度:</el-col> <el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="temperature" style="padding: 0;margin: 0;"> <el-form-item prop="temperature" style="padding: 0;margin: 0;">
<el-input maxlength="11" :input-style="inputStyle" v-model="addData.temperature" style="width: 510px" /> <el-input maxlength="10" :input-style="inputStyle" v-model="addData.temperature" style="width: 510px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -147,7 +210,7 @@ const rules = reactive({ ...@@ -147,7 +210,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">风速:</el-col> <el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="wind" style="padding: 0;margin: 0;"> <el-form-item prop="wind" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="addData.wind" style="width: 510px" /> <el-input :input-style="inputStyle" maxlength="10" v-model="addData.wind" style="width: 510px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -155,7 +218,7 @@ const rules = reactive({ ...@@ -155,7 +218,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">光照:</el-col> <el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="illumination" style="padding: 0;margin: 0;"> <el-form-item prop="illumination" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="2" v-model="addData.illumination" <el-input :input-style="inputStyle" maxlength="10" v-model="addData.illumination"
style="width: 510px" /> style="width: 510px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -165,7 +228,7 @@ const rules = reactive({ ...@@ -165,7 +228,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">排序:</el-col> <el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="sort" style="padding: 0;margin: 0;"> <el-form-item prop="sort" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="addData.sort" style="width: 510px" /> <el-input :input-style="inputStyle" maxlength="10" v-model="addData.sort" style="width: 510px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -178,8 +241,8 @@ const rules = reactive({ ...@@ -178,8 +241,8 @@ const rules = reactive({
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col> <el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-form-item prop="diffPercentage" style="padding: 0;margin: 0;"> <el-form-item prop="diffPercentage" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.diffPercentage" <el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.diffPercentage"
style="width: 240px" /> style="width: 175px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -188,16 +251,16 @@ const rules = reactive({ ...@@ -188,16 +251,16 @@ const rules = reactive({
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col> <el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-form-item prop="timeoutMin" style="padding: 0;margin: 0;"> <el-form-item prop="timeoutMin" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.timeoutMin" <el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.timeoutMin"
style="width: 240px" /> style="width: 175px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col> <el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-form-item prop="tempRegulation" style="padding: 0;margin: 0;"> <el-form-item prop="tempRegulation" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="addData.tempRegulation" <el-input :input-style="inputStyle" maxlength="10" v-model="addData.tempRegulation"
style="width: 240px" /> style="width: 175px" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
......
...@@ -71,7 +71,7 @@ function onSubmit() { ...@@ -71,7 +71,7 @@ function onSubmit() {
bindData.value.isAuto = bindData.value.isAuto === '自动模式' ? true : false; bindData.value.isAuto = bindData.value.isAuto === '自动模式' ? true : false;
bindData.value.isFixed = bindData.value.isFixed === '固定模式' ? true : false; bindData.value.isFixed = bindData.value.isFixed === '固定模式' ? true : false;
bindData.value.updateNullFields = "" bindData.value.updateNullFields = ""
emit('onConfirm', bindData.value)gi emit('onConfirm', bindData.value)
}else { }else {
ElMessage.error('请选择供热站') ElMessage.error('请选择供热站')
} }
...@@ -83,7 +83,7 @@ function onSubmit() { ...@@ -83,7 +83,7 @@ function onSubmit() {
* @param isAvailable 是否可用,默认为true,表示可用 * @param isAvailable 是否可用,默认为true,表示可用
*/ */
async function getTransfer(supplyId, isAvailable = true) { async function getTransfer(supplyId, isAvailable = true) {
selectedTransfer.value.length = 0 // 置空,不然会重复添加 console.log('supplyId>>>>>>>', supplyId)
let param = { let param = {
customizeId: bindData.value.customizeId, customizeId: bindData.value.customizeId,
supplyId: supplyId supplyId: supplyId
...@@ -93,6 +93,10 @@ async function getTransfer(supplyId, isAvailable = true) { ...@@ -93,6 +93,10 @@ async function getTransfer(supplyId, isAvailable = true) {
*/ */
const result = await getTransferInterface(param) const result = await getTransferInterface(param)
transferData.value = result.data transferData.value = result.data
if(isAvailable){
// 每次需要为换热站推入数据时,清空已有的数据
selectedTransfer.value.length = 0
}
for (const item of transferData.value) { for (const item of transferData.value) {
if (!isAvailable) { if (!isAvailable) {
item.selected = item.selected.toLowerCase() === 'true' ? true : false item.selected = item.selected.toLowerCase() === 'true' ? true : false
......
...@@ -3,6 +3,7 @@ import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect, ...@@ -3,6 +3,7 @@ import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect,
import cloneDeep from 'lodash/cloneDeep' import cloneDeep from 'lodash/cloneDeep'
import {vFloatNumber} from "@/utils/directives.js"; import {vFloatNumber} from "@/utils/directives.js";
import {getTransferInterface} from "@/api/scheduling.js"; import {getTransferInterface} from "@/api/scheduling.js";
import {ElMessage} from "element-plus";
const props = defineProps({ const props = defineProps({
...@@ -46,26 +47,38 @@ const formRef = ref() ...@@ -46,26 +47,38 @@ const formRef = ref()
//校验规则 //校验规则
const rules = reactive({ const rules = reactive({
diffPercentage: [ customizeName: [ // 自定义名称
{pattern: /^([0-9]\d{0,1}|100$)(\.\d{1,4})?$/, "message": "请输入正确的百分比格式", trigger: "blur"} {required: true, message: '请输入自定义名称'}
], ],
wind: [ diffPercentage: [ // 自动偏差百分比
{pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "风速必须是1-11位实数", trigger: "blur"} {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
wind: [ // 风速
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
illumination: [ illumination: [
{pattern: /^(\d{1,2})?$/, "message": "光照必须是1-11位实数", trigger: "blur"} {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
sort: [ sort: [
{pattern: /^(\d{1,11})$/, "message": "排序必须是1-11位正整数", trigger: "blur"} {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
timeoutMin: [ timeoutMin: [ // 验证时间
{pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "判断时间必须是1-10位实数", trigger: "blur"} {required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
], ],
temperature: [ temperature: [
{required: true, message: '请输入正确的温度', trigger: 'blur'}, {required: true, message: '请输入正确的温度'},
{pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的温度", trigger: "blur"} { pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的温度", trigger: "blur" }
],
tempRegulation: [
{required: true, message: '请输入正确数值'},
{ pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确数值", trigger: "blur" }
] ]
}); })
watchEffect(() => { watchEffect(() => {
reviseData.value = props.data // 深拷贝数据 reviseData.value = props.data // 深拷贝数据
}) })
...@@ -93,6 +106,48 @@ function handleConfirm() { ...@@ -93,6 +106,48 @@ function handleConfirm() {
reviseData.value.transfers = [] reviseData.value.transfers = []
formRef.value.validate(async valid => { formRef.value.validate(async valid => {
if (valid) { if (valid) {
if(Number(reviseData.value.temperature) > 45 || Number(reviseData.value.temperature) < -30){
ElMessage({
message: '温度不能大于45度或小于-30度',
type: 'error',
})
return
}
if(Number(reviseData.value.wind) > 17 || Number(reviseData.value.wind) <= 0){
ElMessage({
message: '风速不能大于17或小于等于0',
type: 'error',
})
return
}
if(Number(reviseData.value.illumination) > 5000 || Number(reviseData.value.illumination) <= 0){
ElMessage({
message: '光照不能大于5000或小于等于0',
type: 'error',
})
return
}
if(Number(reviseData.value.diffPercentage) > 100 || Number(reviseData.value.diffPercentage) <= 0){
ElMessage({
message: '自动偏差百分比不能大于100或小于等于0',
type: 'error',
})
return
}
if(Number(reviseData.value.sort) < 0){
ElMessage({
message: '排序不能小于0',
type: 'error',
})
return
}
if(Number(reviseData.value.timeoutMin) < 0){
ElMessage({
message: '自动验证循环时间不能小于0',
type: 'error',
})
return
}
if (reviseData.value.supplyId !== undefined && reviseData.value.supplyId !== '') { if (reviseData.value.supplyId !== undefined && reviseData.value.supplyId !== '') {
const result = await getTransferInterface({ const result = await getTransferInterface({
customizeId: reviseData.value.customizeId, customizeId: reviseData.value.customizeId,
...@@ -130,12 +185,14 @@ function onClose() { ...@@ -130,12 +185,14 @@ function onClose() {
<el-dialog v-model="props.open" width="1000px" title="自定义修改" @close="onClose" @open="onOpen"> <el-dialog v-model="props.open" width="1000px" title="自定义修改" @close="onClose" @open="onOpen">
<template #default> <template #default>
<div class="dialog-content"> <div class="dialog-content">
<el-form ref="formRef" :model="reviseData" :rules="rules" label-width="auto"> <el-form ref="formRef" :model="reviseData" :rules="rules" :inline-message="true" label-width="auto">
<el-row style="border-top: #a6c3e9 1px solid"> <el-row style="border-top: #a6c3e9 1px solid">
<el-col :span="8" class="content-col-label">自定义名称:</el-col> <el-col :span="8" class="content-col-label">自定义名称:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-input maxlength="11" :input-style="inputStyle" v-model="reviseData.customizeName" <el-form-item prop="customizeName" style="padding: 0;margin: 0;">
style="width: 510px"/> <el-input maxlength="10" :input-style="inputStyle" v-model="reviseData.customizeName"
style="width: 510px"/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
...@@ -151,7 +208,7 @@ function onClose() { ...@@ -151,7 +208,7 @@ function onClose() {
<el-col :span="8" class="content-col-label">温度:</el-col> <el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="temperature" style="padding: 0;margin: 0;"> <el-form-item prop="temperature" style="padding: 0;margin: 0;">
<el-input maxlength="11" :input-style="inputStyle" v-model="reviseData.temperature" <el-input maxlength="10" :input-style="inputStyle" v-model="reviseData.temperature"
style="width: 510px"/> style="width: 510px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -160,7 +217,7 @@ function onClose() { ...@@ -160,7 +217,7 @@ function onClose() {
<el-col :span="8" class="content-col-label">风速:</el-col> <el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="wind" style="padding: 0;margin: 0;"> <el-form-item prop="wind" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="reviseData.wind" style="width: 510px"/> <el-input :input-style="inputStyle" maxlength="10" v-model="reviseData.wind" style="width: 510px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -168,7 +225,7 @@ function onClose() { ...@@ -168,7 +225,7 @@ function onClose() {
<el-col :span="8" class="content-col-label">光照:</el-col> <el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="illumination" style="padding: 0;margin: 0;"> <el-form-item prop="illumination" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="2" v-model="reviseData.illumination" <el-input :input-style="inputStyle" maxlength="10" v-model="reviseData.illumination"
style="width: 510px"/> style="width: 510px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -177,7 +234,7 @@ function onClose() { ...@@ -177,7 +234,7 @@ function onClose() {
<el-col :span="8" class="content-col-label">排序:</el-col> <el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value"> <el-col :span="16" class="content-col-value">
<el-form-item prop="sort" style="padding: 0;margin: 0;"> <el-form-item prop="sort" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="reviseData.sort" style="width: 510px"/> <el-input :input-style="inputStyle" maxlength="10" v-model="reviseData.sort" style="width: 510px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -189,8 +246,8 @@ function onClose() { ...@@ -189,8 +246,8 @@ function onClose() {
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col> <el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-form-item prop="diffPercentage" style="padding: 0;margin: 0;"> <el-form-item prop="diffPercentage" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="reviseData.diffPercentage" <el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.diffPercentage"
style="width: 240px"/> style="width: 175px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -198,15 +255,15 @@ function onClose() { ...@@ -198,15 +255,15 @@ function onClose() {
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col> <el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-form-item prop="timeoutMin" style="padding: 0;margin: 0;"> <el-form-item prop="timeoutMin" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="reviseData.timeoutMin" <el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.timeoutMin"
style="width: 240px"/> style="width: 175px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col> <el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col>
<el-col :span="7" class="content-col-value"> <el-col :span="7" class="content-col-value">
<el-form-item prop="tempRegulation" style="padding: 0;margin: 0;"> <el-form-item prop="tempRegulation" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="reviseData.tempRegulation" <el-input :input-style="inputStyle" maxlength="10" v-model="reviseData.tempRegulation"
style="width: 240px"/> style="width: 175px"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment