From a786409d7f6769f43c107159dd84faf4a2927a9a Mon Sep 17 00:00:00 2001 From: lzhe <lzhe@example.com> Date: 星期一, 03 六月 2024 17:07:59 +0800 Subject: [PATCH] 1 --- src/views/console/base/CalenderTab.vue | 97 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 89 insertions(+), 8 deletions(-) diff --git a/src/views/console/base/CalenderTab.vue b/src/views/console/base/CalenderTab.vue index 853691a..ddb9e40 100644 --- a/src/views/console/base/CalenderTab.vue +++ b/src/views/console/base/CalenderTab.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-04-04 22:45:43 * @LastEditors: Sneed - * @LastEditTime: 2024-05-05 00:14:21 + * @LastEditTime: 2024-05-05 21:20:22 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/base/CalenderTab.vue --> <template> @@ -20,7 +20,7 @@ <el-header> <span>鏃ュ巻銆恵{ selectInfo.code }}銆憑{ selectInfo.name }}</span> <el-button type="primary" style="margin-left: auto;" size="small">鍏宠仈宸ヤ綅</el-button> - <el-button type="primary" size="small">缂栬緫鏃ュ巻</el-button> + <!-- <el-button type="primary" size="small">缂栬緫鏃ュ巻</el-button> --> <el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="table_del"> <template #reference> <el-button type="primary" size="small">鍒犻櫎</el-button> @@ -28,12 +28,18 @@ </el-popconfirm> </el-header> <el-main> - <Calendar :min-date="minDate" :rows="1" disable-page-swipe :nav-visibility="''" :attributes='attributes' - @dayclick="dayclick($event, item)" /> + <el-row> + <el-col :span="6" style="padding: 10px;" v-for="item in months" :key="item.month"> + <Calendar :initial-page="{ month: item.month + 1, year: item.year }" :rows="1" + disable-page-swipe :nav-visibility="''" :attributes='item.attributes' /> + </el-col> + </el-row> + <!-- :initial-page="{ month: item.month + 1, year: item.year }" --> + </el-main> </el-container> <el-drawer v-model="drawer" size="80%" title="鐢熶骇鏃ュ巻" :direction="direction" :before-close="handleClose"> - <Add></Add> + <Add :shiftList="shiftList" @success="success"></Add> </el-drawer> </el-container> </template> @@ -42,6 +48,7 @@ import { Calendar, DatePicker } from 'v-calendar'; import 'v-calendar/style.css'; import Add from './Add.vue' +import moment from 'moment'; export default { components: { Calendar, @@ -52,7 +59,8 @@ return { shiftList: [], selectInfo: {}, - drawer: true, + drawer: false, + months: [], attributes: [ ], @@ -72,8 +80,6 @@ console.log(day) }, init() { - this.minDate = new Date('2024-01-01') - this.maxDate = new Date('2024-01-31') this.$HTTP.post('/api/blade-cps/shift/list', { statusList: [1] }).then(res => { if (res.code === 200) { this.shiftList = res.data @@ -84,6 +90,13 @@ this.selectInfo = { ...row } + this.months = [] + this.$HTTP.get(`/api/blade-cps/calendar/${row.id}`).then(res => { + if (res.code === 200) { + console.log(res.data) + this.setDay(res.data) + } + }) }, table_del() { this.$HTTP.delete(`/api/blade-cps/calendar/${this.selectInfo.id}`).then(res => { @@ -116,6 +129,74 @@ } }) + }, + success() { + this.drawer = false + this.load(true) + }, + setDay(data) { + let year = data.year + this.$HTTP.post('/api/blade-cps/shift-off-day/list', { + year: year, + startOffDay: `${year}-01-01`, + endOffDay: `${year}-12-31` + }).then(res => { + if (res.code === 200) { + let arr = [] + res.data.forEach(v => { + arr.push(v.startOffDay) + let day = moment(v.startOffDay) + while (day.add(1, 'd').unix() <= moment(v.endOffDay).unix()) { + arr.push(day.format('YYYY-MM-DD')) + } + }) + + for (let i = 0; i < 12; i++) { + this.months.push({ + year: year, + month: i, + attributes: [ + { + dot: 'yellow', + dates: arr.filter(item => { + // console.log(moment(item).month(), 'mmonth', item) + return moment(item).month() === i + }) + }, + { + highlight: true, + dates: data.calendarDayVOList.filter(item => { + console.log(moment(item).month(), '>>>123') + return moment(item.calendarDate).month() === i + }), + } + ] + }) + } + } + }) + + + // this.months.forEach((item, i) => { + // let start = moment(`${currentYear}-${i + 1}-01`) + // let end = moment(`${currentYear}-${i + 2}-01`) + // let dates = [] + // while (start.unix() < end.unix()) { + // if (this.checkboxGroup1.includes(start.day()) && this.holiday === 0) { + // this.pushDate(start) && dates.push(start.format('YYYY-MM-DD')) + // } else if (this.checkboxGroup1.includes(start.day()) && this.holiday === 1) { + // if (!this.months[i].attributes[0].dates.includes(start.format('YYYY-MM-DD'))) { + // this.pushDate(start) && dates.push(start.format('YYYY-MM-DD')) + // } + // } else if (this.checkboxGroup1.includes(start.day()) && this.holiday === 2) { + // if (this.months[i].attributes[0].dates.includes(start.format('YYYY-MM-DD'))) { + // this.pushDate(start) && dates.push(start.format('YYYY-MM-DD')) + // } + // } + // start.add(1, 'd') + // } + // this.months[i].attributes[1].dates = dates + // }) } } } -- Gitblit v1.9.3