From a0da962ca6b936ca05e46c25b50a416cfe959ff2 Mon Sep 17 00:00:00 2001
From: 李喆(开发组) <lzhe@yxqiche.com>
Date: 星期二, 18 十一月 2025 14:04:21 +0800
Subject: [PATCH] 1
---
src/views/console/base/Add.vue | 186 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 155 insertions(+), 31 deletions(-)
diff --git a/src/views/console/base/Add.vue b/src/views/console/base/Add.vue
index 196d6a2..8e244b1 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-02 17:15:08
+ * @LastEditTime: 2024-11-07 21:45:28
* @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`)
@@ -361,20 +360,43 @@
}
})
if (dates.length > 0) {
+ let ban = this.shiftList.find(v => v.id === ext.modelId)
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()) {
@@ -382,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) {
@@ -419,26 +533,36 @@
}
},
planCancel() {
+ // 鍙栨秷鎺掔彮鍙兘鍙栨秷褰撳墠鏃堕棿涔嬪悗鐨勬帓鐝�
+ let now = moment(moment().format('YYYY-MM-DD')).valueOf()
this.months.forEach((item, i) => {
- item.attributes = item.attributes.slice(0, 2)
+ // item.attributes = item.attributes.slice(0, 2)
+ item.attributes = item.attributes.map((v, i) => {
+ if (i > 1) {
+ v.dates = v.dates.filter(c => {
+ if (moment(c).valueOf() <= now) {
+ return true
+ }
+ })
+ }
+ return v
+ })
})
},
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) {
@@ -454,7 +578,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 {
@@ -466,7 +590,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