Browse Source

Merge branch 'master' of http://182.92.126.35:3000/hrx/mky-vent-base

hongrunxia 3 days ago
parent
commit
dff0bf0a59

+ 1 - 1
src/views/vent/monitorManager/safetySensorMonitor/index.vue

@@ -73,7 +73,7 @@
   import { useGlobSetting } from '/@/hooks/setting';
   import { useRouter } from 'vue-router';
   import { getDictItemsByCode } from '/@/utils/dict';
-  import { getDeviceList, safetyList } from './safety.api';
+  import { getDeviceList, safetyList } from '../safetyMonitor/safety.api';
 
   const router = useRouter();
   const { sysOrgCode } = useGlobSetting();

+ 302 - 254
src/views/vent/monitorManager/warningMonitor/index.vue

@@ -1,6 +1,6 @@
 <template>
   <customHeader>{{ orgname }}预警历史监控系统</customHeader>
-  <div class="data-statistics">
+  <!-- <div class="data-statistics">
     <div class="statistics-box" v-for="(item, index) in statisticsList" :key="index">
       <div class="left-box">
         <div class="box-title">{{ item.title }}</div>
@@ -16,21 +16,21 @@
         </div>
       </div>
     </div>
-  </div>
-  <a-tabs class="tab-box" v-model:activeKey="activeKey" @change="onChangeTab">
-    <a-tab-pane tab="安全监控预警历史" key="safety" />
-    <a-tab-pane tab="设备预警历史" key="device" />
-    <a-tab-pane tab="联动预警历史" key="manageAuto" />
-  </a-tabs>
+  </div> -->
+  <!-- <a-tabs class="tab-box" v-model:activeKey="activeKey" @change="onChangeTab">
+   <a-tab-pane tab="安全监控预警历史" key="safety" />
+   <a-tab-pane tab="设备预警历史" key="device" />
+    <a-tab-pane tab="联动预警历史" key="manageAuto" /> 
+  </a-tabs> -->
   <div class="alarm-history-table">
-    <BasicTable v-if="activeKey == 'device'" ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 350 }">
+    <!-- <BasicTable v-if="activeKey == 'device'" ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 350 }">
       <template #form-onExportXls>
         <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()"> 导出</a-button>
       </template>
       <template #bodyCell="{ column, record }">
         <template v-if="column.dict">
-          <!-- 除了 101(蓝色预警)其他都是红色字体 -->
-          <span v-if="column.dataIndex === 'nwartype'" :class="{ 'color-#ff3823': ['102', '103', '104', '201', '1001'].includes(record.nwartype) }">
+          <span v-if="column.dataIndex === 'nwartype'"
+            :class="{ 'color-#ff3823': ['102', '103', '104', '201', '1001'].includes(record.nwartype) }">
             {{ render.renderDictText(record.nwartype, 'leveltype') || '-' }}
           </span>
           <span v-else>
@@ -38,15 +38,16 @@
           </span>
         </template>
       </template>
-    </BasicTable>
-    <BasicTable v-if="activeKey == 'manageAuto'" ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 350 }">
+    </BasicTable> -->
+    <!-- <BasicTable v-if="activeKey == 'manageAuto'" ref="alarmHistory" @register="registerTable"
+      :scroll="{ x: 0, y: 350 }">
       <template #form-onExportXls>
         <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()"> 导出</a-button>
       </template>
       <template #bodyCell="{ column, record }">
         <template v-if="column.dict">
-          <!-- 除了 101(蓝色预警)其他都是红色字体 -->
-          <span v-if="column.dataIndex === 'nwartype'" :class="{ 'color-#ff3823': ['102', '103', '104', '201', '1001'].includes(record.nwartype) }">
+          <span v-if="column.dataIndex === 'nwartype'"
+            :class="{ 'color-#ff3823': ['102', '103', '104', '201', '1001'].includes(record.nwartype) }">
             {{ render.renderDictText(record.nwartype, 'leveltype') || '-' }}
           </span>
           <span v-else>
