Commit 1aafb16d authored by xuke's avatar xuke
parents 726bd962 890795eb
......@@ -35,40 +35,85 @@ const addForm = ref({
})
const formRef = ref()
const rules = reactive({
energyType: [
{
required: true,
message: "请选择节能等级",
trigger: "blur"
}
],
year: [
{
required: true,
message: "请选择年度",
trigger: "blur"
}
],
supplyId: [
{
required: true,
message: "请选择供热站",
trigger: "blur"
}
],
degreeStandard: [
{
required: true,
message: "请输入标定值",
trigger: "blur"
},
{
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的标定值",
trigger: "blur"
}
],
standard: [
{
required: true,
message: "请输入热指标",
trigger: "blur"
},
{
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的热指标",
trigger: "blur"
}
],
indoorTemperature: [
{
required: true,
message: '请输入正确的室内温度',
message: "请输入室内温度",
trigger: "blur"
},
{
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的室内温度",
trigger: "change"
trigger: "blur"
}
],
outdoorTemperature: [
{
required: true,
message: '请输入正确的室外温度',
message: "请输入室外温度",
trigger: "blur"
},
{
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的室外温度",
trigger: "change"
trigger: "blur"
}
],
backWaterTemperature: [
{
required: true,
message: '请输入正确的回水温度',
message: "请输入回水温度",
trigger: "blur"
},
{
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的回水温度",
trigger: "change"
trigger: "blur"
}
]
})
......@@ -150,6 +195,34 @@ function handleSearch() {
function onReviseSubmit() {
formRef.value.validate(valid => {
if (valid) {
if(Number(reviseForm.value.indoorTemperature) > 45 || Number(reviseForm.value.indoorTemperature) < -30){
ElMessage({
message: '室内温度不能大于45度或小于-30度',
type: 'error',
})
return
}
if(Number(reviseForm.value.outdoorTemperature) > 45 || Number(reviseForm.value.outdoorTemperature) < -30){
ElMessage({
message: '室外温度不能大于45度或小于-30度',
type: 'error',
})
return
}
if(Number(reviseForm.value.backWaterTemperature) > 100 || Number(reviseForm.value.backWaterTemperature) < -30){
ElMessage({
message: '回水温度不能大于100度或小于-30度',
type: 'error',
})
return
}
if(Number(reviseForm.value.standard) > 100 || Number(reviseForm.value.standard) < 0){
ElMessage({
message: '热指标不能大于100或小于0',
type: 'error',
})
return
}
if (reviseForm.value.hasOwnProperty('supplyName')) {
delete reviseForm.value.supplyName
}
......@@ -196,6 +269,38 @@ function onAddSubmit() { // 提交新增
addSaveBtnLoading.value = true
formRef.value.validate(valid => {
if (valid) {
if(Number(addForm.value.indoorTemperature) > 45 || Number(addForm.value.indoorTemperature) < -30){
ElMessage({
message: '室内温度不能大于45度或小于-30度',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addForm.value.outdoorTemperature) > 45 || Number(addForm.value.outdoorTemperature) < -30){
ElMessage({
message: '室外温度不能大于45度或小于-30度',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addForm.value.backWaterTemperature) > 100 || Number(addForm.value.backWaterTemperature) < -30){
ElMessage({
message: '回水温度不能大于100度或小于-30度',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if(Number(addForm.value.standard) > 100 || Number(addForm.value.standard) < 0){
ElMessage({
message: '热指标不能大于100或小于0',
type: 'error',
})
addSaveBtnLoading.value = false
return
}
if (addForm.value.year.trim().length > 4) {
addForm.value.year = addForm.value.year.slice(6, 10)
}
......@@ -376,50 +481,61 @@ function getOrganizationStructure() {
<div class="revise-window-dialog">
<el-dialog title="年度参数修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose">
<template #default>
<el-form ref="formRef" :rules="rules" :model="reviseForm" label-width="auto">
<el-form ref="formRef" :rules="rules" :inline-message="true" :model="reviseForm" label-width="auto">
<el-row first>
<el-col :span="8" col-label class="energy-type-class">节能等级:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.energyType" style="width: 370px">
<el-form-item prop="energyType" style="padding: 0; margin: 0">
<el-select placeholder="" size="small" v-model="reviseForm.energyType" style="width: 290px">
<el-option v-for="item in energyTypeList" :key="item" :label="item" :value="item"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>年度:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.year" style="width: 370px">
<el-form-item prop="year" style="margin: 0;padding: 0">
<el-select placeholder="" size="small" v-model="reviseForm.year" style="width: 290px">
<el-option :value="selectYearValue" :label="selectYearValue"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>供热站:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="请选择供热站" size="small" v-model="reviseForm.supplyId" style="width: 370px">
<el-form-item prop="supplyId" style="margin: 0;padding: 0">
<el-select placeholder="请选择供热站" size="small" v-model="reviseForm.supplyId" style="width: 290px">
<el-option v-for="item in supplyData" :key="item.supplyId" :value="item.supplyId"
:label="item.supplyName"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>热指标(W/m²):</el-col>
<el-col :span="16" col-value>
<el-input v-float-number maxlength="11" v-model="reviseForm.standard" placeholder=""
style="width: 370px"/>
<el-form-item prop="standard" style="margin: 0;padding: 0">
<el-input v-float-number maxlength="10" v-model="reviseForm.standard" placeholder=""
style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>度日数标定值:</el-col>
<el-col :span="16" col-value>
<el-input v-float-number maxlength="11" v-model="reviseForm.degreeStandard" style="width: 370px"/>
<el-form-item prop="degreeStandard" style="margin: 0;padding: 0">
<el-input maxlength="10" v-model="reviseForm.degreeStandard" placeholder=""
style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>室内温度:</el-col>
<el-col :span="16" col-value>
<el-form-item prop="indoorTemperature" style="margin: 0;padding: 0">
<el-input maxlength="11" v-model="reviseForm.indoorTemperature" style="width: 370px"/>
<el-input maxlength="10" v-model="reviseForm.indoorTemperature" style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -427,7 +543,7 @@ function getOrganizationStructure() {
<el-col :span="8" col-label>室外温度:</el-col>
<el-col :span="16" col-value>
<el-form-item prop="outdoorTemperature" style="margin: 0;padding: 0">
<el-input maxlength="11" v-model="reviseForm.outdoorTemperature" style="width: 370px"/>
<el-input maxlength="10" v-model="reviseForm.outdoorTemperature" style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -435,7 +551,7 @@ function getOrganizationStructure() {
<el-col :span="8" col-label>回水温度:</el-col>
<el-col :span="16" col-value>
<el-form-item prop="backWaterTemperature" style="margin: 0;padding: 0">
<el-input maxlength="11" v-model="reviseForm.backWaterTemperature" style="width: 370px"/>
<el-input maxlength="10" v-model="reviseForm.backWaterTemperature" style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -450,49 +566,61 @@ function getOrganizationStructure() {
</el-dialog> <!-- 修改弹窗 -->
<el-dialog title="年度参数新增" v-model="addWindowOpen" width="700px" :before-close="handleClose">
<template #default>
<el-form ref="formRef" :rules="rules" :model="addForm" label-width="auto">
<el-form ref="formRef" :rules="rules" :inline-message="true" :model="addForm" label-width="auto">
<el-row first>
<el-col :span="8" col-label class="energy-type-class">节能等级:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.energyType" style="width: 370px">
<el-form-item prop="energyType" style="margin: 0;padding: 0">
<el-select placeholder="" size="small" v-model="addForm.energyType" style="width: 290px">
<el-option v-for="item in energyTypeList" :key="item" :label="item" :value="item"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>年度:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.year" style="width: 370px">
<el-form-item prop="year" style="margin: 0;padding: 0">
<el-select placeholder="" size="small" v-model="addForm.year" style="width: 290px">
<el-option :value="selectYearValue" :label="selectYearValue"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>供热站:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="请选择供热站" size="small" v-model="addForm.supplyId" style="width: 370px">
<el-form-item prop="supplyId" style="margin: 0;padding: 0">
<el-select placeholder="" size="small" v-model="addForm.supplyId" style="width: 290px">
<el-option v-for="item in supplyData" :key="item.supplyId" :value="item.supplyId"
:label="item.supplyName"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>热指标(W/m²):</el-col>
<el-col :span="16" col-value>
<el-input v-float-number maxlength="11" v-model="addForm.standard" placeholder="" style="width: 370px"/>
<el-form-item prop="standard" style="margin: 0;padding: 0">
<el-input v-float-number maxlength="10" v-model="addForm.standard" placeholder=""
style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>度日数标定值:</el-col>
<el-col :span="16" col-value>
<el-input v-float-number maxlength="11" v-model="addForm.degreeStandard" style="width: 370px"/>
<el-form-item prop="degreeStandard" style="margin: 0;padding: 0">
<el-input maxlength="10" v-model="addForm.degreeStandard" placeholder=""
style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>室内温度:</el-col>
<el-col :span="16" col-value>
<el-form-item prop="indoorTemperature" style="padding: 0;margin:0">
<el-input maxlength="11" v-model="addForm.indoorTemperature" style="width: 370px"/>
<el-input maxlength="10" v-model="addForm.indoorTemperature" style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -500,7 +628,7 @@ function getOrganizationStructure() {
<el-col :span="8" col-label>室外温度:</el-col>
<el-col :span="16" col-value>
<el-form-item prop="outdoorTemperature" style="padding: 0;margin:0">
<el-input maxlength="11" v-model="addForm.outdoorTemperature" style="width: 370px"/>
<el-input maxlength="10" v-model="addForm.outdoorTemperature" style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -508,7 +636,7 @@ function getOrganizationStructure() {
<el-col :span="8" col-label>回水温度:</el-col>
<el-col :span="16" col-value>
<el-form-item prop="backWaterTemperature" style="padding: 0;margin:0">
<el-input maxlength="11" v-model="addForm.backWaterTemperature" style="width: 370px"/>
<el-input maxlength="10" v-model="addForm.backWaterTemperature" style="width: 290px"/>
</el-form-item>
</el-col>
</el-row>
......
......@@ -15,12 +15,25 @@ const addSaveBtnLoading = ref(false)
const formRef = ref()
//校验规则
const rules = reactive({
phenomenonName: [
{
required: true,
message: '请选择天气名称',
trigger: 'blur'
}
],
phenomenonDesc: [
{
required: true,
message: '请输入描述',
trigger: 'blur'
}
],
phenomenonTemp: [
{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 => { // 表头样式
......@@ -90,9 +103,9 @@ function handleClose() {
function onReviseSubmit() {
formRef.value.validate((valid) => {
if (valid) {
if(Math.abs(Number(reviseForm.value.phenomenonTemp)) > 30){
if(Number(reviseForm.value.phenomenonTemp) > 45 || Number(reviseForm.value.phenomenonTemp) < -30){
ElMessage({
message: '对应温度不能大于30度或小于-30度',
message: '对应温度不能大于45度或小于-30度',
type: 'error',
})
return
......@@ -132,9 +145,9 @@ function onReviseSubmit() {
function onAddSubmit() {
addSaveBtnLoading.value = true
formRef.value.validate(valid => {
if(Math.abs(Number(addForm.value.phenomenonTemp)) > 30){
if(Number(addForm.value.phenomenonTemp) > 45 || Number(addForm.value.phenomenonTemp) < -30){
ElMessage({
message: '对应温度不能大于30度或小于-30度',
message: '对应温度不能大于45度或小于-30度',
type: 'error',
})
addSaveBtnLoading.value = false
......@@ -238,29 +251,39 @@ function customSort(a, b) {
<div class="dialog-window">
<el-dialog title="天气工况设置修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose">
<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-col :span="8" col-label class="energy-type-class">名称:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.phenomenonName" style="width: 370px">
<el-form-item prop="phenomenonName" style="padding: 0;margin: 0;">
<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-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value>
<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-col>
</el-row>
<el-row>
<el-row id="phenomenonDesc">
<el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value>
<el-input maxlength="11" v-model="reviseForm.phenomenonDesc" placeholder="" style="width: 370px"/>
<el-form-item prop="phenomenonDesc" style="padding: 0;margin: 0;">
<el-input
type="textarea"
v-model="reviseForm.phenomenonDesc"
maxlength="200"
show-word-limit
style="width: 290px"
autosize/>
</el-form-item>
</el-col>
</el-row>
</el-form>
......@@ -275,29 +298,39 @@ function customSort(a, b) {
</el-dialog> <!-- 修改弹窗 -->
<el-dialog title="天气工况设置新增" v-model="addWindowOpen" width="700px" :before-close="handleClose">
<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-col :span="8" col-label class="energy-type-class">名称:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.phenomenonName" style="width: 370px">
<el-form-item prop="phenomenonName" style="padding: 0;margin: 0;">
<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-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value>
<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-col>
</el-row>
<el-row>
<el-row id="phenomenonDesc">
<el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value>
<el-input maxlength="11" v-model="addForm.phenomenonDesc" placeholder="" style="width: 370px"/>
<el-form-item prop="phenomenonDesc" style="padding: 0;margin: 0;">
<el-input
type="textarea"
v-model="addForm.phenomenonDesc"
maxlength="200"
show-word-limit
style="width: 290px"
autosize/>
</el-form-item>
</el-col>
</el-row>
</el-form>
......@@ -398,6 +431,10 @@ function customSort(a, b) {
padding-left: 5px;
}
#phenomenonDesc{
height: 100%;
}
.el-input {
color: black;
height: 24px;
......
......@@ -56,6 +56,7 @@ const revise = (row) => { // 修改按钮单击事件
}
const bind = (row) => { // 绑定按钮单击事件
dependentSub.value = row
console.log('绑定换热站数据',row)
bindWindowOpen.value = true
}
const cancelRevise = ()=>{
......
......@@ -37,6 +37,13 @@ const formRef = ref()
//校验规则
const rules = reactive({
windLevel: [
{
required: true,
message: '请选择风力级数',
trigger: "blur"
},
],
windTemp: [
{
required: true,
......@@ -46,7 +53,14 @@ const rules = reactive({
{
pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/,
message: "请输入正确的对应温度",
trigger: "change"
trigger: "blur"
}
],
windDesc: [
{
required: true,
message: '请输入描述',
trigger: "blur"
}
]
});
......@@ -113,9 +127,9 @@ function onReviseSubmit() {
reviseSaveBtnLoading.value = true
formRef.value.validate(valid=>{
if(valid){
if(Math.abs(Number(reviseForm.value.windTemp)) > 30){
if(Number(reviseForm.value.windTemp) > 45 || Number(reviseForm.value.windTemp) < -30){
ElMessage({
message: '对应温度不能大于30度或小于-30度',
message: '对应温度不能大于45度或小于-30度',
type: 'error',
})
reviseSaveBtnLoading.value = false
......@@ -153,9 +167,9 @@ function onAddSubmit() {
addSaveBtnLoading.value = true;
formRef.value.validate(valid=>{
if(valid){
if(Math.abs(Number(addForm.value.windTemp)) > 30){
if(Number(addForm.value.windTemp) > 45 || Number(addForm.value.windTemp) < -30){
ElMessage({
message: '对应温度不能大于30度或小于-30度',
message: '对应温度不能大于45度或小于-30度',
type: 'error',
})
addSaveBtnLoading.value = false
......@@ -254,27 +268,37 @@ function customSort(a, b) {
<div class="dialog-window">
<el-dialog title="风力配置修改" v-model="reviseWindowOpen" width="700px" :before-close="handleClose">
<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-col :span="8" col-label class="energy-type-class">级数:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="reviseForm.windLevel" style="width: 370px">
<el-form-item prop="windLevel" style="padding: 0; margin: 0;">
<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-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value>
<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-col>
</el-row>
<el-row>
<el-row id="windDesc">
<el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value>
<el-input maxlength="11" v-model="reviseForm.windDesc" placeholder="" style="width: 370px" />
<el-form-item prop="windDesc" style="padding: 0; margin: 0;">
<el-input
type="textarea"
v-model="reviseForm.windDesc"
maxlength="200"
show-word-limit
style="width: 290px"
autosize/>
</el-form-item>
</el-col>
</el-row>
</el-form>
......@@ -290,27 +314,37 @@ function customSort(a, b) {
<!-- 修改弹窗 -->
<el-dialog title="风力配置新增" v-model="addWindowOpen" width="700px" :before-close="handleClose">
<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-col :span="8" col-label class="energy-type-class">级数:</el-col>
<el-col :span="16" col-value>
<el-select placeholder="" size="small" v-model="addForm.windLevel" style="width: 370px">
<el-form-item prop="windLevel" style="padding: 0; margin: 0;">
<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-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8" col-label>对应温度:</el-col>
<el-col :span="16" col-value>
<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-col>
</el-row>
<el-row>
<el-row id="windDesc">
<el-col :span="8" col-label>描述:</el-col>
<el-col :span="16" col-value>
<el-input maxlength="11" v-model="addForm.windDesc" placeholder="" style="width: 370px" />
<el-form-item prop="windDesc" style="padding: 0; margin: 0;">
<el-input
type="textarea"
v-model="addForm.windDesc"
maxlength="200"
show-word-limit
style="width: 290px"
autosize/>
</el-form-item>
</el-col>
</el-row>
</el-form>
......@@ -368,7 +402,9 @@ function customSort(a, b) {
font-size: 12px;
color: black;
}
.dialog-window{
height: 500px;
}
.table-operate-column {
display: flex;
justify-content: center;
......@@ -414,6 +450,10 @@ function customSort(a, b) {
padding-left: 5px;
}
#windDesc{
height: 100%;
}
.el-input {
color: black;
height: 24px;
......
<script setup>
import { ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect, reactive } from "vue";
import { vFloatNumber } from "@/utils/directives.js";
import {ElMessage} from "element-plus";
const props = defineProps({
open: {
......@@ -39,6 +40,54 @@ function handleConfirm() {
addSaveBtnLoading.value = true
formRef.value.validate(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()
emit('onConfirm', addData.value)
resetInput()
......@@ -87,26 +136,38 @@ const formRef = ref()
//校验规则
const rules = reactive({
diffPercentage: [
{ pattern: /^([0-9]\d{0,1}|100$)(\.\d{1,4})?$/, "message": "请输入正确的百分比格式", trigger: "blur" }
customizeName: [ // 自定义名称
{required: true, message: '请输入自定义名称'}
],
diffPercentage: [ // 自动偏差百分比
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
wind: [
{ pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "风速必须是1-11位实数", trigger: "blur" }
wind: [ // 风速
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
illumination: [
{ pattern: /^(\d{1,2})?$/, "message": "光照必须是1-2位实数", trigger: "blur" }
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
sort: [
{ pattern: /^(\d{1,11})$/, "message": "排序必须是1-11位正整数", trigger: "blur" }
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
timeoutMin: [
{ pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "判断时间必须是1-11位实数", trigger: "blur" }
timeoutMin: [ // 验证时间
{required: true, message: '请输入正确数值'},
{ pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur" }
],
temperature: [
{required: true, message: '请输入正确的温度'},
{ 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>
<template>
......@@ -114,12 +175,14 @@ const rules = reactive({
<template #default>
<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-col :span="8" class="content-col-label">自定义名称:</el-col>
<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-row>
......@@ -138,7 +201,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value">
<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-col>
</el-row>
......@@ -147,7 +210,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value">
<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 v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.wind" style="width: 510px" />
</el-form-item>
</el-col>
</el-row>
......@@ -155,7 +218,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value">
<el-form-item prop="illumination" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="2" v-model="addData.illumination"
<el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.illumination"
style="width: 510px" />
</el-form-item>
</el-col>
......@@ -165,7 +228,7 @@ const rules = reactive({
<el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value">
<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 v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.sort" style="width: 510px" />
</el-form-item>
</el-col>
</el-row>
......@@ -178,8 +241,8 @@ const rules = reactive({
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
<el-col :span="7" class="content-col-value">
<el-form-item prop="diffPercentage" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.diffPercentage"
style="width: 240px" />
<el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.diffPercentage"
style="width: 175px" />
</el-form-item>
</el-col>
</el-row>
......@@ -188,16 +251,16 @@ const rules = reactive({
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
<el-col :span="7" class="content-col-value">
<el-form-item prop="timeoutMin" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.timeoutMin"
style="width: 240px" />
<el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="addData.timeoutMin"
style="width: 175px" />
</el-form-item>
</el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col>
<el-col :span="7" class="content-col-value">
<el-form-item prop="tempRegulation" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="addData.tempRegulation"
style="width: 240px" />
<el-input :input-style="inputStyle" maxlength="10" v-model="addData.tempRegulation"
style="width: 175px" />
</el-form-item>
</el-col>
</el-row>
......
......@@ -71,7 +71,7 @@ function onSubmit() {
bindData.value.isAuto = bindData.value.isAuto === '自动模式' ? true : false;
bindData.value.isFixed = bindData.value.isFixed === '固定模式' ? true : false;
bindData.value.updateNullFields = ""
emit('onConfirm', bindData.value)gi
emit('onConfirm', bindData.value)
}else {
ElMessage.error('请选择供热站')
}
......@@ -83,7 +83,7 @@ function onSubmit() {
* @param isAvailable 是否可用,默认为true,表示可用
*/
async function getTransfer(supplyId, isAvailable = true) {
selectedTransfer.value.length = 0 // 置空,不然会重复添加
console.log('supplyId>>>>>>>', supplyId)
let param = {
customizeId: bindData.value.customizeId,
supplyId: supplyId
......@@ -93,6 +93,10 @@ async function getTransfer(supplyId, isAvailable = true) {
*/
const result = await getTransferInterface(param)
transferData.value = result.data
if(isAvailable){
// 每次需要为换热站推入数据时,清空已有的数据
selectedTransfer.value.length = 0
}
for (const item of transferData.value) {
if (!isAvailable) {
item.selected = item.selected.toLowerCase() === 'true' ? true : false
......
......@@ -3,6 +3,7 @@ import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect,
import cloneDeep from 'lodash/cloneDeep'
import {vFloatNumber} from "@/utils/directives.js";
import {getTransferInterface} from "@/api/scheduling.js";
import {ElMessage} from "element-plus";
const props = defineProps({
......@@ -46,37 +47,43 @@ const formRef = ref()
//校验规则
const rules = reactive({
diffPercentage: [
{pattern: /^([0-9]\d{0,1}|100$)(\.\d{1,4})?$/, "message": "请输入正确的百分比格式", trigger: "blur"}
customizeName: [ // 自定义名称
{required: true, message: '请输入自定义名称'}
],
wind: [
{pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "风速必须是1-11位实数", trigger: "blur"}
diffPercentage: [ // 自动偏差百分比
{required: true, message: '请输入正确数值'},
{pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur"}
],
wind: [ // 风速
{required: true, message: '请输入正确数值'},
{pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur"}
],
illumination: [
{pattern: /^(\d{1,2})?$/, "message": "光照必须是1-11位实数", trigger: "blur"}
{required: true, message: '请输入正确数值'},
{pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur"}
],
sort: [
{pattern: /^(\d{1,11})$/, "message": "排序必须是1-11位正整数", trigger: "blur"}
{required: true, message: '请输入正确数值'},
{pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur"}
],
timeoutMin: [
{pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "判断时间必须是1-10位实数", trigger: "blur"}
timeoutMin: [ // 验证时间
{required: true, message: '请输入正确数值'},
{pattern: /[0-9]{1,10}/, "message": "请输入正确数值", trigger: "blur"}
],
temperature: [
{required: true, message: '请输入正确的温度', trigger: 'blur'},
{required: true, message: '请输入正确的温度'},
{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(() => {
<<<<<<< HEAD
// reviseData.value = {...props.data}
props.data.transfers = []
props.data.updateNullFields = ''
reviseData.value = cloneDeep(props.data) // 深拷贝数据
console.log("props.data===>", props.data);
console.log(reviseData.value);
=======
reviseData.value = props.data // 深拷贝数据
>>>>>>> 44482294a0f0e141cfad6fc71ae5bd19c87d6aed
})
const inputStyle = {
color: 'black',
......@@ -95,6 +102,7 @@ const switchingisAuto = computed({
}
}) // 可写计算属性,手动、自动模式切换
function onOpen() {
reviseData.value.transfers = []
reviseData.value.updateNullFields = ""
}
......@@ -102,6 +110,48 @@ function handleConfirm() {
reviseData.value.transfers = []
formRef.value.validate(async 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 !== '') {
const result = await getTransferInterface({
customizeId: reviseData.value.customizeId,
......@@ -118,37 +168,14 @@ function handleConfirm() {
)
}
}
<<<<<<< HEAD
formRef.value.validate(valid => {
if (valid) {
emit('onConfirm', reviseData.value)
}
})
})
=======
} else {
delete reviseData.value.supplyId
}
reviseData.value.isAuto = reviseData.value.isAuto === '自动模式' ? true : false;
reviseData.value.isFixed = reviseData.value.isFixed === '固定模式' ? true : false;
console.log('修改数据', reviseData.value)
emit('onConfirm', reviseData.value)
>>>>>>> 44482294a0f0e141cfad6fc71ae5bd19c87d6aed
}
})
}
<<<<<<< HEAD
// 重置表单
const reset = () => {
const form = unref(formRef)
form.resetFields()
}
function onClose(){
reset()
=======
function onClose() {
>>>>>>> 44482294a0f0e141cfad6fc71ae5bd19c87d6aed
emit('onCancel')
}
......@@ -158,12 +185,14 @@ function onClose() {
<el-dialog v-model="props.open" width="1000px" title="自定义修改" @close="onClose" @open="onOpen">
<template #default>
<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-col :span="8" class="content-col-label">自定义名称:</el-col>
<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;">
<el-input maxlength="10" :input-style="inputStyle" v-model="reviseData.customizeName"
style="width: 510px"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
......@@ -179,7 +208,7 @@ function onClose() {
<el-col :span="8" class="content-col-label">温度:</el-col>
<el-col :span="16" class="content-col-value">
<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"/>
</el-form-item>
</el-col>
......@@ -188,7 +217,8 @@ function onClose() {
<el-col :span="8" class="content-col-label">风速:</el-col>
<el-col :span="16" class="content-col-value">
<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 v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.wind"
style="width: 510px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -196,7 +226,7 @@ function onClose() {
<el-col :span="8" class="content-col-label">光照:</el-col>
<el-col :span="16" class="content-col-value">
<el-form-item prop="illumination" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="2" v-model="reviseData.illumination"
<el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.illumination"
style="width: 510px"/>
</el-form-item>
</el-col>
......@@ -205,7 +235,8 @@ function onClose() {
<el-col :span="8" class="content-col-label">排序:</el-col>
<el-col :span="16" class="content-col-value">
<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 v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.sort"
style="width: 510px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -217,8 +248,8 @@ function onClose() {
<el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
<el-col :span="7" class="content-col-value">
<el-form-item prop="diffPercentage" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="reviseData.diffPercentage"
style="width: 240px"/>
<el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.diffPercentage"
style="width: 175px"/>
</el-form-item>
</el-col>
</el-row>
......@@ -226,15 +257,15 @@ function onClose() {
<el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
<el-col :span="7" class="content-col-value">
<el-form-item prop="timeoutMin" style="padding: 0;margin: 0;">
<el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="reviseData.timeoutMin"
style="width: 240px"/>
<el-input v-float-number :input-style="inputStyle" maxlength="10" v-model="reviseData.timeoutMin"
style="width: 175px"/>
</el-form-item>
</el-col>
<el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col>
<el-col :span="7" class="content-col-value">
<el-form-item prop="tempRegulation" style="padding: 0;margin: 0;">
<el-input :input-style="inputStyle" maxlength="11" v-model="reviseData.tempRegulation"
style="width: 240px"/>
<el-input :input-style="inputStyle" maxlength="10" v-model="reviseData.tempRegulation"
style="width: 175px"/>
</el-form-item>
</el-col>
</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