"use strict";
const common_vendor = require("../../../common/vendor.js");
const utils_emitter = require("../../../utils/emitter.js");
const api_request = require("../../../api/request.js");
require("../../../common/global.js");
if (!Array) {
  const _easycom_uni_popup2 = common_vendor.resolveComponent("uni-popup");
  _easycom_uni_popup2();
}
const _easycom_uni_popup = () => "../../../uni_modules/uni-popup/components/uni-popup/uni-popup.js";
if (!Math) {
  (addressComponentVue + _easycom_uni_popup)();
}
const addressComponentVue = () => "../component/addressComponent.js";
const _sfc_main = {
  __name: "singleGoodOrder",
  setup(__props) {
    const sumprice = common_vendor.ref(0);
    const popup = common_vendor.ref(null);
    const addressRealInfo = common_vendor.ref({
      detailAddress: "请选择/添加地址"
    });
    const productObject = common_vendor.ref({});
    common_vendor.ref([]);
    const userInfo = common_vendor.wx$1.getStorageSync("userInfo");
    common_vendor.ref({});
    const totalInfo = common_vendor.ref([]);
    const note = common_vendor.ref("");
    const postCartArr = common_vendor.ref([]);
    const quantity = common_vendor.ref(1);
    common_vendor.onMounted(() => {
      getFonts();
      utils_emitter.emitter.on("close", () => {
        close();
      });
      utils_emitter.emitter.on("addressInfo", (val) => {
        addressRealInfo.value = val;
      });
    });
    common_vendor.onLoad((options) => {
      totalInfo.value = JSON.parse(options.cartInfo);
      console.log("options.cartInfo-->", JSON.parse(options.cartInfo));
      console.log("totalInfo.value-->", common_vendor.toRaw(totalInfo.value));
      getProduct();
    });
    common_vendor.onShow(() => {
      userInfo.value = common_vendor.wx$1.getStorageSync("userInfo");
      getDefaultAddress();
    });
    const close = () => {
      popup.value.close();
    };
    const loadPop = () => {
      popup.value.open("bottom");
    };
    const getDefaultAddress = async () => {
      const res = await common_vendor.index.request({
        url: api_request.baseUrl + "/address/list",
        method: "POST",
        header: {
          cookie: common_vendor.wx$1.getStorageSync("cookie")
        }
      });
      for (let key in res.data.data) {
        if (res.data.data[key].isDefault === 1) {
          addressRealInfo.value = res.data.data[key];
        }
      }
    };
    const createOrder = async () => {
      console.log("地址信息-->", addressRealInfo.value);
      formatArr();
      console.log("postCartArr--->", postCartArr.value);
      const resOrder = await common_vendor.index.request({
        //向后端发送生成订单请求
        url: api_request.baseUrl + "/order/add",
        method: "POST",
        header: {
          cookie: common_vendor.wx$1.getStorageSync("cookie")
        },
        data: {
          orderType: productObject.value.type === "服务类" ? "service" : "product",
          userName: userInfo.userName,
          addressId: addressRealInfo.value.id,
          //地址信息id
          // contactsId: null, //联系人信息id
          couponId: null,
          //优惠卷id
          note: note.value,
          orderItemMainInfoAddRequestList: common_vendor.toRaw(postCartArr.value)
        }
      });
      console.log("后台返回订单响应==>", resOrder.data);
      if (resOrder.data.code === 1) {
        wxPay(resOrder.data.data);
      }
    };
    const getProduct = async () => {
      const res = await common_vendor.index.request({
        url: api_request.baseUrl + "/goods/getById",
        method: "POST",
        header: {
          cookie: common_vendor.wx$1.getStorageSync("cookie")
        },
        data: { id: totalInfo.value }
      });
      console.log("展示订单页面的商品信息-->", res.data);
      if (res.data.code === 1) {
        dealRes(res);
      }
    };
    const dealRes = (res) => {
      productObject.value = res.data.data;
      sumprice.value = res.data.data.price;
      console.log("productArr--->", productObject.value);
    };
    const shortNum = () => {
      if (quantity.value > 1) {
        quantity.value -= 1;
        sumprice.value = common_vendor.round(sumprice.value - productObject.value.price, 2);
      }
    };
    const addNum = () => {
      if (quantity.value < productObject.value.inventory) {
        quantity.value += 1;
        sumprice.value = common_vendor.round(sumprice.value + productObject.value.price, 2);
      }
    };
    const formatArr = () => {
      postCartArr.value.splice(0, postCartArr.value.length);
      postCartArr.value.push({
        goodId: totalInfo.value,
        quantity: quantity.value
      });
      console.log(postCartArr.value);
    };
    const wxPay = async (oid) => {
      try {
        const res = await common_vendor.index.request({
          url: api_request.baseUrl + "/wechat/payment/create",
          method: "POST",
          header: {
            "cookie": common_vendor.wx$1.getStorageSync("cookie")
          },
          data: { id: oid }
        });
        const paymentData = res.data.data;
        common_vendor.wx$1.requestPayment({
          appid: paymentData.appId,
          nonceStr: paymentData.nonceStr,
          package: paymentData.packageVal,
          paySign: paymentData.paySign,
          timeStamp: paymentData.timeStamp,
          signType: paymentData.signType,
          success(res2) {
            common_vendor.index.showModal({
              content: "支付成功",
              showCancel: false
            });
            common_vendor.index.redirectTo({
              url: "/pages/order/product-paysuccess/product-paysuccess?oid=" + JSON.stringify(oid)
            });
            console.log("支付成功res--->", res2);
          },
          fail(e) {
            common_vendor.index.showModal({
              content: "支付失败,原因为:" + e.errMsg,
              showCancel: false
            });
            common_vendor.index.redirectTo({
              url: "/pages/order/product-paysuccess/product-paysuccess?oid=" + JSON.stringify(oid)
            });
            console.log("e.errMsg--->", e.errMsg);
          }
        });
      } catch (error) {
        console.error("支付请求失败", error);
        common_vendor.index.showModal({
          content: "支付请求失败,请重试。",
          showCancel: false
        });
      }
    };
    const getFonts = () => {
      common_vendor.index.loadFontFace({
        family: "FangZhengFonts",
        source: `url("https://carbon2.obs.cn-north-4.myhuaweicloud.com/fonts/FangZhengFonts.TTF")`,
        success: (res) => {
          console.log("success", res);
        },
        fail: (err) => {
          console.log("err", err);
        }
      });
    };
    const textAssign = (e) => {
      note.value = e.detail.value;
      console.log("note--->", note.value);
    };
    return (_ctx, _cache) => {
      return {
        a: common_vendor.t(addressRealInfo.value.region),
        b: common_vendor.t(addressRealInfo.value.detailAddress),
        c: common_vendor.o(loadPop),
        d: common_vendor.t(addressRealInfo.value.name),
        e: common_vendor.t(addressRealInfo.value.phone),
        f: productObject.value.goodImg.split(";")[0],
        g: common_vendor.t(productObject.value.name),
        h: common_vendor.t(productObject.value.type),
        i: common_vendor.t(productObject.value.price),
        j: common_vendor.o(shortNum),
        k: common_vendor.t(quantity.value),
        l: common_vendor.o(addNum),
        m: common_vendor.t(quantity.value),
        n: common_vendor.t(sumprice.value),
        o: common_vendor.t(sumprice.value),
        p: common_vendor.o(textAssign),
        q: common_vendor.t(sumprice.value),
        r: common_vendor.o(createOrder),
        s: common_vendor.sr(popup, "2ef34a39-0", {
          "k": "popup"
        }),
        t: common_vendor.p({
          ["background-color"]: "#fff"
        })
      };
    };
  }
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2ef34a39"], ["__file", "D:/微信小程序/课设整合/匠承非遗小程序端/jiangchengfeiyi-xiaochengxu/pages/order/singleGoodOrder/singleGoodOrder.vue"]]);
wx.createPage(MiniProgramPage);