const navigationBarHeight = (getApp().statusBarHeight + 50) + 'px'
let config = require("../../../config/config.js");
let util = require("../../../utils/util");
let Http = require("../../../utils/HttpBasics");
let app = getApp();
const imgurl = require("../../../utils/imgurl");
const QR = require("../../../utils/memberqrcode.js");
Page({
  /**
   * 页面的初始数据
   */
  data: {
    payOrderNo:"",//评价订单id
    evaluateFlag:false,//控制评价显隐藏
    serviceUrl:'',//客服外部链接
    dynamicRq: "",
    expiredSeconds: 0,
    showhieRq: false,
    mouldType: 0,
    showFlag: false,
    navigationBarHeight,
    upDataRqUrlF: imgurl.upDataRqF.url,
    succUrl: imgurl.succ.url,
    spcodeUrl: imgurl.spcode.url,
    chevronUrl: imgurl.chevron.url,
    teljpgUrl: imgurl.teljpg.url,
    newUrl: imgurl.new1.url,
    weixinTitle: imgurl.weixinTitle.url,
    lineUrl: imgurl.line.url,
    wm01Url: imgurl.wm01.url,
    wm02Url: imgurl.wm02.url,
    wm03Url: imgurl.wm03.url,
    wm04Url: imgurl.wm04.url,
    showModalStatus: false,
    flag: 0,
    order: null,
    orderId: null,
    //存储计时器
    setInter: "",
    mystatus: '',
    staticGamedata: {},
    showIf: false,
    showPage: false,
    showButton: false,
    cardDetail: null,
    supportTransfer: '',
    cardIf: false,
    contentType: 0,
    orderFlag: false, //判断是不是线上配送
  },
  copeCode(e) {
    let code = e.currentTarget.dataset.text
    tt.setClipboardData({
      data: code,
      success: function () {
        tt.showToast({
          title: '复制成功',
          icon: "none"
        })
      }
    })
  },
  gokuaidi(e) {
    let nu = e.currentTarget.dataset.nu
    tt.navigateToMiniProgram({
      appId: 'wx6885acbedba59c14',
      path: `pages/result/result?nu=${nu}&com=&querysource=third_xcx`
    })
  },

  setShow() {
    this.setData({
      showFlag: true
    })
  },
  hieShow() {
    this.setData({
      showFlag: false
    })
  },

  goDetail() {
    tt.navigateTo({
      url: `/pages/coupon/detail/index?couponChannelId=${this.data.order.couponChannelId}`,
      success: (res) => {

      },
      fail: (res) => {

      },
    });
  },
  refund(){//退款
    Http.post({
      url:config.api.refund,
      data:{
        orderId:this.data.order.id
      }
    }).then(res=>{
      tt.navigateTo({
        url: `/pages/refund/refund?id=${this.data.order.id}`,
        success: (res) => {

        },
        fail: (res) => {

        },
      });
    }).catch(err=>{
      tt.showToast({
        title: err.message ? err.message : err.data, // 内容
        icon: "none"
      });
    })
  },
  goRefund(e) {
    let this_ = this
    if(this_.data.order.couponOrderStatus==0){
      tt.showModal({
        title: "申请退款",
        content: "提交申请退款",
        confirmText: "确定",
        success(res) {
          if (res.confirm) {
            
            this_.refund()
            console.log("confirm, continued");
          } else if (res.cancel) {
            console.log("cancel, cold");
          } else {
            // what happend?
          }
        },
        fail(res) {
          console.log(`showModal调用失败`);
        },
      });
    }else if(this_.data.order.couponOrderStatus==3){//退款中
      tt.navigateTo({
        url: `/pages/refund/refund?id=${this.data.order.id}`,
        success: (res) => {

        },
        fail: (res) => {

        },
      });
    }
    

  },

  //刷新订单
  updetail() {
    let that = this
    let url = config.api.orderDetail

    Http.get({
      url: url,
      data: {
        orderId: this.data.orderId
      }
    }).then(res => {
      tt.hideLoading();
      var createDate = util.formatTime(res.data.orders[0].createDate, "yyyy-MM-dd hh:mm:ss");
      let tempData = res.data.orders[0]
      tempData.deliveryInfo = tempData.deliveryInfo ? JSON.parse(tempData.deliveryInfo) : ""
      tempData.itemGroup = tempData.itemGroup ? JSON.parse(tempData.itemGroup) : ""
      tempData.validStartDate = util.formatTime(tempData.validStartDate, "yyyy-MM-dd")
      tempData.validEndDate = util.formatTime(tempData.validEndDate, "yyyy-MM-dd")

      that.setData({
        order: tempData,
        showPage: true,
        createDate: createDate,
        composeOrderType: tempData.composeOrderType,
        contentType: tempData.contentType ? tempData.contentType : 0,
        orderFlag: tempData.type == 11 ? true : false //判断是不是线上配送
      })
      if (tempData.couponOrderId&&(tempData.orderStatus != 0&&tempData.orderStatus != 2)) { //0未付款 1已支付 2已取消 3退款中 4已退款
        that.setRq()
        // that.upStatus()
        let setInter = setInterval(() => {
          if (tempData.couponOrderStatus == 0) {
            Http.get({
              url: config.api.getStatus,
              data: {
                couponOrderId: tempData.couponOrderId
              }
            }).then(res => {
              console.log(res);
              that.setData({
                couponOrderStatus: res.data.CouponOrderStatus
              });
              if (res.data.CouponOrderStatus == 1 || res.data.CouponOrderStatus == 3) {
                /**
                 * 动态改变上一级页面的核销状态
                 */
                // that.getStaticGame()
                //直接调用上一个页面的setData()方法，把数据存到上一个页面中去
                clearInterval(that.data.setInter);
                clearInterval(that.data.templTiem);
                that.updetail()
                that.setData({
                  mystatus: res.data.CouponOrderStatus
                });
              }
            })
              .catch(err => {
                tt.showToast({
                  title: err.errMsg,
                  icon: 'none',
                  duration: 2000,
                  mask: false
                });
              })
          }
        }, 2000);
        that.setData({
          setInter: setInter
        })
      }
      if(tempData.couponOrderStatus&&tempData.couponOrderStatus==1){//核销后
        that.goIfEvaluate()//判断订单是否能评价
      }
    })
      .catch(error => {
        tt.hideLoading();
        tt.showModal({
          title: '提示',
          content: error.errMsg,
          showCancel: false
        })
      })
  },
  //确认收货
  verify() {
    Http.post({
      url: config.api.verify,
      data: {
        couponOrderId: this.data.order.couponOrderId
      }
    }).then(res => {
      tt.showToast({
        title: '签收成功',
        icon: "none"
      })
      this.updetail()
    }).catch(err => {
      tt.showModal({
        title: '提示',
        content: err.message ? err.message : err.data,
        showCancel: false
      })
    })
  },
  phone: function (e) {
    let that = this;
    console.log(e);
    tt.makePhoneCall({
      phoneNumber: e.currentTarget.dataset.merchantlinkphone
    });
  },
  /**
   * 跳转到门店列表的详情页面
   */
  gotoDetail(e) {
    tt.navigateTo({
      url: `/pages/index/searchbar/detail/index?id=${e.currentTarget.dataset.id}`
    })
  },
  getUserInfo: function () {
    let that = this;
    // 获取用户信息
    Http.get({
      url: config.api.getScore,
      data: {}
    })
      .then(res => {
        console.log(res)
        that.setData({
          userName: res.data.nickName,
          avatarUrl: res.data.avatarUrl
        })
      })
  },
  onShareAppMessage: function (res) {
    app.globalData.previewFlag = true
    if (res.from === 'button') {
      console.log(res, 3333333333333333333333)
      // 来自页面内转发按钮
      let _this = this;
      return {
        title: _this.data.userName + '赠送您一张' + _this.data.order.title,
        path: '/pages/index/index?couponChannelId=' + this.data.order.couponChannelId + '&cuserId=' + this.data.order.cuserId + '&couponId=' + this.data.order.productId + '&coverImg=' + this.data.order.coverImg + '&userName=' + this.data.userName + '&avatarUrl=' + this.data.avatarUrl + '&couponOrderId=' + this.data.order.couponOrderId + '&updateDate=' + this.data.order.updateDate,
        imageUrl: this.data.order.coverImg,
        success: function (res) {
          // 转发成功
        },
        fail: function (res) {
          // 转发失败
        }
      }
    } else {
      console.log(res, 444444444444444444)
    }
  },

  createQrCode: function (url, canvasId, cavW, cavH) {
    //调用插件中的draw方法，绘制二维码图片
    let that = this;
    QR.api.draw(url, canvasId, cavW, cavH, function (res) {
      that.setData({
        tempFilePath: res
      })
    });
  },

  setRq() {
    let _this = this
    _this.setData({
      showhieRq: false,
    })
    Http.get({//获取动态二维码
      url: config.api.dynamicId,
      data: {
        couponOrderId: _this.data.order.couponOrderId
      }
    }).then(res => {
      console.log(res, "res")
      _this.setData({
        dynamicRq: res.data.dynamicId,
        expiredSeconds: res.data.expiredSeconds
      })

      let url = JSON.stringify({
        END: "C",
        TYPE: "couponorder",
        ID: _this.data.dynamicRq
      })

      let inre = setInterval(() => {
        if (_this.data.expiredSeconds > 1) {
          _this.setData({
            expiredSeconds: _this.data.expiredSeconds - 1
          })
          // console.log("有效", _this.data.expiredSeconds)
        } else {
          // console.log("无效", _this.data.expiredSeconds)
          clearInterval(_this.data.templTiem)
          _this.setData({
            showhieRq: true
          })
        }
      }, 1000)
      _this.setData({
        templTiem: inre
      })
      _this.createQrCode(url, "qrcode", 350, 350);
    }).catch(err => {
      tt.showToast({
        title: err.message,
        icon: 'none',
        duration: 2000,
        mask: false
      });
    })
  },

  goPaySnapshoot(e) {
    let id = e.currentTarget.dataset.id;
    tt.navigateTo({
      url: `/pages/paySnapshoot/paySnapshoot?id=${id}`,
      success: (res) => {

      },
      fail: (res) => {

      },
    });
  },
  powerDrawer: function (e) {
    let that = this;
    console.log(e)
    // couponOrderStatus
    // 0 未使用
    // 1 已使用
    // 2 已过期
    // 3 已经退款
    if (that.data.mystatus == "" || that.data.mystatus == undefined) {
      tt.navigateTo({
        url: `/pages/orderquanma/index?quancode=${e.currentTarget.dataset.quancode
          }&title=${e.currentTarget.dataset.title}&subtitle=${e.currentTarget.dataset.subtitle
          }&remark=${e.currentTarget.dataset.remark}&couponorderstatus=${e.currentTarget.dataset.couponorderstatus}&validstatus=${e.currentTarget.dataset.validstatus}
          &contentType=${that.data.contentType}`
      });
    } else {
      tt.navigateTo({
        url: `/pages/orderquanma/index?quancode=${e.currentTarget.dataset.quancode
          }&title=${e.currentTarget.dataset.title}&subtitle=${e.currentTarget.dataset.subtitle
          }&remark=${e.currentTarget.dataset.remark}&couponorderstatus=${that.data.mystatus}&validstatus=${e.currentTarget.dataset.validstatus}
          &contentType=${that.data.contentType}`
      });
    }
  },
  gotogame: function () {
    let that = this;
    tt.redirectTo({
      url: '/pages/game/index?url=' + that.data.staticGamedata.url + "&id=" + that.data.staticGamedata.id + "&gameId=" + that.data.staticGamedata.gameId,
    })
  },
  // 买完卡跳转到立即使用页面
  gotoUse: function () {
    tt.navigateTo({
      url: '/pages/cardorder/index/index'
    })
  },
  // 获取游戏
  getStaticGame(token) {
    let _this = this;
    Http.get({
      url: config.api.getGame,
      data: {
        triggleAction: 3 // 购买触发
      }
    }).then(res => {
      if (res.data.id) {
        _this.setData({
          showIf: true
        })
      }
      _this.setData({
        staticGamedata: res.data
      })
    })
      .catch(err => {
        console.log(err);
      })
  },
  goEvaluate(){
    let _this = this
    tt.rateAwemeOrder({
      orderId: _this.data.payOrderNo,
      success({ result }) {
        console.log(result);
        if (result) {
          tt.navigateBack({
            delta: 1,
            success: (res) => {
              
            },
            fail: (res) => {
              
            },
          });
          // 用户已经评价的逻辑
        } else {
          // 用户没有评价的逻辑
        }
      },
      fail(err) {
        console.log(err);
      },
    });
  },

  goIfEvaluate(){
    let _this = this
    Http.get({
      url:config.api.getchanId,
      data:{
        id:_this.data.order.couponOrderId
      }
    }).then(res=>{
      tt.canRateAwemeOrders({
        orderIds: [res.data.payOrderNo],
        success({ result }) {
          console.log("result", result);
          _this.setData({
            evaluateFlag:result[0],
            payOrderNo:res.data.payOrderNo
          })
        },
        fail(err) {
          console.log(err);
        },
      });
    }).catch(err=>{
      tt.showToast({
        title: err.message ? err.message : err.data, // 内容
        icon: "none"
      });
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getSeUrl()
    this.setData({
      mouldType: app.globalData.mouldType
    })
    let that = this;
    // if (options.dingdan && options.dingdan == "order") {

    // }
    that.setData({
      orderId: options.orderId,

    });
    tt.hideShareMenu()
    if (options.cardIf) {//转赠 展示不需
      that.setData({
        cardIf: true
      })
    }
    tt.showLoading({
      title: "加载中"
    });

    

  },
  onShow: function () {
    let that = this;
    that.setData({
      showButton: false
    })
    that.updetail()
  },
  getSeUrl(){//获取客服链接 
    const openId = tt.getStorageSync('openId');
    Http.post({
      url:config.api.getServiceUrl,
      data:{
        appid: app.globalData.appId,
        openid: openId
      }
    }).then(res=>{
      this.setData({
        serviceUrl:res.data?res.data:''
      })
      if(res.data){
        tt.setStorageSync('serviceData', res.data);
      }
    })
  },
  goWebView(){
    let _this = this
    tt.navigateTo({
      url: `/pages/serviceWebView/serviceWebView`,
      success: (res) => {
        
      },
      fail: (res) => {
        
      },
    });
  },
  /**
   * 去拼团
   */
  goToOrderGroup(orderId, orderGroupId, _this) {
    let that = this;
    // 支付成功
    Http.post({
      url: config.api.toOrderGroup,
      data: {
        id: orderGroupId,
        orderId,
        couponId: _this.data.order.productId
      }
    })
      .then(res => {
        tt.redirectTo({
          url: `/pages/spellDetail/index?orderId=${orderId}&couponId=${_this.data.order.productId}&orderGroupId=${res.data.orderGroupId}`
        });
      })
      .catch(err => {
        console.log(err);
      })
    // return;
  },
  /**
   * 发起支付
   */
  orderFunc(e) {
    var that = this;
    that.setData({
      showButton: true
    })
    tt.showLoading({
      title: "加载中..."
    });

    const orderId = "" + that.data.orderId;
    if (that.data.order.payment > 0) {
      // 支付金额不为0
      Http.post({
        url: config.api.payOrderCreate,
        data: {
          orderId: orderId,
          composeOrderType: that.data.composeOrderType
        }
      }).then(res => {
        var payOrderId = "" + res.data.outOrderNo;
        tt.hideLoading();
        tt.pay({
          service: 5,
          orderInfo: {
            order_id: res.data.orderId,
            order_token: res.data.token,
          },
          success: res => {
            tt.showLoading({
              title: '订单正在处理中...',
            })
            if (res.code == 0) {
              setTimeout(function () {
                tt.hideLoading()
              }, 5000)
              that.payOrderUpdate(that.data.orderId, payOrderId, 1, '', '', that); // 支付成功
              if (res.errMsg == "requestPayment:ok") {
                if (that.data.order.type == 100) {
                  tt.setStorage({
                    key: 'couponNum2',
                    data: "couponNum2"
                  })
                } else if (that.data.order.type != 5) {
                  tt.setStorage({
                    key: 'couponNum',
                    data: "couponNum"
                  })
                }
              }
            } else if (res.code === 1) {
              that.setData({
                showButton: false
              })
              tt.hideLoading();
              tt.showToast({
                title: '支付超时', // 内容
                icon: "none"
              });

            } else if (res.code === 2) {
              that.setData({
                showButton: false
              })
              tt.hideLoading();
              tt.showToast({
                title: '支付失败', // 内容
                icon: "none"
              });

            } else if (res.code === 3) {
              that.setData({
                showButton: false
              })
              tt.hideLoading();
              tt.showToast({
                title: '支付关闭', // 内容
                icon: "none"
              });
            } else if (res.code === 4) {
              that.setData({
                showButton: false
              })
              tt.hideLoading();
              tt.showToast({
                title: '支付取消', // 内容
                icon: "none"
              });
            } else if (res.code === 9) {
              that.setData({
                showButton: false
              })
              tt.hideLoading();
              tt.showToast({
                title: '订单状态开发者自行获取', // 内容
                icon: "none"
              });
            }
          },
          fail: res => {
            that.setData({
              showButton: false
            })
            that.payOrderUpdate(that.data.orderId, payOrderId, 2, '', 'fail', that);
            return;
          },
        });
      }).catch(err => {
        tt.hideLoading();
        that.setData({
          showButton: false
        })
        tt.showModal({
          title: "抱歉",
          content: err.message,
          showCancel: false
        })
      });
    } else {
      // 免费券
      that.payOrderUpdate(orderId, "0", 1, '', 'free') // 支付成功
      if (that.data.order.type == 100) {
        tt.setStorage({
          key: 'couponNum2',
          data: "couponNum2"
        })
      } else if (that.data.order.type != "5") {
        tt.setStorage({
          key: 'couponNum',
          data: "couponNum"
        })
      }
      tt.showToast({
        title: "支付成功",
        duration: 2000,
        image: imgurl.success.url,
      });
    }
  },
  /**
   * 支付订单更新
   */
  payOrderUpdate: (orderId, payOrderId, status, reason, type, _this) => {
    // 支付成功
    Http.post({
      url: config.api.payOrderUpdate,
      data: {
        payOrderId: payOrderId,
        composeOrderId: orderId,
        status: status,
        reason: reason
      }
    })
      .then(res => {
        tt.hideLoading();
        _this.setData({
          showButton: false
        })
        if (!type && type != 'free') {
          tt.showToast({
            title: "购买成功",
            duration: 2000,
            image: imgurl.success.url,
            mask: false,
            success: function () {
              tt.showLoading({
                title: "加载中..."
              });
              setTimeout(function () {
                tt.hideLoading();
              }, 1600);
              setTimeout(() => {
                let url = ""
                if (_this.data.orderFlag) {
                  tt.redirectTo({
                    url: `/pages/order/detail/index?orderId=${orderId}&dingdan=order`
                  });
                } else {
                  tt.redirectTo({
                    url: `/pages/order/detail/index?orderId=${orderId}`
                  });
                }

              }, 1600);
            }
          });
        } else if (type == 'free') {
          tt.redirectTo({
            url: `/pages/order/detail/index?orderId=${orderId}`
          });
        }
      })
      .catch(err => {
        console.log(err)
        if (!type) {
          setTimeout(function () {
            _this.payOrderUpdate(orderId, payOrderId, status, reason, type, _this);
          }, 1500)
        }
      });
  },
  onUnload: function () {
    let that = this;
    clearInterval(that.data.setInter);
    clearInterval(that.data.templTiem);
  },
  onHide: function () {
    let that = this;
    clearInterval(that.data.setInter);
    clearInterval(that.data.templTiem);
  },
});

