当前位置:首页 > uni-app

uniapp结算页面

2026-01-16 16:12:00uni-app

uniapp 结算页面实现

页面布局设计

结算页面通常包含商品列表、价格汇总、收货地址和支付方式选择。使用 uni-list 组件展示商品信息,uni-forms 收集用户收货信息,radio-group 选择支付方式。

uniapp结算页面

<template>
  <view class="checkout-container">
    <uni-list>
      <uni-list-item v-for="item in cartItems" :key="item.id" :title="item.name" :note="`¥${item.price} x ${item.quantity}`"></uni-list-item>
    </uni-list>

    <view class="price-section">
      <text>总金额: ¥{{totalPrice}}</text>
    </view>

    <uni-forms ref="form" :model="formData">
      <uni-forms-item label="收货地址" name="address">
        <uni-easyinput v-model="formData.address" placeholder="请输入详细地址"></uni-easyinput>
      </uni-forms-item>
    </uni-forms>

    <radio-group @change="handlePaymentChange">
      <label v-for="method in paymentMethods" :key="method.value">
        <radio :value="method.value" :checked="method.checked"/> {{method.name}}
      </label>
    </radio-group>

    <button type="primary" @click="submitOrder">提交订单</button>
  </view>
</template>

数据绑定与计算

script 部分定义响应式数据,计算总价逻辑:

uniapp结算页面

<script>
export default {
  data() {
    return {
      cartItems: [
        {id: 1, name: '商品A', price: 99, quantity: 2},
        {id: 2, name: '商品B', price: 199, quantity: 1}
      ],
      formData: {
        address: ''
      },
      paymentMethods: [
        {name: '微信支付', value: 'wechat', checked: true},
        {name: '支付宝', value: 'alipay'}
      ],
      selectedPayment: 'wechat'
    }
  },
  computed: {
    totalPrice() {
      return this.cartItems.reduce((sum, item) => sum + item.price * item.quantity, 0)
    }
  },
  methods: {
    handlePaymentChange(e) {
      this.selectedPayment = e.detail.value
    },
    submitOrder() {
      uni.showLoading({title: '订单处理中'})
      // 调用订单API
      setTimeout(() => {
        uni.hideLoading()
        uni.redirectTo({url: '/pages/order/success'})
      }, 1500)
    }
  }
}
</script>

样式优化

添加基础样式增强用户体验:

<style>
.checkout-container {
  padding: 20rpx;
}
.price-section {
  padding: 30rpx 0;
  text-align: right;
  font-weight: bold;
  border-bottom: 1px solid #eee;
}
radio-group {
  margin: 40rpx 0;
}
radio-group label {
  display: block;
  padding: 20rpx 0;
}
</style>

支付功能集成

根据选择的支付方式调用不同API:

// 在submitOrder方法中扩展支付逻辑
if(this.selectedPayment === 'wechat') {
  uni.requestPayment({
    provider: 'wxpay',
    orderInfo: { /* 从服务器获取的支付参数 */ },
    success: () => { /* 支付成功处理 */ },
    fail: (err) => { /* 失败处理 */ }
  })
} else {
  uni.requestPayment({
    provider: 'alipay',
    orderInfo: { /* 支付宝支付参数 */ }
  })
}

注意事项

  1. 真实项目需对接后端API获取动态订单数据
  2. 支付参数应从服务端获取,避免前端硬编码敏感信息
  3. 添加表单验证确保必填字段完整
  4. 考虑添加优惠券抵扣功能
  5. 移动端需特别注意键盘弹出时的页面布局调整

标签: 页面uniapp
分享给朋友:

相关文章

vue 实现页面返回

vue 实现页面返回

实现页面返回的方法 在Vue中实现页面返回功能可以通过多种方式实现,以下是几种常见的方案: 使用Vue Router的go方法 通过Vue Router的go方法可以控制浏览器的历史记录导航。rou…

vue实现 页面

vue实现 页面

Vue 实现页面的基本方法 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是实现页面的常见方法: 单文件组件(SFC) 使用 .vue 文件组织页面结构,包含模板、脚…

uniapp切片

uniapp切片

uniapp 切片实现方法 在 uniapp 中实现切片功能通常指的是对图片或数据进行分割处理。以下是几种常见的切片实现方式: 图片切片展示 通过 CSS 和 JavaScript 实现图片的网格化…

uniapp 目录

uniapp 目录

uniapp 目录结构 uniapp 的目录结构遵循 Vue.js 项目的规范,同时包含一些特有的文件和目录。以下是典型的 uniapp 项目目录结构及其说明: project-name/ ├──…

uniapp审批

uniapp审批

uniapp审批流程实现 在uniapp中实现审批功能,通常需要结合前端界面和后端逻辑。以下是几种常见的实现方式: 前端界面设计 使用uniapp的组件和API构建审批界面,包括表单提交、审批列表展…

h5实现页面切换

h5实现页面切换

h5实现页面切换的方法 在H5中实现页面切换可以通过多种方式完成,包括使用原生HTML链接、JavaScript动态加载、框架路由等。以下是几种常见的方法: 使用原生HTML的<a>标签…