| | |
| | | </view> |
| | | <view class="item"> |
| | | <!-- 调机开始按钮,maStartTime有值时禁用 --> |
| | | <button :class="maStartTime ? 'btn-disabled' : 'btn-blue'" |
| | | :disabled="!!maStartTime" |
| | | @click="handleMaStartTime"> |
| | | 调机开始 |
| | | </button> |
| | | <button :class="maStartTime ? 'btn-disabled' : 'btn-blue'" |
| | | :disabled="!!maStartTime" |
| | | @click="handleMaStartTime"> |
| | | 调机开始(=上刀完成) |
| | | </button> |
| | | <!-- 显示调机开始时间 --> |
| | | <input class="txt-inp" v-model="maStartTime" placeholder="点击按钮带出调机时间" disabled="true" /> |
| | | </view> |
| | |
| | | if (res && res.data && res.data.tbBillList) { |
| | | this.$showMessage("呼叫成功"); |
| | | |
| | | 或者方法3:使用 uni.navigateBack 再跳转回来(如果是从其他页面跳转过来的) |
| | | uni.navigateBack({ |
| | | delta: 1, |
| | | success: () => { |
| | | // 可以在这里重新跳转到当前页面 |
| | | } |
| | | }); |
| | | // 关键修改:清空 flag 的值 |
| | | this.flag = -1; // 或者根据业务需求设置为其他初始值 |
| | | |
| | | // 方案1:使用uni-app的页面刷新方法 |
| | | // 方法1:触发下拉刷新(如果页面支持) |
| | | if (uni.startPullDownRefresh) { |
| | | uni.startPullDownRefresh(); |
| | | // 2秒后停止刷新 |
| | | setTimeout(() => { |
| | | uni.stopPullDownRefresh(); |
| | | }, 2000); |
| | | } |
| | | |
| | | // 方法2:重新调用页面的onLoad方法(推荐) |
| | | const pages = getCurrentPages(); |
| | | const currentPage = pages[pages.length - 1]; |
| | | if (currentPage && currentPage.onLoad) { |
| | | // 保存当前页面参数 |
| | | const pageOptions = currentPage.options || {}; |
| | | // 重新加载页面数据 |
| | | currentPage.onLoad(pageOptions); |
| | | } |
| | | |
| | | // 方法3:同时刷新组件数据 |
| | | this.findByOrderId(); |
| | | |
| | | } else { |
| | | this.$showMessage("呼叫失败"); |
| | |
| | | }) |
| | | } |
| | | }, |
| | | mounted() { |
| | | // 页面加载时,启动定时器,每隔5分钟自动保存(当前示例使用 30s,可改回 5 分钟) |
| | | this.autoSaveTimer = setInterval(() => { |
| | | this.save(); // 直接调用已有的保存方法(save 已返回 Promise) |
| | | }, 1 * 30 * 1000); // 30秒 |
| | | }, |
| | | mounted() { |
| | | // 页面加载时,启动定时器,每隔30秒自动保存 |
| | | this.autoSaveTimer = setInterval(() => { |
| | | // 1. 调机完成时间有了就不自动保存 |
| | | if (this.maEndTime) { |
| | | return; |
| | | } |
| | | // 2. 送检时间为空也不自动保存 |
| | | if (!this.maShoutTime) { |
| | | return; |
| | | } |
| | | this.save(); // 满足条件才自动保存 |
| | | }, 1 * 30 * 1000); // 30秒 |
| | | }, |
| | | beforeDestroy() { |
| | | // 页面卸载时清理定时器 |
| | | clearInterval(this.autoSaveTimer); |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /* 页面整体布局 */ |
| | | .page { |
| | | padding: 2vh; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | box-sizing: border-box; |
| | | height: 100%; |
| | | } |
| | | /* 页面整体布局 */ |
| | | .page { |
| | | padding: 8px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | box-sizing: border-box; |
| | | height: 100%; |
| | | } |
| | | |
| | | /* 右上角刷新按钮 */ |
| | | .top-right { |
| | | position: absolute; |
| | | top: 10px; |
| | | right: 50px; |
| | | z-index: 1000; |
| | | } |
| | | /* 右上角刷新按钮 */ |
| | | .top-right { |
| | | position: absolute; |
| | | top: 8px; |
| | | right: 40px; |
| | | width: 200px; |
| | | z-index: 1000; |
| | | } |
| | | |
| | | .refresh-btn { |
| | | padding: 10px; |
| | | background-color: #00A2E9; |
| | | color: white; |
| | | border: none; |
| | | font-size: 1.5vw; |
| | | border-radius: 5px; |
| | | } |
| | | .refresh-btn { |
| | | padding: 8px 16px; |
| | | background-color: #00A2E9; |
| | | color: white; |
| | | border: none; |
| | | font-size: 24px; |
| | | border-radius: 5px; |
| | | } |
| | | |
| | | label { |
| | | margin-right: 1vw; |
| | | font-size: 1.6vw; |
| | | } |
| | | label { |
| | | margin-right: 10px; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | input { |
| | | padding: 1vh; |
| | | font-size: 1.5vw; |
| | | border: 1px solid #ccc; |
| | | width: 100%; |
| | | margin-top: 1vh; |
| | | box-sizing: border-box; |
| | | } |
| | | /* 中间状态部分布局 */ |
| | | .middle-section { |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | /* 中间状态部分布局 */ |
| | | .middle-section { |
| | | display: flex; |
| | | flex-direction: column; |
| | | margin-bottom: 4vh; |
| | | } |
| | | .item { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: center; |
| | | margin-bottom: 10px; |
| | | gap: 10px; |
| | | } |
| | | |
| | | .item { |
| | | display: flex; |
| | | flex-direction: row; |
| | | align-items: flex-start; |
| | | margin-bottom: 2vh; |
| | | } |
| | | .item h4 { |
| | | font-size: 24px; |
| | | line-height: 1.4; |
| | | margin: 0; |
| | | padding: 5px 0; |
| | | } |
| | | |
| | | button { |
| | | width: 100%; |
| | | padding: 1.5vh; |
| | | font-size: 1.5vw; |
| | | border: none; |
| | | text-align: center; |
| | | } |
| | | button { |
| | | width: 50%; |
| | | flex-shrink: 0; |
| | | padding: 10px; |
| | | font-size: 24px; |
| | | border: none; |
| | | text-align: center; |
| | | min-height: 40px; |
| | | } |
| | | |
| | | .btn-disabled { |
| | | background-color: #ccc; |
| | | color: white; |
| | | } |
| | | .btn-disabled { |
| | | background-color: #ccc; |
| | | color: white; |
| | | } |
| | | |
| | | .btn-blue { |
| | | background-color: #00A2E9; |
| | | color: white; |
| | | } |
| | | .btn-blue { |
| | | background-color: #00A2E9; |
| | | color: white; |
| | | } |
| | | |
| | | input { |
| | | margin-top: 10px; |
| | | padding: 10px; |
| | | font-size: 14px; |
| | | border: 1px solid #ccc; |
| | | width: 100%; |
| | | } |
| | | input { |
| | | margin-top: 0; |
| | | padding: 8px; |
| | | font-size: 24px; |
| | | border: 1px solid #ccc; |
| | | width: 50%; |
| | | flex-grow: 1; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | /* 底部保存/取消按钮布局 */ |
| | | .bottom-section { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-top: 4vh; |
| | | } |
| | | /* 底部保存/取消按钮布局 */ |
| | | .bottom-section { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-top: 10px; |
| | | padding-top: 10px; |
| | | } |
| | | |
| | | .save-btn, |
| | | .cancel-btn { |
| | | width: 48%; |
| | | padding: 1.5vh; |
| | | background-color: #00A2E9; |
| | | color: white; |
| | | font-size: 1.6vw; |
| | | border: none; |
| | | text-align: center; |
| | | } |
| | | .save-btn, |
| | | .cancel-btn { |
| | | width: 48%; |
| | | padding: 12px; |
| | | background-color: #00A2E9; |
| | | color: white; |
| | | font-size: 24px; |
| | | border: none; |
| | | text-align: center; |
| | | min-height: 45px; |
| | | } |
| | | |
| | | .txt-inp { |
| | | height: 8vh; |
| | | padding: 1vh; |
| | | font-size: 1.5vw; |
| | | width: 100%; |
| | | box-sizing: border-box; |
| | | } |
| | | .txt-inp { |
| | | height: 80px; /* 增大高度 */ |
| | | padding: 12px; /* 增大内边距 */ |
| | | font-size: 24px; /* 增大字体 */ |
| | | 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: 24px; |
| | | padding: 3px 0; |
| | | } |
| | | |
| | | button { |
| | | padding: 8px; |
| | | font-size: 24px; |
| | | min-height: 38px; |
| | | } |
| | | |
| | | .txt-inp { |
| | | height: 46px; |
| | | padding: 10px; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .bottom-section { |
| | | margin-top: 8px; |
| | | padding-top: 8px; |
| | | } |
| | | |
| | | .save-btn, |
| | | .cancel-btn { |
| | | padding: 10px; |
| | | font-size: 24px; |
| | | min-height: 42px; |
| | | } |
| | | |
| | | input { |
| | | font-size: 24px; |
| | | } |
| | | |
| | | .refresh-btn { |
| | | font-size: 24px; |
| | | } |
| | | |
| | | label { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | </style> |