From c41f75d942bd70ff74890f89928940c2d4b5b2a4 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期五, 24 一月 2025 18:16:08 +0800
Subject: [PATCH] 1

---
 admin/src/views/index.vue |  222 ++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 152 insertions(+), 70 deletions(-)

diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 999bd92..32818b0 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -5,24 +5,24 @@
         <div class="head_item">
           <div class="head_item_left">
             <span>寰呭姙宸ュ崟</span>
-            <span>12</span>
-            <span>鏌ョ湅鏇村</span>
+            <span>{{obj.waitDealWorkOrderSize || 0}}</span>
+            <span @click="jump(1)">鏌ョ湅鏇村</span>
           </div>
           <img class="head_item_icon" src="@/assets/indexIcon/ic_daibangongdan@2x.png" />
         </div>
         <div class="head_item">
           <div class="head_item_left">
             <span>寰呭贰妫�</span>
-            <span>12</span>
-            <span>鏌ョ湅鏇村</span>
+            <span>{{obj.waitTaskSize || 0}}</span>
+            <span @click="jump(2)">鏌ョ湅鏇村</span>
           </div>
           <img class="head_item_icon" src="@/assets/indexIcon/ic_daixuncha@2x.png" />
         </div>
         <div class="head_item">
           <div class="head_item_left">
             <span>寰呯洏鐐�</span>
-            <span>12</span>
-            <span>鏌ョ湅鏇村</span>
+            <span>{{obj.stocktakingSize || 0}}</span>
+            <span @click="jump(3)">鏌ョ湅鏇村</span>
           </div>
           <img class="head_item_icon" src="@/assets/indexIcon/ic_daipandian@2x.png" />
         </div>
@@ -30,15 +30,15 @@
       <div class="main_left_menu">
         <div class="main_left_menu_title">
           <span>甯哥敤鍔熻兘</span>
-          <div class="main_left_menu_title_edit" @click="$refs.commonFunctions.open('甯哥敤鍔熻兘绠$悊', list)">
+          <div class="main_left_menu_title_edit" @click="$refs.commonFunctions.open('甯哥敤鍔熻兘绠$悊')">
             <img src="@/assets/indexIcon/ic_daibangongdan@2x.png" />
             <span>鑷畾涔夊姛鑳�</span>
           </div>
         </div>
         <div class="main_left_menu_list">
-          <div class="list_item" v-for="(item, index) in list" :key="index">
+          <div class="list_item" v-for="(item, index) in list" :key="index" @click="jump1(item.path)">
             <div class="list_item_left">
-              <img :src="item.path" />
+              <img :src="item.icoPath" />
               <span>{{item.name}}</span>
             </div>
             <i class="el-icon-arrow-right"></i>
@@ -49,92 +49,158 @@
     <div class="main_right">
       <div class="main_right_title">鏃ョ▼</div>
       <div class="main_right_search">
-        <el-select v-model="value" style="width: 150px; margin-right: 15px;" placeholder="璇烽�夋嫨">
+        <el-select v-model="nian" style="width: 150px; margin-right: 15px;" @change="getMonthNoticess" placeholder="璇烽�夋嫨">
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
+            v-for="item in yearList"
+            :key="item.val"
+            :label="item.name"
+            :value="item.val">
           </el-option>
         </el-select>
-        <el-select v-model="value" style="width: 150px;" placeholder="璇烽�夋嫨">
+        <el-select v-model="yue" style="width: 150px;" @change="getMonthNoticess" placeholder="璇烽�夋嫨">
           <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value">
+            v-for="(item, index) in 12"
+            :key="index"
+            :label="item + '鏈�'"
+            :value="item > 9 ? item : `0${item}`">
           </el-option>
         </el-select>
       </div>
       <div class="main_right_date">
-        <el-calendar v-model="value"></el-calendar>
+        <Calendar
+          ref="Calendar"
+          v-on:choseDay="clickDay"
+          :markDateMore="markDateMore"
+        ></Calendar>
       </div>
       <div class="main_right_rc">
-        <div class="main_right_rc_title">褰撴棩鏃ョ▼锛�3锛�</div>
+        <div class="main_right_rc_title">褰撴棩鏃ョ▼锛坽{dataList.length}}锛�</div>
         <div class="main_right_rc_list">
