<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',//more（loading前）、loading（loading中）、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>

