// 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:'',
|
|
siteOrder:{}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
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
|
|
let data={
|
|
q:JSON.stringify({
|
|
sid:leases.siteId
|
|
})
|
|
}
|
|
WXAPI.getItemsPay(data).then(res2=>{
|
|
if(res2.success){
|
|
this.setData({
|
|
siteOrder:res2.data.list[0]
|
|
})
|
|
}else{
|
|
wx.showToast({
|
|
title: res2.message,
|
|
duration:200,
|
|
icon:'none'
|
|
})
|
|
}
|
|
})
|
|
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 () {
|
|
|
|
}
|
|
})
|