feat(AdOverlay): 替换mock数据为真实接口获取广告配置
添加获取广告配置的API接口,移除原有的mock数据配置 在组件挂载时异步获取广告配置数据 更新相关存储和跳转逻辑使用响应式数据
Showing
2 changed files
with
52 additions
and
140 deletions
| 1 | /* | 1 | /* |
| 2 | * @Date: 2023-12-22 10:29:37 | 2 | * @Date: 2023-12-22 10:29:37 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2024-06-06 09:31:34 | 4 | + * @LastEditTime: 2025-09-16 11:37:51 |
| 5 | - * @FilePath: /meihuaApp/src/api/index.js | 5 | + * @FilePath: /lls_program/src/api/index.js |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | */ | 7 | */ |
| 8 | import { fn, fetch } from './fn'; | 8 | import { fn, fetch } from './fn'; |
| 9 | 9 | ||
| 10 | const Api = { | 10 | const Api = { |
| 11 | - BIND_PHONE: '/srv/?a=room_order&t=bind_phone', | 11 | + BOOT_PAGE: '/srv/?a=common&t=boot_page', |
| 12 | - SEND_SMS_CODE: '/srv/?a=room_order&t=send_sms_code', | ||
| 13 | - SHOW_SESSION: '/srv/?a=room_order&t=show_session', | ||
| 14 | - SAVE_CUSTOMER_INFO: '/srv/?a=room_order&t=save_customer_info', | ||
| 15 | - SYS_PARAM: '/srv/?a=room_order&t=sys_param', | ||
| 16 | - GET_LIST: '/srv/?a=room_data&t=get_list', | ||
| 17 | - GET_ROOM: '/srv/?a=room_data&t=get_room', | ||
| 18 | - ADD_ORDER: '/srv/?a=room_data&t=add_order', | ||
| 19 | - MY_ORDER: '/srv/?a=room_data&t=my_order', | ||
| 20 | - ORDER_CANCEL: '/srv/?a=room_data&t=order_cancel', | ||
| 21 | - PAY: '/srv/?a=pay', | ||
| 22 | - PAY_CHECK: '/srv/?a=pay_check', | ||
| 23 | - ORDER_SUCCESS: '/srv/?a=room_data&t=order_success', | ||
| 24 | - TMP_SYS_PARAM: '/srv/?a=get_item', | ||
| 25 | } | 12 | } |
| 26 | 13 | ||
| 27 | /** | 14 | /** |
| 28 | - * @description: 绑定手机号(手机号登录) | 15 | + * @description: 获取引导页数据 |
| 29 | - * @param phone 手机号 | 16 | + * @returns {number} response.code - 响应状态码 |
| 30 | - * @param sms_code 验证码 | 17 | + * @returns {string} response.msg - 响应消息 |
| 31 | - * @returns | 18 | + * @returns {Object} response.data - 响应数据 |
| 19 | + * @returns {string} response.data.adImageUrl - 广告图片URL | ||
| 20 | + * @returns {string} response.data.targetPage - 点击跳转的页面路径 | ||
| 21 | + * @returns {string} response.data.storageKey - 存储键名(用于区分不同的广告) | ||
| 32 | */ | 22 | */ |
| 33 | -export const bindPhoneAPI = (params) => fn(fetch.post(Api.BIND_PHONE, params)); | 23 | +export const getBootPageAPI = (params) => fn(fetch.get(Api.BOOT_PAGE, params)); |
| 34 | - | ||
| 35 | -/** | ||
| 36 | - * @description: 发送验证码 | ||
| 37 | - * @param phone 手机号 | ||
| 38 | - * @returns | ||
| 39 | - */ | ||
| 40 | -export const sendSmsCodeAPI = (params) => fn(fetch.post(Api.SEND_SMS_CODE, params)); | ||
| 41 | - | ||
| 42 | -/** | ||
| 43 | - * @description: 获取我的信息 | ||
| 44 | - * @returns | ||
| 45 | - */ | ||
| 46 | -export const showMyInfoAPI = (params) => fn(fetch.get(Api.SHOW_SESSION, params)); | ||
| 47 | - | ||
| 48 | -/** | ||
| 49 | - * @description: 保存我的信息 | ||
| 50 | - * @param params | ||
| 51 | - * @returns | ||
| 52 | - */ | ||
| 53 | -export const saveCustomerInfoAPI = (params) => fn(fetch.post(Api.SAVE_CUSTOMER_INFO, params)); | ||
| 54 | - | ||
| 55 | -/** | ||
| 56 | - * @description: 获取系统参数 | ||
| 57 | - * @returns | ||
| 58 | - */ | ||
| 59 | -export const sysParamAPI = (params) => fn(fetch.get(Api.SYS_PARAM, params)); | ||
| 60 | - | ||
| 61 | -/** | ||
| 62 | - * @description: 获取房间列表 | ||
| 63 | - * @param start_date 入住时间 | ||
| 64 | - * @param end_date 离店时间 | ||
| 65 | - * @param offset 偏移量 | ||
| 66 | - * @param limit 条数 | ||
| 67 | - * @returns | ||
| 68 | - */ | ||
| 69 | -export const getListAPI = (params) => fn(fetch.get(Api.GET_LIST, params)); | ||
| 70 | - | ||
| 71 | -/** | ||
| 72 | - * @description: 获取房间详情 | ||
| 73 | - * @param start_date 入住时间 | ||
| 74 | - * @param end_date 离店时间 | ||
| 75 | - * @param room_type floor/room | ||
| 76 | - * @returns | ||
| 77 | - */ | ||
| 78 | -export const getRoomAPI = (params) => fn(fetch.get(Api.GET_ROOM, params)); | ||
| 79 | - | ||
| 80 | -/** | ||
| 81 | - * @description: 预定房间 | ||
| 82 | - * @param id ID | ||
| 83 | - * @param num 预定房间数量 | ||
| 84 | - * @param plan_in 入住时间 | ||
| 85 | - * @param plan_out 离店时间 | ||
| 86 | - * @param contact_name 联系人 | ||
| 87 | - * @param contact_phone 联系电话 | ||
| 88 | - * @param order_remark 备注 | ||
| 89 | - * @param room_type floor/room | ||
| 90 | - * @returns | ||
| 91 | - */ | ||
| 92 | -export const addOrderAPI = (params) => fn(fetch.post(Api.ADD_ORDER, params)); | ||
| 93 | - | ||
| 94 | -/** | ||
| 95 | - * @description: 支付 | ||
| 96 | - * @param order_id 订单ID | ||
| 97 | - * @returns | ||
| 98 | - */ | ||
| 99 | -export const payAPI = (params) => fn(fetch.post(Api.PAY, params)); | ||
| 100 | - | ||
| 101 | -/** | ||
| 102 | - * @description: 检查是否支付成功 | ||
| 103 | - * @param order_id 订单ID | ||
| 104 | - * @returns | ||
| 105 | - */ | ||
| 106 | -export const payCheckAPI = (params) => fn(fetch.post(Api.PAY_CHECK, params)); | ||
| 107 | - | ||
| 108 | -/** | ||
| 109 | - * @description: 获取我的订单列表 | ||
| 110 | - * @param pay_type | ||
| 111 | - * @param page | ||
| 112 | - * @param limit | ||
| 113 | - * @returns | ||
| 114 | - */ | ||
| 115 | -export const myOrderAPI = (params) => fn(fetch.get(Api.MY_ORDER, params)); | ||
| 116 | - | ||
| 117 | -/** | ||
| 118 | - * @description: 取消订单 | ||
| 119 | - * @param id | ||
| 120 | - * @returns | ||
| 121 | - */ | ||
| 122 | -export const orderCancelAPI = (params) => fn(fetch.post(Api.ORDER_CANCEL, params)); | ||
| 123 | - | ||
| 124 | -/** | ||
| 125 | - * @description: 订单成功 | ||
| 126 | - * @param id | ||
| 127 | - * @returns | ||
| 128 | - */ | ||
| 129 | -export const orderSuccessAPI = (params) => fn(fetch.post(Api.ORDER_SUCCESS, params)); | ||
| 130 | - | ||
| 131 | -/** | ||
| 132 | - * @description: | ||
| 133 | - * @param id | ||
| 134 | - * @returns | ||
| 135 | - */ | ||
| 136 | -export const tmpSysParamAPI = (params) => fn(fetch.get(Api.TMP_SYS_PARAM, params)); | ... | ... |
| ... | @@ -30,16 +30,18 @@ | ... | @@ -30,16 +30,18 @@ |
| 30 | import { ref, onMounted } from 'vue' | 30 | import { ref, onMounted } from 'vue' |
| 31 | import Taro from '@tarojs/taro' | 31 | import Taro from '@tarojs/taro' |
| 32 | import { Close } from '@nutui/icons-vue-taro' | 32 | import { Close } from '@nutui/icons-vue-taro' |
| 33 | +// 导入接口 | ||
| 34 | +import { getBootPageAPI } from '@/api' | ||
| 33 | 35 | ||
| 34 | -// TODO: Mock数据配置, 等待正式接口 | 36 | +// 广告配置数据 |
| 35 | -const adConfig = { | 37 | +const adConfig = ref({ |
| 36 | // 广告图片URL | 38 | // 广告图片URL |
| 37 | - adImageUrl: 'https://cdn.ipadbiz.cn/lls_prog/images/%E5%8D%97%E4%BA%AC%E8%B7%AF%E5%95%86%E5%9C%88.jpeg', | 39 | + adImageUrl: '', |
| 38 | // 点击跳转的页面路径 | 40 | // 点击跳转的页面路径 |
| 39 | - targetPage: '/pages/Dashboard/index', | 41 | + targetPage: '', |
| 40 | // 存储键名(用于区分不同的广告) | 42 | // 存储键名(用于区分不同的广告) |
| 41 | - storageKey: 'dashboard_ad_overlay' | 43 | + storageKey: '' |
| 42 | -} | 44 | +}) |
| 43 | 45 | ||
| 44 | // Emits | 46 | // Emits |
| 45 | const emit = defineEmits(['close', 'click']) | 47 | const emit = defineEmits(['close', 'click']) |
| ... | @@ -60,12 +62,37 @@ const getTodayDateString = () => { | ... | @@ -60,12 +62,37 @@ const getTodayDateString = () => { |
| 60 | } | 62 | } |
| 61 | 63 | ||
| 62 | /** | 64 | /** |
| 65 | + * 获取广告配置数据 | ||
| 66 | + */ | ||
| 67 | +const fetchAdConfig = async () => { | ||
| 68 | + try { | ||
| 69 | + const response = await getBootPageAPI() | ||
| 70 | + if (response.code && response.data) { | ||
| 71 | + // 使用接口返回的数据更新配置 | ||
| 72 | + adConfig.value = { | ||
| 73 | + adImageUrl: response.data.adImageUrl, | ||
| 74 | + targetPage: response.data.targetPage, | ||
| 75 | + storageKey: response.data.storageKey | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + // 延迟一点显示,避免页面加载时的闪烁 | ||
| 79 | + setTimeout(() => { | ||
| 80 | + show() | ||
| 81 | + }, 500) | ||
| 82 | + } | ||
| 83 | + } catch (error) { | ||
| 84 | + console.error('获取广告配置失败:', error) | ||
| 85 | + // 使用默认配置,不影响功能 | ||
| 86 | + } | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +/** | ||
| 63 | * 检查今天是否已经显示过广告 | 90 | * 检查今天是否已经显示过广告 |
| 64 | * @returns {boolean} 是否已显示 | 91 | * @returns {boolean} 是否已显示 |
| 65 | */ | 92 | */ |
| 66 | const hasShownToday = () => { | 93 | const hasShownToday = () => { |
| 67 | try { | 94 | try { |
| 68 | - const lastShownDate = Taro.getStorageSync(adConfig.storageKey) | 95 | + const lastShownDate = Taro.getStorageSync(adConfig.value.storageKey) |
| 69 | const today = getTodayDateString() | 96 | const today = getTodayDateString() |
| 70 | return lastShownDate === today | 97 | return lastShownDate === today |
| 71 | } catch (error) { | 98 | } catch (error) { |
| ... | @@ -80,7 +107,7 @@ const hasShownToday = () => { | ... | @@ -80,7 +107,7 @@ const hasShownToday = () => { |
| 80 | const markAsShownToday = () => { | 107 | const markAsShownToday = () => { |
| 81 | try { | 108 | try { |
| 82 | const today = getTodayDateString() | 109 | const today = getTodayDateString() |
| 83 | - Taro.setStorageSync(adConfig.storageKey, today) | 110 | + Taro.setStorageSync(adConfig.value.storageKey, today) |
| 84 | } catch (error) { | 111 | } catch (error) { |
| 85 | console.error('保存存储数据失败:', error) | 112 | console.error('保存存储数据失败:', error) |
| 86 | } | 113 | } |
| ... | @@ -114,7 +141,7 @@ const handleAdClick = () => { | ... | @@ -114,7 +141,7 @@ const handleAdClick = () => { |
| 114 | 141 | ||
| 115 | // 跳转到目标页面 | 142 | // 跳转到目标页面 |
| 116 | // Taro.navigateTo({ | 143 | // Taro.navigateTo({ |
| 117 | - // url: adConfig.targetPage | 144 | + // url: adConfig.value.targetPage |
| 118 | // }).catch(error => { | 145 | // }).catch(error => { |
| 119 | // console.error('页面跳转失败:', error) | 146 | // console.error('页面跳转失败:', error) |
| 120 | // Taro.showToast({ | 147 | // Taro.showToast({ |
| ... | @@ -124,7 +151,7 @@ const handleAdClick = () => { | ... | @@ -124,7 +151,7 @@ const handleAdClick = () => { |
| 124 | // }) | 151 | // }) |
| 125 | 152 | ||
| 126 | // 触发点击事件 | 153 | // 触发点击事件 |
| 127 | - emit('click', adConfig.targetPage) | 154 | + emit('click', adConfig.value.targetPage) |
| 128 | } | 155 | } |
| 129 | 156 | ||
| 130 | /** | 157 | /** |
| ... | @@ -148,12 +175,10 @@ defineExpose({ | ... | @@ -148,12 +175,10 @@ defineExpose({ |
| 148 | hasShownToday | 175 | hasShownToday |
| 149 | }) | 176 | }) |
| 150 | 177 | ||
| 151 | -// 组件挂载时检查是否需要显示 | 178 | +// 组件挂载时获取配置并检查是否需要显示 |
| 152 | -onMounted(() => { | 179 | +onMounted(async () => { |
| 153 | - // 延迟一点显示,避免页面加载时的闪烁 | 180 | + // 先获取广告配置 |
| 154 | - setTimeout(() => { | 181 | + await fetchAdConfig() |
| 155 | - show() | ||
| 156 | - }, 500) | ||
| 157 | }) | 182 | }) |
| 158 | </script> | 183 | </script> |
| 159 | 184 | ... | ... |
-
Please register or login to post a comment