user-table.js 5.03 KB

import {
  getBindtapData,
  checkMobile,
} from '../../utils/util';

let app = getApp();
Page({
  data: {
    tableIndex: 0, //0填写 1回显
    receiverName: "",
    receiverMobile: "",
    receiverAddress: "",
    addressStr: "", // 省市区合并地址
    region: [],
    regionStr: "",
    prize: {},
    wishInfo: {},
    order: {},
  },
  onShareAppMessage() {},
  onLoad(options) {
    // let wishInfo = options;
    let wishInfo = app.globalData.giftData;
    let order = wishInfo.order;
    console.log("user-table wishInfo:", wishInfo);
    console.log("user-table order:", order);
    this.setData({
      wishInfo: wishInfo,
      order: order
    })
    if (order.associateMobile) {
      // 如果初始化回显,则要设置 表单信息
      // 显示省市区
      this.setData({
        receiverName: order.associateName,
        receiverMobile: order.associateMobile,
        receiverAddress: order.address,
        regionStr: order.province + order.city + order.district,
      })
      this.setStatus(1);
    } else {
      this.setStatus(0);
    }
  },

  /**
   * 提交表单按钮
   * @param {*} evt
   */
  onSubmitHandler(evt) {
    let _this = this;
    this.checkTable().then((result) => {
      wx.showModal({
        content: '提交确认?',
        success(res) {
          if (res.confirm) {
            _this.doSubmit();
          } else if (res.cancel) {}
        }
      })
    })
  },

  // 检查表单
  checkTable() {
    return new Promise((resolve, reject) => {
      let wishInfo = this.data.wishInfo;
      let order = wishInfo.order;
      let {
        receiverName,
        receiverMobile,
        receiverAddress,
        region,
      } = this.data;
      let receiverProvince = region[0];
      let receiverCity = region[1];
      let receiverDistrict = region[2];

      let tips = "";
      if (!receiverName) {
        tips = "请输入姓名";
        this.showTips(tips);
        reject();
        return;
      }
      if (!receiverMobile) {
        tips = "请输入手机号码";
        this.showTips(tips);
        reject();
        return;
      }
      if (!checkMobile(receiverMobile)) {
        tips = "请输入正确的手机号";
        this.showTips(tips);
        reject();
        return;
      }
      if (!receiverProvince || !receiverCity || !receiverDistrict) {
        tips = "请选择区域";
        this.showTips(tips);
        reject();
        return;
      }
      if (!receiverAddress) {
        tips = "请填写地址";
        this.showTips(tips);
        reject();
        return;
      }
      resolve();
    });
  },

  /**
   * 提交表单
   * @param {*} evt
   */
  doSubmit() {
    let wishInfo = this.data.wishInfo;
    let order = wishInfo.order;
    let {
      receiverName,
      receiverMobile,
      receiverAddress,
      region,
    } = this.data;
    let receiverProvince = region[0];
    let receiverCity = region[1];
    let receiverDistrict = region[2];


    let data = {
      instanceCode: wishInfo.instanceCode,
      associateName: receiverName,
      associateMobile: receiverMobile,
      province: receiverProvince,
      city: receiverCity,
      district: receiverDistrict,
      address: receiverAddress,
    }

    // 提交完毕
    app.post({
      url: app.api.wishbillAddressSubmit,
      data: data
    }).then((result) => {
      app.post({
        url: app.api.wishbillGiftQuery,
        data: {
          instanceCode: order.instanceCode
        }
      }).then((result) => {
        order = result.order
        this.setData({
          order: order
        })
        this.setStatus(1);
      })
    })

  },

  // 设置显示状态 0:填写  1:回显
  setStatus(tableIndex) {
    if (tableIndex == 1) {
      // 回显,拼接完整地址
      this.refreshFullAddress();
    }
    this.setData({
      tableIndex: tableIndex
    })
    console.log("tableIndex:", tableIndex);
  },
  /**
   * 配置完整地址
   */
  refreshFullAddress() {
    let order = this.data.order;
    let addressStr = `${order.province}${order.city}${order.district}${order.address}`;
    console.log("addressStr:", addressStr);
    this.setData({
      addressStr: addressStr
    })
  },
  /**
   * 返回心愿单页面
   * @param {*} evt
   */
  onWishHandler(evt) {
    app.router.push({
      openType: "reLaunch",
      path: "wish"
    })
  },

  bindNameInput(e) {
    this.setData({
      receiverName: e.detail.value
    })
  },
  bindPhoneInput(e) {
    this.setData({
      receiverMobile: e.detail.value
    })
  },
  bindAddressInput(e) {
    this.setData({
      receiverAddress: e.detail.value
    })
  },
  bindRegionChange(e) {
    let region = e.detail.value;
    let regionStr = "";
    if (region.length > 0) {
      regionStr = region.join("");
    }
    this.setData({
      region,
      regionStr
    })
  },
  showTips(tips) {
    wx.showToast({
      title: tips,
      icon: 'none'
    })
  },
  // 子组件事件
  evtcomp(evt) {
    let {
      name,
      data
    } = evt.detail;
    switch (name) {

      case "_evt_hide":
        break;

      default:
        break;
    }
  },
})