diff --git a/src/api/config.ts b/src/api/config.ts new file mode 100644 index 0000000..9c9467d --- /dev/null +++ b/src/api/config.ts @@ -0,0 +1,568 @@ +/** + * API接口配置文件 + * 集中管理所有接口路径,便于后端接口迁移和维护 + * + * 使用说明: + * 1. 当后端接口路径变化时,只需修改此文件中的URL + * 2. 支持通过API_VERSION切换接口版本 + * 3. 所有接口路径统一管理,避免硬编码 + */ + +// API版本控制 +export const API_VERSION = { + V1: 'v1', // 原C#版本 + V2: 'v2', // 新Java版本 +} + +// 当前使用的API版本,修改此处可快速切换版本 +export const CURRENT_VERSION = API_VERSION.V2 + +/** + * 接口路径配置 + * 结构:{ v1: 'C#接口路径', v2: 'Java接口路径' } + */ +const API_PATHS = { + // ==================== 认证相关 ==================== + AUTH: { + // 短信登录 + LOGIN_SMS: { + v1: '/auth/login', + v2: '/auth/login', + }, + // 获取短信验证码 + SMS_CODE: { + v1: '/resource/sms/code', + v2: '/resource/sms/code', + }, + // 微信手机号登录 + LOGIN_WECHAT: { + v1: '/api/login/use_wechat', + v2: '/fishery/login/wechat', + }, + // 登出 + LOGOUT: { + v1: '/api/user-center/logout', + v2: '/fishery/auth/logout', + }, + }, + + // ==================== 首页相关 ==================== + HOME: { + // 塘口列表模式1 + POND_LIST: { + v1: '/fishery/pond/list', + v2: '/fishery/pond/list', + }, + // 塘口列表模式2 + POND_LIST_MODE2: { + v1: '/api/pond/list_mode2', + v2: '/fishery/pond/list/mode2', + }, + // 公告列表 + NOTICE_LIST: { + v1: '/api/sys-notice/notice_list', + v2: '/fishery/notice/list', + }, + // 即将到期设备列表 + DEVICE_DEAD: { + v1: '/api/device/list_device_dead', + v2: '/fishery/device/expiring', + }, + // 获取设备票据 + DEVICE_TICKET: { + v1: '/api/user-center/getsnticket', + v2: '/fishery/device/ticket', + }, + }, + + // ==================== 鱼塘管理 ==================== + POND: { + // 新增塘口 + ADD: { + v1: '/fishery/pond', + v2: '/fishery/pond', + }, + // 修改塘口 + UPDATE: { + v1: '/api/pond/update', + v2: '/fishery/pond', + }, + // 删除塘口 + DELETE: { + v1: '/api/pond/delete', + v2: '/fishery/pond', + }, + // 鱼类列表 + FISH_LIST: { + v1: '/fishery/fish/list', + v2: '/fishery/fish/list', + }, + // 塘口基本数据 + BASE_INFO: { + v1: '/api/pond/base_info', + v2: '/fishery/pond', + }, + // 塘口下设备信息 + DEVICE_INFO: { + v1: '/api/pond/pond_device_info', + v2: '/fishery/pond/devices', + }, + // 将设备及开关绑定到塘口 + BIND_DEVICE: { + v1: '/api/pond/select_device_switch', + v2: '/fishery/pond/bind/device', + }, + // 夜间防误触 + KEEP_NIGHT_OPEN: { + v1: '/api/pond/keep_night_open', + v2: '/fishery/pond/night-protect', + }, + }, + + // ==================== 设备管理 ==================== + DEVICE: { + // 设备列表 + LIST_ALL: { + v1: '/api/device/list_all_device', + v2: '/fishery/device/list', + }, + // 设备详情 + INFO: { + v1: '/api/device/one_device_info', + v2: '/fishery/device/info', + }, + // 解除绑定 + UNBIND: { + v1: '/api/device/break_pond', + v2: '/fishery/device/unbind', + }, + // 设备图表数据 + HISTORY: { + v1: '/api/device/data_history', + v2: '/fishery/device/history', + }, + // 修改设备名称 + UPDATE_NAME: { + v1: '/api/device/update_name', + v2: '/fishery/device/name', + }, + // 修改设备关联塘口 + UPDATE_POND: { + v1: '/api/device/update_pond', + v2: '/fishery/device/pond', + }, + // 修改设备接电方式 + UPDATE_VOLTAGE: { + v1: '/api/device/update_voltage_type', + v2: '/fishery/device/voltage', + }, + // 删除设备 + DELETE: { + v1: '/api/device/delete', + v2: '/fishery/device', + }, + // 扫描设备编码 + SCAN: { + v1: '/api/device/check_device_qrcode', + v2: '/fishery/device/scan', + }, + // 检测设备是否在线 + CHECK_STATUS: { + v1: '/api/device/check_device_status', + v2: '/iot/device/status', + }, + // 盐度设置 + SET_SALINITY: { + v1: '/api/device/detector_salinitycompensation', + v2: '/fishery/device/salinity', + }, + // 设备校准 + CALIBRATE: { + v1: '/api/device/detector_calibrate', + v2: '/fishery/device/calibrate', + }, + // 添加水质检测仪 + ADD_DETECTOR: { + v1: '/api/device/add_device_detector', + v2: '/iot/device/add_device_detector', + }, + // 设置溶解氧/水温告警 + SET_WARN_CALL: { + v1: '/api/device/set_oxy_warn_call', + v2: '/fishery/device/warn/call', + }, + // 设置溶解氧上下限 + SET_OXY_WARN: { + v1: '/api/device/set_oxy_warn_value', + v2: '/fishery/device/warn/oxy', + }, + // 设置温度上下限 + SET_TEMP_WARN: { + v1: '/api/device/set_temp_warn_value', + v2: '/fishery/device/warn/temp', + }, + // 溶解氧饱和度 + GET_SATURABILITY: { + v1: '/api/device/get_saturability', + v2: '/fishery/device/saturability', + }, + // 添加控制一体机 + ADD_CONTROLLER: { + v1: '/api/device/add_device_controller', + v2: '/fishery/device/controller', + }, + // 启停溶解氧 + SET_OXY_OPEN: { + v1: '/api/device/set_controller_oxy_open', + v2: '/fishery/device/oxy/switch', + }, + // 电压告警开关 + VOLTAGE_CHECK: { + v1: '/api/device/voltage_check_open', + v2: '/fishery/device/voltage/check', + }, + }, + + // ==================== 联动控制 ==================== + LINKED_CTRL: { + // 设备控制器列表 + LIST: { + v1: '/api/linked-ctrl/fetch', + v2: '/fishery/linked-ctrl/list', + }, + // 添加联动控制 + ADD: { + v1: '/api/linked-ctrl/add', + v2: '/fishery/linked-ctrl', + }, + // 修改联动控制 + UPDATE: { + v1: '/api/linked-ctrl/update', + v2: '/fishery/linked-ctrl', + }, + // 删除联动控制 + DELETE: { + v1: '/api/linked-ctrl/delete', + v2: '/fishery/linked-ctrl', + }, + // 设置联动控制上下限开关 + SET_OPEN: { + v1: '/api/linked-ctrl/set_open', + v2: '/fishery/linked-ctrl/switch', + }, + }, + + // ==================== 开关管理 ==================== + SWITCH: { + // 开关列表 + POND_LIST: { + v1: '/api/device-switch/get_pond_switch', + v2: '/fishery/switch/list', + }, + // 开关详情 + INFO: { + v1: '/api/device-switch/one_switch_info', + v2: '/fishery/switch/info', + }, + // 修改开关名称 + UPDATE_NAME: { + v1: '/api/device-switch/update_name', + v2: '/fishery/switch/name', + }, + // 修改关联塘口 + UPDATE_POND: { + v1: '/api/device-switch/update_pond', + v2: '/fishery/switch/pond', + }, + // 修改接线方式 + UPDATE_VOLTAGE: { + v1: '/api/device-switch/update_voltage_type', + v2: '/fishery/switch/voltage', + }, + // 单个开关启停 + TURN: { + v1: '/api/device-switch/turn_switch', + v2: '/fishery/switch/turn', + }, + // 所有开关启停 + TURN_POND: { + v1: '/api/device-switch/turn_pond_switch', + v2: '/fishery/switch/turn/all', + }, + // 电流告警开关 + ELECTRIC_CHECK: { + v1: '/api/device-switch/electric_check_open', + v2: '/fishery/switch/electric/check', + }, + // 电流告警设置 + ELECTRIC_SET: { + v1: '/api/device-switch/electric_set', + v2: '/fishery/switch/electric/set', + }, + }, + + // ==================== 定时开关 ==================== + TIME_CTRL: { + // 定时开关列表 + LIST: { + v1: '/api/device-switch-time-ctrl/list', + v2: '/fishery/time-ctrl/list', + }, + // 添加定时开关 + ADD: { + v1: '/api/device-switch-time-ctrl/add', + v2: '/fishery/time-ctrl', + }, + // 删除定时开关 + DELETE: { + v1: '/api/device-switch-time-ctrl/delete', + v2: '/fishery/time-ctrl', + }, + // 更新定时开关 + UPDATE: { + v1: '/api/device-switch-time-ctrl/update', + v2: '/fishery/time-ctrl', + }, + }, + + // ==================== 消息中心 ==================== + MESSAGE: { + // 充值记录 + PAY: { + v1: '/api/message/page_pay', + v2: '/fishery/payOrder/list', + }, + // 报警记录 + WARN: { + v1: '/api/message/page_warn', + v2: '/fishery/messageWarn/list', + }, + // 开关记录 + SWITCH: { + v1: '/api/message/page_op_record', + v2: '/fishery/messageOpRecord/list', + }, + // 已读一条消息 + READ_ONE: { + v2: '/fishery/messageWarn/read', + }, + // 已读全部 + READ_ALL: { + v2: '/fishery/messageWarn/read/all', + }, + }, + + // ==================== 个人中心 ==================== + USER: { + // 报警电话列表 + WARN_PHONE_LIST: { + v1: '/api/user-center/list_warn_phone', + v2: '/fishery/user/warn-phone/list', + }, + // 修改报警电话 + UPDATE_WARN_PHONE: { + v1: '/api/user-center/update_warn_phone', + v2: '/fishery/user/warn-phone', + }, + // 修改手机号码 + UPDATE_PHONE: { + v1: '/api/user-center/update_mobile_phone', + v2: '/fishery/user/phone', + }, + // 验证验证码 + VERIFY_CODE: { + v1: '/sms_code/verify', + v2: '/fishery/sms/verify', + }, + // 修改昵称 + UPDATE_NICKNAME: { + v1: '/api/user-center/update_user_name', + v2: '/fishery/user/nickname', + }, + }, + + // ==================== 子账户管理 ==================== + SUB_ACCOUNT: { + // 获取子账号列表 + LIST: { + v1: '/api/user-center/list_user_child', + v2: '/fishery/user/child/list', + }, + // 添加子账号 + ADD: { + v1: '/api/user-center/add_user_child', + v2: '/fishery/user/child', + }, + // 删除子账号 + DELETE: { + v1: '/api/user-center/delete_user_child', + v2: '/fishery/user/child', + }, + // 获取父级账号 + PARENT: { + v1: '/api/user-center/list_user_parent', + v2: '/fishery/user/parent', + }, + }, + + // ==================== 支付相关 ==================== + PAY: { + // 支付选项页面 + OPTIONS: { + v1: '/api/tenpay/get_pay_item', + v2: '/fishery/pay/options', + }, + // 创建支付订单 + CREATE_ORDER: { + v1: '/api/tenpay/create_order', + v2: '/fishery/pay/order', + }, + // 微信支付 + WECHAT_PAY: { + v1: 'https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi', + v2: 'https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi', // 微信官方接口不变 + }, + }, +} + +/** + * 获取API路径 + * @param category 接口分类 (如 'AUTH', 'HOME') + * @param key 接口键名 (如 'LOGIN_SMS', 'POND_LIST') + * @param version 版本号,默认使用 CURRENT_VERSION + * @returns 接口路径 + */ +export function getApiPath(category: string, key: string, version: string = CURRENT_VERSION): string { + const categoryPaths = API_PATHS[category] + if (!categoryPaths) { + console.error(`[API配置] 未找到分类: ${category}`) + return '' + } + + const apiPath = categoryPaths[key] + if (!apiPath) { + console.error(`[API配置] 未找到接口: ${category}.${key}`) + return '' + } + + const path = apiPath[version] + if (!path) { + console.warn(`[API配置] ${category}.${key} 未配置版本 ${version},使用 v1`) + return apiPath.v1 + } + + return path +} + +/** + * 便捷导出:直接获取当前版本的API路径 + */ +export const API = { + // 认证相关 + AUTH: { + LOGIN_SMS: () => getApiPath('AUTH', 'LOGIN_SMS'), + SMS_CODE: () => getApiPath('AUTH', 'SMS_CODE'), + LOGIN_WECHAT: () => getApiPath('AUTH', 'LOGIN_WECHAT'), + LOGOUT: () => getApiPath('AUTH', 'LOGOUT'), + }, + // 首页相关 + HOME: { + POND_LIST: () => getApiPath('HOME', 'POND_LIST'), + POND_LIST_MODE2: () => getApiPath('HOME', 'POND_LIST_MODE2'), + NOTICE_LIST: () => getApiPath('HOME', 'NOTICE_LIST'), + DEVICE_DEAD: () => getApiPath('HOME', 'DEVICE_DEAD'), + DEVICE_TICKET: () => getApiPath('HOME', 'DEVICE_TICKET'), + }, + // 鱼塘管理 + POND: { + ADD: () => getApiPath('POND', 'ADD'), + UPDATE: () => getApiPath('POND', 'UPDATE'), + DELETE: () => getApiPath('POND', 'DELETE'), + FISH_LIST: () => getApiPath('POND', 'FISH_LIST'), + BASE_INFO: () => getApiPath('POND', 'BASE_INFO'), + DEVICE_INFO: () => getApiPath('POND', 'DEVICE_INFO'), + BIND_DEVICE: () => getApiPath('POND', 'BIND_DEVICE'), + KEEP_NIGHT_OPEN: () => getApiPath('POND', 'KEEP_NIGHT_OPEN'), + }, + // 设备管理 + DEVICE: { + LIST_ALL: () => getApiPath('DEVICE', 'LIST_ALL'), + INFO: () => getApiPath('DEVICE', 'INFO'), + UNBIND: () => getApiPath('DEVICE', 'UNBIND'), + HISTORY: () => getApiPath('DEVICE', 'HISTORY'), + UPDATE_NAME: () => getApiPath('DEVICE', 'UPDATE_NAME'), + UPDATE_POND: () => getApiPath('DEVICE', 'UPDATE_POND'), + UPDATE_VOLTAGE: () => getApiPath('DEVICE', 'UPDATE_VOLTAGE'), + DELETE: () => getApiPath('DEVICE', 'DELETE'), + SCAN: () => getApiPath('DEVICE', 'SCAN'), + CHECK_STATUS: () => getApiPath('DEVICE', 'CHECK_STATUS'), + SET_SALINITY: () => getApiPath('DEVICE', 'SET_SALINITY'), + CALIBRATE: () => getApiPath('DEVICE', 'CALIBRATE'), + ADD_DETECTOR: () => getApiPath('DEVICE', 'ADD_DETECTOR'), + SET_WARN_CALL: () => getApiPath('DEVICE', 'SET_WARN_CALL'), + SET_OXY_WARN: () => getApiPath('DEVICE', 'SET_OXY_WARN'), + SET_TEMP_WARN: () => getApiPath('DEVICE', 'SET_TEMP_WARN'), + GET_SATURABILITY: () => getApiPath('DEVICE', 'GET_SATURABILITY'), + ADD_CONTROLLER: () => getApiPath('DEVICE', 'ADD_CONTROLLER'), + SET_OXY_OPEN: () => getApiPath('DEVICE', 'SET_OXY_OPEN'), + VOLTAGE_CHECK: () => getApiPath('DEVICE', 'VOLTAGE_CHECK'), + }, + // 联动控制 + LINKED_CTRL: { + LIST: () => getApiPath('LINKED_CTRL', 'LIST'), + ADD: () => getApiPath('LINKED_CTRL', 'ADD'), + UPDATE: () => getApiPath('LINKED_CTRL', 'UPDATE'), + DELETE: () => getApiPath('LINKED_CTRL', 'DELETE'), + SET_OPEN: () => getApiPath('LINKED_CTRL', 'SET_OPEN'), + }, + // 开关管理 + SWITCH: { + POND_LIST: () => getApiPath('SWITCH', 'POND_LIST'), + INFO: () => getApiPath('SWITCH', 'INFO'), + UPDATE_NAME: () => getApiPath('SWITCH', 'UPDATE_NAME'), + UPDATE_POND: () => getApiPath('SWITCH', 'UPDATE_POND'), + UPDATE_VOLTAGE: () => getApiPath('SWITCH', 'UPDATE_VOLTAGE'), + TURN: () => getApiPath('SWITCH', 'TURN'), + TURN_POND: () => getApiPath('SWITCH', 'TURN_POND'), + ELECTRIC_CHECK: () => getApiPath('SWITCH', 'ELECTRIC_CHECK'), + ELECTRIC_SET: () => getApiPath('SWITCH', 'ELECTRIC_SET'), + }, + // 定时开关 + TIME_CTRL: { + LIST: () => getApiPath('TIME_CTRL', 'LIST'), + ADD: () => getApiPath('TIME_CTRL', 'ADD'), + DELETE: () => getApiPath('TIME_CTRL', 'DELETE'), + UPDATE: () => getApiPath('TIME_CTRL', 'UPDATE'), + }, + // 消息中心 + MESSAGE: { + PAY: () => getApiPath('MESSAGE', 'PAY'), + WARN: () => getApiPath('MESSAGE', 'WARN'), + SWITCH: () => getApiPath('MESSAGE', 'SWITCH'), + READ_ONE: () => getApiPath('MESSAGE', 'READ_ONE'), + READ_ALL: () => getApiPath('MESSAGE', 'READ_ALL'), + }, + // 个人中心 + USER: { + WARN_PHONE_LIST: () => getApiPath('USER', 'WARN_PHONE_LIST'), + UPDATE_WARN_PHONE: () => getApiPath('USER', 'UPDATE_WARN_PHONE'), + UPDATE_PHONE: () => getApiPath('USER', 'UPDATE_PHONE'), + VERIFY_CODE: () => getApiPath('USER', 'VERIFY_CODE'), + UPDATE_NICKNAME: () => getApiPath('USER', 'UPDATE_NICKNAME'), + }, + // 子账户管理 + SUB_ACCOUNT: { + LIST: () => getApiPath('SUB_ACCOUNT', 'LIST'), + ADD: () => getApiPath('SUB_ACCOUNT', 'ADD'), + DELETE: () => getApiPath('SUB_ACCOUNT', 'DELETE'), + PARENT: () => getApiPath('SUB_ACCOUNT', 'PARENT'), + }, + // 支付相关 + PAY: { + OPTIONS: () => getApiPath('PAY', 'OPTIONS'), + CREATE_ORDER: () => getApiPath('PAY', 'CREATE_ORDER'), + WECHAT_PAY: () => getApiPath('PAY', 'WECHAT_PAY'), + }, +} + +export default API diff --git a/src/pages/msg/index.vue b/src/pages/msg/index.vue index e745f82..710d548 100644 --- a/src/pages/msg/index.vue +++ b/src/pages/msg/index.vue @@ -62,7 +62,6 @@