jiangping
2024-07-16 0d3fc39d118fe82335b4a02624b17d60db53d2ef
wechat_jiaxuan/pages/calculator/index.js
@@ -1,7 +1,7 @@
// pages/calculator/index.js
// import { imageUrl } from '../../utils/config'
// import { calculatorOption, calculatorSave, decodePhone, bindPhone } from '../../api/index'
import { getBjParamConfig, saveRenovationCalculator } from '../../api/index'
import { getBjParamConfig, saveRenovationCalculator, getDictData, getWxMiniPhone, binDingPhone } from '../../api/index'
// import Ls from '../../utils/storage'
// let ls = new Ls
Page({
@@ -10,7 +10,7 @@
   * 页面的初始数据
   */
  data: {
    // background: imageUrl + 'calculator/background.jpg',
    background: '',
    userPhone: '',
    type: '',
    info: '',
@@ -21,7 +21,8 @@
      '一室一厅', '两室一厅', '两室两厅', '三室两厅',
      '四室两厅', '五室两厅及以上'
    ],
    calculatorOptions: [],
    calculatorOptions: {},
    activeList: [],
    showPopup: false,
    activePicker: '',
    pickerIndex: 0,
@@ -38,7 +39,6 @@
      that.setData({ userPhone: userInfo.phone })
    }
  },
  // 返回上一页
  navigateBack () {
    wx.navigateBack({
      delta: 1,
@@ -83,24 +83,21 @@
  
  // 获取用户手机号
  getPhoneNumber (e) {
    // console.log(e)
    let that = this
    decodePhone({ code: e.detail.code })
      .then(res => {
        if (res.phone === undefined || res.phone.length === null || !res.phone) {
          wx.showToast({
            title: res.msg,
            icon: 'none'
          })
        } else {
          bindPhone({ phone: res.phone })
            .then(newInfo => {
              ls.set('userInfo', newInfo.member)
              that.setData({ userPhone: res.phone })
              that.submit()
            })
    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()
        }
      })
    })
  },
  // 立即计算
@@ -110,7 +107,7 @@
    const res = wx.getStorageSync('member')
    
    if (userPhone) {
      let { type, info, area, money, typeArray, infoArray, calculatorOptions: options } = this.data
      let { type, info, area, money, typeArray, infoArray, calculatorOptions } = this.data
      let submitData = {}
      submitData.name = res.name
      submitData.phone = res.phone
@@ -144,16 +141,34 @@
        return false
      }
      submitData = ['房屋类型:' + typeArray[type], '户型信息:' + infoArray[info], '房屋面积:' + area + '㎡', '装修预算:' + money + '万元'].join('-')
      for (let i in options) {
        options[i].money = (money * options[i].rate / 100).toFixed(2)
        let childList = options[i].childList
        for(let j in childList) {
          childList[j].money = (money * childList[j].rate / 100).toFixed(2)
      // 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)
          })
        }
      }
      this.setData({ calculatorOptions: options, showResultMoney: true, containerContentStyle: 'auto' })
      this.submitCalculatorResult(submitData)
      })
      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' })
    }
  },
@@ -177,6 +192,12 @@
    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 () {