低代码可视化-uniapp购物车页面-代码生成器

购物车页面是电子商务网站或应用程序中的一个关键功能页面,它允许用户查看、编辑和管理他们选择加入购物车的商品。下面通过低代码可视化实现一个uniapp购物车页面,把购物车整个事件都集成进去。实现完成后可以保存为页面模板。

收货地址选择

如果尚未选择收货地址,用户可以在此选择或输入新收货地址。

API加载收货地址

api加载当前用户所有收货地址,如果没有收货地址,提示先新增地址。

如果有地址,支持显示用户收货地址。

商品列表

循环显示用户购物车的数据。

商品图片:显示商品的缩略图,帮助用户快速识别。

商品名称:商品的完整名称或描述。

价格:每个商品的单价,以及可能的折扣价或原价对比。

数量选择器:允许用户增加或减少所选商品的数量。
 



总价计算

商品总价:所有商品单价乘以数量的总和。。
订单总价:商品总价加上税运费(如果有)的最终金额。

查看源码

点击查看源码,也可以设计器上显示源码。

保存源码至本地

保存源码至本地,即可看见购物车功能。

<template>
	<view class="container container329916">
		<view class="flex flex-wrap diygw-col-24 flex-direction-column">
			<view v-if="userInfo.token && userInfo.carts && userInfo.carts.length > 0 && globalData.userAddress.id" class="flex flex-wrap diygw-col-24 items-stretch flex7-clz">
				<view class="flex flex-wrap diygw-col-0 flex-direction-column justify-between items-center flex6-clz">
					<view class="flex flex-wrap diygw-col-24 items-center">
						<text class="diygw-col-0 text5-clz"> 收货人:{{ globalData.userAddress.title }} </text>
						<text class="diygw-col-0 text6-clz">
							{{ globalData.userAddress.phone }}
						</text>
					</view>
					<text class="diygw-text-line1 diygw-col-24 text30-clz"> {{ globalData.userAddress.provinceLabel }}{{ globalData.userAddress.address }} </text>
				</view>
				<text class="diygw-col-0 text8-clz"> </text>
				<view class="flex flex-wrap diygw-col-0 items-center flex11-clz" @tap="navigateTo" data-type="page" data-url="/pages/address">
					<text class="diygw-col-0"> 修改默认地址 </text>
					<text class="flex icon4 diygw-col-0 diy-icon-right"></text>
				</view>
			</view>
			<view v-if="userInfo.token && userInfo.carts && userInfo.carts.length > 0 && !globalData.userAddress.id" class="flex flex-wrap diygw-col-24 items-stretch flex13-clz" @tap="navigateTo" data-type="page" data-url="/pages/address">
				<view class="flex flex-wrap diygw-col-0 flex-direction-column justify-between items-center flex14-clz">
					<view class="flex flex-wrap diygw-col-24 items-center">
						<text class="diygw-col-0 text12-clz"> 未找到收货地址,请先维维护 </text>
					</view>
				</view>
				<text class="diygw-col-0 text15-clz"> </text>
				<view class="flex flex-wrap diygw-col-0 items-center flex16-clz">
					<text class="diygw-col-0"> 新增地址 </text>
					<text class="flex icon5 diygw-col-0 diy-icon-right"></text>
				</view>
			</view>
			<view v-for="(item, index) in userInfo.carts" :key="index" class="flex flex-wrap diygw-col-24 items-center flex5-clz">
				<text v-if="item.selected == 1" @tap="navigateTo" data-type="selectOneFunction" :data-index="index" class="flex icon diygw-col-0 icon-clz diy-icon-roundcheck"></text>
				<text v-else @tap="navigateTo" data-type="selectOneFunction" :data-index="index" class="flex icon1 diygw-col-0 icon1-clz diy-icon-round"></text>
				<view class="flex flex-wrap diygw-col-0 items-stretch flex4-clz">
					<image :src="item.img" class="image-size diygw-image diygw-col-0 image-clz" mode="scaleToFill"></image>
					<view class="flex flex-wrap diygw-col-0 flex-direction-column justify-between flex2-clz">
						<text class="diygw-text-line2 diygw-col-24 text-clz">
							{{ item.title }}
						</text>
						<view class="flex flex-wrap diygw-col-24 justify-between items-center">
							<text class="diygw-text-line2 diygw-col-0 text2-clz"> {{ item.price }}元 </text>
							<u-form-item :borderBottom="false" class="diygw-col-0 diygw-form-item-notpadding" labelPosition="top" prop="number">
								<view class="flex diygw-col-24">
									<u-number-box :inputHeight="48" @change="changeItemNumber($event, index, item)" name="number" v-model="item.number" bgColor="#EBECEE" color="#323233" :min="1" :max="100" :step="1" />
								</view>
							</u-form-item>
						</view>
					</view>
				</view>
			</view>
		</view>
		<view v-if="!userInfo.carts || (userInfo.carts && userInfo.carts.length == 0)" class="flex flex-wrap diygw-col-24 flex-direction-column items-center flex10-clz">
			<image src="/static/zwjl.png" class="image1-size diygw-image diygw-col-0" mode="widthFix"></image>
			<text class="diygw-col-0 text7-clz"> 您的购物车是空的,快去逛逛吧 </text>
			<text @tap="navigateTo" data-type="page" data-url="/pages/goods" class="diygw-col-0 text13-clz"> 去逛逛 </text>
		</view>
		<view class="flex flex-wrap diygw-col-24 flex-direction-column items-center diygw-bottom flex28-clz">
			<view v-if="userInfo.token && userInfo.carts && userInfo.carts.length > 0" class="flex diygw-col-24 justify-between items-center flex-nowrap flex-clz">
				<view class="flex flex-wrap diygw-col-0 items-center" @tap="navigateTo" data-type="selectAllFunction">
					<text v-if="globalData.totalSelected == '1'" class="flex icon2 diygw-col-0 icon2-clz diy-icon-roundcheck"></text>
					<text v-if="globalData.totalSelected != '1'" class="flex icon3 diygw-col-0 icon3-clz diy-icon-round"></text>
					<text class="diygw-col-0"> 合计: </text>
					<text class="diygw-col-0 text3-clz"> {{ globalData.totalPrice }}元 </text>
				</view>
				<text v-if="userInfo.token" @tap="navigateTo" data-type="orderApi" class="diygw-col-0 text4-clz"> 立即购买 </text>
				<text v-else @tap="navigateTo" data-type="page" data-url="/pages/login" class="diygw-col-0 text10-clz"> 还未登录,立即登录 </text>
			</view>
			<view class="flex flex-wrap diygw-col-24 items-end flex17-clz">
				<view class="flex flex-wrap diygw-col-6 flex-direction-column items-center flex18-clz" @tap="navigateTo" data-type="page" data-url="/pages/index" data-redirect="1">
					<view class="flex flex-wrap diygw-col-0 flex-direction-column items-center">
						<image src="/static/sy3.png" class="image2-size diygw-image diygw-col-0" mode="widthFix"></image>
					</view>
					<text class="diygw-text-line1 diygw-col-0"> 首页 </text>
				</view>
				<view class="flex flex-wrap diygw-col-6 flex-direction-column items-center flex20-clz" @tap="navigateTo" data-type="page" data-url="/pages/goods" data-redirect="1">
					<view class="flex flex-wrap diygw-col-0 flex-direction-column items-center">
						<image src="/static/fl.png" class="image8-size diygw-image diygw-col-0" mode="widthFix"></image>
					</view>
					<text class="diygw-text-line1 diygw-col-0"> 分类 </text>
				</view>
				<view class="flex flex-wrap diygw-col-6 flex-direction-column items-center flex21-clz" @tap="navigateTo" data-type="page" data-url="/pages/cart" data-redirect="1">
					<view class="flex flex-wrap diygw-col-0 flex-direction-column items-center">
						<text v-if="userInfo.carts && userInfo.carts.length > 0" class="diygw-text-line1 diygw-col-0 animate__animated animate__heartBeat animate__infinite text19-clz"> </text>
						<image src="/static/gwcon.png" class="image5-size diygw-image diygw-col-0" mode="widthFix"></image>
					</view>
					<text class="diygw-text-line1 diygw-col-0"> 购物车 </text>
				</view>
				<view class="flex flex-wrap diygw-col-6 flex-direction-column items-center flex23-clz" @tap="navigateTo" data-type="page" data-url="/pages/articles" data-redirect="1">
					<view class="flex flex-wrap diygw-col-0 flex-direction-column items-center">
						<image src="/static/cp1.png" class="image3-size diygw-image diygw-col-0" mode="widthFix"></image>
					</view>
					<text class="diygw-text-line1 diygw-col-0"> 文章 </text>
				</view>
				<view class="flex flex-wrap diygw-col-6 flex-direction-column items-center flex26-clz" @tap="navigateTo" data-type="page" data-url="/pages/user" data-redirect="1">
					<view class="flex flex-wrap diygw-col-0 flex-direction-column items-center">
						<image src="/static/wd.png" class="image4-size diygw-image diygw-col-0" mode="widthFix"></image>
					</view>
					<text class="diygw-text-line1 diygw-col-0"> 我的 </text>
				</view>
			</view>
		</view>
		<view class="clearfix"></view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				//用户全局信息
				userInfo: {},
				//页面传参
				globalOption: {},
				//自定义全局变量
				globalData: { userAddress: {}, totalPrice: 0, totalSelected: '0' },
				addressNum: 1,
				address: {
					rows: [
						{
							id: 0,
							title: '',
							phone: null,
							isdefault: null,
							remark: null,
							sortnum: null,
							status: '',
							province: null,
							address: null,
							userId: 0,
							createTime: '',
							updateTime: '',
							deleteTime: null
						}
					],
					total: 0,
					code: 0,
					msg: ''
				},
				orderNum: 1,
				order: {
					code: 0,
					msg: ''
				},
				item: {
					number: 1
				}
			};
		},
		computed: {},
		onShow() {
			this.setCurrentPage(this);

			this.initShow();
		},
		onLoad(option) {
			this.setCurrentPage(this);
			if (option) {
				this.setData({
					globalOption: this.getOption(option)
				});
			}

			this.init();
		},
		methods: {
			async init() {},
			async initShow() {
				//强制重新刷新页面
				this.addressApi({ refresh: 1 });
				await this.initCartFunction();
			},
			// 用户地址 API请求方法
			async addressApi(param) {
				let thiz = this;
				param = param || {};

				//请求地址及请求数据,可以在加载前执行上面增加自己的代码逻辑
				let http_url = '/shop/address/list';
				let http_data = {
					pageNum: this.addressNum,
					pageSize: 10,
					isself: param.isself || '1'
				};
				let http_header = {};

				//如果用户未登录,不加载用户数据
				if (!this.userInfo.token) {
					return;
				}

				let address = await this.$http.post(http_url, http_data, http_header, 'json');

				this.address = address;
				let find = address.rows.find((item) => {
					return item.isdefault == 1;
				});
				if (find) {
					this.globalData.userAddress = find;
				} else if (address.rows.length > 0) {
					this.globalData.userAddress = address.rows[0];
				}
			},
			// 保存订单 API请求方法
			async orderApi(param) {
				let thiz = this;
				param = param || {};

				//如果请求要重置页面,请配置点击附加参数refresh=1  增加判断如输入框回调param不是对象
				if (param.refresh || typeof param != 'object') {
					this.orderNum = 1;
				}

				//请求地址及请求数据,可以在加载前执行上面增加自己的代码逻辑
				let http_url = '/shop/order/add';
				let http_data = {
					pageNum: this.orderNum,
					pageSize: 10
				};
				let http_header = {
					'Content-Type': 'application/json'
				};

				let carts = this.userInfo.carts || [];
				let body = carts.filter((item) => {
					return item.selected == 1;
				});
				if (!this.globalData.userAddress.id) {
					this.showToast('请设置收货地址');
					return;
				}
				if (body.length == 0) {
					this.showToast('请选择产品');
					return;
				}
				let title = body
					.map((item) => {
						return item.title;
					})
					.join(';');
				http_data.title = title;
				http_data.total = this.globalData.totalPrice;
				http_data.openid = this.userInfo.openid;
				http_data.body = { carts: body, address: this.globalData.userAddress };

				let order = await this.$http.post(http_url, http_data, http_header, 'json');

				if (order.code != 200) {
					this.showToast(order.msg);
					return;
				}
				carts = carts.filter((item) => {
					return item.selected != 1;
				});
				this.$session.setUserValue('carts', carts);
				//跳转至订单详情页面
				this.navigateTo({
					type: 'page',
					url: 'order/detail',
					id: order.data.id
				});

				let datarows = order.rows;
				if (http_data.pageNum == 1) {
					this.order = order;
				} else if (datarows) {
					let rows = this.order.rows.concat(datarows);
					order.rows = rows;
					this.order = order;
				}
				if (datarows && datarows.length > 0) {
					this.orderNum = this.orderNum + 1;
				}
				this.globalData.isshow = true;
			},

			// 计算总价 自定义方法
			async totalPriceFunction(param) {
				let thiz = this;
				let total = 0;
				let checked = 1;
				let carts = this.userInfo.carts || [];
				carts.forEach((item) => {
					if (item.selected == 1) {
						total = total + item.price * item.number;
					} else {
						checked = 0;
					}
				});
				this.globalData.totalPrice = Number(total.toFixed(2));
				this.globalData.totalSelected = checked;
				this.$session.setUserValue('carts', carts);
			},

			// 选择全部或取消选择 自定义方法
			async selectAllFunction(param) {
				let thiz = this;
				this.globalData.totalSelected = this.globalData.totalSelected == '1' ? '0' : '1';
				//设置选中或取消
				let carts = this.userInfo.carts || [];
				carts.forEach((item) => {
					item.selected = this.globalData.totalSelected;
				});
				//计算总价
				this.totalPriceFunction();
			},

			// 选择或取消选择 自定义方法
			async selectOneFunction(param) {
				let thiz = this;
				let index = param && (param.index || param.index == 0) ? param.index : thiz.index || '';
				//选中或者取消
				let carts = this.userInfo.carts || [];
				carts[param.index].selected = carts[param.index].selected == '1' ? '0' : '1';
				//计算总价
				this.totalPriceFunction();
			},

			// 初始计算 自定义方法
			async initCartFunction(param) {
				let thiz = this;
				let carts = this.userInfo.carts || [];
				carts.forEach((item) => {
					item.selected = 1;
				});
				this.userInfo.carts = carts;
				//计算总价
				this.totalPriceFunction();
			},
			changeItemNumber(evt, index, item) {
				this.navigateTo({ foritem: item, forindex: index, type: 'totalPriceFunction' });
			}
		},
		onPullDownRefresh() {
			// 保存订单 API请求方法
			this.orderNum = 1;
			this.orderApi();

			uni.stopPullDownRefresh();
		},
		onReachBottom() {
			// 保存订单 API请求方法
			this.orderApi();
		}
	};
