You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bocai_supplyChain/pages/wodeBillDetail/index.js

774 lines
25 KiB
JavaScript

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// pages/wodeBillDetail/index.js
const app = getApp();
import { formatDateYMD } from "../../utils/dateUtil";
const commonUtil = require("../../utils/commonUtil.js");
import { customRequest } from '../../utils/request.js';
Page({
/**
* 页面的初始数据
*/
data: {
inputVal: "搜索姓名",
// settlePrice:'',
// settleUnit:'',
searchParam: {
pageNum: 1,
pageSize: 40,
keys: "",
status: "",
},
recordList: [], // 账单详情列表
factoryBill: {}, // 账单详情
billInfo: {}, // 列表传输过来的账单信息
currentDetail: {}, // 当前对象详情
currIndex: 0,
chaShowed: false,
dialog: false,
isChecked: false,
selectTotalSalary: 0, // 待确认选中的总价格
hasMoreData: false,
isTrigger: false,
userInfo: app.globalData.loginUserInfo,
// img: "/assets/images/shareImg.jpg",
// img: "http://matripecandy.oss-cn-beijing.aliyuncs.com/1shoudanImg/bg.png",
img: "https://matripe-cms.oss-cn-beijing.aliyuncs.com/1shoudan/bg.png",
isAgency: app.globalData.loginUserInfo.agencyStatus == 1 ? true : false,
isLogin: null,
canvasId: "canvasId",
isLoading: false,
isBtnLoading: false, // 点击确认按钮后的loading判断
// base64: "",
},
/**
* 生命周期函数--监听页面加载
*/
onLoad (options) {
let that = this;
console.log("options+++++++++++++++++++++++++++++", options);
// if(wx.getStorageSync('loginUserTokenInfo')){
// app.getLoginUserTokenInfo().then((res)=>{
// console.log(res);
// })
// }
new Promise((res, rej) => {
if (app.globalData.isLogin) {
console.log("isLogin");
that.setData({
isLogin: app.globalData.isLogin,
});
res(app.globalData.isLogin);
} else {
// 由于 userLogin 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
setTimeout(() => {
app.userLoginCallback = (res) => {
that.setData({
isLogin: app.globalData.isLogin,
});
};
console.log(app.globalData.isLogin);
res(app.globalData.isLogin);
}, 500);
}
}).then((res) => {
console.log(res);
console.log(that.data);``
let status;
let info;
let index;
console.log(options);
if (app.isNotEmptyCheck(options.scene)) {
var sceneStr = decodeURIComponent(options.scene);
console.log(sceneStr);
var sceneJson = commonUtil.sceneToJson(sceneStr);
if (res) {
console.log(sceneJson);
that.data.searchParam.agencyId = sceneJson.agencyId || sceneJson.aId;
that.data.searchParam.factoryBillId = sceneJson.factoryBillId || sceneJson.fId;
if (app.isNotEmptyCheck(sceneJson.status)) {
status = sceneJson.status;
} else {
status = 0;
}
} else {
wx.setStorageSync("comeFromPage", "BillInfo");
wx.setStorageSync("QRBillInfo", sceneJson);
wx.redirectTo({
url: "/pages/login/index",
});
}
} else {
console.log("info");
info = JSON.parse(options.info);
that.data.searchParam.agencyId = info.agencyId;
that.data.searchParam.factoryBillId = info.factoryBillId;
if (app.isNotEmptyCheck(info.status)) {
status = info.status;
} else {
status = 10;
}
}
if (status == 0) {
that.data.searchParam.status = "";
index = 0;
} else if (status == 10) {
that.data.searchParam.status = 10;
index = 1;
} else if (status == 20) {
that.data.searchParam.status = 20;
index = 2;
wx.setNavigationBarTitle({
title: "待结算账单",
});
} else if (status == 30) {
that.data.searchParam.status = 30;
index = 3;
wx.setNavigationBarTitle({
title: "已结算账单",
});
}
console.log(that.data.searchParam);
that.setData({
searchParam: that.data.searchParam,
billInfo: info,
currIndex: index,
});
// wx.setNavigationBarTitle({
// title: info.title,
// });
wx.showLoading({
title: "加载中...",
});
this.setData({
isLoading: true,
});
that.getList();
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady () { },
/**
* 生命周期函数--监听页面显示
*/
onShow () { },
/**
* 生命周期函数--监听页面隐藏
*/
onHide () { },
/**
* 生命周期函数--监听页面卸载
*/
onUnload () { },
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh () { },
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom () { },
/**
* 用户点击右上角分享
*/
onShareAppMessage1 () {
let that = this;
return this.getCanvas().then(() => {
// console.log(this.data.base64);
return {
title: this.data.factoryBill.title,
path: "pages/wodeBillSharePage/index?agencyId=" + this.data.searchParam.agencyId + "&factoryBillId=" + this.data.searchParam.factoryBillId, // 路径,传递参数到指定页面。
// imageUrl: "../../assets/images/shareImg.jpg",
imageUrl: this.data.canvasImg,
};
});
// let imgUrl = "../../assets/images/shareImg.jpg";
},
getCanvas () {
const that = this;
return new Promise((resolve) => {
var mycenter = 0; //文字左右居中显示
var myheight = 0; //文字高度
const query = wx.createSelectorQuery();
query
.select("#" + this.data.canvasId)
.fields({ node: true, size: true })
.exec((res) => {
console.log(res);
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
new Promise(function (resolve) {
// 绘制背景图片
wx.getImageInfo({
src: that.data.img, //网络图片,如果不行请换一个
success (res) {
console.log(res);
var width = res.width;
var height = res.height;
mycenter = width / 2;
myheight = height;
canvas.width = width;
canvas.height = height;
const img = canvas.createImage();
console.log(ctx);
img.src = res.path;
img.onload = () => {
ctx.drawImage(img, 0, 0, width, height);
resolve(true);
};
},
});
})
.then(() => {
ctx.font = "500 70px Arial";
ctx.textAlign = "left";
// ctx.fillStyle = "#333";
ctx.fillStyle = "#fff";
// console.log(that.data.factoryBill.totalSalary.toString().length);
// let steNumber = that.data.factoryBill.totalSalary.toString().length
// ctx.fillRect(40, 168, steNumber * 30, 72);
ctx.fillText(that.data.factoryBill.totalSalary + "元", 40, 210);
})
.then(function () {
wx.canvasToTempFilePath({
canvas: canvas,
success (res) {
console.log(res);
that.setData({
canvasImg: res.tempFilePath,
// base64: canvas.toDataURL(),
});
resolve();
// console.log(that.data.canvasImg);
},
});
})
.catch((err) => { });
});
});
},
//canvas转为图片
transferCanvasToImage (canvas) {
const that = this;
console.log(canvas);
wx.canvasToTempFilePath({
canvas: canvas,
success (res) {
console.log(res);
that.setData({
canvasImg: res.tempFilePath,
// base64: canvas.toDataURL(),
});
resolve();
// console.log(that.data.canvasImg);
},
});
},
/*
跳转搜索页面
*/
goSearch () {
wx.navigateTo({
url: "../search/index?from=wodeBillDetail",
});
},
/*
清空输入框
*/
clearInput: function () {
console.log(123);
this.setData({
inputVal: "搜索姓名",
chaShowed: false,
});
this.data.recordList = [];
this.data.searchParam.keys = "";
this.data.searchParam.pageNum = 1;
wx.showLoading({
title: "加载中...",
});
this.getList();
},
/*
搜索关键词
*/
searchKey: function (e) {
console.log("onsearch");
console.log(this.data.inputVal);
this.data.recordList = [];
this.data.searchParam.pageNum = 1;
this.data.searchParam.keys = this.data.inputVal;
wx.showLoading({
title: "加载中...",
});
this.getList();
},
onScrollToLower: function () {
this.data.searchParam.pageNum = this.data.searchParam.pageNum + 1;
wx.showLoading({
title: "加载中...",
});
this.getList();
},
onScrollRefresh () {
this.data.recordList = [];
this.data.searchParam.pageNum = 1;
this.setData({
selectTotalSalary: 0,
});
console.log("isonScrollRefresh");
wx.showLoading({
title: "加载中...",
});
this.getList();
},
changeMenu (e) {
var that = this;
that.data.searchParam.pageNum = 1;
if (e.currentTarget.dataset.id == 0) {
this.data.searchParam.status = "";
} else if (e.currentTarget.dataset.id == 1) {
this.data.searchParam.status = 10;
} else if (e.currentTarget.dataset.id == 2) {
this.data.searchParam.status = 20;
}
console.log(this.data.searchParam.status);
this.setData({
currIndex: e.currentTarget.dataset.id,
recordList: [],
searchParam: this.data.searchParam,
selectTotalSalary: 0,
isChecked: false,
});
console.log(this.data.recordList);
wx.showLoading({
title: "加载中...",
});
this.getList();
},
goDetail (e) {
let that = this;
console.log(e);
let id = e.currentTarget.dataset.id;
customRequest("/yishoudan/factory/bill/record/details/" + id,{header:'headers', method: 'GET', data: {}}).then(({data})=>{
if (data.status == 200) {
// data.data.pageBean.recordList.forEach((item) => {
// item.showTime = formatDateYMDHM(item.updateTime);
// });
data.data.billRecord.applyTimeStr = formatDateYMD(data.data.billRecord.applyTime);
data.data.billRecord.entryTimeStr = formatDateYMD(data.data.billRecord.entryTime);
data.data.billRecord.leaveTimeStr = formatDateYMD(data.data.billRecord.leaveTime);
that.setData({
currentDetail: { ...data.data.billRecord, customize: data.data.titles },
});
console.log(that.data.currentDetail);
}
})
// wx.request({
// url: app.globalData.ip + "/yishoudan/factory/bill/record/details/" + id,
// // data: that.data.searchParam,
// header: app.globalData.headers,
// success: function ({ data }) {
// console.log(data);
// if (data.status == 200) {
// // data.data.pageBean.recordList.forEach((item) => {
// // item.showTime = formatDateYMDHM(item.updateTime);
// // });
// data.data.billRecord.applyTimeStr = formatDateYMD(data.data.billRecord.applyTime);
// data.data.billRecord.entryTimeStr = formatDateYMD(data.data.billRecord.entryTime);
// data.data.billRecord.leaveTimeStr = formatDateYMD(data.data.billRecord.leaveTime);
// that.setData({
// currentDetail: { ...data.data.billRecord, customize: data.data.titles },
// });
// console.log(that.data.currentDetail);
// }
// },
// });
this.setData({
dialog: true,
});
// this.data.dialog = true
console.log("isIntoDetail");
},
closeDrawer () {
this.setData({
dialog: false,
currentDetail: {},
});
},
confirmBillDetail () {
let that = this;
let ids = {};
wx.showLoading({
title: "确认中...",
});
ids.recordIds = this.data.currentDetail.id + "";
ids.factoryBillId = this.data.searchParam.factoryBillId;
// console.log(ids);
// return
this.billSubmit(ids)
},
confirmBill () {
let that = this;
let ids = {};
wx.showLoading({
title: "确认中...",
});
let arr = [];
this.data.recordList.forEach((item) => {
// console.log(item);
if (item.checked) {
arr.push(item.id);
}
});
if (arr.length == 0) {
wx.showToast({
title: "您还没有选择名单哦!",
icon: "none",
duration: 2000,
});
console.log("nolist");
return;
}
ids.recordIds = arr.join(',');
ids.factoryBillId = this.data.searchParam.factoryBillId;
// console.log(ids);
// return
this.billSubmit(ids)
},
billSubmit (ids) {
let that = this;
if (!this.data.isBtnLoading) {
customRequest("/yishoudan/factory/bill/record/confirm",{header:'headers', method: 'post', data: ids}).then(({data})=>{
if (data.status == 200) {
wx.showToast({ title: "确认成功", icon: "success", duration: 2000 }); //隐藏消息提示框
that.data.searchParam.status = 10;
that.setData({
dialog: false,
recordList: [],
searchParam: that.data.searchParam,
currIndex: 1,
selectTotalSalary: 0,
isChecked: false,
});
that.getList();
} else {
wx.showToast({ title: data.msg, icon: "none", duration: 2000 }); //隐藏消息提示框
}
setTimeout(() => {
that.setData({
isBtnLoading: false,
});
wx.hideLoading();
}, 2000);
})
// wx.request({
// url: app.globalData.ip + "/yishoudan/factory/bill/record/confirm",
// data: ids,
// header: app.globalData.headers,
// method: "post",
// success: function ({ data }) {
// console.log(data);
// if (data.status == 200) {
// wx.showToast({ title: "确认成功", icon: "success", duration: 2000 }); //隐藏消息提示框
// that.data.searchParam.status = 10;
// that.setData({
// dialog: false,
// recordList: [],
// searchParam: that.data.searchParam,
// currIndex: 1,
// selectTotalSalary: 0,
// isChecked: false,
// });
// that.getList();
// } else {
// wx.showToast({ title: data.msg, icon: "none", duration: 2000 }); //隐藏消息提示框
// }
// setTimeout(() => {
// that.setData({
// isBtnLoading: false,
// });
// wx.hideLoading();
// }, 2000);
// },
// });
}
that.setData({
isBtnLoading: true,
});
},
radioChange (e) {
console.log(e);
},
formatNum (num) {
var result = parseFloat(num);
if (isNaN(result)) {
alert("传递参数错误,请检查!");
return false;
}
result = Math.round(num * 100) / 100;
return result;
},
stopEvent (e) {
// 点击切换单个选择状态以及总价的加减
let result = this.data.recordList.find((item) => {
return item.id == e.target.dataset.id;
});
let index = this.data.recordList.indexOf(result);
if (!this.data.recordList[index].checked) {
this.data.selectTotalSalary = this.formatNum(this.data.selectTotalSalary + this.data.recordList[index].salary);
} else {
this.data.selectTotalSalary = this.formatNum(this.data.selectTotalSalary - this.data.recordList[index].salary);
}
this.data.recordList[index].checked = !this.data.recordList[index].checked;
// 单个选择状态反选
let isTotalChecked = true;
try {
this.data.recordList.forEach((item) => {
console.log(item.checked);
if (item.checked == false || item.checked == undefined) {
isTotalChecked = false;
throw Error();
}
});
} catch (error) { }
this.setData({
recordList: this.data.recordList,
selectTotalSalary: this.data.selectTotalSalary,
isChecked: isTotalChecked,
});
// e.stopPropagation();
},
totalChange () {
this.setData({
isChecked: !this.data.isChecked,
});
this.data.recordList.forEach((item) => {
if (item.status == 10) {
item.checked = this.data.isChecked;
}
});
if (this.data.isChecked) {
this.data.selectTotalSalary = this.data.factoryBill.totalSalary;
} else {
this.data.selectTotalSalary = 0;
}
this.setData({
recordList: this.data.recordList,
selectTotalSalary: this.data.selectTotalSalary,
});
},
getList () {
let that = this;
this.data.searchParam.keys = this.data.inputVal == "搜索姓名" ? "" : this.data.inputVal;
// wx.showLoading({
// title: "加载中...",
// });
customRequest("/yishoudan/factory/bill/record/list",{header:'headers', method: 'POST', data: that.data.searchParam}).then((res)=>{
if (res.data.status == 200) {
if (res.data.data.pageBean.recordList != null && res.data.data.pageBean.recordList.length < 20) {
var recordListTemp = res.data.data.pageBean.recordList;
that.data.recordList = that.data.recordList.concat(recordListTemp);
that.setData({
hasMoreData: false,
});
} else {
var recordListTemp = res.data.data.pageBean.recordList;
that.data.recordList = that.data.recordList.concat(recordListTemp);
that.setData({
hasMoreData: true,
});
}
that.data.recordList.forEach((item) => {
if (item.finished && item.workDays) {
item.workInfo = item.finished + " | " + "出勤" + item.workDays;
} else if (item.finished || item.workDays) {
item.workInfo = item.finished + (item.workDays ? "出勤" + item.workDays : "");
} else {
item.workInfo = "-";
}
if (item.salary != undefined) {
item.salaryStr = Math.floor(item.salary);
// console.log(item.salaryStr);
// item.salaryDot = item.salary.toFixed(2).slice(-2);
item.salaryDot = item.salary.toFixed(2);
// console.log(item.salaryDot);
if (item.salaryDot == "00") {
item.isInt = true;
} else {
item.isInt = false;
}
}
switch (item.status) {
case 10:
item.statusStr = "待核对";
break;
case 20:
item.statusStr = "已核对";
break;
case 30:
item.statusStr = "已结算";
break;
}
});
if (res.data.data.factoryBill.totalSalary != undefined) {
res.data.data.factoryBill.totalSalaryStr = Math.floor(res.data.data.factoryBill.totalSalary);
console.log(res.data.data.factoryBill.totalSalaryStr);
res.data.data.factoryBill.totalSalaryDot = res.data.data.factoryBill.totalSalary.toFixed(2).slice(-2);
if (res.data.data.factoryBill.totalSalaryDot == "00") {
res.data.data.factoryBill.isInt = true;
} else {
res.data.data.factoryBill.isInt = false;
}
}
if (res.data.data.factoryBill.totalServicePrice != undefined) {
res.data.data.factoryBill.totalServicePriceStr = Math.floor(res.data.data.factoryBill.totalServicePrice);
res.data.data.factoryBill.totalServicePriceDot = res.data.data.factoryBill.totalServicePrice.toFixed(2).slice(-2);
if (res.data.data.factoryBill.totalServicePriceDot == "00") {
res.data.data.factoryBill.isInt = true;
} else {
res.data.data.factoryBill.isInt = false;
}
}
that.setData({
recordList: that.data.recordList,
factoryBill: res.data.data.factoryBill,
isTrigger: false,
});
console.log(that.data.factoryBill);
console.log(that.data.recordList);
}
wx.hideLoading();
that.setData({
isLoading: false,
});
})
// wx.request({
// url: app.globalData.ip + "/yishoudan/factory/bill/record/list",
// data: that.data.searchParam,
// header: app.globalData.headers,
// method: "POST",
// success: function (res) {
// if (res.data.status == 200) {
// if (res.data.data.pageBean.recordList != null && res.data.data.pageBean.recordList.length < 20) {
// var recordListTemp = res.data.data.pageBean.recordList;
// that.data.recordList = that.data.recordList.concat(recordListTemp);
// that.setData({
// hasMoreData: false,
// });
// } else {
// var recordListTemp = res.data.data.pageBean.recordList;
// that.data.recordList = that.data.recordList.concat(recordListTemp);
// that.setData({
// hasMoreData: true,
// });
// }
// that.data.recordList.forEach((item) => {
// if (item.finished && item.workDays) {
// item.workInfo = item.finished + " | " + "出勤" + item.workDays;
// } else if (item.finished || item.workDays) {
// item.workInfo = item.finished + (item.workDays ? "出勤" + item.workDays : "");
// } else {
// item.workInfo = "-";
// }
// if (item.salary != undefined) {
// item.salaryStr = Math.floor(item.salary);
// // console.log(item.salaryStr);
// // item.salaryDot = item.salary.toFixed(2).slice(-2);
// item.salaryDot = item.salary.toFixed(2);
// // console.log(item.salaryDot);
// if (item.salaryDot == "00") {
// item.isInt = true;
// } else {
// item.isInt = false;
// }
// }
// switch (item.status) {
// case 10:
// item.statusStr = "待核对";
// break;
// case 20:
// item.statusStr = "已核对";
// break;
// case 30:
// item.statusStr = "已结算";
// break;
// }
// });
// if (res.data.data.factoryBill.totalSalary != undefined) {
// res.data.data.factoryBill.totalSalaryStr = Math.floor(res.data.data.factoryBill.totalSalary);
// console.log(res.data.data.factoryBill.totalSalaryStr);
// res.data.data.factoryBill.totalSalaryDot = res.data.data.factoryBill.totalSalary.toFixed(2).slice(-2);
// if (res.data.data.factoryBill.totalSalaryDot == "00") {
// res.data.data.factoryBill.isInt = true;
// } else {
// res.data.data.factoryBill.isInt = false;
// }
// }
// if (res.data.data.factoryBill.totalServicePrice != undefined) {
// res.data.data.factoryBill.totalServicePriceStr = Math.floor(res.data.data.factoryBill.totalServicePrice);
// res.data.data.factoryBill.totalServicePriceDot = res.data.data.factoryBill.totalServicePrice.toFixed(2).slice(-2);
// if (res.data.data.factoryBill.totalServicePriceDot == "00") {
// res.data.data.factoryBill.isInt = true;
// } else {
// res.data.data.factoryBill.isInt = false;
// }
// }
// that.setData({
// recordList: that.data.recordList,
// factoryBill: res.data.data.factoryBill,
// isTrigger: false,
// });
// console.log(that.data.factoryBill);
// console.log(that.data.recordList);
// }
// wx.hideLoading();
// that.setData({
// isLoading: false,
// });
// },
// });
},
copyText () {
console.log(this.data.factoryBill.remark);
wx.setClipboardData({
//复制文本
data: this.data.factoryBill.title + "核对,如有疑问请及时联系," + (this.data.factoryBill.remark ? this.data.factoryBill.remark + "" : "") + "感谢支持!",
success: function (res) {
wx.getClipboardData({
//获取复制文本
success: function (res) {
console.log(res);
wx.showToast({
title: "复制成功",
icon: "none", //是否需要icon
mask: "ture", //是否设置点击蒙版,防止点击穿透
});
},
});
},
});
},
});