From 5746c31584718c64288be248bb721546eb79c7e3 Mon Sep 17 00:00:00 2001 From: WindowBird <13870814+windows-bird@user.noreply.gitee.com> Date: Thu, 21 Aug 2025 16:14:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/lease/lease.js | 29 +++++++++- config/dev.js | 2 +- pages/lease/lease.vue | 127 ++++++++++++++---------------------------- 3 files changed, 69 insertions(+), 89 deletions(-) diff --git a/api/lease/lease.js b/api/lease/lease.js index 53d9813..8bcb3f9 100644 --- a/api/lease/lease.js +++ b/api/lease/lease.js @@ -22,8 +22,33 @@ export function getPeriodPackages(typeId) { url: '/app/suit/list', method: 'GET', params: { - typeId: typeId + typeId: typeId, }, loadingText: '加载套餐中...', }) -} \ No newline at end of file +} + +/** + * 创建租赁订单 + * @param {Object} orderData - 订单数据 + * @param {string} orderData.name - 用户姓名 + * @param {string} orderData.phone - 手机号 + * @param {string} orderData.address - 地址 + * @param {string} orderData.lot - 经度 + * @param {string} orderData.lat - 纬度 + * @param {string} orderData.detailed - 详细地址 + * @param {string} orderData.devTypeId - 设备类型ID + * @param {string} orderData.suitId - 套餐ID + * @param {string} orderData.appId - 应用ID + * @param {string} orderData.payAmount - 支付金额 + * @param {string} orderData.channelId - 渠道ID + * @returns {Promise} 返回订单创建结果 + */ +export function createLeaseOrder(orderData) { + return request({ + url: '/app/order', + method: 'POST', + data: orderData, + loadingText: '创建订单中...', + }) +} diff --git a/config/dev.js b/config/dev.js index 4f639fb..f9ea76c 100644 --- a/config/dev.js +++ b/config/dev.js @@ -2,7 +2,7 @@ export const DEV_CONFIG = { // 临时token,用于开发测试 TEMP_TOKEN: - 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImE5MGVlZDdmLWYwOTAtNDExMS05ZWMzLTZkMTM2ZjkwODg1NSJ9.s_IYhjbS_tPxJq28I4EN4H3wHLB1BezfJg-Ee4MeaOamx4jMkn376oVXQ24HaKGz4-4t5-ioPndRaOqxDa53JA', + 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImZjMDRiYWQ0LWVjMGQtNDJiMi05NGJkLTQxZGVhMmNmZGE3OCJ9.YyzEJIfPuy2ZrmKRuoWWWHArGxpY9U5kmAM1CFHHrOietHfjWN3rsK0WNxOWTkIDvRiWyAqkTrNwDtWP3ClyQA', // 是否使用临时token USE_TEMP_TOKEN: true, diff --git a/pages/lease/lease.vue b/pages/lease/lease.vue index 2f21845..b4b8314 100644 --- a/pages/lease/lease.vue +++ b/pages/lease/lease.vue @@ -53,7 +53,7 @@ 详细位置 - @@ -134,6 +130,7 @@ import MapLocation from '@/components/map-location/map-location.vue' import { getDeviceTypes as fetchDeviceTypes, getPeriodPackages as fetchPeriodPackages, + createLeaseOrder, } from '@/api/lease/lease.js' export default { @@ -146,66 +143,6 @@ export default { return commonEnum }, // 检查是否可以支付 - 直接验证,不依赖formData默认值 - canPay() { - const nameValid = this.formData.name.trim().length > 0 - const phoneValid = this.formData.phone.trim().length > 0 - const addressValid = this.formData.address.trim().length > 0 - const detailAddressValid = this.formData.detailAddress.trim().length > 0 - const equipmentSelected = !!this.formData.equipmentId - const packageSelected = !!this.formData.periodId - const amountValid = parseFloat(this.totalAmount) > 0 - - const canPayResult = - nameValid && - phoneValid && - addressValid && - detailAddressValid && - equipmentSelected && - packageSelected && - amountValid - - // 实时调试信息 - console.log('🔍 canPay 实时检查:', { - nameValid, - phoneValid, - addressValid: addressValid, - addressValue: `"${this.formData.address}"`, - addressLength: this.formData.address.length, - detailAddressValid: detailAddressValid, - detailAddressValue: `"${this.formData.detailAddress}"`, - detailAddressLength: this.formData.detailAddress.length, - equipmentSelected, - packageSelected, - amountValid, - canPay: canPayResult, - }) - - return canPayResult - }, - }, - watch: { - // 监控关键数据变化(可选,用于调试) - 'formData.name'() { - console.log('🔍 姓名变化:', this.formData.name) - }, - 'formData.phone'() { - console.log('🔍 手机号变化:', this.formData.phone) - }, - 'formData.address'() { - console.log('🔍 地址变化:', this.formData.address) - }, - 'formData.detailAddress'() { - console.log('🔍 详细位置变化:', this.formData.detailAddress) - }, - 'formData.equipmentId'() { - console.log('🔍 设备ID变化:', this.formData.equipmentId) - }, - 'formData.periodId'() { - console.log('🔍 套餐ID变化:', this.formData.periodId) - }, - totalAmount() { - console.log('🔍 总金额变化:', this.totalAmount) - }, }, onLoad() { // 页面加载时获取设备类型列表 @@ -217,11 +154,13 @@ export default { name: '', phone: '', address: '', - detailAddress: '', + detailed: '', equipment: '', - equipmentId: '', // 设备类型ID + devTypeId: '', // 设备类型ID period: '', - periodId: '', // 租赁周期ID + suitId: '', // 租赁周期ID + channelId: '2', //渠道id + payAmount: 0, }, showDetails: false, totalAmount: '0.00', @@ -234,10 +173,7 @@ export default { methods: { // 地址输入处理 onAddressInput(value) { - console.log('🔍 地址输入变化:', value) - console.log('🔍 地址输入前 formData.address:', this.formData.address) this.formData.address = value - console.log('🔍 地址输入后 formData.address:', this.formData.address) }, // 地图组件事件处理 @@ -319,12 +255,12 @@ export default { const selectedDevice = this.deviceTypes[res.tapIndex] this.selectedDevice = selectedDevice this.formData.equipment = selectedDevice.name - this.formData.equipmentId = selectedDevice.id + this.formData.devTypeId = selectedDevice.id this.formData.equipmentSuitId = selectedDevice.suitId // 清空之前选择的套餐 this.formData.period = '' - this.formData.periodId = '' + this.formData.suitId = '' this.selectedPackage = null this.totalAmount = '0.00' @@ -338,7 +274,7 @@ export default { }, selectPeriod() { // 检查是否已选择设备 - if (!this.formData.equipmentId) { + if (!this.formData.devTypeId) { uni.showToast({ title: '请先选择设备类型', icon: 'none', @@ -364,10 +300,11 @@ export default { const selectedPackage = this.periodPackages[res.tapIndex] this.selectedPackage = selectedPackage this.formData.period = selectedPackage.name - this.formData.periodId = selectedPackage.id + this.formData.suitId = selectedPackage.id + this.formData.payAmount = selectedPackage.amount this.totalAmount = selectedPackage.amount.toFixed(2) console.log('选中套餐:', selectedPackage) - console.log('选中时长:', this.formData.periodId) + console.log('选中租赁周期id:', this.formData.suitId) }, }) }, @@ -400,7 +337,15 @@ export default { return } - if (!this.formData.equipmentId) { + if (!this.formData.detailed.trim()) { + uni.showToast({ + title: '请输入详细地址', + icon: 'none', + }) + return + } + + if (!this.formData.devTypeId) { uni.showToast({ title: '请选择设备类型', icon: 'none', @@ -408,7 +353,7 @@ export default { return } - if (!this.formData.periodId) { + if (!this.formData.suitId) { uni.showToast({ title: '请选择租赁周期', icon: 'none', @@ -428,20 +373,30 @@ export default { uni.showModal({ title: '确认支付', content: `确认支付 ¥${this.totalAmount} 吗?\n\n设备:${this.formData.equipment}\n周期:${this.formData.period}`, - success: res => { + success: async res => { if (res.confirm) { // 这里可以调用支付API + + const response = await createLeaseOrder(this.formData) + + if (response.code === 200) { + uni.showToast({ + title: '支付成功', + icon: 'success', + }) + } else { + uni.showToast({ + title: response.msg || '添加失败', + icon: 'none', + }) + } + console.log('支付信息:', { ...this.formData, amount: this.totalAmount, selectedDevice: this.selectedDevice, selectedPackage: this.selectedPackage, }) - - uni.showToast({ - title: '支付成功', - icon: 'success', - }) } }, })