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