You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
336 lines
7.2 KiB
336 lines
7.2 KiB
3 years ago
|
// @ts-nocheck
|
||
|
import {
|
||
|
wxShowToast,
|
||
|
wxRequestPost,
|
||
|
wxNavigateTo,
|
||
|
} from '../../utils/api.js';
|
||
|
import validate from "../../utils/validate/index.js";
|
||
|
Page({
|
||
|
/**
|
||
|
* 页面的初始数据
|
||
|
*/
|
||
|
data: {
|
||
|
submitBtnIsAllowed: false,
|
||
|
iniLoaded: false,
|
||
|
info: {
|
||
|
icResiUserId: '',
|
||
|
houseName: '',
|
||
|
houseCode: '3702030050150000700002',
|
||
|
qrCodeUrl: '',
|
||
|
},
|
||
|
fmData: {
|
||
|
houseId:'',
|
||
|
ownerName:'', // 房主姓名
|
||
|
ownerIdCard: '', // 身份证
|
||
|
ownerPhone:'', // 房主电话
|
||
|
remark:'' // 备注
|
||
|
},
|
||
|
buildingunitlist: [], // 单元
|
||
|
houseType: [ // 房屋类型
|
||
|
{
|
||
|
value: "1",
|
||
|
label: "楼房",
|
||
|
},
|
||
|
{
|
||
|
value: "2",
|
||
|
label: "平房",
|
||
|
},
|
||
|
{
|
||
|
value: "3",
|
||
|
label: "别墅",
|
||
|
}
|
||
|
],
|
||
|
purposeArr: [ // 房屋用途
|
||
|
{ value: '1', label: '住宅' },
|
||
|
{ value: '2', label: '商业' },
|
||
|
{ value: '3', label: '办公' },
|
||
|
{ value: '4', label: '工业' },
|
||
|
{ value: '5', label: '仓储' },
|
||
|
{ value: '6', label: '商住混用' },
|
||
|
{ value: '7', label: '其他' }
|
||
|
],
|
||
|
rentFlagArr: [ // 居住情况
|
||
|
{ value: '1', label: '出租' },
|
||
|
{ value: '2', label: '闲置' },
|
||
|
{ value: '0', label: '自住' }
|
||
|
]
|
||
|
},
|
||
|
/**
|
||
|
* 生命周期函数--监听页面加载
|
||
|
*/
|
||
|
async onLoad(options) {
|
||
|
this.setData({
|
||
|
fmData: options,
|
||
|
iniLoaded: true,
|
||
|
});
|
||
|
await this.getBuildingunitlist();
|
||
|
},
|
||
|
|
||
|
// 单元
|
||
|
async getBuildingunitlist() {
|
||
|
const { fmData } = this.data;
|
||
|
if (!fmData.buildingId) return
|
||
|
const {
|
||
|
data: {
|
||
|
data: { code, data },
|
||
|
},
|
||
|
msg,
|
||
|
} = await wxRequestPost(
|
||
|
`gov/org/building/buildingunitlist`,
|
||
|
{buildingId: fmData.buildingId},
|
||
|
{
|
||
|
// isMock: true,
|
||
|
isQuiet: false,
|
||
|
}
|
||
|
);
|
||
|
|
||
|
if (msg === 'success' && code === 0) {
|
||
|
let buildingunitlist = []
|
||
|
data.forEach(element => {
|
||
|
buildingunitlist.push({
|
||
|
value: element.id,
|
||
|
label: element.unitName
|
||
|
})
|
||
|
});
|
||
|
this.setData({
|
||
|
buildingunitlist: buildingunitlist
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
ownerNameSync(e){
|
||
|
this.setData({
|
||
|
'fmData.ownerName' : e.detail.value
|
||
|
})
|
||
|
},
|
||
|
ownerIdCardSync(e){
|
||
|
this.setData({
|
||
|
'fmData.ownerIdCard' : e.detail.value
|
||
|
})
|
||
|
},
|
||
|
ownerPhoneSync(e){
|
||
|
this.setData({
|
||
|
'fmData.ownerPhone' : e.detail.value
|
||
|
})
|
||
|
},
|
||
|
remarkSync(e){
|
||
|
this.setData({
|
||
|
'fmData.remark' : e.detail.value
|
||
|
})
|
||
|
},
|
||
|
// 房屋类型
|
||
|
houseTypePicker(e){
|
||
|
this.setData({
|
||
|
'fmData.houseTypeName' : this.data.houseType[e.detail.value].label
|
||
|
})
|
||
|
},
|
||
|
// 房屋途径
|
||
|
housePurposePicker(e){
|
||
|
this.setData({
|
||
|
'fmData.purposeName' : this.data.purposeArr[e.detail.value].label
|
||
|
})
|
||
|
},
|
||
|
// 房屋状态
|
||
|
houseStatePicker(e){
|
||
|
this.setData({
|
||
|
'fmData.rentName' : this.data.rentFlagArr[e.detail.value].label
|
||
|
})
|
||
|
},
|
||
|
|
||
|
// 身份证失去焦点
|
||
|
handleValidBlur(e) {
|
||
|
let { fmData } = this.data;
|
||
|
const right = this.identityCodeValid(e.detail.value)
|
||
|
if (right) {
|
||
|
console.log('输入正确就没什么::::');
|
||
|
} else {
|
||
|
fmData.gender = ''
|
||
|
this.setData({ fmData })
|
||
|
wx.showToast({
|
||
|
title: '身份证号不正确,请重新输入',
|
||
|
icon: "none",
|
||
|
duration: 1500,
|
||
|
});
|
||
|
}
|
||
|
},
|
||
|
|
||
|
|
||
|
// 校验身份证是否正确
|
||
|
identityCodeValid (idcode) {
|
||
|
// 加权因子
|
||
|
var weightFactor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
|
||
|
// 校验码
|
||
|
var checkCode = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
|
||
|
|
||
|
var code = idcode + ''
|
||
|
var last = idcode[17]// 最后一位
|
||
|
|
||
|
var seventeen = code.substring(0, 17)
|
||
|
|
||
|
// ISO 7064:1983.MOD 11-2
|
||
|
// 判断最后一位校验码是否正确
|
||
|
var arr = seventeen.split('')
|
||
|
var len = arr.length
|
||
|
var num = 0
|
||
|
for (var i = 0; i < len; i++) {
|
||
|
num = num + arr[i] * weightFactor[i]
|
||
|
}
|
||
|
|
||
|
// 获取余数
|
||
|
var resisue = num % 11
|
||
|
var lastNo = checkCode[resisue]
|
||
|
|
||
|
// 格式的正则
|
||
|
// 正则思路
|
||
|
/*
|
||
|
第一位不可能是0
|
||
|
第二位到第六位可以是0-9
|
||
|
第七位到第十位是年份,所以七八位为19或者20
|
||
|
十一位和十二位是月份,这两位是01-12之间的数值
|
||
|
十三位和十四位是日期,是从01-31之间的数值
|
||
|
十五,十六,十七都是数字0-9
|
||
|
十八位可能是数字0-9,也可能是X
|
||
|
*/
|
||
|
var idcardPatter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/
|
||
|
|
||
|
// 判断格式是否正确
|
||
|
var format = idcardPatter.test(idcode)
|
||
|
|
||
|
// 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
|
||
|
return !!(last === lastNo && format)
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面初次渲染完成
|
||
|
*/
|
||
|
onReady() {},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面显示
|
||
|
*/
|
||
|
async onShow() {
|
||
|
},
|
||
|
// 修改提交
|
||
|
async editSubmit () {
|
||
|
if (!this.computeSubmitBtnIsAllowed(false)) return;
|
||
|
|
||
|
const { fmData } = this.data;
|
||
|
wx.showLoading({
|
||
|
title: "提交中",
|
||
|
mask: true,
|
||
|
});
|
||
|
const {
|
||
|
data: {
|
||
|
data: { code, data },
|
||
|
},
|
||
|
msg,
|
||
|
} = await wxRequestPost(
|
||
|
"gov/org/house/houseupdate",
|
||
|
{
|
||
|
...fmData,
|
||
|
},
|
||
|
{
|
||
|
// isMock: true,
|
||
|
isQuiet: false,
|
||
|
}
|
||
|
);
|
||
|
wx.hideLoading();
|
||
|
|
||
|
if (msg === "success" && code === 0) {
|
||
|
wxShowToast({
|
||
|
title: "修改成功",
|
||
|
duration: 2000,
|
||
|
});
|
||
|
setTimeout(()=>{
|
||
|
wx.navigateBack()
|
||
|
},2000)
|
||
|
|
||
|
}
|
||
|
},
|
||
|
// 更新data数据后需主动触发
|
||
|
$afterUpdateData() {
|
||
|
this.computeSubmitBtnIsAllowed();
|
||
|
},
|
||
|
// 校验
|
||
|
computeSubmitBtnIsAllowed(isQuiet = true) {
|
||
|
const { fmData } = this.data,
|
||
|
vlt = validate(fmData, {
|
||
|
buildingUnitId: [
|
||
|
{
|
||
|
rule: "required",
|
||
|
message: "请先选择【单元号】",
|
||
|
},
|
||
|
],
|
||
|
|
||
|
doorName: [
|
||
|
{
|
||
|
rule: "required",
|
||
|
message: "请先输入【门牌号】",
|
||
|
},
|
||
|
],
|
||
|
|
||
|
houseType: [
|
||
|
{
|
||
|
rule: "required",
|
||
|
message: "请先选择【房屋类型】",
|
||
|
},
|
||
|
],
|
||
|
|
||
|
purpose: [
|
||
|
{
|
||
|
rule: "required",
|
||
|
message: "请先选择【房屋用途】",
|
||
|
},
|
||
|
],
|
||
|
|
||
|
rentFlag: [
|
||
|
{
|
||
|
rule: "required",
|
||
|
message: "请先选择【房屋状态】",
|
||
|
},
|
||
|
]
|
||
|
});
|
||
|
if (!vlt.valid) {
|
||
|
if (!isQuiet) {
|
||
|
wx.showToast({
|
||
|
title: vlt.error,
|
||
|
icon: "none",
|
||
|
duration: 1500,
|
||
|
});
|
||
|
}
|
||
|
this.setData({
|
||
|
submitBtnIsAllowed: false,
|
||
|
});
|
||
|
return false;
|
||
|
} else {
|
||
|
this.setData({
|
||
|
submitBtnIsAllowed: true,
|
||
|
});
|
||
|
return true;
|
||
|
}
|
||
|
},
|
||
|
/**
|
||
|
* 生命周期函数--监听页面隐藏
|
||
|
*/
|
||
|
onHide() {},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面卸载
|
||
|
*/
|
||
|
onUnload() {},
|
||
|
|
||
|
/**
|
||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||
|
*/
|
||
|
onPullDownRefresh() {},
|
||
|
|
||
|
/**
|
||
|
* 页面上拉触底事件的处理函数
|
||
|
*/
|
||
|
onReachBottom() {},
|
||
|
|
||
|
/**
|
||
|
* 用户点击右上角分享
|
||
|
*/
|
||
|
onShareAppMessage() {},
|
||
|
});
|