// pages/calculator/index.js // import { imageUrl } from '../../utils/config' // import { calculatorOption, calculatorSave, decodePhone, bindPhone } from '../../api/index' import { getBjParamConfig, saveRenovationCalculator, getDictData, getWxMiniPhone, binDingPhone } from '../../api/index' // import Ls from '../../utils/storage' // let ls = new Ls Page({ /** * 页面的初始数据 */ data: { background: '', userPhone: '', type: '', info: '', area: '', money: '', typeArray: ['精装', '毛坯'], infoArray: [ '一室一厅', '两室一厅', '两室两厅', '三室两厅', '四室两厅', '五室两厅及以上' ], calculatorOptions: {}, activeList: [], showPopup: false, activePicker: '', pickerIndex: 0, // 展示计算结果 showResultMoney: false, containerContentStyle: 'hidden;' }, onLoad: function (options) { let that = this this.getCalculatorOption() const userInfo = wx.getStorageSync('member') if (userInfo.phone) { that.setData({ userPhone: userInfo.phone }) } }, navigateBack () { wx.navigateBack({ delta: 1, }) }, // picker 选择 onChange (e) { this.setData({ pickerIndex: e.detail.index }) }, // input 输入 inputTyping (e) { this.setData({ [e.currentTarget.dataset.index]: e.detail.value }) }, // 选择房屋类型、户型信息 toSelectType (e) { let index = e.currentTarget.dataset.index let { activePicker } = this.data if ( activePicker === index) { this.setData({ showPopup: true }) } else { this.setData({ pickerIndex: 0, activePicker: index, showPopup: true }) } }, // 取消选择 cancelPicker () { this.setData({ showPopup: false }) }, // 确认选择 confirmPicker () { let { activePicker, pickerIndex } = this.data this.setData({ [activePicker]: pickerIndex, showPopup: false }) }, // 获取用户手机号 getPhoneNumber (e) { const data = { ...e.detail } getWxMiniPhone({ encryptedData: data.encryptedData, iv: data.iv, sessionKey: wx.getStorageSync('sessionKey') || data.iv, }).then(res => { binDingPhone({ phone: res.data }).then((res) => { if(res.code == 200){ wx.setStorageSync('member', res.data) this.submit() } }) }) }, // 立即计算 submit () { // console.log('立即计算') let { userPhone } = this.data const res = wx.getStorageSync('member') if (userPhone) { let { type, info, area, money, typeArray, infoArray, calculatorOptions } = this.data let submitData = {} submitData.name = res.name submitData.phone = res.phone if (type === '') { wx.showToast({ title: '请选择房屋类型', icon: 'none' }) return false } if (info === '') { wx.showToast({ title: '请选择户型信息', icon: 'none' }) return false } if (area === '') { wx.showToast({ title: '请输入房屋面积', icon: 'none' }) return false } if (money === '') { wx.showToast({ title: '请输入装修预算', icon: 'none' }) return false } // submitData = ['房屋类型:' + typeArray[type], '户型信息:' + infoArray[info], '房屋面积:' + area + '㎡', '装修预算:' + money + '万元'].join('-') let activeList = type == '0' ? [...calculatorOptions.exquisiteList] : [...calculatorOptions.roughList] activeList.forEach(item => { item.money = (money * item.rate / 100).toFixed(1) if(item.children && item.children.length > 0){ item.children.forEach(child => { child.money = (money * child.rate / 100).toFixed(2) }) } }) console.log('activeList', activeList); saveRenovationCalculator({ area, budget: money, houseStatus: type, houseType: info }).then(res => { // console.log(res) if (res.success) { wx.showToast({ title: '计算成功', icon: 'none' }) } else { console.log(res.msg) } }) this.setData({ activeList, showResultMoney: true, containerContentStyle: 'auto' }) } }, // 提交计算结果 submitCalculatorResult (data) { saveRenovationCalculator({ info: data }).then(res => { // console.log(res) if (res.success) { wx.showToast({ title: '计算成功', icon: 'none' }) } else { console.log(res.msg) } }) }, // 获取计算器配置 getCalculatorOption () { getBjParamConfig().then(res => { this.setData({ calculatorOptions: res.data }) }) getDictData({ code: 'WEIXIN_DEFAULT_IMGS', label: 'JISUAN_BG' }).then(res => { this.setData({ background: res.data.code }) }) }, onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })