From 3931e2728f618d0090f129b2665bc1285c4440c3 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 03 十一月 2024 17:27:32 +0800
Subject: [PATCH] update

---
 src/views/console/base/CalenderTab.vue |  106 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 78 insertions(+), 28 deletions(-)

diff --git a/src/views/console/base/CalenderTab.vue b/src/views/console/base/CalenderTab.vue
index 6c7627d..b9dba3f 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-09 22:59:25
  * @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,24 @@
                 </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"
+                        :style="{ backgroundColor: item.colour || '#2563eb', color: '#fff' }">{{
+                            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 +55,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 +77,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 +87,7 @@
     data() {
         return {
             shiftList: [],
-            shiftListName: '',
+            shiftListName: [],
             selectInfo: {},
             drawer: false,
             months: [],
@@ -92,6 +104,9 @@
                 label: 'title',
                 children: 'children',
             },
+            drawerInfo: {},
+            color
+
         }
     },
     created() {
@@ -99,12 +114,15 @@
         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 => {
+            this.$HTTP.post('/api/smis/group/groupWorkstation', { groupCategory: 1, groupType: 'group_workstation' }).then(res => {
                 if (res.code === 200) {
                     this.raworkVisible = true
                     this.workStations = this.formatData(res.data)
-                    console.log(this.workStations)
                 }
             })
 
@@ -161,11 +179,11 @@
             } else {
                 this.save(workstation.map(v => v.id))
             }
-            console.log(this.$refs.workstations.getCheckedNodes().filter(v => v.isWorkstation))
+            // console.log(this.$refs.workstations.getCheckedNodes().filter(v => v.isWorkstation))
         },
         save(workstationIdList) {
             console.log(workstationIdList, this.selectInfo)
-            this.$HTTP.post('/api/blade-cps/calendar/associate-workstation', {
+            this.$HTTP.post('/api/smis/calendar/associate-workstation', {
                 calendarCode: this.selectInfo.code,
                 workstationIdList
             }).then(res => {
@@ -178,37 +196,39 @@
             })
         },
         dayclick(day) {
-            console.log(day)
+            // console.log(day)
         },
         init() {
-            this.$HTTP.post('/api/blade-cps/shift/list', { statusList: [1] }).then(res => {
+            this.$HTTP.post('/api/smis/shift/list', { statusList: [1] }).then(res => {
                 if (res.code === 200) {
                     this.shiftList = res.data
                 }
             })
         },
         select(row) {
-            this.selectInfo = {
-                ...row
-            }
+
             this.months = []
-            this.$HTTP.get(`/api/blade-cps/calendar/${row.id}`).then(res => {
+            this.$HTTP.get(`/api/smis/calendar/${row.id}`).then(res => {
                 if (res.code === 200) {
-                    console.log(res.data)
+                    // 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}`
+                    // console.log('////', this.shiftList, res.data.calendarDayVOList[0].id)
+                    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
                 }
             })
         },
         table_del() {
-            this.$HTTP.delete(`/api/blade-cps/calendar/${this.selectInfo.id}`).then(res => {
+            this.$HTTP.delete(`/api/smis/calendar/${this.selectInfo.id}`).then(res => {
                 if (res.code == 200) {
                     this.$message.success("鎿嶄綔鎴愬姛");
                     this.load(true)
@@ -217,6 +237,7 @@
         },
         add() {
             this.drawer = true
+            this.drawerInfo = {}
         },
         load(flag) {
             if (flag) this.current = 0;
@@ -245,7 +266,7 @@
         },
         setDay(data) {
             let year = data.year
-            this.$HTTP.post('/api/blade-cps/shift-off-day/list', {
+            this.$HTTP.post('/api/smis/shift-off-day/list', {
                 year: year,
                 startOffDay: `${year}-01-01`,
                 endOffDay: `${year}-12-31`
@@ -261,6 +282,29 @@
                     })
 
                     for (let i = 0; i < 12; i++) {
+
+                        let modelIds = [...new Set(data.calendarDayVOList.map(v => v.modelId))]
+                        let ext = modelIds.map(v => {
+                            let ban = this.shiftListName.find(item => item.id === v)
+                            console.log(ban.colour)
+                            return {
+                                highlight: {
+                                    // color: ban.colour || color.stringToColor(v),
+                                    // fillMode: 'light',
+                                    style: {
+                                        'background-color': ban.colour
+                                    }
+                                },
+                                dates: data.calendarDayVOList.filter(item => {
+                                    return moment(item.calendarDate).month() === i && item.modelId === v
+                                }).map(v => v.calendarDate),
+                                popover: {
+                                    label: `${ban?.code}-${ban?.name}`
+                                },
+                            }
+                        })
+                        console.log('---------youxian')
+
                         this.months.push({
                             year: year,
                             month: i,
@@ -272,16 +316,22 @@
                                         return moment(item).month() === i
                                     })
                                 },
+                                ...ext,
+                                // 浼樺厛
                                 {
-                                    highlight: true,
                                     dates: data.calendarDayVOList.filter(item => {
-                                        console.log(moment(item).month(), '>>>123')
                                         return moment(item.calendarDate).month() === i
-                                    }).map(v => v.calendarDate),
+                                    }).filter(item => item.isHighPriority).map(item => item.calendarDate),
+                                    bar: {
+                                        style: {
+                                            backgroundColor: 'red',
+                                        }
+                                    },
                                 }
                             ]
                         })
                     }
+
                 }
             })
 

--
Gitblit v1.9.3