From eef1ef0be935d4a3d8fc691b2666f41796b2d4a5 Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期一, 04 十一月 2024 19:57:08 +0800 Subject: [PATCH] 增加列表显示 --- src/views/console/base/Add.vue | 168 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 138 insertions(+), 30 deletions(-) diff --git a/src/views/console/base/Add.vue b/src/views/console/base/Add.vue index 7140003..8d02c26 100644 --- a/src/views/console/base/Add.vue +++ b/src/views/console/base/Add.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-05-04 16:37:48 * @LastEditors: gaoshp - * @LastEditTime: 2024-10-07 18:01:39 + * @LastEditTime: 2024-10-09 23:30:14 * @FilePath: /cps-web/src/views/console/base/Add.vue --> <template> @@ -98,7 +98,7 @@ 褰撳墠鎺掔彮浼樺厛 </el-col> <el-col :span="4"> - <el-switch v-model="isHighPriority" active-text="浼樺厛" inactive-text="涓嶄紭鍏�" /> + <el-switch v-model="isHighPriority" @change="changeHigh" active-text="浼樺厛" inactive-text="涓嶄紭鍏�" /> </el-col> <el-col :span="2"> <el-button type="primary" @click="plan">鎺掔彮</el-button> @@ -141,6 +141,8 @@ }, data() { return { + currentDate: '', + currentDateItem: null, disabled: false, modelId: '', isHighPriority: false, @@ -223,7 +225,7 @@ this.form.date[0] = moment().format('YYYY-MM-DD') } // console.log(this.months) - this.$HTTP.post('/api/blade-cps/shift-off-day/list', { + this.$HTTP.post('/api/smis/shift-off-day/list', { year: currentYear, startOffDay: `${currentYear}-01-01`, endOffDay: `${currentYear}-12-31` @@ -284,7 +286,6 @@ } this.form.date = [moment().format('YYYY-MM-DD'), moment(`${currentYear}-12-31`).format('YYYY-MM-DD')] } else { - console.log('>>>>>>>>>>', this.drawerInfo) this.disabled = true this.form.code = this.drawerInfo.code this.form.name = this.drawerInfo.name @@ -299,9 +300,8 @@ let list = this.drawerInfo.calendarDayVOList.filter(v => v.modelId === item) let ext = { modelId: item, - isHighPriority: list[0].isHighPriority, + // isHighPriority: list[0].isHighPriority, } - console.log(list) this.setDayRange(list, ext) }) }, 1000) @@ -325,7 +325,6 @@ } }, setDay() { - console.log('setDay1') let currentYear = moment(this.form.year, 'YYYY').format('YYYY') - 0 this.months.forEach((item, i) => { let start = moment(`${currentYear}-${i + 1}-01`) @@ -365,20 +364,39 @@ this.months[i].attributes.push({ dates: dates.map(v => v.calendarDate), ...ext, - highlight: color.stringToColor(ext.modelId), + // highlight: color.stringToColor(ext.modelId), + highlight: { + style: { + 'background-color': ban.colour + } + }, popover: { label: `${ban?.code}-${ban?.name}` }, }) + // 浼樺厛 + console.log('------------->>>>', dates) + let hiIndex = this.months[i].attributes.findIndex(v => v.bar) + if (hiIndex > -1) { + this.months[i].attributes[hiIndex].dates.push(...dates.filter(v => v.isHighPriority === 1).map(v => v.calendarDate)) + } else { + this.months[i].attributes.push({ + dates: dates.filter(v => v.isHighPriority === 1).map(v => v.calendarDate), + bar: { + style: { + backgroundColor: 'red', + } + }, + }) + } + this.months[i].attributes[1] = { highlight: true, dates: [] } } - - }) - console.log(this.months, 'rll') + console.log(this.months, 'rllllllll') }, pushDate(start) { if (start.unix() >= moment(this.form.date[0]).unix() && start.unix() <= moment(this.form.date[1]).unix()) { @@ -386,32 +404,124 @@ } return false }, - dayclick(day, item) { + changeHigh(val) { + console.log('------------changeHigh') + if (this.currentDateItem) { + // 璁剧疆浼樺厛 + let index = this.currentDateItem.attributes.findIndex(item => !!item.bar) + if (val) { + if (index === -1) { + this.currentDateItem.attributes.push({ + bar: { + style: { + backgroundColor: 'red', + } + }, + dates: [this.currentDate] + }) + } else { + this.currentDateItem.attributes[index].dates.push(this.currentDate) + } + } else { + let i = this.currentDateItem.attributes[index].dates.findIndex(v => v === this.currentDate) + this.currentDateItem.attributes[index].dates.splice(i, 1) + } + } else { + this.isHighPriority = false + } + console.log(this.months) + }, + dayclick(day, item) { let index = item.attributes[1].dates.findIndex(v => v === day.id) if (index >= 0) { item.attributes[1].dates.splice(index, 1) } else { item.attributes[1].dates.push(day.id) } + let list = this.getPlanDate() + let highDates = this.getHighDate() + this.currentDate = day.id + if (list.find(v => v.calendarDate === day.id)) { + this.currentDateItem = item + if (highDates.indexOf(this.currentDate) > -1) { + this.isHighPriority = true + } else { + this.isHighPriority = false + } + } else { + this.currentDateItem = null + this.isHighPriority = false + } + + console.log('------currentDate', this.currentDate, item, highDates) + }, + getHighDate() { + let list = [] + this.months.forEach(item => { + item.attributes.forEach((v, i) => { + if (i > 1 && v.bar) { + v.dates.forEach(child => { + list.push(child) + }) + + } + }) + }) + return list + }, + getPlanDate() { + // 浼樺厛绾� + let list = [] + this.months.forEach(item => { + item.attributes.forEach((v, i) => { + if (i > 1 && v.modelId) { + + v.dates.forEach(child => { + // 閲嶅鎺掔彮鍘婚噸 + let repeatIndex = list.findIndex(v => v.calendarDate === child) + if (repeatIndex > -1) { + list.splice(repeatIndex, 1, { + modelId: v.modelId, + // isHighPriority: v.isHighPriority, + calendarDate: child, + ...this.setOffDay(child) + }) + } else { + list.push({ + modelId: v.modelId, + // isHighPriority: v.isHighPriority, + calendarDate: child, + ...this.setOffDay(child) + }) + } + + }) + + } + }) + }) + return list }, plan() { if (!this.modelId) { return this.$message.warning('璇烽�夋嫨鐝鏂规'); } let dateDTOList = this.months.map(item => item.attributes[1].dates) + console.log('------plan', dateDTOList) let list = dateDTOList.flat(2).map(v => { return { modelId: this.modelId, - isHighPriority: this.isHighPriority ? 1 : 0, + // isHighPriority: this.isHighPriority ? 1 : 0, calendarDate: v, ...this.setOffDay(v) } }) let ext = { modelId: this.modelId, - isHighPriority: this.isHighPriority ? 1 : 0, + // isHighPriority: this.isHighPriority ? 1 : 0, } + this.setDayRange(list, ext) }, setOffDay(time) { @@ -428,21 +538,19 @@ }) }, save() { - let list = [] - this.months.forEach(item => { - item.attributes.forEach((v, i) => { - if (i > 1) { - v.dates.forEach(child => { - list.push({ - modelId: v.modelId, - isHighPriority: v.isHighPriority, - calendarDate: child, - ...this.setOffDay(child) - }) - }) - + let highDates = this.getHighDate() + let list = this.getPlanDate().map(v => { + if (highDates.indexOf(v.calendarDate) > -1) { + return { + ...v, + isHighPriority: 1 } - }) + } else { + return { + ...v, + isHighPriority: 0 + } + } }) this.$refs.dialogForm.validate(async (valid) => { if (valid) { @@ -458,7 +566,7 @@ status: 1, dateDTOList: list } - this.$HTTP.post('/api/blade-cps/calendar', data).then(res => { + this.$HTTP.post('/api/smis/calendar', data).then(res => { if (res.code === 200) { this.$emit('success') } else { @@ -470,7 +578,7 @@ id: this.drawerInfo.id, dateDTOList: list } - this.$HTTP.put('/api/blade-cps/calendar', data).then(res => { + this.$HTTP.put('/api/smis/calendar', data).then(res => { if (res.code === 200) { this.$emit('success') } else { -- Gitblit v1.9.3