From d492850f1cc64ddcfaf43798af9c76c2505414fd Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 24 一月 2025 18:24:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 admin/src/views/index.vue |  285 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 246 insertions(+), 39 deletions(-)

diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 0e87c1c..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">
+          <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 menu" :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.icon" />
+              <img :src="item.icoPath" />
               <span>{{item.name}}</span>
             </div>
             <i class="el-icon-arrow-right"></i>
@@ -49,65 +49,163 @@
     <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">
+        <Calendar
+          ref="Calendar"
+          v-on:choseDay="clickDay"
+          :markDateMore="markDateMore"
+        ></Calendar>
+      </div>
+      <div class="main_right_rc">
+        <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 dataList" :key="index">
+            <div class="top">
+              <div class="top_left">
+                <div class="top_left_dian"></div>
+                <div class="top_left_title">{{item.title}}</div>
+              </div>
+              <div class="top_date">{{item.createDate}}</div>
+            </div>
+            <div class="bottom">
+              {{item.content}}
+            </div>
+          </div>
+        </div>
+      </div>
     </div>
+    <CommonFunctions ref="commonFunctions" @success="getYwQuickLists" />
   </div>
 </template>
 
 <script>
+import CommonFunctions from '@/components/business/commonFunctions'
+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') },
-      ],
-      options: [],
-      value: ''
+      list: [],
+      value: new Date(),
+      yearList: [],
+      markDateMore: [],
+      nian: '',
+      yue: '',
+      obj: {},
+      dataList: []
     }
   },
+  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 => {
+          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;
     display: flex;
-    align-items: center;
+    align-items: self-start;
     justify-content: space-between;
     .main_left {
       flex: 1;
@@ -158,6 +256,7 @@
                 font-weight: 400;
                 font-size: 13px;
                 color: #999999;
+                cursor: pointer;
               }
             }
           }
@@ -186,6 +285,7 @@
             color: #222222;
           }
           .main_left_menu_title_edit {
+            cursor: pointer;
             display: flex;
             align-items: center;
             img {
@@ -253,6 +353,113 @@
         color: #222222;
         margin-bottom: 12px;
       }
+      .main_right_rc {
+        width: 100%;
+        display: flex;
+        flex-direction: column;
+        .main_right_rc_title {
+          font-weight: 500;
+          font-size: 16px;
+          color: #222222;
+          margin-bottom: 15px;
+        }
+        .main_right_rc_list {
+          width: 100%;
+          height: 300px;
+          overflow-y: scroll;
+          .main_right_rc_list_row {
+            width: 100%;
+            padding: 15px;
+            box-sizing: border-box;
+            background: #F4F7FC;
+            border-radius: 2px;
+            margin-bottom: 10px;
+            .top {
+              width: 100%;
+              display: flex;
+              align-items: center;
+              justify-content: space-between;
+              .top_left {
+                display: flex;
+                align-items: center;
+                .top_left_dian {
+                  width: 10px;
+                  height: 10px;
+                  border-radius: 50%;
+                  background: #FF9E00;
+                  margin-right: 10px;
+                }
+                .top_left_title {
+                  font-weight: 500;
+                  font-size: 15px;
+                  color: #222222;
+                }
+              }
+              .top_date {
+                font-weight: 400;
+                font-size: 12px;
+                color: #999999;
+              }
+            }
+            .bottom {
+              font-weight: 400;
+              font-size: 13px;
+              color: #666666;
+              margin-top: 8px;
+            }
+          }
+        }
+      }
+      .main_right_date {
+        width: 100%;
+        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 .wh_container {
+          max-width: 100%;
+        }
+        ::v-deep .wh_content_item .wh_isToday {
+          background-color: #3E80EF;
+          color: #fff;
+        }
+        ::v-deep .wh_item_date:hover {
+          background-color: #3E80EF;
+          border-radius: 50%;
+          color: #ffffff;
+        }
+        ::v-deep .wh_content_item .wh_chose_day {
+          background: #3E80EF;
+          color: #fff;
+        }
+        ::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);
+        }
+      }
     }
   }
 </style>

--
Gitblit v1.9.3