diff --git a/src/views/SchedulingPage/AnnualParamPage.vue b/src/views/SchedulingPage/AnnualParamPage.vue
index d3f0bb588090108c84691d71b2d0a242450589d9..1fe3cd2cdc9b13162bd440e09bab30ac58f189cc 100644
--- a/src/views/SchedulingPage/AnnualParamPage.vue
+++ b/src/views/SchedulingPage/AnnualParamPage.vue
@@ -121,8 +121,8 @@ function onAddSubmit() { // 提交新增
       return
     }
   })
-  console.log('>>>>>>>>==',addForm.value)
-  console.log('========>>>>',addForm.value.year)
+  console.log('>>>>>>>>==', addForm.value)
+  console.log('========>>>>', addForm.value.year)
   addAnnualParam(addForm.value).then(res => {
     if (res.success) {
       getData()
@@ -171,7 +171,7 @@ function resetInput() {
     backWaterTemperature: ''
   }
 }
-function resetSearch(){
+function resetSearch() {
   searchKey.value = ''
   getData()
 }
@@ -265,7 +265,8 @@ function customSort(a, b) {
           <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-input v-float-number maxlength="11" v-model="reviseForm.standard" placeholder=""
+                style="width: 370px" />
             </el-col>
           </el-row>
           <el-row>
@@ -339,7 +340,7 @@ function customSort(a, b) {
           <el-row>
             <el-col :span="8" col-label>室外温度:</el-col>
             <el-col :span="16" col-value>
-              <el-input  maxlength="11" v-model="addForm.outdoorTemperature" style="width: 370px" />
+              <el-input maxlength="11" v-model="addForm.outdoorTemperature" style="width: 370px" />
             </el-col>
           </el-row>
           <el-row>
diff --git a/src/views/SchedulingPage/weatherManageSub/AddWindow.vue b/src/views/SchedulingPage/weatherManageSub/AddWindow.vue
index 53268586e584aa38a6b1212371434fd42f67e812..81ea76d772a0fc9a4298e2807b9731700437204a 100644
--- a/src/views/SchedulingPage/weatherManageSub/AddWindow.vue
+++ b/src/views/SchedulingPage/weatherManageSub/AddWindow.vue
@@ -1,6 +1,6 @@
 <script setup>
-import {ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect} from "vue";
-import {vFloatNumber} from "@/utils/directives.js";
+import { ref, defineProps, defineEmits, computed, isRef, onMounted, watchEffect, reactive } from "vue";
+import { vFloatNumber } from "@/utils/directives.js";
 
 const props = defineProps({
   open: {
@@ -9,23 +9,23 @@ const props = defineProps({
     required: true
   }
 })
-const emit = defineEmits(['onCancel','onConfirm'])
+const emit = defineEmits(['onCancel', 'onConfirm'])
 const addData = ref({
-  transfers:[], // 换热站
+  transfers: [], // 换热站
   customizeName: '', // 自定义名称
   diffPercentage: '', // 自动偏差百分比
   illumination: '', // 光照
   isAuto: false, // 是否自动模式
   isFixed: false,  // 干预模式:true 固定模式,false 气象仪模式
-  operateTime:"", // 操作时间
+  operateTime: "", // 操作时间
   sort: '', // 排序
   tempRegulation: '', // 自动调节温度
   temperature: '', // 温度
   timeoutMin: '', // 自动验证循环时间
   wind: '', // 风速
   description: null,  // 排序字段,全为Null
-  updateNullFields:"", // 无用,但不为空
-  isActive:false,  // 是否启用
+  updateNullFields: "", // 无用,但不为空
+  isActive: false,  // 是否启用
 })
 const inputStyle = {
   color: 'black',
@@ -37,7 +37,7 @@ function handleClose() {
 }
 function handleConfirm() {
   addData.value.operateTime = getCurrentDateTime()
-  emit('onConfirm',addData.value)
+  emit('onConfirm', addData.value)
   resetInput()
 }
 function getCurrentDateTime() {
@@ -51,98 +51,146 @@ function getCurrentDateTime() {
 
   return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
 } // 生成时间
-function onOpen(){
+function onOpen() {
   resetInput()
 }
-function resetInput(){
-  addData.value={
-    transfers:[], // 换热站
+function resetInput() {
+  addData.value = {
+    transfers: [], // 换热站
     customizeName: '', // 自定义名称
     diffPercentage: '', // 自动偏差百分比
     illumination: '', // 光照
     isAuto: false, // 是否自动模式
     isFixed: false,  // 干预模式:true 固定模式,false 气象仪模式
-    operateTime:"", // 操作时间
+    operateTime: "", // 操作时间
     sort: '', // 排序
     tempRegulation: '', // 自动调节温度
     temperature: '', // 温度
     timeoutMin: '', // 自动验证循环时间
     wind: '', // 风速
     description: null,  // 排序字段,全为Null
-    updateNullFields:"", // 无用,但不为空
-    isActive:false,  // 是否启用
+    updateNullFields: "", // 无用,但不为空
+    isActive: false,  // 是否启用
   }
 }
+const formRef = ref()
+
+//校验规则
+const rules = reactive({
+  diffPercentage: [
+    { pattern: /^([0-9]\d{0,1}|100$)(\.\d{1,4})?$/, "message": "请输入正确的百分比格式", trigger: "blur" }
+  ],
+  wind: [
+    { pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "风速必须是1-11位实数", trigger: "blur" }
+  ],
+  illumination: [
+    { pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "光照必须是1-11位实数", trigger: "blur" }
+  ],
+  sort: [
+    { pattern: /^(\d{1,11})$/, "message": "排序必须是1-11位正整数", trigger: "blur" }
+  ],
+  timeoutMin: [
+    { pattern: /^(\d{1,11})(\.[0-9]{1,4})?$/, "message": "判断时间必须是1-10位实数", trigger: "blur" }
+  ],
+  temperature: [
+    { pattern: /^(-?\d{1,11})(\.[0-9]{1,4})?$/, message: "请输入正确的调节温度", trigger: "blur" }
+  ]
+});
 </script>
 
 <template>
-  <el-dialog
-      v-model="props.open"
-      width="1000px"
-      title="新增"
-      @close="emit('onCancel')"
-      @open="onOpen">
+  <el-dialog v-model="props.open" width="1000px" title="新增" @close="emit('onCancel')" @open="onOpen">
     <template #default>
       <div class="dialog-content">
-        <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-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8" class="content-col-label">干预模式:</el-col>
-          <el-col :span="16" class="content-col-value">
-            <el-radio-group v-model="addData.isFixed">
-              <el-radio :value="true" :style="{marginLeft:'10px'}">固定模式</el-radio>
-              <el-radio :value="false" :style="{marginLeft:'-15px'}">气象仪模式</el-radio>
-            </el-radio-group>
-          </el-col>
-        </el-row>
-        <el-row>
-          <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.temperature" style="width: 510px"/>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8" class="content-col-label">风速:</el-col>
-          <el-col :span="16" class="content-col-value">
-            <el-input :input-style="inputStyle" maxlength="11" v-model="addData.wind" style="width: 510px"/>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8" class="content-col-label">光照:</el-col>
-          <el-col :span="16" class="content-col-value">
-            <el-input :input-style="inputStyle" maxlength="11" v-model="addData.illumination" style="width: 510px"/>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="8" class="content-col-label">排序:</el-col>
-          <el-col :span="16" class="content-col-value">
-            <el-input :input-style="inputStyle" maxlength="11" v-model="addData.sort" style="width: 510px"/>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="5" class="content-col-label">切换自动模式:</el-col>
-          <el-col :span="7" class="content-col-value">
-            <el-checkbox :style="{marginLeft:'10px'}" v-model="addData.isAuto" label="自动模式"/>
-          </el-col>
-          <el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
-          <el-col :span="7" class="content-col-value">
-            <el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.diffPercentage" style="width: 240px"/>
-          </el-col>
-        </el-row>
-        <el-row>
-          <el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
-          <el-col :span="7" class="content-col-value">
-            <el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.timeoutMin" style="width: 240px"/>
-          </el-col>
-          <el-col :span="5" class="content-col-label">自动调节温度(℃):</el-col>
-          <el-col :span="7" class="content-col-value">
-            <el-input :input-style="inputStyle" maxlength="11" v-model="addData.tempRegulation" style="width: 240px"/>
-          </el-col>
-        </el-row>
+
+        <el-form :rules="rules" ref="formRef" :model="addData" 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-col>
+          </el-row>
+
+          <el-row>
+            <el-col :span="8" class="content-col-label">干预模式:</el-col>
+            <el-col :span="16" class="content-col-value">
+              <el-radio-group v-model="addData.isFixed">
+                <el-radio :value="true" :style="{ marginLeft: '10px' }">固定模式</el-radio>
+                <el-radio :value="false" :style="{ marginLeft: '-15px' }">气象仪模式</el-radio>
+              </el-radio-group>
+            </el-col>
+          </el-row>
+
+
+          <el-row>
+            <el-col :span="8" class="content-col-label">温度:</el-col>
+            <el-col :span="16" class="content-col-value">
+              <el-form-item prop="temperature">
+                <el-input maxlength="11" :input-style="inputStyle" v-model="addData.temperature" style="width: 510px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row>
+            <el-col :span="8" class="content-col-label">风速:</el-col>
+            <el-col :span="16" class="content-col-value">
+              <el-form-item prop="wind">
+                <el-input :input-style="inputStyle" maxlength="11" v-model="addData.wind" style="width: 510px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="8" class="content-col-label">光照:</el-col>
+            <el-col :span="16" class="content-col-value">
+              <el-form-item prop="illumination">
+                <el-input :input-style="inputStyle" maxlength="11" v-model="addData.illumination"
+                  style="width: 510px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row>
+            <el-col :span="8" class="content-col-label">排序:</el-col>
+            <el-col :span="16" class="content-col-value">
+              <el-form-item prop="sort">
+                <el-input :input-style="inputStyle" maxlength="11" v-model="addData.sort" style="width: 510px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row>
+            <el-col :span="5" class="content-col-label">切换自动模式:</el-col>
+            <el-col :span="7" class="content-col-value">
+              <el-checkbox :style="{ marginLeft: '10px' }" v-model="addData.isAuto" label="自动模式" />
+            </el-col>
+            <el-col :span="5" class="content-col-label">自动偏差百分比(%d):</el-col>
+            <el-col :span="7" class="content-col-value">
+              <el-form-item prop="diffPercentage">
+                <el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.diffPercentage"
+                  style="width: 240px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+
+          <el-row>
+            <el-col :span="5" class="content-col-label">自动验证循环时间(分钟):</el-col>
+            <el-col :span="7" class="content-col-value">
+              <el-form-item prop="timeoutMin">
+                <el-input v-float-number :input-style="inputStyle" maxlength="11" v-model="addData.timeoutMin"
+                  style="width: 240px" />
+              </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">
+                <el-input :input-style="inputStyle" maxlength="11" v-model="addData.tempRegulation"
+                  style="width: 240px" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
       </div>
     </template>
     <template #footer>
@@ -155,7 +203,6 @@ function resetInput(){
 </template>
 
 <style scoped>
-
 .el-row {
   color: black;
   height: 35px;
@@ -183,10 +230,12 @@ function resetInput(){
 .el-input {
   color: black;
 }
-.el-radio{
+
+.el-radio {
   color: black;
 }
-.el-checkbox{
+
+.el-checkbox {
   color: black;
 }
 </style>
\ No newline at end of file