实现效果如下图,写了定时器。
这是可以进行一些设置,基础版本,都是正常班,没有考虑夜班。如果有需要的话可以自行实现。
样式也可以自行调整,内容样式有参考小程序 加油摸鱼侠。
小程序体验
代码如下,我使用的是uniapp,技术有限,没有思考太多,觉得代码冗余的可以自行在加以封装,样式可自行修改。可能会有bug,如果遇到的话可以私信,看到的话会进行修复和完善。
显示页面
<template>
<view class="pageHome">
<view class="offDuty">
<p>距离{
{text}}还剩 </p>
<text class="offDutyTime">{
{offDutyTime}}</text>
</view>
<view class="todayPay">
<p>今日生活费到账</p>
<span class="pay animate__animated animate__flash">{
{ salary.toFixed(2) }}</span>
<button @click="goEdit" class="edit">设置</button>
</view>
</view>
</template>
<script>
import {
getTimestamp,
formatTime
} from "@/utils/pay.js"
export default {
data() {
return {
salary: 10.2175,
increase: 0,
settledWages: 0,
dataFrom: null,
remainSeconds: 0,
offDutyTime: 0,
text:'下班',
timer:null
};
},
onLoad(options) {
// this.toDayPay()
if (uni.getStorageSync('pay')) {
this.dataFrom = uni.getStorageSync('pay')
}
},
onShow() {
this.dataFrom = uni.getStorageSync('pay')
this.initData()
},
mounted() {
this.initData()
},
methods: {
// 倒计时函数
updateCountdown(endTime) {
// 获取当前时间
const now = new Date();
// 构造指定时间点
const [hour, minute] = endTime.split(':'); // 将时间字符串按冒号分隔成时和分两个数字
const targetTime = new Date(now.getFullYear(), now.getMonth(), now.getDate(), hour, minute, 0);
// 计算剩余时间(单位:毫秒)
let timeDiff = targetTime.getTime() - now.g