"use strict";
const common_vendor = require("../../common/vendor.js");
const modules_api_AppServer = require("../../modules/api/AppServer.js");
const common_assets = require("../../common/assets.js");
const _sfc_main = {
  data() {
    return {
      statusBarHeight: 0,
      activeTab: "all",
      loading: false,
      appointmentList: [],
      pagination: { page: 1, limit: 10, total: 0 },
      hasMore: true,
      showDetailPopup: false,
      currentDetail: {}
    };
  },
  onLoad(options) {
    const systemInfo = common_vendor.index.getSystemInfoSync();
    this.statusBarHeight = systemInfo.statusBarHeight || 0;
    if (options.tab)
      this.activeTab = options.tab;
    this.fetchAppointments();
  },
  methods: {
    goBack() {
      common_vendor.index.navigateBack({ delta: 1 });
    },
    switchTab(tab) {
      if (this.activeTab === tab)
        return;
      this.activeTab = tab;
      this.pagination.page = 1;
      this.appointmentList = [];
      this.hasMore = true;
      this.fetchAppointments();
    },
    async fetchAppointments() {
      var _a;
      if (this.loading)
        return;
      this.loading = true;
      try {
        const appserver = new modules_api_AppServer.AppServer();
        const params = { page: this.pagination.page, limit: this.pagination.limit };
        if (this.activeTab === "inProgress")
          params.status = "in-progress";
        else if (this.activeTab === "completed")
          params.status = "completed";
        const res = await appserver.GetAppointments(params);
        if (res.success || res.code === 0) {
          const newList = res.data || [];
          if (this.pagination.page === 1)
            this.appointmentList = newList;
          else
            this.appointmentList = [...this.appointmentList, ...newList];
          this.pagination.total = ((_a = res.pagination) == null ? void 0 : _a.total) || 0;
          this.hasMore = newList.length >= this.pagination.limit;
        }
      } catch (e) {
        common_vendor.index.__f__("error", "at pages/me/my-appointments-page.vue:395", "获取预约列表失败:", e);
      } finally {
        this.loading = false;
      }
    },
    loadMore() {
      if (!this.hasMore || this.loading)
        return;
      this.pagination.page++;
      this.fetchAppointments();
    },
    showDetail(item) {
      this.currentDetail = item;
      this.showDetailPopup = true;
    },
    closeDetail() {
      this.showDetailPopup = false;
    },
    getServiceTitle(item) {
      if (!item)
        return "-";
      const locale = this.$i18n.locale;
      if (item.service) {
        if (locale === "zh")
          return item.service.titleZh || item.service.titleEn || "-";
        else if (locale === "pt")
          return item.service.titlePt || item.service.titleEn || "-";
        else
          return item.service.titleEn || item.service.titleZh || "-";
      }
      if (item.hotService) {
        if (locale === "zh")
          return item.hotService.name_zh || item.hotService.name_en || "-";
        else if (locale === "pt")
          return item.hotService.name_pt || item.hotService.name_en || "-";
        else
          return item.hotService.name_en || item.hotService.name_zh || "-";
      }
      return this.getServiceTypeText(item.serviceType) || "-";
    },
    getServiceTypeText(type) {
      const typeMap = {
        "travel": "全球机票代理",
        "flight": "全球机票代理",
        "hotel": "全球酒店预定",
        "vip_lounge": "全球机场贵宾室服务",
        "lounge": "全球机场贵宾室服务",
        "airport_transfer": "机场接/送机服务",
        "unaccompanied_minor": "无成人陪伴儿童代办",
        "rail_ticket": "高铁票代订",
        "train": "高铁票代订",
        "medical_consultation": "远程医疗问诊代理服务",
        "telemedicine": "远程医疗问诊代理服务",
        "special_needs": "特殊旅客定制服务代办",
        "special_passenger": "特殊旅客定制服务代办",
        "pet_transportation": "宠物托运代理",
        "pet_transport": "宠物托运代理",
        "guide_translation": "西班牙语专业导游/翻译服务",
        "visa_consultation": "签证咨询",
        "visa": "签证咨询",
        "exhibition_service": "墨西哥展会咨询与协办服务",
        "exhibition": "墨西哥展会咨询与协办服务",
        "air_logistics": "跨境航空物流/快递一站式服务",
        "sea_freight": "海运/清关一站式服务",
        "travel_planning": "旅游线路规划/咨询",
        "insurance_consultation": "跨境出行意外保险/国际财产保险咨询",
        "insurance": "跨境出行意外保险/国际财产保险咨询"
      };
      return typeMap[type] || type;
    },
    getContactInfo(item) {
      if (!item)
        return "-";
      return item.phone || item.wechatId || item.whatsapp || item.contactValue || "-";
    },
    getAllContactInfo(item) {
      if (!item)
        return "-";
      const contacts = [];
      if (item.phone)
        contacts.push((item.phoneCountryCode || "") + " " + item.phone);
      if (item.wechatId)
        contacts.push("微信: " + item.wechatId);
      if (item.whatsapp)
        contacts.push("WhatsApp: " + item.whatsapp);
      return contacts.length > 0 ? contacts.join("\n") : "-";
    },
    formatDate(dateStr) {
      if (!dateStr)
        return "-";
      const date = new Date(dateStr);
      return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`;
    },
    getStatusText(status) {
      const statusMap = {
        "pending": this.$t("myAppointment.statusPending") || "待处理",
        "confirmed": this.$t("myAppointment.statusConfirmed") || "已确认",
        "in-progress": this.$t("myAppointment.statusInProgress") || "进行中",
        "completed": this.$t("myAppointment.statusCompleted") || "已结束",
        "cancelled": this.$t("myAppointment.statusCancelled") || "已取消"
      };
      return statusMap[status] || status;
    },
    getStatusClass(status) {
      return {
        "status-in-progress": status === "in-progress" || status === "pending" || status === "confirmed",
        "status-completed": status === "completed",
        "status-cancelled": status === "cancelled"
      };
    },
    getCabinTypeText(type) {
      const map = { "economy": "经济舱", "premium_economy": "超级经济舱", "business": "商务舱" };
      return map[type] || type;
    },
    getMealPlanText(plan) {
      const map = { "breakfast": "早餐", "three_meals": "三餐", "all_inclusive": "全包" };
      return map[plan] || plan;
    },
    getSeatClassText(seatClass) {
      const map = { "first": "一等座", "second": "二等座", "third": "三等座" };
      return map[seatClass] || seatClass;
    }
  }
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return common_vendor.e({
    a: $data.statusBarHeight + "px",
    b: common_assets._imports_0,
    c: common_vendor.o((...args) => $options.goBack && $options.goBack(...args)),
    d: common_vendor.t(_ctx.$t("myAppointment.title") || "我的预约单"),
    e: common_vendor.t(_ctx.$t("myAppointment.all") || "全部"),
    f: $data.activeTab === "all" ? 1 : "",
    g: $data.activeTab === "all" ? 1 : "",
    h: common_vendor.o(($event) => $options.switchTab("all")),
    i: common_vendor.t(_ctx.$t("myAppointment.inProgress") || "进行中"),
    j: $data.activeTab === "inProgress" ? 1 : "",
    k: $data.activeTab === "inProgress" ? 1 : "",
    l: common_vendor.o(($event) => $options.switchTab("inProgress")),
    m: common_vendor.t(_ctx.$t("myAppointment.completed") || "已结束"),
    n: $data.activeTab === "completed" ? 1 : "",
    o: $data.activeTab === "completed" ? 1 : "",
    p: common_vendor.o(($event) => $options.switchTab("completed")),
    q: common_vendor.f($data.appointmentList, (item, k0, i0) => {
      return {
        a: common_vendor.t($options.getServiceTitle(item)),
        b: common_vendor.t($options.formatDate(item.createdAt)),
        c: common_vendor.t(item.realName || "-"),
        d: common_vendor.t($options.getContactInfo(item)),
        e: common_vendor.o(($event) => $options.showDetail(item), item.id),
        f: common_vendor.t($options.getStatusText(item.status)),
        g: common_vendor.n($options.getStatusClass(item.status)),
        h: item.id,
        i: common_vendor.o(($event) => $options.showDetail(item), item.id)
      };
    }),
    r: common_assets._imports_1$4,
    s: common_assets._imports_2$3,
    t: common_assets._imports_3$1,
    v: common_vendor.t(_ctx.$t("myAppointment.viewDetail") || "查看详情"),
    w: $data.loading
  }, $data.loading ? {
    x: common_vendor.t(_ctx.$t("common.loading"))
  } : {}, {
    y: !$data.loading && !$data.hasMore && $data.appointmentList.length > 0
  }, !$data.loading && !$data.hasMore && $data.appointmentList.length > 0 ? {
    z: common_vendor.t(_ctx.$t("common.noMore") || "没有更多了")
  } : {}, {
    A: $data.appointmentList.length === 0 && !$data.loading
  }, $data.appointmentList.length === 0 && !$data.loading ? {
    B: common_vendor.t(_ctx.$t("myAppointment.noAppointment") || "暂无预约记录")
  } : {}, {
    C: common_vendor.o((...args) => $options.loadMore && $options.loadMore(...args)),
    D: $data.showDetailPopup
  }, $data.showDetailPopup ? common_vendor.e({
    E: common_vendor.t(_ctx.$t("myAppointment.serviceDetail") || "服务详情"),
    F: common_assets._imports_4,
    G: common_vendor.o((...args) => $options.closeDetail && $options.closeDetail(...args)),
    H: common_vendor.t($options.getServiceTitle($data.currentDetail)),
    I: common_vendor.t($data.currentDetail.realName || "-"),
    J: common_vendor.t($options.formatDate($data.currentDetail.createdAt)),
    K: common_vendor.t($options.getAllContactInfo($data.currentDetail)),
    L: $data.currentDetail.appointmentDate
  }, $data.currentDetail.appointmentDate ? {
    M: common_vendor.t($data.currentDetail.appointmentDate)
  } : {}, {
    N: $data.currentDetail.tripType
  }, $data.currentDetail.tripType ? {
    O: common_vendor.t($data.currentDetail.tripType === "single" ? "单程" : "往返")
  } : {}, {
    P: $data.currentDetail.departureCity
  }, $data.currentDetail.departureCity ? {
    Q: common_vendor.t($data.currentDetail.departureCity)
  } : {}, {
    R: $data.currentDetail.arrivalCity
  }, $data.currentDetail.arrivalCity ? {
    S: common_vendor.t($data.currentDetail.arrivalCity)
  } : {}, {
    T: $data.currentDetail.departureDate
  }, $data.currentDetail.departureDate ? {
    U: common_vendor.t($data.currentDetail.departureDate)
  } : {}, {
    V: $data.currentDetail.returnDate
  }, $data.currentDetail.returnDate ? {
    W: common_vendor.t($data.currentDetail.returnDate)
  } : {}, {
    X: $data.currentDetail.cabinType
  }, $data.currentDetail.cabinType ? {
    Y: common_vendor.t($options.getCabinTypeText($data.currentDetail.cabinType))
  } : {}, {
    Z: $data.currentDetail.luggageCount
  }, $data.currentDetail.luggageCount ? {
    aa: common_vendor.t($data.currentDetail.luggageCount)
  } : {}, {
    ab: $data.currentDetail.countryCity
  }, $data.currentDetail.countryCity ? {
    ac: common_vendor.t($data.currentDetail.countryCity)
  } : {}, {
    ad: $data.currentDetail.hotelName
  }, $data.currentDetail.hotelName ? {
    ae: common_vendor.t($data.currentDetail.hotelName)
  } : {}, {
    af: $data.currentDetail.checkInDate
  }, $data.currentDetail.checkInDate ? {
    ag: common_vendor.t($data.currentDetail.checkInDate)
  } : {}, {
    ah: $data.currentDetail.checkOutDate
  }, $data.currentDetail.checkOutDate ? {
    ai: common_vendor.t($data.currentDetail.checkOutDate)
  } : {}, {
    aj: $data.currentDetail.roomCount
  }, $data.currentDetail.roomCount ? {
    ak: common_vendor.t($data.currentDetail.roomCount)
  } : {}, {
    al: $data.currentDetail.roomType
  }, $data.currentDetail.roomType ? {
    am: common_vendor.t($data.currentDetail.roomType)
  } : {}, {
    an: $data.currentDetail.needMeal !== null && $data.currentDetail.needMeal !== void 0
  }, $data.currentDetail.needMeal !== null && $data.currentDetail.needMeal !== void 0 ? {
    ao: common_vendor.t($data.currentDetail.needMeal ? "是" : "否")
  } : {}, {
    ap: $data.currentDetail.mealPlan
  }, $data.currentDetail.mealPlan ? {
    aq: common_vendor.t($options.getMealPlanText($data.currentDetail.mealPlan))
  } : {}, {
    ar: $data.currentDetail.adultCount
  }, $data.currentDetail.adultCount ? {
    as: common_vendor.t($data.currentDetail.adultCount)
  } : {}, {
    at: $data.currentDetail.childCount
  }, $data.currentDetail.childCount ? {
    av: common_vendor.t($data.currentDetail.childCount)
  } : {}, {
    aw: $data.currentDetail.infantCount
  }, $data.currentDetail.infantCount ? {
    ax: common_vendor.t($data.currentDetail.infantCount)
  } : {}, {
    ay: $data.currentDetail.passengerCount
  }, $data.currentDetail.passengerCount ? {
    az: common_vendor.t($data.currentDetail.passengerCount)
  } : {}, {
    aA: $data.currentDetail.airportTerminal
  }, $data.currentDetail.airportTerminal ? {
    aB: common_vendor.t($data.currentDetail.airportTerminal)
  } : {}, {
    aC: $data.currentDetail.arrivalFlightNo
  }, $data.currentDetail.arrivalFlightNo ? {
    aD: common_vendor.t($data.currentDetail.arrivalFlightNo)
  } : {}, {
    aE: $data.currentDetail.departureFlightNo
  }, $data.currentDetail.departureFlightNo ? {
    aF: common_vendor.t($data.currentDetail.departureFlightNo)
  } : {}, {
    aG: $data.currentDetail.flightNo
  }, $data.currentDetail.flightNo ? {
    aH: common_vendor.t($data.currentDetail.flightNo)
  } : {}, {
    aI: $data.currentDetail.deliveryAddress
  }, $data.currentDetail.deliveryAddress ? {
    aJ: common_vendor.t($data.currentDetail.deliveryAddress)
  } : {}, {
    aK: $data.currentDetail.originStation
  }, $data.currentDetail.originStation ? {
    aL: common_vendor.t($data.currentDetail.originStation)
  } : {}, {
    aM: $data.currentDetail.destinationStation
  }, $data.currentDetail.destinationStation ? {
    aN: common_vendor.t($data.currentDetail.destinationStation)
  } : {}, {
    aO: $data.currentDetail.seatClass
  }, $data.currentDetail.seatClass ? {
    aP: common_vendor.t($options.getSeatClassText($data.currentDetail.seatClass))
  } : {}, {
    aQ: $data.currentDetail.itinerary
  }, $data.currentDetail.itinerary ? {
    aR: common_vendor.t($data.currentDetail.itinerary)
  } : {}, {
    aS: $data.currentDetail.childAge
  }, $data.currentDetail.childAge ? {
    aT: common_vendor.t($data.currentDetail.childAge)
  } : {}, {
    aU: $data.currentDetail.boyCount
  }, $data.currentDetail.boyCount ? {
    aV: common_vendor.t($data.currentDetail.boyCount)
  } : {}, {
    aW: $data.currentDetail.girlCount
  }, $data.currentDetail.girlCount ? {
    aX: common_vendor.t($data.currentDetail.girlCount)
  } : {}, {
    aY: $data.currentDetail.hospitalName
  }, $data.currentDetail.hospitalName ? {
    aZ: common_vendor.t($data.currentDetail.hospitalName)
  } : {}, {
    ba: $data.currentDetail.conditionDescription
  }, $data.currentDetail.conditionDescription ? {
    bb: common_vendor.t($data.currentDetail.conditionDescription)
  } : {}, {
    bc: $data.currentDetail.specialAssistanceReason
  }, $data.currentDetail.specialAssistanceReason ? {
    bd: common_vendor.t($data.currentDetail.specialAssistanceReason)
  } : {}, {
    be: $data.currentDetail.origin
  }, $data.currentDetail.origin ? {
    bf: common_vendor.t($data.currentDetail.origin)
  } : {}, {
    bg: $data.currentDetail.destination
  }, $data.currentDetail.destination ? {
    bh: common_vendor.t($data.currentDetail.destination)
  } : {}, {
    bi: $data.currentDetail.petType
  }, $data.currentDetail.petType ? {
    bj: common_vendor.t($data.currentDetail.petType)
  } : {}, {
    bk: $data.currentDetail.petName
  }, $data.currentDetail.petName ? {
    bl: common_vendor.t($data.currentDetail.petName)
  } : {}, {
    bm: $data.currentDetail.hasQuarantineCert !== null && $data.currentDetail.hasQuarantineCert !== void 0
  }, $data.currentDetail.hasQuarantineCert !== null && $data.currentDetail.hasQuarantineCert !== void 0 ? {
    bn: common_vendor.t($data.currentDetail.hasQuarantineCert ? "有" : "无")
  } : {}, {
    bo: $data.currentDetail.serviceDays
  }, $data.currentDetail.serviceDays ? {
    bp: common_vendor.t($data.currentDetail.serviceDays)
  } : {}, {
    bq: $data.currentDetail.originPort
  }, $data.currentDetail.originPort ? {
    br: common_vendor.t($data.currentDetail.originPort)
  } : {}, {
    bs: $data.currentDetail.destinationPort
  }, $data.currentDetail.destinationPort ? {
    bt: common_vendor.t($data.currentDetail.destinationPort)
  } : {}, {
    bv: $data.currentDetail.itemName
  }, $data.currentDetail.itemName ? {
    bw: common_vendor.t($data.currentDetail.itemName)
  } : {}, {
    bx: $data.currentDetail.itemQuantity
  }, $data.currentDetail.itemQuantity ? {
    by: common_vendor.t($data.currentDetail.itemQuantity)
  } : {}, {
    bz: $data.currentDetail.cargoName
  }, $data.currentDetail.cargoName ? {
    bA: common_vendor.t($data.currentDetail.cargoName)
  } : {}, {
    bB: $data.currentDetail.cargoQuantity
  }, $data.currentDetail.cargoQuantity ? {
    bC: common_vendor.t($data.currentDetail.cargoQuantity)
  } : {}, {
    bD: $data.currentDetail.travelDestination
  }, $data.currentDetail.travelDestination ? {
    bE: common_vendor.t($data.currentDetail.travelDestination)
  } : {}, {
    bF: $data.currentDetail.travelDate
  }, $data.currentDetail.travelDate ? {
    bG: common_vendor.t($data.currentDetail.travelDate)
  } : {}, {
    bH: $data.currentDetail.travelDays
  }, $data.currentDetail.travelDays ? {
    bI: common_vendor.t($data.currentDetail.travelDays)
  } : {}, {
    bJ: $data.currentDetail.specificRequirements
  }, $data.currentDetail.specificRequirements ? {
    bK: common_vendor.t($data.currentDetail.specificRequirements)
  } : {}, {
    bL: $data.currentDetail.notes
  }, $data.currentDetail.notes ? {
    bM: common_vendor.t($data.currentDetail.notes)
  } : {}, {
    bN: common_vendor.o(() => {
    }),
    bO: common_vendor.o((...args) => $options.closeDetail && $options.closeDetail(...args))
  }) : {});
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/me/my-appointments-page.js.map
