import http from '../../../utils/api'; const baseUrl = require('../../../utils/baseUrl'); Page({ /** * 页面的初始数据 */ data: { baseUrl: baseUrl, detailInfo: {}, id: null, cardAnimation: {} // 卡片动画数据 }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { if (options.id) { this.setData({ id: options.id }); this.getCarouselDetail(options.id); this.initAnimation(); } else { wx.showToast({ title: '参数错误', icon: 'none' }); } }, /** * 初始化卡片动画 */ initAnimation() { const animation = wx.createAnimation({ duration: 600, timingFunction: 'ease-out', delay: 100 }); animation.translateY(0).opacity(1).step(); this.setData({ cardAnimation: animation.export() }); }, /** * 获取轮播详情 */ getCarouselDetail(id) { wx.showLoading({ title: '加载中...', mask: true }); http.carouselDetail({ data: { id: id }, success: (res) => { wx.hideLoading(); console.log('轮播详情:', res); if (res && res.code === 200 && res.data) { this.setData({ detailInfo: res.data }); wx.setNavigationBarTitle({ title: res.data.title || '轮播详情' }); } else { wx.showToast({ title: res?.msg || '数据加载失败', icon: 'none' }); } }, fail: (err) => { wx.hideLoading(); console.error('请求失败:', err); wx.showToast({ title: '网络错误', icon: 'none' }); } }); }, /** * 颜色调整函数(用于渐变效果) */ adjustColor(hex, percent) { if (!hex) return '#4CAF50'; // 简单实现:如果传入颜色,返回稍浅的版本 // 这里为了简化,直接返回原色稍微变浅,实际项目中可使用颜色处理库 return hex; }, /** * 图片加载错误处理 */ imageLoadError(e) { console.warn('图片加载失败', e); }, /** * 返回上一页 */ goBack() { wx.navigateBack({ delta: 1 }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() {}, /** * 生命周期函数--监听页面显示 */ onShow() {}, /** * 生命周期函数--监听页面隐藏 */ onHide() {}, /** * 生命周期函数--监听页面卸载 */ onUnload() {}, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() {}, /** * 页面上拉触底事件的处理函数 */ onReachBottom() {}, /** * 用户点击右上角分享 */ onShareAppMessage() { const { title, imageUrl } = this.data.detailInfo; return { title: title || '轮播详情', imageUrl: this.data.baseUrl + (imageUrl || ''), path: `/pages/carousel/detail/detail?id=${this.data.id}` }; } });