Commit 4ca15c3d authored by xuwenhui's avatar xuwenhui

Initial commit

parents
Pipeline #1003 failed with stages
### NetBeans ###
unpackage/
.idea
.hbuilderx
\ No newline at end of file
<script>
//app.js
import context from './lib/java110/Java110Context.js'
const loginFactory = context.factory.login;
const userFactory = context.factory.user;
import {reciveMessage} from './api/webView/webViewApi.js';
import {requestNoAuth} from './lib/java110/java110Request.js';
import url from './constant/url.js'
export default {
// 小程序启动生命周期
onLaunch: function() {
let that = this; // 检查登录状态
//loginFactory.checkLoginStatus(); // 获取用户地理位置
userFactory.getUserLocation();
// #ifdef H5
window.addEventListener("message", reciveMessage);
// #endif
uni.onTabBarMidButtonTap(()=>{
uni.navigateTo({
url:"/pages/machine/openDoorByQrCode",
animationType:'slide-in-bottom'
})
})
requestNoAuth({
url: url.listSystemInfo,
method: "GET",
data: {
page:1,
row:1
},
success: function(res) {
console.log(res.data);
if(res.data.data && res.data.data.length >0){
uni.setStorageSync('java110SystemConfig',res.data.data[0])
}
//reslove(res);
},
fail: function(e) {}
});
},
// app全局数据
globalData: {
userInfo: null
},
methods: {}
};
</script>
<style>
@import "./app.css";
/* #ifdef H5 */
uni-page-head {
display: none;
}
/* #endif */
</style>
This diff is collapsed.
### HC智慧家园小程序
hc智慧家园小程序 是 HC小区开源项目的一个分支项目,主要给业主使用,其中包括缴物业费,缴停车费,投诉建议,家庭成员维护,房屋保修
房屋出租,公告查看,小区圈等功能。
### 官网
[http://www.homecommunity.cn](http://www.homecommunity.cn)
### 演示环境
1、 HC小区物业系统:
[http://www.homecommunity.cn](http://www.homecommunity.cn)
物业 账号/密码:wuxw/admin
代理商 账号/密码:dails/admin
运维团队 账号/密码:admin/admin
开发团队 账号/密码:dev/(由于开发者权限较大,删除数据会影响稳定性,查看具体功能,可以单独部署查看)
2、HC智慧家园
暂未上线,请下载代码后用微信开发者工具查看
### 分支说明
分支管理说明,test为最新代码未测试代码(主要为了防止本地代码遗失),master 为最新测试过代码(待产品化),product 为产品化代码
### 系统功能(function)
![image](doc/readme/hc_function.png)
主要系统功能请查看
[http://www.homecommunity.cn/document/#/func/funcation](http://www.homecommunity.cn/document/#/func/funcation)
### 相关文档
[http://www.homecommunity.cn/document/#/](http://www.homecommunity.cn/document/#/)
### 二次开发视频
[https://space.bilibili.com/403702784](https://space.bilibili.com/403702784)
### 运行效果
![image](doc/readme/index.png)
![image](doc/readme/circle.png)
![image](doc/readme/my.png)
### 加入我们
加入HC小区交流群随时了解项目进度,和java110开发者零距离沟通 qq群号 827669685
/**
* 运营团队信息查询
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 查询 运营团队
*/
export function getAdmin(_objData){
return new Promise((resolve, reject) => {
request({
url: url.listStore,
method: "GET",
data: _objData,
success: function(res) {
let data = res.data;
if (data.total > 0) {
resolve(data.stores[0]);
} else {
reject(data.msg);
}
},
fail: function(res) {
reject(res);
}
});
})
}
\ No newline at end of file
/**
* 钥匙申请接口类
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 查询钥匙
* @param {Object} _objData 对象
*/
export function listApplicationKeys(_objData){
return new Promise((resolve, reject) => {
request({
url: url.listApplicationKeys,
method: "GET",
data: _objData, //动态数据
success: function(res) {
if (res.statusCode == 200) {
//成功情况下跳转
let _applicationKeys = res.data.applicationKeys;
_that.applicationKeys = _applicationKeys;
resolve(_applicationKeys);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 申请钥匙
* @param {Object} _obj 申请钥匙对象内容
*/
export function applyApplicationKey(_obj){
return new Promise((resolve, reject) => {
request({
url: url.applyApplicationKey,
method: "POST",
data: _objData, //动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res);
return;
}
reject(res);
},
fail: function(e) {
reject(e);
}
});
})
}
export function listOwnerMachines(_objData){
return new Promise((resolve, reject) => {
request({
url: url.listOwnerMachines,
method: "GET",
data: _objData, //动态数据
success: function(res) {
if (res.statusCode == 200) {
let _machines = res.data.machines;
resolve(_machines);
return;
}
reject(res);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 远程开门
* @param {Object} _obj 申请钥匙对象内容
*/
export function openDoor(_obj){
return new Promise((resolve, reject) => {
request({
url: url.openDoor,
method: "POST",
data: _obj, //动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res);
return;
}
reject(res);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 远程开门
* @param {Object} _obj 申请钥匙对象内容
*/
export function getQrCode(_obj){
return new Promise((resolve, reject) => {
request({
url: url.getQrCode,
method: "POST",
data: _obj, //动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res);
return;
}
reject(res);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 申请房信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
/**
* 查询优惠类型
*/
export function queryApplyRoomDiscountType(_data) {
return new Promise((resolve, reject) => {
request({
url: url.queryApplyRoomDiscountType,
method: "GET",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data.data);
} else {
reject(data.msg);
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 提交申请
* @param {Object} _data 查询 入参
*/
export function saveApplyRoomDiscount(_data) {
return new Promise((resolve, reject) => {
request({
url: url.saveApplyRoomDiscount,
method: "POST",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve();
} else {
uni.showToast({
title: data.msg
})
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 查询优惠类型
*/
export function queryApplyRoomDiscount(_data) {
return new Promise((resolve, reject) => {
request({
url: url.queryApplyRoomDiscount,
method: "GET",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data);
} else {
uni.showToast({
title: data.msg
})
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 查询优惠申请房屋跟踪记录
* @param {Object} _data 请求报文
*/
export function listApplyRoomDiscountRecord(_data){
return new Promise((resolve, reject) => {
request({
url: url.listApplyRoomDiscountRecord,
method: "GET",
data: _data,
success: function(res) {
if(res.data.code == 0){
resolve(res.data);
}else{
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
},
fail: function(res) {
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
});
})
}
/**
* 查询优惠申请房屋跟踪记录详情
* @param {Object} _data 请求报文
*/
export function listApplyRoomDiscountRecordDetail(_data){
return new Promise((resolve, reject) => {
request({
url: url.listApplyRoomDiscountRecordDetail,
method: "GET",
data: _data,
success: function(res) {
if(res.data.code == 0){
resolve(res.data.data);
}else{
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
},
fail: function(res) {
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
});
})
}
export function listRoomFee(_data) {
return new Promise((resolve, reject) => {
request({
url: url.queryFeeByOwner,
method: "GET",
data: _data,
success: function(res) {
resolve(res.data);
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 运营团队信息查询
*/
import {
request,
requestNoAuth
} from '../../lib/java110/java110Request.js'
import url from '../../constant/url.js'
import context from '../../lib/java110/Java110Context.js';
import mapping from '../../constant/MappingConstant.js';
/** 获取两个时间之间的 间隔时间
* @param { Date | number | string } startTime 开始时间 字符串格式(6:00 06:00 18:00, 18:00:00) 必须是24小时格式
* @param { Date | number | string } endTime 结束时间 字符串格式(6:00 06:00 18:00, 18:00:00) 必须是24小时格式
*/
export function getBetweenTime(startTime, endTime) {
// debugger
// 校验时间格式
if (typeof startTime === 'string' && typeof endTime === 'string') {
const reg = /^(0?[1-9]|([1-2][0-4])):(([0-5][0-9])(:([0-9][0-9]))?)$/;
if (!reg.test(startTime)) throw `开始时间:${startTime} 时间格式错误`;
if (!reg.test(endTime)) throw `结束时间:${endTime} 时间格式错误`;
} else throw `${startTime} 或者 ${endTime} 时间格式错误`;
let start = +startTime.split(':')[0];
let end = +endTime.split(':')[0];
const resultTime = [];
// 当 开始时间小于结束时间的时候进入循环
while (start <= end) {
// 拼接时间格式 自动给 小于10的时间前面补0
let setTime = start >= 10 ? `${start}:00` : `0${start}:00`;
resultTime.push(setTime);
// 重新设置开始时间
start += 1;
}
return resultTime;
}
/**
* 查询 场地 2022/10/09
*/
export function getBookingList(_objData) {
return new Promise((resolve, reject) => {
// debugger
requestNoAuth({
url: url.querySpacePerson,
method: "GET",
data: _objData,
success: function(res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 查询 场地 2022/10/09
*/
export function getChangdi(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.queryChangDi,
method: "GET",
data: _objData,
success: function(res) {
// debugger
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 查询场馆列表 2022/10/09
**/
export function getChangGuan(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryChangGuan,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
// debugger
if (res.statusCode == 200) {
let _data = res.data;
resolve(_data);
return;
}
},
fail: function(e) {
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
});
}
});
})
}
/**
* 房屋信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
import {
getCurOwner
} from '../owner/ownerApi.js'
/**
* 查询订场记录
*/
export function getBooks(_objData) {
return new Promise((resolve, reject) => {
getCurOwner()
.then(function(_owner) {
let d = {
page: "1",
row: "1000",
communityId: _owner.communityId,
}
if (_objData ==0){
// debugger
d['personTel']=_owner.link;
}
// debugger
request({
url: url.querySpacePerson,
method: "GET",
data: d,
success: function(res) {
// debugger
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
res.data['owner'] = _owner;
resolve(res.data);
return;
} else {
reject("查询订场信息失败");
}
},
fail: function(res) {
reject(res);
}
});
});
});
};
/**
* 查询房屋租聘配置
*/
export function queryRentingConfig() {
return new Promise((resolve, reject) => {
request({
url: url.queryRentingConfig,
method: "GET",
data: {
page: 1,
row: 10
},
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data.data);
} else {
reject(data.msg);
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 房屋租赁
* @param {Object} obj 房屋租赁数据
* "rentingName": this.rentingName,
"roomId": this.roomId,
"communityId": this.communityId,
"price": this.price,
"paymentType": this.paymentType,
"rentingConfigId": this.rentingConfigId,
"photos": [],
"rentingDesc": this.rentingDesc,
"ownerTel": this.userTel,
"ownerName":this.userName,
"state":"0"
*/
export function hireRoom(obj) {
return new Promise((resolve, reject) => {
let msg = "";
if (obj.rentingName == "") {
msg = "出租标题不能为空";
} else if (obj.roomId == "") {
msg = "请选择房屋";
} else if (obj.communityId == "") {
msg = "未找到小区信息";
} else if (obj.price == "") {
msg = "请填写租金(元)";
} else if (obj.paymentType == "") {
msg = "请选择付费类型";
} else if (obj.rentingConfigId == "") {
msg = "请选择出租方式";
} else if (obj.rentingDesc == '') {
msg = "请填写出租说明";
} else if (obj.photos.length < 1) {
msg = "请选择图片";
} else if (obj.checkIn == '') {
msg = "请选择入住日期";
}
if (msg != "") {
reject(msg);
} else {
request({
url: url.saveRentingPool,
method: "POST",
data: obj, //动态数据
success: function(res) {
let _json = res.data;
if (_json.code == 0) {
resolve(_json);
return;
}
reject(_json.msg);
},
fail: function(e) {
reject('服务异常');
}
});
}
})
}
/**
* 查询房源信息
* @param {Object} _data 查询 入参
*/
export function getRentingPool(_data) {
return new Promise((resolve, reject) => {
request({
url: url.queryRentingPool,
method: "GET",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data.data);
} else {
reject(data.msg);
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 租房预约
* @param {Object} obj 租房预约数据
* {"appointmentId":"","tenantName":"张默默","tenantSex":"0","tenantTel":"18909711234",
* "appointmentTime":"2020-09-30 01:05:00","appointmentRoomId":"752020080500600202","remark":""}
*/
export function appointmentRoom(obj) {
return new Promise((resolve, reject) => {
let msg = "";
if (obj.tenantName == "") {
msg = "名称不能为空";
} else if (obj.tenantSex == "") {
msg = "性别不能空";
} else if (obj.tenantTel == "") {
msg = "手机号不能为空";
} else if (obj.appointmentTime == "") {
msg = "请填写预约时间";
} else if (obj.appointmentRoomId == "") {
msg = "预约房屋为空";
}
if (msg != "") {
reject(msg);
} else {
request({
url: url.saveRentingAppointment,
method: "POST",
data: obj, //动态数据
success: function(res) {
let _json = res.data;
if (_json.code == 0) {
resolve(_json);
return;
}
reject(_json.msg);
},
fail: function(e) {
reject('服务异常');
}
});
}
})
}
/**
* 车辆信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request,requestNoAuth
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 查询业主车辆
*/
export function getCars(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.queryOwnerCars,
method: "GET",
data:_objData,
success: function(res) {
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
let _parkingSpaces = res.data.data;
if (_parkingSpaces.length == 0) {
reject("业主没有房屋信息");
return;
}
resolve(_parkingSpaces);
} else {
reject("查询车辆失败");
}
},
fail: function(res) {
reject(res);
}
});
});
};
export function queryWaitPayFeeTempCar(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.queryWaitPayFeeTempCar,
method: "GET",
data:_objData,
success: function(res) {
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
resolve(res.data);
} else {
reject("查询车辆失败");
}
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 保存业主车辆
*/
export function customCarInOut(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.customCarInOut,
method: "POST",
data:_objData,
success: function(res) {
//将业主信息和房屋信息一起返回
resolve(res);
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 发送验证码
*/
import {
request,
requestNoAuth,
uploadFile
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
function timer(_that) {
let promise = new Promise((resolve, reject) => {
let setTimer = setInterval(
() => {
let second = this.second - 1;
_that.second = second;
_that.btnValue = second + '';
_that.btnDisabled = true;
if (_that.second <= 0) {
_that.second = 60;
_that.btnValue = '获取验证码';
_that.btnDisabled = false;
resolve(setTimer)
}
}, 1000)
})
promise.then((setTimer) => {
clearInterval(setTimer)
})
}
export function sendMessageCode(_objData,_that) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.userSendSms,
method: "POST",
data: _objData, //动态数据
success: function(res) {
//成功情况下跳转
if (res.statusCode == 200) {
uni.showToast({
title: '验证码下发成功',
icon: 'none',
duration: 2000
});
timer(_that);
resolve();
return;
}
uni.hideLoading();
uni.showToast({
title: res.data,
icon: 'none',
duration: 2000
});
},
fail: function(e) {
uni.hideLoading();
uni.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
});
})
}
// 异步上传图片
export function uploadImageAsync(_objData,_that) {
return new Promise( (resolve, reject) => {
request({
url: url.uploadImage,
data: _objData,
method: "POST",
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let imgInfo = res.data;
resolve(imgInfo);
}
},
fail: function(e) {
uni.hideLoading();
uni.showToast({
title: "服务器异常了",
icon: 'none'
})
}
});
})
}
/**
* 刷新用户
* @param {Object} _objData
*/
export function getRegisterProtocol(){
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.listRegisterProtocol,
method: "GET",
data: {
page:1,
row:1
}, //动态数据
success: function(res) {
if (res.data.code == 0) {
resolve(res.data.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
import {
requestNoAuth,request
} from '../../lib/java110/java110Request.js';
import
url
from '../../constant/url.js'
import {
hasLogin
} from '../../lib/java110/page/Page.js'
import mapping from '../../constant/MappingConstant.js'
import {getCurOwner} from '../owner/ownerApi.js'
import conf from '../../conf/config.js'
/**
* @param {Object} dataObj
* page: 1,
row: 15,
cityCode: this.areaCode,
state: '1100',
name: this.searchValue
*/
export function getCommunitys(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listCommunitys,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _communtiys = res.data.communitys;
resolve(_communtiys);
return ;
}
},
fail: function(e) {
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
});
}
});
})
}
export function getMallCommunityId(){
let _currentCommunity = uni.getStorageSync(mapping.CURRENT_MALL_COMMUNITY_INFO)
if(_currentCommunity){
return _currentCommunity.communityId;
}
return getCommunityId();
}
export function getMallCommunityName(){
let _currentCommunity = uni.getStorageSync(mapping.CURRENT_MALL_COMMUNITY_INFO)
if(_currentCommunity){
return _currentCommunity.name;
}
return getCommunityName();
}
export function getCommunityId(){
let _currentCommunity = uni.getStorageSync("currentCommunityInfo")
if(_currentCommunity){
return _currentCommunity.communityId;
}
return conf.DEFAULT_COMMUNITY_ID;
}
export function getCommunityName(){
let _currentCommunity = uni.getStorageSync("currentCommunityInfo")
if(_currentCommunity){
return _currentCommunity.communityName;
}
return conf.DEFAULT_COMMUNITY_NAME;
}
/**
* 查询当前小区
*
* 当还没有小区时返回 演示小区
*/
export function getCurCommunity() {
return new Promise((resolve, reject) => {
if (hasLogin()) { // 判断是否已经登录
//已经登录 去后台查询
getCurOwner()
.then(function(_ownerInfo) {
let _currentCommunityInfo = {
communityId: _ownerInfo.communityId,
communityName: _ownerInfo.communityName,
tel:_ownerInfo.sCommunityTel
};
resolve(_currentCommunityInfo);
},function() {
let _currentCommunityInfo = {
communityId: mapping.HC_TEST_COMMUNITY_ID,
communityName: mapping.HC_TEST_COMMUNITY_NAME,
tel:''
};
resolve(_currentCommunityInfo);
})
} else {
//没有登录直接写演示小区信息
getCommunitys({
communityId:mapping.HC_TEST_COMMUNITY_ID,
page:1,
row:1
}).then(function(_communitys){
let _currentCommunityInfo = {
communityId: _communitys[0].communityId,
communityName: _communitys[0].name,
tel:_communitys[0].tel
};
resolve(_currentCommunityInfo);
})
}
})
}
/**
* 将小区信息 刷入 _obj对象
* @param {Object} _obj 刷入 小区信息对象
*/
export function recoveryCommunityInfo(_obj){
return new Promise((resolve,reject) => {
getCurCommunity()
.then((_communityInfo)=>{
if(_obj.hasOwnProperty("communityId")){
_obj.communityId = _communityInfo.communityId;
}
if(_obj.hasOwnProperty("communityName")){
_obj.communityName = _communityInfo.communityName;
}
resolve(_communityInfo);
})
})
}
/**
* 查询业主小区
* @param {Object} dataObj 对象
*/
export function getOwnerCommunitys(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.ownerCommunity,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _communitys = res.data.data;
resolve(_communitys);
}
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 查询停车场
* @param {Object} dataObj 对象
*/
export function listParkingAreas(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listParkingAreas,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _parkingAreas = res.data.parkingAreas;
resolve(_parkingAreas);
}
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 查询小区公示
* @param {Object} dataObj 对象
*/
export function getCommunityPublicity(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listCommunityPublicity,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return;
}
},
fail: function(e) {
reject(e);
}
});
})
}
import {
requestNoAuth,request
} from '../../lib/java110/java110Request.js';
import
url
from '../../constant/url.js'
export function getCatalogs(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listReserveCatalog,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _communtiys = res.data.data;
resolve(_communtiys);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function getCatalogGoodss(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listReserveGoods,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _communtiys = res.data.data;
resolve(_communtiys);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function getReserveParams(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listReserveParams,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _communtiys = res.data.data;
resolve(_communtiys);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function getReserveGoodsOrderTime(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listReserveGoodsOrderTime,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _communtiys = res.data.data;
resolve(_communtiys);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
\ No newline at end of file
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
import {
getCurOwner
} from '../owner/ownerApi.js'
/**
* 查询业主合同
*
*/
export function getContracts() {
return new Promise((resolve, reject) => {
getCurOwner()
.then(function(_owner) {
request({
url: url.queryContract,
method: "GET",
data: {
communityId: _owner.communityId,
objId: _owner.ownerId,
page:1,
row:50
},
success: function(res) {
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
res.data['owner'] = _owner;
if (res.data.data.length == 0) {
reject("业主没有合同信息");
return;
}
resolve(res.data);
} else {
reject("查询合同失败");
}
},
fail: function(res) {
reject(res);
}
});
});
});
};
/**
* 查询业主合同
* objId: _owner.ownerId,
*/
export function getCurContract(_param) {
_param.page=1;
_param.row=1;
return new Promise((resolve, reject) => {
getCurOwner()
.then(function(_owner) {
_param.communityId = _owner.communityId;
request({
url: url.queryContract,
method: "GET",
data: _param,
success: function(res) {
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
if (res.data.data.length == 0) {
reject("业主没有合同信息");
return;
}
resolve(res.data.data[0]);
} else {
reject("查询合同失败");
}
},
fail: function(res) {
reject(res);
}
});
});
});
};
\ No newline at end of file
import {
requestNoAuth,request
} from '../../lib/java110/java110Request.js';
import
url
from '../../constant/url.js';
/**
* 查询业主小区
* @param {Object} dataObj 对象
*/
export function getExamineStaffs(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listExamineStaff,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _data = res.data.data;
resolve(_data);
}
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 物业人员考评
* @param {Object} dataObj
*/
export function saveExamineStaffValue(dataObj){
return new Promise((resolve, reject) => {
request({
url: url.saveExamineStaffValue,
method: "POST",
data: dataObj,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve();
} else {
uni.showToast({
title: data.msg
})
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 查询用工考核
* @param {Object} dataObj 对象
*/
export function getExamineStaffValue(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listExamineStaffValue,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return;
}
reject(res.data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
import context from '../../lib/java110/Java110Context.js';
import mapping from '../../constant/MappingConstant.js'
import url from '../../constant/url.js'
import conf from '../../conf/config.js'
export function payOweFee(_that) {
let _receivedAmount = _that.receivableAmount;
wx.showLoading({
title: '支付中'
});
let _tradeType = 'APP';
let _objData = {
cycles: _that.feeMonth,
communityId: _that.communityId,
ownerId: _that.ownerId,
feeName: '物业费',
receivedAmount: _receivedAmount,
tradeType: _tradeType,
appId: conf.appId,
storeId: _that.storeId
};
context.request({
url: url.toOweFeePay,
header: context.getHeaders(),
method: "POST",
data: _objData,
//动态数据
success: function(res) {
if (res.statusCode == 200 && res.data.code == '0') {
let data = res.data; //成功情况下跳转
let obj = {
appid: data.appId,
noncestr: data.nonceStr,
package: 'Sign=WXPay', // 固定值,以微信支付文档为主
partnerid: data.partnerid,
prepayid: data.prepayid,
timestamp: data.timeStamp,
sign: data.sign // 根据签名算法生成签名
}
// 第二种写法,传对象字符串
let orderInfo = JSON.stringify(obj)
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderInfo, //微信、支付宝订单数据
success: function(res) {
// uni.showToast({
// title: "支付成功",
// duration: 2000
// });
// uni.navigateBack({});
uni.navigateTo({
url:"/pages/successPage/successPage?msg=支付成功&objType=3003"
})
},
fail: function(err) {
console.log('fail:' + JSON.stringify(err));
}
});
wx.hideLoading();
return;
}
wx.hideLoading();
wx.showToast({
title: "缴费失败",
icon: 'none',
duration: 2000
});
},
fail: function(e) {
wx.hideLoading();
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
});
}
});
}
import context from '../../lib/java110/Java110Context.js';
import WexinPayFactory from '../../factory/WexinPayFactory.js'
import mapping from '../../constant/MappingConstant.js'
import url from '../../constant/url.js'
export function payOweFee(_that) {
let _receivedAmount = _that.receivableAmount;
wx.showLoading({
title: '支付中'
});
let _tradeType = 'JSAPI';
let _objData = {
business: "oweFee",
cycles: _that.feeMonth,
communityId: _that.communityId,
ownerId: _that.ownerId,
feeName: '物业费',
receivedAmount: _receivedAmount,
tradeType: _tradeType,
appId: uni.getStorageSync(mapping.W_APP_ID),
storeId: _that.storeId
};
context.request({
url: url.unifiedPayment,
header: context.getHeaders(),
method: "POST",
data: _objData,
//动态数据
success: function(res) {
if (res.statusCode == 200 && res.data.code == '0') {
let data = res.data; //成功情况下跳转
WexinPayFactory.wexinPay(data, function() {
// uni.showToast({
// title: "支付成功",
// duration: 2000
// });
// uni.navigateBack({});
uni.navigateTo({
url:"/pages/successPage/successPage?msg=支付成功&objType=3003"
})
});
wx.hideLoading();
return;
}
wx.hideLoading();
wx.showToast({
title: "缴费失败",
icon: 'none',
duration: 2000
});
},
fail: function(e) {
wx.hideLoading();
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
});
}
});
}
import context from '../../lib/java110/Java110Context.js';
import mapping from '../../constant/MappingConstant.js'
import url from '../../constant/url.js'
export function payOweFee(_that) {
let _receivedAmount = _that.receivableAmount;
wx.showLoading({
title: '支付中'
});
let _tradeType = 'JSAPI';
let accountInfo = uni.getAccountInfoSync();
let appId = accountInfo.miniProgram.appId;
let _objData = {
business: "oweFee",
cycles: _that.feeMonth,
communityId: _that.communityId,
ownerId: _that.ownerId,
feeName: '物业费',
receivedAmount: _receivedAmount,
tradeType: _tradeType,
appId: appId,
storeId: _that.storeId
};
context.request({
url: url.unifiedPayment,
header: context.getHeaders(),
method: "POST",
data: _objData,
//动态数据
success: function(res) {
if (res.statusCode == 200 && res.data.code == '0') {
let data = res.data; //成功情况下跳转
uni.requestPayment({
'timeStamp': data.timeStamp,
'nonceStr': data.nonceStr,
'package': data.package,
'signType': data.signType,
'paySign': data.sign,
'success': function(res) {
// uni.showToast({
// title: "支付成功",
// duration: 2000
// });
// uni.navigateBack({});
uni.navigateTo({
url:"/pages/successPage/successPage?msg=支付成功&objType=3003"
})
},
'fail': function(res) {
console.log('fail:' + JSON.stringify(res));
}
});
wx.hideLoading();
return;
}
wx.hideLoading();
wx.showToast({
title: "缴费失败",
icon: 'none',
duration: 2000
});
},
fail: function(e) {
wx.hideLoading();
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
});
}
});
}
This diff is collapsed.
import {
requestNoAuth,
request
} from '../../lib/java110/java110Request.js';
import url from '../../constant/url.js';
// #ifdef APP-PLUS
import {
getPayInfo
} from '../../factory/WexinAppPayFactory.js'
// #endif
// #ifdef H5
const WexinPayFactory = require('../../factory/WexinPayFactory.js');
// #endif
/**
* 查询 专区目录
* @param {Object} dataObj
*/
export function queryMainCategory(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryMainCategory,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _products = res.data.data;
resolve(_products);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
export function queryPhoneMainCategoryProduct(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryPhoneMainCategoryProduct,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询活动列表
*/
export function getRecommendProduct(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryMainCategoryAllGoods,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _products = res.data.data;
resolve(_products);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询拼团产品
*/
export function getGroupBuyProduct(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryGroupBuyProduct,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _products = res.data.data;
resolve(_products);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询产品
*/
export function getProduct(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryProduct,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _products = res.data.data;
resolve(_products);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
};
/**
* 下单
*/
export function saveStoreCart(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.saveStoreCart,
method: "POST",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 下单
*/
export function getStoreCart(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.queryStoreCart,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 商品统一下单
* @param {Object} dataObj 下单报文
*/
export function goodsUnifieldOrder(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.goodsUnifieldOrder,
method: "POST",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data);
return;
}
reject(res);
},
fail: function(e) {
reject();
}
});
})
}
/**
* 发起微信支付
* add by 吴学文 2020-11-12
* @param {Object} data 微信支付参数
*/
export function toPay(data) {
return new Promise((resolve, reject) => {
let obj = {};
let orderInfo = {};
// #ifdef MP-WEIXIN
uni.requestPayment({
'timeStamp': data.timeStamp,
'nonceStr': data.nonceStr,
'package': data.package,
'signType': data.signType,
'paySign': data.sign,
'success': function(res) {
resolve(res);
},
'fail': function(err) {
reject(err)
}
});
// #endif
// #ifdef H5
WexinPayFactory.wexinPay(data,function(){
uni.showToast({
title: "支付成功",
duration: 2000
});
resolve(res);
});
// #endif
// #ifdef APP-PLUS
obj = getPayInfo(data);
// 第二种写法,传对象字符串
orderInfo = JSON.stringify(obj)
uni.requestPayment({
provider: 'wxpay',
orderInfo: orderInfo, //微信、支付宝订单数据
success: function(res) {
console.log("购买",res)
resolve(res);
},
fail: function(err) {
console.log("购买失败",err)
reject(err);
}
});
// #endif
})
}
export function queryGroupGoods(_dataObj){
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listProductGroup,
method: "GET",
data: _dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _appraisets = res.data.data;
resolve(_appraisets);
return;
}
reject(res.data.msg);
},
fail: function(e) {
reject();
}
});
})
}
export function queryProductSeckill(_dataObj){
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listProductSeckill,
method: "GET",
data: _dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _appraisets = res.data.data;
resolve(_appraisets);
return;
}
reject(res.data.msg);
},
fail: function(e) {
reject();
}
});
})
}
import {requestNoAuth} from '../../lib/java110/java110Request.js'
import url from '../../constant/url.js'
/**
* 查询家政服务类型
*/
export function getHousekeepingTypeList(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryHousekeepingType,
method: "GET",
data: dataObj,
//动态数据
success: function (res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function (e) {
reject()
}
})
})
}
/**
* 查询家政服务列表
*/
export function getHousekeepingServList(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryHousekeepingServ,
method: "GET",
data: dataObj,
//动态数据
success: function (res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function (e) {
reject()
}
})
})
}
/**
* 查询家政服务列表
*/
export function searchHousekeepingServ(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.searchHousekeepingServ,
method: "GET",
data: dataObj,
//动态数据
success: function (res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function (e) {
reject()
}
})
})
}
/**
* 查询家政服务费用
*/
export function getServFeeConfig(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryServFeeConfig,
method: "GET",
data: dataObj,
//动态数据
success: function (res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function (e) {
reject()
}
})
})
}
/**
* 首页相关 数据封装API
* add by 吴学文 2020-09-07
* QQ 92825595
*
*/
import {
requestNoAuth
} from '../../lib/java110/java110Request.js';
import url from '../../constant/url.js';
import {
dateTimeStringToDateString
} from '../../lib/java110/utils/DateUtil.js'
/**
* 查询活动列表
*/
export function getActivitiTitle(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryActivitiesType,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _activites = res.data.data;
resolve(_activites);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询 目录列表
*/
export function getCategoryList() {
return {
pageone: [{
name: "综合缴费",
src: "/static/images/index_payFee.png",
href: "/pages/fee/oweFee"
//href: "/pages/fee/oweFeeGarden"
}, {
name: "房屋费",
src: "/static/images/index_property.png",
href: "/pages/fee/roomFeeListNew"
}, {
name: "停车费",
src: "/static/images/index_park.png",
href: "/pages/fee/payParkingFeeList"
}, {
name: "投诉咨询",
src: "/static/images/index_complaint.png",
href: "/pages/complaint/complaint"
}, {
name: "报修",
src: "/static/images/index_repair.png",
href: "/pages/repair/repair"
}, {
name: "公告",
src: "/static/images/index_notice.png",
href: "/pages/notice/index"
}, {
name: "开门",
src: "/static/images/index_openDoor.png",
href: "/pages/machine/openDoor"
// }, {
// name: "二维码开门",
// src: "/static/images/index_openDoor.png",
// href: "/pages/openDoorByQrCode/openDoorByQrCode"
}, {
name: "联系客服",
src: "/static/images/index_persion.png",
href: "callProperty"
}],
pagetwo: [{
name: "家庭成员",
src: "/static/images/index_member.png",
href: "/pages/family/familyList"
}, {
name: "车位申请",
src: "/static/images/index_parking.png",
href: "/pages/applyparking/applyparking"
},
{
name: "空置房",
src: "/static/images/index_emptyRoom.png",
href: "/pages/applyRoom/applyRoom"
},
{
name: "房屋装修",
src: "/static/images/index_fitment.png",
href: "/pages/renovation/roomRenovation"
},
// {
// name: "临时车收费",
// src: "/static/images/index_carCharges.png",
// href: "/pages/fee/tempParkingFee"
// },
{
name: "合同费用",
src: "/static/images/index_contractCost.png",
href: "/pages/fee/contractFeeList"
},
{
name: "投票问卷",
src: "/static/images/index_Voting.png",
href: "/pages/questionAnswer/questionAnswer"
},
{
name: "访客登记",
src: "/static/images/index_complaint.png",
href: "/pages/visit/visitList"
},
{
name: "反省上报",
src: "/static/images/index_complaint.png",
href: "/pages/reportInfoBack/reportInfoBack",
needLogin:'N'
}
]
};
}
/**
* 查询活动
*/
export function loadActivites(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listActivitiess,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _activites = res.data.activitiess;
let _acts = [];
_activites.forEach(function(_item) {
_item.src = url.filePath + "?fileId=" + _item.headerImg +
"&communityId=" + dataObj.communityId +
"&time=" + new Date();
_item.startTime = dateTimeStringToDateString(_item.startTime);
_acts.push(_item);
});
resolve(_acts);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询小区广告
*/
export function loadAdverts(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listAdvertPhoto,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _advertPhotos = res.data;
resolve(_advertPhotos);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询小区广告
*/
export function listMarketPicByCommunity(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listMarketPicByCommunity,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询小区广告
*/
export function listCommunityMarketGoods(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listCommunityMarketGoods,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
import {
requestNoAuth,request
} from '../../lib/java110/java110Request.js';
import
url
from '../../constant/url.js';
export function getItemReleaseType(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listItemReleaseType,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function getFirstAuditStaff(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.queryFirstAuditStaff,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function saveItemRelease(_data) {
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.saveItemRelease,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
export function getMyItemRelease(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listMyItemRelease,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function getItemReleaseRes(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.listItemReleaseRes,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
export function queryOaWorkflowUser(dataObj) {
return new Promise(
(resolve, reject) => {
request({
url: url.queryOaWorkflowUser,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.data.code == 0) {
let _data = res.data.data;
resolve(_data);
return ;
}
reject('未包含数据');
},
fail: function(e) {
reject(e);
}
});
})
}
\ No newline at end of file
/**
* 车辆信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request,
requestNoAuth
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 查询业主车辆
*/
export function getMachineTranslates(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.listMachineTranslates,
method: "GET",
data: _objData,
success: function(res) {
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
let _machineTranslates = res.data.machineTranslates;
if (_machineTranslates.length == 0) {
reject("没有记录");
return;
}
resolve(_machineTranslates);
} else {
reject("查询失败");
}
},
fail: function(res) {
reject(res);
}
});
});
};
export function getMachines(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.listEquipmentAccount,
method: "GET",
data: _objData,
success: function(res) {
let _data = res.data;
resolve(_data);
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 查询设备保养记录
* @param {} _objData
*/
export function getMachineMaintainances(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.listMaintainanceTaskDetail,
method: "GET",
data: _objData,
success: function(res) {
let _data = res.data;
resolve(_data);
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 查询设备保养记录
* @param {} _objData
*/
export function getMachineInspections(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.listInspectionTaskDetails,
method: "GET",
data: _objData,
success: function(res) {
let _data = res.data;
resolve(_data);
},
fail: function(res) {
reject(res);
}
});
});
};
export function getChargeMachines(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.listChargeMachine,
method: "GET",
data: _objData,
success: function(res) {
let _data = res.data;
resolve(_data);
},
fail: function(res) {
reject(res);
}
});
});
};
export function getChargeMachinePort(_objData) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.listChargeMachinePort,
method: "GET",
data: _objData,
success: function(res) {
let _data = res.data;
resolve(_data);
},
fail: function(res) {
reject(res);
}
});
});
};
export function startCharge(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.startCharge,
method: "POST",
data: JSON.stringify(_objData), //动态数据
success: function(res) {
if (res.statusCode == 200) {
//成功情况下跳转
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
export function stopCharge(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.stopCharge,
method: "POST",
data: JSON.stringify(_objData), //动态数据
success: function(res) {
if (res.statusCode == 200) {
//成功情况下跳转
resolve(res.data);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询充电订单
*/
export function getChargeMachineOrder(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.listChargeMachineOrder,
method: "GET",
data: _objData,
success: function(res) {
if (res.data.code != 0) {
reject(res.data.msg);
return;
}
resolve(res.data.data);
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 查询充电订单
*/
export function getMeterMachine(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.listMeterMachine,
method: "GET",
data: _objData,
success: function(res) {
if (res.data.code != 0) {
reject(res.data.msg);
return;
}
resolve(res.data.data);
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 查询充电订单
*/
export function getChargeMonthOrder(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.listChargeMonthOrder,
method: "GET",
data: _objData,
success: function(res) {
if (res.data.code != 0) {
reject(res.data.msg);
return;
}
resolve(res.data.data);
},
fail: function(res) {
reject(res);
}
});
});
};
/**
* 查询充电订单
*/
export function getChargeMonthCard(_objData) {
return new Promise((resolve, reject) => {
request({
url: url.listChargeMonthCard,
method: "GET",
data: _objData,
success: function(res) {
if (res.data.code != 0) {
reject(res.data.msg);
return;
}
resolve(res.data.data);
},
fail: function(res) {
reject(res);
}
});
});
};
import {
request,
requestNoAuth
} from '../../lib/java110/java110Request.js';
import url from '../../constant/url.js';
/**
* 查询拼团产品
*/
export function loadAdverts(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.listAdvertPhoto,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _products = res.data;
resolve(_products);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询社区商家
*/
export function loadCommunityShops(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryShopCommunity,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _shops = res.data.data;
resolve(_shops);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询社区商家
*/
export function getShops(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryShop,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _shops = res.data.data;
resolve(_shops);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询便民菜单
*/
export function getConMenus(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryConMenus,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _shops = res.data.data;
resolve(_shops);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询商家信息
*/
export function getStoreInfo(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryStoreInfo,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _shops = res.data.data;
resolve(_shops);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询商家信息
*/
export function getStoreBySeq(dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryStoreBySeq,
method: "GET",
data: dataObj,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
let _shops = res.data.data;
resolve(_shops);
return;
}
reject();
},
fail: function(e) {
reject();
}
});
})
}
/**
* 查询商铺ID
*/
export function getShopId(){
let shopId = uni.getStorageSync(mapping.MALL_SHOP_ID);
return shopId;
}
export function queryShopType(_dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryShopType,
method: "GET",
data: _dataObj,
//动态数据
success: function (res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function (e) {
reject()
}
})
})
}
export function getMallIndexCategoryList(_dataObj) {
return new Promise(
(resolve, reject) => {
requestNoAuth({
url: url.queryHousekeepingType,
method: "GET",
data: _dataObj,
//动态数据
success: function (res) {
if (res.statusCode == 200) {
let _data = res.data
resolve(_data)
return
}
reject()
},
fail: function (e) {
reject()
}
})
})
}
/**
* 首页相关 数据封装API
* add by 吴学文 2020-09-07
* QQ 92825595
*
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import mapping from '../../constant/MappingConstant.js'
export function getOwnerId() {
let _ownerInfo = wx.getStorageSync(mapping.OWNER_INFO);
if (_ownerInfo) {
return _ownerInfo.ownerId;
}
return "-1"
}
/**
* 查询当前业主信息
*/
export function getCurOwner() {
return new Promise(
(resolve, reject) => {
let _ownerInfo = wx.getStorageSync(mapping.OWNER_INFO);
if (_ownerInfo) {
resolve(_ownerInfo);
} else {
//查询用户信息
let _userInfo = wx.getStorageSync(mapping.USER_INFO);
if (!_userInfo) {
reject();
return;
}
request({
url: url.queryAppUserBindingOwner,
data: {
openId: JSON.parse(_userInfo).openId
},
success: function(res) {
let _json = res.data;
if (_json.code == 0) {
_ownerInfo = _json.data[0];
if (_ownerInfo == null || _ownerInfo == undefined) {
//没有业主信息
reject();
return;
}
if (_ownerInfo.state == '12000') {
wx.setStorageSync(mapping.OWNER_INFO, _ownerInfo);
let _currentCommunityInfo = {
communityId: _ownerInfo.communityId,
communityName: _ownerInfo.communityName
};
wx.setStorageSync(mapping.CURRENT_COMMUNITY_INFO,
_currentCommunityInfo);
}
resolve(_json.data[0]);
}
},
fail: function(error) {
// 查询失败
reject();
}
});
}
});
}
/**
* 查询当前业主信息
*/
export function refreshOwner() {
return new Promise(
(resolve, reject) => {
let _userInfo = wx.getStorageSync(mapping.USER_INFO);
if (!_userInfo) {
reject();
return;
}
request({
url: url.queryAppUserBindingOwner,
data: {
openId: JSON.parse(_userInfo).openId
},
success: function(res) {
let _json = res.data;
if (_json.code == 0 && _json.data && _json.data.length > 0) {
let _ownerInfo = _json.data[0];
if (_ownerInfo == null || _ownerInfo == undefined) {
//没有业主信息
reject();
return;
}
if (_ownerInfo.state == '12000') {
wx.setStorageSync(mapping.OWNER_INFO, _ownerInfo);
let _currentCommunityInfo = {
communityId: _ownerInfo.communityId,
communityName: _ownerInfo.communityName
};
wx.setStorageSync(mapping.CURRENT_COMMUNITY_INFO, _currentCommunityInfo);
}
resolve(_json.data[0]);
}
},
fail: function(error) {
// 查询失败
reject();
}
});
});
}
export function getUserAddress(_data) {
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.queryUserAddress,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* add by wuxw
* @param {Object} _data 保存 用户地址
*/
export function saveUpdateUserAddress(_data) {
return new Promise((resolve, reject) => {
if (_data.userId == '') {
reject("用户不能为空");
return;
} else if (_data.areaCode == '') {
reject("地区不能为空");
return;
} else if (_data.tel == '') {
reject("手机号不能为空");
return;
} else if (_data.address == '') {
reject("地址不能为空");
return;
} else if (_data.isDefault == '') {
reject("默认地址不能为空");
return;
}
let moreRooms = [];
request({
url: url.saveUserAddress,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* add by wuxw
* @param {Object} _data 保存 用户地址
*/
export function deleteUserAddress(_data) {
return new Promise((resolve, reject) => {
if (_data.userId == '') {
reject("用户不能为空");
return;
} else if (_data.addressId == '') {
reject("地址不能为空");
return;
}
request({
url: url.deleteUserAddress,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* add by wuxw
* @param {Object} _data 删除家庭成员
*/
export function deleteOwnerMember(_data) {
return new Promise((resolve, reject) => {
if (_data.memberId == '') {
reject("成员ID不能为空");
return;
} else if (_data.communityId == '') {
reject("小区不能为空");
return;
}
request({
url: url.deleteOwner,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 判断是否存在业主
*
*/
export function hasOwner() {
let loginFlag = wx.getStorageSync(mapping.LOGIN_FLAG);
let nowDate = new Date();
//判断如果是APP
if (!loginFlag || loginFlag.expireTime < nowDate.getTime()) {
return;
}
let _ownerInfo = wx.getStorageSync(mapping.OWNER_INFO);
if (!_ownerInfo) {
uni.showToast({
icon: 'none',
title: '未查询到业主房产'
})
throw new Error('业主不存在');
}
let _memberId = _ownerInfo.memberId;
if (!_memberId) {
uni.showToast({
icon: 'none',
title: '未查询到业主房产'
})
throw new Error('业主不存在');
}
if (_memberId == '-1') {
uni.showToast({
icon: 'none',
title: '未查询到业主房产'
})
throw new Error('业主不存在');
}
}
export function loadLoginOwner(_data) {
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.queryCurrentOwner,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data.data);
return;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 物业信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
import {
getCurCommunity
} from '../community/communityApi.js'
/**
* 查询物业信息
* @param {Object} _communityInfo 小区信息
*/
function doGetProperty(_communityInfo) {
return new Promise((resolve, reject) => {
let _objData = {
page: 1,
row: 5,
communityId: _communityInfo.communityId,
memberTypeCd: '390001200002'
};
request({
url: url.listStore,
method: "GET",
data: _objData,
//动态数据
success: function(res) {
if (res.statusCode == 200) {
resolve(res.data.stores[0]);
return;
}
reject(res.body);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 查询物业信息
*/
export function getProperty() {
return new Promise((resolve, reject) => {
//查询当前小区
getCurCommunity()
.then(function(_communityInfo) {
//查询当前物业
doGetProperty(_communityInfo)
.then(function(_propertyInfo) {
resolve(_propertyInfo);
})
.then(function(res) {
reject(res);
})
})
})
};
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 投票问卷
* @param {Object} _data 评价内容
*/
export function queryQuestionAnswer(_data) {
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.queryQuestionAnswer,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 投票问卷
* @param {Object} _data 评价内容
*/
export function queryQuestionAnswerTitle(_data) {
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.queryQuestionAnswerTitle,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* add by wuxw
* @param {Object} _data 保存 用户地址
*/
export function saveUserQuestionAnswerValue(_data){
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.saveUserQuestionAnswerValue,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 报修评价
* @param {Object} _data 评价内容
*/
export function appraiseRepair(_data) {
return new Promise((resolve, reject) => {
let moreRooms = [];
request({
url: url.appraiseRepair,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
import {
requestNoAuth,
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
/**
* 疫情问卷
* @param {Object} _data
*/
export function querySetting(_data){
return new Promise((resolve, reject) => {
let moreRooms = [];
requestNoAuth({
url: url.querySetting,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* 疫情问卷详情
* @param {Object} _data 评价内容
*/
export function querySettingTitle(_data) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.querySettingTitle,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* add by wuxw
* @param {Object} _data 保存 用户地址
*/
export function saveReportInfoAnswerValue(_data){
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.saveReportInfoAnswerValue,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
/**
* add by wuxw
* @param {Object} _data 保存 用户地址
*/
export function saveReportInfoBackCity(_data){
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.saveReportInfoBackCity,
method: "POST",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0){
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
export function queryReportInfoAnswerByOpenId(_data) {
return new Promise((resolve, reject) => {
requestNoAuth({
url: url.queryReportInfoAnswerByOpenId,
method: "GET",
data: _data, //动态数据
success: function(res) {
let _data = res.data;
if (_data.code == 0) {
resolve(_data);
return ;
}
reject(_data.msg);
},
fail: function(e) {
reject(e);
}
});
})
}
\ No newline at end of file
/**
* 房屋信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import
mapping
from '../../constant/MappingConstant.js'
import {
getCurOwner
} from '../owner/ownerApi.js'
/**
* 查询业主房屋
*/
export function getRooms() {
return new Promise((resolve, reject) => {
getCurOwner()
.then(function(_owner) {
if(!_owner.ownerId){
reject('未包含业主信息');
}
request({
url: url.queryRoomsByOwner,
method: "GET",
data: {
communityId: _owner.communityId,
ownerId: _owner.ownerId
},
success: function(res) {
if (res.statusCode == 200) {
//将业主信息和房屋信息一起返回
res.data['owner'] = _owner;
if (res.data.rooms.length == 0) {
reject("业主没有房屋信息");
return;
}
resolve(res.data);
} else {
reject("查询房屋失败");
}
},
fail: function(res) {
reject(res);
}
});
});
});
};
/**
* 查询房屋租聘配置
*/
export function queryRentingConfig() {
return new Promise((resolve, reject) => {
request({
url: url.queryRentingConfig,
method: "GET",
data: {
page: 1,
row: 10
},
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data.data);
} else {
reject(data.msg);
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 房屋租赁
* @param {Object} obj 房屋租赁数据
* "rentingName": this.rentingName,
"roomId": this.roomId,
"communityId": this.communityId,
"price": this.price,
"paymentType": this.paymentType,
"rentingConfigId": this.rentingConfigId,
"photos": [],
"rentingDesc": this.rentingDesc,
"ownerTel": this.userTel,
"ownerName":this.userName,
"state":"0"
*/
export function hireRoom(obj) {
return new Promise((resolve, reject) => {
let msg = "";
if (obj.rentingName == "") {
msg = "出租标题不能为空";
} else if (obj.roomId == "") {
msg = "请选择房屋";
} else if (obj.communityId == "") {
msg = "未找到小区信息";
} else if (obj.price == "") {
msg = "请填写租金(元)";
} else if (obj.paymentType == "") {
msg = "请选择付费类型";
} else if (obj.rentingConfigId == "") {
msg = "请选择出租方式";
} else if (obj.rentingDesc == '') {
msg = "请填写出租说明";
} else if (obj.photos.length < 1) {
msg = "请选择图片";
} else if (obj.checkIn == '') {
msg = "请选择入住日期";
}
if (msg != "") {
reject(msg);
} else {
request({
url: url.saveRentingPool,
method: "POST",
data: obj, //动态数据
success: function(res) {
let _json = res.data;
if (_json.code == 0) {
resolve(_json);
return;
}
reject(_json.msg);
},
fail: function(e) {
reject('服务异常');
}
});
}
})
}
/**
* 查询房源信息
* @param {Object} _data 查询 入参
*/
export function getRentingPool(_data) {
return new Promise((resolve, reject) => {
request({
url: url.queryRentingPool,
method: "GET",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data.data);
} else {
reject(data.msg);
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 租房预约
* @param {Object} obj 租房预约数据
* {"appointmentId":"","tenantName":"张默默","tenantSex":"0","tenantTel":"18909711234",
* "appointmentTime":"2020-09-30 01:05:00","appointmentRoomId":"752020080500600202","remark":""}
*/
export function appointmentRoom(obj) {
return new Promise((resolve, reject) => {
let msg = "";
if (obj.tenantName == "") {
msg = "名称不能为空";
} else if (obj.tenantSex == "") {
msg = "性别不能空";
} else if (obj.tenantTel == "") {
msg = "手机号不能为空";
} else if (obj.appointmentTime == "") {
msg = "请填写预约时间";
} else if (obj.appointmentRoomId == "") {
msg = "预约房屋为空";
}
if (msg != "") {
reject(msg);
} else {
request({
url: url.saveRentingAppointment,
method: "POST",
data: obj, //动态数据
success: function(res) {
let _json = res.data;
if (_json.code == 0) {
resolve(_json);
return;
}
reject(_json.msg);
},
fail: function(e) {
reject('服务异常');
}
});
}
})
}
/**
* 申请装修信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
/**
* 提交装修申请
* @param {Object} _data 查询 入参
*/
export function saveRoomRenovation(_data) {
return new Promise((resolve, reject) => {
request({
url: url.saveRoomRenovation,
method: "POST",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve();
} else {
uni.showToast({
title: data.msg
})
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 获取房屋装修记录
* @param {Object} _data
*/
export function queryRoomRenovation(_data){
return new Promise((resolve, reject) => {
request({
url: url.queryRoomRenovation,
method: "GET",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve(data);
} else {
uni.showToast({
title: data.msg
})
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 装修完成
* @param {Object} _data
*/
export function updateRoomRenovationState(_data){
return new Promise((resolve, reject) => {
request({
url: url.updateRoomRenovationState,
method: "POST",
data: _data,
success: function(res) {
let data = res.data;
if (data.code == 0) {
resolve();
} else {
uni.showToast({
title: data.msg
})
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 查询装修房屋跟踪记录
* @param {Object} _data 请求报文
*/
export function queryRoomRenovationRecord(_data){
return new Promise((resolve, reject) => {
request({
url: url.queryRoomRenovationRecord,
method: "GET",
data: _data,
success: function(res) {
if(res.data.code == 0){
resolve(res.data);
}else{
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
},
fail: function(res) {
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
});
})
}
/**
* 查询装修房屋跟踪记录详情
* @param {Object} _data 请求报文
*/
export function queryRoomRenovationRecordDetail(_data){
return new Promise((resolve, reject) => {
request({
url: url.queryRoomRenovationRecordDetail,
method: "GET",
data: _data,
success: function(res) {
if(res.data.code == 0){
resolve(res.data.data);
}else{
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
},
fail: function(res) {
wx.showToast({
title: "服务器异常了",
icon: 'none',
duration: 2000
})
}
});
})
}
\ No newline at end of file
This diff is collapsed.
/**
* 申请房信息处理 api 接口类
*
* add by 吴学文 QQ 928255095
*/
import {
request
} from '../../lib/java110/java110Request.js'
import
url
from '../../constant/url.js'
import {formatTime} from '../../lib/java110/utils/DateUtil.js'
/**
* 查询访客列表
*/
export function listOwnerVisit(_data) {
return new Promise((resolve, reject) => {
request({
url: url.listOwnerVisit,
method: "GET",
data: _data,
success: function(res) {
if (res.statusCode == 200) {
//成功情况下跳转
let _visits = res.data.visits;
if (_visits == null || _visits == undefined) {
_visits = [];
} else {
_visits.forEach(function(_visit) {
let _createTime = new Date(_visit.createTime.replace(/\-/g, "/"));
_visit.createTime = formatTime(_createTime);
if(_visit.hasOwnProperty("departureTime")){
let _departureTime = new Date(_visit.departureTime.replace(/\-/g, "/"));
_visit.departureTime = formatTime(_departureTime);
}
if(_visit.hasOwnProperty("visitTime")){
let _visitTime = new Date(_visit.visitTime.replace(/\-/g, "/"));
_visit.visitTime = formatTime(_visitTime);
}
});
}
resolve(res.data);
}
},
fail: function(res) {
reject(res);
}
});
})
}
/**
* 访客预约提交
*/
export function saveAddVisit(_data) {
return new Promise((resolve, reject) => {
request({
url: url.saveAddVisit,
method: "POST",
data: _data,
success: function(res) {
resolve(res.data);
},
fail: function(res) {
reject(res);
}
});
})
}
This diff is collapsed.
/**app.wxss**/
@import "./style/weui.css";
@import "./style/iconfont.css";
@import "./style/main.css";
@import "./style/icon.css";
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 100rpx 0;
box-sizing: border-box;
/*border: 1px solid green;*/
}
page {
background-color: #f2f2f2;
}
.bg-white {
background-color: #ffffff;
}
.image-icon {
width: 30rpx;
height: 30rpx;
}
.border-bottom {
border-bottom: 1px solid #dbdbdb;
}
/* 修正 text 组件 英文&符号不换行的问题 begin */
text {
word-wrap: break-all;
word-break: break-word;
text-align: justify;
}
/* 修正 text 组件 英文&符号不换行的问题 end */
.fixed-bottom{
position: fixed;
bottom: 0rpx;
left: 0rpx;
box-shadow: 0 -5rpx 20rpx #c9c9c9;
}
.block-full-width{
display: block;
width: 100%;
height: 150rpx;
}
.flex-container {
display: flex;
justify-content: center;
align-items: center;
}
.full-button {
width: 80%;
}
/*甜甜圈loading start*/
@keyframes donut-spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.donut {
display: inline-block;
border: 4rpx solid rgba(0, 0, 0, 0.1);
border-left-color: #1AAD19;
border-radius: 50%;
width: 60rpx;
height: 60rpx;
animation: donut-spin 0.5s linear infinite;
}
/*甜甜圈loading end*/
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
export function getClientRect(selector, component) {
return new Promise((resolve, reject) => {
let query = component ? uni.createSelectorQuery().in(component) : uni.createSelectorQuery();
return query.select(selector).boundingClientRect(resolve).exec()
}
)
}
This diff is collapsed.
<template name="toolbar">
<view v-if="showToolbar" class="van-picker__toolbar van-hairline--top-bottom toolbar-class">
<view class="van-picker__cancel" hover-class="van-picker__cancel--hover" hover-stay-time="70" data-type="cancel" @tap="emit">{{cancelButtonText}}</view>
<view v-if="title" class="van-picker__title van-ellipsis">{{title}}</view>
<view class="van-picker__confirm" hover-class="van-picker__confirm--hover" hover-stay-time="70" data-type="confirm" @tap="emit">{{confirmButtonText}}</view>
</view>
</template>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment