"use strict";
const common_vendor = require("../../common/vendor.js");
const modules_api_AppServer = require("../../modules/api/AppServer.js");
const modules_Config = require("../../modules/Config.js");
const _sfc_main = {
  data() {
    return {
      serviceKey: "",
      service: null,
      loading: false,
      currentLanguage: "zh"
    };
  },
  onLoad(options) {
    if (options.key) {
      this.serviceKey = options.key;
      this.currentLanguage = common_vendor.index.getStorageSync("language") || "zh";
      this.loadServiceDetail();
    } else {
      common_vendor.index.showToast({
        title: "服务Key缺失",
        icon: "none"
      });
      setTimeout(() => {
        common_vendor.index.navigateBack();
      }, 1500);
    }
  },
  methods: {
    // 加载服务详情
    async loadServiceDetail() {
      this.loading = true;
      try {
        const appserver = new modules_api_AppServer.AppServer();
        const response = await appserver.GetServiceByKey(this.serviceKey, this.currentLanguage);
        common_vendor.index.__f__("log", "at pages/service-detail/service-detail.vue:83", "服务详情响应:", response);
        if (response.code === 0 && response.data) {
          this.service = response.data;
        } else {
          common_vendor.index.__f__("error", "at pages/service-detail/service-detail.vue:88", "获取服务详情失败:", response.message);
          common_vendor.index.showToast({
            title: response.message || "获取服务详情失败",
            icon: "none"
          });
          this.service = null;
        }
      } catch (error) {
        common_vendor.index.__f__("error", "at pages/service-detail/service-detail.vue:96", "加载服务详情异常:", error);
        common_vendor.index.showToast({
          title: "加载失败",
          icon: "none"
        });
        this.service = null;
      } finally {
        this.loading = false;
      }
    },
    // 获取服务名称
    getServiceName(service) {
      if (!service)
        return "";
      return service.title || "";
    },
    // 获取服务描述
    getServiceDescription(service) {
      if (!service)
        return "";
      return service.description || "";
    },
    // 获取完整的图片 URL
    getImageUrl(imagePath) {
      if (!imagePath)
        return "";
      if (imagePath.startsWith("http"))
        return imagePath;
      const baseUrl = modules_Config.Config.API_BASE_URL || "http://localhost:3000";
      return `${baseUrl}${imagePath}`;
    },
    // 处理预约
    handleBook() {
      if (!this.service)
        return;
      common_vendor.index.navigateTo({
        url: `/pages/booking-form/booking-form?serviceId=${this.serviceId}`
      });
    },
    // 处理图片加载错误
    handleImageError() {
      common_vendor.index.__f__("error", "at pages/service-detail/service-detail.vue:142", "图片加载失败:", this.service.image);
      this.service.image = null;
    }
  }
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
  return common_vendor.e({
    a: $data.loading
  }, $data.loading ? {
    b: common_vendor.t(_ctx.$t("common.loading") || "加载中...")
  } : $data.service ? common_vendor.e({
    d: $data.service.image
  }, $data.service.image ? {
    e: $options.getImageUrl($data.service.image),
    f: common_vendor.o((...args) => $options.handleImageError && $options.handleImageError(...args))
  } : {}, {
    g: common_vendor.t($options.getServiceName($data.service)),
    h: common_vendor.t($options.getServiceDescription($data.service)),
    i: common_vendor.t(_ctx.$t("appointment.bookNow") || "立即预约"),
    j: common_vendor.o((...args) => $options.handleBook && $options.handleBook(...args))
  }) : {
    k: common_vendor.t(_ctx.$t("common.loadFailed") || "加载失败"),
    l: common_vendor.t(_ctx.$t("common.retry") || "重试"),
    m: common_vendor.o((...args) => $options.loadServiceDetail && $options.loadServiceDetail(...args))
  }, {
    c: $data.service
  });
}
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ee5c4025"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/service-detail/service-detail.js.map
