From 179be8f8b06a43ddaaa0abfa17847e34cff81af8 Mon Sep 17 00:00:00 2001 From: ISFP_T <68358856@qq.com> Date: Sat, 18 Oct 2025 09:24:35 +0800 Subject: [PATCH] =?UTF-8?q?style:=E6=A0=B7=E5=BC=8F=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/api/device.js | 40 +++ config/api/expressReturn.js | 61 ++++ config/api/feedback.js | 12 + config/api/order.js | 120 +++++++ config/api/system.js | 20 ++ config/api/user.js | 117 +++++++ config/url.js | 4 +- config/user.js | 354 -------------------- pages.json | 24 +- pages/deposit/index.vue | 3 +- pages/device/detail.vue | 6 +- pages/expressReturn/addExpressReturn.vue | 6 +- pages/expressReturn/detail.vue | 2 +- pages/expressReturn/index.vue | 2 +- pages/feedback/index.vue | 5 +- pages/index/index.vue | 12 +- pages/my/index.vue | 50 +-- pages/order/detail.vue | 6 +- pages/order/index.vue | 10 +- pages/order/payment.vue | 7 +- pages/order/return-success.vue | 2 +- pages/order/success.vue | 3 +- pages/return/index.vue | 6 +- pages/search/index.vue | 8 +- pages/serve/bagCheck/index.vue | 8 +- pages/setting/index.vue | 2 +- pages/userProfile/index.vue | 407 +++++++++++++++++++++++ pages/waiting/index.vue | 2 +- util/index.js | 2 +- utils/orderMonitor.js | 2 +- 30 files changed, 880 insertions(+), 423 deletions(-) create mode 100644 config/api/device.js create mode 100644 config/api/expressReturn.js create mode 100644 config/api/feedback.js create mode 100644 config/api/order.js create mode 100644 config/api/system.js create mode 100644 config/api/user.js delete mode 100644 config/user.js create mode 100644 pages/userProfile/index.vue diff --git a/config/api/device.js b/config/api/device.js new file mode 100644 index 0000000..42bdb43 --- /dev/null +++ b/config/api/device.js @@ -0,0 +1,40 @@ +import request from '../http' + +// 设备查询 +export const getDeviceInfo = (deviceNo) => { + return request({ + url: `/app/device/${deviceNo}`, + method: 'get', + }) +} + +// 立即租借 +export const rentPowerBank = (deviceNo, phone) => { + return request({ + url: `/app/device/rentPowerBank?deviceNo=${deviceNo}`, + method: 'post', + data: { + // deviceNo, + phone + } + }) +} + +// 确认支付并弹出风扇 +export const confirmPaymentAndRent = (orderId) => { + console.log(`确认支付并弹出风扇, orderId: ${orderId}`) + return request({ + url: `/app/device/confirmPaymentAndRent?orderId=${orderId}`, + method: 'GET' + }) +} + +// 强制打开空格子 +export const forcefOpenEmptyGrid = (deviceNo) => { + console.log(`强制打开空格子, deviceNo: ${deviceNo}`) + return request({ + url: `/app/device/forcef/${deviceNo}`, + method: 'post' + }) +} + diff --git a/config/api/expressReturn.js b/config/api/expressReturn.js new file mode 100644 index 0000000..c4c8357 --- /dev/null +++ b/config/api/expressReturn.js @@ -0,0 +1,61 @@ +import request from '../http' + +// ===================== 快递归还相关接口 ===================== + +// 1) 申请快递归还 +export const applyExpressReturn = (data) => { + // data: { orderId: number, logisticsTrackingNumber?: string, remark?: string } + return request({ + url: '/app/express-return/apply', + method: 'post', + data + }) +} + +// 2) 补填快递单号 +export const fillExpressTrackingNumber = (data) => { + // data: { id: number, logisticsTrackingNumber: string } + return request({ + url: '/app/express-return/fill-tracking-number', + method: 'post', + data + }) +} + +// 3) 查询快递归还记录列表 +export const getExpressReturnList = (params) => { + // params: { orderId?: number, status?: number, logisticsTrackingNumber?: string, pageNum?: number, pageSize?: number } + return request({ + url: '/app/express-return/list', + method: 'get', + data: params, + hideLoading: true + }) +} + +// 4) 根据订单ID查询快递归还记录 +export const getExpressReturnByOrder = (orderId) => { + return request({ + url: `/app/express-return/by-order/${orderId}`, + method: 'get', + hideLoading: true + }) +} + +// 5) 获取快递归还记录详情 +export const getExpressReturnDetail = (id) => { + return request({ + url: `/app/express-return/${id}`, + method: 'get', + hideLoading: true + }) +} + +// 6) 取消快递归还申请 +export const cancelExpressReturn = (id) => { + return request({ + url: `/app/express-return/cancel/${id}`, + method: 'post' + }) +} + diff --git a/config/api/feedback.js b/config/api/feedback.js new file mode 100644 index 0000000..931d417 --- /dev/null +++ b/config/api/feedback.js @@ -0,0 +1,12 @@ +import request from '../http' + +// 投诉反馈 +export const addUserFeedback = (data) => { + console.log(data); + return request({ + url: '/app/feedback/add', + method: 'post', + data, + }) +} + diff --git a/config/api/order.js b/config/api/order.js new file mode 100644 index 0000000..c00f868 --- /dev/null +++ b/config/api/order.js @@ -0,0 +1,120 @@ +import request from '../http' + +// 获取所有全部订单 +export const getOrderList = (data) => { + return request({ + url: '/app/order/list', + method: 'get', + data, + hideLoading: true + }) +} + +// 查询是否有订单 +export const queryHasOrder = (deviceNo) => { + return request({ + url: `/app/order/list?deviceNo=${deviceNo}&orderStatus=in_used`, + method: 'get', + }) +} + +// 查询指定设备号下,特定状态的订单列表 +export const checkOrdersByStatus = (deviceNo, statuses) => { + // statuses 是一个包含状态字符串的数组,例如 ['in_used', 'waiting_for_payment'] + const statusQuery = statuses.join(','); // 后端需要支持逗号分隔的状态查询 + return request({ + url: `/app/order/list?deviceNo=${deviceNo}&orderStatus=${statusQuery}`, + method: 'get', + hideLoading: true, // 隐藏加载提示,避免干扰用户 + ignoreEmptyError: true // 添加标记,表示即使返回空数据也不视为错误 + }) +} + +// 创建订单 +export const createOrder = (data) => { + return request({ + url: '/app/order/add', + method: 'post', + data, + }) +} + +// 查询订单 +export const queryById = (id) => { + console.log(`查询订单详情, orderId: ${id}`) + return request({ + url: `/app/order/${id}`, + method: 'get', + hideLoading: true + }) +} + +// 取消订单 +export const cancelOrder = (data) => { + return request({ + url: `/device/order/clear/${data.orderId}`, + method: 'get', + data, + }) +} + +// 结束订单 +export const overOrderById = (orderId) => { + console.log(`调用结束订单API, orderId: ${orderId}`) + return request({ + url: `/app/order/close/${orderId}`, + method: 'get', + }) +} + +// 通过订单号获取订单信息 +export const getOrderByOrderNo = (orderNo) => { + return request({ + url: `/app/order/byOrderNo/${orderNo}`, + method: 'get', + hideLoading: true + }) +} + +// 通过订单号获取支付分订单信息 +export const getOrderByOrderNoScore = (orderNo) => { + console.log('通过订单号获取支付分订单信息', orderNo); + return request({ + url: `/app/wx-payment/score/create/${orderNo}`, + method: 'get', + hideLoading: true + }) +} + +// 通过订单号获取支付分订单状态 +export const getOrderByOrderNoScorePayStatus = (orderNo) => { + console.log('通过订单号获取支付分订单状态', orderNo); + return request({ + url: `/app/wx-payment/score/status/${orderNo}`, + method: 'get', + hideLoading: true + }) +} + +// 更新订单套餐信息 +export const updateOrderPackage = (data) => { + console.log('更新订单套餐信息:', data) + return request({ + url: '/app/device/updateOrderPackage', + method: 'post', + data + }) +} + +/* + * 弃用 + */ +export const getPotionsDetail = (data) => { + console.log(data); + return request({ + url: '/device/position/positionDetails', + method: 'get', + data + }) +} + diff --git a/config/api/system.js b/config/api/system.js new file mode 100644 index 0000000..8f51466 --- /dev/null +++ b/config/api/system.js @@ -0,0 +1,20 @@ +import request from '../http' + +// 获取系统配置(预留接口) +// 期望后端返回形如:{ code: 200, data: { expressReturnCountdownSeconds: number } } +export const getSystemConfig = () => { + return request({ + url: '/app/system/config', + method: 'get', + hideLoading: true + }) +} + +// 获取通知接口 +export const getNoticeTextData = (data) => { + return request({ + url: `/system/notice/title/${data.title}`, + method: 'get' + }) +} + diff --git a/config/api/user.js b/config/api/user.js new file mode 100644 index 0000000..46eb7f7 --- /dev/null +++ b/config/api/user.js @@ -0,0 +1,117 @@ +import request from '../http' +import { URL, appid } from '../url' + +// 用户登录 +export const login = (data) => { + return request({ + url: '/app/user/login', + method: 'get', + data + }) +} + +// 用户退出登录 +export const userLogout = (data) => { + return request({ + url: '/auth/logout', + method: 'post', + data + }) +} + +// 获取用户信息 +export const getMyIndexInfo = (data) => { + return request({ + url: '/app/user/userInfo', + method: 'get', + data, + }) +} + +// 更新用户信息 +export const updateUserInfo = (data) => { + return request({ + url: '/app/user/updateUser', + method: 'post', + data + }) +} + +// 更新用户余额 +export const updateUserBalance = (orderId) => { + return request({ + url: `/app/user/updateBalance/${orderId}`, + method: 'post', + hideLoading: true + }) +} + +// 上传并更新用户头像(后端接口) +export const uploadUserAvatar = (filePath) => { + return new Promise((resolve, reject) => { + uni.uploadFile({ + url: URL + '/app/user/uploadAvatar', + filePath, + name: 'file', + header: { + 'appid': appid, + 'Authorization': 'Bearer ' + uni.getStorageSync('token'), + 'Clientid': uni.getStorageSync('client_id') + }, + success: (res) => { + try { + const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data + resolve(parsed) + } catch (e) { + reject(e) + } + }, + fail: (err) => { + reject(err) + } + }) + }) +} + +// 文件上传到 OSS(若依后端) +export const uploadOssResource = (filePath) => { + return new Promise((resolve, reject) => { + uni.uploadFile({ + url: URL + '/manager/upload', + filePath, + name: 'file', + header: { + 'appid': appid, + 'Authorization': 'Bearer ' + uni.getStorageSync('token'), + 'Clientid': uni.getStorageSync('client_id') + }, + success: (res) => { + try { + const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data + const codeOk = (res.statusCode === 200 || res.statusCode === 201 || parsed?.code === 200) + const url = parsed?.url || parsed?.data?.url || parsed?.data?.fileUrl || parsed?.fileUrl || parsed?.path || parsed?.data + if (codeOk && url) { + resolve(url) + return + } + reject(parsed || res) + } catch (e) { + reject(e) + } + }, + fail: (err) => { + reject(err) + } + }) + }) +} + +// 添加押金提现API +export const withdrawDeposit = (orderNo) => { + return request({ + url: `/app/withdraw/add/${orderNo}`, + method: 'get', + hideLoading: true + }) +} + diff --git a/config/url.js b/config/url.js index 4ad6a0c..9ee9a63 100644 --- a/config/url.js +++ b/config/url.js @@ -1,5 +1,5 @@ -// export const URL = "https://my.gxfs123.com/api" //正式服务器 -export const URL = "https://fansdev.gxfs123.com/api" //测试服务器 +export const URL = "https://my.gxfs123.com/api" //正式服务器 +// export const URL = "https://fansdev.gxfs123.com/api" //测试服务器 // export const URL = "http://192.168.5.37:8080" //本地调试 // export const URL = "http://127.0.0.1:8080" //本地调试 diff --git a/config/user.js b/config/user.js deleted file mode 100644 index ff513ff..0000000 --- a/config/user.js +++ /dev/null @@ -1,354 +0,0 @@ -import request from './http' -import { URL, appid } from './url' - - -//用户登录 -export const login = (data) => { - return request({ - url: '/app/user/login', - method: 'get', - data - }) -} - -//用户退出登录 -export const userLogout = (data)=>{ - return request({ - url:'/auth/logout', - method:'post', - data - }) -} - -//获取用户信息 -export const getMyIndexInfo = (data) => { - return request({ - url: '/app/user/userInfo', - method: 'get', - data, - }) -} - -// 添加押金提现API -export const withdrawDeposit = (orderNo) => { - return request({ - url: `/app/withdraw/add/${orderNo}`, - method: 'get', - hideLoading: true - }) -} - -//获取所有全部订单 -export const getOrderList = (data) => { - return request({ - url: '/app/order/list', - method: 'get', - data, - hideLoading: true - }) -} - -//查询是否有订单 -export const queryHasOrder = (deviceNo) => { - return request({ - url: `/app/order/list?deviceNo=${deviceNo}&orderStatus=in_used`, - method: 'get', - }) -} - -// 查询指定设备号下,特定状态的订单列表 -export const checkOrdersByStatus = (deviceNo, statuses) => { - // statuses 是一个包含状态字符串的数组,例如 ['in_used', 'waiting_for_payment'] - const statusQuery = statuses.join(','); // 后端需要支持逗号分隔的状态查询 - return request({ - url: `/app/order/list?deviceNo=${deviceNo}&orderStatus=${statusQuery}`, - method: 'get', - hideLoading: true, // 隐藏加载提示,避免干扰用户 - ignoreEmptyError: true // 添加标记,表示即使返回空数据也不视为错误 - }) -} - -//设备查询 -export const getDeviceInfo = (deviceNo) => { - return request({ - url: `/app/device/${deviceNo}`, - method: 'get', - }) -} - - -//创建订单 -export const createOrder = (data) => { - return request({ - url: '/app/order/add', - method: 'post', - data, - }) -} - -//查询订单 -export const queryById = (id) => { - console.log(`查询订单详情, orderId: ${id}`) - return request({ - url: `/app/order/${id}`, - method: 'get', - hideLoading: true - }) -} - - -//取消订单 -export const cancelOrder = (data) => { - return request({ - url: `/device/order/clear/${data.orderId}`, - method: 'get', - data, - }) -} - - -//结束订单 -export const overOrderById = (orderId) => { - console.log(`调用结束订单API, orderId: ${orderId}`) - return request({ - url: `/app/order/close/${orderId}`, - method: 'get', - }) -} - -//立即租借 -export const rentPowerBank = (deviceNo, phone) => { - return request({ - url: `/app/device/rentPowerBank?deviceNo=${deviceNo}`, - method: 'post', - data: { - // deviceNo, - phone - } - }) -} - -//确认支付并弹出风扇 -export const confirmPaymentAndRent = (orderId) => { - console.log(`确认支付并弹出风扇, orderId: ${orderId}`) - return request({ - url: `/app/device/confirmPaymentAndRent?orderId=${orderId}`, - method: 'GET' - }) -} - - - -//投诉反馈 -export const addUserFeedback = (data) => { - console.log(data); - return request({ - url: '/app/feedback/add', - method: 'post', - data, - }) -} - -//强制打开空格子 -export const forcefOpenEmptyGrid = (deviceNo) => { - console.log(`强制打开空格子, deviceNo: ${deviceNo}`) - return request({ - url: `/app/device/forcef/${deviceNo}`, - method: 'post' - }) -} - -// 通过订单号获取订单信息 -export const getOrderByOrderNo = (orderNo) => { - return request({ - url: `/app/order/byOrderNo/${orderNo}`, - method: 'get', - hideLoading: true - }) -} -// 通过订单号获取支付分订单信息 -export const getOrderByOrderNoScore = (orderNo) => { - console.log('通过订单号获取支付分订单信息', orderNo); - return request({ - url: `/app/wx-payment/score/create/${orderNo}`, - method: 'get', - hideLoading: true - }) -} - -export const getOrderByOrderNoScorePayStatus = (orderNo) => { - console.log('通过订单号获取支付分订单状态', orderNo); - return request({ - url: `/app/wx-payment/score/status/${orderNo}`, - method: 'get', - hideLoading: true - }) -} - -// 更新订单套餐信息 -export const updateOrderPackage = (data) => { - console.log('更新订单套餐信息:', data) - return request({ - url: '/app/device/updateOrderPackage', - method: 'post', - data - }) -} - -// 更新用户余额 -export const updateUserBalance = (orderId) => { - return request({ - url: `/app/user/updateBalance/${orderId}`, - method: 'post', - hideLoading: true - }) -} - -/* - *弃用 - */ -export const getPotionsDetail = (data) => { - console.log(data); - return request({ - url: '/device/position/positionDetails', - method: 'get', - data - }) -} - -// 文件上传到 OSS(若依后端) -export const uploadOssResource = (filePath) => { - return new Promise((resolve, reject) => { - uni.uploadFile({ - url: URL + '/manager/upload', - filePath, - name: 'file', - header: { - 'appid': appid, - 'Authorization': 'Bearer ' + uni.getStorageSync('token'), - 'Clientid': uni.getStorageSync('client_id') - }, - success: (res) => { - try { - const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data - const codeOk = (res.statusCode === 200 || res.statusCode === 201 || parsed?.code === 200) - const url = parsed?.url || parsed?.data?.url || parsed?.data?.fileUrl || parsed?.fileUrl || parsed?.path || parsed?.data - if (codeOk && url) { - resolve(url) - return - } - reject(parsed || res) - } catch (e) { - reject(e) - } - }, - fail: (err) => { - reject(err) - } - }) - }) -} - -// 上传并更新用户头像(后端接口) -export const uploadUserAvatar = (filePath) => { - return new Promise((resolve, reject) => { - uni.uploadFile({ - url: URL + '/app/user/uploadAvatar', - filePath, - name: 'file', - header: { - 'appid': appid, - 'Authorization': 'Bearer ' + uni.getStorageSync('token'), - 'Clientid': uni.getStorageSync('client_id') - }, - success: (res) => { - try { - const parsed = typeof res.data === 'string' ? JSON.parse(res.data) : res.data - resolve(parsed) - } catch (e) { - reject(e) - } - }, - fail: (err) => { - reject(err) - } - }) - }) -} - -// 获取系统配置(预留接口) -// 期望后端返回形如:{ code: 200, data: { expressReturnCountdownSeconds: number } } -export const getSystemConfig = () => { - return request({ - url: '/app/system/config', - method: 'get', - hideLoading: true - }) -} - -// ===================== 快递归还相关接口 ===================== -// 1) 申请快递归还 -export const applyExpressReturn = (data) => { - // data: { orderId: number, logisticsTrackingNumber?: string, remark?: string } - return request({ - url: '/app/express-return/apply', - method: 'post', - data - }) -} - -// 2) 补填快递单号 -export const fillExpressTrackingNumber = (data) => { - // data: { id: number, logisticsTrackingNumber: string } - return request({ - url: '/app/express-return/fill-tracking-number', - method: 'post', - data - }) -} - -// 3) 查询快递归还记录列表 -export const getExpressReturnList = (params) => { - // params: { orderId?: number, status?: number, logisticsTrackingNumber?: string, pageNum?: number, pageSize?: number } - return request({ - url: '/app/express-return/list', - method: 'get', - data: params, - hideLoading: true - }) -} - -// 4) 根据订单ID查询快递归还记录 -export const getExpressReturnByOrder = (orderId) => { - return request({ - url: `/app/express-return/by-order/${orderId}`, - method: 'get', - hideLoading: true - }) -} - -// 5) 获取快递归还记录详情 -export const getExpressReturnDetail = (id) => { - return request({ - url: `/app/express-return/${id}`, - method: 'get', - hideLoading: true - }) -} - -// 6) 取消快递归还申请 -export const cancelExpressReturn = (id) => { - return request({ - url: `/app/express-return/cancel/${id}`, - method: 'post' - }) -} - - -//获取通知接口 -export const getNoticeTextData = (data)=>{ - return request({ - url: `/system/notice/title/${data.title}`, - method: 'get' - }) -} \ No newline at end of file diff --git a/pages.json b/pages.json index e402e00..a4f06ec 100644 --- a/pages.json +++ b/pages.json @@ -40,14 +40,22 @@ "navigationBarTextStyle": "black" } }, - { - "path": "pages/my/index", - "style": { - "navigationBarTitleText": "个人中心", - "navigationBarBackgroundColor": "#D1FFE1", - "navigationBarTextStyle": "black" - } - }, + { + "path": "pages/my/index", + "style": { + "navigationBarTitleText": "个人中心", + "navigationBarBackgroundColor": "#D1FFE1", + "navigationBarTextStyle": "black" + } + }, + { + "path": "pages/userProfile/index", + "style": { + "navigationBarTitleText": "个人信息", + "navigationBarBackgroundColor": "#D1FFE1", + "navigationBarTextStyle": "black" + } + }, { "path": "pages/setting/index", "style": { diff --git a/pages/deposit/index.vue b/pages/deposit/index.vue index d285995..004954e 100644 --- a/pages/deposit/index.vue +++ b/pages/deposit/index.vue @@ -40,7 +40,8 @@ + + + diff --git a/pages/waiting/index.vue b/pages/waiting/index.vue index 5eac642..797fc69 100644 --- a/pages/waiting/index.vue +++ b/pages/waiting/index.vue @@ -23,7 +23,7 @@