From 103fd0aa7288b58cf250a55da1cc6c659a2e113e Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期三, 02 十月 2024 22:04:41 +0800
Subject: [PATCH] 日历及其他问题修改
---
src/views/console/base/CalenderTab.vue | 69 ++++++++++++++++++++++++----------
1 files changed, 48 insertions(+), 21 deletions(-)
diff --git a/src/views/console/base/CalenderTab.vue b/src/views/console/base/CalenderTab.vue
index 6c7627d..c6a0ebc 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: gaoshp
- * @LastEditTime: 2024-10-01 20:16:51
+ * @LastEditTime: 2024-10-02 20:52:59
* @FilePath: /cps-web/src/views/console/base/CalenderTab.vue
-->
<template>
@@ -21,7 +21,7 @@
<el-header>
<span>鏃ュ巻銆恵{ selectInfo.code }}銆憑{ selectInfo.name }}</span>
<el-button type="primary" style="margin-left: auto;" size="small" @click="relationWork">鍏宠仈宸ヤ綅</el-button>
- <!-- <el-button type="primary" size="small">缂栬緫鏃ュ巻</el-button> -->
+ <el-button type="primary" size="small" @click="edit">缂栬緫鏃ュ巻</el-button>
<el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="table_del">
<template #reference>
<el-button type="primary" size="small">鍒犻櫎</el-button>
@@ -29,13 +29,20 @@
</el-popconfirm>
</el-header>
<el-main>
- <el-row :gutter="12" v-show="shiftListName">
- {{ shiftListName }}
+ <el-row :gutter="12" v-show="shiftListName.length > 0">
+ <el-button v-for="item in shiftListName">{{ item.code + '-' + item.name
+ }}</el-button>
</el-row>
<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' />
+ disable-page-swipe :nav-visibility="''" :attributes='item.attributes'>
+ <!-- <template #day-popover="row">
+ <div class="text-xs text-gray-700 dark:text-gray-300">
+ 123123{{ row }}
+ </div>
+ </template> -->
+ </Calendar>
</el-col>
</el-row>
<!-- :initial-page="{ month: item.month + 1, year: item.year }" -->
@@ -44,7 +51,7 @@
</el-container>
<el-drawer v-if="drawer" v-model="drawer" size="80%" title="鐢熶骇鏃ュ巻" :direction="direction"
:before-close="handleClose">
- <Add v-if="drawer" :shiftList="shiftList" @success="success"></Add>
+ <Add v-if="drawer" :shiftList="shiftList" :drawerInfo="drawerInfo" @success="success"></Add>
</el-drawer>
<el-drawer v-model="raworkVisible" size="80%" title="鐢熶骇鏃ュ巻" :direction="direction" :before-close="handleClose">
<el-container v-if="raworkVisible">
@@ -66,6 +73,7 @@
import 'v-calendar/style.css';
import Add from './Add.vue'
import moment from 'moment';
+import color from '@/utils/color'
export default {
components: {
Calendar,
@@ -75,7 +83,7 @@
data() {
return {
shiftList: [],
- shiftListName: '',
+ shiftListName: [],
selectInfo: {},
drawer: false,
months: [],
@@ -92,6 +100,9 @@
label: 'title',
children: 'children',
},
+ drawerInfo: {},
+ color
+
}
},
created() {
@@ -99,6 +110,10 @@
this.init()
},
methods: {
+ edit() {
+ this.drawer = true
+ this.drawerInfo = this.selectInfo
+ },
relationWork() {
this.$HTTP.post('/api/blade-cps/group/groupWorkstation', { groupCategory: 1, groupType: 'group_workstation' }).then(res => {
if (res.code === 200) {
@@ -188,22 +203,24 @@
})
},
select(row) {
- 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)
- let current = this.shiftList.find(v => v.id == res.data.calendarDayVOList[0].modelId)
console.log('////', this.shiftList, res.data.calendarDayVOList[0].id)
- if (current) {
- this.shiftListName = `${current.code}-${current.name}`
+ let modelIds = [...new Set(res.data.calendarDayVOList.map(v => v.modelId))]
+ if (modelIds.length > 0) {
+ this.shiftListName = this.shiftList.filter(v => modelIds.includes(v.id))
} else {
- this.shiftListName = ''
+ this.shiftListName = []
}
+ }
+ this.selectInfo = {
+ ...row,
+ calendarDayVOList: res.data.calendarDayVOList
}
})
},
@@ -217,6 +234,7 @@
},
add() {
this.drawer = true
+ this.drawerInfo = {}
},
load(flag) {
if (flag) this.current = 0;
@@ -261,6 +279,20 @@
})
for (let i = 0; i < 12; i++) {
+ data.calendarDayVOList.map(v => v.modelId)
+ let modelIds = [...new Set(data.calendarDayVOList.map(v => v.modelId))]
+ let ext = modelIds.map(v => {
+ let ban = this.shiftListName.find(item => item.id === v)
+ return {
+ highlight: color.stringToColor(v),
+ dates: data.calendarDayVOList.filter(item => {
+ return moment(item.calendarDate).month() === i && item.modelId === v
+ }).map(v => v.calendarDate),
+ popover: {
+ label: `${ban?.code}-${ban?.name}`
+ },
+ }
+ })
this.months.push({
year: year,
month: i,
@@ -272,16 +304,11 @@
return moment(item).month() === i
})
},
- {
- highlight: true,
- dates: data.calendarDayVOList.filter(item => {
- console.log(moment(item).month(), '>>>123')
- return moment(item.calendarDate).month() === i
- }).map(v => v.calendarDate),
- }
+ ...ext
]
})
}
+ console.log(this.months, '------------')
}
})
--
Gitblit v1.9.3