| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog |
| | | title="æç¤º" |
| | | :visible.sync="dialogVisible" |
| | | :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | :show-close="false" |
| | | width="30%"> |
| | | <div style="display: flex;align-items: center;"><i class="el-icon-warning" style="color: red;font-size: 40px;margin-right: 20px;"></i><span>ä»£ç æ£å¨é¨ç½²ï¼è¯·30åéåéæ°è¿å
¥ç³»ç»ï¼</span></div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data(){ |
| | | return{ |
| | | timer:null, |
| | | closeTimeout:null, |
| | | dialogVisible:false, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.startScheduler(); |
| | | }, |
| | | methods: { |
| | | startScheduler() { |
| | | this.checkTime(); |
| | | // æ¯å鿣æ¥ä¸æ¬¡ |
| | | this.timer = setInterval(this.checkTime, 60 * 1000); |
| | | }, |
| | | checkTime() { |
| | | const now = new Date(); |
| | | const hours = now.getHours(); |
| | | const minutes = now.getMinutes(); |
| | | |
| | | if (hours === 20 && minutes === 0) { |
| | | this.performTask(); |
| | | // 设置20åéåæç¤ºå
³é |
| | | this.closeTimeout = setTimeout(() => { |
| | | this.promptToClose(); |
| | | }, 20 * 60 * 1000); // 20åé |
| | | } |
| | | }, |
| | | performTask() { |
| | | // å¨è¿éæ§è¡ä½ æ³è¦ç宿¶ä»»å¡ |
| | | console.log("任塿§è¡äºï¼"); |
| | | this.dialogVisible = true; |
| | | // è¿éå¯ä»¥è§¦åä¸ä¸ª Vuex å¨ä½ãåèµ·ä¸ä¸ª HTTP 请æ±ï¼æè
å
¶ä»æä½ |
| | | }, |
| | | promptToClose() { |
| | | // æç¤ºç¨æ·å
³é |
| | | // alert("请记å¾å¨20åéåå
³éä»»å¡ï¼"); |
| | | this.dialogVisible = true; |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | // ç»ä»¶éæ¯æ¶æ¸
é¤å®æ¶å¨ |
| | | if (this.timer) { |
| | | clearInterval(this.timer); |
| | | } |
| | | if (this.closeTimeout) { |
| | | clearTimeout(this.closeTimeout); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |