You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

399 lines
9.2 KiB

// pages/rentManagement/rentManagement.js
const app = getApp()
const WXAPI = require('../../utils/request')
var util = require('../../utils/util');
const moment = require('../../utils/moment')
function getChild(nodes, item, arr) {
for (let el of nodes) {
if (el.id === item) {
arr.push(el.id);
if (el.children) {
childNodesDeep(el.children, arr);
}
} else if (el.children) {
getChild(el.children, item, arr);
}
}
return arr;
}
function childNodesDeep(nodes, arr) {
if (nodes)
nodes.forEach((ele) => {
arr.push(ele.id);
if (ele.children) {
childNodesDeep(ele.children, arr);
}
});
}
Page({
/**
* 页面的初始数据
*/
data: {
showOne:false,
list:[],
pageNum:1,
pageStatus:true,
searchValue:'',
search:{
name:''
},
show:false,
radio:'2',
leases:{},
selectKey:'',
selectRoomName:'',
pid:''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.getLeasesList()
this.getTree()
},
confirmMethods(event) {
this.confimPay()
},
selectRoomMethods(){
this.setData({
showOne:true
})
},
// 清空选择的房源
clearSelect(){
this.setData({
pid:'',
selectKey:'',
selectRoomName:''
})
},
onClose() {
this.setData({ show: false });
},
onCloseOne() {
this.setData({ showOne: false });
},
getTree() {
var _this = this
WXAPI.getTree('').then(res => {
var list=res.data.sort((pre, cur)=>pre.id - cur.id)
var newArr = util.uniqueArray(list, "id");
var setting = {
data: {
simpleData: {
idKey: 'id',
pIdKey: 'pid'
},
key: {
children: 'children'
}
}
}
var dataList = this.transformTozTreeFormat(setting, newArr)
this.setData({
dataList: dataList
})
})
},
transformTozTreeFormat(setting, sNodes) {
var i, l,
key = setting.data.simpleData.idKey,
parentKey = setting.data.simpleData.pIdKey,
childKey = setting.data.key.children
if (!key || key == "" || !sNodes) return [];
var r = [];
var tmpMap = [];
for (i = 0, l = sNodes.length; i < l; i++) {
tmpMap[sNodes[i][key]] = sNodes[i];
}
for (i = 0, l = sNodes.length; i < l; i++) {
if (tmpMap[sNodes[i][parentKey]] && sNodes[i][key] != sNodes[i][parentKey]) {
if (!tmpMap[sNodes[i][parentKey]][childKey])
tmpMap[sNodes[i][parentKey]][childKey] = [];
tmpMap[sNodes[i][parentKey]][childKey].push(sNodes[i]);
} else {
r.push(sNodes[i]);
}
}
return r;
},
handleSelect(e) {
wx.showToast({
title: `已选择${e.detail.item.name}`,
icon: 'none',
duration: 1000
})
let item = getChild(this.data.dataList,e.detail.item.id,[])
this.setData({
selectKey: item,
selectRoomName: e.detail.item.name,
pid:e.detail.item.id,
showOne: false
})
this.getLeasesList()
},
validObject(obj) {
let objectData = new Object()
for (let i in obj) {
if (obj[i] != '' && obj[i]) {
objectData[i] = obj[i]
}
}
return objectData;
},
// 获取对应租约
getLeasesList(){
let siteIds = this.data.selectKey
let QData = {}
if(this.data.selectKey){
QData = this.validObject({
name:this.data.search.name,
siteIds:JSON.stringify(siteIds)
})
}else{
QData = this.validObject({
name:this.data.search.name
})
}
let data={
orderBy: "create_time desc",
pageNum: this.data.pageNum,
pageSize: 10,
q:JSON.stringify(QData)
}
WXAPI.getLeasesList(data).then(res=>{
if(res.success){
if(res.data.list.length<10){
this.setData({
pageStatus:false
})
}else{
this.setData({
pageStatus:true
})
}
res.data.list.map(li=>{
li.signingTime = moment(li.signingTime).format('YYYY-MM-DD')
li.contractTime = moment(li.contractTime).format('YYYY-MM-DD')
li.expand = JSON.parse(li.expand)
})
let list = []
if(this.data.pageNum === 1){
list = res.data.list
}else{
list = this.data.list.concat(res.data.list)
}
wx.showToast({
title: `已为您搜索到${res.data.total}条记录`,
duration:2000,
icon:'none'
})
this.setData({
list
})
}else{
wx.showToast({
title: '获取合约失败',
mask:true,
duration:'2000',
icon:'none'
})
}
})
},
onChange(event) {
let search={
name:event.detail
}
this.setData({
search: search
})
},
onClick(e) {
this.setData({
pageNum:1
})
this.getLeasesList()
},
onChangeRadio(event){
this.setData({
radio: event.detail,
});
},
rentMethods(e){
let leases = e.currentTarget.dataset.item
// wx.setStorageSync('leases', leases)
// wx.navigateTo({
// url: '/pages/paymentInterface/paymentInterface?type=1',
// data:{
// }
// })
this.setData({
show:true,
leases
})
},
confimPay(){
let leases =this.data.leases
let userInfo = wx.getStorageSync('userInfo')
var data = {
description: "交租",
productName: "交租",
total: parseInt(leases.monthRent)*100,//parseInt(this.data.leases.expand.rent)*100,
userId: leases.cardId,
cardId:leases.cardId,
openid:wx.getStorageSync('openid'),
appid:'wx20de9fe5943934a1',
uid:userInfo.id,
eid:userInfo.enterpriseId,
orderType:1,
payType:this.data.radio,
expand:JSON.stringify({
phone:leases.phone,
nickname:leases.name
})
}
WXAPI.miniPrepayOrder(data).then(res=>{
// if(this.data.radio == '0'){
// wx.requestPayment({
// timeStamp: res.data.data.timeStamp,
// appid: res.data.data.appId,
// nonceStr: res.data.data.nonceStr,
// package: res.data.data.package,
// signType: res.data.data.signType,
// totalFee: parseInt(leases.monthRent)*100,
// paySign: res.data.data.paySign,
// success (res1) {
// wx.showToast({
// title: "支付成功",
// duration: 2000,
// icon: 'success'
// })
// let dataOne={
// code: "wx/updatePrepayStatus",
// signature:wx.getStorageSync('signature'),
// data: {
// orderNo: res.data.data.orderNo,
// status:0
// }
// }
// WXAPI.sendCommandOne(dataOne).then(res2=>{
// })
// },
// fail (res1) {
// wx.showToast({
// title: "支付失败",
// duration: 2000,
// icon: 'none'
// })
// let dataOne={}
// if(res1.errMsg == 'requestPayment:fail cancel'){
// dataOne={
// code: "wx/updatePrepayStatus",
// signature:wx.getStorageSync('signature'),
// data: {
// orderNo: res.data.data.orderNo,
// status:8
// }
// }
// }else{
// dataOne={
// code: "wx/updatePrepayStatus",
// signature:wx.getStorageSync('signature'),
// data: {
// orderNo: res.data.data.orderNo,
// status:6
// }
// }
// }
// WXAPI.sendCommandOne(dataOne).then(res2=>{
// })
// }
// })
// }else{
let dataOne={
code: "wx/updatePrepayStatus",
data: {
orderNo: res.data.data.orderNo,
status:0
}
}
WXAPI.sendCommand(dataOne).then(res2=>{
if(res2.success){
wx.showToast({
title: "支付成功",
duration: 2000,
icon: 'success'
})
}else{
wx.showToast({
title: res2.message,
duration: 2000,
icon: 'error'
})
}
})
// }
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
if(this.data.pageStatus){
let page = this.data.pageNum+1
this.setData({
pageNum:page
})
this.getLeasesList()
}
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})