快乐的昕的电脑
2025-11-12 a68880015e0d83939ff90f4d9e943c3d423bd358
components/machine.vue
@@ -257,12 +257,17 @@
            })
         }
      },
      mounted() {
         // 页面加载时,启动定时器,每隔5分钟自动保存(当前示例使用 30s,可改回 5 分钟)
         this.autoSaveTimer = setInterval(() => {
            this.save(); // 直接调用已有的保存方法(save 已返回 Promise)
         }, 1 * 30 * 1000); // 30秒
      },
        mounted() {
            // 页面加载时,启动定时器,每隔30秒自动保存
            this.autoSaveTimer = setInterval(() => {
                // 判断当前工单是否为开工状态,若是则不触发保存
                if (this.statusForm && this.statusForm.status === '开工') {
                    // 已开工不自动保存
                    return;
                }
                this.save(); // 只有非开工状态才自动保存
            }, 1 * 30 * 1000); // 30秒
        },
      beforeDestroy() {
         // 页面卸载时清理定时器
         clearInterval(this.autoSaveTimer);
@@ -273,7 +278,7 @@
<style scoped>
   /* 页面整体布局 */
   .page {
      padding: 2vh;
      padding: 8px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
@@ -284,54 +289,56 @@
   /* 右上角刷新按钮 */
   .top-right {
      position: absolute;
      top: 10px;
      right: 50px;
      top: 8px;
      right: 40px;
      width: 200px;
      z-index: 1000;
   }
   .refresh-btn {
      padding: 10px;
      padding: 8px 16px;
      background-color: #00A2E9;
      color: white;
      border: none;
      font-size: 1.5vw;
      font-size: 16px;
      border-radius: 5px;
   }
   label {
      margin-right: 1vw;
      font-size: 1.6vw;
   }
   input {
      padding: 1vh;
      font-size: 1.5vw;
      border: 1px solid #ccc;
      width: 100%;
      margin-top: 1vh;
      box-sizing: border-box;
      margin-right: 10px;
      font-size: 16px;
   }
   /* 中间状态部分布局 */
   .middle-section {
      display: flex;
      flex-direction: column;
      margin-bottom: 4vh;
      margin-bottom: 8px;
   }
   .item {
      display: flex;
      flex-direction: row;
      align-items: flex-start;
      margin-bottom: 2vh;
      align-items: center;
      margin-bottom: 10px;
      gap: 10px;
   }
   .item h4 {
      font-size: 14px;
      line-height: 1.4;
      margin: 0;
      padding: 5px 0;
   }
   button {
      width: 100%;
      padding: 1.5vh;
      font-size: 1.5vw;
      width: 50%;
      flex-shrink: 0;
      padding: 10px;
      font-size: 16px;
      border: none;
      text-align: center;
      min-height: 40px;
   }
   .btn-disabled {
@@ -345,36 +352,86 @@
   }
   input {
      margin-top: 10px;
      padding: 10px;
      font-size: 14px;
      margin-top: 0;
      padding: 8px;
      font-size: 15px;
      border: 1px solid #ccc;
      width: 100%;
      width: 50%;
      flex-grow: 1;
      box-sizing: border-box;
   }
   /* 底部保存/取消按钮布局 */
   .bottom-section {
      display: flex;
      justify-content: space-between;
      margin-top: 4vh;
      margin-top: 10px;
      padding-top: 10px;
   }
   .save-btn,
   .cancel-btn {
      width: 48%;
      padding: 1.5vh;
      padding: 12px;
      background-color: #00A2E9;
      color: white;
      font-size: 1.6vw;
      font-size: 18px;
      border: none;
      text-align: center;
      min-height: 45px;
   }
   .txt-inp {
      height: 8vh;
      padding: 1vh;
      font-size: 1.5vw;
      width: 100%;
      height: 40px;
      padding: 8px;
      font-size: 15px;
      width: 50%;
      flex-grow: 1;
      box-sizing: border-box;
      margin-top: 0;
   }
   /* 针对1280*717屏幕的特定优化 */
   @media screen and (max-width: 1280px) and (max-height: 800px) {
      .page {
         padding: 6px;
      }
      .middle-section {
         margin-bottom: 6px;
      }
      .item {
         margin-bottom: 8px;
      }
      .item h4 {
         font-size: 13px;
         padding: 3px 0;
      }
      button {
         padding: 8px;
         font-size: 15px;
         min-height: 38px;
      }
      .txt-inp {
         height: 38px;
         padding: 6px;
         font-size: 14px;
      }
      .bottom-section {
         margin-top: 8px;
         padding-top: 8px;
      }
      .save-btn,
      .cancel-btn {
         padding: 10px;
         font-size: 17px;
         min-height: 42px;
      }
   }
</style>