205 lines
8.0 KiB
JavaScript
205 lines
8.0 KiB
JavaScript
"use strict";
|
|
const common_vendor = require("../../common/vendor.js");
|
|
const utils_tabbarI18n = require("../../utils/tabbar-i18n.js");
|
|
const utils_auth = require("../../utils/auth.js");
|
|
const modules_Config = require("../../modules/Config.js");
|
|
const modules_api_AppServer = require("../../modules/api/AppServer.js");
|
|
const _sfc_main = {
|
|
data() {
|
|
return {
|
|
bannerList: [],
|
|
hotList: [],
|
|
aboutUsImage: "",
|
|
// 关于我们图片
|
|
appLogo: "",
|
|
// 应用Logo
|
|
appName: ""
|
|
// 应用名称
|
|
};
|
|
},
|
|
onLoad() {
|
|
this.loadConfig();
|
|
this.loadBanners();
|
|
this.loadHotServices();
|
|
},
|
|
onShow() {
|
|
utils_tabbarI18n.updateTabBarI18n(this);
|
|
this.checkUnreadNotifications();
|
|
},
|
|
methods: {
|
|
/**
|
|
* 加载配置
|
|
*/
|
|
async loadConfig() {
|
|
try {
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:89", "开始加载配置...");
|
|
const config = await modules_Config.Config.getPublicConfig();
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:91", "获取到的配置:", JSON.stringify(config));
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:92", "配置类型:", typeof config);
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:93", "about_us_image值:", config.about_us_image);
|
|
if (config.about_us_image) {
|
|
this.aboutUsImage = modules_Config.Config.getImageUrl(config.about_us_image);
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:98", "关于我们图片URL:", this.aboutUsImage);
|
|
} else {
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:100", "配置中没有about_us_image");
|
|
}
|
|
if (config.app_logo) {
|
|
this.appLogo = modules_Config.Config.getImageUrl(config.app_logo);
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:106", "应用Logo URL:", this.appLogo);
|
|
}
|
|
if (config.app_name) {
|
|
this.appName = config.app_name;
|
|
}
|
|
} catch (error) {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:114", "加载配置失败:", error);
|
|
}
|
|
},
|
|
/**
|
|
* 加载Banner列表
|
|
*/
|
|
async loadBanners() {
|
|
try {
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:123", "开始加载Banner...");
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:124", "API URL:", modules_Config.Config.API_BASE_URL + "/api/v1/home/banners");
|
|
common_vendor.index.request({
|
|
url: modules_Config.Config.API_BASE_URL + "/api/v1/home/banners",
|
|
method: "GET",
|
|
success: (res) => {
|
|
var _a;
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:130", "Banner请求成功 - res:", res);
|
|
if (res.statusCode === 200 && res.data.code === 0) {
|
|
this.bannerList = res.data.data.map((banner) => ({
|
|
...banner,
|
|
image_url: modules_Config.Config.getImageUrl(banner.image_url)
|
|
}));
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:136", "Banner列表:", this.bannerList);
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:137", "Banner数量:", this.bannerList.length);
|
|
} else {
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:139", "Banner加载条件不满足");
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:140", "statusCode:", res.statusCode);
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:141", "code:", (_a = res.data) == null ? void 0 : _a.code);
|
|
}
|
|
},
|
|
fail: (error) => {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:145", "Banner请求失败:", error);
|
|
}
|
|
});
|
|
} catch (error) {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:149", "加载Banner失败:", error);
|
|
}
|
|
},
|
|
/**
|
|
* 加载热门服务列表
|
|
*/
|
|
async loadHotServices() {
|
|
try {
|
|
common_vendor.index.request({
|
|
url: modules_Config.Config.API_BASE_URL + "/api/v1/home/hot-services",
|
|
method: "GET",
|
|
header: {
|
|
"Accept-Language": this.$i18n.locale || "zh"
|
|
},
|
|
success: (res) => {
|
|
if (res.statusCode === 200 && res.data.code === 0) {
|
|
this.hotList = res.data.data.map((service) => ({
|
|
...service,
|
|
image_url: service.image_url ? modules_Config.Config.getImageUrl(service.image_url) : null
|
|
}));
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:171", "热门服务列表:", this.hotList);
|
|
}
|
|
},
|
|
fail: (error) => {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:175", "加载热门服务失败:", error);
|
|
}
|
|
});
|
|
} catch (error) {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:179", "加载热门服务失败:", error);
|
|
}
|
|
},
|
|
/**
|
|
* 图片加载成功
|
|
*/
|
|
handleImageLoad(e) {
|
|
common_vendor.index.__f__("log", "at pages/index/index.vue:187", "图片加载成功:", e);
|
|
},
|
|
/**
|
|
* 图片加载失败 - 清空图片URL显示占位符
|
|
*/
|
|
handleImageError(e) {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:194", "图片加载失败:", e);
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:195", "图片URL:", this.aboutUsImage);
|
|
this.aboutUsImage = "";
|
|
},
|
|
/**
|
|
* 检查未读通知并更新TabBar红点
|
|
*/
|
|
async checkUnreadNotifications() {
|
|
if (!utils_auth.isLoggedIn()) {
|
|
common_vendor.index.removeTabBarBadge({ index: 2 });
|
|
return;
|
|
}
|
|
try {
|
|
const appserver = new modules_api_AppServer.AppServer();
|
|
const response = await appserver.GetNotificationUnreadCount();
|
|
if (response.code === 0 && response.data) {
|
|
const unreadCount = response.data.all || 0;
|
|
if (unreadCount > 0) {
|
|
common_vendor.index.setTabBarBadge({
|
|
index: 2,
|
|
text: unreadCount > 99 ? "99+" : String(unreadCount)
|
|
});
|
|
} else {
|
|
common_vendor.index.removeTabBarBadge({ index: 2 });
|
|
}
|
|
}
|
|
} catch (error) {
|
|
common_vendor.index.__f__("error", "at pages/index/index.vue:224", "检查未读通知失败:", error);
|
|
}
|
|
},
|
|
/**
|
|
* 跳转到详情页(需要登录)
|
|
*/
|
|
toDetails(item) {
|
|
if (!utils_auth.requireAuth(true)) {
|
|
return;
|
|
}
|
|
common_vendor.index.navigateTo({
|
|
url: "/pages/index/reserve-details-page?id=" + item.id + "&title=" + encodeURIComponent(item.name) + "&serviceType=" + encodeURIComponent(item.service_type)
|
|
});
|
|
}
|
|
}
|
|
};
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
return common_vendor.e({
|
|
a: $data.bannerList.length > 0
|
|
}, $data.bannerList.length > 0 ? {
|
|
b: common_vendor.f($data.bannerList, (item, index, i0) => {
|
|
return {
|
|
a: item.image_url,
|
|
b: item.id
|
|
};
|
|
})
|
|
} : {}, {
|
|
c: common_vendor.t(_ctx.$t("home.hotServices")),
|
|
d: common_vendor.f($data.hotList, (item, index, i0) => {
|
|
return {
|
|
a: item.image_url || "/static/placeholder.png",
|
|
b: common_vendor.t(item.name),
|
|
c: item.id,
|
|
d: common_vendor.o(($event) => $options.toDetails(item), item.id)
|
|
};
|
|
}),
|
|
e: common_vendor.t(_ctx.$t("home.aboutMe")),
|
|
f: $data.aboutUsImage
|
|
}, $data.aboutUsImage ? {
|
|
g: $data.aboutUsImage,
|
|
h: common_vendor.o((...args) => $options.handleImageError && $options.handleImageError(...args)),
|
|
i: common_vendor.o((...args) => $options.handleImageLoad && $options.handleImageLoad(...args))
|
|
} : {
|
|
j: common_vendor.t(_ctx.$t("home.aboutMe"))
|
|
});
|
|
}
|
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
wx.createPage(MiniProgramPage);
|
|
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/index/index.js.map
|