298 lines
7.0 KiB
TypeScript
298 lines
7.0 KiB
TypeScript
import { getAction } from '../../../api/base';
|
|
const dayjs = require('dayjs');
|
|
|
|
Page({
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
current: 1,
|
|
isLast: false,
|
|
loading: false,
|
|
list1: [],
|
|
projectId: '', // 项目名
|
|
startDate: '', // 开始日期
|
|
endDate: '', // 结束日期
|
|
startDateTmp: '',
|
|
endDateTmp: '',
|
|
showDateSelect: false, // 日期弹窗
|
|
selectDate: '', // 开始/结束
|
|
dateList: {
|
|
// 日期列表
|
|
years: [2023, 2024, 2025],
|
|
months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
date: [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
|
|
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
|
|
]
|
|
},
|
|
dateValue: [0, 0, 0]
|
|
},
|
|
// 获取数据
|
|
getList() {
|
|
let parms = {
|
|
projectId: this.data.projectId,
|
|
startTime: this.data.startDate + ' ' + '00:00:00',
|
|
endTime: this.data.endDate + ' ' + '23:59:59',
|
|
pageNo: this.data.current,
|
|
pageSize: 10
|
|
};
|
|
wx.showLoading({
|
|
title: '加载中'
|
|
});
|
|
|
|
if (!this.data.loading) {
|
|
this.setData({
|
|
loading: true
|
|
});
|
|
}
|
|
getAction('api/finance/calculate/list', parms).then((res: any) => {
|
|
wx.hideLoading();
|
|
this.setData({
|
|
loading: false
|
|
});
|
|
if (res.code == 200) {
|
|
let data: any = { ...this.data };
|
|
data.list1 = data.list1.concat(res.result.records);
|
|
this.setData(data);
|
|
if (data.list1.length == res.result.total) {
|
|
this.setData({
|
|
isLast: true
|
|
});
|
|
}
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
});
|
|
},
|
|
hidePicker() {
|
|
this.setData({
|
|
showDateSelect: false
|
|
});
|
|
},
|
|
setProject(event: any) {
|
|
let data: any = { ...this.data };
|
|
// 初始化列表
|
|
data.current = 1;
|
|
data.isLast = false;
|
|
data.list1 = [];
|
|
data.projectId = event.detail.value;
|
|
this.setData(data);
|
|
this.getList();
|
|
},
|
|
// 跳转
|
|
toDetail(event: any) {
|
|
let { inf } = event.currentTarget.dataset;
|
|
getAction('api/finance/calculate/getById', { id: inf.id })
|
|
.then((res: any) => {
|
|
if (res.success) {
|
|
wx.setStorageSync('costEstimationData', {
|
|
info: res.result,
|
|
type: 'check'
|
|
});
|
|
wx.navigateTo({
|
|
url: '../costEstimationDetail/costEstimationDetail',
|
|
fail: e => {
|
|
console.log(e);
|
|
}
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: res.message,
|
|
icon: 'none'
|
|
});
|
|
}
|
|
})
|
|
.catch((err: any) => {
|
|
console.log(err);
|
|
});
|
|
},
|
|
add() {
|
|
wx.navigateTo({
|
|
url: '../costEstimationAdd/costEstimationAdd',
|
|
fail: e => {
|
|
console.log(e);
|
|
}
|
|
});
|
|
},
|
|
// 日期相关--------------
|
|
showDate(e: any) {
|
|
let clickDate = null as any;
|
|
if (e.currentTarget.dataset.key == 'startDate') {
|
|
clickDate = this.data.startDate;
|
|
} else {
|
|
clickDate = this.data.endDate;
|
|
}
|
|
let y = this.data.dateList.years.findIndex(
|
|
(x: number) => x == Number(clickDate.split('-')[0])
|
|
);
|
|
let m = this.data.dateList.months.findIndex(
|
|
(x: number) => x == Number(clickDate.split('-')[1])
|
|
);
|
|
let d = this.data.dateList.date.findIndex(
|
|
(x: number) => x == Number(clickDate.split('-')[2])
|
|
);
|
|
this.setData({
|
|
showDateSelect: true,
|
|
selectDate: e.currentTarget.dataset.key,
|
|
startDateTmp: this.data.startDate,
|
|
endDateTmp: this.data.endDate,
|
|
dateValue: [y, m, d]
|
|
});
|
|
},
|
|
// 确认选择时间
|
|
changeDate(e: any) {
|
|
if (
|
|
new Date(this.data.startDateTmp).getTime() >
|
|
new Date(this.data.endDateTmp).getTime()
|
|
) {
|
|
wx.showToast({
|
|
title: '结束时间不能早于开始时间',
|
|
icon: 'none'
|
|
});
|
|
return;
|
|
}
|
|
this.setData({
|
|
startDate: this.data.startDateTmp,
|
|
endDate: this.data.endDateTmp,
|
|
showDateSelect: false,
|
|
list1: [],
|
|
current: 1,
|
|
isLast: false
|
|
});
|
|
this.getList();
|
|
},
|
|
// 选择时间
|
|
selectDate(e: any) {
|
|
let y: string | number = this.data.dateList.years[e.detail.value[0]];
|
|
let m: string | number = this.data.dateList.months[e.detail.value[1]];
|
|
let d: string | number = this.data.dateList.date[e.detail.value[2]];
|
|
y = y < 10 ? '0' + y : y;
|
|
m = m < 10 ? '0' + m : m;
|
|
d = d < 10 ? '0' + d : d;
|
|
if (this.data.selectDate == 'startDate') {
|
|
this.setData({
|
|
startDateTmp: `${y}-${m}-${d}`
|
|
});
|
|
} else {
|
|
this.setData({
|
|
endDateTmp: `${y}-${m}-${d}`
|
|
});
|
|
}
|
|
},
|
|
// 日期初始化
|
|
initDate() {
|
|
if (this.data.startDate) {
|
|
this.getList();
|
|
} else {
|
|
let year = new Date().getFullYear();
|
|
let mon = (new Date().getMonth() + 1) as any;
|
|
let day =
|
|
new Date().getDate() < 10
|
|
? '0' + new Date().getDate()
|
|
: new Date().getDate();
|
|
let years = [] as any;
|
|
|
|
let sy = mon > 1 ? year : year - 1;
|
|
let smon = mon > 1 ? mon - 1 : (12 as any);
|
|
mon = mon < 10 ? '0' + mon : mon;
|
|
smon = smon < 10 ? '0' + smon : smon;
|
|
for (let i = -3; i < 6; i++) {
|
|
years.push(year + i);
|
|
}
|
|
this.setData({
|
|
dateList: {
|
|
years: years,
|
|
months: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
|
|
date: [
|
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
|
|
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
|
|
]
|
|
},
|
|
dateValue: [0, 0, 0],
|
|
|
|
startDate: `${sy}-${smon}-${day}`,
|
|
endDate: `${year}-${mon}-${day}`,
|
|
startDateTmp: `${sy}-${smon}-${day}`,
|
|
endDateTmp: `${year}-${mon}-${day}`
|
|
});
|
|
this.getList();
|
|
}
|
|
},
|
|
// 下拉
|
|
lower(e: any) {
|
|
if (this.data.isLast) {
|
|
wx.showToast({
|
|
title: '已经是最后一页',
|
|
icon: 'none'
|
|
});
|
|
return;
|
|
}
|
|
if (e.detail.direction == 'bottom' && !this.data.loading) {
|
|
// this.data.current += 1
|
|
this.setData({
|
|
loading: true,
|
|
current: (this.data.current += 1)
|
|
});
|
|
this.getList();
|
|
}
|
|
},
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
this.setData({
|
|
current: 1,
|
|
isLast: false,
|
|
list1: []
|
|
});
|
|
this.initDate();
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
this.setData({
|
|
current: 1,
|
|
list1: []
|
|
});
|
|
this.getList();
|
|
// 手动控制回弹
|
|
wx.stopPullDownRefresh();
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {}
|
|
});
|