-          <div class="main_right_rc_list_row" v-for="(item, index) in 5" :key="index">
+          <div class="main_right_rc_list_row" v-for="(item, index) in dataList" :key="index">
             <div class="top">
               <div class="top_left">
                 <div class="top_left_dian"></div>
-                <div class="top_left_title">鐩樼偣閫氱煡</div>
+                <div class="top_left_title">{{item.title}}</div>
               </div>
-              <div class="top_date">2024-12-13 12:53:12</div>
+              <div class="top_date">{{item.createDate}}</div>
             </div>
             <div class="bottom">
-              銆愮洏鐐硅鍒掑悕绉般�戝皢鍦ㄣ��2024-12-1
+              {{item.content}}
             </div>
           </div>
         </div>
       </div>
     </div>
-    <CommonFunctions ref="commonFunctions" />
+    <CommonFunctions ref="commonFunctions" @success="getYwQuickLists" />
   </div>
 </template>
 
 <script>
 import CommonFunctions from '@/components/business/commonFunctions'
-import { getYwQuickList } from '@/api/ywWorkDesk'
+import { getYwQuickList, getMonthNotices, workDeskData } from '@/api/ywWorkDesk'
+import Calendar from 'vue-calendar-component'
 export default {
   data() {
     return {
-      menu: [
-        { name: '鎴挎�佺鐞�', icon: require('@/assets/indexIcon/ic_fangtaiguanli@2x.png') },
-        { name: '宸ュ崟鍒楄〃', icon: require('@/assets/indexIcon/ic_gongdanliebiao@2x.png') },
-        { name: '闂涓婃姤', icon: require('@/assets/indexIcon/ic_wentishangbao@2x.png') },
-        { name: '鏂板缓宸ュ崟', icon: require('@/assets/indexIcon/ic_xinjiangongdan@2x.png') },
-        { name: '璁惧绠$悊', icon: require('@/assets/indexIcon/ic_shebeiguanli@2x.png') },
-        { name: '宸℃浠诲姟', icon: require('@/assets/indexIcon/ic_xunjianrenwu@2x.png') },
-        { name: '鍚堝悓鍒楄〃', icon: require('@/assets/indexIcon/ic_hetongliebiao@2x.png') },
-        { name: '搴撳瓨鏌ヨ', icon: require('@/assets/indexIcon/ic_kucunchaxun@2x.png') },
-        { name: '璐﹀崟鍒楄〃', icon: require('@/assets/indexIcon/ic_zhangdanliebiao@2x.png') },
-        { name: '鏂板鍏ュ簱鍗�', icon: require('@/assets/indexIcon/ic_xinzengruku@2x.png') },
-        { name: '鏂板鍑哄簱鍗�', icon: require('@/assets/indexIcon/ic_xinzengchuku@2x.png') },
-        { name: '鐗╂枡娓呭崟', icon: require('@/assets/indexIcon/ic_zichan@2x.png') },
-      ],
       list: [],
-      value: new Date()
+      value: new Date(),
+      yearList: [],
+      markDateMore: [],
+      nian: '',
+      yue: '',
+      obj: {},
+      dataList: []
     }
   },
-  components: { CommonFunctions },
+  components: { CommonFunctions, Calendar },
   created () {
+    this.getWorkDeskData()
     this.getYwQuickLists()
+    this.getYear()
   },
   methods: {
+    getYear() {
+      let currentYear = new Date().getFullYear();
+      let currentMonth = new Date().getMonth() + 1;
+      this.nian = currentYear
+      this.yue = currentMonth > 9 ? currentMonth : `0${currentMonth}`
+      for (let i = currentYear - 10; i <= currentYear; i++) {
+        this.yearList.unshift({ name: i + '骞�', val: i })
+      }
+      this.getMonthNoticess()
+    },
+    // 鑾峰彇浠e姙
+    getWorkDeskData() {
+      workDeskData({})
+        .then(res => {
+          this.obj = res
+        })
+    },
+    clickDay(e) {
+      let date = e.replace("/\\//g", "-")
+      let arr = this.markDateMore.filter(item => {
+        if (item.date === date) {
+          return item
+        }
+      })
+      if (arr.length > 0) {
+        this.dataList = arr[0].noticeList
+      } else {
+        this.dataList = []
+      }
+    },
+    // 鑾峰彇鏃ョ▼
+    getMonthNoticess() {
+      getMonthNotices(this.nian + '-' + this.yue).then(res => {
+        let arr = res.filter(item => {
+          if (item.noticeList && item.noticeList.length > 0) {
+            return item
+          }
+        })
+        this.markDateMore = arr.map(item => {
+          return { date: item.monthDate.replace("/-0/g", "-"), className: 'markRed', noticeList: item.noticeList }
+        })
+        let toDay = this.getDay()
+        this.markDateMore.forEach(item => {
+          if (item.date === toDay) {
+            this.dataList = item.noticeList
+          }
+        })
+        this.$refs.Calendar.ChoseMonth(`${this.nian}-${this.yue}`, false)
+      })
+    },
     getYwQuickLists() {
       getYwQuickList({})
         .then(res => {
-          console.log(res)
           this.list = res
         })
+    },
+    getDay() {
+      let date = new Date();
+      let year = date.getFullYear();  // 鑾峰彇骞翠唤
+      let month = String(date.getMonth() + 1).padStart(2, '0');  // 鑾峰彇鏈堜唤锛屽苟琛ラ浂
+      let day = String(date.getDate()).padStart(2, '0');  // 鑾峰彇鏃ユ湡锛屽苟琛ラ浂
+  
+      return `${year}-${month}-${day}`;
+    },
+    jump(type) {
+      if (type === 1) {
+        this.$router.push({ path: '/workorder/workorderList' })
+      } else if (type === 2) {
+        this.$router.push({ path: '/Inspection/task' })
+      } else if (type === 3) {
+        this.$router.push({ path: '/stock/check' })
+      }
+    },
+    jump1(path) {
+      this.$router.push({ path })
     }
   }
 }
 </script>