@@ -54,8 +55,8 @@
           </span>
         </template>
       </template>
-    </BasicTable>
-    <BasicTable v-if="activeKey == 'safety'" ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 350 }">
+    </BasicTable> -->
+    <BasicTable v-if="activeKey == 'safety'" ref="alarmHistory" @register="registerTable" :scroll="{ x: 0, y: 650 }">
       <template #form-onExportXls>
         <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXlsPost()"> 导出</a-button>
       </template>
@@ -79,50 +80,61 @@
   import { watch, ref, defineExpose, onMounted, reactive } from 'vue';
   import { BasicTable } from '/@/components/Table';
   import { useListPage } from '/@/hooks/system/useListPage';
-  import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
+  // import { getTableHeaderColumns } from '/@/hooks/web/useWebColumns';
   import { manageAutoColumns1, safetyColumns, safetySchema, unsafetySchema } from './alarm.data';
 
-  import { list, getEachMineWarnCountInfo, getExportUrl } from './warning.api';
-  import { useRoute } from 'vue-router';
-  import customHeader from '/@/components/vent/customHeader.vue';
-  import { render } from '/@/utils/common/renderUtils';
-  const props = defineProps({
-    formConfig: {
-      type: Object as PropType<FormProps> | undefined,
-      default: undefined,
-    },
-  });
-  const route = useRoute();
-  let statisticsList = reactive<any[]>([
-    { title: '通风', valueT: 0, valueB: '' },
-    { title: '粉尘', valueT: 0, valueB: '' },
-    { title: '瓦斯', valueT: 0, valueB: '' },
-    { title: '火灾', valueT: 0, valueB: '' },
-    { title: '安全监测', valueT: 0, valueB: '' },
-  ]);
-  const activeKey = ref('safety');
-  const alarmHistory = ref();
-  const deviceColumns = getTableHeaderColumns('alarm_history') as [];
-  const dataColumns = ref<any>(safetyColumns);
-  const searchFormSchema = ref<any>(safetySchema);
-  const paramType = ref('aqjkAlarmLog');
-
-  function onChangeTab(tab) {
-    activeKey.value = tab;
-    if (tab === 'safety') {
-      paramType.value = 'aqjkAlarmLog';
-      dataColumns.value = safetyColumns;
-      searchFormSchema.value = safetySchema;
-    } else if (tab === 'device') {
-      paramType.value = 'alarmLog';
-      dataColumns.value = deviceColumns;
-      searchFormSchema.value = unsafetySchema;
-    } else {
-      paramType.value = 'autoLog';
-      dataColumns.value = manageAutoColumns1;
-      searchFormSchema.value = unsafetySchema;
-    }
-  }
+import { list, getEachMineWarnCountInfo, getExportUrl } from './warning.api';
+import { useRoute } from 'vue-router';
+import customHeader from '/@/components/vent/customHeader.vue';
+import { render } from '/@/utils/common/renderUtils';
+const props = defineProps({
+  formConfig: {
+    type: Object as PropType<FormProps> | undefined,
+    default: undefined,
+  },
+});
+const route = useRoute();
+// let statisticsList = reactive<any[]>([
+//   { title: '通风', valueT: 0, valueB: '' },
+//   { title: '粉尘', valueT: 0, valueB: '' },
+//   { title: '瓦斯', valueT: 0, valueB: '' },
+//   { title: '火灾', valueT: 0, valueB: '' },
+//   { title: '安全监测', valueT: 0, valueB: '' },
+// ]);
+const activeKey = ref('safety');
+const alarmHistory = ref();
+// const deviceColumns = getTableHeaderColumns('alarm_history') as [];
+const dataColumns = ref<any>(safetyColumns);
+const searchFormSchema = ref<any>(safetySchema);
+const paramType = ref('aqjkAlarmLog');
+
+
+
+
+// function onChangeTab(tab) {
+//   activeKey.value = tab
+//   // if (tab === 'safety') {
+//   //   paramType.value = 'aqjkAlarmLog';
+//   //   dataColumns.value = safetyColumns;
+//   //   searchFormSchema.value = safetySchema
+//   // }
+//   //  else if (tab === 'device') {
+//   //   paramType.value = 'alarmLog';
+//   //   dataColumns.value = deviceColumns;
+//   //   searchFormSchema.value = unsafetySchema
+//   // } else {
+//   //   paramType.value = 'autoLog';
+//   //   dataColumns.value = manageAutoColumns1;
+//   //   searchFormSchema.value = unsafetySchema
+//   // }
+// }
+
+
+
+  
+  
+
+ 
 
   // 列表页面公共参数、方法
   const { tableContext, onExportXls, onExportXlsPost } = useListPage({
@@ -163,30 +175,34 @@
   //注册table数据
   const [registerTable, { reload, setLoading, getForm }] = tableContext;
 
-  //获取预警统计信息
-  async function getEachMineWarnCountInfoList() {
-    let res = await getEachMineWarnCountInfo({});
-    console.log(res, '监测数量预警状态------');
-    statisticsList[0].valueT = res.ventSWarnInfo.totalNum || 0;
-    statisticsList[0].valueB = res.ventSWarnInfo.maxWarnLevel || '';
-    statisticsList[1].valueT = res.dustSWarnInfo.totalNum || 0;
-    statisticsList[1].valueB = res.dustSWarnInfo.maxWarnLevel || '';
-    statisticsList[2].valueT = res.gasSWarnInfo.totalNum || 0;
-    statisticsList[2].valueB = res.gasSWarnInfo.maxWarnLevel || '';
-    statisticsList[3].valueT = res.fireSWarnInfo.totalNum || 0;
-    statisticsList[3].valueB = res.fireSWarnInfo.maxWarnLevel || '';
-    statisticsList[4].valueT = res.synthesizeSWarnInfo.totalNum || 0;
-    statisticsList[4].valueB = res.synthesizeSWarnInfo.maxWarnLevel || '';
-  }
-
-  const orgname = ref<any>('');
-
-  onMounted(async () => {
-    orgname.value = route.query.orgname;
-    getEachMineWarnCountInfoList();
-  });
-
-  defineExpose({ setLoading });
+  
+
+ 
+
+//获取预警统计信息
+// async function getEachMineWarnCountInfoList() {
+//   let res = await getEachMineWarnCountInfo({});
+//   console.log(res, '监测数量预警状态------');
+//   statisticsList[0].valueT = res.ventSWarnInfo.totalNum || 0;
+//   statisticsList[0].valueB = res.ventSWarnInfo.maxWarnLevel || '';
+//   statisticsList[1].valueT = res.dustSWarnInfo.totalNum || 0;
+//   statisticsList[1].valueB = res.dustSWarnInfo.maxWarnLevel || '';
+//   statisticsList[2].valueT = res.gasSWarnInfo.totalNum || 0;
+//   statisticsList[2].valueB = res.gasSWarnInfo.maxWarnLevel || '';
+//   statisticsList[3].valueT = res.fireSWarnInfo.totalNum || 0;
+//   statisticsList[3].valueB = res.fireSWarnInfo.maxWarnLevel || '';
+//   statisticsList[4].valueT = res.synthesizeSWarnInfo.totalNum || 0;
+//   statisticsList[4].valueB = res.synthesizeSWarnInfo.maxWarnLevel || '';
+// }
+
+const orgname = ref<any>('');
+
+onMounted(async () => {
+  orgname.value = route.query.orgname;
+  // getEachMineWarnCountInfoList();
+});
+
+defineExpose({ setLoading });
 </script>
 
 <style scoped lang="less">
@@ -211,178 +227,210 @@
     left: 0 !important;
   }
 
-  @{theme-deepblue} {
-    .data-statistics {
-      --image-vent-tf: url('/@/assets/images/themify/deepblue/vent-tf.png');
-      --image-dust-fc: url('/@/assets/images/themify/deepblue/dust-fc.png');
-      --image-gas-ws: url('/@/assets/images/themify/deepblue/gas-ws.png');
-      --image-fire-fz: url('/@/assets/images/themify/deepblue/fire-fz.png');
-      --image-aqjc: url('/@/assets/images/themify/deepblue/aqjc.png');
-      --image-his-one: url('/@/assets/images/themify/deepblue/his-one.png');
-    }
-
-    .tab-box {
-      --table-border: #0eb3ff66;
-      --tab-bg: linear-gradient(#001325, #051f4a);
-      --image-top-btn: url('/@/assets/images/themify/deepblue/top-btn.png');
-      --image-top-btn-select: url('/@/assets/images/themify/deepblue/top-btn-select.png');
-    }
-  }
-
-  .data-statistics {
-    --image-vent-tf: url('/@/assets/images/vent-tf.png');
-    --image-dust-fc: url('/@/assets/images/dust-fc.png');
-    --image-gas-ws: url('/@/assets/images/gas-ws.png');
-    --image-fire-fz: url('/@/assets/images/fire-fz.png');
-    --image-aqjc: url('/@/assets/images/aqjc.png');
-    --image-his-one: url('/@/assets/images/his-one.png');
-    height: 200px;
-    padding: 20px;
-    margin-top: 90px;
-    background-color: #0ebbff15;
-    display: flex;
-    justify-content: space-between;
-    align-items: center;
-
-    .statistics-box {
-      display: flex;
-      flex: 1;
-      height: 100%;
-      justify-content: center;
-      align-items: center;
-
-      .left-box {
-        position: relative;
-        width: 138px;
-        height: 100%;
-
-        .box-title {
-          position: absolute;
-          left: 50%;
-          bottom: 18px;
-          transform: translate(-50%, 0);
-          color: #fff;
-        }
-      }
-
-      &:nth-child(1) .left-box {
-        background: var(--image-vent-tf) no-repeat center;
-        background-size: 100% auto;
-      }
-
-      &:nth-child(2) .left-box {
-        background: var(--image-dust-fc) no-repeat center;
-        background-size: 100% auto;
-      }
-
-      &:nth-child(3) .left-box {
-        background: var(--image-gas-ws) no-repeat center;
-        background-size: 100% auto;
-      }
-
-      &:nth-child(4) .left-box {
-        background: var(--image-fire-fz) no-repeat center;
-        background-size: 100% auto;
-      }
-
-      &:nth-child(5) .left-box {
-        background: var(--image-aqjc) no-repeat center;
-        background-size: 100% auto;
-      }
-
-      .right-box {
-        position: relative;
-        width: 215px;
-        height: 100%;
-        display: flex;
-        flex-direction: column;
-        justify-content: space-around;
-        align-items: center;
-
-        .box-text {
-          position: relative;
-          width: 100%;
-          height: 40px;
-          color: #fff;
-          background: var(--image-his-one) no-repeat center;
-          background-size: 100% 100%;
-
-          .text-label {
-            position: absolute;
-            left: 20px;
-            top: 50%;
-            transform: translate(0, -50%);
-          }
-
-          .text-value {
-            position: absolute;
-            left: 130px;
-            top: 50%;
-            transform: translate(0, -50%);
-            font-family: 'douyuFont';
-          }
-        }
-
-        .warning-state {
-          .text-value {
-            color: aqua !important;
-            font-family: 'douyuFont';
-          }
-        }
-      }
-    }
-  }
-
-  .tab-box {
-    --table-border: #0efcff44;
-    --tab-bg: linear-gradient(#001325, #012e4f);
-    --image-top-btn: url('/@/assets/images/top-btn.png');
-    --image-top-btn-select: url('/@/assets/images/top-btn-select.png');
-    display: flex;
-    color: #fff;
-    position: relative;
-    top: 11px;
-    background: var(--tab-bg);
-
-    :deep(.zxm-tabs-nav) {
-      margin: 0 !important;
-
-      .zxm-tabs-tab {
-        width: 180px;
-        height: 45px;
-        background: var(--image-top-btn) center no-repeat;
-        background-size: cover;
-        display: flex;
-        justify-content: center;
-        font-size: 16px;
-      }
-
-      .zxm-tabs-tab-active {
-        width: 180px;
-        position: relative;
-        background: var(--image-top-btn-select) center no-repeat;
-        background-size: cover;
-
-        .zxm-tabs-tab-btn {
-          color: #fff !important;
-        }
-      }
-
-      .zxm-tabs-ink-bar {
-        width: 0 !important;
-      }
-
-      .zxm-tabs-tab + .zxm-tabs-tab {
-        margin: 0 !important;
-      }
-    }
-  }
-
-  .alarm-history-table {
-    width: 100%;
-    background-color: #0ebbff15;
-    position: relative;
-    margin-top: 10px;
+  // @{theme-deepblue} {
+  //   .data-statistics {
+  //     --image-vent-tf: url('/@/assets/images/themify/deepblue/vent-tf.png');
+  //     --image-dust-fc: url('/@/assets/images/themify/deepblue/dust-fc.png');
+  //     --image-gas-ws: url('/@/assets/images/themify/deepblue/gas-ws.png');
+  //     --image-fire-fz: url('/@/assets/images/themify/deepblue/fire-fz.png');
+  //     --image-aqjc: url('/@/assets/images/themify/deepblue/aqjc.png');
+  //     --image-his-one: url('/@/assets/images/themify/deepblue/his-one.png');
+  //   }
+
+  //   .tab-box {
+  //     --table-border: #0eb3ff66;
+  //     --tab-bg: linear-gradient(#001325, #051f4a);
+  //     --image-top-btn: url('/@/assets/images/themify/deepblue/top-btn.png');
+  //     --image-top-btn-select: url('/@/assets/images/themify/deepblue/top-btn-select.png');
+  //   }
+  // }
+
+
+
+// .data-statistics {
+//   // --image-vent-tf: url('/@/assets/images/vent-tf.png');
+//   // --image-dust-fc: url('/@/assets/images/dust-fc.png');
+//   // --image-gas-ws: url('/@/assets/images/gas-ws.png');
+//   // --image-fire-fz: url('/@/assets/images/fire-fz.png');
+//   // --image-aqjc: url('/@/assets/images/aqjc.png');
+//   // --image-his-one: url('/@/assets/images/his-one.png');
+//   height: 200px;
+//   padding: 20px;
+//   margin-top: 90px;
+//   background-color: #0ebbff15;
+//   display: flex;
+//   justify-content: space-between;
+//   align-items: center;
+
+//   .statistics-box {
+//     display: flex;
+//     flex: 1;
+//     height: 100%;
+//     justify-content: center;
+//     align-items: center;
+
+//     .left-box {
+//       position: relative;
+//       width: 138px;
+//       height: 100%;
+
+//       .box-title {
+//         position: absolute;
+//         left: 50%;
+//         bottom: 18px;
+//         transform: translate(-50%, 0);
+//         color: #fff;
+//       }
+//     }
+
+//     &:nth-child(1) .left-box {
+//       background: var(--image-vent-tf) no-repeat center;
+//       background-size: 100% auto;
+//     }
+
+//     &:nth-child(2) .left-box {
+//       background: var(--image-dust-fc) no-repeat center;
+//       background-size: 100% auto;
+//     }
+
+//     &:nth-child(3) .left-box {
+//       background: var(--image-gas-ws) no-repeat center;
+//       background-size: 100% auto;
+//     }
+
+//     &:nth-child(4) .left-box {
+//       background: var(--image-fire-fz) no-repeat center;
+//       background-size: 100% auto;
+//     }
+
+//     &:nth-child(5) .left-box {
+//       background: var(--image-aqjc) no-repeat center;
+//       background-size: 100% auto;
+//     }
+
+//     .right-box {
+//       position: relative;
+//       width: 215px;
+//       height: 100%;
+//       display: flex;
+//       flex-direction: column;
+//       justify-content: space-around;
+//       align-items: center;
+
+//       .box-text {
+//         position: relative;
+//         width: 100%;
+//         height: 40px;
+//         color: #fff;
+//         background: var(--image-his-one) no-repeat center;
+//         background-size: 100% 100%;
+
+//         .text-label {
+//           position: absolute;
+//           left: 20px;
+//           top: 50%;
+//           transform: translate(0, -50%);
+//         }
+
+//         .text-value {
+//           position: absolute;
+//           left: 130px;
+//           top: 50%;
+//           transform: translate(0, -50%);
+//           font-family: 'douyuFont';
+//         }
+//       }
+
+//       .warning-state {
+//         .text-value {
+//           color: aqua !important;
+//           font-family: 'douyuFont';
+//         }
+//       }
+//     }
+//   }
+// }
+
+// .tab-box {
+//   --table-border: #0efcff44;
+//   --tab-bg: linear-gradient(#001325, #012e4f);
+//   --image-top-btn: url('/@/assets/images/top-btn.png');
+//   --image-top-btn-select: url('/@/assets/images/top-btn-select.png');
+//   display: flex;
+//   color: #fff;
+//   position: relative;
+//   // top: 11px;
+//    margin-top: 120px;
+//   background: var(--tab-bg);
+
+//   :deep(.zxm-tabs-nav) {
+//     margin: 0 !important;
+
+//     .zxm-tabs-tab {
+//       width: 180px;
+//       height: 45px;
+//       background: var(--image-top-btn) center no-repeat;
+//       background-size: cover;
+//       display: flex;
+//       justify-content: center;
+//       font-size: 16px;
+//     }
+
+//     .zxm-tabs-tab-active {
+//       width: 180px;
+//       position: relative;
+//       background: var(--image-top-btn-select) center no-repeat;
+//       background-size: cover;
+
+//       .zxm-tabs-tab-btn {
+//         color: #fff !important;
+//       }
+//     }
+
+//     .zxm-tabs-ink-bar {
+//       width: 0 !important;
+//     }
+
+//     .zxm-tabs-tab+.zxm-tabs-tab {
+//       margin: 0 !important;
+
+//       .zxm-tabs-tab {
+//         width: 180px;
+//         height: 45px;
+//         background: var(--image-top-btn) center no-repeat;
+//         background-size: cover;
+//         display: flex;
+//         justify-content: center;
+//         font-size: 16px;
+//       }
+
+//       .zxm-tabs-tab-active {
+//         width: 180px;
+//         position: relative;
+//         background: var(--image-top-btn-select) center no-repeat;
+//         background-size: cover;
+
+//         .zxm-tabs-tab-btn {
+//           color: #fff !important;
+//         }
+//       }
+
+//       .zxm-tabs-ink-bar {
+//         width: 0 !important;
+//       }
+
+//       .zxm-tabs-tab + .zxm-tabs-tab {
+//         margin: 0 !important;
+//       }
+//     }
+//   }
+
+.alarm-history-table {
+  width: 100%;
+  background-color: #0ebbff15;
+  position: relative;
+  // margin-top: 10px;
+    margin-top: 80px;
 
     &::after {
       position: absolute;

+ 20 - 6
src/views/vent/safetyList/common/detail.vue

@@ -69,8 +69,9 @@
                   <a-button v-if="!record.devInfoList" type="success" size="small"
                     style="margin-right:10px">删除</a-button>
                 </a-popconfirm>
-                <a-button type="primary" v-if="!record.devInfoList" size="small" @click="debugClick(record)">{{
-                  record.debugTitle }}</a-button>
+                <!-- <a-button type="primary" v-if="!record.devInfoList" size="small" @click="debugClick(record)">{{
+                  record.debugTitle }}</a-button> -->
+                  <a-button type="primary" size="small" @click="debugClick({debugTitle:'调试'})">调试</a-button>
               </template>
               <template #bodyCell="{ column, text }">
                 <template v-if="column.dataIndex === 'valueJc' && text">
@@ -114,9 +115,9 @@
             <!-- 调试弹窗 -->
             <a-modal style="top: 300px; left: 360px" v-model:visible="visibleModalDebug" :width="450" title="调试信息"
               @ok="handleOkDebug" @cancel="handleCancelDebug">
-              <a-form :model="startupDataDebug" labelAlign="right" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }">
+              <a-form :model="startupDataDebug" labelAlign="right" :label-col="{ span: 12 }" :wrapper-col="{ span: 12 }">
                 <a-form-item label="风速">
-                  <a-input v-model:value="startupDataDebug.speed" placeholder="请输入" style="width: 260px" />
+                  <a-input type="number" v-model:value="startupDataDebug.speed" placeholder="请输入" style="width: 260px" />
                 </a-form-item>
                 <a-form-item label="风向">
                   <a-select v-model:value="startupDataDebug.direction" style="width: 260px">
@@ -124,6 +125,12 @@
                     }}</a-select-option>
                   </a-select>
                 </a-form-item>
+                 <a-form-item label="密码"> 
+                <a-input  type="password" v-model:value="startupDataDebug.pwd" placeholder="请输入"  style="width: 260px"/>
+                </a-form-item>
+                 <a-form-item label="浮动范围">
+                  <a-input type="number" v-model:value="startupDataDebug.range" placeholder="请输入" style="width: 260px" />
+                </a-form-item>
               </a-form>
             </a-modal>
           </div>
@@ -360,7 +367,7 @@
 </template>
 
 <script setup lang="ts">
-import { ref, nextTick, reactive, onMounted, onUnmounted } from 'vue';
+import { ref, nextTick, reactive, onMounted, onUnmounted,inject } from 'vue';
 import { usePermission } from '/@/hooks/web/usePermission';
 import {
   subStationList,
@@ -385,7 +392,7 @@ import HistoryTable from './HistoryTable.vue';
 import customHeader from '/@/components/vent/customHeader.vue';
 import operateRecord from './operateRecord.vue'
 
-
+ const globalConfig = inject('globalConfig');
 let expandedRowKeys = reactive<any[]>([])
 const { hasPermission } = usePermission();
 let activeKey = ref('device');
@@ -467,6 +474,8 @@ let paramId = ref('');
 let startupDataDebug = reactive({
   speed: '',
   direction: '',
+  pwd:'',
+  range:'',
 });
 let visibleModalDebug = ref(false);
 let debugFlag = ref('');
@@ -885,6 +894,8 @@ function debugClick(record) {
     //正在调试中
     startupDataDebug.speed = '';
     startupDataDebug.direction = '';
+    startupDataDebug.pwd=''
+    startupDataDebug.range=''
     visibleModalDebug.value = true;
     debugFlag.value = 'device';
     debugDeviceId.value = record.id;
@@ -950,11 +961,14 @@ function handleCancelEdit() {
 }
 //调试确认
 async function handleOkDebug() {
+
   let res = await updateDebugStatus({
     stationId: debugStationId.value,
     deviceId: debugDeviceId.value,
     speed: startupDataDebug.speed,
     direction: startupDataDebug.direction,
+    pwd:startupDataDebug.pwd || globalConfig?.simulatedPassword,
+    range:startupDataDebug.range,
     debugFlag: '1',
   });
   if (res) {