</script>

<style lang="scss" scoped>
	.flex7-clz {
		padding-top: 20rpx;
		border-bottom-left-radius: 24rpx;
		padding-left: 20rpx;
		padding-bottom: 20rpx;
		border-top-right-radius: 24rpx;
		margin-right: 20rpx;
		background-color: #ffffff;
		margin-left: 20rpx;
		overflow: hidden;
		width: calc(100% - 20rpx - 20rpx) !important;
		border-top-left-radius: 24rpx;
		margin-top: 20rpx;
		border-bottom-right-radius: 24rpx;
		margin-bottom: 20rpx;
		padding-right: 20rpx;
	}
	.flex6-clz {
		flex: 1;
	}
	.text5-clz {
		flex: 1;
		font-size: 28rpx !important;
	}
	.text6-clz {
		font-weight: bold;
		font-size: 28rpx !important;
	}
	.text30-clz {
		margin-left: 0rpx;
		color: #989898;
		flex: 1;
		width: calc(100% - 0rpx - 0rpx) !important;
		margin-top: 10rpx;
		margin-bottom: 0rpx;
		margin-right: 0rpx;
	}
	.text8-clz {
		margin-left: 16rpx;
		flex-shrink: 0;
		width: 2rpx !important;
		margin-top: 10rpx;
		background-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.2932422969187676) 50%, rgba(255, 255, 255, 0) 100%);
		margin-bottom: 10rpx;
		margin-right: 16rpx;
	}
	.flex11-clz {
		color: #808080;
	}
	.icon4 {
		font-size: 24rpx;
	}
	.flex13-clz {
		padding-top: 20rpx;
		border-bottom-left-radius: 24rpx;
		padding-left: 20rpx;
		padding-bottom: 20rpx;
		border-top-right-radius: 24rpx;
		margin-right: 20rpx;
		background-color: #ffffff;
		margin-left: 20rpx;
		overflow: hidden;
		width: calc(100% - 20rpx - 20rpx) !important;
		border-top-left-radius: 24rpx;
		margin-top: 20rpx;
		border-bottom-right-radius: 24rpx;
		margin-bottom: 20rpx;
		padding-right: 20rpx;
	}
	.flex14-clz {
		flex: 1;
	}
	.text12-clz {
		color: #989898;
		flex: 1;
	}
	.text15-clz {
		margin-left: 16rpx;
		flex-shrink: 0;
		width: 2rpx !important;
		margin-top: 10rpx;
		background-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(135, 194, 250, 0.7932422969187676) 50%, rgba(255, 255, 255, 0) 100%);
		margin-bottom: 10rpx;
		margin-right: 16rpx;
	}
	.flex16-clz {
		color: #808080;
	}
	.icon5 {
		font-size: 24rpx;
	}
	.flex5-clz {
		padding-top: 20rpx;
		border-bottom-left-radius: 24rpx;
		padding-left: 20rpx;
		padding-bottom: 20rpx;
		border-top-right-radius: 24rpx;
		margin-right: 20rpx;
		background-color: #ffffff;
		margin-left: 20rpx;
		overflow: hidden;
		width: calc(100% - 20rpx - 20rpx) !important;
		border-top-left-radius: 24rpx;
		margin-top: 10rpx;
		border-bottom-right-radius: 24rpx;
		margin-bottom: 10rpx;
		padding-right: 20rpx;
	}
	.icon-clz {
		margin-left: 10rpx;
		color: #ff2a2a;
		margin-top: 0rpx;
		margin-bottom: 0rpx;
		margin-right: 10rpx;
	}
	.icon {
		font-size: 48rpx;
	}
	.icon1-clz {
		margin-left: 10rpx;
		color: #ff2a2a;
		margin-top: 0rpx;
		margin-bottom: 0rpx;
		margin-right: 10rpx;
	}
	.icon1 {
		font-size: 48rpx;
	}
	.flex4-clz {
		flex: 1;
	}
	.image-clz {
		border: 2rpx solid #eee;
		border-bottom-left-radius: 12rpx;
		text-shadow: 1px 1px 2px #333;
		overflow: hidden;
		border-top-left-radius: 12rpx;
		border-top-right-radius: 12rpx;
		border-bottom-right-radius: 12rpx;
	}
	.image-size {
		height: 160rpx !important;
		width: 160rpx !important;
	}
	.flex2-clz {
		padding-top: 0rpx;
		flex: 1;
		padding-left: 10rpx;
		padding-bottom: 0rpx;
		padding-right: 0rpx;
	}
	.text-clz {
		font-weight: bold;
		font-size: 28rpx !important;
	}
	.text2-clz {
		padding-top: 6rpx;
		color: #ff2a2a;
		font-weight: bold;
		padding-left: 0rpx;
		font-size: 28rpx !important;
		padding-bottom: 6rpx;
		padding-right: 0rpx;
	}
	.flex10-clz {
		padding-top: 20rpx;
		padding-left: 20rpx;
		padding-bottom: 20rpx;
		padding-right: 20rpx;
	}
	.image1-size {
		height: 400rpx !important;
		width: 400rpx !important;
	}
	.text7-clz {
		margin-left: 10rpx;
		color: #969696;
		font-size: 28rpx !important;
		margin-top: 10rpx;
		margin-bottom: 20rpx;
		margin-right: 10rpx;
	}
	.text13-clz {
		padding-top: 16rpx;
		border-bottom-left-radius: 200rpx;
		color: #ffffff;
		font-weight: bold;
		padding-left: 50rpx;
		font-size: 28rpx !important;
		padding-bottom: 16rpx;
		border-top-right-radius: 200rpx;
		margin-right: 10rpx;
		margin-left: 10rpx;
		overflow: hidden;
		border-top-left-radius: 200rpx;
		margin-top: 0rpx;
		border-bottom-right-radius: 200rpx;
		background-image: linear-gradient(to right, #fa2209, #ff6335);
		margin-bottom: 0rpx;
		padding-right: 50rpx;
	}
	.flex28-clz {
		background-color: #ffffff;
		border-top: 2rpx solid #e4e4e4;
		border-bottom-left-radius: 0rpx;
		box-shadow: 0rpx 4rpx 12rpx rgba(31, 31, 31, 0.16);
		overflow: visible;
		left: 0rpx;
		bottom: 0rpx;
		border-top-left-radius: 24rpx;
		border-top-right-radius: 24rpx;
		border-bottom-right-radius: 0rpx;
	}
	.flex-clz {
		padding-top: 16rpx;
		padding-left: 16rpx;
		padding-bottom: 16rpx;
		border-bottom: 2rpx solid rgba(244, 242, 242, 0.66);
		padding-right: 16rpx;
	}
	.icon2-clz {
		color: #ff2a2a;
	}
	.icon2 {
		font-size: 48rpx;
	}
	.icon3-clz {
		color: #ff2a2a;
	}
	.icon3 {
		font-size: 48rpx;
	}
	.text3-clz {
		padding-top: 6rpx;
		font-weight: bold;
		padding-left: 0rpx;
		font-size: 28rpx !important;
		padding-bottom: 6rpx;
		padding-right: 0rpx;
	}
	.text4-clz {
		padding-top: 12rpx;
		border-bottom-left-radius: 200rpx;
		color: #ffffff;
		font-weight: bold;
		padding-left: 30rpx;
		font-size: 28rpx !important;
		padding-bottom: 12rpx;
		border-top-right-radius: 200rpx;
		margin-right: 10rpx;
		margin-left: 10rpx;
		overflow: hidden;
		border-top-left-radius: 200rpx;
		margin-top: 0rpx;
		border-bottom-right-radius: 200rpx;
		background-image: linear-gradient(to right, #fa2209, #ff6335);
		margin-bottom: 0rpx;
		padding-right: 30rpx;
	}
	.text10-clz {
		padding-top: 16rpx;
		border-bottom-left-radius: 200rpx;
		color: #ffffff;
		font-weight: bold;
		padding-left: 30rpx;
		font-size: 28rpx !important;
		padding-bottom: 16rpx;
		border-top-right-radius: 200rpx;
		margin-right: 10rpx;
		margin-left: 10rpx;
		overflow: hidden;
		border-top-left-radius: 200rpx;
		margin-top: 0rpx;
		border-bottom-right-radius: 200rpx;
		background-image: linear-gradient(to right, #fa2209, #ff6335);
		margin-bottom: 0rpx;
		padding-right: 30rpx;
	}
	.flex17-clz {
		padding-top: 16rpx;
		padding-left: 16rpx;
		padding-bottom: 16rpx;
		padding-right: 16rpx;
	}
	.flex18-clz {
		flex: 1;
	}
	.image2-size {
		height: 48rpx !important;
		width: 48rpx !important;
	}
	.flex20-clz {
		flex: 1;
	}
	.image8-size {
		height: 48rpx !important;
		width: 48rpx !important;
	}
	.flex21-clz {
		color: #fa240b;
		flex: 1;
	}
	.text19-clz {
		border: 2rpx solid #eee;
		border-bottom-left-radius: 40rpx;
		-webkit-animation-duration: 5000ms;
		color: #ffffff;
		animation-delay: 1000ms;
		-webkit-animation-delay: 1000ms;
		border-top-right-radius: 40rpx;
		right: -8rpx;
		background-color: rgba(255, 17, 17, 0.91);
		animation-duration: 5000ms;
		flex-shrink: 0;
		overflow: hidden;
		top: -8rpx;
		width: 16rpx !important;
		border-top-left-radius: 40rpx;
		border-bottom-right-radius: 40rpx;
		position: absolute;
		height: 16rpx !important;
	}
	.image5-size {
		height: 48rpx !important;
		width: 48rpx !important;
	}
	.flex23-clz {
		flex: 1;
	}
	.image3-size {
		height: 48rpx !important;
		width: 48rpx !important;
	}
	.flex26-clz {
		flex: 1;
	}
	.image4-size {
		height: 48rpx !important;
		width: 48rpx !important;
	}
	.container329916 {
		background-color: #f5f5f5;
	}
	.container {
		padding-bottom: 100px;
	}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893615.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

yolov9目标检测/分割预测报错AttributeError: ‘list‘ object has no attribute ‘device‘常见汇总

这篇文章主要是对yolov9目标检测和目标分割预测测试时的报错&#xff0c;进行解决方案。 在说明解决方案前&#xff0c;严重投诉、吐槽一些博主发的一些文章&#xff0c;压根没用的解决方法&#xff0c;也不知道他们从哪里抄的&#xff0c;误人子弟、浪费时间。 我在解决前&…

JVM 实战篇(一万字)

此笔记来至于 黑马程序员 内存调优 内存溢出和内存泄漏 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在 GC ROOT 的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内…

Rust usize类型(用来表示地址的类型)Rust地址与指针的区别(Rust指针)

文章目录 Rust usize类型Rust地址与指针的区别&#xff08;指针有数据类型&#xff0c;而地址只是一个数字&#xff09;指针地址使用场景示例 Rust usize类型 在Rust中&#xff0c;地址通常表示为usize类型&#xff0c;这是因为usize是专门设计用来存储指针大小的无符号整型&a…

vue综合指南(五)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vuet篇专栏内容:vue综合指南 目录 81 简述每个周期具体适合哪些场景 82、Vue $forceUpdate的原理 83、vue获取数…

MySQL—关于数据库的CRUD—(增删改查)

文章目录 关于数据库的使用&#xff1a;1. 数据库的背景知识&#xff1a;2. MYSQL数据库软件的使用&#xff08;MYSQL安装的问题在另一篇博客中讲解&#xff09;。&#xff08;1&#xff09;启动MYSQL数据库软件&#xff08;2&#xff09;开始使用数据库程序&#xff1a;1&…

leetcode动态规划(一)-理论基础

本节主要参考&#xff1a;代码随想录 题目分类 动态规划释义 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 动态规划中每一个状态一定是由上一个状态推导出来…

车辆管理的SpringBoot技术革新

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了车辆管理系统的开发全过程。通过分析车辆管理系统管理的不足&#xff0c;创建了一个计算机管理车辆管理系统的方案。文章介绍了车辆管理系统的系统分析部分&…

使用 OpenWebUI 一键部署 Mistral-Large-Instruct-2407-AWQ

教程及模型简介 该教程是使用 OpenWebUI 一键部署 Mistral-Large-Instruct-2407-AWQ&#xff0c;相关环境和配置已经搭建完成&#xff0c;只需克隆启动容器即可进行推理体验。 Mistral-Large-Instruct-2407-AWQ 是法国人工智能公司 Mistral AI 发布的新一代旗舰 AI 模型&…

操作系统简介:作业管理

作业管理 一、作业管理1.1 作业控制1.2 作业的状态及其转换1.3 作业控制块和作业后备队列 二、作业调度2.1 调度算法的选择2.2 作业调度算法2.3 作业调度算法性能的衡量指标 三、人机界面 作业&#xff1a;系统为完成一个用户的计算任务&#xff08;或一次事务处理&#xff09;…

RabbitMQ 核心功能详解

引言 在现代分布式系统中&#xff0c;消息队列已经成为一种不可或缺的组件。它不仅能够实现应用之间的解耦&#xff0c;还能提高系统的灵活性和可扩展性。RabbitMQ 是一款基于 AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议的消息中间件&#xff0c;以其…

【人工智能】人工智能的10大算法详解(优缺点+实际案例)

人工智能&#xff08;AI&#xff09;是现代科技的重要领域&#xff0c;其中的算法是实现智能的核心。本文将介绍10种常见的人工智能算法&#xff0c;包括它们的原理、训练方法、优缺点及适用场景。 1. 线性回归&#xff08;Linear Regression&#xff09; 模型原理 线性回归…

2021年10月自考《软件开发工具》03173试题

目录 一.选择题 二.填空题 三.简答题 五.综合题 一.选择题 1.下列各项属于集成化开发工具的是 &#xff08;书中&#xff09;P96页 A.WORDSTAR B.FLOW C.Dictionary/3000 D.Visual Studio 2.软件工程的思想主要服务于 &#xff08;书中&#xff09;P84页面 A.用户 B.项目…

虚拟现实辅助工程技术在现代汽车制造中的重要性

虚拟现实辅助工程&#xff08;VR Aided Engineering&#xff09;&#xff0c;简称VAE&#xff0c;作为数字化转型的重要手段&#xff0c;在各行各业被越来越广泛的应用。随着汽车变得越来越复杂&#xff0c;虚拟现实辅助工程技术逐渐成为汽车行业产品开发过程中不可或缺的一部分…

Redis --- 第四讲 --- 常用数据结构 --- string类型

一、认识数据类型和编码方式 有序集合&#xff0c;相当于除了存储member之外&#xff0c;还需要存储一个score&#xff08;权重&#xff0c;分数&#xff09; Redis底层在实现上述数据结构的时候&#xff0c;会在源码层面&#xff0c;针对上述实现进行特定的优化&#xff0c;来…

3 机器学习之假设空间

归纳(induction)与演绎(deduction)是科学推理的两大基本手段。前者是从特殊到一般的“泛化”(generalization)过程&#xff0c;即从具体的事实归结出一般性规律&#xff1b;后者则是从一般到特殊的“特化”(specialization)过程&#xff0c;即从基础原理推演出具体状况。例如&a…

学习JAVA中的Spring MVC常用注解及三层架构,这一篇就够了

Spring Web MVC 一&#xff1a;什么是 Spring Web MVC&#xff1f;什么是Servlet呢&#xff1f;什么是Servlet API1.1 MVC 定义1.2 什么是Spring MVC ?1.3SpringBoot和SpringMVC的区别 二&#xff1a;Spring MVC中常用注解的使用2.1 RequestMapping:地址映射2.2 RequestBody:请…

Golang | Leetcode Golang题解之第476题数字的补数

题目&#xff1a; 题解&#xff1a; func findComplement(num int) int {highBit : 0for i : 1; i < 30; i {if num < 1<<i {break}highBit i}mask : 1<<(highBit1) - 1return num ^ mask }

大模型缺的脑子,终于在智能体上长好了

智能体是一种通用问题解决器&#xff0c;从软件工程的角度看来&#xff0c;智能体是一种基于大语言模型的&#xff0c;具备规划思考能力、记忆能力、使用工具函数的能力&#xff0c;能自主完成给定任务的计算机程序。 大模型拥有接受输入&#xff0c;分析推理&#xff0c;继而…

k8s备份恢复(velero)

velero简介 velero官网&#xff1a; https://velero.io/ velero-github&#xff1a; https://github.com/vmware-tanzu/velero velero的特性 备份可以按集群资源的子集&#xff0c;按命名空间、资源类型标签选择器进行过滤&#xff0c;从而为备份和恢复的内容提供高度的灵活…

【Linux】【Jenkins】后端maven项目打包教程-Linux版

本次安装版本&#xff1a;2.4 jenkins详细安装教程1、安装git环境2、安装mavne环境2.1 下载依赖2.2、解压、赋权2.2、配置环境变量2.3、验证安装 3、jenkins-插件下载3.1、进入jenkins-->系统管理3.2、进入系统管理-->插件管理3.3、下载两个插件&#xff08;如果之前下载…