yxk_h5_master/pages/salary/salary.vue

243 lines
6.8 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="page">
<view class="uni-flex uni-row">
<view class="otherFixed" >
<view class="text" style="width:90% !important" @click="filterDate">{{timeData.begin==''?'选择时期':(timeData.begin+'~'+timeData.end)}}</view>
</view>
</view>
<view class="example-body" v-if="listCards.length>0">
<view v-for="(item,index) in listCards" :key="index" class="example-box" style="position: relative;flex: 1;" >
<view class="uni-common-mt">
<view class="uni-list">
<view class="uni-list-cell" hover-class="uni-list-cell-hover">
<view class="uni-padding-wrap">
<view class="uni-flex uni-row">
<view class="mydefineText" style="width: 200upx;">所属时期</view>
<view class="mydefineText rightText">{{item.monthDate}}</view>
</view>
</view>
</view>
<view class="uni-list-cell" hover-class="uni-list-cell-hover">
<view class="uni-padding-wrap">
<view class="uni-flex uni-row">
<view class="mydefineText" style="width: 200upx;">员工姓名</view>
<view class="mydefineText rightText">{{item.employeeName}}</view>
</view>
</view>
</view>
<view v-for="(p,index) in nameCards" :key="index">
<view class="uni-list-cell" hover-class="uni-list-cell-hover">
<view class="uni-padding-wrap">
<view class="uni-flex uni-row">
<view class="mydefineText" style="width: 200upx;">{{p.name}}</view>
<view class="mydefineText rightText">{{item[p.property]}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<uni-calendar ref="calendar" :lunar="false" :range="true" @confirm="confirmDate" @cancel='cancleData'/>
<uni-load-more :status="loading_status"></uni-load-more>
<view class="goHome" @click='goMain()'>
<img src="../../static/img/gohome.png">
</view>
</view>
<view class="example-body" v-else>
<no-record ></no-record>
</view>
</view>
</template>
<script>
import mpvuePicker from '@/components/mpvue-picker/mpvuePicker.vue';
import noRecord from '@/components/xinsoft-no-record/xinsoft-no-record';
import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue'
import uniCalendar from '@/components/uni-calendar/uni-calendar.vue'
import {
config
} from '../../request/js/config.js'
export default {
components: {
noRecord,uniLoadMore,mpvuePicker,uniCalendar,
},
data() {
return {
fixed: true,
pageno:1,//当前第几页
pagesize:5,//每页加载数据条数
id:'',
config:config,
deviceInfo:{},
filterResult:{},
listCards: [],
nameCards:[],
search_data: {
pageno: 1,
pagesize: 10000,
isShowSalaryAccounting:1
},
loading_status: 'more',//moreloading前、loadingloading中、noMore没有更多了
//日历变量。
timeData: {
begin: "",
end: ''
},
}
},
onLoad(options) {
var _this = this;
uni.getStorage({
key: 'userInfo',
success: function (res) {
console.log(res.data)
_this.id = res.data.userId
}
});
},
mounted() {
this.getName()
this.$nextTick(function(){
this.getAccounting()
})
},
methods: {
// 获取动态字段
getName() {
this.$http.request({
url: '/apis/salary/project/getProjectList',
paramsBody: this.search_data,
})
.then(res=> {
console.log(res.data)
if(res.data.code ==0) {
this.nameCards = res.data.data;
}
})
},
getAccounting() {
this.filterResult.pageno = this.pageno;
this.filterResult.pagesize = this.pagesize;
this.filterResult.userId = this.id;
this.filterResult.startTime = this.timeData.begin;
this.filterResult.endTime = this.timeData.end;
this.$http.request({
url: '/apis/salaryAccounting/pageList',
paramsBody: this.filterResult,
})
.then(res => {
uni.stopPullDownRefresh();
if(!res.data.data){
this.loading_status="noMore";
}else if(res.data.data.datas.length<this.pagesize){
this.loading_status="noMore";
}else{
this.loading_status="more";
}
if (res.data.code == 0) {
this.listCards = this.listCards.concat(res.data.data.datas);
this.listCards.forEach(item => {
item.monthDate = (item.monthDate).slice(0,7)
})
}
}).catch(err => {
this.loading_status="noMore";
});
},
/*
* 日历相关方法。
*/
filterDate() {
this.$refs.calendar.open();
},
confirmDate(e) {
if (e.range.begin && e.range.end) {
this.timeData = {
begin: e.range.begin + ' 00:00:00',
end: e.range.end + ' 00:00:00'
}
this.listCards=[];
this.pagenumber=1;
this.loading_status="more";
this.getAccounting();
}
},
/**
* 对日期进行加减操作 该方法不会修改传入的Date对象
* @param date 如果为null 则表示为当前日期
* @param unit 单位 y:年 M:月 d:日 h:小时 m:分钟 s:秒
* @param value 增加的数值 可以为负数
* @return 返回值为修改后的新的Date对象
*/
addDate:function(date,unit,value){
date = new Date(date.replace(/-/g, "/"));
var units = {
y:'FullYear',
M:'Month',
d:'Date',
h:'Hours',
m:'Minutes',
s:'Seconds'
}
try{
if(units[unit]){
date['set'+units[unit]](date['get'+units[unit]]() + parseInt(value));
}
}catch (e){
console.error(e);
}
var day1 = new Date();
var time = date.getFullYear()+"-" + this.minTenAndZero(date.getMonth()+1) + "-" + this.minTenAndZero(date.getDate())+
" " + this.minTenAndZero(date.getHours()) + ":" + this.minTenAndZero(date.getMinutes()) + ":" + this.minTenAndZero(date.getSeconds());
return time;
},
minTenAndZero:function(value){
return value<10?('0'+value):value;
}
}
}
</script>
<style>
.mydefineText {
margin: 7px 5px;
height: 70upx;
line-height: 70upx;
color: #999;
font-size: 28upx;
}
.rightText{
text-align: right;
color: #333;
-webkit-flex: 1;
flex: 1;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden
}
.red{color: #f00;}
.otherFixed {
position: relative;
background: #fff;
width: 101%;
text-align: center;
color: #666;
/* position: fixed; */
z-index: 2;
height: 40px;
right: 0;
}
</style>