sl-express/project-wl-siji-uniapp-vue3/pages/user/components/TaskData.vue

107 lines
2.7 KiB
Vue
Raw Permalink Normal View History

2023-09-04 16:40:17 +08:00
<!-- 车辆信息 -->
<template>
<view class="taskData">
<!-- 日历模块 - 使用uni的日历重写 - start -->
<Calendar class="uni-calendar--hook" :selected="info.selected" :showMonth="false" @monthSwitch="monthSwitch" >
<!-- 任务栏数据展示 -->
<view class="taskCont">
<TaskInfo :title="false" :data="taskData" class="task" />
</view>
</Calendar>
<!-- 日历模块 - start -->
</view>
</template>
<script setup>
// 模块、接口导入
import { ref,reactive, onMounted } from 'vue';
import TaskInfo from './TaskInfo.vue'
import Calendar from './Calendar/components/uni-calendar/uni-calendar.vue'
// 请求API
import { getTaskData } from '@/pages/api/user.js';
// ------定义变量------
// 日历的展示数据
const info = reactive({
lunar: true,
range: true,
insert: false,
selected: []
})
const taskData = ref({})
// 生命周期
onMounted(()=>{
const date = getDate(new Date())
getTask({year: date.year, month: date.month});
// 配置任务日历展示订单数量的数据处理 - 等日历展示处理后添加数据
setTimeout(() => {
info.date = getDate(new Date(),-30).fullDate
info.startDate = getDate(new Date(),-60).fullDate
info.endDate = getDate(new Date(),30).fullDate
info.selected = info.selected
}, 1000)
})
// 获取任务数据
async function getTask(params){
await getTaskData(params)
.then(res => {
if (res.code == 200) {
const { data } = res
// 任务数据赋值
taskData.value = data
// 日历中任务数量显示数据处理
info.selected = data.dailyMileage.map((n)=>{
if (getDate(n.dateTime).fullDate != getDate(new Date()).fullDate){
return {date: getDate(n.dateTime).fullDate, info: n.mileage}
}
}).filter(n => n != undefined)
} else {
return uni.showToast({
title: data.msg,
duration: 1000,
icon: 'none'
});
}
})
.catch(err => {});
}
// 通过左右箭头(和确认)改变月份 从新请求数据
function monthSwitch(e) {
getTask(e)
}
// 日期处理
function getDate(date, AddDayCount = 0) {
if (!date) {
date = new Date()
}
if (typeof date !== 'object') {
date = date.replace(/-/g, '/')
}
const dd = new Date(date)
// 获取AddDayCount天后的日期
dd.setDate(dd.getDate() + AddDayCount)
const y = dd.getFullYear()
// 获取当前月份的日期不足10补0
const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1
// 获取当前几号不足10补0
const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate()
return {
fullDate: y + '-' + m + '-' + d,
year: y,
month: m,
date: d,
day: dd.getDay()
}
}
</script>
<style lang="scss" >
.taskCont{
position: relative;
margin-bottom: 40rpx;
.task{
top: 0;
border-radius: 0;
}
}
</style>