uni-app使用unicloud的购物车页面

发布于 1周前 作者 eggper 来自 Uni-App

uni-app使用unicloud的购物车页面

2 回复

公司承接项目外包开发、双端(Android,iOS)原生插件开发。
为什么选择我们: 1、1000+项目开发积累,数百种商业模式开发经验,更懂您的需求,沟通无障碍。 2、一年免费技术保障,系统故障或被攻击,2小时快速响应提供解决方案落地。 3、软件开发源码定制工厂,去中间商降低成本,提高软件开发需求沟通效率。 4、纯原生开发,拒绝模板和封装系统,随时更新迭代,增加功能,无需重做系统。 5、APP定制包办软件著作权申请,30天内保证拿到软著证书,知识产权受保护。 6、中软云科技导入严谨的项目管理系统,确保项目准时交付,快速抢占市场商机。 7、软件开发费、维护费、第三方各种费用公开透明,不花冤枉钱,不玩套路。
已有大量双端插件、App、小程序、公众号、PC、移动端、游戏等案例。
行业开发经验:银行、医疗、直播、电商、教育、旅游、餐饮、分销、微商、物联网、零售等
商务QQ:1559653449 商务微信:fan-rising
7x24小时在线,欢迎咨询了解


当然,以下是一个使用uni-app结合unicloud实现购物车页面的简单示例。这个示例假设你已经配置好了unicloud云开发环境,并且已经创建了一个集合(如cart)来存储购物车数据。

前端页面代码(uni-app)

cart.vue

<template>
  <view>
    <view v-for="(item, index) in cartItems" :key="index" class="cart-item">
      <text>{{ item.productName }}</text>
      <text>数量: {{ item.quantity }}</text>
      <text>价格: {{ item.price }}元</text>
      <button @click="removeItem(index)">删除</button>
    </view>
    <view class="total">
      <text>总价: {{ totalPrice }}元</text>
    </view>
    <button @click="checkout">结账</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      cartItems: []
    };
  },
  computed: {
    totalPrice() {
      return this.cartItems.reduce((sum, item) => sum + item.price * item.quantity, 0);
    }
  },
  methods: {
    async fetchCart() {
      const db = uniCloud.database();
      const _ = db.command;
      const result = await db.collection('cart').where(_.eq('_user_id', uni.getStorageSync('userId'))).get();
      this.cartItems = result.data;
    },
    removeItem(index) {
      const db = uniCloud.database();
      db.collection('cart').doc(this.cartItems[index]._id).remove();
      this.cartItems.splice(index, 1);
    },
    async checkout() {
      // 结账逻辑,如创建订单等
      console.log('Checkout with items:', this.cartItems);
    }
  },
  mounted() {
    this.fetchCart();
  }
};
</script>

<style>
.cart-item {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
}
.total {
  font-weight: bold;
  margin-top: 20px;
}
</style>

后端云函数(unicloud)

假设你已经在unicloud中配置了数据库集合cart,以下是一个简单的云函数示例,用于处理一些可能的后台逻辑(例如,创建订单等)。这里只给出云函数的基本结构,具体逻辑根据实际需求实现。

cloudfunctions/createOrder/index.js

'use strict';

exports.main = async (event, context) => {
  const db = uniCloud.database();
  const cartItems = event.cartItems; // 从前端传递过来的购物车数据

  // 在这里实现创建订单的逻辑
  // 例如,将购物车数据插入到订单集合,并清空购物车数据

  const orderId = new Date().getTime(); // 简单生成订单ID
  await db.collection('orders').add({
    data: {
      orderId,
      items: cartItems,
      totalPrice: event.totalPrice, // 总价
      userId: uniCloud.getWXContext().OPENID, // 用户ID
      createTime: new Date()
    }
  });

  // 清空购物车
  await db.collection('cart').where({
    _user_id: uniCloud.getWXContext().OPENID
  }).remove();

  return {
    success: true,
    orderId
  };
};

这个示例展示了如何使用uni-app和unicloud实现一个基本的购物车页面,包括获取购物车数据、删除购物车项和结账功能。具体的结账逻辑(如创建订单)需要根据你的业务需求进一步实现。

回到顶部