-
 <style lang="scss" scoped>
   .main {
     width: 100%;
-    /*height: calc(100vh - 48px - 56px - 35px);*/
     padding: 15px;
     box-sizing: border-box;
     background: #F4F7FC;
@@ -190,6 +256,7 @@
                 font-weight: 400;
                 font-size: 13px;
                 color: #999999;
+                cursor: pointer;
               }
             }
           }
@@ -345,37 +412,52 @@
       }
       .main_right_date {
         width: 100%;
-        ::v-deep .el-calendar__header {
+        padding-top: 15px;
+        box-sizing: border-box;
+        ::v-deep .wh_content_item {
+          height: 50px;
+          color: #222222;
+          font-weight: 400;
+          font-size: 15px;
+        }
+        ::v-deep .wh_item_date {
+          width: 30px;
+          height: 30px;
+          font-size: 15px;
+        }
+        ::v-deep .wh_content_all {
+          background-color: #ffffff;
+        }
+        ::v-deep .wh_top_changge {
           display: none;
         }
-        ::v-deep .el-calendar-table tr td:first-child{
-          border: none;
+        ::v-deep .wh_container {
+          max-width: 100%;
         }
-        ::v-deep .el-calendar-table tr:first-child td{
-          border: none;
+        ::v-deep .wh_content_item .wh_isToday {
+          background-color: #3E80EF;
+          color: #fff;
         }
-        ::v-deep .el-calendar-table__row td{
-          border: none;
+        ::v-deep .wh_item_date:hover {
+          background-color: #3E80EF;
+          border-radius: 50%;
+          color: #ffffff;
         }
-        ::v-deep .el-calendar-table .el-calendar-day {
-          display: flex;
-          align-items: center;
-          justify-content: center;
-        }
-        ::v-deep thead th {
-          height: 20px;
-          border-bottom: 1px solid #DFE2E8;
-        }
-        ::v-deep.el-calendar-table .el-calendar-day{
-          width: 100%;
-          height: 50px;
-          text-align: center;
-        }
-        ::v-deep .el-calendar-table td.is-selected {
+        ::v-deep .wh_content_item .wh_chose_day {
           background: #3E80EF;
+          color: #fff;
         }
-        ::v-deep .el-calendar-table .el-calendar-day:hover {
-          background: none;
+        ::v-deep .markRed {
+          position: relative;
+        }
+        ::v-deep .markRed::after {
+          content: '鈼�';
+          color: #FF9E00;
+          font-size: 11px;
+          position: absolute;
+          bottom: -30px;
+          left: 50%;
+          transform: translate(-50%, 0);
         }
       }
     }

--
Gitblit v1.9.3