2024-10-21 18:10:14 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<view class="calendar">
|
2024-10-22 10:52:39 +08:00
|
|
|
|
<!-- <view class="header">
|
2024-10-21 18:10:14 +08:00
|
|
|
|
<text @click="changeMonth(-1)">《</text>
|
|
|
|
|
|
<text>{{ currentYear }}年{{ currentMonth + 1 }}月</text>
|
|
|
|
|
|
<text @click="changeMonth(1)">》</text>
|
2024-10-22 10:52:39 +08:00
|
|
|
|
</view> -->
|
2024-11-03 14:42:17 +08:00
|
|
|
|
<h2>风险日历</h2>
|
|
|
|
|
|
<view class="today-work-num">
|
|
|
|
|
|
今日作业人数:
|
|
|
|
|
|
<text>{{ todayCount }}</text>
|
|
|
|
|
|
</view>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
<view class="header">
|
|
|
|
|
|
<view v-show="activeType === 1">
|
|
|
|
|
|
<uni-icons type="left" size="16" @click="changeMonth(-1)"></uni-icons>
|
|
|
|
|
|
<text>{{ currentYear }}-{{ currentMonth + 1 }}</text>
|
|
|
|
|
|
<uni-icons type="right" size="16" @click="changeMonth(1)"></uni-icons>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view v-show="activeType === 2">
|
|
|
|
|
|
<uni-icons type="left" size="16" @click="changeWeek(-1)"></uni-icons>
|
|
|
|
|
|
<text class="week-container">{{ weekStart }}~{{ weekEnd }}</text>
|
|
|
|
|
|
<uni-icons type="right" size="16" @click="changeWeek(1)"></uni-icons>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view v-show="activeType === 3">
|
|
|
|
|
|
<uni-icons type="left" size="16" @click="changeDay(-1)"></uni-icons>
|
|
|
|
|
|
<text>{{ currentDay }}</text>
|
|
|
|
|
|
<uni-icons type="right" size="16" @click="changeDay(1)"></uni-icons>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
<view>
|
|
|
|
|
|
<button :class="{ 'active-button ': activeType === 1 }" @tap="onCheckTime(1)">月</button>
|
|
|
|
|
|
<button :class="{ 'active-button ': activeType === 2 }" @tap="onCheckTime(2)">周</button>
|
|
|
|
|
|
<button :class="{ 'active-button ': activeType === 3 }" @tap="onCheckTime(3)">日</button>
|
|
|
|
|
|
</view>
|
2024-10-21 18:10:14 +08:00
|
|
|
|
</view>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
|
|
|
|
|
|
<!-- 选择月的时候的日历 -->
|
2024-10-25 18:21:10 +08:00
|
|
|
|
<view v-if="activeType === 1">
|
2024-10-22 18:09:55 +08:00
|
|
|
|
<view class="weekdays">
|
2024-10-25 18:21:10 +08:00
|
|
|
|
<text v-for="(day, index) in weekdays" :key="index + day">{{ day }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
<view class="days">
|
|
|
|
|
|
<view
|
2024-10-25 18:21:10 +08:00
|
|
|
|
v-for="(days, index) in days"
|
|
|
|
|
|
:key="days.date + index"
|
|
|
|
|
|
:class="{ 'current-month': days.currentMonth, 'other-month': !days.currentMonth }"
|
|
|
|
|
|
@click="selectDate(days)"
|
2024-10-22 18:09:55 +08:00
|
|
|
|
>
|
2024-10-25 18:21:10 +08:00
|
|
|
|
<text style="font-weight: bold">{{ days.day }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
<view class="risk-container">
|
2024-11-03 14:42:17 +08:00
|
|
|
|
<text v-show="days.kjsfx > 0">可接受:{{ days.kjsfx }}</text>
|
|
|
|
|
|
<text v-show="days.dfx > 0">低:{{ days.dfx }}</text>
|
|
|
|
|
|
<text v-show="days.zfx > 0">中:{{ days.zfx }}</text>
|
|
|
|
|
|
<text v-show="days.gfx > 0">高:{{ days.gfx }}</text>
|
|
|
|
|
|
<text v-show="days.tgfx > 0">特高:{{ days.tgfx }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 选择周的时候日历 -->
|
2024-10-25 18:21:10 +08:00
|
|
|
|
<view v-if="activeType === 2">
|
2024-10-22 18:09:55 +08:00
|
|
|
|
<view class="week-th">
|
2024-10-25 18:21:10 +08:00
|
|
|
|
<view v-for="(item, index) in weekList" :key="index">
|
2024-10-22 18:09:55 +08:00
|
|
|
|
<text>{{ item.title }}</text>
|
2024-10-23 09:10:06 +08:00
|
|
|
|
<text v-if="index !== 0" style="margin-top: 6rpx">{{ weekTimeChange(index) }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<view class="week-td" v-for="(item, index) in weekCompanyList" :key="index">
|
|
|
|
|
|
<view>
|
2024-11-03 14:42:17 +08:00
|
|
|
|
<text style="font-size: 26rpx">{{ item.orgName }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
2024-11-03 14:42:17 +08:00
|
|
|
|
|
|
|
|
|
|
<view v-for="(i, j) in item.dbs" :key="j" @tap="onViewDayData(i.day)">
|
|
|
|
|
|
<text class="style_4" v-if="i.kjsfx > 0">可接受:{{ i.kjsfx }}</text>
|
|
|
|
|
|
<text class="style_3" v-if="i.dfx > 0">低:{{ i.dfx }}</text>
|
|
|
|
|
|
<text class="style_2" v-if="i.zfx > 0">中:{{ i.zfx }}</text>
|
|
|
|
|
|
<text class="style_1" v-if="i.gfx > 0">高:{{ i.gfx }}</text>
|
|
|
|
|
|
<text class="style_1" v-if="i.tgfx > 0">特高:{{ i.tgfx }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 选择天的时候日历 -->
|
2024-10-25 18:21:10 +08:00
|
|
|
|
<view v-if="activeType === 3">
|
2024-10-22 18:09:55 +08:00
|
|
|
|
<view class="day-th">
|
|
|
|
|
|
<view>工程名称</view>
|
|
|
|
|
|
<view>作业人数</view>
|
|
|
|
|
|
<view>
|
2024-10-23 09:10:06 +08:00
|
|
|
|
<text>{{ currentWeekDay }}</text>
|
2024-11-04 18:47:55 +08:00
|
|
|
|
<text>{{ currentDayInfo.day.slice(5) ? currentDayInfo.day.slice(5) : currentDays }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<view class="day-td">
|
2024-11-04 10:13:18 +08:00
|
|
|
|
<view>{{ currentDayInfo.proName || '' }}</view>
|
2024-11-04 18:47:55 +08:00
|
|
|
|
<view @tap="onViewPersonDetails(currentDayInfo)">
|
|
|
|
|
|
<text style="color: #21a1f4">{{ currentDayInfo.rys || '' }}</text>
|
2024-10-22 18:09:55 +08:00
|
|
|
|
</view>
|
2024-11-04 18:47:55 +08:00
|
|
|
|
<view @tap="onViewPersonDetails(currentDayInfo)">
|
2024-11-03 14:42:17 +08:00
|
|
|
|
<text class="style_4" v-if="currentDayInfo.kjsfx > 0">可接受:{{ currentDayInfo.kjsfx }}</text>
|
|
|
|
|
|
<text class="style_3" v-if="currentDayInfo.dfx > 0">低:{{ currentDayInfo.dfx }}</text>
|
|
|
|
|
|
<text class="style_2" v-if="currentDayInfo.zfx > 0">中:{{ currentDayInfo.zfx }}</text>
|
|
|
|
|
|
<text class="style_1" v-if="currentDayInfo.gfx > 0">高:{{ currentDayInfo.gfx }}</text>
|
|
|
|
|
|
<text class="style_1" v-if="currentDayInfo.tgfx > 0">特高:{{ currentDayInfo.tgfx }}</text>
|
2024-10-22 10:52:39 +08:00
|
|
|
|
</view>
|
2024-10-21 18:10:14 +08:00
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
2024-11-03 14:42:17 +08:00
|
|
|
|
import { getDayUserApi, getMonthRiskApi, getWeekDataApi, getProFxByDayApi } from '../../../../api/workPlan/homePage'
|
2024-10-21 18:10:14 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
data() {
|
|
|
|
|
|
return {
|
2024-10-22 18:09:55 +08:00
|
|
|
|
activeType: 1,
|
2024-10-21 18:10:14 +08:00
|
|
|
|
currentYear: new Date().getFullYear(),
|
|
|
|
|
|
currentMonth: new Date().getMonth(),
|
2024-10-22 10:52:39 +08:00
|
|
|
|
weekdays: ['周日', '周一', '周二', '周三', '周四', '周五', '周六'],
|
2024-10-22 18:09:55 +08:00
|
|
|
|
weekList: [
|
|
|
|
|
|
{ title: '分公司', time: '' },
|
|
|
|
|
|
{ title: '周一', time: this.$moment().week(this.$moment().week()).startOf('week').format('MM-DD') },
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '周二',
|
|
|
|
|
|
time: this.$moment(this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD'))
|
|
|
|
|
|
.add(1, 'days')
|
|
|
|
|
|
.format('MM-DD')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '周三',
|
|
|
|
|
|
time: this.$moment(this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD'))
|
|
|
|
|
|
.add(2, 'days')
|
|
|
|
|
|
.format('MM-DD')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '周四',
|
|
|
|
|
|
time: this.$moment(this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD'))
|
|
|
|
|
|
.add(3, 'days')
|
|
|
|
|
|
.format('MM-DD')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '周五',
|
|
|
|
|
|
time: this.$moment(this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD'))
|
|
|
|
|
|
.add(4, 'days')
|
|
|
|
|
|
.format('MM-DD')
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
title: '周六',
|
|
|
|
|
|
time: this.$moment(this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD'))
|
|
|
|
|
|
.add(5, 'days')
|
|
|
|
|
|
.format('MM-DD')
|
|
|
|
|
|
},
|
|
|
|
|
|
{ title: '周日', time: this.$moment().week(this.$moment().week()).endOf('week').format('MM-DD') }
|
|
|
|
|
|
],
|
|
|
|
|
|
weekStart: this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD'),
|
|
|
|
|
|
weekEnd: this.$moment().week(this.$moment().week()).endOf('week').format('YYYY-MM-DD'),
|
|
|
|
|
|
currentDay: this.$moment().format('YYYY-MM-DD'),
|
2024-11-03 14:42:17 +08:00
|
|
|
|
weekCompanyList: [],
|
2024-10-21 18:10:14 +08:00
|
|
|
|
days: [],
|
2024-10-23 09:10:06 +08:00
|
|
|
|
// currentWeekDay: this.$moment().day(),
|
|
|
|
|
|
currentDays: this.$moment().format('MM-DD'),
|
2024-10-21 18:10:14 +08:00
|
|
|
|
customDates: {
|
|
|
|
|
|
'2023-06-15': '自定义内容'
|
2024-11-03 14:42:17 +08:00
|
|
|
|
},
|
|
|
|
|
|
todayCount: 0,
|
|
|
|
|
|
currentQueryDay: this.$moment().format('YYYY-MM'),
|
|
|
|
|
|
currentPramsWeekDay: '',
|
2024-11-04 10:13:18 +08:00
|
|
|
|
currentDayInfo: {
|
2024-11-04 18:47:55 +08:00
|
|
|
|
proName: '',
|
|
|
|
|
|
day: ''
|
2024-11-04 10:13:18 +08:00
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-10-23 09:10:06 +08:00
|
|
|
|
computed: {
|
|
|
|
|
|
weekTimeChange() {
|
|
|
|
|
|
return index => {
|
|
|
|
|
|
return this.$moment(this.weekStart)
|
|
|
|
|
|
.add(index - 1, 'days')
|
|
|
|
|
|
.format('MM-DD')
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
currentWeekDay() {
|
|
|
|
|
|
return this.onTransWeek(this.$moment(this.currentDay).day())
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
2024-10-21 18:10:14 +08:00
|
|
|
|
mounted() {
|
|
|
|
|
|
this.generateCalendar()
|
2024-11-03 14:42:17 +08:00
|
|
|
|
this.getDayUserData()
|
2024-10-21 18:10:14 +08:00
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
|
|
|
generateCalendar() {
|
|
|
|
|
|
const firstDay = new Date(this.currentYear, this.currentMonth, 1)
|
|
|
|
|
|
const lastDay = new Date(this.currentYear, this.currentMonth + 1, 0)
|
|
|
|
|
|
const daysInMonth = lastDay.getDate()
|
|
|
|
|
|
const startingDay = firstDay.getDay()
|
|
|
|
|
|
|
|
|
|
|
|
this.days = []
|
|
|
|
|
|
|
2024-11-03 14:42:17 +08:00
|
|
|
|
new Promise((resolve, reject) => {
|
|
|
|
|
|
for (let i = 0; i < startingDay; i++) {
|
|
|
|
|
|
const prevMonthLastDay = new Date(this.currentYear, this.currentMonth, 0).getDate()
|
|
|
|
|
|
this.days.push({
|
|
|
|
|
|
day: prevMonthLastDay - startingDay + i + 1,
|
|
|
|
|
|
currentMonth: false,
|
|
|
|
|
|
date: new Date(this.currentYear, this.currentMonth - 1, prevMonthLastDay - startingDay + i + 1)
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
|
2024-11-03 14:42:17 +08:00
|
|
|
|
for (let i = 1; i <= daysInMonth; i++) {
|
|
|
|
|
|
const date = new Date(this.currentYear, this.currentMonth, i)
|
|
|
|
|
|
const dateString = `${this.currentYear}-${String(this.currentMonth + 1).padStart(2, '0')}-${String(
|
|
|
|
|
|
i
|
|
|
|
|
|
).padStart(2, '0')}`
|
|
|
|
|
|
this.days.push({
|
|
|
|
|
|
day: i > 10 ? i : `0${i}`,
|
|
|
|
|
|
currentMonth: true,
|
|
|
|
|
|
date: date,
|
|
|
|
|
|
customContent: this.customDates[dateString]
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
|
2024-11-03 14:42:17 +08:00
|
|
|
|
const remainingDays = 42 - this.days.length
|
|
|
|
|
|
for (let i = 1; i <= remainingDays; i++) {
|
|
|
|
|
|
this.days.push({
|
|
|
|
|
|
day: i,
|
|
|
|
|
|
currentMonth: false,
|
|
|
|
|
|
date: new Date(this.currentYear, this.currentMonth + 1, i),
|
|
|
|
|
|
kjsfx: 0,
|
|
|
|
|
|
dfx: 0,
|
|
|
|
|
|
zfx: 0,
|
|
|
|
|
|
gfx: 0,
|
|
|
|
|
|
tgfx: 0,
|
|
|
|
|
|
currentDay: ''
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resolve()
|
|
|
|
|
|
}).then(() => {
|
|
|
|
|
|
this.getMonthRiskData()
|
|
|
|
|
|
})
|
2024-10-21 18:10:14 +08:00
|
|
|
|
},
|
|
|
|
|
|
changeMonth(delta) {
|
|
|
|
|
|
this.currentMonth += delta
|
|
|
|
|
|
if (this.currentMonth > 11) {
|
|
|
|
|
|
this.currentMonth = 0
|
|
|
|
|
|
this.currentYear++
|
|
|
|
|
|
} else if (this.currentMonth < 0) {
|
|
|
|
|
|
this.currentMonth = 11
|
|
|
|
|
|
this.currentYear--
|
|
|
|
|
|
}
|
2024-11-03 14:42:17 +08:00
|
|
|
|
this.currentQueryDay = this.currentYear + '-' + (this.currentMonth + 1)
|
|
|
|
|
|
|
|
|
|
|
|
console.log('this.currentQueryDay ', this.currentQueryDay)
|
2024-10-21 18:10:14 +08:00
|
|
|
|
this.generateCalendar()
|
2024-11-03 14:42:17 +08:00
|
|
|
|
this.getMonthRiskData()
|
2024-10-21 18:10:14 +08:00
|
|
|
|
},
|
2024-10-22 18:09:55 +08:00
|
|
|
|
changeDay(delta) {
|
|
|
|
|
|
if (delta > 0) {
|
|
|
|
|
|
this.currentDay = this.$moment(this.currentDay).add(1, 'days').format('YYYY-MM-DD')
|
2024-10-23 09:10:06 +08:00
|
|
|
|
this.currentDays = this.$moment(this.currentDays).add(1, 'days').format('MM-DD')
|
2024-10-22 18:09:55 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
this.currentDay = this.$moment(this.currentDay).subtract(1, 'days').format('YYYY-MM-DD')
|
2024-10-23 09:10:06 +08:00
|
|
|
|
this.currentDays = this.$moment(this.currentDays).subtract(1, 'days').format('MM-DD')
|
2024-10-22 18:09:55 +08:00
|
|
|
|
}
|
2024-11-04 18:47:55 +08:00
|
|
|
|
this.getProFxByDayFun()
|
2024-10-22 18:09:55 +08:00
|
|
|
|
},
|
|
|
|
|
|
changeWeek(delta) {
|
|
|
|
|
|
if (delta > 0) {
|
|
|
|
|
|
this.weekStart = this.$moment(this.weekStart).add(7, 'days').format('YYYY-MM-DD')
|
|
|
|
|
|
this.weekEnd = this.$moment(this.weekEnd).add(7, 'days').format('YYYY-MM-DD')
|
|
|
|
|
|
} else {
|
|
|
|
|
|
this.weekStart = this.$moment(this.weekStart).subtract(7, 'days').format('YYYY-MM-DD')
|
|
|
|
|
|
this.weekEnd = this.$moment(this.weekEnd).subtract(7, 'days').format('YYYY-MM-DD')
|
|
|
|
|
|
}
|
2024-11-03 14:42:17 +08:00
|
|
|
|
this.currentPramsWeekDay = this.weekStart
|
|
|
|
|
|
this.getWeekDataFun()
|
2024-10-22 18:09:55 +08:00
|
|
|
|
},
|
2024-10-21 18:10:14 +08:00
|
|
|
|
selectDate(day) {
|
2024-11-03 14:42:17 +08:00
|
|
|
|
this.currentPramsWeekDay = day.currentDay
|
|
|
|
|
|
this.getWeekDataFun()
|
|
|
|
|
|
this.weekStart = this.$moment(day.currentDay).startOf('week').format('YYYY-MM-DD')
|
|
|
|
|
|
this.weekEnd = this.$moment(day.currentDay).endOf('week').format('YYYY-MM-DD')
|
|
|
|
|
|
this.activeType = 2
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
/* 根据周获取数据 */
|
|
|
|
|
|
async getWeekDataFun() {
|
|
|
|
|
|
console.log('this.currentPramsWeekDay', this.currentPramsWeekDay)
|
|
|
|
|
|
const res = await getWeekDataApi({ day: this.currentPramsWeekDay })
|
|
|
|
|
|
console.log('resssss', res)
|
|
|
|
|
|
this.weekCompanyList = res.data
|
2024-10-22 18:09:55 +08:00
|
|
|
|
},
|
2024-10-23 09:10:06 +08:00
|
|
|
|
onTransWeek(num) {
|
|
|
|
|
|
let weekStr = ''
|
|
|
|
|
|
switch (num) {
|
|
|
|
|
|
case 0:
|
|
|
|
|
|
weekStr = '周日'
|
|
|
|
|
|
break
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
weekStr = '周一'
|
|
|
|
|
|
break
|
|
|
|
|
|
case 2:
|
|
|
|
|
|
weekStr = '周二'
|
|
|
|
|
|
break
|
|
|
|
|
|
case 3:
|
|
|
|
|
|
weekStr = '周三'
|
|
|
|
|
|
break
|
|
|
|
|
|
case 4:
|
|
|
|
|
|
weekStr = '周四'
|
|
|
|
|
|
break
|
|
|
|
|
|
case 5:
|
|
|
|
|
|
weekStr = '周五'
|
|
|
|
|
|
break
|
|
|
|
|
|
case 6:
|
|
|
|
|
|
weekStr = '周六'
|
|
|
|
|
|
break
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return weekStr
|
|
|
|
|
|
},
|
2024-10-22 18:09:55 +08:00
|
|
|
|
onCheckTime(type) {
|
|
|
|
|
|
this.activeType = type
|
2024-11-03 14:42:17 +08:00
|
|
|
|
if (type == 1) {
|
|
|
|
|
|
/* 切换月 */
|
|
|
|
|
|
this.currentYear = new Date().getFullYear()
|
|
|
|
|
|
this.currentMonth = new Date().getMonth()
|
|
|
|
|
|
this.currentQueryDay = this.currentYear + '-' + (this.currentMonth + 1)
|
|
|
|
|
|
this.generateCalendar()
|
|
|
|
|
|
// this.getMonthRiskData()
|
|
|
|
|
|
}
|
|
|
|
|
|
if (type == 2) {
|
|
|
|
|
|
/* 切换周 */
|
|
|
|
|
|
this.weekStart = this.$moment().week(this.$moment().week()).startOf('week').format('YYYY-MM-DD')
|
|
|
|
|
|
this.weekEnd = this.$moment().week(this.$moment().week()).endOf('week').format('YYYY-MM-DD')
|
|
|
|
|
|
this.currentPramsWeekDay = this.weekStart
|
|
|
|
|
|
this.getWeekDataFun()
|
|
|
|
|
|
}
|
|
|
|
|
|
if (type == 3) {
|
|
|
|
|
|
/* 切换日 */
|
|
|
|
|
|
this.currentDay = this.$moment().format('YYYY-MM-DD')
|
|
|
|
|
|
this.getProFxByDayFun()
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
/* 获取今日作业人数 */
|
|
|
|
|
|
async getDayUserData() {
|
|
|
|
|
|
const res = await getDayUserApi({ day: this.$moment().format('YYYY-MM-DD') })
|
|
|
|
|
|
console.log('今日作业人数---', res)
|
|
|
|
|
|
|
|
|
|
|
|
this.todayCount = res.count
|
|
|
|
|
|
},
|
|
|
|
|
|
/* 获取当月数据 */
|
|
|
|
|
|
async getMonthRiskData() {
|
|
|
|
|
|
console.log('this.currentQueryDay', this.currentQueryDay)
|
|
|
|
|
|
const res = await getMonthRiskApi({ month: this.currentQueryDay })
|
|
|
|
|
|
|
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
|
const monthList = res.data
|
|
|
|
|
|
for (let i = 0; i < monthList.length; i++) {
|
|
|
|
|
|
for (let j = 0; j < this.days.length; j++) {
|
|
|
|
|
|
if (monthList[i].dayNum == this.days[j].day) {
|
|
|
|
|
|
const { kjsfx, dfx, zfx, gfx, tgfx } = monthList[i]
|
|
|
|
|
|
this.days[j].kjsfx = kjsfx
|
|
|
|
|
|
this.days[j].dfx = dfx
|
|
|
|
|
|
this.days[j].zfx = zfx
|
|
|
|
|
|
this.days[j].gfx = gfx
|
|
|
|
|
|
this.days[j].tgfx = tgfx
|
|
|
|
|
|
this.days[j].currentDay = monthList[i].day
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
console.log('res---', res)
|
|
|
|
|
|
},
|
|
|
|
|
|
onViewDayData(day) {
|
|
|
|
|
|
this.currentDay = day
|
|
|
|
|
|
this.getProFxByDayFun()
|
|
|
|
|
|
this.activeType = 3
|
|
|
|
|
|
},
|
|
|
|
|
|
/* 获取当日数据 */
|
|
|
|
|
|
async getProFxByDayFun() {
|
|
|
|
|
|
const res = await getProFxByDayApi({ day: this.currentDay })
|
2024-11-04 10:13:18 +08:00
|
|
|
|
if (res.data.length > 0) {
|
|
|
|
|
|
this.currentDayInfo = res.data[0]
|
|
|
|
|
|
console.log('----------当日数据', res)
|
2024-11-04 18:47:55 +08:00
|
|
|
|
} else {
|
|
|
|
|
|
this.currentDayInfo = {
|
|
|
|
|
|
proName: '',
|
|
|
|
|
|
day: ''
|
|
|
|
|
|
}
|
2024-11-04 10:13:18 +08:00
|
|
|
|
}
|
2024-11-03 15:24:43 +08:00
|
|
|
|
},
|
2024-11-04 18:47:55 +08:00
|
|
|
|
onViewPersonDetails(info) {
|
|
|
|
|
|
console.log('跳转前参数', info)
|
|
|
|
|
|
uni.navigateTo({ url: `/pages/workPlan/workPlan-details/index?query=${JSON.stringify(info)}` })
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
2024-10-22 10:52:39 +08:00
|
|
|
|
<style scoped lang="scss">
|
2024-10-21 18:10:14 +08:00
|
|
|
|
.calendar {
|
|
|
|
|
|
width: 100%;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
margin-top: 30rpx;
|
2024-10-21 18:10:14 +08:00
|
|
|
|
/* padding: 20rpx; */
|
2024-11-03 14:42:17 +08:00
|
|
|
|
|
|
|
|
|
|
h2 {
|
|
|
|
|
|
padding: 18rpx 0;
|
|
|
|
|
|
font-size: 34rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.today-work-num {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
padding: 10rpx 0;
|
|
|
|
|
|
text-align: right;
|
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
|
|
|
|
|
|
text {
|
|
|
|
|
|
padding-right: 8rpx;
|
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
|
color: #4dbfa3;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
.header {
|
2024-10-22 18:09:55 +08:00
|
|
|
|
width: 100%;
|
2024-10-21 18:10:14 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
margin-bottom: 20rpx;
|
2024-10-22 18:09:55 +08:00
|
|
|
|
|
|
|
|
|
|
view {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.week-container {
|
|
|
|
|
|
font-size: 24rpx !important;
|
|
|
|
|
|
font-weight: normal !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.header view:last-child {
|
|
|
|
|
|
width: 45%;
|
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
|
background-color: #f8f8f8;
|
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
|
|
|
|
|
|
button {
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
height: 80rpx;
|
|
|
|
|
|
color: #000;
|
|
|
|
|
|
line-height: 80rpx;
|
|
|
|
|
|
font-weight: normal;
|
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
|
transition: all 0.3s ease;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
button:last-child {
|
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
button:first-child {
|
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.active-button {
|
|
|
|
|
|
border-radius: 40rpx;
|
|
|
|
|
|
background-color: #21a1f4;
|
|
|
|
|
|
color: #fff;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
button::after {
|
|
|
|
|
|
border: none;
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
.weekdays {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: space-around;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
margin: 10rpx 0;
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
.days {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-wrap: wrap;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
// border-bottom: 1px solid #ccc;
|
|
|
|
|
|
|
|
|
|
|
|
.risk-container {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
2024-11-03 14:42:17 +08:00
|
|
|
|
height: 160rpx;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
margin-bottom: 30rpx;
|
|
|
|
|
|
flex-direction: column;
|
2024-11-03 14:42:17 +08:00
|
|
|
|
justify-content: flex-start;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
|
|
|
|
|
|
text {
|
|
|
|
|
|
width: 100%;
|
2024-11-03 14:42:17 +08:00
|
|
|
|
// height: 20rpx;
|
|
|
|
|
|
display: block;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
margin-bottom: 3rpx;
|
|
|
|
|
|
padding-left: 3rpx;
|
|
|
|
|
|
text-align: left;
|
2024-10-22 18:09:55 +08:00
|
|
|
|
font-size: 24rpx;
|
2024-11-03 14:42:17 +08:00
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
|
// visibility: hidden;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-11-03 14:42:17 +08:00
|
|
|
|
.risk-container text:nth-child(1) {
|
2024-10-22 18:09:55 +08:00
|
|
|
|
background-color: #cff2ec;
|
|
|
|
|
|
border-left: 2px solid #1db691;
|
|
|
|
|
|
}
|
2024-11-03 14:42:17 +08:00
|
|
|
|
.risk-container text:nth-child(2) {
|
2024-10-22 18:09:55 +08:00
|
|
|
|
background-color: #d8fbff;
|
|
|
|
|
|
border-left: 2px solid #45e6ed;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
}
|
2024-11-03 14:42:17 +08:00
|
|
|
|
.risk-container text:nth-child(3) {
|
|
|
|
|
|
background-color: #fde9cf;
|
|
|
|
|
|
border-left: 2px solid #fa8d0a;
|
|
|
|
|
|
}
|
|
|
|
|
|
.risk-container text:nth-child(4) {
|
|
|
|
|
|
background-color: #ffd5d6;
|
|
|
|
|
|
border-left: 2px solid #eb363b;
|
|
|
|
|
|
}
|
|
|
|
|
|
.risk-container text:nth-child(5) {
|
|
|
|
|
|
background-color: #ffd5d6;
|
|
|
|
|
|
border-left: 2px solid #eb363b;
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
.days view {
|
|
|
|
|
|
width: 14.28%;
|
2024-10-22 10:52:39 +08:00
|
|
|
|
/* height: 80rpx; */
|
2024-10-21 18:10:14 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.other-month {
|
2024-10-22 10:52:39 +08:00
|
|
|
|
// color: #ccc;
|
|
|
|
|
|
color: transparent;
|
|
|
|
|
|
|
|
|
|
|
|
text {
|
|
|
|
|
|
border: none !important;
|
|
|
|
|
|
background-color: transparent !important;
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
}
|
|
|
|
|
|
.custom-content {
|
|
|
|
|
|
font-size: 20rpx;
|
|
|
|
|
|
color: #007aff;
|
|
|
|
|
|
}
|
2024-10-22 18:09:55 +08:00
|
|
|
|
|
|
|
|
|
|
.week-th,
|
|
|
|
|
|
.week-td {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
|
|
view {
|
|
|
|
|
|
width: 12.5%;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-11-03 14:42:17 +08:00
|
|
|
|
.week-td view {
|
|
|
|
|
|
height: 260rpx;
|
|
|
|
|
|
padding: 10rpx 0;
|
|
|
|
|
|
border-bottom: 1px solid #ccc;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.week-td view:first-child {
|
|
|
|
|
|
border-right: 1px solid #ccc;
|
|
|
|
|
|
justify-content: center !important;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-22 18:09:55 +08:00
|
|
|
|
.week-td view text {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin-bottom: 3rpx;
|
|
|
|
|
|
padding-left: 2rpx;
|
|
|
|
|
|
display: inline-block;
|
|
|
|
|
|
font-size: 22rpx;
|
|
|
|
|
|
// font-weight: bold;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.style_1 {
|
|
|
|
|
|
background-color: #ffd5d6;
|
|
|
|
|
|
border-left: 2px solid #f6322a;
|
|
|
|
|
|
}
|
|
|
|
|
|
.style_2 {
|
|
|
|
|
|
background-color: #fee9ca;
|
|
|
|
|
|
border-left: 2px solid #f58b07;
|
|
|
|
|
|
}
|
|
|
|
|
|
.style_3 {
|
|
|
|
|
|
background-color: #d1f1ec;
|
|
|
|
|
|
border-left: 2px solid #14bb91;
|
|
|
|
|
|
}
|
|
|
|
|
|
.style_4 {
|
|
|
|
|
|
background-color: #d8fbfc;
|
|
|
|
|
|
border-left: 2px solid #3eebf7;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.day-th,
|
|
|
|
|
|
.day-td {
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
|
|
view {
|
|
|
|
|
|
width: 33.33%;
|
2024-11-04 18:47:55 +08:00
|
|
|
|
height: 100%;
|
2024-10-22 18:09:55 +08:00
|
|
|
|
display: flex;
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
// align-items: center;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
|
|
|
|
|
|
text {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-11-04 18:47:55 +08:00
|
|
|
|
.day-th {
|
|
|
|
|
|
height: 68rpx;
|
|
|
|
|
|
// background-color: orange;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-10-22 18:09:55 +08:00
|
|
|
|
.day-td {
|
2024-11-04 18:47:55 +08:00
|
|
|
|
height: 300rpx;
|
|
|
|
|
|
border-bottom: 1px solid #ccc;
|
2024-10-22 18:09:55 +08:00
|
|
|
|
|
|
|
|
|
|
view {
|
|
|
|
|
|
height: 100%;
|
2024-11-04 18:47:55 +08:00
|
|
|
|
// padding: 30rpx 0;
|
2024-10-22 18:09:55 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
.day-th view:nth-child(2) {
|
|
|
|
|
|
border-left: 1px solid #ccc;
|
|
|
|
|
|
border-right: 1px solid #ccc;
|
|
|
|
|
|
}
|
|
|
|
|
|
.day-td view:nth-child(2) {
|
|
|
|
|
|
border-left: 1px solid #ccc;
|
|
|
|
|
|
border-right: 1px solid #ccc;
|
|
|
|
|
|
}
|
2024-11-03 14:42:17 +08:00
|
|
|
|
.day-td view:last-child {
|
|
|
|
|
|
justify-content: flex-start;
|
|
|
|
|
|
padding: 8rpx 0;
|
|
|
|
|
|
}
|
2024-10-22 18:09:55 +08:00
|
|
|
|
|
|
|
|
|
|
.day-td view:last-child text {
|
|
|
|
|
|
width: 100%;
|
|
|
|
|
|
margin-left: 10rpx;
|
|
|
|
|
|
margin-bottom: 3rpx;
|
|
|
|
|
|
text-align: left;
|
|
|
|
|
|
}
|
2024-10-21 18:10:14 +08:00
|
|
|
|
</style>
|