From 8e0b73d956ff90a93b4e62c01549f7170be3306e Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期五, 10 五月 2024 17:38:43 +0800
Subject: [PATCH] 完成班次年份接口对接
---
src/components/do/b3-work-time-management/work-time-config.vue | 12 ++--
src/components/view/b3-classes.vue | 136 ++++++++++++++++++++++++++++++++-------------
src/assets/api/controller.js | 1
3 files changed, 103 insertions(+), 46 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 8dac067..7c20039 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -263,6 +263,7 @@
add:"/performanceShift/add",//缁╂晥绠$悊-鐝-鎺掔彮
page:"/performanceShift/page",//缁╂晥绠$悊-鐝-鍒嗛〉鏌ヨ
update:"/performanceShift/update",//缁╂晥绠$悊-鐝-鐝鐘舵�佷慨鏀�
+ pageYear:"/performanceShift/pageYear",//缁╂晥绠$悊-鐝-骞翠唤鍒嗛〉鏌ヨ
}
const auxiliaryWorkingHours = {
diff --git a/src/components/do/b3-work-time-management/work-time-config.vue b/src/components/do/b3-work-time-management/work-time-config.vue
index cb3ae89..ed06257 100644
--- a/src/components/do/b3-work-time-management/work-time-config.vue
+++ b/src/components/do/b3-work-time-management/work-time-config.vue
@@ -73,7 +73,7 @@
laboratory: {
select: []
},
- label: {
+ unit: {
select: []
},
// department: {
@@ -86,15 +86,15 @@
laboratory: {
select: []
},
- label: {
+ unit: {
select: []
},
// department: {
// select: []
// },
},
- requiredAdd: ['number','auxiliaryProject','laboratory','label','approvedWorkingHour','department'],
- requiredUp: ['number','auxiliaryProject','laboratory','label','approvedWorkingHour','department']
+ requiredAdd: ['number','auxiliaryProject','laboratory','unit','approvedWorkingHour','department'],
+ requiredUp: ['number','auxiliaryProject','laboratory','unit','approvedWorkingHour','department']
},
entityCopy: {},
upIndex: 0,
@@ -162,8 +162,8 @@
this.$axios.post(this.$api.enums.selectEnumByCategory, {
category: "鍗曚綅"
}).then(res => {
- this.componentData.selectField.label.select = res.data
- this.componentData.tagField.label.select = res.data
+ this.componentData.selectField.unit.select = res.data
+ this.componentData.tagField.unit.select = res.data
})
},
}
diff --git a/src/components/view/b3-classes.vue b/src/components/view/b3-classes.vue
index 0c851bd..6628607 100644
--- a/src/components/view/b3-classes.vue
+++ b/src/components/view/b3-classes.vue
@@ -105,16 +105,14 @@
<div class="content-title" style="padding-left: 16px;box-sizing: border-box;">
浜哄憳鍚嶇О
</div>
- <div class="content-user" :class="{hoverType:currentUserIndex==index}" v-for="(item,index) in list" :key="'e'+index" v-on:mouseenter="onMouseEnter(index)"
+ <div class="content-user" :class="{hoverType:currentUserIndex==index}" v-for="(item,index) in yearList" :key="'e'+index" v-on:mouseenter="onMouseEnter(index)"
v-on:mouseleave="currentUserIndex=null">
<div class="user-pic">{{ item.name.charAt(0) }}</div>
<div class="user-info">
<p style="font-size: 14px;color: #3A7BFA;line-height: 24px;">{{ item.name }}</p>
<p style="color: #999999;font-size: 12px;transform: scale(0.8) translateX(-20px);white-space: nowrap;width: 150px;overflow-x: show;">鏃�: {{ item.day0 }}, 涓�: {{ item.day1 }}, 澶�: {{ item.day2 }}, 浼�: {{ item.day3 }}, 鍋�: {{ item.day4 }}</p>
<p style="margin-top: 4px;"><span style="color: #999999;font-size: 12px;display: inline-block;transform: scale(0.8) translateX(-10px);">鍚堣鍑哄嫟: </span><span style="font-size: 16px;
- color: #FF4902;">{{ query.month?item.monthlyAttendance
-.totalAttendance:item.sidebarAnnualAttendance
-.totalAttendance }}澶�</span></p>
+ color: #FF4902;">{{ item.work_time }}澶�</span></p>
</div>
</div>
</div>
@@ -129,17 +127,17 @@
</div>
<div
class="content-body"
- v-for="(item,index) in list"
+ v-for="(item,index) in yearList"
:key="'c'+index"
v-on:mouseenter="onMouseEnter(index)"
v-on:mouseleave="currentUserIndex=null"
:style="`display: grid;
grid-template-columns: repeat(${monthList.length}, 1fr);`"
>
- <div class="content-body-item" v-for="(m,i) in monthList.length" :key="'d'+i" :class="{hoverType:currentUserIndex==index}">
- <p style="color:rgb(153, 153, 153);font-size: 12px;">鍚堣鍑哄嫟锛�<span style="font-size: 14px;color:#000">12</span></p>
+ <div class="content-body-item" v-for="(m,i) in item.monthList" :key="'d'+i" :class="{hoverType:currentUserIndex==index}">
+ <p style="color:rgb(153, 153, 153);font-size: 12px;">鍚堣鍑哄嫟锛�<span style="font-size: 14px;color:#000">{{ m.totalMonthAttendance }}</span></p>
<p style="color:rgb(153, 153, 153);font-size: 12px;">
- 鏃�: 12, 涓�: 12, 澶�: 12, 浼�: 12, 鍋�: 12
+ 鏃�: {{ m.day0 }}, 涓�: {{ m.day1 }}, 澶�: {{ m.day2 }}, 浼�: {{ m.day3 }}, 鍋�: {{ m.day4 }}
</p>
</div>
</div>
@@ -285,31 +283,43 @@
total: '',
pageLoading: false, // 缁勪欢loading鐨勫睍绀�,榛樿涓簍rue
finishLoding: false, // 鍔犺浇瀹屾垚锛屾樉绀哄凡缁忔病鏈夋洿澶氫簡
- monthList:[]
+ monthList:[],
+ yearList:[]
}
},
watch: {
- 'query.year'(val){
- this.monthList = []
- if(val.getFullYear()==new Date().getFullYear()){
- for(let i=new Date().getMonth()+1;i>0;i--){
- this.monthList.push(i)
- }
- }else{
- for (let i=12;i>0;i--) {
- this.monthList.push(i)
- }
+ // 'query.year'(val){
+ // this.monthList = []
+ // if(val.getFullYear()==new Date().getFullYear()){
+ // for(let i=new Date().getMonth()+1;i>0;i--){
+ // this.monthList.push(i)
+ // }
+ // }else{
+ // for (let i=12;i>0;i--) {
+ // this.monthList.push(i)
+ // }
+ // }
+ // this.monthList.reverse()
+ // },
+ 'query.month'(val){
+ if(!val){
+ this.currentPage = 1;
+ this.yearList = []
+ this.initYear()
}
- this.monthList.reverse()
}
},
mounted(){
this.selectEnumByCategory()
this.obtainItemParameterList()
this.getUsers()
- this.init()
+ if(this.query.month){
+ this.init()
+ }else{
+ this.initYear()
+ }
this.monthList = []
- for(let i=new Date().getMonth()+1;i>0;i--){
+ for(let i=12;i>0;i--){
this.monthList.push(i)
}
this.monthList.reverse()
@@ -318,6 +328,7 @@
methods: {
refresh(){
this.list = [];
+ this.yearList = []
this.currentPage = 1
this.query = {
userName:'',
@@ -325,12 +336,21 @@
year:new Date(),
month:new Date().getMonth()+1
}
- this.init()
+ if(this.query.month){
+ this.init()
+ }else{
+ this.initYear()
+ }
},
refreshTable(){
this.list = [];
+ this.yearList = []
this.currentPage = 1
- this.init()
+ if(this.query.month){
+ this.init()
+ }else{
+ this.initYear()
+ }
},
init(){
if(this.currentPage==1){
@@ -358,20 +378,6 @@
}
return item
});
- // 鍙充晶鏃ユ湡鑾峰彇
- // if(this.currentPage==1){
- // if(list&&list.length>0){
- // this.weeks = [];
- // list[0].list&&list[0].list.forEach(item=>{
- // let obj = {
- // weekNum:item.weekly,
- // week:item.headerTime.split(' ')[1],
- // day:item.headerTime.split(' ')[0]
- // }
- // this.weeks.push(obj)
- // })
- // }
- // }
let headerList = res.data.headerList;
this.weeks = [];
headerList.forEach(item=>{
@@ -394,10 +400,60 @@
}
this.currentPage++;
}
- console.log(this.list)
})
},
- initYear(){},
+ initYear(){
+ // pageYear
+ if(this.currentPage==1){
+ this.pageLoading = true
+ }
+ let year = this.query.year.getFullYear()
+ this.$axios.post(this.$api.performanceShift.pageYear, {
+ size:this.pageSize,
+ current:this.currentPage,
+ time:year+'-01-01 00:00:00',
+ userName:this.query.userName,
+ laboratory:this.query.laboratory,
+ }).then(res => {
+ this.pageLoading = false
+ if (res.code == 201) return
+ this.total = res.data.total
+ let list = res.data.records.map(item=>{
+ for (let key in item.year) {
+ let type = this.getDayByDic(key)
+ if(type!=undefined||type!=null){
+ item[`day${type}`] = item.year[key]
+ }
+ }
+ item.monthList = []
+ for (let m in item.month) {
+ let obj = {}
+ for (let key in item.month[m]) {
+ let type = this.getDayByDic(key)
+ console.log(type)
+ if(type!=undefined||type!=null){
+ obj[`day${type}`] = item.month[m][key]
+ }
+ }
+ obj.totalMonthAttendance = item.month[m].totalMonthAttendance
+ item.monthList.push(obj)
+ }
+ return item
+ });
+ if(list.length==0){
+ this.finishLoding = true;
+ }else{
+ if(list.length<this.pageSize){
+ this.finishLoding = true;
+ }
+ this.yearList = this.yearList.concat(list)
+ if(this.total==this.yearList.length){
+ this.finishLoding = true;
+ }
+ this.currentPage++;
+ }
+ })
+ },
getPower() {
let power = JSON.parse(sessionStorage.getItem('power'))
let add = false
--
Gitblit v1.9.3