// @ts-nocheck import { getHouseInfo, updateHouseInfo } from '../../utils/api.js'; import validate from "../../utils/validate/index.js"; Page({ /** * 页面的初始数据 */ data: { submitBtnIsAllowed: false, fmData: { houseId:'', ownerName:'', // 房主姓名 idCard: '', // 身份证 mobile:'', // 房主电话 }, 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) { wx.showLoading({ title: "加载中", mask: true, }); this.setData({ fmData: options }); await this.getBuildingunitlist(); wx.hideLoading() }, // 单元 async getBuildingunitlist() { const { fmData } = this.data; if (!fmData.roomCode) return const res = await getHouseInfo({roomCode: fmData.roomCode}); if (res.msg === 'success' && res.code === 0) { this.setData({ fmData: res.data }) console.log(this.data.fmData); } }, 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.roomType' : this.data.houseType[e.detail.value].label }) }, // 房屋途径 housePurposePicker(e){ this.setData({ 'fmData.roomUse' : this.data.purposeArr[e.detail.value].label }) }, // 房屋状态 houseStatePicker(e){ this.setData({ 'fmData.livingStatus' : 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 res = await updateHouseInfo({...fmData}); wx.hideLoading(); if (res.msg === "success" && res.code === 0) { wx.showToast({ title: "修改成功", duration: 2000, }); setTimeout(()=>{ wx.reLaunch({ url: `../index/index?roomCode=${!this.data.fmData.roomCode ? this.data.fmData.roomNo : this.data.fmData.roomCode}` }) },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() {}, });